针对提高快递包裹的分拣效率和识别准确率,提出了一种基于深度神经网络复杂场景下的机器人拣选方法.首先,提出一种改进的目标检测算法,通过将多层浅层特征图与最终的特征图进行融合,提取更加细节的特征,以提升识别的速度与精度;其次,提出了一种基于关键点的级联卷积最优拣选位置检测网络模型,对包裹最优拣选位置进行实时预测估计;最后,结合目标包裹最优拣选框与场景的深度信息和基于三维信息的目标姿态估计算法实现机器人拣选,并通过实验验证了该方法的有效性.
A robotic sorting method based on deep neural network in complex scene is proposed to improve the sorting efficiency and recognition accuracy of parcels. The sorting method consists of three main parts. Firstly, the improved object detection algorithm is proposed. More detailed features are extracted by combining the multi-layer shallow layer with the final feature map to improve the speed and accuracy of recognition. Then, an optimal grab position detection network based on cascading convolution of key points is proposed to realize real-time estimation of the optimal sorting position of the parcel. Finally, by combining with the target capture optimal frame and the depth information of the scene, the robotic sorting operation can be completed by the target pose estimation algorithm based on the three-dimensional information, and the effectiveness of the method is verified by experiments.
目前,我国的快递行业迅猛发展,物流仓储中心快递的分拣工作绝大部分是由人工完成,效率低且错误率高.因此,研究基于视觉的智能机器人分拣系统具有非常重要的现实意义和科研价值.如何使机器人获取目标物体位置与姿态等有效信息就成为拣选任务中的关键问题.近期的研究中[1-2],把机器人环境感知看作为一类检测问题:在相机视野范围内检测适合机器人拣选的位置.传统的目标识别大多使用基于图像颜色、边缘、轮廓或人工特征方法来处理图像信息.随着深度神经网络的不断发展,CVPR(conference on computer vision and pattern recognition)、ECCV(european conference on computer vision)等国际计算机视觉顶级会议上提出了R-CNN(region-convolutional neural networks)、Fast R-CNN[3](fast region-convolutional neural networks)、Faster R-CNN[4](faster region-convolutional neural networks)、YOLO[5](you only look once)、SSD(single shot multibox detector)等网络.在目标检测速度和精度上,以上深度神经网络相比于机器视觉有较大提高,提取的特征能有效地克服人工特征泛化能力不强、鲁棒性差等问题[6],解决光照以及受其他因素影响的问题,能够有效地应用于特定任务中.在快递包裹分拣应用中,基于视觉的智能机器人分拣系统对目标识别算法的要求是能够适应目标线性形变,同时对实时性也有较高要求.
在机器人拣选算法研究中,深度神经网络得到了广泛应用. Hossain等[7]首先结合神经网络优化算法来提高识别准确度以及提高拣选系统的性能. Zhichao Wang等[8]使用目标与抓手的几何特征分割出非结构化场景的可拣选物体,通过深度神经网络获得可拣选物体的最佳可抓握区域. Ulrich Viereck等[9]使用深度神经网络学习用于机器拣选的闭环控制器的设计,获取目标物体准确的抓握姿态,并获得了较好的拣选效果. Xuedan DU等[10]使用深度学习进行机器人拣选,通过基于深度学习进行目标检测与分类,通过深度学习的机器人拣选方法确定机器人拣选位置.然而,以上研究都只实现了简单场景下机器人的拣选过程.
为此,针对复杂场景下堆叠包裹拣选问题,提出基于深度神经网络复杂场景下机器人拣选方法.
1 基于深度神经网络复杂场景下的机器人拣选方法 1.1 总体框架基于深度神经网络的复杂场景机器人拣选方法如图 1所示.在单件分离过程中,首先通过目标检测识别算法完成环境感知,获取堆叠包裹的类别以及位置,然后使用完整性评判准则获取最优拣选目标;在此基础上,通过基于关键点的级联卷积最优拣选位置检测网络,获得目标包裹的最优拣选框;最后通过结合场景的深度信息,获取目标包裹的拣选位置与姿态,完成包裹的智能拣选.
YOLO算法采用Darknet19网络模型,由2部分构成:1)卷积神经网络,用于提取图片特征;2)目标检测层,用于回归锚框(AB, anchor box)的坐标、类别以及置信度.卷积神经网络是对输入的目标图像进行特征提取,其模型如图 2所示.
目标检测层利用含有全图信息的特征图,使用网格模型将特征图划分为MN大小的网格.借鉴区域建议网络(RPN, region proposal network)锚框的思想,通过维度聚类,选择更好、更有代表性的先验锚框维度,加快网络的收敛速度.维度聚类的距离函数为
$ d\left( {g,p} \right) = 1 - I\left( {g,p} \right) $ | (1) |
其中:I(g, p)表示聚类边界框和真实框之间的重叠度,d(g, p)表示聚类边界框与真实框的距离. 图 3所示的滑动窗口的中心点对应特征图的相应网格后,可将此位置视为一个锚,并在其上生成k个不同尺度、不同比例的锚框,通过采用先验的锚框进行学习,并预测每个锚框得分和回归边界.
如图 4所示,采用线性回归的方法,进而实现对目标直接位置预测,直接位置预测函数为
$ {b_x} = \sigma \left( {{t_x}} \right) + {C_x} $ | (2) |
$ {b_y} = \sigma \left( {{t_y}} \right) + {C_y} $ | (3) |
$ {b_{\rm{w}}} = {p_{\rm{w}}}{e^{{t_w}}} $ | (4) |
$ {b_{\rm{h}}} = {p_{\rm{h}}}{e^{{t_h}}} $ | (5) |
$ \Pr \left( {{o_{{\rm{obj}}}}} \right) \times I\left( {b,{o_{{\rm{obj}}}}} \right) = \sigma \left( {{t_o}} \right) $ | (6) |
其中:tx与ty为预测边界框相对于真实框中心点的偏移量,tw与th为预测边界框相对于真实框宽高的尺度变化量. bx、by、bw、bh为预测边界框在图片上中心点坐标及其宽高的长度,to为置信度,pw与ph为锚框的长和宽,Cx与Cy为该网格距离图像左上角的边距. tw与th经过sigmoid函数处理,取值限定为0~1, 表示该锚框只负责周围的真实框,有利于提升网络的收敛速度. σ函数将tx和ty转为特征图的真实值. σ(to)为预测框的置信度.
在得到置信度分数和预测位置坐标后,对每个网格进行非极大值抑制(NMS, non-maximum suppression).但是不可避免,当每个网格中出现多个目标物体,并且相互遮挡时,对小目标和密集目标的检测存在疏漏.因此直接回归目标坐标与类别,准确率降低.小目标物体检测通常要求更高分辨率的图片,其过多依赖于浅层特征,因此,为了解决小目标检测困难以及损失函数收敛速度慢的问题,通过增加卷积层将多层浅层特征图与最终的特征图进行通道融合,提取更加细节的特征,提升识别的速度与精度,改进后的模型如图 5所示.
首先将Block2输出的特征图通过Concat层和Block3输出的特征图进行连接,依次递进,将多个Block输出的特征图信息融合,从而获取目标更加详细的信息以及更加细腻的特征.特征图信息融合分为2步,首先对于上一个Block输出的特征图分别进行隔行隔列采样,然后进行通道融合,如图 6所示;然后使用批量归一化(BN, batch normalization)、激活线性单元(RELU, rectified linear units)、卷积层(Conv, convolutional)构成的BN-RELU-Conv模块,防止出现由通道数过大造成的过拟合现象.通过特征图融合将这两种不同分辨率的特征图进行连接,获取目标更加详细的信息.
经过试验验证,改进后的目标检测算法对于遮挡物体具有更好的检测效果,如图 7所示.
在最优拣选位置检测之前,首先要获得包含拣选目标的大致区域,通过改进YOLO目标检测算法进行目标检测,获得候选区域中能够被检测到的诸多快递包裹,如图 8所示.
然后根据置信度获得拣选优先级最高的快递包裹,通过最优拣选位置检测算法进行最优拣选框的预测.算法是由2个卷积神经网络(CNN, convolutional neural networks)级联构成,目的是为了检测最优拣选面的4个关键点,并计算其相交点作为拣选点.第1阶段网络是对关键点位置做粗略定位,采用的是方根均差(RMSE, root mean squard error)损失函数作为优化目标;第2阶段网络在第1阶段预测估计结果的基础上,选取包含4个预测点的小区域作为输入,并采用相互关系损失函数(MRL, loss function with mutual relationship)作为优化目标,得到最终的预测结果.网络的整体框架如图 9所示.第1阶段是将Leaky Relu函数作为激活函数,Leaky Relu函数表示为
$ {y_i} = \left\{ {\begin{array}{*{20}{l}} {{x_i},\;若\;{x_i} \ge 0}\\ {\frac{{{x_i}}}{{{a_i}}},\;若\;{x_i} < 0} \end{array}} \right. $ | (7) |
其中:xi为W⊗Y+B运算的结果,ai为(1, +∞)区间的固定参数,设置为2. Leaky Relu函数是非饱和激活函数,它能够解决梯度消失的问题,并且能够加速模型的收敛.损失函数采用的是式(9)表达的欧式距离损失,即方根均差,表示为
$ {E_{{\rm{RMSE}}}} = \sqrt {\frac{1}{4}\sum\limits_{i = 1}^n {{{\left( {{l_i} - l_i^*} \right)}^2}} } $ | (8) |
其中:li为4个关键点构成向量(x1、y1、x2、y2、x3、y3、x4、y4)第i维的数值,li*为预测向量第i维数值.通过反向传播算法不断修正卷积网络的参数,使得误差最小化,从而找到最优拣选框位置.第2阶段同样采用了Leaky Relu作为激活函数. RMSE损失函数虽然在关键点回归过程中表现良好,但是在预测估计最优拣选框位置时,RMSE不能很好地体现关键点相互关系这一重要因素,单单考虑关键点向量损失具有很大的局限性,因此笔者提出了一种带关键点相互关系修正的损失函数MRL,来优化关键点位置,得到更精确预测结果,MRL损失函数表示为
$ \sqrt {\frac{1}{n}\sum\limits_{i = 1}^n {{L_i} + \lambda \left( {L_{{\rm{slo}}}^2 + L_{{\rm{par}}}^2} \right)} } $ | (9) |
$ {L_i} = \sqrt {{{\left( {x_i^T - x_i^P} \right)}^2} + {{\left( {y_i^T - y_i^P} \right)}^2}} $ | (10) |
$ {L_{{\rm{slo}}}} = \sqrt {{{\left( {\frac{{y_2^T - y_1^T}}{{x_2^T - x_1^T}} - \frac{{y_2^P - y_1^P}}{{x_2^P - x_1^P}}} \right)}^2}} $ | (11) |
$ {L_{{\rm{par}}}} = \sqrt {{{\left( {\frac{{y_2^P - y_1^P}}{{x_2^P - x_1^P}} - \frac{{y_3^P - y_4^P}}{{x_3^P - x_4^P}}} \right)}^2}} $ | (12) |
其中:T、P分别为真实值与预测值,Li为关键点预测值和真实值的损失,Lslo为真实关键点与预测关键点相互关系的损失,Lpar为预测关键点相互关系的损失.
通过最优拣选位置检测算法获取物体的最优拣选框,结合场景的深度信息,使用目标姿态估计算法获取目标包裹的拣选位置与姿态,并通过坐标映射转换为机器人基坐标系下的拣选向量,最终传递给机器人,用于拣选的数据表示为(u, v, z, α, β, γ),其中(u, v, z)为最优拣选框在世界坐标系下的拣选位置,(α, β, γ)为待拣选目标的拣选姿态,长方形表示待拣选的目标,快递包裹位置示意图见图 10.
在目标检测识别和最优拣选位置预测估计的训练和测试过程中,实验设备使用GTX1080TI GPU,i78700k CPU.训练使用的深度学习框架为Tensorflow1.3.0,Keras 2.1.0.搭建了基于视觉的机器人拣选实验平台,其中主要包含UR-5六自由度机器人、RGB-D深度视觉传感器、端拾器等,如图 11所示.
YOLO目标检测模型使用GTX1080Ti加速网络训练,模型训练所需的超参数如表 1所示.
基于改进YOLO的目标检测算法通过将多层的浅层特征图与最终的特征图进行通道维度的融合,提取更加细腻的特征,避免了信息丢失现象,提高了目标识别的速度与精度.实验结果如图 12所示.实验结果显示,改进后的模型检测精度明显提升,数值为物体包裹的置信度,改进后的网络模型对小目标有较高的辨别能力.
影响检测效果的另外一个因素是在训练时输入到深度卷积神经网络中图片的分辨率.当输入模型中图片的分辨率较高时,图像中目标的信息比较完善,使得目标特征较为明显,模型更容易得到目标特征.不同分辨率下目标检测效果如图 13所示.
在机器人拣选实验平台上进行不同场景下分辨率与距离对检测精度影响的实验,实验结果见表 2.
关键点检测模型所依赖的深度学习框架为Tensorflow,模型训练的损失函数是RMSE与MRL.关键点检测结果如图 14所示.
通过实验发现,最优拣选位置预测与估计模型的模型结构、模型参数初始化以及损失函数均会影响最终预测出的拣选框位置.对损失函数的影响最大,其次是模型结构,最后是模型参数初始化.
为了确定目标物体的姿态,实验通过目标姿态估计算法计算预测估计最优拣选框的法向量来判断目标物体的姿态.通过选取预测拣选位置的3个点来确定目标物体的倾斜平面,法向量垂直于该倾斜平面的任意一条线,计算法向量的方法为
$ \begin{array}{*{20}{c}} {\mathit{\boldsymbol{n}} = {\mathit{\boldsymbol{P}}_1}{\mathit{\boldsymbol{P}}_2} \times {\mathit{\boldsymbol{P}}_1}{\mathit{\boldsymbol{P}}_3} = \left| {\begin{array}{*{20}{c}} \mathit{\boldsymbol{i}}&\mathit{\boldsymbol{j}}&\mathit{\boldsymbol{k}}\\ {{x_2} - {x_1}}&{{y_2} - {y_1}}&{{z_2} - {z_1}}\\ {{x_3} - {x_1}}&{{y_3} - {y_1}}&{{z_3} - {z_1}} \end{array}} \right| = }\\ {a\mathit{\boldsymbol{i}} + b\mathit{\boldsymbol{j}} + c\mathit{\boldsymbol{k}} = \left( {a,b,c} \right)} \end{array} $ | (13) |
$ a = \left( {{y_2} - {y_1}} \right)\left( {{z_3} - {z_1}} \right) - \left( {{y_3} - {y_1}} \right)\left( {{z_2} - {z_1}} \right) $ | (14) |
$ b = \left( {{z_2} - {z_1}} \right)\left( {{x_3} - {x_1}} \right) - \left( {{z_3} - {z_1}} \right)\left( {{x_2} - {x_1}} \right) $ | (15) |
$ c = \left( {{x_2} - {x_1}} \right)\left( {{y_3} - {y_1}} \right) - \left( {{x_3} - {x_1}} \right)\left( {{y_2} - {y_1}} \right) $ | (16) |
其中:P1P2、P1P3分别为平面的2个方向向量;n为法向量,即机器人末端执行器的朝向.
2.2 机器人拣选实验在拣选动作执行前,需要向机器人提供目标物体在机器人基坐标系下的六维位姿信息,作为拣选位置与拣选姿态.由于前文中的实验均是在相机坐标系下进行的,在机器人拣选实验前,需将相机坐标系与机器人坐标系进行统一描述.获得目标物体在机器人基坐标系下的位置与姿态后,即可控制机器人执行拾取任务,拣选实验结果如图 15所示.
针对存在堆放杂乱无序、相互遮挡的复杂背景,设计了一种基于深度神经网络复杂场景下机器人拣选方法, 实现了对复杂背景下不同尺度的快递包裹检测与拣选.通过实验验证了该方法能对图像中的目标物体进行准确地识别,证明了基于深度神经网络的目标检测方法和拣选位置预测估计方法的有效性.未来的研究方向是进一步优化该方法,提高目标检测精度与拣选速度,最终实现在更为复杂、恶劣的场景下进行物体分拣.
[1] |
Jiang Y, Moseson S, Saxena A. Efficient grasping from RGBD images: learning using a new rectangle representation[C]//IEEE International Conference on Robotics and Automation. Shanghai: [s.n.], 2011: 9-13.
|
[2] |
Lenz I, Lee H, Saxena A. Deep learning for detecting robotic grasps[J]. The International Journal of Robotics Research, 2015, 34(4-5): 705-724. DOI:10.1177/0278364914549607 |
[3] |
Girshick R. Fast R-CNN[C]//Proceedings of IEEE International Conference on Computer Vision.[S.l.]: ICCV Press, 2015: 10-15.
|
[4] |
Ren S, He K, Girshick R, et al. Faster R-CNN: towards real-time object detection with region proposal networks[C]//Proceedings of Conference on Neural Information Processing Systems.[S.l.]: NIPS Press, 2015: 1-15.
|
[5] |
Redmon J, Divvala S, Girshick R, et al. You only look once: unified, real-time object detection[C]//IEEE Conference on Computer Vision and Pattern Recognition.[S.l.]: IEEE, 2016: 779-788.
|
[6] |
Lecun Y, Bengio Y, Hinton G. Deep learning[J]. Nature, 2015, 521(7553): 436-444. DOI:10.1038/nature14539 |
[7] |
Hossain D, Capi G, Jindai M. Evolution of deep belief neural network parameters for robot object recognition and grasping[J]. Procedia Computer Science, 2017(105): 153-158. |
[8] |
Wang Z, Li Z, Wang B, et al. Robot grasp detection using multimodal deep convolutional neural networks[J]. Advances in Mechanical Engineering, 2016(8): 1-12. |
[9] |
Viereck U, Pas A T, Saenko K, et al. Learning a visuomotor controller for real world robotic grasping using simulated depth images[J]. 1st Conference on Robot Learning, 2017(78): 291-300. |
[10] |
杜学丹, 蔡莹皓, 鲁涛, 等. 一种基于深度学习的机器人拣选方法[J]. 机器人, 2017, 39(6): 820-828, 837. Du Xuedan, Cai Yinghao, Lu Tao, et al. A robotic grasping method based on deep learning[J]. Robot, 2017, 39(6): 820-828, 837. |