Few-Shot Meta-Learning on Point Cloudfor Semantic Segmentation

摘要

建筑机器人的推广可以解决人力资源短缺的问题,提高装修质量。同时,三维点云是获取环境信息的重要数据形式,广泛应用于机器人、自动驾驶等领域。为了更好地工作,建筑机器人需要能够理解周围的环境。然而,当机器人翻新房屋时,点云信息会动态变化。为了使机器人动态适应环境的变化,本文提出了一种基于元学习的点云语义分割方法。该方法包括基本学习模块和元学习模块。学习模块负责学习数据特征并评估模型,而元学习模块负责更新模型的参数并提高模型的泛化能力。在我们的工作中,我们率先提出了在3D场景中生成用于元学习的数据集的方法,并证明了模型不可知元学习(MAML)算法可以应用于处理3D点云数据。同时,实验表明,我们的方法可以用少量的样本将模型快速应用于新的环境。我们提出的方法具有很大的应用价值。

引言

中国人口老龄化正在加速[1],[2]。人力资源短缺的问题将变得越来越严重。建筑机器人的发展可以解决房地产业的劳动力短缺问题,同时提高生产力,确保生产安全。机器人需要能够识别不同的建筑物体,如门、窗、天花板、地板和地板上的障碍物,以便在翻新环境中实现施工自动化。这就是为什么要求机器人能够从语义上理解周围环境的原因。机器人通常使用摄像头来获取有关环境的信息。但室内装饰场景通常光线不足,这会影响相机拍摄的照片质量。机器人还需要能够在晚上工作。然而,激光雷达收集的3D点云不会受天气影响。此外,点云可以描述对象的位置、形状、大小和其他属性,并且它们比2D图像包含更多的信息。同样,激光扫描仪和3D相机的普及降低了获取3D数据的成本,并降低了获取数据的难度。

在本文中,我们将重点研究三维点云语义分割(PCSS)技术。PCSS技术将为每个点生成语义信息。根据目前研究成果的综述[3],PCSS通常通过两种方式实现:常规监督机器学习和深度学习。

基于监督机器学习的PCSS方法主要分为以下两类:个体PCSS和统计上下文模型。单个PCSS通过每个点的特征对点进行聚类分析,如支持向量机[4]、[5]、随机森林[6]等。单个PCSS只考虑每个点的特征,而不考虑与周围点的共同特征,因此会存在一些噪声点,导致结果不准确。另一方面,统计上下文模型考虑每个点和周围点之间的关系。如马尔可夫网络[7]和条件随机场[8]。

基于深度学习的PCSS方法主要分为以下三类:基于多视图、基于体素和基于点。H.Su等人[9]提出了基于多视图的PCSS方法。他们将来自多个视角的2D数据输入CNN进行处理,然后将结果更改为3D以完成分割。D.Maturana等人[10]将体素和3D细胞神经网络相结合,并提出了基于体素的3D细胞神经网。它们在点云数据上创建3D网格,并通过体素数据在立方体空间上的相对位置来表示3D数据。2017年,C.R.Qi等斯坦福大学的学者提出了PointNet,它直接使用原始的3D点云数据作为深度学习应用的输入。PointNet在ModelNet40[12]和ShapeNet[13]数据集上都显示出最好的结果。

在我们的工作中,我们设计了一种点云语义分割方法,该方法直接处理点云数据,适应装修环境的动态变化,并有助于实现建筑机器人的自主性。我们的方法由两个模块组成:基础学习模块和元学习模块。基本学习模块是学习支持集的功能。在基础学习模块中,我们选择了PointNet作为基础学习器。我们使用N-way K-shot方法对S3DIS数据集中的数据进行采样,以构建支持集和查询集。该模型使用支持集进行训练,损失函数是在评估模型时使用查询集计算的。元学习模块旨在提高模型的泛化能力。在元学习模块中,我们通过查询集的损失函数的值来更新模型的梯度,这使得模型能够用少量样本快速适应新环境。

总之,我们的工作的贡献可以表示如下:1)我们提出了一种用于MAML的3D点云数据集的采样方法,该方法具有较少的样本。

2) 我们已经成功地将MAML算法从2D数据扩展到3D数据。我们证明了MAML算法可以应用于三维点云,并且可以用于点云语义分割。

3) 我们提出了一种模型,该模型可以用更少的样本快速适应新的环境。它降低了新环境中数据注释的成本。它可以用于许多场景。

