浙江大学学报(工学版), 2025, 59(11): 2277-2284 doi: 10.3785/j.issn.1008-973X.2025.11.006

机械工程、能源工程

基于3D关键点的双目视觉物体6D位姿估计

宁锴旭,, 陆晴, 杨恒,, 王韶涵

太原科技大学 机械工程学院,山西 太原 030024

6D pose estimation of binocular vision object based on 3D key point

NING Kaixu,, LU Qing, YANG Heng,, WANG Shaohan

School of Mechanical Engineering, Taiyuan University of Science and Technology, Taiyuan 030024, China

通讯作者: 杨恒,男,副教授. orcid.org/0009-0004-1920-8677. E-mail: 93328173@qq.com

收稿日期: 2024-11-4  

Received: 2024-11-4  

作者简介 About authors

宁锴旭(1999—),男,硕士生,从事物体6D位姿估计研究.orcid.org/0009-0003-0633-2874.E-mail:2654223903@qq.com , E-mail:2654223903@qq.com

摘要

针对传统位姿估计方法中依赖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%,证明该网络具有良好的泛化性和准确性.

关键词: 6D位姿 ; 数据集制作 ; 双目视觉 ; 3D关键点匹配 ; PnP算法

Abstract

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: 6D pose ; dataset creation ; binocular vision ; 3D key point matching ; perspective-n-point (PnP) algorithm

PDF (1301KB) 元数据 多维度评价 相关文章 导出 EndNote| Ris| Bibtex  收藏本文

本文引用格式

宁锴旭, 陆晴, 杨恒, 王韶涵. 基于3D关键点的双目视觉物体6D位姿估计. 浙江大学学报(工学版)[J], 2025, 59(11): 2277-2284 doi:10.3785/j.issn.1008-973X.2025.11.006

NING Kaixu, LU Qing, YANG Heng, WANG Shaohan. 6D pose estimation of binocular vision object based on 3D key point. Journal of Zhejiang University(Engineering Science)[J], 2025, 59(11): 2277-2284 doi:10.3785/j.issn.1008-973X.2025.11.006

估计给定图像中物体在相机坐标系下的空间位置和朝向称为物体位姿估计,是自动驾驶、增强现实、机器人操作等任务的关键技术. 目前,大多数物体位姿估计研究[1-2]假设物体CAD模型均已知,而日常物体的高质量CAD模型通常难以获得,因此对物体位姿估计的研究提出新的挑战.

实例级位姿估计方法[3-4]通常为物体提供了带纹理的CAD模型. 训练和测试均在同一实例上进行. 目前,物体位姿估计任务主要通过直接回归[5]、构建2D-3D的对应关系再求解PnP[6]和构建3D-3D对应关系再进行最小二乘拟合等方式来解决. Gao等[7]使用解耦网络,从物体点云中进行旋转和平移回归. Chen等[8]引入旋转残差估计器来估计预测旋转和地面实况之间的残差,提高了旋转预测的准确性. 实例级方法的泛化性能较差,因为该方法只能应用于数据集所包含的物体.

为了提高网络泛化性,许多方法致力于类别级位姿估计[9-10]. 通过在同一类别中的不同实例上训练网络,网络可以学习物体外观和形状的类别级表示,从而推广到同一类别中的新实例. Wang等[10]设计规范化物体坐标空间,为某类物体提供规范表示. Wang等[10]预测类内看不见物体的类标签、掩码和NOCS图,使用Umeyama算法,通过将NOCS图与物体点云对齐来求解物体位姿. Zhang等[11]提出非对称感知形状先验变形的方法,将形状先验集成到直接姿势估计网络中. 然而,类别级方法不能推广到预定义类别之外的新物体.

