数据集题目:工业料仓拣选的大规模6D物体姿态估计数据集(Large-scale 6D Object Pose Estimation Dataset for Industrial Bin-Picking)
数据集代码:GitHub - xyjbaal/FPCC
数据集Abstract
- 介绍了一种新的公共数据集,用于6D对象姿态估计和用于工业bin-picking的实例分割。
- 数据集=合成场景+真实场景。对于这两者,提供了包括6D姿势 (位置和方向) 的点云、深度图像和注释、可见性分数和每个对象的分割蒙版。
- 除了原始数据外,还提出了一种精确注释真实场景的方法。据我们所知,这是第一个用于6D对象姿势估计和实例分割的公共数据集,用于bin-pinging,其中包含足够的注释数据以进行基于学习的方法。此外,它通常是用于对象姿势估计的最大的公共数据集之一。该数据集可在http:// www.bin-picking.ai/en/ dataset.html上公开获得。
FPCC
Abstract
- 在通常的bin-picking场景中,许多相同的对象堆叠在一起,并且对象的模型是已知的。因此,可以忽略语义信息; 取而代之的是,分箱选择的重点放在实例的分割上。
- 基于此任务要求,我们提出了一种快速点云聚类 (FPCC),用于分拣场景的实例分割。
- FPCC=FPCC-Net的网络+一个快速聚类算法。
- FPCC-net有两个子网,一个用于推断几何中心以进行聚类,另一个用于描述每个点的特征。FPCC-Net提取每个点的特征,并同时推断每个实例的几何中心点。之后,所提出的聚类算法将剩余点聚类到特征嵌入空间中最接近的几何中心。
- 我们的代码和数据可在https://github.com/xyjbaal/FPCC.
1. Introduction
工业分箱取货场景的问题在于难以区分相同的对象和制作数据集。
技术要点可以概括如下:
- 卷积核更适合处理结构化信息,而原始3D点云是非结构化和无序的
🎈PointNet作为第一个适用于处理非结构化和无序3D点云的框架。它不会将3D点云数据转换为3D体素网格,而是使用多层感知 (MLPs) 来学习每个点的特征,并采用了最大池化来获取全局信息。但是,PointNet独立处理每个点,这导致学习较少的局部信息。
🎈为了能够学习3D点云的局部信息,<一些论文> 提出通过探索相邻点提高了网络感知本地信息的能力。继我们之前的工作 [49] 之后,我们将DGCNN[41] 用作特征提取器,因为DGCNN灵活且健壮地处理仅具有坐标的点云。
- 3D点云数据集较少;
①室内场景数据集如S3DIS[42]和SceneNN[43]
②驾驶场景数据集如KITTI数据集[44]和apolo - southbay数据集[45],
③单一对象识别数据集如ShapeNet数据集[33]。
🎈对于机器人垃圾箱拾取,提供各种工业对象的通用培训数据集是一项艰巨而艰巨的工作,目前还没有这样的数据集。
🎈通过模拟合成训练数据提供了一种可行的方法来缓解训练数据集的不足 [54、55、49、56、57、58]。在现阶段,我们认为用合成数据训练网络是一种经济可行的策略。我们的网络由合成数据集训练,并在真实数据上显示可接受的结果。
- 基于CNNs的3D点云上的实例分割耗时。
🎈耗时原因:由于场景中的实例是无序的,并且它们的数量是不可预测的,因此无法用固定张量表示实例标签。
🎈因此,实例分割的研究包括两种方法: 需要对象检测模块的基于提议的方法(Mask R-CNN)和没有对象检测模块的无提议的方法。基于提案的方法需要复杂的后处理步骤来处理许多提案区域,并且在存在强遮挡的情况下性能较差。
🎈对于3D点云的实例分割,大多数研究人员采用proposal-free(无建议方法) 。无建议方法通常首先执行语义分割,然后通过聚类或度量学习区分不同的实例 [39,40,59,49]。当前的聚类方法首先生成多个候选组,然后将它们合并,这是一个非常耗时的过程。
🎈相比之下,我们的聚类算法不会生成候选组,而是直接根据对象中心点与其余点之间的特征距离生成实例。这种方式极大地提高了实例生成的速度,避免了一个点同时属于多个实例的情况。
- 本文提出一种用于实例分割的快速点云聚类方法,即FPCC-Net和基于FPCC-Net输出的快速聚类算法。
- FPCC-Net是一种图形卷积神经网络,可在实例级分割3D点云,无需手动注释数据进行训练。
- FPCC-Net涉及将所有点映射到一个判别特征嵌入空间,该空间满足以下两个条件:
1) 相同的点实例具有相似的特征,
2) 不同实例的点在特征嵌入空间中被广泛分离。 - 同时,FPCC-Net为每个实例找到中心点,中心点用作聚类过程的参考点。之后,如图1所示,基于中心点执行快速聚类。
- 在损失函数中引入了手工制作的注意机制,以提高FPCC-Net的性能,并且它的有效性在消融研究中得到验证。
:实数集
:点i的坐标
点云包含N个点,={,,...,}
距离函数(算法1):d(a,b)=;其中d(a,b)代表a和b之间的欧几里得距离
矩阵A∈,A的第(i,j)个元素这样表示:
2. Related Works
2.1 2D上的实例分割
- 2D实例分割分为两阶段方法和onestage方法。
- 两阶段=生成对象检测+掩码预测。eg.Mask-RCNN=对象检测+单个像素级分割
- 一阶段:不包含proposal generation and pooling step
2.2 三维点云上的实例分割
🎈一些研究者采用了基于proposal的方法来检测目标并预测实例掩码。
3DSIS[63]、GSPN[64]、
B. Yang等人提供的3D- BoNet[65]直接对三维点云中每个实例的边界盒进行回归,同时预测每个实例的点和掩码。3D-BoNet在完成的点云上表现良好,因为在这些数据集中,例如S3DIS [42], ScanNet[66],对象的边界盒几乎没有重叠。换句话说,在拣箱场景中,物体的重叠和不完整性使得3D-BoNet很难回归合理的包围盒。
🎈SGPN[35]是proposal-free的,并且是第一个直接执行在三维点云上的实例分割方法。SGPN在假设同一实例中的点具有相似特征的基础上进行点云实例分割。SGPN的子网络预测每个点的置信度得分。每个点的置信度得分表示聚类参考点的置信度。作者[35]强调了一个有趣的现象,即位于边界区域的点的聚类置信值比其他点要低。
🎈受此启发,FPCC只选取一个最可能是物体几何中心的点作为物体聚类的参考点。虽然这些没有提议区域的无提议方法使用了不同的方法来提取点的特征,但它们都需要找到远大于实例数量的点作为聚类的参考点,并且每个参考点对应一个潜在的组。然后,每个组通过union (IoU)上的交集进行合并。合并的过程需要大量的时间。FPCC不需要合并过程。
2.3 分拣场景的实例分割
现有的分拣场景实例分割方法可以分为面向物流的方法和面向工业的方法两组。前者是多类多实例学习。后者倾向于从杂乱的场景中进行一类多实例学习,而无需预测语义标签。
3. Method
- 本文提出新颖的聚类方法,用于在3D点云上进行实例分割。
- 训练数据是没有颜色的3D点云,可以通过使用目标对象的3D形状模型在仿真中自动生成。
- 快速聚类的主要思想是找到每个对象的几何中心,然后将这些点用作聚类的参考点。
- 我们的集群方法的优点:①我们可以在没有颜色信息的情况下通过合成点云实现可接受的结果。②从理论上讲,我们可以找到与场景中实例数量相当的中心点作为聚类的参考点,因此不需要冗余的合并算法
3.1. Backbone of FPCC-Net
步骤1:原3D点云的坐标={x,y,z}通过以下方式转换为新坐标系。
2.转换后的每个点由6维度(6D)向量组成。,,,和归一化位置(,,)。所表示的3D点云送到网络中,输出128维度特征+每个点的中心得分
- 特征提取器:DGCNN网络。在FPCC中没有采用最后两层。DGCNN在提取没有颜色的点云的特征方面比PointNet有更好的性能。提取的N×256的逐点特征送到两个分支。
- 嵌入特征分支:先通过MLP生成N×128的特征。
- 中心得分分支:从特征提取器出来以后经过两个MLP后被sigmoid函数激活,得到大小为N×1的预测中心得分。然后使用算法1找到最有可能是每个对象几何中心的那个点。然后将这个点看作是聚类过程中的参考点。
3.2. Inference phase 推理阶段--快速聚类过程
名词:Non-maximum suppression(非最大抑制)
screening factor(筛选因子)
:几何中心到物体最远点的最大距离
:筛选因子
步骤:
- 由于,FPCC-Net会输出嵌入特征+每个点的中心分数。
- 因此,对所有点执行非最大抑制,以得到每个实例的中心。
- 中心分数高于0.6的点被视为中心分数的候选点。
- 中心分数最高的点被选择为中心点的第一候选点,去除所有位于球内以中心为候选点和半径的其他点【june:意思是,只保留中心分数最高的点,让他作为实例中心点,而删除dmax范围内的其他所有点?这个意思?】。
- 重复此过程,直到候选点集为空。算法1中介绍了选择中心点的详细过程。
经过上述过程,中心点与其他点之间的特征距离计算公式:
- 常规的聚类方法 [39,59] 是将整个场景的点下采样为多批。将每个批次的点进行聚类,然后将所有批次的点进行整合。
- 我们在将所有点分批输入网络后执行聚类。获得每个点的特征和中心得分后,直接根据与中心点的特征距离生成预测实例,而无需任何合并或积分步骤。
- 我们减少了计算时间,减少了由于合并过程而导致的累积误差。
3.3. Training phase
- L=,后面两个L分别为嵌入式特征分支和中心得分分支的loss。
- 是一个常数,使得LEF和LCS的加权大致相同。
- 我们引入了三个矩阵,特征距离矩阵+有效距离矩阵 (VDM) +注意分数矩阵 (ASM),用于嵌入式特征的学习。
- 注意力得分矩阵是从每个点的中心得分获得的。
特征距离矩阵:在特征嵌入空间,属于同一实例的点应该接近,而不同实例的点应该彼此分开。为了使同一实例中点的特征相似,我们引入如下特征距离矩阵∈。的第(i,j)个元素定义为:
有效距离矩阵(VDM):有效距离矩阵∈是一个二进制矩阵,每个元素为0或1。
- 引入是使网络着重区分在一定欧氏距离内的点对是否属于同一实例;focus on 距离(不论在一定欧几里得距离内的点对是否属于同一个实例)。在推理阶段,基于点对的特征距离和欧几里得距离同时对点进行聚类。
- 如果两点的欧几里得距离超过最大距离dmax的两倍,则两点不能属于同一个实例。
- 因此,我们忽略这些距离太远的点对,这样它们就不会造成损失。
的第 (i,j)个元素定义如下。公式(5)表示pi和pj之间的欧氏距离是否在合理范围内。
Center score:反映一个点与其相应中心之间的距离。物体中心附近的点比边界上的点得分更高。基于这一概念,引入了pi的中心得分。
- 其中为常数,ci为<pi所属实例的>几何中心坐标。的值在[0,1] 。
- 如果=1,中心得分的分布会导致不平衡。如图3所示: 只有极少数的得分更高,而大多数得分更低。这导致中心分数分支无法有效预测中心分数 (所有分数都偏向零)。
- 我们取=2,图4显示边界上点大部分得分为0,而中心点大约得分为1。
注意分数矩阵 (ASM):注意力得分矩阵∈,用来增加重要点对的权重。的第(i,j)个元素表示i和j点对的权重。因为中心点在推理阶段被用作聚类的参考点,所以更靠近中心位置的点对应该具有更高的权重。的计算如下:
3.3.5. Embedded feature loss
点对(pi,pj)有两种可能的关系:①属于同一个实例 ②属于不同实例。考虑到这一点,定义如下。
3.3.6. Center score loss
由于L1损失函数的鲁棒性,光滑 L1损失被用作中心分数分支的损失函数。中心分数损失LCS定义为:
4. Experiment
我们测试一下了五种类型的工业对象,如图5所示。环形螺杆和齿轮轴来自Fraunhofer IPA Bin-Picking数据集 [54],对象A,B和C来自XA Bin-Picking数据集 [49]。数据集的详细信息如下:xxx。
4.2. Experimental setting
- FPCC-Net在TensorFlow框架中实现,并使用Adam[95] 优化器进行训练。
- 初始学习率为0.0001,批处理大小为2,动量为0.9。
- 所有培训和验证均在具有32 GB RAM的Nvidia GTX1080 GPU和Intel Core i7 8700K CPU上进行。在训练阶段,设置 = 0.5, = 1, = 3和 = 2。
- = 1和 dmax = 0.07、0.08、0.6、1.6,1.2分别对应于环丝杠、齿轮轴、物体A、物体B和物体C的尺寸。
- 在训练过程中的每个batch中,输入点 (N = 4,096) 从每个场景中随机采样,每个点只能采样一次。
- 每个点转换为6D向量 ,用于输入FPCC-Net。重复采样,直到场景的剩余点小于 N。
- 该网络接受了30epoch的培训。为每个对象训练FPCC-Net大约需要十个小时。
4.3. Instance segmentation evaluation 实例分割评估
4.3.1. Precision and Recall
对于环形物体,即环形螺钉,几何中心点不在零件上,因此聚类中使用的参考点从物体中心偏移。转移的参考点降低了分割的性能。我们认为我们的聚类方法不适用于中心大部分为空的对象,例如环。
图7显示了与SGPN、ASIS、3D-BoNet、PointGroup和FPCC的情况分割的比较结果。由于bin中的对象是相同的,因此我们消除了这些比较网络中的语义分割分支,并将所有输入点的语义信息视为相同。应该注意的是,原始SGPN,ASIS和3D-BoNet使用PointNet或PointNet作为其特征提取器。当我们在没有颜色的点云中重新评估他们的方法时,我们发现训练过程根本无法收敛,我们认为这是因为PointNet和PointNet不能有效地学习局部几何特征。因此,我们用DGCNN替换了它们的特征提取器。
对于PointGroup,我们提供了两个结果,一个是原始的点组,另一个是使用DGCNN作为骨干的点组。不同的预测实例以不同的颜色显示。SGPN和ASIS采用相似的聚类方法,在合并过程中累积每个潜在组的误差,并导致预测多个实例作为重遮挡中的一个实例。相反,FPCC对遮挡具有鲁棒性,因为不需要冗余合并。3D-BoNet的性能也很差。这是因为通过合成数据训练的3D-BoNet很难在真实数据上合理地预测每个实例的3D绑定框。使用DGCNN作为主干的PointGroup性能很差,这表明DGCNN提取的特征不能支持PointGroup的聚类算法。
4.3.2. Computation Time
4.4. Ablation studies 消融研究
结果表明,我们设计的两个权重矩阵是合理的。VDM使得FPCC-Net不需要关心欧氏距离过大的点的特征距离。
5. Conclusions
本文提出了一种快速有效的3D点云实例分割方法,称为FPCC,用于分拣场景,该场景具有多个实例,但只有一个类。
- FPCC包括预测嵌入式特征和每个点的几何中心得分的FPCC-Net,以及使用FPCC-Net输出的快速聚类算法。
- 引入了两个手工设计的权重矩阵来提高fpcc-net的性能。
- 针对实例分割,提出了一种新的聚类算法。对于多实例但单类场景,即使没有手动标记的数据,FPCC也能比现有方法获得更好的性能。
- 此外,我们从理论上证明了FPCC的计算复杂度远低于SGPN。
- 这项研究还具有一定的局限性,必须在以后的工作中加以解决,具体如下:
1) FPCC并不特别适合几何中心不在其自身上的物体。我们正在考虑使用其他方法来定义每个实例的参考点。
2) 我们使用现有的语义网络,即DGCNN,作为FPCC的特征提取器。也许特征提取器不能完全适应实例分段的任务。特征提取器的改进是我们今后的工作。