APP下载

基于感兴趣区域的机器人抓取系统

2020-06-04马世超郭延华

科学技术与工程 2020年11期
关键词:坐标系像素物体

马世超, 孙 磊, 何 宏, 郭延华

(天津理工大学电气电子工程学院,天津 300384)

智能机器人的基础研究和产业化近年来发展迅速,在工业分拣、农业采摘等[1-3]方面机器人抓取技术具有较高的应用价值,能否抓取成功会受多方面因素的影响,因此机器人的抓取是一个非常具有挑战性的研究。

传统的一般采用人工示教的抓取方式实现对位置确定的单一物体抓取,由于抓取位姿凭靠的是记忆且机械臂本身没有对外物的感知能力,所以在实施抓取操作时易受到来自外界不确定因素的干扰,为了实现在自然环境下机械臂能够自主抓取物体,计算机视觉技术与机器人技术的结合成为研究的热点。文献[4]提出单目立体匹配的机器人抓取方法,主要建立3D模板库,最优搜索确定检测位姿实现抓取,但其主要是在单物体下实现的,不能应对多目标环境。文献[5]提出了一种基于雅克比矩阵估计的视觉伺服控制方案。文献[6]利用双目视觉对盘类零件上料物体的位置形状识别,实现对零件的定位,但光照过强过弱都会使效果下降,其对环境的适应性差。文献[7]利用深度传感器并结合颜色信息,通过目标三维重建获得位姿,虽然其在目标所占比例大的情况下效果好,但由于三维重建耗时长,故实用性不强。以上研究均是基于视觉的。

受Hubel等的生物研究影响,卷积神经网络(convolutional neural network)被提出,并在目标识别检测等方面作出突出贡献,此后深度学习技术逐渐应用到机器人抓取领域。文献[8]利用神经网络,对目标物体位置与机器人末端的映射关系进行训练完成抓取;文献[9]提出被抓取目标物体在未知姿态下,利用卷积神经网络学习抓取函数,虽然此方法适应性强,能够很好地适应新物体,但也只针对单个物体情况;文献[10]提出基于深度学习的多视图、自监督方法来估计物体6D位姿,能够在复杂环境下实现抓取,但其抓取精度依旧不高;文献[11]提出基于Faster RCNN目标检测的机器人抓取方法,虽然其满足多目标的识别并且精度较高,但是识别速度要比YOLOV3慢很多,会影响实时检测。

针对多目标、目标物体大小不一的情况,提出一种基于感兴趣区域的机器人抓取方法。对物体识别定位及机器人抓取进行了研究,利用Kinect V2采集场景信息,通过张正友标定法[12]获得深度传感器的内外参数,实现二维图像与三维空间之间的映射,计算目标物体的坐标信息,建立目标数据库进行训练,为了满足目标实时检测的需求,选用改进的YOLOV3模型进行识别。最后,通过控制机器人各个关节,实现对目标物体的抓取。

1 系统组成

物体抓取系统如图1所示,共包含目标的识别、定位及抓取3部分。Kinect V2架于实验台0.5 m的位置,aubo_i5机械臂固定在实验台上,相机不随机械臂运动,GPU选用NVIDIA GTX 1080Ti,操作系统选用Ubuntu16.04,深度学习框架为TensorFlow。物体检测系统采用YOLOV3深度学习的方法,采集5种目标物体,对其标记训练得到适合本系统的权重。YOLOV3调用Kinect V2相机实时采集场景中的图像信息,同时利用训练好的改进YOLOV3模型检测出目标物体,并且得到其类别、二维包络框和置信度等信息。目标物体的定位系统能够得到目标的图像点的像素坐标值和深度值,然后利用手眼转换,得到目标物在机械臂基坐标系下对应的位置信息;机械臂抓取系统通过求取逆解,得到aubo_i5机械臂6个关节转动角度值,最终通过对机械臂控制完成抓取任务。

图1 抓取系统简图Fig.1 Schematic diagram of the grasping system

2 物体检测系统

Kinect v2按照物体不同位置、不同种类,采集500张物体图像信息,对图像中目标物体类别进行标注,然后将标注信息与原始图像信息作为训练样本,在YOLOV3网络中进行训练,得到权重信息,完成目标物的识别。

2.1 物体数据集扩充

