论文链接:https://arxiv.org/pdf/1911.04231v1.pdf
代码链接:https://github.com/ethnhe/PVN3D.git.
背景介绍
由于光照变化、传感器噪声、场景遮挡和目标截断等因素的影响,六自由度估计是一个极具挑战性的问题。传统的方法利用手工特征提取图像与目标网格模型之间的对应关系,这种人工设计的经验特征在光照条件变化和场景遮挡严重的情况下会受到性能的限制。
近年来,随着机器学习和深度学习技术的迅猛发展,基于深度神经网络(DNN)的方法被引入到这项工作中,并显示出很有希望的改进。前期有工作提出用DNNs直接回归物体的旋转和平移。然而,由于旋转空间的非线性,这些方法通常没有很好的推广性。
相反,最近的研究使用DNNs来检测物体的2D关键点,并使用透视点(PnP)算法计算6D姿态参数。虽然这两个阶段的方法表现得更稳定,但大多数都是建立在二维投影之上的。在真实的三维空间中,投影误差很小的误差就可能很大。另外,三维空间中的不同关键点在二维投影后可能会重叠,使得它们很难区分。此外,由于投影的存在,刚性物体的几何约束信息会部分丢失。另一方面,随着廉价RGBD传感器的发展,越来越多的RGBD数据集可用。额外的深度信息允许2D算法以更好的性能扩展到3D空间,如PointFusion、Frustum pointnets和VoteNet。为此,我们将基于二维关键点的方法扩展到三维关键点,充分利用了刚体的几何约束信息,显著提高了六自由度估计的精度。
主要思想
在这项工作中,我们提出了一种新的数据驱动的方法,可以从单一的RGBD图像中进行鲁棒的6自由度目标姿态估计。与以前直接回归姿态参数的方法不同,我们使用基于关键点的方法来处理这一具有挑战性的任务。具体地说,我们提出了一个深度Hough投票网络来检测物体的三维关键点,然后在最小二乘拟合的方式下估计6D姿态参数。论文的方法是2Dkeypoint方法的自然扩展,它成功地实现了基于RGB的6自由度估计。它可以充分利用具有额外深度信息的刚性物体的几何约束,便于网络学习和优化。通过大量的实验验证了三维关键点检测在6D姿态估计任务中的有效性。实验结果还表明,我们的方法在多个基准上都比最新的方法有很大的优势。
Contributions
- 一种基于实例语义分割的深三维关键点Hough投票网络用于单RGBD图像的6自由度姿态估计;
- 在YCB和LINEMODE数据集上的最新6自由度姿态估计性能;
- 深入分析本文基于三维关键点的方法,并与以前的方法进行比较,证明三维关键点是提高姿态估计性能的关键因素;
- 还发现联合训练3D关键点和语义分割可以进一步提高性能;
现有姿态识别的一些方式
1、Holistic Methods
整体方法直接估计给定图像中物体的三维位置和方向。经典的基于模板的方法构造刚性模板并扫描图像以计算最佳匹配姿态。这种手工制作的模板对集群场景不太可靠。最近,人们提出了一些基于深度神经网络(DNN)的方法来直接回归相机或物体的6D姿态。然而,旋转空间的非线性使得数据驱动DNN难以学习和推广。为了解决这个问题,一些方法使用后求精过程迭代地优化姿态,另一些方法离散旋转空间并将其简化为分类问题。对于后一种方法,仍然需要后求精过程来补偿离散化所牺牲的精度。
2、Keypoint-based Methods
目前基于关键点的方法首先检测图像中物体的二维关键点,然后利用PnP算法估计6D姿态。经典方法能够检测出纹理丰富的物体的二维关键点,这种方法很有效率,但是,它们不能处理没有纹理的对象。
随着深度学习技术的发展,提出了一些基于神经网络的二维关键点检测方法。一些方法直接回归关键点的二维坐标,还有一些使用热图定位二维关键点。
3、Dense Correspondence Methods
这些方法利用Hough投票方案对每像素预测的最终结果进行投票。他们要么使用随机森林或CNNs来提取特征并预测每个像素对应的3D对象坐标,然后投票决定最终的姿势结果。这种密集的二维-三维对应使得这些方法对遮挡场景具有很强的鲁棒性,同时输出空间很大。PVNet使用对2D关键点的每像素投票来结合密集方法和基于关键点的方法的优点。进一步将该方法推广到具有额外深度信息的三维关键点,充分利用了刚体的几何约束。
网络结构
如下图所示,本文的方法是一个两级pipelines,具有三维关键点检测和位姿参数拟合模块。
更具体地说,以RGB-D图像为输入,利用特征提取模块融合图像的外观特征和几何信息。学习到的特征将被输入到3D关键点检测模块M_k中,该模块被训练来预测每点和关键点的偏移。
此外,还包括一个多对象处理的实例分割模块,其中语义分割模块M_s预测每个点的语义标签,中心投票模块M_c预测每个点到object中心的偏移量。利用每个点的学习偏移量,应用聚类算法区分具有相同语义标签的不同实例,同一实例上的点为其目标关键点投票。最后,对预测的关键点采用最小二乘拟合算法估计六自由度姿态参数。
针对M_k模块:
通过特征提取模块提取每个点的特征,使用3D关键点检测模块M_k来检测每个对象的3D关键点。具体来说,M_k预测从可见点到目标关键点的每点欧氏平移偏移量。这些可见点,连同预测的偏移,然后投票给目标关键点。然后通过聚类算法收集投票点,选择聚类中心作为投票关键点,损失函数定义:
针对实例语义分割模块:
为了处理多目标场景,以前的方法利用现有的检测或语义分割体系结构对图像进行预处理,得到只包含单个目标的roi(感兴趣区域)。然后建立以提取的roi为输入的姿态估计模型,以简化问题。然而,由于已经将姿态估计问题表述为首先检测具有向关键点学习模块的平移偏移量的对象的关键点,因此认为这两个任务可以提高彼此的性能。一方面,语义分割模块通过实例强制模型提取全局和局部特征来区分不同的对象,有助于在对象上定位一个点,有利于关键点偏移推理过程。另一方面,为预测到关键点的偏移而学习的大小信息有助于区分外观相似但大小不同的对象。在这样的观察下,本文将一个点式实例语义分割模块引入到网络中,并与模块M_k共同优化。
具体来说,在给定每点提取特征的情况下,语义分割模块M_s对每点语义标签进行预测。我们用Focal loss来监督这个模块:
同时,利用中心投票模块M_c对不同对象的中心进行投票,以区分不同的实例在CenterNet的启发下提出了该模块,并进一步将二维中心点扩展到三维,与二维中心点相比,三维中的不同中心点不会因某些视点的摄像机投影而受到遮挡。由于可以将中心点视为对象的一个特殊关键点,因此模块M_c类似于3D关键点检测模块M_k,它接受每个点特征并且预测到它所属对象中心的欧几里德平移偏移量,损失函数如下:
网络最终的损失函数:
其中,λ1、λ2和λ3是每个任务的权重。实验结果表明,这些任务的联合训练可以提高彼此的成绩。
网络的backbone:
第一部分是特征提取模块。在该模块中,应用带有ImageNet预训练ResNet34的PSPNet来提取RGB图像中的外观信息。PointNet++提取点云及其法线贴图中的几何信息。它们被一个DenseFusion块进一步融合,以获得每个点的组合特征。经过该模块的处理,每个点都有一个C维特征。M_k、M_s和M_c模块由共享多层感知器(MLPs)组成。
最小二乘拟合:
该算法通过最小化以下平方损失来查找R和t:
其中M为关键点数量。
实验结果
本文主要在YCB和LineMOD数据集上进行了性能对比,实验结果如下所示:
标签:wise,香港科技大学,Point,语义,三维,模块,方法,姿态,关键点 From: https://blog.51cto.com/u_14439393/5725731