机器人 2023, Vol. 45 Issue (2): 187-196, 237  
0
引用本文
陈钧, 宋薇, 周洋. 一种多模块神经网络与遗传算法相结合的单目位姿估计方法[J]. 机器人, 2023, 45(2): 187-196, 237.  
CHEN Jun, SONG Wei, ZHOU Yang. A Monocular Pose Estimation Method Based on Multi-module Neural Network and Genetic Algorithm[J]. ROBOT, 2023, 45(2): 187-196, 237.  

一种多模块神经网络与遗传算法相结合的单目位姿估计方法
陈钧1 , 宋薇1 , 周洋2     
1. 上海大学机电工程与自动化学院, 上海 200444;
2. 中国科学院上海光学精密机械研究所高功率激光物理联合实验室, 上海 201800
摘要:针对机器人抓取场景中存在的工件位姿不确定、堆叠遮挡等问题,提出一种多模块神经网络与遗传算法相结合的单目位姿估计方法,实现由目标工件检测到平面定位、再到位姿全方位立体匹配的逐级优化过程。首先,利用神经网络识别工件并分割工件区域,结合预测的中心位置构建L形边界,从而得到工件投影的局部有效模型。然后提取工件区域内的边缘信息来生成基于倾角分层的倒角距离函数,结合局部有效模型的形状构建匹配度函数,以适应遮挡情况。采用大范围搜索和小范围优化相结合的策略,利用遗传算法实现6D位姿的快速收敛。基于ArUco码对工件进行数据集构建和实验测试,结果表明该方法能在0.5 s左右实现对工件的位姿估计,在420 mm的观察距离下,横向平移误差能控制在1 mm左右,旋转角度平均误差控制在2°以内。通过实验对比分析可知,本方法能有效应对复杂环境下工件位姿的准确估计,提升机器人工作效率。
关键词机器人抓取    单目相机    位姿估计    神经网络    遗传算法    遮挡    
中图分类号:TP242            文献标志码:A            文章编号:1002-0446(2023)-02-0187-10
A Monocular Pose Estimation Method Based on Multi-module Neural Network and Genetic Algorithm
CHEN Jun1 , SONG Wei1 , ZHOU Yang2     
1. School of Mechatronic Engineering and Automation, Shanghai University, Shanghai 200444, China;
2. Joint Laboratory of High Power Laser and Physics, Shanghai Institute of Optics and Fine Mechanics, Chinese Academy of Science, Shanghai 201800, China
Abstract: Aiming at the problems such as uncertain pose and stacking occlusion of industrial parts in robotic grasping scene, a monocular pose estimation method is proposed based on multi-module neural network and genetic algorithm, to realize a step-by-step optimization from the detection of industrial parts to their positioning in 2D plane, and to the all-round stereo matching. Firstly, the industrial parts are identified and their location area is segmented by neural network, and the L-shaped boundary is constructed by combining the predicted center position, so as to obtain the local effective model of industrial parts projection. Then, the edge information in the area of industrial parts is extracted to generate the chamfer distance function which is delimited by direction angles, and the matching function is constructed combined with the shape of the partially effective model to adapt to the occlusion. Lastly, the strategy of large-scale search and small-scale optimization is adopted, and the quick convergence of 6D pose is realized by genetic algorithm. Moreover, a dataset of the industrial parts with ArUco markers is constructed for experimental verification. Results show that the proposed method can estimate the pose of the industrial parts in about 0.5 s. In the observation distance of 420 mm, the lateral translation error can be controlled within 1 mm, the average rotation angle error can be controlled within 2°. Experimental comparison shows that the proposed method can effectively deal with the accurate estimation of industrial part pose in complex environment and improve the working efficiency of robot.
Keywords: robotic grasp    monocular camera    pose estimation    neural network    genetic algorithm    occlusion    

1 引言(Introduction)

利用视觉系统对工件进行检测定位以及抓取分拣,通常有2种方法:一种是基于图像的方法,通过图像特征直接跟踪目标,引导操作手调整到可以抓取工件的位姿[1];另一种是基于位置的方法,估计工件的6D位姿,再将其换算为操作手的目标位姿进行抓取控制[2]。前者多用于抓取不确定形状的物体,后者则通常需要预知工件的模型来进行位姿匹配。由于后者输出工件的6D位姿,因此更适用于装配、拼接等复杂的操作,具有更广阔的扩展空间和应用前景。

目前位姿估计的方法可分为传统方法和基于深度学习的方法两大类。传统的位姿估计方法大多基于特征或模板匹配。例如:SIFT(scale-invariant feature transform)[3]、SURF(speeded up robust feature)[4]等方法利用图像上特征点与3维模型对应点的投影关系,根据PnP(perspective-n-point)[5]算法求解出位姿;Ulrich等[6]通过构建多视角下的物体边缘模板来计算位姿,并采用金字塔分层算法对图像进行逐层匹配处理;Liu等[7]提出了一种基于倒角距离的快速匹配方法,将图像边缘按倾角方向分层后,利用整体特征模型构建相关函数进行优化求解。除上述基于RGB图像的方法外,利用深度图像构建3维特征的方法也被应用于位姿估计研究中。文[8-9] 提出了基于快速点特征直方图(fast point feature histogram)和视点特征直方图(viewpoint feature histogram)的方法用于位姿计算;文[10] 提出了一种特征描述子PPF(point pair feature),利用有向点对来描述3维特征并实现位姿估计。与RGB图像相比,深度图像虽然在数据结构上更有利于进行3维测量,但其传感器成本较高,并且需要利用比较耗时的ICP(iterative closest point)算法进行位姿优化以提高精度。