实验中采集了包括水瓶苹果等共5种待识别的目标。为了识别准确,作为训练的物体图像信息既要包含目标物的不同类别,还要包含目标物体不同位置和姿态下的信息;同时,为了快速得到这些信息,实验中在相机采集的500张图像的基础上来增大训练的数据集,所以对原图添加高斯噪声,并且将原图与噪声处理后的图像分别进行顺逆时针各转10°操作,如图2所示。此时一幅图像可扩展成6幅,数据集共500×6=3 000幅图像。

图2 原图的增强效果Fig.2 Enhanced effect diagram of the original

2.2 改进YOLOV3模型和参数设置

快速卷积神经网络模型的平均精度比YOLOV3高一些,但是其对视频实时检测耗费的时间要比YOLOV3长很多。正因为YOLOV3检测快,能够满足视频的实时处理,因此选用YOLOV3训练模型并在此模型基础上完成改进。YOLOV3网络[13-14]是一个基于回归的单级检测器,主干网络由Darknet-53特征提取器和YOLO交互层构成,损失函数采用交叉熵函数。Darknet-53是一个全卷积网络,其融合了Darknet网络和残差连接方式,并且采用了53个3×3、1×1卷积核的卷积层,通过跳跃性的连接方式构成res层。其中DBL包括二维卷积操作(conv2D)、BN层和局部响应归一化(Leaky relu)。对图像进行特征提取,输出3个不同尺度的特征图,将其与YOLO交互层进行特征融合构建特征金字塔网络,提取目标深层语义信息,输出目标的位置信息、类别及置信度。YOLOV3网络结构如图3所示。

对其损失函数进行改进,使用焦点函数(FL)代替传统的交叉熵函数,得到改进YOLOV3新型回归单级检测器,通过物体识别将其与YOLOV3模型进行实验对比分析,验证模型的有效性及可靠性。传统的交叉熵函数整理之后可得:

图3 YOLOV3网络结构Fig.3 YOLOV3 network structure

(1)

式(1)中:n的值是正1或负1;m是标签(label)等于1时预测的概率,其值范围为0到1,为方便计算,用nt代替n,公式为

(2)

对交叉熵的改进,增加了一个系数αt,跟nt的定义类似,当label=1的时候,αt=α;当label=-1的时候,αt=1-α,α的范围是0到1,公式为

L(nt)=-αtln(nt)

(3)

在大量数据训练过程中,容易分类的负样本占据损失值的大部分,虽然αt能够平衡正负样本,但是对于难(易)样本分类仍具有一定难度,提出在交叉熵函数中加入调制函数(1-nt)γ,γ具有平滑曲线的作用,当γ>0时,则样本类别失衡,此时nt值为极小值,调制系数趋于1,交叉熵函变化很小;当nt趋向于1时(类别正确),调制系数趋于0,对总损失值影响较小;当γ=0时,焦点损失函数就是传统的交叉熵,当γ增加时,调制函数也会相应的增加。一般而言当γ增加的时候,α需要减小一点。

最终损失函数公式为

FL(nt)=-αt(1-nt)γln(nt)

(4)

焦点损失函数既能调整正负样本的权重,又能提高识别精度及稳定性,将改进后的损失函数应用到网络模型中。

改进YOLOV3结合深度传感器能够实时检测目标物体,基于改进YOLOV3模型的物体检测技术属于监督学习,因此需要得到目标类别及其二维包络框像素位置等标注信息。对得到的3 000幅图像完成标注之后,为了测试模型的精度,这里将80%的图像与其相对应标注后得到的.yaml文件作为训练集,剩余的20%作为验证集。在目标识别中,对模型参数进行设置,学习率设置为0.000 1,批量大小设置为64,subdivisions设置为16,并将其迭代25 000次,随着训练次数增加,损失函数值无限趋于0。最后,使用验证集测试训练得到改进YOLOV3模型。

3 物体的定位理论

3.1 相机坐标转换到图像坐标

物体的三维坐标与图像坐标存在线性关系,其中世界、图像、相机、像素坐标系的关系[15]如图4所示。一个现实世界中的物体点在世界坐标系下的坐标为P(X,Y,Z),经过相机拍摄得到图片,在图片上的像素坐标为m(u,v)。相机的相对位置用(XC,YC,ZC)坐标表示,C即(Cx,Cy),图像坐标系的坐标值用(x,y)来表示,像素坐标系的坐标值用(u,v)表示,焦距用f表示。