最近一些研究使用无模型方法对物体进行位姿估计. 该方法无需物体CAD模型,只需提供一些手动标记的目标物体的参考视图. He等[12]提出第1种少样本物体6D位姿估计方法,该方法可以通过少量支持视图估计未见物体的位姿,无须额外训练. 一些研究人员从重建后匹配的角度来解决该问题. Wu等[13]开发基于全局配准的方法,该方法使用参考和查询图像重建全视图和单视图模型,随后搜索2个模型之间的点匹配.

综上所述,为了克服传统位姿估计方法需要CAD模型的问题,本文提出基于3D关键点的物体6D位姿估计方法,通过匹配物体稀疏点云模型和查询图像的3D关键点来估计物体位姿. 为了降低数据采集难度和提高标注效率,本文提出基于多视图几何的双目数据集制作方法. 该方法使用成本较低的双目相机采集信息,且仅须标注物体2D关键点,标注过程简单.

1. 位姿估计数据集的制作

由于关键点深度不确定,手动标记单个RGB图像中的3D关键点非常困难. 采用多视图的几何原理,将立体图像中已标记的2D标签转化为3D标签,以降低标注难度. 数据集制作的总体流程如图1所示. 首先,需要获取物体双目图像数据. 为了达成这一目标,制作双目图像自动采集平台. 该平台主要由双目相机、计算机和由单片机控制的旋转平台组成,如图2所示. 该平台采集双目图像的方法如下:计算机给双目相机和单片机发送指令,转动平台开始旋转,每转过一定的角度,双目相机拍摄一张照片,在旋转一周后,可以得到目标物体全方位视角的双目图像序列.

图 1

图 1   数据集制作的流程图

Fig.1   Flow chart of dataset creation


图 2

图 2   双目图像自动采集平台

Fig.2   Binocular image automatic acquisition platform


在获得双目图像数据后,使用PnP算法计算得到每个录制帧的相机姿态. 为了减少误差,将所有帧中拥有6个及以上ArUco标记的帧作为有效帧. 使用最远点采样(FPS)从有效帧中选择出部分帧,并标注图像中物体的2D关键点,标注结果如图3所示. 具体的标注细节如下. 1)标注工具采用开源标注工具Labelme. 2)标注时,对左、右图像分别进行标注,标注的目的是进行立体匹配. 3)标注时依据的特征为物体纹理特征点,对于弱纹理物体或无纹理物体,选用几何特征点作为依据. 通过多视图几何优化,计算得到关键点在世界坐标系中的3D坐标. 通过求解正交Procrustes问题,将物体CAD模型与计算出的3D关键点拟合,获得当前帧中的物体6D位姿. 通过相机姿态的逆变换,将物体位姿传播到其他所有有效帧上.

图 3

图 3   图像标注结果

Fig.3   Result of image annotation


为了检测计算出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

图 4   部分物体的CAD模型

Fig.4   CAD models of some objects


2. 位姿估计网络

StereoNet网络的整体架构和训练损失函数如图5所示. 给定具有已知物体位姿$ \left\{ {{{{\boldsymbol{\xi}} }_{i}}} \right\} $的参考图像序列$ \left\{ {{{{\boldsymbol{I}}}_{i}}} \right\} $,估计查询图像中的物体位姿$ \left\{ {{{{\boldsymbol{\xi}} }_{q}}} \right\} $,其中索引iq分别表示参考图像和测试图像. 为了实现这一目标,受文献[14]的启发,提出新网络StereoNet. 借助参考图像重建物体稀疏点云,对立体图像中的物体进行3D关键点估计,通过构建3D-3D对应关系估计物体6D位姿. 该网络可以分为3个部分:3D关键点估计网络、物体点云重建、用于3D-3D匹配的匹配网络.

图 5

图 5   StereoNet网络的整体架构

Fig.5   Overall architecture of StereoNet network


2.1. 点云重建

运动恢复结构(structure from motion, SfM)法主要通过多张二维图片重建三维场景. 对从不同视角下拍摄的图像进行特征提取并计算描述子,随后匹配每张照片中的特征点,寻找其对应关系并通过RANSAC或PnP算法估计得到相机姿态. 使用三角测量法估计出每个特征点的3D位置,在完成每张图片的三维重建后,将其融合得到整个场景的三维模型.