4) 我们提出了一种具有较高准确率和较少训练时间的模型。它具有很大的应用价值。

本文分为五个部分,其余部分组织如下。第二节介绍了PointNet和模型不可知元学习(MAML)的最新研究。第三节介绍了我们的点云语义分割方法。分别介绍了N路K-shot采样方法、模型结构和算法。第四节介绍了我们的实验。我们将我们的模型应用于斯坦福大学大规模3D室内空间数据集(S3DIS)[14],并分析了结果的准确性。

最后,在第五节中给出了结论和未来的研究方向。

相关工作

A. PointNet

正如第一节中提到的,2017年,斯坦福大学的Qi等人[11]提出了PointNet。PointNet是第一个直接处理原始点云数据进行分类和语义分割的神经网络。它有三个主要的关键模块。第一个模块是T-Net。T-Net是一个回归网络。它可以预测一个依赖于输入的3×3变换矩阵。将输入数据的矩阵与该矩阵相乘可以使点云数据在空间上对齐,并便于后续的特征提取。第二个模块是最大池。为了解决数据无序问题,PointNet使用对称函数最大池来提取数据的全局特征。实验表明,最大池操作可以大大提高网络的性能。

PointNet将全局特征向量与输入点向量直接拼接,并通过卷积神经网络(CNN)提取特征,得到最终的分类和分割结果。PointNet在ModelNet40[12]和ShapeNet[13]数据集上都显示出了最好的分割结果,并极大地推动了PCSS技术的发展。这些模块解决了点云的无序、替换不变性和旋转不变性问题。

然而,由于PointNet直接使用最大池来提取全局特征,因此不足以进行局部特征提取。在进一步的研究中,Qi等人[15]提出了PointNet++。该网络借鉴了细胞神经网络中多层感知场的思想,利用层次神经网络捕捉局部几何特征。PointNet++网络提高了点云的语义分割效果。

在我们的工作中,我们将使用PointNet模型作为基础学习器。

B.模式不可知元学习

元学习,其主要目的是学习一条规则。虽然常见的深度学习模型侧重于学习用于预测或分类的数学模型,但元学习学习学习过程。因此,元学习可以使用少量的训练样本来解决新的学习任务。模型不可知元学习(MAML)[16]是一种通过优化每个方向上的参数梯度来训练模型的元学习算法。模型的初始化参数为θ。MAML在任务τ中随机选择多个任务进行采样,形成一个批次。在下一步中,通过分别计算每个任务的损失值来更新梯度值。然后我们得到θ1,θ2,··,θn。在执行第一梯度更新之后,MAML可以执行第二梯度更新。最后,通过计算一个批次的损失总和来更新θ。MAML可以在少量样本的情况下快速适应新任务。MAML算法已被验证用于2D图像上的监督机器学习和强化学习。钟等人[17]以MAML框架为基础,结合ResNet和GeM提取特征,实现遥感图像的检索。张等人[18]将MAML算法与GAN网络相结合,提出了能够用少量样本对图像进行分类的MetaGAN网络。然而,没有相关文章证明MAML可以应用于样本较少的点云的语义分割。

方法

少镜头元学习是通过少量样本来学习数据集的特征。尽管MAML是一种用于元学习的通用算法,但MAML算法没有3D点云数据集的小样本,也没有任何方法证明MAML对3D点云语义分割的有效性。

在本节中,我们提出了一种用于点云的少镜头元学习语义分割方法。在第III-A节中,我们介绍了N路K-shot采样方法来构建训练数据集和测试数据集。由这些数据组成的数据集将应用于MAML算法。在第III-B节中,我们介绍了我们模型的架构,包括基本学习模块和元学习模块。最后,我们在第III-C节中介绍了该算法。我们将在第四节中演示MAML在3D点云上的有效性。

A.N向K-shot采样

在训练模型之前,我们需要构建一个训练数据集和一个测试数据集,我们分别称之为支持集和查询集。我们将使用N向K-shot(N表示样本类别的数量,K表示每个类别中包含的样本数量)方法进行采样,以形成任务集,每个任务集由一个支持集和一个查询集组成。支持集包含N个标记的数据。每个集合中有n个类别,有k个样本,因此n=n×k。支持集表示为S={(x1,y1),(x2,y2),··,(xN,yN)},xi∈RD表示D维点云数据,yi∈{1,·,k}表示数据的对应标签以及数据的语义信息。查询集包含一些“未标记”的查询样本,表示为Q。我们的模型在训练期的目的是从给定的支持集S和查询集Q中预测查询样本的正确标签。