近年来,基于深度学习的位姿研究发展迅速,主要可分为直接回归法和两阶段法。直接回归法通过神经网络直接获得位姿结果,例如Xiang等[11]提出PoseCNN网络对目标进行语义分割,利用霍夫投票算法计算平移参数,再通过网络输出的四元数计算出旋转角度。两阶段法先通过神经网络输出物体关键点在RGB图像上的位置,再通过PnP算法计算求得位姿。Rad等[12]将目标3D边界框的8个角点作为关键点,求其在图像上的投影位置;Tekin等[13]增加了目标中心作为关键点,来提高结果的稳定性;Peng等[14]提出PVNet网络,通过密集像素投票来预测物体关键点位置,相比于前面方法提升了在遮挡情况下关键点回归的准确性;Li等[15]提出的CDPN(coordinates-based disentangled pose network)网络则通过构建密集的2D-3D对应关系,提升了旋转估计的鲁棒性。

基于模型匹配的方法在遮挡情况下由于丢失部分特征,存在匹配度值降低而难以匹配的问题。相比之下基于深度学习的方法鲁棒性更好,在遮挡情况下也能识别出目标并输出位姿,但通常误差较大,需要进一步优化位姿来提高精度。为此,本文提出一种多模块神经网络与遗传算法相结合的单目位姿估计方法,该方法通过结合神经网络构建的L形边界,来减小遮挡产生的不相关性干扰。设计了小范围优化预测参数和大范围搜索未知参数相结合的匹配策略,降低了匹配的复杂度,提升检测精度、速度以及抗遮挡能力。

2 先前工作(Previous work) 2.1 基于分层倒角距离的模板匹配算法

文[16] 提出了一种基于分层倒角距离的模板匹配算法。传统边缘距离利用像素灰度值表示像素点到边缘的距离,分层倒角距离在这基础上将边缘按倾角方向分层后生成各个方向的边缘距离场,如图 1所示。相比于传统边缘距离,分层倒角距离增加倾角方向特征,可提升匹配的速度和鲁棒性。根据目标工件在不同视角下可见的边缘轮廓的不同,利用OpenGL图形软件将不同视角下工件模型的可见轮廓采样为点集,保存为离线模板,以供在后续的搜索匹配中直接调用,实现实时的在线匹配。

图 1 基于倾角分层倒角距离的模板匹配算法 Fig.1 Template matching algorithm based on chamfer distance which is delimited by direction angles

模型在不同位姿下与边缘图像的匹配度函数定义[16]

$ \begin{align} F({\phi})=\frac{1}{255N}\sum _{i=1}^N {D_{di}(P_i(\phi))} \end{align} $ (1)

其中,$ \phi $表示模型的位姿,$ P_{i} (\phi) $$ i=1, \cdots, N $)表示在位姿参数$ \phi $下工件的$ N $个模板点在图像上的投影,各个投影点根据其倾角方向选择对应的分层$ d_i $,获得其在倒角距离场$ D_{di} $上相同位置的灰度值,计算所有投影点的平均灰度值作为该位姿的匹配度。通过优化算法求解该式最大值即可得到位姿结果。

但这种方法在实际应用中存在一些问题,比如需要预先确定场景中包含多少种工件、在复杂背景下会受到其他边缘的干扰以及遮挡条件下容易匹配错误等问题。本文基于已有研究基础,通过结合多模块神经网络进行了改进,实现目标工件由分类到平面定位、再到位姿全方位立体匹配的逐级优化过程。利用神经网络预测的工件中心和分割掩模构建L形边界,来划分工件投影的局部有效模型。改进后的匹配度函数由局部模型的形状匹配和边缘匹配构成,从而改善匹配度值因发生遮挡情况而降低、解空间呈多峰而无明显最优解的问题,更加适应发生遮挡的情况。

3 方法概述(Methods overview)

本文方法流程概述如图 2所示,主要分成多模块神经网络检测和优化搜索阶段。多模块神经网络检测阶段包括2个子模块:YOLOv4-tiny网络,用于输出工件类别标签以及工件的边界框数据;PVNet网络模型,实现工件分割和预测工件中心位置。优化搜索阶段根据上述结果构建可用于划分可见区域的L形边界,同时提取分割区域内的工件边缘,生成按倾角分层的倒角距离。改进后的匹配度函数由形状匹配和边缘匹配组成,利用预先基于CAD模型构建的离线模板点集,通过遗传算法优化收敛得到工件位姿。

图 2 方法概述 Fig.2 Method overview
3.1 神经网络检测部分

本文采用YOLOv4-tiny轻量级目标检测网络[17]对工件进行检测。该网络具有检测速度快的优点,适用于对有限类物体进行分类识别。通过该网络实现工件类型的识别以及在图像平面的粗略定位,用边界框数据进行表示。