图4 坐标系的关系Fig.4 Relation of coordinate

相机坐标系到图像坐标系之间的转换实际上是将三维空间点转化为二维平面点,如图4所示,根据三角形法,得到目标物体在图像坐标系的转换关系为

(5)

3.2 相机坐标转换到像素坐标

由图4知,图像和像素两坐标系的转换关系为

(6)

式(6)中:dx和dy分别为在x轴方向和y轴方向上的尺寸变化;(u0,v0)为在像素坐标系下的坐标值。式(6)齐次变换用公式表示为

(7)

由式(5)、式(7)可得相机坐标系到像素坐标系的转换关系为

(8)

式(8)中:K为相机内参;X为目标物在相机坐标系的坐标。

3.3 像素坐标系到基坐标系的转化

在对Kinect V2标定时,设世界坐标系与{e}保持一致,即要测得的目标在世界坐标系下的坐标值为Xe=(Xe,Ye,Ze),同时设相机坐标系为{c},基坐标系为{0},则{e}到{c}的变换关系表示为

(9)

式(9)中:R为3行3列的正交旋转矩阵;t为平移向量。将式(9)代入式(8)可得:

(10)

(11)

由式(10)、式(11)得,像素坐标系到{0}的转换为

(12)

(13)

假设{c}在{0}中的位姿表示为0Pc=(Pcx,Pcy,Pcz,θcx,θcy,θcz)T,可得{c}到{0}的齐次变换矩阵为

(14)

4 机械臂抓取系统

4.1 机械臂及夹持器

使用aubo_i5六自由度的机械臂完成抓取操作,机械臂各关节及其坐标系展示在图5中。机械臂共6个转动关节,其中关节1~6分别对应坐标系{1}~{6},通过基座与底座连接,可以通过控制1~6关节转动,使机械臂末端工具移动到不同的位置。由于aubo_i5的结构特点,2、3、4关节轴线符合三轴平行构型,因此机器人拥有逆运动学封闭解。

图5 机械臂关节及各坐标系简图Fig.5 Schematic diagram of mechanical arm joints and each coordinate system

EZGripper机器人夹持器(图6)通过连接法兰固定在aubo_i5机械臂的末端,通过机器人操作系统(robot operating system,ROS)上的Python来控制夹持器的张合动作。

图6 夹持器Fig.6 Gripper

4.2 机械臂D-H参数

根据aubo_i5机械臂各个关节坐标系的位置及姿态,定义机器人的初始零位位姿与图5一致,得到机器人的参数如表1所示。表中,i表示关节的序号,ai-1表示前一个连杆长度,αi-1表示连杆i相对于连杆i-1的转角,di表示第i个关节的偏置距离,θi表示第i个关节的转角范围,零位θi时的值分别为[0 -90 0 -90 0 0]。

4.3 机器人正运动学

(15)

(16)

式(6)中:Screwx(αi-1,αi-1)为绕Xi-1轴旋转αi-1,并且再沿Xi-1轴平移了αi-1;Screwz(di,θi)为绕Z轴旋转了θi,并且再沿Z轴平移了di。在D-H参数中,θi作为关节变量,其余值均是已知量,将D-H参数中的参数分别代入式(15)和式(16)即得到aubo_i5正向运动学解。

4.4 机器人逆运动学

当夹持器安装在机械臂末端时,为实现手抓到达指定的目标位姿,因此需要求得这一位姿所对应的6个关节的转角值,即逆运动学解[17-18]。由于aubo_i5机器人2~4关节轴线符合三轴平行结构,所以此机器人具有封闭解。逆解可能不存在,也可能不唯一。对6自由度的遨博机械臂,采用牛顿迭代法来求取逆解,先构造非线性方程组,其公式如下:

F(θ)=0

(17)

F(θ)=(f1,f2,…,fn)T

(18)

θ=(θ1,θ2,…,θn)T

(19)

(20)

其展开式为

(21)

(22)

用牛顿迭代求解方程组表示为

θi+1=θi-J-1F(θi)

(23)

(24)

通过式(24)求解六自由度空间机械臂的逆运学。

5 实验

5.1 相机标定实验