算法1是N路K-shot采样方法。在该算法中,训练数据集Dtrain包含ND个类别,n表示任务集中的类别数量,k表示每个类别中包含的样本数量,NS表示支持集中的样本数量。NQ表示查询集中的样本数。Rs(Dtrain,k)函数表示从数据集Dtrain中随机抽取k个样本而不放回,D\S表示属于集合D而不属于集合S的所有样本。在采样中,从训练数据集Dtrain中随机抽取n个类别,并从每个类别中随机抽取(k+t×k)个标记样本以形成任务τ,其中k×n个样本称为支持集,t×k×n样本称为查询集。我们需要连续使用算法1来执行任务采样并生成训练数据集分布p(τ)。

输出将用作第III-C节中算法的数据集。

论文阅读:Few-Shot Meta-Learning on Point Cloudfor Semantic Segmentation_数据集

B.架构

在本文中,我们提出了一种基于元学习的点云语义分割网络。该模型是MAML在三维数据处理中的开创性应用。我们的模型可以分为两部分。首先,使用支持集作为模型的训练数据集来训练网络,然后使用查询集作为测试数据集用于测试的模型的。其次,测试结果用于执行元学习操作,以更新模型的参数。

为了更清晰地表示模型,整个网络分为两个模块:基础学习模块(基础学习者)和元学习模块(元学习者)。网络处理流程如图1所示。

1) 基础学习模块:基础学习模块,重点学习PointNet设置的日期的特性。首先,初始化模型的梯度参数θ,即θ=ξ。然后,通过在支持集上进行训练来获得损失值,如(1)所示。

论文阅读:Few-Shot Meta-Learning on Point Cloudfor Semantic Segmentation_点云_02

计算出损失值后,如(2)所示更新梯度

论文阅读:Few-Shot Meta-Learning on Point Cloudfor Semantic Segmentation_点云_03

其中β表示模型学习率。

最后,我们使用查询集评估PointNet模型,以获得查询集的损失值,如(3)所示。

论文阅读:Few-Shot Meta-Learning on Point Cloudfor Semantic Segmentation_数据集_04

为了提高模型的效率,我们提出了一个协作网络模型,如图2所示。在该模型中,PointNet共享初始化参数ξ,即,ξ=Γ1=Γ2=··=Γn。然后使用支持集对模型进行训练,以获得交叉熵损失,并根据损失更新梯度,如(1)和(2)所示。最后,分别使用查询集对模型进行评估,然后对损失值进行平均,如(4)所示。

论文阅读:Few-Shot Meta-Learning on Point Cloudfor Semantic Segmentation_数据集_05

2) 元学习模块:元学习模块的主要目的是提高少样本模型的泛化能力。在本模块中,我们根据损失值计算模型的梯度值,并对其进行更新。如(5)和(6)所示。

论文阅读:Few-Shot Meta-Learning on Point Cloudfor Semantic Segmentation_数据集_06

其中,α表示元学习中的步骤。

论文阅读:Few-Shot Meta-Learning on Point Cloudfor Semantic Segmentation_数据集_07

如果使用协作网络模型,则如(7)所示计算梯度值。

论文阅读:Few-Shot Meta-Learning on Point Cloudfor Semantic Segmentation_点云_08

C.算法

2是本文提出的基于元学习的语义分割算法。首先随机初始化模型参数。然后,从任务集中随机选择多个任务以形成一批。对于这批任务连续执行步骤5-8,直到模型收敛。

论文阅读:Few-Shot Meta-Learning on Point Cloudfor Semantic Segmentation_数据集_09

IV、 实验

我们首先在第IV-A节中介绍实验环境,在第IV-B节中介绍S3DIS数据集。在第IV-C节中,我们介绍了我们的实验。实验分为四个部分。在第IV-C1节中,我们验证了MAML算法可以成功地应用于三维点云,并且我们的模型可以在少量样本的情况下快速适应新的环境。在第IV-C2节中,我们进行了交叉验证实验,证明了我们的模型具有良好的泛化能力。在第IV-C3节中,我们可视化了五个样本,以进一步证明我们提出的方法的有效性。在第IV-C4节中,我们将我们的方法与其他方法进行了比较,并证明了我们的方法具有更好的结果。