采用文献[14]的方式,对物体进行点云重建. 使用相机对物体进行视频录制,在录制时,假设物体放置在平坦表面上且在录制期间静止. 为了确定物体的标准位姿,选取视频中的一帧图像并对其注释一个3D边界框B. B由中心位置、尺寸和围绕Z轴的旋转(偏航角)参数化.

在对数据进行收集和注释后,从视频中提取出一组图像{Ii},使用SfM法重建物体的稀疏点云集合{Pj},其中j为点索引. 其中相机姿势集合$\left\{ {{{{\boldsymbol{\xi}} }_i}} \right\} \in {{\mathrm{SE}}} (3)$使用AR工具箱(如ARKit或ARCore)跟踪,其中i为帧索引. 由于边界框B已注释,可以在物体坐标系中定义{Pj}. 具体而言,从每幅图像中提取2D关键点和描述符. 该描述符包含了关键点及其周围区域的局部特征向量,编码了关键点周围区域的梯度方向、梯度大小信息. 在这些图像之间进行匹配,以产生2D-2D对应关系. 每个重建点Pj对应于一组匹配的2D关键点和描述符$\left\{ {{{\boldsymbol{F}}}_k^{2{\mathrm{D}}}} \right\} \in {{{{\bf R}}}^d}$,其中k为关键点索引,d为描述符的维度. 对应的图{Gj}(也称为特征轨迹)由$\left\{ {{{\boldsymbol{P}}}_j^{3{\mathrm{D}}}} \right\}$的关键点索引形成. 经过上述操作,可以获得物体稀疏点云,用于后续的3D-3D匹配网络. 根据上述方法所生成的部分物体稀疏点云如图6所示.

图 6

图 6   部分物体的稀疏点云模型

Fig.6   Sparse point cloud model of some objects


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在像素(uv)上出现的可能性,之后进行积分以获得U、V坐标. 计算视差热图,将其与概率图进行卷积,然后进行积分以生成视差D,该视差D为同一关键点在左、右图像中的水平坐标差值. UVD三元组可以通过相机标定时获得的重投影矩阵Q,对3D XYZ进行编码. 假设一关键点M的三维坐标为(X, Y, Z),二维图像坐标为(x, y),根据双目视觉系统的几何关系可得视差与深度的转换关系:

图 7

图 7   3D关键点估计网络

Fig.7   3D key point estimation network


$ Z = \frac{{f B}}{d}. $

式中:Z为深度,f为焦距,B为基线距离,d为视差.

通过深度求得关键点M的三维坐标:

$ \left.\begin{array}{l} X = \dfrac{{Z({c_x} - x)}}{{{f_x}}}, \\ Y = \dfrac{{Z({c_y} - y)}}{{{f_y}}}, \\ Z = Z. \\ \end{array}\right\} $

式中:$({c_x},{c_y})$为相机光心坐标,fxfy分别为焦距在xy轴上的尺度因子.

立体图像上显示的物体视差幅度会随物体的形状和深度而变化. 换句话说,物体视差隐式地指示了这种信息,因此可以用于指导立体特征融合,提高物体3D关键点估计的性能. 在空洞卷积网络中增加用于立体特征融合的视差注意力模块[15],以提高视差估计的准确性. 给定立体图像特征${{\boldsymbol{F}}_{\mathrm{l}}} $$ {{\boldsymbol{F}}_{\mathrm{r}}} \in {\bf R}^{H \times W \times C}$,计算FlFr之间的逐像素特征相关性,以软建模物体相对于相机的视差信息. 这种逐像素相关性称为视差注意图,并将其用于立体特征融合. 具体来说,该模块利用解缠结的非局部块[16-17],计算视差注意图. 使用2个白化层将FlFr归一化为$ {{{{\boldsymbol{F}}}}'_{\mathrm{l}}}$$ {{\boldsymbol{F}}'_{\mathrm{r}}}$. 之后,注意力图可以计算为