采用5 m×7 m×0.03 m的标准棋盘,为保证其稳定,将相机固定。共采集了上、下、左、右、前、后等不同方位的40张用于彩色图像和深度图像的校正图像,提取其棋盘角点,根据采集后图像的图像坐标与棋盘角点的世界坐标系关系,求解Kinect V2的内外参数,最终完成相机标定(图7)。其彩色相机内参(Krgb)、红外相机内参(Kir)矩阵为

相机外参旋转矩阵R和平移向量t分别为

t=[-0.04709 0.00004 0.00302]

计算得到{c}到{0}的齐次变换为

图7 点云配准前后对比Fig.7 Comparison before and after point cloud registration

图7(a)展示相机的RGB图像和Depth图像是没有进行配准的图像,可知道其点云图在其边缘位置存在明显的错位现象。图7(b)展示配准后相机下的点云图像,可以看出,矫正后,其三维点云图的边缘轮廓完好对齐,很好地去除在模型之间的位置偏差问题,从而使得到的相机下的同一个三维物体模型具有一定的完整性和一致性。

5.2 物体检测实验

收集3 000张包含香蕉、苹果、杯子、书、鼠标等图像制作数据集MAC,训练并测试,随机选取2 400张图像作为训练时的数据集,剩余600张作为验证集。采用Darknet53基础网络在MAC数据集上训练,将其迭代25 000次,经训练得到的权重作为测试的权重,再利用验证集评估模型精度。为了验证模型权重的有效性和可靠性,图8(a)显示训练的迭代次数改进前后的平均损失曲线,通过曲线图可以看出,随着训练次数的增多,虽然二者的平均损失值逐渐趋于平稳,最终基本保持不变,但是改进后模型比改进前下降快,说明在训练过程中模型具有很快的收敛性。图8(b)所示为精确率召回率曲线对比,从曲线图中看出,在保持高精度的条件下,改进后模型的召回率可以达到90%,而当召回率为90%时,精确率仍然能够达到80%,改进前召回率为90%时,其精确率已经下降到60%,说明改进YOLOV3模型的性能高。

图8 平均损失曲线和P-R曲线Fig.8 Average loss curve and P-R urve

分别用YOLOV3和改进YOLOV3对Kinect拍摄的场景物体进行实时测试,得到物体的类别、准确率及边框位置信息。其识别结果如图9、图10所示,每种物体识别的正确率如表2所示。

由图9可以看出,图9(a)没能识别出苹果和鼠标,而图9(b)将场景下的5种物体全部正确识别。所测场景中的物体具有遮挡的特点(鼠标与香蕉特征遮挡),导致识别信息重叠,减少可区分性,增大了识别难度。经实验结果得出,改进YOLOV3解决了由于遮挡造成的不能有效识别的问题。

图9 遮挡环境下物体识别对比试验Fig.9 Comparative test of object recognition under occlusion environment

图10 改变物体位置的情况下识别对比Fig.10 Recognition and contrast under changing object position

改变物体位置的情况下,分别再用YOLOV3和改进YOLOV3对Kinect场景下的物体进行检测,分别提取第57帧和163帧进行测试,如图10所示,可以看出,当物体位姿发生变化时,用YOLOV3和改进的模型测试结果差别很多,对于视频中不同的帧,YOLOV3检测出的物体总是在发生变化,有时能检测出,有时则需要晃动目标物体才能检测到,而改进后的YOLOV3能够稳定地检测出物体,对环境变化的适应性强。在57帧时,如图10(a)所示,只识别出了鼠标,在163帧时,如图10(c)所示,识别出鼠标和苹果;而图10(b)、图10(d)在57帧和163帧时,全部正确识别。从实验结果中能够得出,改进的YOLOV3有效提升了物体识别的稳定性。

表2 测试结果识别的正确率Table 2 The accuracy of test result recognition

由表2可知,改进前识别到香蕉的正确率为78.3%,而改进后香蕉的识别正确率达到79.6%,与模型改进前相比提升了1.3%,改进前识别到苹果的正确率为54.2%,而改进后识别其正确率达到55.4%,与改进前相比正确率提升了1.3%,改进前识别到杯子的正确率为65.1%,改进后较改进前提升了3%,对于书、鼠标,改进前识别正确率分别为80.2%和57.6%,二者相比于改进前分别提升了5.1%和1.2%。根据表中数据得出改进YOLOV3模型与YOLOV3模型的平均精度相比,改进YOLOV3模型平均精度大约提升了2.36%,其模型性能优于改进前。

