基于改进单次多框检测算法的机器人抓取系统
2020-09-04余永维杜柳青
韩 鑫,余永维,杜柳青
(重庆理工大学机械工程学院,重庆400054)
0 引言
计算机视觉是制约智能分拣机器人的重要技术,故计算机视觉与机器人技术融合成了智能制造领域的研究热点。目前,在目标检测领域主要有基于区域的目标检测算法,如Faster-RCNN(Faster-Region Convolutional Neural Networks)[1]、Mask-RCNN(Mask-Region Convolutional Neural Networks)[2]等,以及基于回归的目标识别算法,如单次多框检测(Single Shot multibox Detector,SSD)算 法[3]、YOLO(You Only Look Once)[4]等。前者检测精度高,检测速度慢;后者检测速度可达到实时,但检测精度稍有逊色。本文以开源性较好且可以实现实时检测的SSD算法为基础,对其进行改进,最终训练得到了新的目标检测模型。
在目标定位领域,主要是得到目标空间坐标位置信息与图像像素信息之间的映射关系,首先通过张正友标定法[5]求解出相机初始的内外参数,然后再以相机初始的内外参数为基础求解畸变系数,最后用迭代法[6]求出精确解。再通过手眼标定[7]将工业相机与机器人系统连接起来,实现相机坐标系到机器人世界坐标系转换,最终得到目标零件在机器人空间坐标系下的三维位置信息,并将该信息传送到机器人的计算机控制端,最后实现机器人抓取任务[8-10]。
1 识别与抓取系统构成
整个识别与抓取系统流程如图1所示:Kinect相机捕捉到待分拣零件之后将信息传送至计算机(Personal Computer,PC)端,PC端调用目标检测模型对图像进行处理,得到图像类别与位置信息;然后通过相机标定与手眼标定得到坐标变换关系,将目标零件进行像素坐标系到机器人世界坐标系之间转换,完成目标零件空间定位;最后将目标零件位置信息传送到机器人运动控制端驱动机器人完成分拣抓取任务。
图1 识别与抓取系统流程Fig. 1 Flowchart of detection and grasping system
2 目标零件检测算法
本文综合比较了当下主流目标识别算法,最终选取SSD算法为基础算法。SSD 算法网络额外层尺寸较小,包含小目标信息有限,且额外层只有一种类型卷积内核,即3×3 内核,存在目标细节特征遗漏的情况。故SSD算法面对工业中一些视觉干扰、表面特征不明显的小零件、零件堆叠以及不同类别零件外形相似等复杂情况时,会发生漏检和误检,而在实际的工厂生产环境中,以上的复杂情况往往不可避免。想要提升网络性能,一般采取的方法是增加网络宽度与深度,然而,这将导致网络参数数量增加,进而造成计算量增加和过度拟合的问题。
2.1 Inception预测结构
Inception 结构具有密集矩阵高性能特点,同时还保持着网络稀疏结构,稀疏连接神经网络可以通过分析激活值的统计特征,对高度相关的输出进行聚类并以此构建出一个最优的网络。把稀疏矩阵分解为多个子密集矩阵运算,可以加快收敛。在优化神经网络过程中,随着神经网络深度的增加,提取的特征会逐渐变得抽象,每个特征涉及到更大的感受区域,故Inception 结构中加入了5×5 的大尺寸卷积核;但大尺寸卷积核的加入也会导致计算量的剧增,故Inception 模块使用了1×1 的卷积核来进行降维。如图2 所示为降维后的Inception结构,选择1×1 的卷积核对不同卷积核提取的特征图进行融合,控制特征图通道尺寸,增加网络非线性,以此减少网络计算量。GoogLeNet Inception V1[11]证明,将完整连接层中至少一半卷积层转换为稀疏结构,能够有效解决因参数增加引起的计算量增加和过度拟合问题。
图2 Inception结构Fig. 2 Inception structure diagram
2.2 Inception结构改进
SSD 的额外层尺寸较小,包含特征信息有限,这些额外层的特征图将通过卷积运算方式产生目标零件位置和置信度信息。在目标检测过程中,尺寸较大卷积核用于大尺度目标特征的学习与预测,而小尺寸的卷积核用于小尺度目标特征的学习与预测。因此,额外层顶部特征图存在目标细节特征遗漏的情况。因此采用Inception 网络结构来替换原SSD 网络中额外层,为了能够保留更多目标原始细节特征,还对Inception网络结构进行了改善,将5×5 卷积核替换成了两个3×3 卷积核,同时减少Inception网络中每层特征图数量,保持特征图总和与原SSD 网络额外层特征图总数相同。在Inception 模块中的每个卷积层之后都使用批量标准化(Batch Normalization,BN)操作,在靠近输出端添加了两个1×1conv 卷积层,以此来降低参数数量,提高计算速度,图3 为修改后的Inception 网络结构。
图3 改进Inception结构Fig. 3 Improved Inception structure diagram
2.3 改进SSD网络实现过程
将 Inception 网络结构替换 conv6、conv7 和 conv8,它们中的每一个都被三个卷积组代替。但随着神经网络的加深,特征融合的难度会加大。为了解决这个问题,在额外层中引入了残差结构,将conv6_2 的输入和输出作为conv7_1 的输入。如图4 即为整个改进SSD 算法的实现过程:在目标检测阶段,首先将图像尺寸调整为300×300,然后输入改进SSD 网络;先通过VGG16 conv5_3 特征提取网络,输出大小为38×38 尺度的特征图,再经过两个3×3conv 特征提取网络,输出10×10 尺度特征图,然后进入Inception 特征提取网络,得到尺度为3×3的特征图;最后再经过一个卷积层输出1×1 尺度为特征图。各种尺度的特征图分别经过卷积、BN 及激活函数等一系列操作,分别实现对输入图像大、中、小三种尺寸目标的检测。输出的特征图通道数包含三类信息,分别是:位置信息、网格单元的置信度和类别信息。然后将得到的特征图集合,生成8 732 个默认框(default box)。最后,通过对三种尺度的检测结果进行非极大值抑制(Non-Maximum Suppression ,NMW),输出对输入图像的最终检测结果。
图4 改进SSD算法实现过程Fig. 4 Implementation process diagram of improved SSD algorithm
为了提高目标识别算法在遮挡情况下检测精度,在原损失函数基础上增加排斥损失[12],改进后损失函数如下:
式中:L(x,c,l,g)表示原损失函数。假设G + = {G}表示所有真实目标框的集合,P + ={P}表示与真实目标框匹配且交并比(Intersection over Union,IoU)大于0.5 的候选框集合,对于候选框P(P ∈P + )而言,指定一个IoU 值最大的目标框作为真实目标,公式如下:
对于P ∈P +而言,因为排斥损失,指定目标之外的相邻真实目标框与区域候选框产生排斥,排斥目标即为除其本身之外与其IoU值最大的真实目标:
设BP为候选框P 回归后产生的预测框为IoG。与的IoG计算如下:
因此排斥损失计算如下:
为了增加该算法在复杂环境中的适应性,对原网络结构的非极大值抑制进行了加权,在原非极大值抑制结果中,可能会包含特征的最大值,因此直接调用非极大值抑制结果不够严谨。假设所有边界框都来自于同一个对象,如果只考虑最大值结果,就会忽略掉通过保持边界框最高置信度来充分利用对象信息的问题。针对以上问题,在原来非极大值抑制的基础上进行加权,称之为非极大值加权
式中:B 表示边界框集;Ci表示第i 个边界框置信度;n 表示边界框的数量表示第i 个具有最大置信度的边界框;wi则表示每个边界框的权重。
3 Kinect相机定位
在第2 章中,目标检测模型会将目标零件以一个矩形框的形式标注,矩形框几何中心则为机器人抓取点,以标注框几何中心为基础,Kinect 相机采用眼在手外安装方式,通过彩色帧与深度信息映射函数(MapDepthFrameToColorSpace)得到其深度信息Zc,而此时目标检测框的几何中心的深度信息Z0则可以求出,然后通过相机标定和手眼标定坐标系转换,最后得到零件在机器人世界坐标系下的抓取中心(X0,Y0,Z0)。
3.1 相机标定
相机标定实则为求解几个坐标系之间转换关系,如图5所示,从第2 节的目标检测中可以得到零件的像素坐标,通过相机标定,将像素坐标系通过伸缩平移转换到图像坐标系下,然后通过透视投影转换到相机坐标系下,再通过刚体变换转换到世界坐标系下的过程。通过Matlab标定工具箱进行标定可以获得相机的内参矩阵M,如式(8)所示。
图5 相机标定各坐标系关联图Fig. 5 Correlation diagram of camera calibration coordinate systems
3.2 手眼标定
手眼标定的目的在于求解相机坐标系与机器人世界坐标系之间的转换关系,如图6 所示,将标定板固定于机械手末端执行器上,相机固定安装于其他位置,然后对标定板进行拍照。根据图6 所示,Crobot表示机器人世界坐标系,Ccamera表示相机坐标系,Cg表示机器人末端执行器坐标系,Ccal表示标定板表面像素坐标系,表示机器人世界坐标系相对于末端执行器的位姿,Tcalg表示末端执行器坐标系相对于标定板的位姿,表示相机坐标系相对于标定板的位姿表示机器人世界坐标系相对于相机坐标系的位姿。
图6 手眼标定各坐标系关联图Fig. 6 Correlation diagram of eye to hand calibration coordinate systems
因为Tcal g 是一个常量矩阵保持不变,假设机器人末端执行器移动到空间任意两个点P1,P2,则有以下位姿关系成立:
4 机器人抓取系统
机器人是整个识别与抓取系统的执行机构,考虑到本实验抓取任务属于小型零件,因此选用了NACHI 小型高速机器人MZ04 来完成对零件的抓取工作。首先根据机器人DH 参数表(表1)建立杆件坐标系,如图7所示。
表1 NACHI机器人D-H参数表Tab. 1 D-H parameter table of NACHI robot
图7 机器人连杆坐标系建立Fig. 7 Construction of robot link coordinate system
4.1 机器人正运动学建模
机器人正运动学即根据已知的各关节变量求解末端执行器在空间笛卡尔坐标系下的位姿。根据D-H方法建立起连杆坐标系之后,根据D-H 法则即可得到连杆l到连杆l- 1 的坐标系的齐次变换矩阵A1~A6,最终可求得机器人末端执行器相对于世界坐标系的位姿矩阵T6:
式中:
4.2 机器人逆运动学建模
机器人逆运动学分析是机器人运动学方程的逆解,即根据已知的末端执行器在空间笛卡尔坐标系下的位姿参数求解各个关节变量的过程,逆运动学的求解方法分为数值法和代数法两大类。本文采用的NACHI-MZ04型六自由度机器人结构满足Pieper 准则,所以本节逆运动学建模采用代数法[14]进行求解。
由正运动学建模可得末端执行器位姿,首先对其左乘A-11可得:
然后将式(15)展开,使矩阵两边对应元素相等,可求得θ1、θ3:
然后以同样的方式在式(15)基础上依次左乘,并将矩阵式展开,使矩阵两边对应元素相等可求得
在进行机器人逆运动学建模过程中,会出现多种解,但由于机器人关节与连杆之间的连接形成的多轴联动结构限制了某些关节的转动变量的范围,故某些解并不满足实际情况,应根据机器人空间范围和具体关节变量限位选取其中一组最优解作为逆运动学建模结果。
4.3 机器人轨迹规划
六自由度串联机器人常用的轨迹规划表示方法一般有关节空间轨迹规划和笛卡尔空间轨迹规划两种[15],关节空间轨迹规划是基于逆运动学,用曲线进行插值运算得到路径点,将各关节变量用时间来表示,整个过程计算简单且可避免出现机构奇异性的问题。笛卡尔空间轨迹规划需要通过逆运动学求得关节位移,用雅克比矩阵及其导数求得各关节速度与加速度,计算过程繁杂,对末端执行器形状要求较高,且容易出现速度失控问题。综上所述,本文选择关节空间轨迹规划表示方法。根据项目需求,采用了三次B 样条曲线轨迹规划方法。
三次B 样条曲线轨迹规划方法实为通过B 样条函数反算获得关节变量关于时间的函数表达式,假设某时间段三次B样条曲线函数表达式为:
式中:θ表示各关节变量;t表示时间且(0 ≤t≤ 1),F(t)表示三次 B 样条曲线基函数;Vi-1、Vi、Vi+1、Vi+2表示三次 B 样条曲线控制点。根据关节轨迹的连续性原则对上述函数进行求导推算[16],求解结果可用以下矩阵形式表示式(24):
在实际工业应用中,为了求得更加具体的B 样条函数表达式,则需要更多的控制点Vi的支撑。在后续的验证实验中,根据相关运动参数和机构参数,进行路径点已知的轨迹规划。运用Matlab 样条工具箱进行编程,对各关节变量插值运算得到机器人运动轨迹,验证结果符合实验要求。
5 机器人抓取系统验证实验
5.1 目标零件检测实验
在目标识别模型训练实验中,为了验证本次对SSD 网络的改进是否有效,在数据集制作上,针对性地选择了如图8 所示的五类零件用于测试改进SSD 网络的检测效果,并拍摄了5 000 张零件图作为数据集,其中随机选择4 000 张图像用于训练模型,剩下1 000 张图像作为测试集。图中bolt 表示M8镀锌十字大扁头螺钉,nut1表示M10尼龙防松螺母,nut2表示M8 镀镍滚花大头螺母,capnut1 表示 M8 镀锌螺帽,capnut2 表示M6镀锌盖型螺帽。
目标检测模型训练实验平台操作系统为Ubuntu16.04,基于CAFFE 框架,学习率为0.001,权重衰减系数为0.000 5,最大迭代次数为60 000,训练完成后对模型进行召回率测试得到最优迭代次数为15 000,最后选取该批次训练模型为最终模型,部分检测效果如图9 所示。在零件检测效果测试中,特意模拟了实际生产中工作台多类零件堆叠遮挡、零件装配、无关杂物堆叠干扰、变换相机角度等复杂情况下,根据检测效果可得,实验得到改进SSD模型检测效果可观,能够满足实际生产环境对零件的检测要求。
为了对比改进SSD 算法与原SSD 算法检测效果,引入测试集图像进行检测验证,检测对比数据如表2 所示,数据对比结果表明:正常情况下,检测准确率相差不大;复杂情况下,本文方法检测准确率达到97.8%,相比原SSD 算法提升11.7 个百分点,在提高复杂情况检测精度同时还保证了实时性,对复杂情况下的零件识别效果显著。
表2 改进SSD与SSD在不同环境下的检测准确率与检测时间对比Tab. 2 Comparison of detection accuracy and time of improved SSD and original SSD under different eviroments
根据实际情况,多种零件相互堆叠最贴近生产实际,故分别随机采取了500 张正常和复杂情况下多种零件相互堆叠的图像,用于测试SSD 算法和本文改进的SSD 算法的误检、漏检的比率,结果如表3 所示。从表3 可以看出,改进SSD 算法模型性能有所提升,在改进网络结构中,将三种尺度卷积核配合BN 操作分布式提取更多细节特征,在训练过程中,更加细化对特征的提取,能提升模型在遮挡情况下的检测准确率,使得改进模型得到的坐标框更加贴近真实零件边缘,减小定位坐标和真实坐标之间的误差,为后续的抓取提供更加精确的定位。在非极大值抑制中,为了能够充分利用高置信度候选框的目标信息,增加非极大值抑制加权改进以提高该模型在光线不足或过曝环境下的鲁棒性。
表3 改进SSD与SSD的误检、漏检数和检测准确率对比Tab. 3 Comparison of numbers of false and missed detection and detection accuracy of improved SSD and original SSD
通过改进SSD 模型可得到目标零件类别与位置信息,如图9(c)所示,边框的位置信息表示几何中心像素坐标(u0,v0),通过相机标定与手眼标定即可得到目标零件在机器人空间坐标系下的坐标(X0,Y0),通过 Kinect for Windows SDK 中彩色帧与深度信息映射函数可得到目标零件的深度坐标信息Z0。
图8 零件数据集Fig.8 Part dataset
5.2 目标零件定位实验
如图10 所示为集成实验台示意简图,可以看到所有识别抓取过程都在圆盘工作台上实现,在工作台上共有三个抓取区A、B、C,在每个抓取区域随机选择三个点,分别是Q1(260,50)、Q2(350,- 240)、Q3(600,- 80),将五种零件分别放置于这三个位置,将计算得到的理论值与实际定位空间坐标的平均值进行对比,如表3所示。
目标零件X轴坐标平均绝对误差为3.4 mm,Y 轴坐标平均绝对误差为2.8 mm,目标零件实际深度信息(Hr)与测量深度信息平均值(Hm)之间比对如表4 所示。由比对结果可知,目标零件定位信息比较准确,误差较小,满足目标零件定位要求。
5.3 目标零件抓取实验
目标零件抓取过程如图11 所示,首先机器人关节复位,工件伴随着圆台转动,达到识别区之后,工业相机检测到零件,圆盘停止转动,检测完成之后将位置信息传送给PC 控制端,圆盘继续转动,PC 端可以选择在A、B、C三个抓取区进行抓取操作,到达选定抓取点之后圆盘停止转动,机器人进行抓取操作,完成抓取后将零件放置待装配区域,然后再回到零点。
图9 零件检测效果Fig.9 Effect of part detection
图10 机器人实验平台简图Fig. 10 Diagram of robot experiment platform
表4 目标零件定位误差值比对Tab. 4 Comparison of positioning error values of target parts
表5 零件深度信息比对Tab. 5 Comparison of part depth information
在实验过程中,对三个区域进行抓取成功率测试,每个区域每个零件随机定点抓取10 次,共五类零件,即共抓取150次。如图12 所示为每个区域的平均抓取成功率,从图中可以看出,A和B区域抓取效果较好,C区域因为处于机器人极限抓取位置边缘且抓取位姿要求较高,故抓取效果不及A、B区域。Bolt 零件抓取效果不及其他零件,因为Bolt 零件形状比较不规则,对装配机器人的末端执行器形状及抓取位姿要求较高,故抓取效果不佳。
图11 机器人抓取过程Fig.11 Robot grasping process
图12 抓取实验平均抓取成功率Fig. 12 Average grasping success rate in grasping experiment
6 结语
针对汽车零部件回收工厂在实际复杂工况下,零件检测效果不佳导致不能实现精准抓取从而影响生产效率的问题,本文设计了一个基于深度学习目标识别模型的机器人识别与抓取集成系统。通过该系统,可以对复杂环境下杂乱零件进行识别分类,准确计算出零件空间位置信息,并完成分拣工作。同时对该系统进行识别、定位到抓取等实验,实验结果表明,目标零件抓取平均成功率达95.2%,本文所构建的机器人抓取系统能够针对不同零件实现实时、准确、可靠的分拣任务。在接下来的研究中,将增加抓取障碍,在轨迹规划中添加避障规划,使其工作状态更贴近生产实际。