为了实现更为精确的工件中心定位,参考了目前的一些相关研究,例如YOLO6D网络直接预测物体中心的位置[13]、PoseCNN网络中利用霍夫投票计算物体中心位置[11]等。考虑到遮挡情况下算法的鲁棒性,采用基于逐像素投票法的PVNet网络。PVNet网络采用ResNet-18作为主干网络,需对每个类型的工件单独训练模型,通过YOLOv4-tiny网络划分不同工件的边界框区域,并根据工件类型选择对应的PVNet网络模型。统一输入图像的大小为256$ \times $256像素,处理方法为:区域图像较长边缩放到256像素,较短边用黑色填充补全。

图 3所示,PVNet网络的输出为目标工件的掩模和指向工件中心位置的矢量场图。其中图 3(c)所示的矢量场图,表示工件掩模内每个像素点指向工件中心的单位方向向量,随机取2个像素上向量的交点作为工件中心假设位置,按照此方法选取多对像素可产生一系列假设位置。矢量场中每个像素位置$ {\mathit{\boldsymbol{p}}}_{i} $与假设位置$ {\mathit{\boldsymbol{h}}}_{i} $之间在图像上的单位方向向量$ {\mathit{\boldsymbol{v}}}_{pi} $

$ \begin{align} {\mathit{\boldsymbol{v}}}_{pi} =\frac{{\mathit{\boldsymbol{p}}_{i} -{\mathit{\boldsymbol{h}}}_{i}}}{\| {\mathit{\boldsymbol{p}}_{i} -{\mathit{\boldsymbol{h}}}_{i}} \|_{2}} \end{align} $ (2)
图 3 PVNet网络输出结果 Fig.3 Output of PVNet network

其中$ \| {{\mathit{\boldsymbol{q}}}} \|_{2} $表示向量$ {\mathit{\boldsymbol{q}}} $$ 2 $范数。

$ {\mathit{\boldsymbol{p}}}_{i} $对应的回归矢量为$ {{\mathit{\boldsymbol{V}}}}({\mathit{\boldsymbol{p}}}_{i}) $,与图像上的单位方向向量$ {\mathit{\boldsymbol{v}}}_{pi} $的方向大致相同,则代表$ {\mathit{\boldsymbol{p}}}_{i} $满足对假设位置$ {\mathit{\boldsymbol{h}}}_{i} $的投票要求。计算矢量场中所有符合假设位置$ {\mathit{\boldsymbol{h}}}_{i} $的像素点的个数,作为假设位置$ {{\mathit{\boldsymbol{h}}}}_i $的投票分数,并在所有假设位置中选择得分最高的位置作为最终输出的模型中心投影位置$ ({x_{C_{O}}, y_{C_{O}}}) $。该方法通过大量的像素点投票计算模型中心的位置,具有较好的鲁棒性,并且在面对遮挡时仍能通过物体可见部分的像素点进行投票计算。

3.2 优化搜索部分 3.2.1 L形边界设置

L形边界根据预测的工件中心与分割掩模的包围框中心之间的相对位置确定。设置L形边界,用于分割工件模型投影的可见部分,并通过后续的形状匹配对位姿进行约束。

当工件一端出现遮挡时,如图 4(a)所示,红点为工件中心$ C_{O} $位置,工件掩模的包围框中心$ C_{Bi} $在预测的工件中心位置的左上角,则认为工件的右下部分产生了遮挡,仅保留左上部分可见区域。为了便于区分工件可见部分和遮挡部分,设置如图中绿线所示的L形边界。L形边界根据各块掩模包围框中心$ C_{Bi} $相对于工件中心$ C_{O} $的位置分为4种情况,如图 4(b)所示,当该包围框中心$ C_{Bi} $分别落在工件中心坐标系的4个象限时,选择靠近工件中心$ C_{O} $的包围框角点所在的两条边的延长线作为L形边界,则该块可见区域$ A_{i} $的划分如下:

$ \begin{align} A_{i} =\begin{cases} \{x\geqslant x_{P_{Bi1}}, y\geqslant y_{P_{Bi1}}\}, & {x_{C_{Bi}} >x_{C_{O}}, \; y_{C_{Bi}} >y_{C_{O}}} \\ \{x\leqslant x_{P_{Bi2}}, y\geqslant y_{P_{Bi2}}\}, & {x_{C_{Bi}} <x_{C_{O}}, \; y_{C_{Bi}} >y_{C_{O}}} \\ \{x\leqslant x_{P_{Bi3}}, y\leqslant y_{P_{Bi3}}\}, & {x_{C_{Bi}} <x_{C_{O}}, \; y_{C_{Bi}} <y_{C_{O}}} \\ \{x\geqslant x_{P_{Bi4}}, y\leqslant y_{P_{Bi4}}\}, & {x_{C_{Bi}} >x_{C_{O}}, \; y_{C_{Bi}} <y_{C_{O}}} \end{cases} \end{align} $ (3)
图 4 L形边界划定 Fig.4 Demarcation of the L-shaped boundary

其中$ P_{Bi1} $$ P_{Bi2} $$ P_{Bi3} $$ P_{Bi4} $为掩模包围框$ B_i $从左下角开始逆时针计数的4个角点。