5.3 物体定位实验

根据理想相机成像的原理,通过坐标系之间的变换剖析了物体三维坐标计算的全过程,Kinect V2传感器根据其发出红外光线的飞行时间来计算其相应的深度信息,计算某一点处的深度值为Z,其他参数已经由相机标定获得,代入下式计算:

实验中利用改进YOLOV3识别到5种目标物体,其可视化采集点如图11所示,分别计算1~5的中心位置(图中红点标记的位置),并在表3中展示得到的像素坐标数据。通过表3可以看出,所测得的坐标值在0.5~1.5金字塔视场,其深度误差较小,深度误差平均绝对值为0.010 8,精度较高。

图11 目标物可视化Fig.11 Target visualization

表3 图像点的像素坐标值和深度值Table 3 Pixel coordinate values and depth values of image points

5.4 物体抓取实验

实验中抓取系统采用眼在手外模式,在光照充足的条件下进行物体抓取实验,一共选取了5种物体,并且其位置和姿态不同,对每种物体分别进行抓取15次测试,总抓取75次。实验中分别用YOLOV3和改进YOLOV3模型对物体进行识别,程序计算物体中心点的位置对其实施抓取,实验抓取过程如图12所示。

图12 物体抓取过程Fig.12 Object grasping process

抓取实验结果如表4所示。改进前由于抓取过程中不能有效地识别出目标物体,所以易造成抓取失败的情况。其中苹果、杯子和鼠标3个物体的抓取成功率分别为87%、93%、80%,而应用改进YOLOV3能稳定地识别到物体,抓取成功率均能达到100%。然而书的抓取成功率比较低,由于其材质影响,造成抓取过程容易脱落,改进前为73%,改进后为80%,而香蕉抓取成功率改进前为67%,改进后成功率达到87%,其改进后未成功抓取的原因主要是香蕉中间形状不规则导致相机在对其进行测量时得到的深度信息不准确,造成定位时香蕉的位置出现了偏差。75次抓取实验中,改进前共成功抓取60次,改进后则成功抓取70次,改进前平均成功抓取率为80%,改进后成功率达到93.4%。实验结果可以看出,改进YOLOV3应用在物体识别中并根据坐标系转换实现抓取的方法是有效的,且抓取成功率较改进前提升了13.4%。

表4 物体抓取实验结果Table 4 Experimental results of object capture

6 结论

基于感兴趣区域的机器人抓取系统采用张正友标定法完成深度传感器的标定,消除了模型在边缘处存在的错位问题,然后利用深度学习方法实现目标物体的检测,依据相机成像原理实现定位,最后根据坐标系转换及机器人逆运动学求解完成抓取任务,得到以下结论。

(1)基于感兴趣区域的机器人抓取系统将深度传感器、深度学习方法与抓取检测问题结合在一起,实现对检测待抓取目标物体端到端实时检测。

(2)针对识别准确率问题,对YOLOV3进行改进,将传统的交叉熵函数替换成焦点函数,并通过图像增强及图片正负旋转10°处理来扩充数据集。改进后较改进前模型的平均精度值大约提升了2.36%,在一定程度上提高了识别的准确率。

(3)依据相机三维定位理论,计算三维坐标,所测得的坐标值在0.5~1.5金字塔视场之间,且深度误差较小,深度误差平均绝对值为0.010 8,能很好地对改进YOLOV3识别到的物体的中心进行定位。

(4)结合(2)和(3)及参照机器人D-H参数,通过坐标坐标系变化及运动学解控制机器人完成抓取,机器人抓取实验验证改进后较改进前提升了13.4%。实验结果证明,改进的YOLOV3能够有效提高抓取成功率,基于感兴趣区域的机器人抓取系统可以对多目标实时可靠的抓取任务。

猜你喜欢

坐标系像素物体
像素前线之“幻影”2000
独立坐标系椭球变换与坐标换算
深刻理解物体的平衡
“像素”仙人掌
坐标系背后的故事
三角函数的坐标系模型
求坐标系内三角形的面积
高像素不是全部
揭开物体沉浮的秘密
为什么同一物体在世界各地重量不一样?