基于3D关键点的双目视觉物体6D位姿估计
6D pose estimation of binocular vision object based on 3D key point
通讯作者:
收稿日期: 2024-11-4
Received: 2024-11-4
作者简介 About authors
宁锴旭(1999—),男,硕士生,从事物体6D位姿估计研究.orcid.org/0009-0003-0633-2874.E-mail:
针对传统位姿估计方法中依赖CAD模型的问题,提出基于多视图几何的双目数据集制作方法及基于3D关键点的物体6D位姿估计网络StereoNet. 通过3D关键点估计网络获取物体的3D关键点,在网络中引入视差注意模块,提高关键点预测的精度. 采用运动恢复结构(SfM)方法重建物体的稀疏点云模型,将查询图像的3D点与SfM模型中的3D点输入图注意力网络(GATs)中进行匹配,通过RANSAC和PnP算法计算得到物体的6D位姿. 实验结果表明,当对3D关键点估计时,StereoNet的MAE评价指标较KeypointNet、KeyPose高1.2~1.6倍. 在6D位姿估计方面,StereoNet的5 cm 5°和3 cm 3°评价指标均优于HLoc、OnePose、Gen6D,平均精确度达到82.1%,证明该网络具有良好的泛化性和准确性.
关键词:
A binocular dataset fabrication method based on multi-view geometry and a 3D key point-based object 6D pose estimation network, StereoNet, were proposed to address the reliance on CAD models in traditional pose estimation methods. The 3D key points of the object were obtained through a 3D key point estimation network, and a parallax attention module was introduced into the network to improve the accuracy of key point prediction. The structure-from-motion (SfM) method was employed to reconstruct a sparse point cloud model of the object. The 3D points from the query image and those from the SfM model were fed into a graph attention network (GATs) for matching. The 6D pose of the object was computed by using the RANSAC and PnP algorithms. The experimental results showed that the MAE metric of StereoNet was 1.2–1.6 times higher than that of KeypointNet and KeyPose in 3D key point estimation. StereoNet outperformed HLoc, OnePose, and Gen6D in the 5 cm 5° and 3 cm 3° evaluation metrics in terms of 6D pose estimation, achieving an average accuracy of 82.1%. The network has strong generalization ability and accuracy.
Keywords:
本文引用格式
宁锴旭, 陆晴, 杨恒, 王韶涵.
NING Kaixu, LU Qing, YANG Heng, WANG Shaohan.
综上所述,为了克服传统位姿估计方法需要CAD模型的问题,本文提出基于3D关键点的物体6D位姿估计方法,通过匹配物体稀疏点云模型和查询图像的3D关键点来估计物体位姿. 为了降低数据采集难度和提高标注效率,本文提出基于多视图几何的双目数据集制作方法. 该方法使用成本较低的双目相机采集信息,且仅须标注物体2D关键点,标注过程简单.
1. 位姿估计数据集的制作
图 1
图 2
在获得双目图像数据后,使用PnP算法计算得到每个录制帧的相机姿态. 为了减少误差,将所有帧中拥有6个及以上ArUco标记的帧作为有效帧. 使用最远点采样(FPS)从有效帧中选择出部分帧,并标注图像中物体的2D关键点,标注结果如图3所示. 具体的标注细节如下. 1)标注工具采用开源标注工具Labelme. 2)标注时,对左、右图像分别进行标注,标注的目的是进行立体匹配. 3)标注时依据的特征为物体纹理特征点,对于弱纹理物体或无纹理物体,选用几何特征点作为依据. 通过多视图几何优化,计算得到关键点在世界坐标系中的3D坐标. 通过求解正交Procrustes问题,将物体CAD模型与计算出的3D关键点拟合,获得当前帧中的物体6D位姿. 通过相机姿态的逆变换,将物体位姿传播到其他所有有效帧上.
图 3
为了检测计算出3D关键点的准确度,对上述数据集制作方法进行分析. 其中采用的ArUco标记尺寸误差可以忽略不计,因为其尺寸采用游标卡尺精确测量,标记误差可能来自ArUco标记的自动检测和2D关键点的标记,会导致相机姿势估计误差和从多视角进行的3D点估计误差.
为了测量出具体误差,使用蒙特卡洛模拟进行误差计算,并与深度传感器Orbbec Astar进行比较,该传感器的精度为3 mm. 本文所使用的双目视觉系统视场角为80°,焦距为3 mm,基距为60 mm. 具体的模拟过程如下. 1)从FPS选取出的图像中随机选取4~6个视图,计算视图中的ArUco角投影. 抖动这些投影,重新计算姿势,以获得估计姿势. 2)在转动平台中随机放置一个3D关键点并将其投影到估计姿势上,抖动这些投影并估计关键点. 通过度量估计关键点和真实关键点之间的距离,可以得到误差. 模拟次数为1 000. 计算得到深度传感器Orbbec Astar的误差为17 mm,而本文所提方法的误差为4.1 mm,准确度至少提高了4倍.
使用上述数据集制作方法,构建立体图像数据集. 该数据集包含3类,共计18个日常物体. 瓶类包含AD钙瓶、喷气罐、益达瓶、绿茶瓶、可乐瓶、茶叶罐,盒类包含茶叶盒、纸巾盒、烟盒及3种不同品牌的饼干盒,水杯类包含6个带把手、外表不同的水杯. 此外,提供了物体的CAD模型,这些CAD模型使用开源工具COLMAP制作而成. 将物体图像输入COLMAP中,开展三维重建,得到物体的CAD模型. 其中,部分物体模型如图4所示.
图 4
2. 位姿估计网络
StereoNet网络的整体架构和训练损失函数如图5所示. 给定具有已知物体位姿
图 5
2.1. 点云重建
运动恢复结构(structure from motion, SfM)法主要通过多张二维图片重建三维场景. 对从不同视角下拍摄的图像进行特征提取并计算描述子,随后匹配每张照片中的特征点,寻找其对应关系并通过RANSAC或PnP算法估计得到相机姿态. 使用三角测量法估计出每个特征点的3D位置,在完成每张图片的三维重建后,将其融合得到整个场景的三维模型.
采用文献[14]的方式,对物体进行点云重建. 使用相机对物体进行视频录制,在录制时,假设物体放置在平坦表面上且在录制期间静止. 为了确定物体的标准位姿,选取视频中的一帧图像并对其注释一个3D边界框B. B由中心位置、尺寸和围绕Z轴的旋转(偏航角)参数化.
在对数据进行收集和注释后,从视频中提取出一组图像{Ii},使用SfM法重建物体的稀疏点云集合{Pj},其中j为点索引. 其中相机姿势集合
图 6
2.2. 3D关键点估计
对于单目相机而言,直接估计物体的3D关键点比较困难,因为单目相机只能提供二维图像信息,缺乏深度信息,而双目视觉系统可以借助对极几何原理得到视差图,再根据三角测量原理求出3D坐标. 在此基础上,只须已知关键点2D坐标和视差便可求出3D坐标,而视差可以通过左、右图像中同一关键点的二维坐标计算得到. 综上所述,将3D关键点估计变为2D关键点估计.
3D关键点估计网络的整体流程如图7所示. 其中特征提取部分为空洞卷积网络,该网络所有层的卷积核均为3×3,共有13层膨胀卷积,膨胀率分别为1、1、2、4、8、1、6、1、2、4、8、1、6、1、1. 除最后一层外,其他所有层后均增加LeakyRelu和Batch Normalization. 通过空间softmax传递生成概率图probi,probi表示关键点i在像素(u,v)上出现的可能性,之后进行积分以获得U、V坐标. 计算视差热图,将其与概率图进行卷积,然后进行积分以生成视差D,该视差D为同一关键点在左、右图像中的水平坐标差值. UVD三元组可以通过相机标定时获得的重投影矩阵Q,对3D XYZ进行编码. 假设一关键点M的三维坐标为(X, Y, Z),二维图像坐标为(x, y),根据双目视觉系统的几何关系可得视差与深度的转换关系:
图 7
式中:Z为深度,f为焦距,B为基线距离,d为视差.
通过深度求得关键点M的三维坐标:
式中:
立体图像上显示的物体视差幅度会随物体的形状和深度而变化. 换句话说,物体视差隐式地指示了这种信息,因此可以用于指导立体特征融合,提高物体3D关键点估计的性能. 在空洞卷积网络中增加用于立体特征融合的视差注意力模块[15],以提高视差估计的准确性. 给定立体图像特征
式中:
2.3. 匹配网络
图 8
SfM模型中3D点Pj与Gj中的多个
式中:
在聚合注意层之后,GATs网络增加了自注意力层和交叉注意力层,处理和转换聚合后的三维描述符和查询三维特征描述符. 聚合、自注意力层和交叉注意力层可以形成注意组,而GATs网络由4个堆叠注意力组组成. 其中,聚合注意力层将根据其与
通过计算3D关键点与SfM模型点之间的匹配置信度来选择最可靠的匹配,用于后续的位姿估计. 使用双softmax算子计算匹配置信度分数P3D. 通过
为了进一步过滤低质量匹配对,选择置信度阈值θ,本文选择阈值为0.7. 过滤后,置信度矩阵C3D变为置换矩阵M3D,M3D表示最终筛选出的匹配对. 利用M3D,通过带有RANSAC的PnP算法可以计算物体6D位姿.
2.4. 损失函数
当对3D关键点估计网络进行训练时,选用3种损失函数:关键点UVD损失、投影损失和局部性损失函数. 具体的损失函数定义如下.
1)关键点损失函数Lkp. 当直接对比3D损失时,误差会随距离呈二次方增长,使得距离较近的物体误差过大,故通过比较预测像素(U、V、D)和标记像素(U*、V*、D*)的平方误差得到关键点损失.
2)投影损失函数Lproj. 将预测像素转换为三维点,重新投影到用于创建三维点的大范围分隔视图上,预测像素与标注像素重新投影值之间差值的平方为投影损失.
式中:Pj为投影函数,Q为相机重投影矩阵.
3)局部性损失函数Lloc. 虽然关键点位置是根据UV概率图估计得出的,但该图可能不是单模态的,并且远离真实关键点位置的概率较高. 这种损失促使概率图围绕关键点进行局部化.
式中:N为以关键点i的标记
对于匹配网络GATs,在原有焦点损失的基础上增加交叉熵损失,使得网络更好地利用全局信息. 两损失函数均基于双softmax算子返回的置信度分数矩阵C3D,焦点损失函数为
式中:
交叉熵损失函数为
式中:
综上所述,训练StereoNet网络的总损失函数为
3. 实验结果及分析
以Intel 2.50 GHz CPU和NVIDIA GeForce RTX
3.1. 网络训练流程
与其他的物体位姿估计方法类似,根据分割结果裁剪目标物体区域,分割网络选取YOLOv5模型. 将裁剪后的物体图像块大小调整为180×120,并将其输入主干网络进行图像特征提取.
对损失函数的权重参数进行合理选取. Lkp函数通常作为基础损失,故选取λ1=1. 对于Lproj函数,为了提高预测UVD的稳定性,权重λ2在训练期间须动态调整,因此在网络训练时,调整λ2为0~2.5. 对于Lloc函数,较小的权重会使概率分布走到正确的局部形式,故选取λ3 = 0.001. Lfoc函数通常用于处理难匹配的点对,选取λ4 = 0.8. Lbce函数更注重全局,选取λ5 = 1.
3.2. 数据集和评估指标
对自制数据集中未见过的物体进行对比试验. 对于3D关键点估计,将平均绝对误差(MAE)作为评估指标. MAE表示预测关键点位置与真实关键点位置之间的平均误差. 对于位姿估计,由于没有CAD模型,不能直接采用常用的ADD指标和2D投影指标. 另一个常用来评估预测物体位姿质量的指标为m cm n°指标,该指标表示当预测出物体的3D旋转误差低于阈值n°,3D平移误差小于m cm时,则认为物体的6D位姿预测准确. 按照该定义,本文选用5 cm 5°和3 cm 3°这2项指标对提出网络进行评估.
3.3. 3D关键点估计的对比实验
表 1 类别级3D关键点的估计结果
Tab.1
| 方法 | MAE/mm | ||
| 盒子 | 瓶子 | 杯子 | |
| KeypointNet | 6.4 | 6.0 | 10.5 |
| KeyPose | 6.6 | 5.8 | 9.9 |
| StereoNet | 5.0 | 4.7 | 6.1 |
在2个未见物体(鼠标和小黄鸭)上进行对比,结果如表2所示. 当测试物体不属于训练时所用的任何一种类别时,KeypointNet和KeyPose网络的误差明显提高,而本文方法依旧稳健,证明该网络具有良好的泛化性.
表 2 未见过物体的3D关键点估计结果
Tab.2
| 方法 | MAE/mm | |
| 鼠标 | 小黄鸭 | |
| KeypointNet | 42.8 | 55.0 |
| KeyPose | 38.2 | 49.1 |
| StereoNet | 18.2 | 13.6 |
3.4. 物体位姿估计的对比实验
表 3 位姿估计精度的对比结果
Tab.3
| 方法 | 瓶子 | 马克杯 | 杯子 | 鼠标 | |||||||
| 3 cm 3° | 5 cm 5° | 3 cm 3° | 5 cm 5° | 3 cm 3° | 5 cm 5° | 3 cm 3° | 5 cm 5° | ||||
| HLoc | 0.703 | 0.813 | 0.793 | 0.831 | 0.739 | 0.837 | 0.729 | 0.832 | |||
| OnePose | 0.733 | 0.836 | 0.806 | 0.828 | 0.729 | 0.832 | 0.711 | 0.819 | |||
| Gen6D | 0.572 | 0.613 | 0.575 | 0.608 | 0.468 | 0.515 | 0.508 | 0.613 | |||
| Gen6D | 0.591 | 0.633 | 0.598 | 0.631 | 0.502 | 0.583 | 0.566 | 0.631 | |||
| StereoNet | 0.773 | 0.865 | 0.813 | 0.844 | 0.791 | 0.854 | 0.787 | 0.845 | |||
3.5. SfM点云重建误差的影响分析
选取水杯作为实验对象,将完整点云模型及重建的SfM模型输入StereoNet网络中,探究SfM重建误差对位姿估计精度的影响. 其中,水杯的完整点云模型从shapenet数据集获得,当重建SfM模型时,通过调整特征匹配中的内点阈值N,得到不同重建精度的SfM模型. 将N分别设定为1、2、3、4.
实验结果如图9所示. 其中,ACC为位姿估计精度,RMSE为重建误差均方根. 当内点阈值为1时,SfM模型与完整点云模型的位姿估计精度差距较小. 随着内点阈值的增大,SfM模型的重建误差变大,位姿估计精度明显降低.
图 9
图 9 不同重建误差对位姿估计精度的影响
Fig.9 Effect of different reconstruction error on accuracy of pose estimation
3.6. 双目视觉成像的参数影响分析
不同相机系统的结构参数、镜头参数、标定精度均会影响双目视觉精度. 在相机镜头参数、标定精度不变的情况下,选取5 cm 5°评估指标,将物距u作为精确度指标进行分析,结果如图10所示.
图 10
图 10 不同物距对位姿估计精度的影响
Fig.10 Effect of different distance on accuracy of pose estimation
3.7. 典型失效案例的分析
本文方法主要依靠局部特征匹配,当面对无纹理对象时,结果可能不佳,因此增加对无纹理物体的实验分析. 实验选取3对物体,分为2组:一组上面贴标签(有纹理),另一组不作处理(无纹理). 实验结果如表4所示. 可知,无纹理组的位姿估计精度明显低于有纹理组,且对于指标3 cm 3°,无纹理组未得到正确位姿,说明本文方法不适用于无纹理物体的位姿估计任务,后续需要进一步的研究.
表 4 有、无纹理物体的位姿估计精度对比实验
Tab.4
| 有纹理 | 无纹理 | ||||
| 物体 | 3 cm 3° | 5 cm 5° | 3 cm 3° | 5 cm 5° | |
| 杯子 | 0.781 | 0.826 | — | 0.422 | |
| 盒子 | 0.798 | 0.848 | — | 0.459 | |
| 马克杯 | 0.801 | 0.832 | — | 0.403 | |
4. 结 论
(1)提出的数据集制作方法仅须标注少量物体的2D关键点,显著降低了数据集的制作难度,且相较于传统方法,该方法的精度有明显提高.
(2)实验结果表明,当对未见物体进行3D关键点估计和6D位姿估计时,StereoNet网络均优于其他网络,证明提出网络具有较高的准确度和泛化性.
(3)提出方法主要依靠局部特征匹配,当面对无纹理对象时,效果较差. 后续可以针对这一问题进行改进.
参考文献
/
| 〈 |
|
〉 |