复杂环境下工件通常存在图 5所示的3种遮挡情况:轻微遮挡或无遮挡、一端被遮挡、中间被遮挡。当工件处于轻微遮挡或无遮挡情况时,分割出的掩模包围框中心的位置在工件中心的附近,此时L形边界划定可能是上述4种情况的任意一种。当工件一端被遮挡时,如图 5所示工件右侧被遮挡,包围框中心位于工件中心位置左上方,对应图 4(b)中的情况2。当工件中间部分被遮挡时,分割出的掩模可分为2个区域,两侧区域包围框中心分别位于工件中心位置右上方和左下方,对应图 4(b)中的情况1和3,则用2个L形边界划定2块可见区域。当分割结果存在多个区域时,为了方便计算和减小干扰,选择面积最大的3块区域确定L形边界。

图 5 复杂环境中3种主要情况 Fig.5 Three main situations in complex environments
3.2.2 匹配度函数

式(1) 中的匹配度函数将对应视角下的边缘模板点都进行了计算评估,这在工件无遮挡或轻微遮挡时能很好地衡量匹配的效果。但当工件因遮挡导致其较大区域的轮廓不可见时,这意味着工件模板中对应部分的点集无法正常匹配。若仍将该部分点集纳入匹配度函数计算,那么显然会影响位姿估计的准确性。

为了适应遮挡的情况,本文对文[16] 的匹配度函数进行了改进。如图 6所示,通过加入L形边界信息将投影后的模板点集$ P $划分为红色的可见点集$ P_{\rm s} $和蓝色的不可见点集$ P_{\text{us}} $两部分:

$ \begin{align} P_{\rm s} & =\{{P_{i} |P_{i} \in A}\} \end{align} $ (4)
$ \begin{align} P_{\text{us}} & =\{{P_{i} |P_{i} \notin A}\} \end{align} $ (5)
$ \begin{align} P & =P_{\text{us}} \cup P_{\rm s} \end{align} $ (6)
图 6 模板点集投影分布 Fig.6 Projection distribution of the template pointset

其中$ A $表示所有可见区域。

改进后的匹配函数由形状匹配$ F_{\rm s} $和边缘匹配$ F_{\rm d} $两部分组成,为了应对遮挡情况,利用L形边界划分的可见点集作为局部有效模型进行匹配。其中,形状匹配评估的是可见点集包围框与区域掩模包围框的相似程度,边缘匹配评估的是可见点集$ P_{\rm s} $与工件边缘的拟合程度。

形状匹配是用来衡量分割掩模和模型投影的相似程度,为了简化计算,本文用可见点集包围框与区域掩模包围框之间宽高比例的平均相似度进行评估。如图 6(a)所示,每块区域内可见点集的包围框宽、高为$ w_{i} $$ h_{i} $,对应区域掩模包围框的宽、高为$ W_{i} $$ H_{i} $。形状匹配公式如下:

$ \begin{align} F_{\rm s} (\phi)=\sum _{i=1}^R \dfrac{S_i}{2S} \Big(k_{w_{i}} (\phi)+k_{h_{i}} (\phi)\Big) \end{align} $ (7)

其中$ {\phi} $表示待匹配模型的位姿参数,$ R $表示可见区域个数($ R\leqslant 3 $),$ S_{i} $$ S $分别是各个可见区域的掩模面积和该工件掩模面积之和,$ k_{w_i} $$ k_{h_i} $为对应区域宽高形状比例系数,其计算公式如下:

$ \begin{align} k_{w_{i}} = \begin{cases} \dfrac{W_i}{w_i}, & w_i>W_i \\[5pt] \dfrac{w_i}{W_i}, & w_i\leqslant W_i \end{cases}, \; \; \; \; k_{h_{i}} = \begin{cases} \dfrac{H_i}{h_i}, & h_i>H_i \\[5pt] \dfrac{h_i}{H_i}, & h_i\leqslant H_i \end{cases} \end{align} $ (8)

通过$ k_{w_{i}} $$ k_{h_{i}} $的大小来衡量相似程度,根据$ S_{i} $$ S $的比值来调节每个区域的权重。

边缘匹配通过模型投影点在对应分层倒角距离场上的平均灰度值来衡量匹配程度。为了排除其他边缘干扰,将分割掩模膨胀后提取对应区域内的边缘信息进行处理。为了应对遮挡,使用作为局部有效模型的可见模板点集$ P_{\rm s} $来计算,计算方法与式(1) 相似,公式如下:

$ \begin{align} F_{\rm d} (\phi)=\frac{1}{255N_{\rm s}} \sum _{i=1}^{N_{\rm s}} {D_{di}(P_i(\phi))} , \; \; \; P_i\in P_{\rm s} \end{align} $ (9)

$ N_{\rm s} $表示可见点集$ P_{\rm s} $中点的数量,并除以最大灰度值起到归一化处理的作用。

结合形状匹配和边缘匹配的评价函数$ F(\phi) $的定义如下:

$ \begin{align} F(\phi)=\lambda_{1} F_{\rm s} (\phi)+\lambda_{2} F_{\rm d} (\phi) \end{align} $ (10)

其中$ \lambda_{1} $$ \lambda_{2} $为比例参数,$ k $则是整体形状比例系数。设置$ \lambda_{1} $值为静态值0.1,$ \lambda_{2} $为动态比例系数,由所有可见区域的最小区域宽高形状比例系数$ k_{\min} $和阈值$ t $确定:

$ \begin{align} \lambda_{2} & = \begin{cases} 0.9(k_{\min} /t), & k_{\min} \leqslant t\\ 0.9, & k_{\min} >t \end{cases} \end{align} $ (11)
$ \begin{align} k_{\min}& =\min({k_{w_{i}}, k_{h_{i}}}) , \quad i=1, 2, \cdots, R \end{align} $ (12)

本文中阈值$ t $取0.9。

这里,将比例系数$ \lambda_{2} $进行动态调整是为了防止匹配过程中,由于边缘匹配数值较高而降低了形状匹配的作用。本文优先考虑形状匹配,边缘匹配的权重$ \lambda_{2} $会随形状匹配程度的提高而增大,当形状匹配基本准确(最小区域宽高形状比例系数$ k_{\min} $接近阈值$ t $)时,实现工件的粗匹配,这时边缘匹配的权重调为最大值0.9,开始进行基于边缘的精匹配。

3.2.3 遗传算法搜索匹配

采用加入爬山法局部优化改进后的遗传算法进行搜索匹配。遗传算法需要求解表示物体6D位姿的6个参数,包含表示旋转的3个参数$ ({\alpha, \beta, \gamma}) $和表示平移的3个参数$ ({p_{x}, p_{y}, z}) $,将这些参数编码为基因进行初始化。平移参数中的$ p_{x} $$ p_{y} $表示的是工件模型中心在图像上的位置,利用神经网络预测的工件中心位置$ ({x_{C_{O}}, y_{C_{O}}}) $作为先验信息初始化平移参数$ p_{x} $$ p_{y} $

$ \begin{align} \begin{cases} p_{y} =y_{C_{O}} \pm \text{rand}(\delta) \\ p_{x} =x_{C_{O}} \pm \text{rand}(\delta) \end{cases} \end{align} $ (13)

其中$ \delta $为最大随机像素偏移量,由于神经网络回归结果存在一定误差,加入随机像素偏移来扩大工件中心优化范围。平移参数中的$ z $值为工件中心在相机坐标系下3维坐标$ ({X, Y, Z}) $中的$ Z $值,换算公式如下:

$ \begin{align} \begin{cases} X=(p_{x} -c_{x})z/f_{x} \\ Y=(p_{y} -c_{y})z/f_{y} \\ Z=z \end{cases} \end{align} $ (14)

其中$ ({c_{x}, c_{y}}) $为相机原点在图像上的坐标,$ f_{x} $$ f_{y} $为相机内参,均由相机标定得到。

基因初始化后的参数$ p_{x} $$ p_{y} $比较接近真实值,而其他4个求解参数则是随机初始化,因此采取小范围优化和大范围搜索结合的策略,即参数$ p_{x} $$ p_{y} $只参与小范围的局部优化,而其他参数在参与遗传算法的交叉变异产生较大范围变化后再进行小范围的局部优化,具体流程如图 7所示。

图 7 改进遗传算法搜索流程 Fig.7 Search process of the improved genetic algorithm
4 实验(Experiment) 4.1 数据集制作与训练

目前常用于6D位姿估计的数据集有LINE-MOD[18]和YCB-VIDEO[11]等,这些数据集的检测对象大都为形状纹理复杂的生活用品,与几何形状突出、弱纹理的工业零件有一定区别。本文利用单目相机对3种不同形状的工件制作了可用于训练神经网络的数据集,并用于后续实验测试。数据集中3种工件的模型如图 8所示。

图 8 3种工件的模型 Fig.8 Models of the three industrial parts

分别对每个工件单独构建数据集,用CMOS彩色工业相机采集大约600张无遮挡图像以及100张遮挡图像,每张图像的分辨率为1024$ \times $768像素。构建的数据集包括常规数据集、渲染遮挡数据集和遮挡数据集,常规数据集由上述无遮挡图像组成,渲染遮挡数据集是在常规数据集上产生随机图案进行遮挡,遮挡数据集则采用被实物遮挡的图像。

为了便于获得数据集中的工件位姿,可借助ArUco码[19]实现相机重定位[20]。制作A4纸大小的标定板,如图 9(a)所示,包含10个45mm$ \times $45mm大小的ArUco码,将标定板中心作为标定板坐标系$ o_{\rm B} $的原点,板上每个码的相对位置已知。通过检测图像中的ArUco码,将角点的图像位置与其在坐标系$ o_{\rm B} $中的3维坐标建立对应关系,通过PnP算法计算出相机坐标系$ o_{\rm C} $到标定板坐标系$ o_{\rm B} $的变换矩阵$ {}^{\rm C}{\mathit{\boldsymbol{T}}}_{\rm B} $

图 9 标定板 Fig.9 Calibration board

若将工件固定在标定板上,则标定板坐标系$ o_{\rm B} $到工件坐标系$ o_{\rm O} $的变换矩阵$ {}^{\rm B}{\mathit{\boldsymbol{T}}}_{\rm O} $为定常矩阵。选取一帧图像作为模板图像,手动选择3维模型的部分角点和模板图像上对应的角点位置,如图 10所示建立3D-2D对应关系,通过PnP算法计算出当前工件在相机坐标系下的位姿$ {}^{\rm C}{\mathit{\boldsymbol{T}}}_{\rm O} $。同时通过检测ArUco码计算当前相机坐标系$ o_{\rm C} $到标定板坐标系$ o_{\rm B} $的变换矩阵$ {}^{\rm C}{\mathit{\boldsymbol{T}}}_{\rm B} $,通过式(15) 即可得到$ {}^{\rm B}{\mathit{\boldsymbol{T}}}_{\rm O} $

