基于三维关键点投票的物体位姿估计方法
2024-01-20王太勇于恩霖
王太勇 ,于恩霖
(1.天津大学机械工程学院,天津 300350;2.天津仁爱学院,天津 301636)
6D 姿态估计是许多工业应用的重要组成部分,如Rad 等[1]在增强现实领域估计物体6D 姿态,可以在物体上叠加虚拟形象,进行辅助渲染.Xu 等[2]在自动驾驶领域预测汽车位姿,辅助车辆进行避障和行进.He 等[3]在机器人抓取领域预测零件位姿,进而获取抓取器和目标物体的抓取姿态.由于传感器的噪声、变化的灯光和物体之间的遮挡,正确地识别物体位姿成为一个具有挑战性的任务.传统方法如Hinterstoisser 等[4]提出通过不同距离的策略匹配输入图片和3D 模型,但是当场景混叠或者物体表面发生形变时,传统方法性能会大幅下降,导致传统方法的应用场景受限,对应用环境要求很高.最近,深度学习方法在这个问题上取得了很好的效果,Park 等[5]、Shao等[6]直接从RGB 图像输出位姿参数,但Calli 等[7]指出旋转空间的非线性使得网络难以学习和推广.
由于近些年廉价RGB-D 相机的出现,提供了额外的深度信息来解决这些问题.Michel 等[8]利用级联设计,首先从RGB 图像中估计出初始姿态,然后使用迭代最近点(iterative closest point,ICP)算法在点云上对其进行优化.Qi 等[9]、Duan 等[10]分别从裁剪后的RGB 图像和点云中应用点云网络(point cloud network,PCN)和CNN 提取密集特征,然后将提取的密集特征串联起来进行姿态估计.最近,Wang 等[11]提出了一种更好的融合策略DenseFusion,用密集的融合模块取代了单纯的串联操作.这种网络结构通过迭代使用优化模块来细化姿态,解决了旋转空间非线性的问题,但计算过程复杂,时间效率不高.
密集对应方法如Hodan 等[12]、Cai 等[13]找到了图像像素和网格顶点之间的对应关系,并使用Perspective-nPoint(PnP)方法计算位姿参数.虽然对遮挡现象有较强的鲁棒性,但广阔的输出空间限制了预测的准确性.之后,Peng 等[14]、Liu 等[15]设计基于二维关键点的方法,检测物体的二维关键点,并将检测到的二维关键点与物体的三维关键点配准来估计姿态.但在三维空间中,不同的关键点在对二维平面映射后可能会重叠,导致难以区分.这种稠密的二维到三维的对应关系使得这些方法对遮挡的场景具有鲁棒性,但二维点本身可能对应一系列三维坐标,这会导致匹配错误的情况.PVNet[14]使用二维关键点的逐像素投票来结合稠密方法和基于关键点的方法的优点,本文进一步将这种方法扩展到具有额外深度信息的三维关键点,并充分利用刚性物体的几何约束.由于物体点云的每个坐标都进行稠密投票三维关键点,所以缺失部分点云对最终结果准确性的影响会下降,遮挡造成的识别错误也会减少.二维算法还会在一些特殊场景下表现不佳,如低亮度、低对比度等场景,并且依赖于物体表面纹理的二维算法在识别无纹理对象时也会出现问题.
近年来有越来越多的RGB-D 数据集可用.额外的深度信息使得二维算法可以扩展到三维空间,并具有较好的性能,如 PointFusion[2]和 Frustum Point-Nets[9].为此,本文将基于二维关键点的方法扩展到三维关键点,以充分利用刚性物体的几何约束信息,大大提高六自由度位姿估计的准确性和鲁棒性.
PVN3D[3]从RGB 图像和点云中提取特征,单独使用CNN 和点云网络,然后融合多种特征进行位姿估计.这样的方法更加有效和高效.在本文中采用这种思路作为参考,分别提取外观特征和几何特征,然后将其融合点云实例分割等信息来预测物体的三维关键点.本文设计了一种基于三维关键点投票的网络,改进图像特征提取网络,加入残差模块和逆瓶颈层,增强提取图像特征,并利用分组卷积节省计算量.在点云数据中利用RIPoint(residuals inverted point)网络提取特征,引入自注意力机制增强点云学习能力,然后对RGB-D 数据进行特征融合,提高模型的准确性和鲁棒性,实现更加高效的六自由度位姿估计.
1 基于三维关键点投票的网络
本文的任务是在给定一幅 RGB-D 图像的情况下,估计将物体从其物体坐标系转换到相机世界坐标系的六自由度位姿.笔者将这种六自由度位姿表示为3D 旋转矩阵R∈SO ( 3)和平移向量t∈R3.
在当前的实际应用场景中,尽管六自由度位姿估计方法已经取得巨大成果,但仍旧存在物体遮挡、光线不足、低纹理特征、视角鲁棒性等挑战.以往的方法PVnet[8]、PVN3D[3]等已经验证了关键点方法的实用性和有效性,但对于一些具有挑战的情况效果并不理想.为了融合RGB-D 数据特征,使网络在各种情况下都具有一定的鲁棒性,能够生成更好的结果,本文采用一种新型特征提取模块,提取几何特征和图像特征进行融合,预测不同实例中的三维关键点.最后,对预测的关键点采用最小二乘拟合算法来估计位姿参数.
1.1 网络整体架构
本文所设计的两阶段网络整体架构如图1 所示,包括三维关键点位置预测部分和位姿参数拟合部分.其中第1 阶段中,特征提取模块从RGB-D 图像中提取每个点的特征.在提取点云特征时,之前的网络结构只考虑点云之间的距离特征,忽略了点与点之间的关系.本文采用RIPoint 网络提取几何特征,将点之间的关系融入到点云处理中,并且与传统卷积神经网络不同,本文引入自注意力机制与分离卷积结构,能够有效地提升模型效果,减少计算量.
图1 物体位姿估计网络整体架构Fig.1 Overview of the object pose estimation network
提取后的特征被送入Mkey、Mcenter和Mseg模块,分别预测关键点的位移偏移量、中心点和每个点的语义标签.然后应用聚类算法为同一实例上的点对其目标关键点的投票.第2 阶段中,采用最小二乘法来估计六自由度位姿参数.
本文将点云各种维度特征一起考虑在内,并融合了用于增强点云特征的自注意力机制模块.通过这种方式提取的点云特征更易于网络回归计算,位姿估计性能也更强大.为了充分评价本文的方法,本文在YCB-Video 数据集、LineMOD 数据集两个最常见的基准数据集上进行了实验.实验结果表明,该方法不需要任何耗时的细化过程,其性能明显优于其他的算法.
1.2 特征提取模块
1.2.1 图像特征提取
图像特征提取模块输入RGB 图像,通过提取每个像素位置的三通道颜色信息,计算图像特征,以便在后续特征融合部分能够形成更加准确的融合特征.虽然近年视觉Transformers(ViTs)取代各类CNN网络成为最先进的图像分类模型,但ViTs 网络过于庞大,训练过程繁琐,超参数调参困难[16].并且部分学者发现ViTs 的优越性一部分来自于其网络结构优势,所以将ResNet 系列网络进行网络结构优化,能够在不大幅增大网络复杂程度的情况下提高图像特征提取能力,执行更加复杂的视觉任务.本网络基于ViTs 结构,进行了三方面的改进:优化各阶段网络块比例,设计逆瓶颈层,分组卷积.
VGG 网络提出将若干网络块通过池化操作降采样到不同维度的结构,各阶段网络块的网络层数量基本相同,但在ResNet 中当深层的网络块层数增加时,模型性能更强.在ViTs 中,大模型的每个骨干网络分为4 个阶段,网络块比例是1∶1∶3∶1.本网络的改进就是将ResNet 的每个阶段的网络块的层数由(3,4,6,3)改为(3,3,9,3).
在残差网络中,为了减少网络计算量,网络块是中间层数少、两边层数多的瓶颈层结构,而ViTs 本质是一个逆瓶颈层结构,这种网络结构能够使特征在不同维度特征空间之间传递时避免压缩维度带来的信息丢失,使得特征提取更加有效[17].同时,本网络为了适当减少计算量,采用了分组卷积的方式,将3×3卷积以通道为单位进行运算,然后通过1×1 卷积进行通道融合,这种计算方式能够在保留提取特征的情况下,提升模型的计算速度.图像特征提取模块将H×W×3 的图像信息提取为H×W×drgb特征向量,每个像素位置的三通道信息转化为drgb维度的特征.
1.2.2 点云特征提取
原有的点云特征提取网络照搬PointNet++[18]点云特征提取网络,融合了全局和局部特征,相比于PointNet[19]效果更好.通过最远点采样(farthest point sampling,FPS)算法,先构造局部点集,再通过PointNet 抽象出局部特征,利用上采样和下采样的网络结构融合多层次特征.但是PointNet++在每层网络中使用了降采样操作,仅保留选定点,这难免会导致数据的丢失和粗糙化,点与点之间的关系图每经过一层网络都会逐渐减小.同时,PointNet++使用输入数据的欧式距离来计算点对关系,导致点与点之间的关系图在网络整体上是不变的,对于不同物体的点云适应性会变差.
为了让网络能够更加有效地提取点云中的几何特征,融合局部特征和全局特征,本文设计了RIPoint网络,能够非常好地提取点云局部形状的特征,同时还能够保持排列不变性.
本文使用的具体网络结构如图2 所示.红色部分为更新的内容.感受野和模型结构与参数的优化有助于模型整体性能提升,于是本网络设计了一种新型的residual inverted MLP(RI-MLP)模块,该模块的效果与PointNet++中的多层MLP 网络类似,但特征提取的高效性更加明显.具体而言,为了提升感受野,本网络将逆瓶颈层的设立理念引入点云学习网络,RI-MLP 模块中的第2 层MLP 的通道扩展了3倍,增加特征提取过程中间部分的特征维度,这种操作能够更大程度地保留特征提取的有效性并提高特征提取的能力.整体网络还增加了一开始的MLP层,让点云信息映射到了一个更高维的空间,拓宽了特征维度.
图2 RIPoint点云特征提取网络结构Fig.2 Structure of RIPoint point cloud feature extraction network
为了更加充分地提取点云几何特征,提高位姿参数估计精度,本网络RI-MLP 模块中利用自注意力机制对提取出的点云特征进行进一步细化,对点 xi的第k 个近邻点,分别计算指定点与其近邻点的相关性,然后用非线性激活函数计算出一组权重,最后使用权重对 xi的所有近邻点的表征进行加权求和,得出指定点 xi的第k 个近邻点的新表征.经过这步点云特征细化处理后,每个近邻点的表征会包含邻域范围内的特征表现,以提高预测准确度[20].
如图3 所示,假设指定点为 xi,指定点邻域内第n 个点为xjn,本文使用邻域范围内所有点来细化点云特征向量,计算xjn周围所有近邻点xj1,xj2,…,xjm∈N ( xi)与 xi的点对关系,其中 N ( xi)是 xi邻域内点的集合.指定点xjn最终细化的点云特征Fjn计算过程为
图3 自注意力机制模型Fig.3 Self-attention mechanism model
式中:l 用来计算xjn和xjk之间的高维点对关系;γ用来计算xjk点特征从原始维度向高维度的映射;A 为一种聚合操作.
为了减少细化点云特征操作的计算量,本文将γ函数处理为一维卷积,将关系函数l 简化为点对关系特征的点乘操作,具体计算式为
式中ϕ函数和ω函数为两个线性变换函数,可以用一维卷积替代,将原始点云特征从D 维转换为D'维.
为了减少计算量,RI-MLP 模块采用了分离MLP层并增强提取点云特征,原始PointNet++中的Set Abstraction(SA)模块中的MLP 都是基于邻域特征计算的,而RI-MLP 模块将第1 层MLP 作用于邻域特征,注意力层后的MLP 层作用于当前点特征[21].在SA 模块和RI-MLP 模块中,还补充设计了Batch Normalization(BN)层来防止过拟合,残差模块来缓解梯度消失问题,保证SA 模块和RI-MLP 模块的层层叠加能够更好地提升模型性能.
1.2.3 特征融合
虽然RGB 数据与点云数据有着相似的格式(r,g,b 和x,y,z),但其本身的属性拥有不同的内在关联结构,其代表的信息位于不同的特征空间中[22].所以采用DenseFusion 提出的迭代密集融合策略,可以减少目标遮挡、语义分割结果不准确的影响,使融合后的特征准确度提升,从而提高后续位姿估计性能.
具体来说,使用稠密的点级融合,即对于每个RGB 像素点的颜色特征,与其对应的点云点(利用相机内参计算对应点)的点云特征,进行特征空间上的拼接,得到一组聚合特征.
将这组聚合特征的一个副本,送进全连接神经网络中进行信息整合,并利用一个平均池化操作获得全局特征.最后,将全局特征拼接在各个聚合特征后面,得到一组具有上下文信息的聚合特征.
1.3 关键点预测模块
如图1 所示,三维关键点检测模块Mkey利用通过特征提取模块提取的点云特征用来检测每个物体的三维关键点.具体而言,Mkey预测从数据点云到目标关键点的欧氏距离偏移量.模块通过计算输入的点云和预测的偏移量,为目标关键点投票.然后,通过聚类算法收集投票集中的点坐标,并选择聚类中心作为投票的关键点.
1.4 实例语义分割模块
本文使用关键点预测模块和语义分割模块共同解决位姿估计问题,同时考虑两个模块的性能必不可少,甚至这两个模块还可以提高彼此的性能.一方面,实例语义分割模块在实例上提取全局和局部特征以区分不同的物体,这有助于定位对象上的点,有利于关键点偏移计算过程.另一方面,为预测关键点的偏移量而学习的尺寸信息有助于区分外观相似但尺寸不同的物体.于是,本文在网络中引入了一个点云实例语义分割模块Mseg,并与Mkey模块共同优化.
具体而言,输入提取的点云特征,实例语义分割模块Mseg预测每个点的语义标签.本文用Focal Loss损失函数[23]来监督该模块,即
式中:qi为平衡参数,qi=cili,ci为第i 个点的预测置信度,li为真实类标签的独热表示;γ为聚焦参数.
同时,中心投票模块Mcenter用于对不同对象的中心进行投票,以区分不同的实例.由于本文可以将中心点视为对象的特殊关键点,因此Mcenter模块类似于3D 关键点检测Mkey模块.它通过输入点云特征,预测欧式距离偏移Δ xi及其所属对象的中心.本文使用L1 损失函数来监督该模块,即
1.5 多任务学习损失函数
本文学习算法的目标是训练一个用于偏移预测的三维关键点检测模块Mkey,以及用于实例级分割的语义分割模块Mseg和中心投票模块Mcenter.这自然使得网络训练过程使用多任务学习方法.本文共同监督Mkey、Mseg和Mcenter的学习过程,并进行多任务损失函数的计算,即
式中λ1、λ2和λ3为每个子任务的权重参数.
1.6 位姿参数拟合
经过上述的运算过程,模型已经得出输入点云的关键点位置坐标,由此,需要考虑一个问题.给定一个物体的两个点集,一个来自摄像机坐标系中M 个检测到的关键点,另一个来自物体坐标系中相应的关键点,位姿参数估计模块使用最小二乘拟合算法[1]计算位姿参数(R,t),该算法通过最小化以下平方损失来计算R 和t[24],即
2 实验及数据分析
2.1 数据集介绍
本文在2 个基准数据集上评估了本文设计的模型.LineMOD 数据集是一个包含13 个低纹理对象的13 个视频的数据集,数据集中的物体具有不同的颜色、形状和尺寸.数据集的挑战性体现在无纹理的对象、杂乱的场景和照明情况的变化.本文参考DenseFusion[11]方法分割了训练集和测试集,并在按照PVNet[14]方法生成用于训练的合成图像.
YCB-Video 数据集包含92 个RGB-D 视频,用于捕捉21 个选定YCB 对象的场景.整个数据集包含133 827 帧RGB-D 数据,通过半自动化方法完成真实数据集的标注[25].数据集同样存在复杂的光照条件、部分遮挡等挑战.本文遵循DenseFusion[11]方法来分割训练集和测试集,还拍摄了合成图像进行训练.
2.2 训练细节
本文的深度学习模型和测试模型都是基于pytorch1.8 环境,使用带有ImageNet 预训练权重的ResNet34 来提取RGB 中的颜色特征.改进后的点云特征提取网络来提取几何信息.它们通过特征融合部分进一步融合,以获得每个点的组合特征.Mkey、Mseg和Mcenter由图2 所示的共享多层感知机组成.本文为RGB-D 图像的每一帧采样12 288 个点,并在式(6)中设置λ1=λ2=λ3=1.本网络设置的初始学习率为0.01,epoch 数量设置为250.
2.3 评估标准
使用平均距离度量ADD(S)和ADD-S 评估本文方法.对于不对称物体,ADD(S)指标为预测位姿和真实位姿转换的物体顶点之间的点对平均距离,即
式中:v 为物体O 中的一个顶点;R、t 为预测位势;R*、t*为真实值.对于对称的物体,采用基于最近点距离的ADD-S 方法,即
在YCB-Video 数据集中,本文在评估中通过改变距离阈值,计算ADD-S AUC,即准确率-阈值曲线下的面积.在YCB-Video 数据集和LineMOD 数据集中,本文计算得到的参数估计误差小于物体直径的10%(ADD-0.1d).
2.4 测试结果及分析
2.4.1 LineMOD 数据集实验结果分析
本文在LineMOD 数据集测试过程中,不仅对比了基于RGB 图像的两种方法PoseCNN、PVNet,还对比了基于RGB-D 图像的两种方法FFB6D[26]、DCL-Net[27].这些方法与本文采用相同的评价标准,得出结果如表1 所示.
表1 LineMOD数据集实验结果Tab.1 Experimental results of the LineMOD dataset
表2 YCB-Video数据集实验结果Tab.2 Experimental results of the YCB-Video dataset
表1 展示了其他4 种方法在LineMOD 数据集中13 类物体的ADD(S)<2 cm 的准确率,可以看出,本文模型相比于其他4 种方法,取得了最好的性能.普遍来说,基于RGB-D 图像的方法准确率高于基于RGB 图像的方法,这是由于RGB-D 图像还利用了点云信息,这对于三维世界中的信息预测效果具有明显的提升.其中FFB6D[26]方法已经在各类物体中得到了不错的结果,但本文方法充分利用了点云特征,并将图像特征与点云特征加以融合,预测物体关键点位置,间接求得位姿参数.相较于FFB6D[26]方法,虽然准确率没有明显提升,但在后续算法时间对比上略有优势,FFB6D 所提出的方法依赖于庞大的计算量,本文模型相较于此方法有明显提升.在LineMOD 数据集中的实验效果如图4(a)所示,可以看出将三维模型根据预测出的位姿转换到相机坐标系中,与原物体基本重合,效果良好.
图4 本文方法在两个数据集中的效果Fig.4 Effect of our method in two datasets
2.4.2 YCB-Video 数据集实验结果分析
本文方法的优势之一就是基于三维关键点方法对遮挡具有较强的鲁棒性.为了研究不同的方法是如何被不同程度的遮挡所影响的,本文计算不同物体被遮挡百分比下的模型性能.图5 展示了在不同物体被遮挡百分比下ADD-S<2 cm 的准确率.当50%的点是被遮挡时,不同方法的性能非常接近.然而,随着被遮挡部分百分比的增加,FFB6D 和DCL-Net方法与本文方法相比下降得更快.图5 表明,即使在物体被严重遮挡的情况下,本文模型也表现良好.再次验证了基于三维关键点方法在预测物体位姿时的重要作用.在YCB-Video 数据集中实验的实际效果如图4(b)所示,物体预测位姿基本与真实值一致.
图5 YCB-Video 数据集中不同方法在不同遮挡百分比下的性能Fig.5 Performance of different methods under different occlusion percentages in the YCB-Video dataset
本文在YCB-Video 数据集的测试实验中将本文方法与PoseCNN、DCL-Net 方法作对比.3 种方法采用相同的评估标准,在YCB-Video 数据集中所有21个物体的评估结果如表 2 所示,可以看到,在ADD(S)指标上,本文方法比 DCL-Net[27]高出8.2%.在ADD-S 指标上,本文相较于最优秀的方法也提升了4.9%.
2.4.3 算法时间效率
由于增加了自注意力机制等网络结构,增加了网络模型的复杂度,延长了推理时间.本文验证了不同方法的时间效率,同时计算了不同方法在测试数据集中平均一帧图像进行6D 位姿估计所需时间.实验结果表明,FFB6D 方法进行一帧图像的位姿估计需要0.08 s,DCL-Net 由于附加了优化模块降低了效率,而本文方法只需要0.06 s,基本满足了实时性的要求.
2.4.4 消融实验
为了验证本文设计的模块对于位姿估计结果优化的有效性,设计了关于自注意力机制模块、语义分割模块等的消融实验,将网络分为3 种情况,研究各个模块对模型优化的程度,最终结果如表3 所示.通过实验可以看出,本文设计的模块均有优化模型的效果,达到了模块设计的目的.对比第1 组与第4 组实验,可以发现通过引入自注意力机制模块,在ADD(S)指标提升了0.9%.对比第2 组、第3 组与第4 组实验,不难看出通过引入语义分割与中心预测模块,可以在ADD(S)指标上分别提升3.8%、1.3%.
表3 消融实验结果Tab.3 Results of the ablation experiments
3 结 论
本文针对现有物体位姿估计方法难以解决物体遮挡、光线不稳定等问题,设计了一种新型的三维关键点投票与实例语义分割网络,该网络通过输入RGB-D 图像,计算物体的三维关键点位置,最后通过最小二乘方法拟合位姿参数.本文方法对遮挡等复杂情况有一定的鲁棒性,在几个数据集中以较大的优势优于其他方法.
(1) 通过使用本文的点云特征提取网络,能够较好地使用点云数据,提取到更显著的特征,从而更有效地融合点云的局部特征和全局特征,有利于后续的关键点预测及实例语义分割,最终提升整体网络物体位姿估计的准确率.
(2) 本文设计的网络模块通过自注意力机制增强提取点云特征,在一定程度上解决了物体位姿估计中的遮挡问题,能够使点云特征不仅局限于欧式空间内,还包含特征空间相近的点云信息.
(3) 通过采用三维关键点投票策略,使网络更加充分利用提取完的点云融合特征,网络不直接回归位姿参数,而是预测物体关键点位置,减小了参数回归的难度,提升了网路在复杂情况下的位姿估计准确率.
本文设计的方法在整体精度和鲁棒性上具有明显优势,但对于外表相似、大小不同或对称的物体仍旧存在预测位姿误差过大等问题,因此在点云特征与纹理特征融合部分仍具有提升空间.下一步工作将结合虚拟数据集构建,扩充数据集各种情况,提升特征融合网络等,以提升模型在复杂情况下的实际应用性和鲁棒性.