$ \left.\begin{array}{l} {{\boldsymbol{A}}_{{\mathrm{r}} \to {\mathrm{l}}}} = \sigma ({{{{\boldsymbol{F}}}}'_{\mathrm{l}}} \otimes {{\boldsymbol{F}}'^{{\rm T}}_{\mathrm{r}}}\;\;),\; \\ {{\boldsymbol{A}}_{{\mathrm{l}} \to {\mathrm{r}}}} = \sigma ({{\boldsymbol{F}}'_{\mathrm{r}}} \otimes {{\boldsymbol{F}}'^{\rm T}_{\mathrm{l}}}\;\;). \\ \end{array}\right\} $

式中:$ \otimes $表示批量矩阵乘法,$\sigma ( \cdot )$表示沿最后一维的softmax归一化操作. 得到的${{\boldsymbol{A}}_{{\mathrm{r}} \to {\mathrm{l}}}} $${{\boldsymbol{A}}_{{\mathrm{l}} \to {\mathrm{r}}}} \in {{\bf R}^{H \times W \times C}}$分别为从右视图到左视图和从左视图到右视图的视差注意力图. 融合右视图特征与左视图特征,如下所示:

$ {{\boldsymbol{F}}_{{\mathrm{r}} \to {\mathrm{l}}}} = {{\boldsymbol{A}}_{{\mathrm{r}} \to {\mathrm{l}}}} \otimes {{\boldsymbol{F}}_{\mathrm{r}}}. $

2.3. 匹配网络

在进行2D-3D匹配之前,还需3D关键点和SfM模型的3D特征描述符. 采用图注意力网络(GATs)[14]获取3D特征描述符并对其进行匹配,该网络框架结构如图8所示.

图 8

图 8   GATs网络的结构框架

Fig.8   Structure framework of GATs network