$ \begin{align} {}^{\rm B}{\mathit{\boldsymbol{T}}}_{\rm O} ={}^{\rm C}{\mathit{\boldsymbol{T}}}_{\rm B}^{-1}\; {}^{\rm C}{\mathit{\boldsymbol{T}}}_{\rm O} \end{align} $ (15)
图 10 模型的3维角点与图像上的2维角点对应关系 Fig.10 Corresponding relationship between the 3D corners of the model and the 2D corners of the image

接下来改变相机的拍摄角度,采集不同位姿下工件的图像来构建数据集。数据集中每张图像$ i $可通过检测ArUco码得到$ {}^{\rm C}{\mathit{\boldsymbol{T}}}_{\rm B}^{(i)} $,再利用前面已经标定好的$ {}^{\rm B}{\mathit{\boldsymbol{T}}}_{\rm O} $,可算出:

$ \begin{align} {}^{\rm C}{\mathit{\boldsymbol{T}}}_{\rm O}^{(i)}={}^{\rm C}{\mathit{\boldsymbol{T}}}_{\rm B}^{(i)}\; {}^{\rm B}{\mathit{\boldsymbol{T}}}_{\rm O} \end{align} $ (16)

即得到每张图像$ i $中目标工件的6D位姿$ {}^{\rm C}{\mathit{\boldsymbol{T}}}_{\rm O}^{(i)} $

图 11(a)所示将工件的3维模型按照每张图像计算的位姿$ {}^{\rm C}{\mathit{\boldsymbol{T}}}_{\rm O} ^{(i)} $投影至图像中,即可得到图 11(b)中的工件中心位置以及掩模区域,将这些作为PVNet网络训练的标注数据。同时计算掩模区域的包围框,将工件类别标签以及归一化后的包围框数据作为YOLOv4-tiny网络训练的标注数据。为了提升网络的鲁棒性和抗遮挡能力,除增加渲染遮挡数据集进行训练外,还对训练图像进行了旋转裁剪等数据的增强操作。

图 11 标注数据 Fig.11 Annotation data

在训练YOLOv4-tiny网络模型时,采用预训练好的模型,设置网络层的输入为416$ \times $416,设置初始学习率为0.0026,在迭代2000次和3000次时将学习率降低10倍;在迭代4000次的时候终止训练。训练PVNet网络模型时,对每个类型的工件单独训练,设置初始学习率为0.001,每迭代20次时,学习率乘以0.5,迭代到第400次时终止训练。

4.2 实验评估 4.2.1 神经网络测试

对训练好的网络模型进行测试,输出示例如图 12所示。先通过YOLOv4-tiny网络对整张图片进行检测,得到图中3个工件的边界框。以工件1边界框为例,提取扩大后的边界框内图像,经缩放和填充得到256$ \times $256(像素)的图像,如图 12(b)所示。将处理后的图像输入到对应工件的PVNet网络模型中,得到工件的分割掩模和工件中心的预测位置,如图 12(c)所示。最后将PVNet网络模型的输出结果恢复至原图像的位置。本实验在配置为AMD R7-4800H和RTX 2060的笔记本上进行测试,测试的原图片分辨率为1024$ \times $768,YOLOv4-tiny网络检测的耗时在11ms左右,PVNet网络分割并投票的耗时在120ms左右。

图 12 神经网络输出结果 Fig.12 Output results of the neural network

为了验证PVNet网络预测工件中心位置的准确度和抗遮挡能力,对工件1数据集进行了测试验证。将数据集中工件标定的结果作为真值,将回归结果与标定结果之间的欧氏距离作为误差(单位为像素),用于衡量网络对工件中心位置的预测精度。实验结果如表 1所示,在无遮挡情况下PVNet网络对工件中心的估计比较准确;在渲染遮挡数据集中回归误差略有增大;在遮挡数据集上,由于是真实遮挡,误差相对较大,但大多数图片都能将误差控制在10个像素以内。综上可见PVNet网络有一定抗遮挡能力,但遮挡程度影响回归误差,需进一步优化回归结果。

表 1 工件中心位置的平均回归误差 Tab. 1 Mean regression error of center position of industrial parts

针对该问题,本文在初始化平移参数公式(13) 中添加最大随机像素偏移量$ \delta $来扩大初始化范围,根据上述实验可以将$ \delta $设定为10个像素,再通过优化策略中的小范围局部优化来减小误差。图 13为遮挡数据集中的一张测试图片,图中蓝点位置为神经网络预测的工件中心位置,与标定结果绿点存在一定的偏差,红点为后续优化的结果,可见通过匹配策略的小范围局部优化可以有效地减小平移误差,下文的实验中将进一步评估本文方法的测量误差。

图 13 工件中心位置优化 Fig.13 Optimization of center position of the industrial part
4.2.2 位姿估计实验

