视觉机械臂物体识别与抓取技术研究及系统开发
2022-07-18秦志民高振清高宝雷文博宇杜艳平李宏峰
秦志民,高振清,高宝雷,文博宇,杜艳平,李宏峰*,
(1.北京印刷学院 机电工程学院,北京 102600;2.北人智能制造科技有限公司,北京 102600)
随着深度学习技术的不断发展,视觉识别技术在机器人领域的应用越来越广泛,在机械臂抓取领域的研究与应用也成为热点之一。自2006年以来,基于深度卷积神经网络的图像识别技术得到了快速发展,比较典型的卷积神经网络包括LeNet、AlexNet、VGG、ZFNet、ResNet等。其中,AlexNet的图像识别检测过程中通过若干卷积层和池化层,逐步对图像进行特征提取和分类[1]。VGG16的结构是标准卷积层、池化层和全连接层的迭代,根据需要可以修改网络深度,但是每次遍历整张图片,包含数量巨大的权重数目,使得拟合能力很高,训练时间和内存要求也相应增加[2]。SSD采用VGG16作为基础网络模型,新增了卷积层来获得更多的特征图用于检测,在不增加参数与模型复杂度的条件下扩大卷积的视野[3]。YOLO 降低了部分准确率,检测速度得到了极大提升,实时检测速度达到 50 fps[4],其YOLOv3在准确率和速度上均比SSD更为优越[5]。
通常的目标识别方法将物体用矩形框框出,并输出物体的所属种类及分类概率。鉴于矩形框无法准确表达物体的形状和摆放姿态的区别,所以需要对物体的位姿进行进一步的预测。对于机械臂抓取过程,早期主要使用分析方法和3D推理预测抓取位置和角度[6]。此类方法要求物体信息完整,比如需要给定物体的完整三维模型,以及物体的表面摩擦特性和质量分布等。然而,对物体3D模型和相关属性的感知和推断是非常困难的,比如使用RGB相机不易推断物体的摩擦力或者质量。一些研究工作使用模拟器进行抓取预测[7],但是模拟器的仿真环境与真实环境差异较大,迁移效果难以保证。近年来,通过视觉学习直接从RGB或RGB-D图像预测抓取位置受到研究者们的关注,比如文献[8-9]使用边缘、纹理等视觉特征学习或者逻辑回归的方法进行抓取预测。
本次研究采用基于深度学习的视觉识别技术,搭建了视觉机械臂抓取系统。研究过程中,采用深度学习算法进行图像特征的提取,通过DarkNet-53实现图像识别,进而获得目标物体的抓取位姿,最后控制机械臂实现抓取。研究过程中,搭建了物理样机,并进行了实验分析。
1 系统总体组成与工作原理
基于深度学习的视觉机械臂目标识别与抓取系统主要由机器视觉单元、机械臂控制单元、计算机控制单元构成。机器视觉单元通过控制摄像机传感器采集目标图像,机械臂控制单元通过伺服驱动器控制各关节转动,计算机控制单元进行图像检测、位置标定等。系统总体组成与工作原理如图1所示。
图1 系统总体组成与工作原理
为实现物体抓取,首先要确定目标物体在机械臂坐标系中的位姿。通过相机直接获取包含物体的图像,利用图像识别和检测算法得到物体在像素坐标系下的坐标。通过标定将物体的位姿从像素坐标系变换到机械臂坐标系下。视觉系统的标定包括相机标定和手眼标定,通过相机标定建立像素坐标系到相机坐标系的变换关系,通过手眼标定建立相机坐标系到机械臂坐标系的转换关系。
在完成坐标转换的基础上,为使机械臂完成物体抓取,需给定机械臂的各关节坐标。通过标定得到物体在机械臂坐标系下的位姿,根据被抓物体的形状和机械臂末端执行器的结构,坐标变换得到抓取物体所要求的机械臂末端执行器的位姿。根据机械臂运动学模型,通过计算运动学逆解获得对应的机械臂关节角度,驱动机械臂各关节到达指定的坐标。
2 目标分类预测与识别
目标分类预测的任务是找出图像中的待操作物体,同时检测其尺寸及位姿,是目前机器视觉领域的核心问题之一。本次研究使用预训练好的YOLOv3目标分类算法进行目标的识别分类。为了提高工作效率,使用MSCOCO数据集与ImageNet数据集进行两次训练,提升训练速度并保证训练准确。使用MSCOCO数据集进行快速训练,考虑到该数据集没有ImageNet数据集中的物体种类全面,如果无法检测出物体,再使用ImageNet做进一步的训练。
YOLOv3采用单独的CNN模型实现端到端的目标检测,可有效解决R-CNN系列算法采用滑动窗口进行目标检测所带来的耗时过长问题。将原始输入图像分割成若干个互不重合的单元格。目标物体的中心点所在的单元格用来对该目标物体进行识别预测,每个单元格会给出多个边界框以及边界框的置信度。置信度通过预测框与实际框的IOU(交并比)来表征。每个单元格会预测出多个类别概率值,用于表征目标物体属于各个类别的概率。
YOLOv3采用Darknet-53和分类器,在准确率和速度方面得以保证,并采用类似FPN的上采样和融合做法,可以显著提高小目标物体的检测效果。YOLOv3的网络结构图如图2所示。从图中可以看出,特定尺寸大小的输入图片进入Darknet-53网络后得到3个分支,这些分支在经过一系列的卷积、上采样以及合并等操作后最终得到了3个不同尺寸的feature map,即y1、y2、y3,其中,y1用于预测大尺寸物体,y2用于预测中等尺寸物体,y3用于预测小尺寸的物体。
图2 YOLOv3的网络结构图
图2中DBL是YOLOv3的基本组件,由卷积层和BN以及leaky relu共同构成;YOLOv3采用ResNet的残差结构,可以提升网络结构的深度,Resn表示res-block里有多少个res-unit,是YOLOv3的大组件;concat表示张量拼接,目的是把Darknet中间层和后面的某一层的上采样进行拼接。通过以上网络结构能够实现对大、中、小物体的识别预测。
3 目标位姿检测及抓取区域分析
目标物体的抓取位姿预测是通过回归模型实现的,将原始RGB图像送入网络后直接回归得到抓取位姿。回归任务的评价指标通常为预测值与真实值之间的差别。本次研究使用YOLOv3的骨架DarkNet-53进行抓取坐标的回归。为了微调原网络权重适应抓取检测的应用,将Cornell Grasp Dataset用于网络的训练。然后将训练集中4个坐标点转成五参数表示法[10],五参数表示法给出了在对物体执行抓取时二指平行抓手的位置和方向。
五参法表示结果(X0,Y0,H0,W0,θ0)由训练数据集中给出的正例抓取框的4个顶点坐标计算得到,假设这4个顶点坐标分别为(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4),如图 3所示。
图3 抓取矩形的Ground Truth在图像中的几何描述
X0,Y0,H0,W0,θ0的计算式为:
(1)
式中:(X0,Y0)是与抓取矩形的中心对应的坐标;H0是二指平行抓手最大高度;W0是二指平行抓手的手指宽度;θ0是抓取矩形相对于水平轴的角度。由式(1)可知,为了计算角度θ0,抓取矩形应避免出现W0绝对竖直的情况(此时正切值无穷大),研究过程中对计算值和预测值进行了限幅,将角度值限制在-85°~85°之间。模型假设每个图像都包含一个可抓取的目标物体,并且只需要预测最佳抓取位姿(x,y,h,w,θ)。
经过计算得到的五维坐标相当于每张图片的标签,再将这些信息转换为tf-record格式,即可输入网络中进行训练,如图4所示。在经过Darknet-53特征提取之后,进行平局池化,形成全连接层,并使用dropout防止过拟合,最后输出抓取位姿的真实坐标值。
图4 网络主体框架图
研究过程中使用均方差(MSE)作为损失函数,随机梯度下降法(SGD)作为优化器。损失函数的定义为
Lgp-reg=
(2)
式中:(x,y,h,w,θ)为预测值;(X0,Y0,H0,W0,θ0)为真实值;λ为角度加权值,设为10;N为batch(批量)大小。
对于单物体单抓取,训练时模型只选择其中一个Ground Truth(真值框)进行学习。由于每次的选择都会变化,因此不会过拟合。最后,将预测得到的五维坐标转为抓取预测框的4个顶点即可。具体训练过程分为3个阶段:
1) 第一阶段预训练,只训练一个epoch,初始学习率为10×10-4,通过预训练可以一定程度上解决深度网络中梯度扩散问题以及随着网络加深出现的多特征问题,并最终得到比较好的局部最优解。
2) 第二阶段训练20个epoch,这一阶段做迁移学习,在基础数据集和任务上训练一个基础网络,然后转移到第二个目标网络并在目标数据集和任务上接受训练,目的是提高训练的速度以及改善深度学习模型的性能,所以只训练相关层。
3) 第三阶段训练30个epoch,开放所有层,使用抓取数据集做微调。这一阶段是将预训练过的模型作用于自己的数据集,并使参数适应数据集,所用的深度学习框架为TensorFlow1.13.1-gpu,cuda=10.0,cudnn=7.4,使用的显卡为Quadro K620,显存为6 GB。
4 系统平台搭建与实验
4.1 系统硬件平台搭建
在以上目标识别与抓取位姿预测的基础上,搭建了视觉机械臂的硬件平台。按照标准D-H方法建立机械臂关节坐标系[11-13],并根据需要将图像坐标、相机坐标等转换到机器人坐标系下,以便机械臂按照控制指令运动。计算机与机器人控制器通讯,得到物体抓取位置坐标,并将其转换到机器人坐标下,利用运动学分析方法得到各个关节角度,随后向控制器发送运行指令对机器人进行控制动作。
本次研究的对象是平台放置物体的抓取,待抓取物体都处在同一个平面内,所以不涉及深度信息。相机和桌面的距离是固定的,根据预测到的物体在桌面上的坐标,根据几何原理得到相机距离物体的距离,进而通过坐标转换可以将物体在桌面的坐标转换到相机坐标中。同理,机器人初始位置与桌面也有固定的距离,由此也可以推算物体与执行器末端的坐标转换,最后通过相机与执行器末端的标定,将图像坐标转换到机器人坐标下,再根据逆运动学求解各个关节的转动角度,实现运动控制。
4.2 实验与结果分析
模型训练及实验是在CPU为Intel®CoreTMi5-6500 3.20GHz,RAM为4GB,操作系统为Ubuntu16.4的计算机上完成,没有使用GPU加速。物体图片由logitech单目USB摄像头采集,原图分辨率为1 280×720。软件部分基于Tensorflow深度学习框架Python编写。
执行抓取运动的机器人为6轴串联工业机器人,具体抓取过程如下:
1) 初始化机械臂位姿及夹持器开度。设机械臂在笛卡儿空间下的初始位姿为(x0,y0,z0,rx0,ry0,rz0),夹持器开度为L;
2) 控制机械臂令末端执行器到达抓取点的正上方,并将末端执行器旋转至检测结果的姿态角度;
3) 下移末端执行器并闭合夹持器以抓取物体;
4) 控制机械臂将目标物体提起后返回初始位姿。
经实验测试,改进的算法在Darknet-53网络模型下可以快速的检测识别目标物体,检测速度可以达到0.52 s,能够满足实时性要求。由此可见,对于不同形状和种类的物体,该方法均可以预测出一个可以完成抓取任务的抓取框如图5所示。从图5中可发现,该算法可以根据物体的形状特点来预测抓取框,比如中空的环形线缆、规则的快递盒以及带有边框的收纳盒;对于小物体,该算法也可以得到一个较好的预测结果,比如小螺丝钉、小工件以及小的螺丝刀等。
图5 不同种类物体的抓取预测结果
由第3节中提到的五参数法可以计算出以上抓取预测矩形框的中心点位置坐标(x,y)和抓取矩形相对于物体水平轴的角度θ。由于实际最佳抓取位置通常位于物体的中心轴线上,本文定义抓取预测中心点的位置与实际抓取物体中心轴线的最短距离为抓取位置偏差。图5所示的预测结果与实际最佳抓取位置和方向的偏差如表1所示。
表1 预测结果与实际最佳抓取位置和方向的偏差
由表1可得,对于不同的物体,采用Darknet-53深度学习算法预测得到的抓取位置偏差与实际最佳抓取位置平均偏差为1.10 mm,方向偏差为±(3°~5°),能够满足精度要求。
结合以上视觉识别算法,采用六自由度机械臂,开发的视觉机械臂物理样机如图6所示,并进行了实验分析。
图6 物理样机实验
实验过程中,采用基于DarkNet-53的五参数法完成了目标位姿的检测,检测速度可以达到0.52 s/张,检测准确率达到70%。与基于滑动窗口的抓取预测方法相比较,在检测准确率相当的情况下,每个物体的检测速度提高1.3 s。与七参数法相比较,检测准确率提高了10%。实验结果表明,本次研究的视觉机械臂的目标识别和抓取兼顾了速度和精度两个关键指标,该方法有效。
5 结束语
利用深度学习的方法,进行了视觉机械臂的目标识别与抓取预测研究,并搭建了系统硬件平台,完成了实验研究和数据分析。研究结果表明,使用深度学习方法可以有效实现对目标物体进行识别检测,预测机械臂的抓取位姿,实验数据说明本研究方法提高了目标物体的标定和抓取效率。后续工作将根据实际抓取成功率对算法以及操作流程进行优化。