SfM模型中3D点PjGj中的多个${{\boldsymbol{F}}}_{k'}^{2{\mathrm{D}}}$相关联,因此需要进行聚合操作来更新3D描述符. 将SfM模型中的关键点特征描述符集合定义为$\left\{ {{{\boldsymbol{F}}}_j^{3{\mathrm{D}}}} \right\} \in {{\bf{R}}^d}$,通过平均相应的2D描述符进行初始化,将查询图像中的3D关键点特征描述符集合定义为$\left\{ {{{\boldsymbol{F}}}_q^{3{\mathrm{D}}}} \right\} \in {{\bf{R}}^d}$. 聚合操作将多个描述符减少为一个,因此可能会导致信息丢失,而理想的聚合操作应根据不同的${{\boldsymbol{F}}}_q^{3{\mathrm{D}}}$自适应地为3D-3D匹配保留$\left\{ {{{\boldsymbol{F}}}_k^{2{\mathrm{D}}}} \right\}$中最具信息的2D特征. GATs网络使用文献[18]的图注意层来实现自适应聚合,并将其命名为聚合注意层. 聚合注意力层对每个个体Gj进行操作. 对于每个${\boldsymbol{G}}_{{ j }}$,将权重矩阵表示为${{\boldsymbol{W}}} \in {{\bf{R}}^{d \times d}}$,聚合注意力层定义为

$ \left.\begin{array}{l} {{\mathrm{Aggr}}} \left(\left\{ {{{{\boldsymbol{F}}}}} _{k'}^{3{\mathrm{D}}}\right\} ,{{{{\boldsymbol{F}}}}} _j^{3{\mathrm{D}}}\right) = {{\boldsymbol{F}}} _j^{3{\mathrm{D}}}+\sum\limits_{\forall k' \in {g_j}} {{\alpha _{k'}}} {{\boldsymbol{F}}} _{k'}^{3{\mathrm{D}}}, \\ {\alpha _{k'}} = \mathop {{{\mathrm{softmax}}} }\limits_{\forall k' \in {g_j}} ({\mathrm{sim}}({{{\boldsymbol{W}}}} {\boldsymbol{F}}_{k'}^{3{\mathrm{D}}},{{{\boldsymbol{W}}}} {\boldsymbol{F}}_j^{3{\mathrm{D}}})). \\ \end{array}\right\} $

式中:${{\mathrm{sim}}} ( \cdot , \cdot ) = \langle {{\bf{R}}^d},{{\bf{R}}^d}\rangle \in \bf{R}$用来计算测试注意力系数,以衡量描述符在聚合操作中的重要性.

在聚合注意层之后,GATs网络增加了自注意力层和交叉注意力层,处理和转换聚合后的三维描述符和查询三维特征描述符. 聚合、自注意力层和交叉注意力层可以形成注意组,而GATs网络由4个堆叠注意力组组成. 其中,聚合注意力层将根据其与${{\boldsymbol{F}}}_{{q}}^{3{\mathrm{D}}}$的相关性自适应地趋向于Gj中的不同${{\boldsymbol{F}}}_k^{2{\mathrm{D}}}$,为3D-3D匹配保留更多的判别性信息. 通过将聚合注意力层与自注意力层和交叉注意力层交织,使匹配具有全局一致性和上下文相关性.

通过计算3D关键点与SfM模型点之间的匹配置信度来选择最可靠的匹配,用于后续的位姿估计. 使用双softmax算子计算匹配置信度分数P3D. 通过$ {{\boldsymbol{S}}}\left( {q,j} \right) = \left\langle {{{\boldsymbol{F}}'}_q^{3{\mathrm{D}}},{{\boldsymbol{F}}'}_j^{3{\mathrm{D}}}} \right\rangle $计算变换后特征之间的得分矩阵S. 利用下式计算匹配置信度矩阵C3D

$ {{{\boldsymbol{C}}}_{3{\mathrm{D}}}}\left( {q,j} \right) = {{\mathrm{softmax}}} \;{({{\boldsymbol{S}}}(q, \cdot ))_j} \cdot {{\mathrm{softmax}}} \;{({{\boldsymbol{S}}}( \cdot ,j))_q} .$

为了进一步过滤低质量匹配对,选择置信度阈值θ,本文选择阈值为0.7. 过滤后,置信度矩阵C3D变为置换矩阵M3DM3D表示最终筛选出的匹配对. 利用M3D,通过带有RANSAC的PnP算法可以计算物体6D位姿.

2.4. 损失函数

当对3D关键点估计网络进行训练时,选用3种损失函数:关键点UVD损失、投影损失和局部性损失函数. 具体的损失函数定义如下.

1)关键点损失函数Lkp. 当直接对比3D损失时,误差会随距离呈二次方增长,使得距离较近的物体误差过大,故通过比较预测像素(UVD)和标记像素(U*V*D*)的平方误差得到关键点损失.

$ {L_{{\mathrm{kp}}}} = {\sum\limits_{i \in {\mathrm{kps}}} \left({\left| U_i - U_i^* \right|} ^2+{\left| V_i - V_i^* \right|} ^2+{\left| D_i - D_i^* \right|^2} \right)}. $

2)投影损失函数Lproj. 将预测像素转换为三维点,重新投影到用于创建三维点的大范围分隔视图上,预测像素与标注像素重新投影值之间差值的平方为投影损失.

$ \begin{split} {L_{{\mathrm{proj}}}} = & \sum\limits_{i \in {\mathrm{kps}}} \sum\limits_{j \in {\mathrm{views}}} \left\| {P_j}({\boldsymbol{Q}}[{{U_i, V_i}}, {{{D}}_i}]^{\mathrm{T}}) -\right.\\& \left.{P_j}({\boldsymbol{Q}}[{{U_i^*, V_i^*, D_i^*}}]^{\mathrm{T}}) \right\| ^2 .\end{split}$

式中:Pj为投影函数,Q为相机重投影矩阵.

3)局部性损失函数Lloc. 虽然关键点位置是根据UV概率图估计得出的,但该图可能不是单模态的,并且远离真实关键点位置的概率较高. 这种损失促使概率图围绕关键点进行局部化.

$ {L_{{\mathrm{loc}}}} = \sum\limits_{i \in {\mathrm{kps}}} { {{\mathrm{pro}}{{\mathrm{b}}_i}} } \cdot \tilde N({{U_i^*, V}}_i^*,\sigma ). $

式中:N为以关键点i的标记${\mathrm{UV}}_i^*$坐标为中心的圆形正态分布,标准差为σ. 将其进行归一化操作可得$ \tilde N $$ \tilde N = 1 - N/\max N $.

对于匹配网络GATs,在原有焦点损失的基础上增加交叉熵损失,使得网络更好地利用全局信息. 两损失函数均基于双softmax算子返回的置信度分数矩阵C3D,焦点损失函数为

$ \begin{gathered} {L_{{\mathrm{foc}}}} = - {(1 - {{C'}_{{\mathrm{3D}}}}(q,j))^\gamma }\ln {{C'}_{{\mathrm{3D}}}}(q,j). \end{gathered} $

式中:

交叉熵损失函数为

$ \begin{split} {L_{{\mathrm{bce}}}} =& - \sum\limits_{i,j} {[M_{{\mathrm{3D}}}^{{\mathrm{gt}}}\ln\; {C_{{\mathrm{3D}}}}(q,j)} +\\& (1 - M_{{\mathrm{3D}}}^{{\mathrm{gt}}})\ln \;(1 - {C_{3{\mathrm{D}}}}(q,j))]. \end{split}$

式中:$M_{{\mathrm{3D}}}^{{\mathrm{gt}}}$为真实标签.

综上所述,训练StereoNet网络的总损失函数为

$ {L_{{\mathrm{total}}}} = {\lambda _1}{L_{{\mathrm{kp}}}}+{\lambda _2}{L_{{\mathrm{proj}}}}+{\lambda _3}{L_{{\mathrm{loc}}}}+{\lambda _4}{L_{{\mathrm{foc}}}}+{\lambda _5}{L_{{\mathrm{bce}}}}. $

3. 实验结果及分析

以Intel 2.50 GHz CPU和NVIDIA GeForce RTX 4060 GPU为实验平台,PyTorch为基本框架,对StereoNet网络进行训练. 训练时,设置批处理大小为32,学习率为10−4,周期为300. 实验时,为了减少背景复杂性对目标识别的干扰,选取背景简单、光照适中的场景进行试验,将目标物体水平放置并保持静止.

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关键点估计的对比实验

将自制数据集进行分类,定义3个类别:盒子、瓶子、杯子. 在每个类别的不同实例上训练KeypointNet[19]、KeyPose[20]网络和StereoNet中的3D关键点估计网络,并在训练所用数据集中没有的物体上进行对比. 结果如表1所示,提出网络的精度比KeypointNet和KeyPose高1.2~1.6倍,证明提出方法可以很好地推广到类内未见过物体.

表 1   类别级3D关键点的估计结果

Tab.1  Estimation result of category-level 3D key point

方法MAE/mm
盒子瓶子杯子
KeypointNet6.46.010.5
KeyPose6.65.89.9
StereoNet5.04.76.1

新窗口打开| 下载CSV


在2个未见物体(鼠标和小黄鸭)上进行对比,结果如表2所示. 当测试物体不属于训练时所用的任何一种类别时,KeypointNet和KeyPose网络的误差明显提高,而本文方法依旧稳健,证明该网络具有良好的泛化性.

表 2   未见过物体的3D关键点估计结果

Tab.2  3D keypoint estimation result for unseen object

方法MAE/mm
鼠标小黄鸭
KeypointNet42.855.0
KeyPose38.249.1
StereoNet18.213.6

新窗口打开| 下载CSV


3.4. 物体位姿估计的对比实验

将StereoNet与3类方法在未见物体上进行对比实验. 在基于局部特征匹配估计姿势方面,视觉定位方法与提出方法最相关. 具体而言,对StereoNet与HLoc[21]网络、与基于2D-3D匹配的OnePose网络、与无需物体模型的Gen6D[22]网络进行比较.

对比结果如表3所示,StereoNet在评价指标上明显优于其他方法. HLoc网络只关注匹配的2幅图像,而GATs网络可以从多幅图像中选择性地聚合上下文,从而实现较高的位姿精度. OnePose网络采用2D-3D匹配来估计位姿,由于从图像上提取的2D关键点特征描述符在尺度和旋转变化上易出现不匹配的问题,导致准确度不高,而本文采用的3D-3D匹配可以直接在三维空间中进行,匹配过程更简单,准确度更高. 为了避免与分布外的测试集发生冲突,Gen6D网络须进行微调,表3的Gen6D$ ^\dagger $为未经过微调版本. 从表3可以看出,StereoNet网络的精度较微调过的Gen6D网络高.

表 3   位姿估计精度的对比结果

Tab.3  Comparison result of accuracy of pose estimation

方法瓶子马克杯杯子鼠标
3 cm 3°5 cm 5°3 cm 3°5 cm 5°3 cm 3°5 cm 5°3 cm 3°5 cm 5°
HLoc0.7030.8130.7930.8310.7390.8370.7290.832
OnePose0.7330.8360.8060.8280.7290.8320.7110.819
Gen6D$ ^\dagger $0.5720.6130.5750.6080.4680.5150.5080.613
Gen6D0.5910.6330.5980.6310.5020.5830.5660.631
StereoNet0.7730.8650.8130.8440.7910.8540.7870.845

新窗口打开| 下载CSV


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  Comparison test for pose estimation accuracy of textured and untextured object

有纹理无纹理
物体3 cm 3°5 cm 5°3 cm 3°5 cm 5°
杯子0.7810.8260.422
盒子0.7980.8480.459
马克杯0.8010.8320.403

新窗口打开| 下载CSV


4. 结 论

(1)提出的数据集制作方法仅须标注少量物体的2D关键点,显著降低了数据集的制作难度,且相较于传统方法,该方法的精度有明显提高.

(2)实验结果表明,当对未见物体进行3D关键点估计和6D位姿估计时,StereoNet网络均优于其他网络,证明提出网络具有较高的准确度和泛化性.

(3)提出方法主要依靠局部特征匹配,当面对无纹理对象时,效果较差. 后续可以针对这一问题进行改进.

参考文献

YANN L, JUSTIN C, MATHIEU A, et al. Cosypose: consistent multi-view multi-object 6D pose estimation [C]// European Conference on Computer Vision. Glasgow: [s. n. ], 2020: 574–591.

[本文引用: 1]

PENG S D, LIU Y, HUANG Q X, et al. Pvnet: pixel-wise voting network for 6dof pose estimation [C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. Long Beach: IEEE, 2019: 4561-4570.

[本文引用: 1]

HE Y S, SUN W, HUANG H B, et al. Pvn3d: a deep point-wise 3d keypoints voting network for 6dof pose estimation [C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. Seattle: IEEE, 2020: 11632-11641.

[本文引用: 1]

HE Y S, HUANG H B, FAN H Q, et al. Ffb6d: a full flow bidirectional fusion network for 6d pose estimation [C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. Nashville: IEEE, 2021: 3003-3013.

[本文引用: 1]

LI Z G, WANG G, JI X Y. CDPN: coordinates-based disentangled pose network for real time rgb-based 6-DoF object pose estimation [C]// IEEE International Conference on Computer Vision. Seoul: IEEE, 2019: 7678-7687.

[本文引用: 1]

TREMBLAY J, TO T, SUNDARALINGAM B, et al. Deep object pose estimation for semantic robotic grasping of household objects [C]//2nd Conference on Robot Learning. Zurich: PMLR, 2018: 306-316.

[本文引用: 1]

GAO G, LAURI M, WANG Y L, et al. 6d object pose regression via supervised learning on point clouds [C]//IEEE International Conference on Robotics and Automation. Paris: IEEE, 2020: 3643-3649.

[本文引用: 1]

CHEN W, JIA X, CHANG H J, et al. g2l-net: global to local network for real-time 6d pose estimation with embedding vector features [C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. Seattle: IEEE, 2020: 4233-4242.

[本文引用: 1]

AHMADYAN A, ZHANG L K, ABLAVATSKI A, et al. Objectron: a large scale dataset of object-centric videos in the wild with pose annotations [C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. Nashville: IEEE, 2021: 7822-7831.

[本文引用: 1]

WANG H, SRIDHAR S, HUANG J W, et al. Normalized object coordinate space for category-level 6d object pose and size estimation [C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. Long Beach: IEEE, 2019: 2642-2651.

[本文引用: 3]

ZHANG R D, DI Y, MANHARDT F, et al. SSP-pose: symmetry-aware shape prior deformation for direct category-level object pose estimation [C]//IEEE/RSJ International Conference on Intelligent Robots and Systems. Kyoto: IEEE, 2022: 7452-7459.

[本文引用: 1]

HE Y S, WANG Y, FAN H Q, et al. Fs6d: few-shot 6d pose estimation of novel objects [C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. New Orleans: IEEE, 2022: 6814-6824.

[本文引用: 1]

WU J, WANG Y, XIONG R. Unseen object pose estimation via registration [C]// IEEE International Conference on Real-time Computing and Robotics. Guangzhou: IEEE, 2021: 974-979.

[本文引用: 1]

SUN J M, WANG Z H, ZHANG S Y, et al. Onepose: one-shot object pose estimation without cad models [C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. New Orleans: IEEE, 2022: 6825-6834.

[本文引用: 3]

CHEN K, JAMES S, SUI C Y, et al. Stereopose: category-level 6d transparent object pose estimation from stereo images via back-view nocs [C]//IEEE International Conference on Robotics and Automation. London: IEEE, 2023: 2855-2861.

[本文引用: 1]

YIN M H, YAO Z L, CAO Y, et al. Disentangled non-local neural networks [C]// European Conference on Computer Vision. Glasgow: Springer, 2020: 191-207.

[本文引用: 1]

WANG Y Q, YING X Y, WANG L G, et al. Symmetric parallax attention for stereo image super-resolution [C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. Nashville: IEEE, 2021: 766-775.

[本文引用: 1]

VELIčKOVIć P, CUCURULL G, CASANOVA A, et al. Graph attention networks [C]//Proceedings of the 16th Conference of the European Chapter of the Association for Computational Linguistics. Stroudsburg: ACL, 2021: 850-862.

[本文引用: 1]

SUWAJANAKORN S, SNAVELY N, TOMPSON J J, et al. Discovery of latent 3d keypoints via end-to-end geometric reasoning [C]//Proceedings of the 32nd International Conference on Neural Information Processing Systems. Red Hook: Curran Associates Inc, 2018: 2067-2074.

[本文引用: 1]

LIU X Y, JONSCHKOWSKI R, ANGELOVA A, et al. Keypose: multi-view 3d labeling and keypoint estimation for transparent objects [C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. Seattle: IEEE, 2020: 11602-11610.

[本文引用: 1]

SARLIN P E, CADENA C, SIEGWART R, et al. From coarse to fine: robust hierarchical localization at large scale [C] //Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. Long Beach: IEEE, 2019: 12716-12725.

[本文引用: 1]

LIU Y, WEN Y L, PENG S D, et al. Gen6d: generalizable model-free 6-dof object pose estimation from rgb images [C]//European Conference on Computer Vision. Cham: Springer, 2022: 298-315.

[本文引用: 1]

/