为了评估本文方法对工件位姿估计的准确性,首先采用常规数据集对该方法进行了测试,评估标准采用2D投影标准和ADD(average distance)标准[11]。2D投影标准是计算在预测位姿与真实位姿下3维模型点集在图像上投影位置的2D平均偏差距离,如果该平均偏差距离小于5个像素,则认为位姿正确。ADD标准则是计算在预测位姿与真实位姿下3维模型点集的3D平均偏差距离,如果该平均偏差距离小于模型最大长度的10%,则认为位姿正确。

测试数据如表 2所示,除了提供在上述评估标准下的正确率外,还提供了工件位姿在正确检测下的精度以及花费的平均时间,并与文[16] 中的原方法和文[14] 中的PVNet-9方法(利用PVNet预测工件表面的8个关键点和其中心位置,再利用EPnP算法求解位姿)进行了对比。与原方法相比,本文改进后的方法在正确率、精度和速度上都有所提升,其中检测速度提升20%,旋转和平移的精度提升约10%。这是由于利用神经网络预测工件中心位置,将复杂的6维优化转化为了近似4维优化问题,提高了优化的准确度和速度;加入的形状匹配部分,也使得正确位姿的匹配度峰值要更拔尖,易于优化算法搜索。与PVNet-9相比,可以看出本文方法在检测精度上有一定优势,这是由于工件表面的8个关键点的回归误差要大于中心位置的回归误差,本文方法仅使用预测精度较高的中心位置并基于边缘进行精匹配,从而得到更高精度的位姿结果;但在检测时间上与主要依靠网络输出的方法相比,略显耗时。

表 2 常规数据集测试数据对比 Tab. 2 Comparison of test data from normal dataset

图 14中提供了常规数据集中3张图片的测试结果,在$ \alpha $$ \beta $$ \gamma $旋转方向上角度误差小于2$ ^{\circ} $,在$ x $$ y $轴方向上平移误差小于1mm,$ z $轴方向上平移误差小于3mm。由于本文采用单目相机,成像模型为小孔成像,在深度方向上的敏感度小于横向平移,因此$ z $轴方向上误差略大。

图 14 常规数据集部分测试图片 Fig.14 Part of the test images in the normal dataset
4.2.3 抗遮挡实验

传统的模型匹配方法在目标无遮挡的条件下有效性较高,但是当目标存在遮挡时,很容易产生匹配错误的问题。例如LINE-MOD方法[18]在遮挡分析时,真实位姿的匹配度分数与遮挡率呈线性关系。为了验证本文改进后的匹配度函数对遮挡的友好性,利用不同遮挡率条件下的工件1图像进行了测试,如图 15(a)所示。与文[16] 的原方法对比结果如图 15(b)所示,在正确位姿下原方法的匹配度得分随遮挡率百分比的增大而线性降低,而本文方法在一定遮挡范围内都能保持较高得分,实验结果表明本文方法使用的匹配度函数在一定条件下可以应对遮挡问题。

图 15 不同遮挡率图像的匹配度 Fig.15 Matching degree of images with different occlusion rates

图 15(a)所示遮挡率为50% 的情况下对工件1进行分析,本文方法利用神经网络预测了工件中心的2维位置,固定该参数不变,绘制匹配度得分随$ \alpha $$ \beta $$ z $$ \gamma $四个位姿参数变化的分布,如图 16所示,红点处为正确位姿的匹配度得分。如图 16(a)与(b)(c)(d) 的对比,当目标存在遮挡时,原方法的解空间的峰值降低,峰顶趋于平坦,这影响了算法的收敛;而本文改进后的匹配度函数在遮挡情况下,峰值依然明显突出,山峰陡立,这有利于遗传算法进行优化求解。

图 16 匹配度分布对比 Fig.16 Comparison of matching degree distribution

为了进一步验证本文方法的抗遮挡性能,利用遮挡数据集进行了对比实验,结果如表 3所示;遮挡数据集中部分测试结果如图 17所示。

表 3 遮挡数据集测试数据对比 Tab. 3 Comparison of test data from the occlusion dataset
图 17 遮挡数据集部分测试图片 Fig.17 Part of the test images in the occlusion dataset

与原方法的数据对比可见,本文方法的抗遮挡性能有明显提升。与文[14] 中PVNet-9相同的是,两者的抗遮挡性能均受到工件形状的影响。本文方法对于工件1这类狭长形工件有较明显的优势。这是由于狭长形工件容易产生一端遮挡或中间遮挡的情况,利用L形边界能更有效地划分出长宽比例明显的可见区域,通过形状匹配可过滤掉大量错误的匹配结果,从而更利于后续基于边缘的精匹配。而像工件3这种小块T形工件,L形边界在其被遮挡时发挥的作用有限,但神经网络则可利用显著的形状特征得到更好的结果。在复杂混乱的场景下对本文方法进行了测试,测试结果如图 18所示。

图 18 复杂混乱的场景下测试结果 Fig.18 Test results in complex and chaotic scenarios
5 结论(Conclusion)

针对目前单目位姿估计中存在的模型匹配方法抗干扰能力不足和深度学习方法精度不高的问题,提出一种多模块神经网络与遗传算法相结合的单目位姿估计方法,在保证精度的同时提升抗干扰能力。该方法分为网络检测和优化搜索2个阶段。网络检测通过神经网络预测工件中心的大致位置,实验证明神经网络在工件中心定位上有一定的抗遮挡能力。优化搜索阶段通过设置L形边界条件构建局部有效模型,设计了结合边缘和形状匹配的匹配度函数,在一定程度上提升了匹配的准确性和抗遮挡能力。在自制的数据集上进行了测试,实验结果表明该方法能实现对工件的准确位姿估计,并且有一定抗遮挡能力。

