摘要
识别大量相同类别的被遮挡物体是一个非常具有挑战性的问题。在一个常见的拣箱子场景中,许多相同的物体堆叠在一起,并且这些物体的模型是已知的。因此,可以忽略语义信息;相反,拣箱子的重点放在实例的分割上。基于这一任务需求,我们提出了一种快速点云聚类(FPCC)算法用于拣箱场景的实例分割。FPCC包括一个名为 FPCC-Net 的网络和一种快速聚类算法。FPCC-Net 有两个子网,一个用于推断聚类的几何中心,另一个用于描述每个点的特征。FPCC-Net提取每个点的特征,同时推断每个实例的几何中心点。然后,提出的聚类算法将剩余的点聚类到特征嵌入空间中最近的几何中心。
代码: ttps://github.com/xyjbaal/FPCC
引言
由于三维测量技术的进步,三维点云的获取不再困难,如被动立体视觉、相移法、灰度编码等方法。因此,高效、有效地处理三维点云成为一个新的挑战。在现实应用中,三维点云分割通常需要作为预处理步骤。三维点云分割有助于自动驾驶、人-机器人交互、机器人拣箱、姿态估计、视觉伺服和各种类型的三维点云处理。在机器人领域,捡箱的场景在过去的十年里受到了很大的关注。在这个场景中,大量相同类别的物体被堆叠在一起。因此,这类场景对快速实用的三维点云实例分割提出了很高的要求。
目前,卷积神经网络在三维点云实例分割中的应用还远远落后于实际应用。技术关键点概括如下:1)卷积核更适合处理结构化信息,而原始三维点云是非结构化、无序的;2)高质量、大规模图像数据集的可用性推动了深度学习在二维图像上的应用,但三维点云数据集较少;3)基于cnn的三维点云实例分割耗时较长。
对于关键点1),PointNet[31]被提出作为第一个适合处理非结构化、无序的三维点云的框架。PointNet没有将3D点云数据转换为3D体素网格(如[32,33]),而是使用多层感知(multi-layer perceptions, MLPs)来学习每个点的特征,并采用max-pooling来获取全局信息。PointNet的开创性工作促进了进一步的研究,一些研究人员引入了PointNet的结构作为他们的网络的骨干[34,35,36]。众所周知,PointNet独立处理每个点,这导致学习较少的局部信息[34,37]。为了能够学习三维点云的局部信息,[38,39,37,40,41]中提出的方法通过探索相邻点来提高网络感知局部信息的能力。
对于关键点2),一些著名的3D点云数据集包括室内场景数据集如S3DIS[42]和SceneNN[43],驾驶场景数据集如KITTI数据集[44]和apolo - southbay数据集[45],以及单一对象识别数据集如ShapeNet数据集[33]。对于机器人拣箱来说,提供各种工业对象的通用训练数据集是一项艰巨而艰巨的工作,目前还没有这样的数据集。通过仿真综合训练数据为缓解训练数据集的缺乏提供了一种可行的方法[46,47,48,49,50,51]。
对于关键点3),CNNs在3D点云上分割实例耗时的原因如下:实例分割定位不同的实例,即使它们属于同一类。由于场景中的实例是无序的,并且实例的数量是不可预测的,所以不可能用一个固定张量来表示实例标签。因此,实例分割的研究主要包括两种方法:一种是需要对象检测模块的基于提议的方法,另一种是不需要对象检测模块的不基于提议的方法。Mask R-CNN[52]属于第一种方法。Mask R-CNN将实例分割问题分解为单个对象的目标检测和像素级分割。基于建议的方法需要复杂的后处理步骤来处理许多建议区域,并且在强遮挡情况下性能较差。对于三维点云的实例分割,大多数研究者采用的是proposal-free方法。proposal-free方法通常先进行语义分割,然后通过聚类或度量学习来区分不同的实例,这是一个耗时的过程[35,36,53,48]。
本文旨在设计并提出一种由FPCC-Net组成的快速点云聚类实例分割方法FPCC,以及一种基于FPCC-Net输出的快速聚类算法。FPCC-Net是一种图卷积神经网络,它可以在实例级有效地分割三维点云,无需任何人工标注数据的训练。FPCC-Net涉及到将所有点映射到一个判别特征嵌入空间,它满足以下两个条件:1)同一实例的点具有相似的特征,2)不同实例的点在特征嵌入空间中广泛分离。同时,FPCC-Net为每个实例寻找中心点,并将中心点作为聚类过程的参考点。然后基于中心点进行快速聚类。
本工作的主要贡献如下:
- 提出了一种三维点云的高速实例分割方案。
- 该方案由一种新的三维点云网络FPCC-Net和一种新的中心点聚类算法组成。
- 为了提高FPCC-Net的性能,在损失函数中引入了手工注意机制,并在消融研究中验证了其有效性。
- 实验表明,与现有的方法相比,采用合成数据训练的FPCC-Net对真实数据具有良好的性能。
- 我们为未在XA Bin-Picking数据集[48]中标记的部件注释实例信息。完整的数据集可以在网址://github.com/ xyjbaal/FPCC上找到。
本文的其余部分组织如下。第二部分讨论了图像和三维点云实例分割的研究进展。第三部分介绍了FPCC-Net的结构和原理。第4节提供了实验分析。最后,第五部分对全文进行总结。
在本文中我们使用以下符号。实数集用 R \mathbb R R,点 i i i 的坐标表示为 p i = ( x i , y i , z i ) ∈ R 3 p_i=(x_i,y_i,z_i) \in \mathbb R^3 pi=(xi,yi,zi)∈R3,包含了 N N N 个点的点云为 P = { p 1 , p 2 , p 3 , . . . , p N } \mathbb P=\{p_1,p_2,p_3,...,p_N\} P={ p1,p2,p3,...,pN},距离函数表示为 d ( a , b ) = ∥ a − b ∥ 2 d(a,b)=\lVert a-b\rVert _2 d(a,b)=∥a−b∥2。其中 d ( a , b ) d(a,b) d(a,b) 表示 a , b ∈ R n a,b \in \mathbb R^n a,b∈Rn 之间的欧氏距离,对于一个矩阵 A ∈ R n × m A \in \mathbb R^{n \times m} A∈Rn×m,A的第 ( i , j ) (i,j) (i,j) 个元素表示为 a ( i , j ) a_{(i,j)} a(i,j)。
相关工作
随着cnn的出现,从图像和三维点云中提取特征的方法已经从手工设计转变为自动学习[54,55,56]。实例分割是计算机视觉领域中最基本的任务之一,备受关注。在二维(2D)图像上的分割几乎已经得到了充分的发展[57,58],但三维点云分割仍然不发达。
二维实例分割
K. He等人在[52]中提出了用于对象实例分割的掩码R-CNN,它在几乎所有之前的许多实例分割任务的基准测试中都表现出了良好的性能。Mask R-CNN有效地检测图像中的目标,以较低的计算成本为每个实例生成高质量的分割掩码。b . d . Brabandereetal。[59]提出在特征空间中映射每个像素。它们的聚类算法在处理复杂遮挡时具有一定的优势。TensorMask[60]采用密集滑动窗口实现接近Mask RCNN的结果。PolarMask[61]是一种无需锚的方法,它在准确性和速度之间做出了很好的权衡。这些方法虽然基于大量高质量、人工标注的数据集[28,62]取得了很大的成就,但在实际应用中仍存在不足。在工业拣货场景中,常常难以获得带标签的数据集。
为了克服制作数据集的困难,提出了SD Mask R-CNN[51]作为Mask R-CNN的扩展。还提出了一种快速生成合成数据集的方法,并且只用生成的合成深度图像而不是RGB图像来训练网络。然而,SD Mask R-CNN并没有表现出足够的性能,特别是对于场景中多个对象实例的遮挡。
三维点云的实例分割
一些研究者采用了基于proposal的方法来检测目标并预测实例掩码。3DSIS[63]将二维图像与三维几何信息相结合,推断出三维空间中物体的边界盒及其实例蒙版。对二维图像的需求限制了该方法的应用,因为用二维图像训练网络的成本很高。GSPN[64]继续了Mask R-CNN的想法。他们首先预测候选区域,然后使用R-PointNet对候选区域进行精细化,得到实例分割的结果。而基于3D-SIS和GSPN的区域提议网络占用了大量的计算时间。B. Yang等人提供的3D- bonet[65]直接对三维点云中每个实例的边界盒进行回归,同时预测每个实例的点级掩码。3D-BoNet在完成的点云上表现良好,因为在这些数据集中,例如S3DIS [42], ScanNet[66],对象的边界盒几乎没有重叠。换句话说,在拣箱场景中,物体的重叠和不完整性使得3D-BoNet很难回归合理的包围盒。
SGPN[35]是proposal-free的并且是第一个直接执行在三维点云上的实例分割方法。SGPN在假设同一实例中的点具有相似特征的基础上进行点云实例分割。SGPN的子网络预测每个点的置信度得分。每个点的置信度得分表示聚类参考点的置信度。作者[35]强调了一个有趣的现象,即位于边界区域的点的聚类置信值比其他点要低。受此启发,FPCC只选取一个最可能是物体几何中心的点作为物体聚类的参考点。x.wang等人将语义与实例信息相关联以提高性能。Phm等人已经使用多值条件随机场同时学习语义和实例标签。J. Lahoud等[67]通过聚类三维点,根据点对关系将点的特征映射到特征嵌入空间进行实例分割。但是,拣箱子场景中的对象都是相同类型的,所以每个点的语义信息是相同的。在这种情况下,语义信息与实例信息相结合的方法就失去了其有效性。
虽然这些没有提议区域的无提议方法使用了不同的方法来提取点的特征,但它们都需要找到远大于实例数量的点作为聚类的参考点,并且每个参考点对应一个潜在的组。然后,每个组通过union (IoU)上的交集进行合并。合并的过程需要大量的时间。耗时的原因在章节4.3.2中有更详细的描述。
FPCC不需要合并过程。此外,这些方法都是基于具有真实场景的公共数据集,如S3DIS[42]和SceneNN[43]。为拣箱场景制作这样的数据集是一项既耗时又费力的任务[48]。FPCC在真实世界的数据上显示了可接受的性能,即使是经过合成数据的训练。
网络描述
针对三维点云的实例分割问题,提出了一种新的聚类方法。训练数据为无颜色的三维点云,可以利用目标对象的三维形状模型在仿真中自动生成。快速聚类的主要思想是找到目标的几何中心,然后将这些点作为聚类的参考点。与现有的基于聚类的方法相比,我们有两个优点。一是在不含颜色信息的情况下,合成点云可以得到可接受的结果。其次,从理论上讲,我们可以找到场景中实例数量相等的中心点作为聚类的参考点,因此不需要冗余的合并算法[53,35],这些合并算法消耗了大量的计算时间,并且在重叠严重的场景中容易引入错误。
骨干网络
推理规则
如前一节所述,FPCC-Net 的两个分支输出嵌入特征和每个点的中心分数。对所有的点根据中心分数进行非最大抑制,以找到每个实例的中心。得分在0.6分以上的分数被认为是候选点。选择得分最高的点作为第一个中心点,球面上以该点为中心的,半径 d m a x d_{max} dmax 以内的所有其他点都被删除, d m a x d_{max} dmax 是从实例的几何中心到实例上最远点的距离。不断重复这个过程,直到候选点集为空。 A l g o r i t h m 1 Algorithm1 Algorithm1 给出了中心点选取的详细过程。
经过上述处理后,计算中心点与其他点之间的特征距离: d ( e F ( i ) , e F ( k ) ) = ∥ e F ( i ) − e F ( k ) ∥ 2 d(e^{(i)}_F , e^{(k)}_F)=\lVert e^{(i)}_F - e^{(k)}_F \rVert _2 d(eF(i),eF(k))=∥eF(i)−eF(k)∥2 其中, e F ( k ) e^{(k)}_F eF(k) 表示 A l g o r i t h m 1 Algorithm1 Algorithm1 选取的第 k k