摘要
点云是目前描述 3D 世界最典型的表示。然而,由于无序 3D 数据排列的特性,从点云中识别物体和姿势仍然是一个巨大的挑战。
在本文中,提出了一种用于 3D 场景分割和 6D 对象姿态估计的统一深度学习框架。为了准确分割前景对象,提出了一种称为PointDoN的新型形状模式聚合模块,该模块可以从法线差(DoN)和点云的初始空间坐标中学习有意义的深度几何表示。我们的 PointDoN 可以灵活地应用于任何卷积网络,并在点云分类和语义分割的流行任务中显示出改进。一旦对象被分割,就可以指定整个场景中每个对象的点云范围,这使我们能够进一步估计局部感兴趣区域内每个对象的 6D 位姿。为了获得良好的估计,我们提出了一种新的 6D 姿态估计方法,它分别结合了从 RGB 图像和点云生成的 2D 和 3D 特征。
具体来说,3D 特征是通过基于 CNN 的架构提取的,其中输入是从初始点云转换而来的 XYZ 地图。实验表明,我们的方法在分割和 6D 姿态估计任务中都可以在公开可用的点云数据集上取得令人满意的结果。
介绍
3D 几何数据处理和 3D 场景理解对于许多重要的人工智能行业(例如自动驾驶、机器人视觉和操作以及智能制造)至关重要和基础。与 2D 图像相比,提供丰富空间信息的 3D 几何数据在检测、语义分割和姿态估计等计算机视觉问题上具有天然优势。最近,针对 3D 数据处理的深度学习架构的研究受到了广泛关注。然而,与2D图像的像素排列有序不同,点云、多边形网格等3D几何数据是非结构化、无序、不规则的,导致CNN可以从规则网格中提取局部特征但不能应用于3D几何数据直接。为了利用已开发的 CNN 架构,许多类型的作品提出了以常规表示作为输入的深度学习架构,例如 3D 体素网格或图像的多视图 。然而,尽管体积 CNN 和多视图 CNN 取得了不错的效果,但这些方法也存在一些缺点,例如需要大量计算并将冗余信息带入网络。
作为最典型的 3D 数据表示之一,点云是空间中一组非结构化和无序的数据点。基于点云的几何深度学习架构直接将点的初始空间坐标作为输入,无需映射或重新切割。 PointNet 是一项开创性的工作,它提出了一个直接消耗点云的几何深度学习网络,并且在点云分类和分割任务中都取得了良好的性能。随后,提出了各种基于点云的深度学习网络。为了处理点云的不规则性和无序性,这些方法通常在深度架构中设计变换网络和最大池化层。虽然这些方法成功处理点云数据,它们有一些缺点。首先,通过最大池化层省略了点云的局部特征,这可能导致局部信息的丢失。其次,很难对变换网络背后的理论原理做出严格的解释。
为了更好地处理点云的不规则性并在更细粒度的细节中提取形状特征,我们利用了在我们之前的论文 中提出的一种称为 PointDoN 的新型形状模式聚合模块,它可以插入到点云的每一层深处用于分类和分割任务的学习网络。在几何深度学习架构中, PointDoN 通过一个名为 Diference of Normals (DoN) 的描述符来聚合形状模式,该描述符是从点的初始空间坐标和点云的固有特征中提取的。 传统点云处理中的DoN是一种广泛使用的点云过滤算法,它定义了不同半径的点法线估计的归一化向量差,为处理大型无组织点提供了一种计算效率高、多尺度的方法云。受传统 3D 点云处理算子的启发,本文的描述符 DoN 由局部点集生成的几个相邻三角形的法向量之差定义。如图 1 所示,有三个不同的示例形状,表面上具有局部点集(第一行)和从相邻三角形生成的 DoN 向量(第二行)。局部点集由一个公共中心点(蓝色)和几个相邻点(灰色)组成。鉴于物体的外表面可以用一系列三角形近似表示,这可以为计算提供一些额外的信息,因此中心点和其他两个相邻点被设计成一个三角形。进一步地,这种形式的局部点集可以联合生成几个相邻的三角形,也可以从中计算出每个三角形的法向量。因此,DoN 向量是从差异中生成的相邻三角形的法线向量。实际上,我们使用余弦相似度来衡量这些三角形的法向量之间的差异。考虑到DoN向量可能包含局部点集的局部形状模式信息,反映物体局部表面的形状,本文提出了一种基于DoN的特征描述符,以DoN向量为输入,进行形状特征提取与随后的卷积操作。更重要的是,除了表示不同局部点集的不同形状特征外,基于DoN的特征描述子还具有一些独特的优势,如旋转不变性和处理点云不规则性的鲁棒性。
基于这种特殊的特征描述符,提出了一种名为PointDoN的形状模式聚合模块和一种基于PointDoN的几何深度学习架构,用于点云场景的理解。 PointDoN 模块可以聚合三种不同类型的特征,包括来自描述符 DoN 的形状特征、来自 3D 点坐标的特征以及初始有用的特征,例如 RGB 颜色。在我们基于 PointDoN 的几何深度学习架构中,PointDoN 模块可以灵活地插入到端到端深度网络的每一层中,用于处理各种点云处理任务,例如 3D 形状分类和场景语义分割。基于PointDoN的深度学习网络由编码器部分和解码器部分组成,以原始点云数据为输入,输出分类或分割任务的结果。在本文中,我们基于 PointDoN 的框架在多种具有挑战性的基准数据集上实现,用于不同的任务。实验表明,我们的方法可以在这些基准上取得相当好的结果。
一旦完成了3D场景语义分割任务,就可以方便地将每个对象的点云从完整的场景点云中分离出来,然后可以根据单个对象对这些对象中的每一个进行6D姿态估计。发展历程6D姿态估计在许多重要的计算机视觉应用中具有至关重要的意义,例如智能制造、机器人操纵和抓取以及自动驾驶。
基于 RGB 图像的传统方法通常侧重于局部特征的稀疏表示或手工制作的特征,如 SIFT 特征 。基于 RGB 图像的较新方法利用 CNN 架构通过数据训练直接估计对象姿态。然而,这些基于 RGB 图像的方法严重依赖 RGB 特征,导致这些方法仅限于具有足够纹理的对象。因此,由于缺乏深度信息,仅从 RGB 图像中提取特征的方法无法胜任无纹理或无纹理物体的姿态估计任务。为了弥补深度信息的不足,一些研究提出将 RGB-D 数据或点云作为 6D 姿态估计的输入,例如 Frustum PointNet 、PointFusion 和 DenseFusion 。这些模型在实时推理能力上取得了很好的表现。然而,许多方法通过PointNet粗略地从点云中提取3D特征,导致形状模式信息丢失和2D-3D信息融合不准确。
在这项工作中,我们提出了一种 6D 姿态估计方法,该方法融合了 RGB 图像和点云生成的 2D 和 3D 高级特征。该模型的数据可以以PointDoN算法的点云分割结果为前提。为了将控制变量与其他 6D 姿势模型(如 DenseFusion )进行比较,两者都使用与数据集相同的 3D 点云分割结果。我们不是通过点云深度学习架构(如 PointNet)来提取 3D 特征,而是将初始点云的 3D 坐标映射到 2D 平面以生成输入图,然后使用成熟的 2D CNN 架构从这张地图中提取特征。点云图有三个通道,分别反映初始点云的(x,y,z)坐标。正如我们凭经验证明的那样,基于 CNN 的深度学习架构在 2D 数据上取得了巨大成功。例如,李等人。 交互式地探索语义分割的上下文信息。在 中,Li 等人。将语义结构整合到一个统一的框架中,以揭示图像和标签的共同潜在空间。这些 CNN 能够以比点云深度学习网络更高的效率处理从点云地图中提取 3D 特征的任务。同时,2D 特征也是从以 RGB 图像作为输入的并行 CNN 架构生成的。
总体而言,我们提出了一个端到端的深度学习框架,该框架将 RGB 图像和点云作为输入,并通过分别提取和融合来自两个域的特征来预测对象的 6D 姿势。我们的方法在 6D 姿态估计的两个基准上进行了评估,性能揭示了它的有效性。
综上所述,我们的工作有两个主要贡献:
首先,提出了一种名为 PointDoN 的新型形状模式聚合模块和一种基于 PointDoN 的几何深度学习框架,用于点云场景理解;
其次,在获得3D点云场景的准确分割结果后,我们提出了一种6D姿态估计方法,该方法融合了从点云中提取的3D形状模式和从RGB图像中提取的2D特征。
本文组织如下。然后,我们在 Sect 中描述了我们的方法。接下来,在 Sect 中描述了广泛的实验。
相关工作
3D 分类和分割方法
3D 数据有多种流行的表示形式,例如多视图图像、3D 体素和点云。由于附加的深度维度提供了丰富的空间信息,基于3D数据的场景分割方法与基于2D数据的方法相比具有天然的优势。随着卷积神经网络的快速发展,已经提出了基于 CNN 的架构,该架构将各种 3D 表示作为 3D 分类和场景分割任务的输入。
CNNs on multi‑view images
多视图图像上的 CNN 尝试从对象的不同视点获取多个 2D 图像作为输入,并利用 2D CNN 为分类或分割任务提取高级特征。例如,作品 [3, 7, 13, 17, 48] 利用为 2D 图像直接处理而设计的 CNN,对来自相应多视图 2D 图像的特征进行编码以分类或检测对象。然而,考虑到视点的选择总是有人工痕迹,多视图图像可能会带来信息冗余和不确定性的问题。此外,当遇到自遮挡问题时,这些基于多视图图像的方法会遭受表面信息的丢失
CNNs on voxels(体素上的 CNN)
为处理 2D 图像而设计的 CNN 无法处理不规则的原始 3D 数据。为了避免这个问题,工作 [6, 32, 33, 45] 提出了基于 3D CNN 的方法,在通过体素网格或投影将非结构化和无序的原始 3D 数据转换为常规表示后,将 3D 体素输入网络。例如,工作 [14] 建议将从初始点云转换为 3D CNN 的一组占用体素提供给分类任务,然后将预测的类别标签映射回点云。然而,这些基于体素的 CNN 的缺点是空间信息的丢失和繁重的计算
CNNs on point clouds
与基于多视图图像的 CNN 和基于体素的 CNN 不同,基于点云的 CNN 直接将原始点云作为输入,而输入点云只是在目标对象的外表面上获取,没有拒绝或网格化。作为 3D 场景理解的重点,点云深度学习自然受到越来越多的关注。 PointNet [37](只考虑了全局特征) 是提出具有 T-Net 和最大池化层的深度学习架构的先驱,以实现特征不变性,同时将点云作为原始输入。之后,PointNet++[39]提出了一种改进的点云深度学习框架,它结合了点云的全局特征和局部特征。
最近的一些研究 [15, 22, 25, 47, 63] 也提出了有趣的基于点云的 CNN,用于 3D 场景理解任务。例如,为了有效地对点云中的局部结构进行建模,
RSNet [15] 提出连接切片池化层、RNN 层和切片非池化层。
PointCNN [62]设计了一个X变换层来置换局部特征阶段的点特征。
SO-Net [25] 还提出了一个置换不变框架来使用自组织图 (SOM) 处理点云识别任务。
虽然这些基于点云的 CNNs 已经取得了很好的性能,但是对于不规则点云数据的形状特征表示和特征不变性的研究仍然需要改进。
物体姿态估计方法
物体的 6D 姿态估计与场景 3D 分割算法密切相关。许多强大的 6D 姿态估计算法都基于准确的 3D 分割数据。近年来,已经提出了各种基于不同类型输入数据的目标姿态估计方法。根据这些方法,可以从 2D 数据、3D 数据或 2D-3D 融合中推断出姿态估计结果。以下是与我们研究相关的先前姿势估计工作的概述。
基于 2D 数据的姿势估计
专注于从 2D 数据估计姿势的方法依赖于单个 RGB 图像或图像序列。经典方法通过检测和匹配 2D 图像和已知对象模型之间的关键点来推断对象姿势 [2、8、9、43、67]。 PnP问题是如何计算相机在真实坐标系中N个空间点的位姿已知世界坐标系和这些空间点在图像上的投影。还提出了基于 PnP [23] 的预测关键点和求解结果的方法。由于深度神经网络显着改善了 2D 图像处理,研究人员已经研究了基于深度学习的姿态估计架构 [34、44、49、54、60、61]。可以通过使用 CNN 从 CAD 和真实工件图像中提取判别特征来估计视点 [10,30,31,58]。工作 [54] 使用神经网络回归已被 R-CNN 检测到的物体的姿势。向等人。通过从对象模型中聚类 3D 特征来训练视点相关的姿态估计器 [60, 61]。尽管这些方法在方向预测方面表现良好,但由于缺乏深度信息,来自 3D 场景的姿态估计仍然是一个挑战。此外,无纹理或无纹理的对象会给这些基于 RGB 的方法带来棘手的问题。
基于 3D 数据的姿势估计
已经提出了多种方法来解决来自 3D 数据的姿态估计问题,例如 RGB-D 数据和点云。经典的基于 RGB-D 的方法通常在从输入数据中提取特征后实现对应分组和假设验证 [4, 11, 12, 19, 42, 52, 57]。最近基于 RGB-D 的方法依赖于基于 CNN 的架构从 RGB-D 输入中提取特征并估计 6D 姿势。例如,李等人。将深度数据视为附加到 RGB 图像的附加通道,将四通道 RGB-D 输入馈送到 CNN 以进行对象姿态估计 [24]。或者,最近的一些研究也将点云作为深度学习架构的输入并获得了良好的性能,例如 Frustum PointNets [36] 和 VoxelNet [33]。然而,这些研究采用的3D特征提取方法相对粗糙,无法提供足够的物体形状信息。
2D-3D 融合的姿态估计
为了融合几何和外观信息,近年来提出了一些用于 6D 姿态估计的 2D-3D 融合方法。PointFusion [64] 是一项开创性的工作,它利用了 2D 图像和 3D 点云信息,而图像数据和原始点云数据分别由 CNN 和 PointNet 架构独立处理。 DenseFusion [55] 还提出在异构架构中融合 2D 外观和 3D 几何信息,并在 6D 姿态估计算法中取得了丰硕的成果。我们的工作主要与这些 2D-3D 融合方法有关。我们没有通过 PointNet 等点云深度学习架构从点云中提取形状特征,而是提出了一种通过基于 CNN 的架构提取形状特征的新颖方案,而输入是通过映射方法从初始点云转换而来的XYZ地图。
方法
我们的工作通常可以分为两部分:用于点云分类和语义分割任务的基于 Point DoN 的深度学习架构,以及基于 CNN 生成的 2D-3D 融合特征的 6D 姿态估计框架。两者的关系类似于数据流中的上下游关系。 6D 姿态估计是 3D 分割的下游。首先,我们将介绍3D形状模式描述符DoN,模式聚合模块PointDoN,以及基于PointDoN的点云深度学习架构。然后,我们将介绍基于点云XYZ坐标图的3D特征提取方法、2D-3D特征融合方法以及基于融合特征的6D姿态估计框架。
DoN 描述符和 PointDoN 模块
点云数据是利用深度传感器扫描物体外表面获得的具有原始空间坐标的海量采样点的集合。点云直接反映物体的外表面信息,包含丰富的形状图案。为了更好地提取点云数据的3D形状模式,处理点云的不规则性和无序性,提出点云3D形状模式描述符DoN。物体的外表面可以用一组三角形来近似,从中可以计算出一些额外的形状信息,例如多边形法线和分割角度。点云中的每个点都可以与其他两个相邻的点组合成一个三角形。此外,给定三角形三个顶点的 3D 坐标,可以计算出该三角形的法向量。以此类推,给定一个包含一个中心点和几个相邻点的局部点集,该中心点及其相邻点可以联合生成几个相邻的三角形,这些三角形包含丰富的局部3D形状模式信息。考虑到相邻三角形法向量的差异反映了物体外表面的局部形状,本文采用相邻三角形法向量的差异DoN作为形状模式描述符。可以将 DoN 描述符发送到神经网络中,以在后续步骤中提取高维形状特征。
相邻三角形的选择是DoN描述符计算过程的第一步。给定一个局部点集及其中心点,可以按特定顺序生成由点集中的点组成的一系列三角形。例如,假设在给定的局部点集中,P0 是中心点,P1是离中心点P0最近的点,P11是离P1最近的点,P12是离P1第二近的点。然后,顶点集P0、P1、P11和P0、P1、P12分别构成从局部点集中选出的前两个三角形M11和M12。接下来,从局部点集合中,选择离中心点P0第二近的点P2。如果 P2 和前面的点重叠,它会自动跳到下一个点。同样,P21 和 P22 是最接近 P2 的两个点。然后,顶点集合P0、P2、P21和P0、P2、P22分别构成从局部点集合中选出的第三和第四三角形M21和M22。这个过程是迭代执行的,直到遍历完所有的点。然后,生成局部点集的三角形并按特定顺序排列。一般来说,对于从给定的一组局部点中选出的所有三角形,它们的第一个顶点都是中心点,它们的第二个顶点是按照距中心点的欧几里得距离排列的。此外,它们的第三个顶点是根据距第二个顶点的欧几里得距离排列的。因此,给定一个局部点集及其中心点,其对应的三角形的选择和排序是固定的,与点集中点的排序无关,不受点云无序性的影响。
完成三角形的选择和排列后,根据三角形顶点的坐标计算三角形的法向量并进行归一化。然后,我们使用余弦相似度来衡量这些相邻三角形的法向量之间的差异。余弦相似度通过计算两个非零向量之间夹角的余弦来衡量向量的相似度。余弦相似度的值在区间 [0,1] 内。假设在三角形的选择过程中,一共生成了K个三角形,对应的有K个归一化的法向量,然后计算这对法向量之间的余弦相似度值,总计K × ( K − 1) /2 余弦相似度值。最后,将这些生成的余弦相似度值组合在一起形成输出 DoN 向量。
由于选择的三角形是根据给定点集中的点的空间坐标以特定的顺序生成的,尽管馈送到 DoN 描述符的局部点集中的点是无序的,但生成的 DoN 向量不会受到输入点的顺序。因此,DoN 描述符可以克服点云的无序性和不规则性带来的计算困难。更重要的是,DoN描述符直观地反映了用于逼近物体外表面的三角形法向量之间的差异,并包含物体局部外表面的曲率信息和形状模式信息。
为了通过深度学习方法聚合点云的多个 3D 形状特征,我们提出了一个名为 PointDoN 的形状特征提取模块。 PointDoN 模块融合了基于DoN的形状特征、空间坐标特征以及点云的RGB值等额外特征,实现特征融合。 PointDoN 模块是我们端到端点云几何深度学习架构的核心。给定一个局部点集及其中心点,PointDoN 模块将提取局部点集的多个特征并将它们聚合到中心点。
PointDoN 模块的输入是一系列局部点集及其中心点。这些中心点是通过最远点采样方法从原始点云中采样得到的。 FPS是一种保证点云采样稀疏性的方法。首先从一个随机点开始采样,选择离该点最远的点作为第二个采样点,然后选择离第二个点最远的点作为第三个采样点,以此类推,选择所有采样点。这一步的时间复杂度为O(N2),因为需要计算每个点与其他点的距离。中心点的相邻点分别通过KNN(k-nearest neighbor)算法得到,组成对应的局部点集。
PointDoN 模块的结构如图 2 所示。令 C1、C2、CP、CF 表示不同特征通道的数量。为了简单起见,我们以一个局部点集的多特征聚合过程为例来说明PointDoN的机制。输入局部点集中的每个点都与 CF 维度特征和 3D 空间坐标 (x,y,z) 相关联。对于我们的深度学习网络的第一层,CF 维度特征可以是空的,也可以是原始点云的一些额外特征,例如 RGB 颜色值;对于网络的其他层,CF-维度特征是从网络的前一层生成的高维特征。注意中心点在局部点集中的K个相邻点的3D坐标转换为相对3D坐标以中心点为原点的局部坐标系的坐标(x‘,y’,z‘),使得转换后的相对坐标可以表征点集的局部形状模式。给定输入的局部点集及其中心点,PointDoN模块的特征提取过程分为以下三个分支:
- DoN特征:首先将中心点的K个相邻点的相对坐标输入到DoN描述符中,计算出描述物体局部外表面地形特征的DoN向量。然后将 DoN 向量输入到 MLP(多层感知器)进行高维特征提取。最后,输出了一个 C1 维的 DoN 特征。
- 空间坐标特征:提取空间坐标特征的过程比较简单。将K个相邻点的相对空间坐标(x‘,y’,z‘)输入MLP进行高维特征提取,得到K×CP空间坐标特征。
- 点特征:首先将中心点的原始CF维特征扩展为K×CF维特征并与K×CP维空间坐标特征串联构成一个K×(CF+CP)维组合特征直接连接两个特征。然后将该组合特征输入到可分离的卷积层进行特征提取。最后,一个 C2 维点特征是一个输出。
接下来,将DoN特征与点特征连接起来,构成一个C维融合特征。此外,PointDoN 模块还利用残差模块在 C 维融合形状图案特征和 CF 维原始特征之间进行残差映射。中心点,输出中心点的C维特征。残差模块帮助模型更专注于学习一些形状特征的微小变化,并使模型对输出的变化更加敏感。然后,将 C 维中心点特征与中心点的原始坐标 (x,y,z) 结合起来,形成 PointDoN 模块的输出。至此,PointDoN 模块的局部多特征聚合过程就完成了。总之,PointDoN 模块的输入是一个带有中心点的局部点集,其中每个点都与一个 CF 维特征和 3D 空间坐标相关联。然后分别提取输入局部点集的DoN特征、空间坐标特征和点特征并聚合。在残差模块之后,PointDoN 模块的最终输出是与原始 3D 空间坐标和 C 维聚合门形状特征相关联的中心点。我们以局部点集的多特征聚合过程为例来描述上述过程中的PointDoN模块。这个过程可以扩展到N个局部点集,即PointDoN模块的输入是N个带有中心点的局部点集,PointDoN模块的输出是N个与N×3维空间坐标相关联的中心点, N × C 维聚合形状特征。因此,PointDoN 模块完成了对一系列局部点集的多个 3D 形状模式的提取和聚合。
点云分类和分割架构
基于PointDoN模块,我们提出了一个端到端的点云几何深度学习框架,可以应用于点云数据处理任务,如点云分类和 3D 场景语义分割。对于 3D 对象分类任务,我们的深度网络的输入是对象的点云数据,输出是预测的对象类别。对于 3D 场景语义分割任务,我们的深度网络的输入是场景的点云数据,输出是每个点属于每个语义类别的置信度得分,置信度最高的语义类别是该点的预测类别。图 3 显示了一个基于 PointDoN 模块的简单分层架构。请注意,这种分层架构中的网络层数可以灵活调整。 PointDoN 模块是一个附加的可选模块,可以灵活地插入到这个分层网络中的每一层之前。
对于 3D 场景语义分割任务,我们的分层深度学习网络由编码器和解码器组成,类似于 [35] 中用于 2D 图像语义分割的 Conv-Deconv 结构。编码器的任务是将输入的密集数据逐层变换,得到高维特征表示,而解码器的任务是将编码器提取的特征变换到像素空间,得到语义分割。在我们的分层网络的编码过程中,有两个关键模块:PointDoN 模块和 Sample 和 Group 模块。 PointDoN 模块已在 A 节中介绍。Sample 和 Group 模块类似于 [39] 中的 Sampling 层和 Grouping 层。
在编码过程中,Sample and Group 模块的输入是用灰点表示的初始点云数据,如图 3 所示。首先对输入点云迭代应用最远点采样,选择一个均匀分布的中心点子集,由图 3 中的一系列蓝色点表示。然后对于每个中心点,通过 KNN 搜索选择其 K 个相邻点,与中心点一起形成一个局部点集,如图 3 中的蓝点圆圈所示。每个局部点集对应一个局部区域包含点云中的形状模式信息。最后,将局部点集输入到 PointDoN 模块中,用于局部 3D 形状特征提取和聚合。每个局部点集的形状特征在点集的中心点聚合,输出点的个数等于中心点的个数,小于输入点的个数。接下来,这些输出点将作为新的输入点馈送到网络的下一层。一般来说,在编码过程中,对点云进行逐层下采样,并输入到PointDoN模块进行特征提取和聚合。每一层的点数在减少,而在每一点聚合的特征却在增加,包含更深更丰富的信息。
在解码过程中,每一层的点都会被逐层上采样。同时,点的个数和3D坐标与编码过程中对应的层一致。因此,网络最后一层输出的点的数量和 3D 坐标与输入到网络第一层的初始点云相同。上采样层以插值方式进行上采样,与PointDoN模块交替组合构成解码过程。在解码过程的每一层,输入点集首先被送到PointDoN模块进行局部特征提取和聚合,然后由插值模块以KNN方式进行三线性插值。在逐层解码过程之后,最终特征将传播到原始输入点云。输出点的数量与输入点云中的点数量相同,但每个输出点都关联着更丰富、更深的特征。最后,利用几个全连接层(FC层)来预测每个点的每个语义类的置信度,置信度最高的语义类是该点的最终预测语义类。在对3D场景点云中每个点的语义类别进行预测后,就完成了3D场景语义分割的任务。分类和分割的损失函数都是交叉熵损失。
对于 3D 对象分类任务,我们的分层深度学习网络的编码过程与为 3D 场景语义分割任务设计的深度网络的编码过程相同。通过逐层采样和分组模块和PointDoN模块后,输出点将被发送到全连接层进行进一步的特征提取。然后使用均值池化操作获得每个对象类别的全局平均置信度,增加预测的稳定性,置信度最高的对象类是预测类。整体类后,对输入的3D物体点云进行预测,完成3D物体分类任务。
基于 2D 外观和 3D 几何特征的 6D 姿态估计方法
提取 2D 外观和 3D 几何特征
在点云中的每个对象被分割后,我们将分割对象的数据用于后续任务。因此,我们可以根据3D场景语义分割的结果将单个物体点云从场景点云中分离出来,对目标物体的单个点云进行6D位姿估计,从而避免复杂物体的干扰。可以避免姿势估计任务的背景,也可以提高处理效率。
针对现有基于2D图像和3D点云的6D姿态估计方法的不足,我们提出了一种基于2D-3D特征融合的6D姿态估计方法。提取并融合2D图像和3D点云的高级特征,基于融合特征进行6D姿态预测。与基于PointNet等点云深度学习框架提取点云特征的方法不同,我们的方法将原始点云的3D空间坐标(x,y,z)映射到2D平面上来映射输入点云。映射特征具有三个通道,对应于原始点云的 (x,y,z) 坐标。我们考虑使用成熟的 2D CNN 从点云地图中提取 3D 几何特征,其效率高于点云深度学习框架。同时,在提取 3D 几何特征的同时,另一个 2D CNN 用于从输入的 RGB 图像中提取 2D 外观特征(例如,颜色、纹理、形状和其他平面信息)。然后,基于之前的 2D 图像像素与 3D 点的映射关系,将来自两个不同数据域的 2D 外观特征和 3D 几何特征逐个像素融合,然后通过融合特征预测物体的 6D 位姿。
2D图像特征提取网络对目标物体对应的RGB图像区域进行编码提取特征,输出包含目标物体2D外观信息的高维特征。 2D图像特征提取网络的输入是基于先前获得的语义分割结果裁剪的目标对象图像块。场景语义分割结果可以通过2D图像语义分割网络或3D点云语义分割网络获得。由于重点本节的内容是解释所提出的 6D 姿态估计算法,我们采用 PoseCNN [62] 提出的语义分割框架,以便于解释和与其他姿态估计算法进行比较。语义分割框架以RGB图像为输入,通过encoder结构提取图像的高维特征,通过decoder结构生成语义分割结果。记录目标对象对应的像素索引,在后续的像素点对特征融合步骤中根据这些像素索引进行2D-3D特征融合。 2D图像特征提取网络的输入是大小为H×W×3的目标物体图像块,其中H是图像块的高度,W是图像块的宽度,3表示图像块有RGB 三通道。该网络的输出是大小为 H × W × C2 的特征图,C2 是提取的 2D 外观特征的维度。 2D 图像特征提取网络可以是任何基于 CNN 的编码器-解码器网络。在本文中,2D 特征提取网络由 ResNet18、金字塔池化模块和一组上采样层组成。其中,ResNet18 可以在提取输入图像的高级特征的同时加速收敛并避免模型退化。金字塔池化模块可以融合上下文信息,以提高感知细节和复杂场景的能力。上采样层负责将特征图恢复到与输入图像相同的大小,为后续阶段的像素点对特征融合做准备。
3D点云特征提取网络对目标对象对应的3D点云特征进行编码提取,输出包含目标对象3D几何信息的高维特征。完成之前的场景语义分割任务后,就可以得到从场景中分割出来的目标对象的点云数据,进而提取3D点云特征。与基于Point Net框架提取点云特征的方法不同,我们通过映射的方法将点云数据投影到2D平面上,然后使用成熟的2D CNN提取点云特征。
点云XYZ图的生成方法如图4所示。
以点云采集过程为例以球体为例,通过3D相机从一定角度采集点云,在面对相机的半球表面采样得到单视点点云数据。相机坐标系中的(x,y,z)坐标与相机采集到的2D图像中的像素索引(m,n)的对应关系为:
其中 (x, y, z) 是该点在相机坐标系中的 3D 坐标,(m, n) 是该点在 2D 图像平面中对应的像素的行列索引,d 是点的深度,sc 是相机的缩放参数。相机内参(fx、fy、cx、cy)分别表示焦距和图像主点在x、y两个方向上的坐标,以像素为单位。根据(1)所示的对应关系,可以从2D图像和深度信息中得到点云的3D空间坐标(x,y,z):
通过行列索引和二维图像中像素点的深度值可以得到图像中像素点对应的点云数据中点的(x,y,z)坐标,从而使点云中的点可以根据二维图像平面中像素的排列方式进行排列。即将点云3D坐标映射到2D平面,形成一个3通道的2D图,其值分别对应点云的(x,y,z)坐标,然后点云XYZ图获得。由于点云XYZ图是一个三通道的2D图,成熟的2D CNNs可以用来提取点云的几何特征。在这里,我们使用与 2D 特征提取网络相同的网络,包括ResNet18 和金字塔池化模块,从点云 XYZ 地图中提取 3D 几何特征。
2D-3D 特征融合和 6D 姿态估计
通过2D图像特征提取网络和3D点云特征提取网络完成2D外观特征和3D几何特征的提取,得到2D特征图和3D特征图。特征图的大小与输入图像的大小相同,每个像素或点都有其高级特征。接下来,将融合 2D 外观特征和 3D 几何特征。融合过程是逐像素点对的特征融合,即将每个像素点对的特征拼接在一起。采用这种像素点特征融合方法而不是融合2D全局特征和3D全局特征的原因是全局特征在遮挡、截断或语义分割不准确的情况下可能会部分缺失或包含一些与目标对象无关的特征,这将影响后续的姿态估计。但是,通过采用像素点特征融合的方法,每个像素点对的特征可以独立地用于预测目标物体的位姿,从而避免了遮挡等问题带来的不利影响。(局部特征解决遮挡问题)
具体的 2D-3D 特征融合方法如图 5 所示。令 C、C1、C2、C3、C4、Cout 表示不同特征通道的数量。
- 首先,输入图像进入语义分割网络、2D特征提取网络和3D特征提取网络,分别得到分割结果、2D特征图和3D特征图。通过语义分割结果(seg mask)对2D特征图和3D特征图进行裁剪,得到目标的2D特征和3D特征对象(红色工件),
- 然后对特征进行肥大化,得到目标对象的 2D 特征和 3D 特征,大小为 N×C1,其中 N 为分割掩码中包含的像素和点数,C1 为特征通道数.
- 接下来,将目标对象的 2D 和 3D 特征输入到 MLP 中,以提取大小为 N×C2 的高维特征。
- 然后将每个像素点对对应的2D-3D特征分别连接起来,输入MLP得到N×C3维特征,
- 然后通过平均池化操作提取1×C4维全局2D-3D特征.最后,N × C1 维 2D 低级特征、N × C1 维 3D 低级特征、N × C3 维 2D-3D 高级特征和 N × C4 维全局特征被连接在一起并输入到 MLP 以获得最终输出 N × Cout-dimension 2D-3D 融合特征。
该方法提取的2D-3D融合特征融合了2D外观特征和3D几何特征,同时充分融合了浅层信息、深层信息和全局信息。
完成上述步骤后,我们得到了2D-3D融合特征,其大小与目标物体区域包含的像素点对的数量一致,每个像素点对对应一个高维融合特征。下一步是基于 2D-3D 融合特征估计目标物体的 6D 位姿。 6D位姿变换包括旋转变换和平移变换。旋转变换可以用旋转矩阵、欧拉角或四元数的形式表示。旋转矩阵存在冗余问题,欧拉角在表示旋转时存在云台锁定问题,所以我们使用四元数来表示旋转变换。那么目标物体的6D姿态估计可以表示为作为四元数 (w, x, y, z) 和平移向量 (t1, t2, t3) 的预测。通过将 N 个像素点对的 C 维 2D-3D 融合特征独立输入到 MLP 中,将得到 N 个预测的 (w, x, y, z), (t1, t2, t3) 和相应的置信度分数。其中,置信度最高的(w,x,y,z)和(t1,t2,t3)作为最终预测的四元数和平移向量,即目标物体的预测6D姿态。
在姿态估计深度学习模型的训练过程中,我们通过在真实物体模型上采样的点与根据估计姿态变换的模型上的对应点之间的距离来定义损失函数。对于N次预测位姿变换中的第i个位姿变换矩阵Ti',目标物体对应的真实位姿变换矩阵为T,从3D模型表面随机采样K个点,其中目标物体的3D坐标第 m 个点是 Pm。那么第 i 个预测的 6D 位姿与真实 6D 位姿之间的距离表示为 Di:
其中 T × Pm 表示真实 6D 位姿变换后第 m 个点的 3D 坐标,T·i × Pm 表示第 i 个预测的 6D 位姿变换的 3D 坐标。对于K个点中的每一个,计算真实6D位姿的3D坐标与预测6D位姿的差值,平均差值计算为第i个预测位姿与真实位姿的距离。该距离计算公式适用于非对称的普通物体模型。对于具有对称性的对象模型,距离 Di 是根据真实位姿变换后点的 3D 坐标与预测位姿变换后其对应最近点的 3D 坐标之间的差值计算的。同时,第 i 个预测位姿有一个置信度分数 ci ,用于对距离 Di 进行加权。在工作 [55] 之后,为了防止模型产生较低程度的置信度以减少损失,在损失函数中添加了一个置信度项。整体损失函数为:
其中N是2D-3D特征融合网络输出的特征向量个数,对应N个像素点对,生成N个预测位姿。 是一个常数参数,用于平衡加权距离和正则项。损失函数使模型能够不断学习最小化差异的模型参数在训练过程中预测姿势和地面真实姿势之间的关系。
此外,在网络末端添加了工作 [55] 提出的迭代优化模块。输入点云根据上一个训练步骤的预测位姿进行变换,变换后的点云输入到下一个训练步骤的网络进行编码,迭代生成预测的新位姿。在姿态估计深度学习模型的训练过程完成后,训练好的模型可以用来对输入图像上的目标物体进行姿态估计。类似地,该模型将生成 N 个预测的 6D 姿势,并选择具有最高置信度的估计姿势作为最终输出。
实验
在本实验部分,我们对基于 PointDoN 的深度学习架构和基于 2D-3D 特征融合的 6D 姿态估计框架进行了多项实验。本文提出的基于PointDoN的点云深度学习模型可应用于3D物体分类和3D场景语义分割等点云数据处理任务,基于2D-3D特征融合的6D姿态估计框架可以同时利用2D外观信息和 3D 几何信息有效地估计目标对象的 6D 位姿。
为了验证基于 PointDoN 的点云几何深度学习框架的有效性,我们分别对 3D 对象分类和 3D 场景语义分割任务进行了实验。其中,3D物体分类任务的评价指标是accuracy,3D场景语义分割任务的评价指标是整体accuracy和mean IoU(Intersection over Union)。我们对以下两个公共数据集进行了实验:
- ModelNet40 [59]:ModelNet40 是 3D 形状分类的基准数据集。它由 40 个人工对象类别的 12,311 个 3D CAD 模型组成。在实验中,我们采用PointNet中ModelNet40的点云数据版本作为实验数据集,采用数据集的官方划分方法,训练/测试拆分为9,843/2,468
- Stanford Large-Scale 3D Indoor Spaces [1]:S3DIS 数据集是斯坦福大学制作的大型 3D 室内场景数据集。该数据集包含来自 6 个区域(包括 271 个房间)的 3D 室内场景点云数据。点云数据由 Mat terport 扫描仪扫描。点云中的每个点都有3D空间坐标(x,y,z)和RGB颜色信息,并标注了13个物体的语义标签类别。在实验中,我们采用与PointNet相同的方式将S3DIS数据集分为训练集和测试集,并使用k-fold交叉验证方法来评估3D场景语义分割算法的性能和泛化能力。
为了验证我们基于 2D-3D 特征融合的 6D 姿态估计框架的有效性,我们在 LINEMOD 数据集 [11] 上进行了实验,并将性能与现有的代表性姿态估计算法进行了比较。一些著名的数据集已经包含了 3D 点云场景分割的结果。如果使用Point DoN来分割3D场景,可能很难单独比较控制变量下6D位姿估计算法的质量。为此,我们特意使用与相关工作相同的数据集处理方法,即使用PointNet对原始点云数据进行3D场景分割任务。得到这些分割结果后,就很容易比较我们后续的 6D 姿态估计算法的表现了。 LINEMOD 数据集被传统的姿态估计算法和深度学习姿态估计算法广泛使用。类似于基于深度学习的姿态估计算法[27、40、53、55],我们使用[5]中提出的数据集划分方法。 LINEMOD数据集包含13类无纹理对象,其中eggbox和glue是对称对象,其他11类是非对称对象。每类对象分为训练集和测试集。在训练集中,每个类大约有 200 张图像,在测试集中,每个类大约有 1000 张图像。 LINEMOD 中的对象是无纹理的,每个图像包含七个或八个对象。物体排列密集,相互遮挡,光照、背景等条件多种多样。这些因素给 6D 姿态估计任务带来了挑战。在之前的工作之后,我们使用工作 [12] 提出的 ADD 度量和 ADD-S 度量来衡量姿态估计模型的性能。 ADD 和 ADD-S 分别计算非对称和对称对象的预测姿态变换的 3D 模型点与目标模型点之间的平均距离。我们遵循先前的工作 [12, 49, 53],并通过计算准确度来评估姿势估计模型的性能。如果 ADD 或 ADD-S 在物体直径的 10% 以内,则认为预测姿态是正确的,准确率是姿态估计正确的样本与样本总数的比值。
3D对象分类
我们在 ModelNet40 基准数据集上进行了 3D 对象分类实验。从点云ModelNet40 数据集的数据,我们使用数据集在每个对象模型的点云数据的外表面上提供的 2048 个点作为我们基于 PointDoN 的点云几何深度学习框架的输入。本实验采用基于PointDoN模块的点云分类网络架构,由6个编码层和2个全连接层组成。每个编码层的输入点集中的点数为(2048、768、384、384、128、128)。在这 6 个编码层中,每个输入中心点和最近的 K 个点形成一个局部点集,并进入 Point DoN 模块提取局部 3D 几何特征。在 6 个编码层中,K 分别等于 (8, 8, 12, 12, 16, 16)。
如模型部分所述,编码过程由 Sample and Group 模块和 PointDoN 模块组成,其中 PointDoN 模块可以灵活选择并插入每一层。在这个实验中,我们在每个 Sample 和 Group 模块之前插入了 PointDoN 模块。如果一个编码层的输入点数与下一个编码层的输入点数相同,则该编码层的Sample and Group模块不进行下采样操作,即所有输入点都是用作中心点来生成它们的局部点集并提取局部 3D 形状特征。此外,在编码阶段使用扩张操作来扩大感受野,提高网络性能,同时网络参数量保持不变。在网络的最后一个全连接层之前,我们使用 dropout 方法随机灭活 50% 的神经元,以避免网络在训练集上过度训练。同时,在训练阶段,我们随机旋转和缩放训练数据以提高模型的泛化能力,并使用 Adam 优化器 [20] 进行算法优化。
分类任务通常被视为评估深度神经网络性能的试金石,因为在分类任务上表现出优异性能的深度神经网络通常可以很好地适应其他任务并表现出优异的性能。在 3D 物体分类任务中,我们以准确率作为评价指标来评价每个模型的性能。我们在 ModelNet40 数据集上评估了 3D 对象分类模型的性能。表 1 显示了基于 PointDoN 的点云深度学习网络在 3D 对象分类任务上的性能,并将性能与以各种类型的 3D 数据作为输入的多种代表性方法进行了比较。从表 1 可以看出,基于 PointDoN 模块的点云分类模型比其他基于各种 3D 输入的方法具有更好的性能。表 1 列出了各种具有竞争力和代表性的 3D 对象分类模型。表 1 中显示的所有其他方法的准确度均为实验结果在他们的论文中提供,验证模型效果的方法是相同的。
与基于八叉树的方法(O-CNN [56])、基于多视图图像的方法(MVCNN [48])和基于点云的方法(PointNet [37]、PointNet++ [39]、PointGrid [22]、PointCNN [ 26],A-SCN [63]),实验表明我们的基于 PointDoN 的 3D 对象分类算法具有更高的准确性。在这些具有代表性的方法中,PointNet++ 和 PointCNN 都使用端到端的分层网络架构,PointNet 和 PointCNN 都设计了用于特征对齐的转换网络,但特征转换网络缺乏可解释性。我们的基于 PointDoN 的点云分类网络与 PointNet++ 和 PointCNN 具有相似的端到端分层网络结构,但基于 ModelNet40 分类的比较结果表明,我们的方法比这两种方法具有更好的性能,这表明本文提出的PointDoN模块可以提高网络性能,取得更好的分类效果。请注意,在这个实验中,作为我们网络输入的 2048 个点只有 3D 空间坐标(x、y、z),没有其他信息。基于相似的层次结构和相同的输入(只有 (x, y, z) 坐标,没有 RGB 颜色值),我们的网络的准确率比 PointNet++ 提高了 1.7%,由此可以推断,本文提出的PointDoN模块可以更好地提取点云的几何特征,预测点云的类别。实验结果表明,基于PointDoN的几何深度学习模型的优越性能证明了我们的算法具有更好的3D视觉感知能力。
3D场景语义分割
除了 3D 对象分类任务,我们还在大型 3D 场景语义分割任务上评估我们的算法。 3D 场景语义分割任务比 3D 对象分类任务更具挑战性,因为它要求网络具有更准确的认知能力。我们在 S3DIS 数据集上进行实验。 S3DIS 数据集是具有 13 个语义类别标签的大型室内 3D 场景点云数据集。在 3D 场景语义分割任务中,我们基于 PointDoN 的深度学习网络的输入是具有 3D 空间坐标(x,y,z)和颜色值(r,g,b)的 3D 场景点云数据,以及输出是对输入 3D 场景中每个点的语义类别标签的预测。我们使用PointCNN [26]中提出的点云数据预处理方法来准备训练所需的S3DIS数据。先将点云数据按房间划分,然后将每个房间的点云数据按照1.5×1.5 m2的大小划分成3D空间块,每个3D空间块中的点云数据构成一组独立的输入数据.
在本实验中,我们基于 PointDoN 的语义分割网络由 6 个编码层、6 个解码层和 2 个全连接层组成。我们在每个空间块中随机抽取 2048 个点作为模型训练的网络输入,其中每个输入点由格式为 (x, y, z, r, g, b) 的 6 维向量表示。在编码阶段,每个编码层的输入点数为(2048, 768, 768, 384, 384, 128),每个编码层的Sample and Group模块中的相邻点数为(8, 12 , 12, 16, 16, 16)。与 3D 物体分类任务的训练过程类似,我们在编码阶段使用 dilation 操作来增加感受野,并使用 dropout 方法在最终全连接层之前随机失活 50% 的神经元,以避免网络从在训练集上过拟合。同时,在训练阶段还对输入数据进行随机旋转和缩放,以提高模型的泛化能力。在训练阶段,使用初始学习率为 0.001 的 Adam 优化器进行算法优化。
在评估模型性能时,可以将 3D 场景语义分割任务转化为逐点的点云分类任务,即为点云中的每个点预测一个语义类别,并判断其是否为与ground truth语义类别标签相同。在 3D 场景语义分割任务中,我们使用整体准确率和平均 IoU 作为评估指标来评估每个模型的性能。我们在 S3DIS 数据集上评估 3D 场景语义分割模型的性能。表 2 显示了我们基于 PointDoN 的点云深度学习网络与其他代表性方法在 3D 场景语义任务上的比较结果。与一系列适用于点云场景语义分割任务的典型深度学习方法相比,我们的方法具有更好的性能。
从表 2 可以看出,我们基于 PointDoN 的点云场景语义分割模型整体准确率提高了 1.88%,平均与之前的一些方法(如 PointCNN 和 RSNet)相比,IoU 降低了 1.25%。
除了整体准确率和平均 IoU,我们还计算了 S3DIS 数据集的每个语义类别的 IoU,以衡量各种 3D 场景语义分割算法的性能。表 3 显示了 S3DIS 数据集上所有类别的 IoU 比较结果。从表 3 可以看出,对于大多数语义类别,我们基于 PointDoN 的语义分割模型优于其他代表性方法。对于一些令人困惑的语义类别,如墙、板、杂物等,我们的方法比其他表示方法实现了更高的 IoU。图 6 显示了我们的语义分割模型在一些示例 3D 场景中的可视化结果。第一列显示初始点云,第二列显示我们模型的语义分割结果,第三列显示ground truth语义分割,其中不同的类别用不同的颜色表示。这些示例场景的可视化结果表明,我们基于 PointDoN 的语义分割模型可以应对各种 3D 场景语义分割任务,为各种复杂类别输出详细、稳健和平滑的预测结果。
6D 姿态估计
在 6D 姿态估计实验中,我们首先探索不同 2D-3D 特征融合网络架构的性能,然后在 LINEMOD 数据集上与多种具有代表性的姿态估计方法进行比较。
为了研究基于点云 xyz 图的 3D 特征提取方法是否优于基于 RGB-D 图像的方法,并探索最佳的 2D-3D 特征融合网络架构,我们测试了四种不同的网络结构,特征提取网络是相同的。这四种不同的网络架构如下:
- RGB-D 特征:该网络的输入是 RGB-D 图像。通过特征提取网络提取高层特征,利用输入RGB-D图像的高层特征估计目标物体的6D位姿。
- RGB 特征 + Z 特征:该网络的输入是 RGB 图像和点云 z 图(仅由点的 z 坐标组成的单通道图)。特征提取网络用于提取二维特征和z方向特征。将每个像素点对的特征串联在一起,通过融合特征对目标对象进行6D姿态估计。
- RGB 特征 + XYZ 特征:这个网络的输入是一张 RGB 图像和一张点云 xyz 图。通过特征提取网络提取2D特征和3D特征,并采用像素点特征融合的方法进行融合。最后通过融合特征对目标物体进行6D姿态估计。
- RGB-XYZ 特征:该网络的输入是由 RGB 图像和点云 xyz 图拼接而成的 6 通道图,通过特征提取网络提取高级特征。来自 6 通道图的高级特征用于估计目标对象的 6D 位姿。
我们在 LINEMOD 数据集上对上述四种不同的网络结构进行姿态估计实验。在评估模型性能时,以姿态估计的准确性作为衡量指标。如果 ADD 或 ADD-S 小于对象直径的 10%,则认为姿态估计是正确的。四种结构的特征提取网络由 ResNet18、金字塔池化模块和一组上采样层组成。每个上采样层都添加了一个 dropout 层,以随机灭活 30% 的神经元,以防止模型在训练集上过度拟合。在训练阶段,为了提高模型的泛化能力,在点云数据中加入随机噪声。使用初始学习率为 0.0001 的 Adam 优化器来训练模型。
表 4 显示了 LINEMOD 数据集上四种网络结构的姿态估计精度。通过比较四种模型的位姿估计精度可以看出,基于RGB-XYZ特征的模型略好于基于RGB特征+XYZ特征的模型,并且这两个模型的性能包含XYZ 特征远远优于基于模型的基于 RGB-D 特征和基于 RGB 特征 + Z 特征的模型,仅从 2D RGB 图像和深度信息中提取特征。基于 RGB 特征 + Z 特征的模型在提取 3D 特征时仅使用由点云数据的 z 坐标组成的单通道图作为输入,导致提取的信息单调,无法包含丰富的 3D 几何特征tures,因此该模型的性能最差。基于RGB-D特征的模型将深度信息和RGB图像作为一个整体进行特征提取,比基于RGB特征+Z特征的模型更加丰富。但是,由于缺乏 3D 几何信息,这两种模型的效果比采用点云 XYZ 特征的模型差。然而,这两种利用XYZ特征的模型都可以从点云提取几何特征。基于 RGB 特征 + XYZ 特征的模型和基于 RGB-XYZ 特征的模型分别实现了 96.2% 和 96.8% 的姿态估计精度。两者的差异只有0.6%。通过比较LINEMOD数据集所有类别的评估结果可以看出,基于RGB-XYZ特征的模型在每个类别中的准确率都较高且稳定,说明了基于2D-3D的物体姿态估计算法特征融合有效且稳健坐标中提取3D点云几何特征,其位姿估计结果比仅使用深度信息的两种模型有很大的提升。
此外,我们还将我们的姿势估计模型与 LINEMOD 数据集上的先前代表性方法进行了比较。表 5 显示了姿态估计精度的比较结果。由于本节重点介绍目标物体的 6D 姿态估计,为了保证比较的公平性,实验中的所有姿态估计方法都使用与 PoseCNN [62] 中相同的语义分割掩码。从表 5 可以看出,我们的方法在 LINEMOD 数据集上的平均精度更好比这些有代表性的姿态估计方法。其中,BB8 [40] 和 DeepIM [27] 将包含每个像素的 RGB 通道值的 RGB 图像作为姿态估计的输入数据,Implicit [49] 和 SSD-6D [18] 将 RGB-D 图像作为姿态估计的输入数据。 PointFusion [64] 和 DenseFusion [55] 使用 CNN 提取 RGB 图像特征和 PointNet 提取点云特征,并使用 2D-3D 融合特征来估计目标的 6D 位姿。我们的方法还使用 2D-3D 特征融合来执行姿态估计。然而,与PointNet相比,我们的基于点云XYZ图的3D特征提取方法在3D几何特征提取方面更加精确,因此我们的方法获得了更准确的姿态估计结果。图 7 可视化了我们的 6D 姿态估计模型和 DenseFusion 所做的一些样本预测,这是 LINEMOD 数据集上最先进的方法。第一行显示了 LINEMOD 数据集的一些原始图像,第二行显示了 DenseFusion 的姿态估计结果,第三行显示了我们模型的姿态估计结果。我们根据它们的姿态估计结果将不同模型的点云投影到原始图像中。正如我们所看到的,DenseFusion 无法估计瓶子和蛋盒的姿势,而我们的方法做出了正确的预测。与这些代表性方法相比,我们的方法在平均准确率上表现最好,并且对大多数类别的准确率最高,表明我们的方法具有很强的适应性和鲁棒性。
结论
为了更好地提取点云数据的形状特征,本文设计了点云的3D形状描述符和深度3D形状特征提取模块。本文基于形状特征提取模块,构建了用于点云分类和分割任务的点云深度学习模型。此外,本文提出了一种基于 2D-3D 特征融合的 6D 姿态估计方法。我们通过将原始点云的 3D 空间坐标 (x, y, z) 映射到 2D 平面来生成点云 XYZ 图,因此成熟的 2D CNN 可以对点云 XYZ 图进行卷积操作以获得几何特征萃取。来自不同数据域的 2D 外观特征和 3D 几何特征逐像素融合,目标对象的 6D 姿态由融合特征预测。对各种基准数据集的实验表明,与以前的流行方法相比,我们的方法表现良好。