参考文献(References)
[1]
Lenz I, Lee H, Saxena A. Deep learning for detecting robotic grasps[J]. International Journal of Robotics Research, 2013, 34(4-5): 705-724.
[2]
Zhu M L, Derpanis K G, Yang Y F, et al. Single image 3D object detection and pose estimation for grasping[C]//IEEE International Conference on Robotics and Automation. Piscataway, USA: IEEE, 2014: 3936-3943.
[3]
Lowe D G. Object recognition from local scale-invariant features[C]//7th IEEE International Conference on Computer Vision. Piscataway, USA: IEEE, 1999: 1150-1157.
[4]
Bay H, Tuytelaars T, van Gool L. SURF: Speeded up robust features[M]//Lecture Notes in Computer Science, Vol. 3951. Berlin, Germany: Springer, 2006: 404-417.
[5]
Lepetit V, Moreno-Noguer F, Fua P. EPnP: An accurate O(n) solution to the PnP problem[J]. International Journal of Computer Vision, 2009, 81: 155-166. DOI:10.1007/s11263-008-0152-6
[6]
Ulrich M, Wiedemann C, Steger C. Combining scale-space and similarity-based aspect graphs for fast 3D object recognition[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2012, 34(10): 1902-1914. DOI:10.1109/TPAMI.2011.266
[7]
Liu M Y, Tuzel O, Veeraraghavan A, et al. Fast object localization and pose estimation in heavy clutter for robotic bin picking[J]. International Journal of Robotics Research, 2012, 31(8): 951-973. DOI:10.1177/0278364911436018
[8]
Rusu R B, Blodow N, Beetz M. Fast point feature histograms (FPFH) for 3D registration[C]//IEEE International Conference on Robotics and Automation. Piscataway, USA: IEEE, 2009: 3212-3217.
[9]
Rusu R B, Bradski G R, Thibaux R, et al. Fast 3D recognition and pose using the viewpoint feature histogram[C]//IEEE/RSJ International Conference on Intelligent Robots and Systems. Piscataway, USA: IEEE, 2010: 2155-2162.
[10]
Drost B, Ulrich M, Navab N, et al. Model globally, match locally: Efficient and robust 3D object recognition[C]//IEEE Computer Society Conference on Computer Vision and Pattern Recognition. Piscataway, USA: IEEE, 2010: 998-1005.
[11]
Xiang Y, Schmidt T, Narayanan V, et al. PoseCNN: A convolutional neural network for 6D object pose estimation in cluttered scenes[DB/OL]. (2017-11-01)[2021-09-01]. https://rse-lab.cs.washington.edu/projects/posecnn/.
[12]
Rad M, Lepetit V. BB8: A scalable, accurate, robust to partial occlusion method for predicting the 3D poses of challenging objects without using depth[C]//IEEE International Conference on Computer Vision. Piscataway, USA: IEEE, 2017: 3848-3856.
[13]
Tekin B, Sinha S N, Fua P. Real-time seamless single shot 6D object pose prediction[C]//IEEE/CVF Conference on Computer Vision and Pattern Recognition. Piscataway, USA: IEEE, 2018: 292-301.
[14]
Peng S D, Liu Y, Huang Q X, et al. PVNet: Pixel-wise voting network for 6DoF pose estimation[C]//IEEE/CVF Conference on Computer Vision and Pattern Recognition. Piscataway, USA: IEEE, 2019: 4556-4565.
[15]
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/CVF International Conference on Computer Vision. Piscataway, USA: IEEE, 2019: 7677-7686.
[16]
宋薇, 仇楠楠, 沈林勇, 等. 面向工业零件的机器人单目立体匹配与抓取[J]. 机器人, 2018, 40(6): 950-957.
Song W, Qiu N N, Shen L Y, et al. The monocular stereo matching and grasping of robot for industrial parts[J]. Robot, 2018, 40(6): 950-957.
[17]
Bochkovskiy A, Wang C Y, Liao H Y M. YOLOv4: Optimal speed and accuracy of object detection[DB/OL]. (2020-04-23)[2021-09-01]. https://arxiv.org/abs/2004.10934.
[18]
Hinterstoisser S, Holzer S, Cagniart C, et al. Multimodal templates for real-time detection of texture-less objects in heavily cluttered scenes[C]//International Conference on Computer Vision. Piscataway, USA: IEEE, 2011: 858-865.
[19]
Garrido-Jurado S, Muñoz-Salinas R, Madrid-Cuevas F J, et al. Automatic generation and detection of highly reliable fiducial markers under occlusion[J]. Pattern Recognition, 2014, 47(6): 2280-2292. DOI:10.1016/j.patcog.2014.01.005
[20]
陈宗海, 裴浩渊, 王纪凯, 等. 基于单目相机的视觉重定位方法综述[J]. 机器人, 2021, 43(3): 373-384.
Chen Z H, Pei H Y, Wang J K, et al. Survey of monocular camera-based visual relocalization[J]. Robot, 2021, 43(3): 373-384.