三维点云分类和补全的结构化学习
Last updated
Last updated
在这篇论文中,我们提出了一种自监督学习方法,用于三维点云的形状补全和分类。
大多数3D形状补全流程利用自动编码器从点云中提取特征,用于分类、分割、检测等下游任务和相关应用。
我们的想法是将对比学习加入到自动编码器中,以促进点云类别的全局特征学习。这是通过优化三元组损失来实现的。
此外,通过添加Chamfer距离函数,我们还对点云的局部特征表示进行了学习。为了评估我们方法的性能,我们使用了PointNet分类器。
我们还将评估类别数量从4增加到10,以展示学习特征的泛化能力。根据我们的结果,来自对比自动编码器的嵌入增强了点云形状补全和分类性能,从84.2%提高到84.9%,在10个类别上实现了最先进的结果。
关键词:点云分类;点云形状补全;自动编码器;对比自动编码器;点云的对比学习;点云形状补全的自监督学习
补全的挑战
真实世界的三维数据是来自各种3D传感器(如激光雷达扫描仪和RGB-D摄像头)的输出。这些传感器的原始输出,特别是激光雷达扫描仪,包含大量的缺失数据。
此外,它们还是非结构化的,这意味着相邻点之间的距离并不总是固定的[1]。因此,直接在原始输出上应用传统的深度学习方法具有挑战性[1,2]。
例如,卷积神经网络不能直接应用在点云上学习特征表示,因为卷积操作需要数据遵循某种顺序并存在于一个结构化的网格上[1,2]。
图的卷积神经网络(GCNN)
近年来,基于图的卷积神经网络(GCNN)方法在学习点云表示任务方面取得了巨大成功[3-5]。一些最先进的方法,如PointNet[3],PointNet++[5]和动态图卷积神经网络(DGCNN)[4]被提出,旨在通过学习丰富的表示来恢复点云的拓扑结构。
基于GCNN的方法使用深度自动编码器,它们具有数百万可学习参数,使它们容易过拟合[6]。为了获得形状补全和分类问题的泛化解决方案,需要大规模带注释的数据集来训练GCNN。然而,为点云创建标记的地面真实数据具有挑战性且昂贵[7]。因此,无监督学习方法,也称为可以从无标签数据中学习的自监督学习方法,引起了极大关注[7]。
自监督学习(SSL)
自监督学习(SSL)包括预处理任务和下游任务。
在我们的工作中,预处理任务包括学习点云表示。下游任务利用预处理任务学到的表示。我们选择点云分类作为下游任务,并使用预训练的PointNet[3]来衡量分类精度。提出的对比自动编码器在对比损失[8-13]和距离函数上进行优化。
对比学习是自监督学习的一种变体,我们将其用作预处理任务。
对比学习背后的直观想法是,属于同一类的对象在特征空间中应该比不同类的对象更接近。我们的网络专注于学习点云的全局和局部特征表示。
通过对比损失学习类别的全局特征表示,而通过距离函数学习局部特征表示。图1展示了我们方法的完整工作流程。通过在ShapeNet核心[14]数据集中随机均匀移除20%的点,生成不完整的形状。所提出的对比自动编码器完成形状,并在最后阶段,PointNet对完成的形状进行分类。所提出网络的前向传播如图2所示。
我们的主要贡献如下:
• 我们训练了一个端到端的深度对比自动编码器,它不依赖于中间特征计算,如嵌入;
• 在点云形状补全和分类的背景下,尚未研究局部和全局特征的组合。全局特征在[6,15,16]的方法中作为预处理任务学习的手段,而局部特征在[17,18]的方法中进行探讨。我们将局部和全局特征学习合并为一个任务,并将其应用于分类和形状补全问题。
使用机器学习技术处理点云在过去几年中受到了越来越多的关注。我们将回顾相关的点云分析和形状补全方法。
点云分析方法存在两个子类别。
第一类别是监督特征学习,它使用完整的真值来学习特征表示。
第二类别是无监督学习方法,只需要部分地面真值数据来从点云中学习特征表示。
以下部分将讨论所有之前关于形状补全和分类的方法。
监督学习方法需要点云的标记数据。在这个领域使用的方法类型如下。
传统方法:学习点云表示的传统方法包括基于手工制作的技术。
传统技术的目的是捕捉点云的局部几何结构信息。通过利用局部几何信息,可以创建内在[19,20]或外在特征描述符[21,22]。外在描述符使用3D空间中形状的坐标,而内在描述符将3D形状离散化为网格或图。这类特征描述符非常有限且包括手动工作。
卷积方法:卷积的概念也可以从2D卷积扩展到3D卷积,并用于特征提取。
与传统手工制作特征相比,基于卷积的方法在下游任务上具有更好的性能。有各种想法将CNN与点云结合使用。一种方法是对3D点云进行体素化,这意味着我们创建一个[X × Y × Z]的体素结构,然后我们可以使用大小为[x × y × z]的过滤器进行卷积操作,其中[x, y, z] ≤ [X,Y, Z][23-26]。
然而,这些方法具有量化效应并且计算成本较高。
多视图方法[27-29]是将CNN应用于3D数据的另一种方式。多视图方法背后的思想是将3D数据转换为2D,然后应用现有的CNN技术。多视图方法的准确性大于基于体素的方法,因为它们利用现有的先进2D技术并将其扩展到3D数据。
然而,这些方法具有量化效应并且计算成本较高。多视图方法[27-29]是将CNN应用于3D数据的另一种方式。多视图方法背后的思想是将3D数据转换为2D,然后应用现有的CNN技术。多视图方法的准确性大于基于体素的方法,因为它们利用现有的先进2D技术并将其扩展到3D数据。
基于图的方法:基于图的方法背后的思想是捕获点云的局部结构。它们用一个节点表示点云中的每个点,使我们能够在点云中建模相关性。深度基于图的卷积网络(DGCNN)[4]在点云上提出了一种动态图边缘卷积(EdgeConv)。EdgeConv专注于在点云上利用几何结构。它根据点特征到其邻居的距离为每个点构建一个局部邻域图。然后,它在度量空间中的边缘上应用卷积操作,连接邻域点对。最近,边缘感知点云补全[30]扩展了EdgeConv的思想。它在其提议的深度自动编码器中使用边缘感知特征扩展(EFE)模块对点特征进行上采样。EFE模块特征有助于保留对点云描述符重要的局部边缘。
从原始3D点云学习:在其他方法中,例如基于卷积的方法,我们首先必须计算中间表示,如体素、2D网格或图形,然后学习特征。然而,我们可以直接从非结构化的原始点云中学习特征,而不是计算中间表示。PointNet[3]是第一个直接处理非结构化点云的方法。它分别处理3D数据中的每个点,因此点云中的错位不会影响模型。然而,作为一个结果,PointNet将无法利用3D点云的局部结构。为了应对这一问题,后来引入了PointNet++[5],它在输入点集的嵌套分区上递归应用PointNet。TopNet[17]进一步扩展了从点云中学习局部结构的思想。它在解码器中提出了一种基于树的架构,用于在不假定点云结构中的任何特定拓扑的情况下进行特征提取。
对于新应用来说,获取带标签的3D点云数据往往很困难。这个事实使得许多无监督学习方法应运而生,它们从无标签数据中学习特征以解决这个问题。
预文本任务学习[6,15,16,31]:解决这个问题的一个方法是引入预文本任务学习[6,15,16,31]。在预文本任务学习中,目标是通过执行主流任务来学习全局特征。最初的方法认为方向估计预测[15]和点云重建[16]是预文本任务。在方向估计中,我们旋转点云并训练分类器以预测旋转角度;而在重建中,我们通过应用生成的变形点云形状的重建来进行学习。最近,通过学习离散生成模型的自监督学习[31]提出了一个预文本任务,其目的是通过生成模型学习数据分布。
完全卷积几何特征(FCGF):最近,引入了完全卷积几何特征(FCGF)[32]和对比网络(Contrast-Net)[6],它们使用对比学习的概念。
在FCGF[32]中,使用带有全卷积几何层的3D CNN,并使用三元组损失进行训练。Contrast-Net[6]使用DGCNN进行特征提取并应用成对排序损失。它将正样本和负样本对提供给DGCNN并应用成对排序损失。
通过随机选择样本并确保它们来自同一类别生成正样本对,而负样本对使用相同的技术生成,确保正样本对和负样本对代表不同的类别。在分类下游任务中学到的特征。LatentGANs[33]引入了一种具有最先进的重建质量和点云数据泛化能力的新型深度自动编码器网络。
同样,FoldingNet[34]也是一种端到端的自动编码器。它在PointNet的基础上引入了一种基于图的增强应用于编码器,以强制执行局部结构,而基于折叠的解码器将规范的2D网格变形到点云的底层3D物体表面上。
2.2 形状补全
3D点云形状补全是计算机视觉领域的一个具有挑战性的问题。形状补全的应用范围从机器人到自动驾驶汽车,该领域的方法已取得显著的发展[35-40]。早期的形状补全方法[35,36,38]受到2D CNN在图像上的操作性能的启发,它们扩展了这个想法并在体素上引入了3D卷积。
它们已经取得了很有前景的重建结果,然而,体素数据表示存在内存限制,无法产生高分辨率输出。
PCN[40]是第一批摒弃体素格式并采用网格格式的方法之一。
最近的工作,Top-Net[17],PMP-Net[18]和RLGAN[39]逐渐摒弃了体素格式,现在它们正在朝向网格发展,即它们使用网格格式来表示3D点云形状。网格表示允许将点云直接输入网络,而无需处理任何中间表示。它相对于体素表示提供了显著的优势。因此,我们也使用网格格式来表示我们的点云形状。
如上所述,早期的方法主要集中在全局特征学习或局部特征学习,通过利用预文本任务。然而,我们提出了一种独特的全局和局部特征组合,它学习局部拓扑并考虑相应类别的全局特征。
我们使用AutoEncoder [41]作为我们的主干网络来处理非结构化点云。
我们在主干网络中添加了更多的卷积层,并改变了目标函数以适应我们的问题。这有助于我们实现更稳定和高效的训练,同时也帮助我们获得更好的重建质量。
自动编码器(AE)是一种无监督方法,通过两个网络(即编码器和解码器)学习数据的特征表示。编码器将复杂的输入转换成编码表示,而解码器将编码版本还原为原始维度。
损失是在解码器的输出和输入之间计算的。然而,为了提取全局表示,我们还在数据的编码表示中引入了对比损失。图3展示了我们方法的AE架构。编码器生成不完整点云的中间特征表示,解码器使用生成的中间表示生成密集点云。以下部分详细介绍了我们的自动编码器的目标函数。
3.1.1. 目标函数
我们使用距离函数和对比损失的组合来训练我们的网络。所提出的方法从距离函数中提取点云的局部特征,而使用对比损失提取全局特征。
距离函数:适合我们问题的距离函数有地球搬运工距离(EMD)[42]和尖锐距离(Chamfer distance)[43]。地球搬运工距离更难优化,在实践中只给出近似解[43]。因此,我们选择尖锐距离而不是地球搬运工距离[39,43]。此外,我们使用对称尖锐距离来衡量输入和解码器输出之间的质量。它定义如下。
P1 ∈ R2048×3 表示来自训练集的输入点云
P2 ∈ R2048×3 表示编码器生成的点云表示,使用解码器进行解码。
在第一项中,下标 a 和 b 分别表示 3D 点 P1 和 P2,而在第二项中,它们分别表示 P2 和 P1 中的 3D 点。
对比损失:在对比学习空间中,我们可以训练网络的损失函数有两个主要思路。
第一个思路是成对排名损失,也用于相关工作[6]。它使用正和负训练数据点的对。正对由选择一个锚点样本和一个与锚点类似的正样本来构建。负对由锚点样本和与锚点不相似的负样本组成。目标是为正对学习距离较小的表示,对于负对,距离大于某个边际值。
第二个思路是三元组排名损失[8-13],它使用三元组的概念。一个三元组由一个锚点样本、一个正样本和一个负样本组成。正样本意味着它应该与锚点类似,而负样本则意味着相反。这种设置优于成对排名损失,并且它也更容易优化。因此,我们在我们的方法中使用三元组排名损失。