邱 益, 张志浩, 梁 杰
(郑州大学机械与动力工程学院,郑州 450001)
机器人抓取技术是现代工业生产中重要的组成部分,广泛应用于物流、制造、服务、医疗等领域[1-2]。传统的机器人抓取不能适应待抓取目标无序、散乱的分布,将深度学习技术和现有机器人抓取技术相结合可解决上述不足[3]。随着近些年人工智能技术的发展,越来越多的算法开始应用于生产实践中,例如目标检测算法在自动驾驶中的应用[4-6]。文献[7]中采用Tensorflow开源框架实现了基于MobileNet SSD[8]的垃圾分拣实验平台,取得良好效果,但文献仅介绍了如何复现过去成果。文献[9]中以人机对弈为背景开发了工业机器人实验教学平台,该平台采用的是传统机器视觉技术,有待进一步结合基于深度学习的新算法。
本实验平台以工业标准件抓取为研究背景,采用深度卷积神经网络实现了标准件识别、定位以及抓取姿态预测。该实验平台将算法理论和应用结合,采用开源的神经网络框架实现算法,采用STM32配合步进滑台完成硬件搭建,可用于机器人或人工智能的教育实践,可将人工智能算法和工程实践相结合,在实践中锻炼学生对于知识的理解与应用[10-12]。
抓取平台主要由单目工业摄像机、龙门式抓取平台、搭载GTX1070显卡的计算机、STM32单片机等组成。单目工业摄像机用于采集工作台上待抓取零件的图像信息以引导机械手准确抓取;三轴龙门式抓取平台负责执行抓取动作,抓取平台的末端执行器是两指式气动机械爪,实现物体的夹取;搭载GTX1070显卡的计算机负责处理摄像机所采集到的图像,通过运行目标检测算法和抓取姿态预测算法来返回待抓取目标的类别、位置和机械手的抓取姿态;STM32单片机负责将计算机运算的结果转换为龙门式抓取平台的动作指令来控制机械手完成对应的抓取动作。抓取平台的硬件设计架构如图1所示。
图1 抓取平台的硬件架构
目标检测技术作为机器视觉领域中基本的且极具挑战性的研究方向,随着神经网络的应用,目标检测技术在当今强大算力支撑下展现出令人惊艳的技术美学[13]。应用深度卷积神经网络为计算子的目标检测框架已经能够在保证检测精度的同时做到实时检测。虽然现有框架在通用数据集上展现出较优的检测性能,但是对于工业应用领域仍然存在特殊场景下的短板,这表现在低纹理信息微小零件存在难以检出的缺陷。
为提高现有框架在工业零件抓取应用中的短板并尽可能地提高其检测速度,本文综合应用以下4种技巧提高现有框架的性能:
(1)为降低卷积运算的参数量,将内卷积作为基本运算子替代SSD目标检测算法中原有的卷积运算,实现主干特征提取网络的重构;
(2)为缓解小目标零件在浅层检测时语义信息不足而深层检测时特征信息丢失严重的矛盾,采用双线性插值将高层特征融合于低层次特征后再作为有效特征层进行位置回归和分类;
(3)为轻量化目标检测框架并提高运算速度,在主干特征提取网络引入Focus模块并剪裁掉后3层卷积块;
(4)为保证先验框更加契合本项目的实际数据集,采用K-means聚类数据集,然后将聚类结果作为依据重新设计先验框的分布。
优化后的目标检测模型网络结构如图2所示。图2中Focus模块置于输入张量和卷积块之间,其目的是在不丢失输入张量信息的前提下实现下采样。该计算模块的计算过程可以描述如下:首先对输入三通道张量进行切片采样,其采样规则采用间隔采样,即每隔1个像素进行1次采样。用这样的方式采样出5个小的张量。然后再将采样后的张量沿通道方向上拼接,拼接起来的图片相对于原先的RGB三通道模式变成了12个通道,即最终得到了没有信息丢失情况下的2倍下采样特征图。该模块的计算过程描述如图3所示。
图2 目标检测模型网络结构图
图3 Focus模块计算图
原版SSD目标检测算法的主干特征提取网络采用的是VGG16网络,该网络存在参数量大且特征提取能力不强的缺点。为实现增效降参的目的,采用内卷积替换掉原版中标准的卷积运算子并采用特征金字塔的设计思想,实现多层级特征图的融合。主干特征提取网络的结构如图4所示。
图4 主干特征提取网络的结构图
内卷积是对现有标准卷积运算的重构,内卷积与标准卷积所不同的是:它实现了卷积核在通道上的共享,即实现了通道不变性和空间特异性[13]。采用该计算子可以在保证特征提取性能的同时大幅减少卷积神经网络的参数冗余,进而实现目标检测框架的轻量化。内卷积可表示为:
式中:H为内卷积计算子的卷积核;X为输入张量;k代表后续卷积核大小;G代表involution操作的分组数;C为特征图的通道数。
内卷积运算的卷积核并非固定,而是依赖于输入张量。内卷积计算子的卷积核生成公式为
式中:W0、W1代表对输入张量的一系列线性变换,这里采用1×1的卷积核实现对输入通道的缩放;函数β为批标准化和非线性激活。内卷积的运算过程见图5。
图5 内卷积计算图
由于小目标物体在经过多次卷积和下采样后会丢失其信息,特别是对本数据集中的小沉头螺钉,经过多次下采样后仅剩几个像素。很自然的想法是,将浅层的特征作为有效特征图进行检测,但是浅层特征图的语义信息不足,难以满足检测要求。为缓解以上矛盾,设计了如下计算方法:
式中:Xi为有效特征层,从浅层到高层将主干网络的3处节点作为有效特征层;函数U为双线性插值运算;函数P为最大池化运算,以上2个函数其目是调节输出特征图的大小使得两层特征图可进行张量拼接;函数C为卷积核大小为1×1的卷积运算;函数B为类别预测计算和包围框回归运算,均采用标准卷积运算实现。
由于目标检测算法仅能够识别目标物体类别和回归最小包围框,针对抓取的工况要求,目标物体相对于机械手的角度对抓取成功率的影响也是巨大的,特别是针对细长类零件,机械手的抓取角度异常重要。以细长类零件螺栓为例,可将其在工作台上的姿态离散的分为4个类别,分类情况如图6所示。由于是离散的真值姿态空间,所以可将姿态估计问题转化为图像分类问题,设计如图7所示的卷积神经网络对工作台中的零件进行姿态预测。
图6 螺栓姿态分类
图7 标准件姿态预测网络结构图
该姿态预测神经网络采用在内卷积运算子和激活函数之间布置批归一化,以保证每个卷积块的运算结果处于激活函数的敏感区,避免由于激活函数饱和而出现神经网络模型在训练过程中难以收敛的问题[14]:
为保证该姿态预测神经网络的训练效果,采用交叉熵损失函数作为该神经网络训练的损失函数。由于该标准件数据集中零件的姿态可以离散地分为4种,将这4种的姿态进行独热编码后即可引入交叉熵损失,即
式中:k为分类的种类数;li为样本独热编码标签;yi为神经网络前向传播运算结果。
选择10个不同类别常见标准件为样本,拍摄其在工作台上不同姿态、位置上的图片进行标注形成训练数据集。训练样本集信息汇总见表1。
表1 训练样本集信息汇总表
训练平台采用GTX1070显卡,经过500轮的训练即可达到较为理想的识别效果。训练结果和识别效果如图8、9所示。
图8 训练样本集信息汇总
图9 目标识别效果
由于样本中长宽比较小的零件的姿态并不会对抓取造成影响,所以仅需将样本集中具有细长特性的标准件取出制作样本集进行抓取姿态估计即可,训练样本集信息汇总见表2。
表2 实验A测量数据
本模型采用Tensorflow2神经网络库完成搭建,硬件环境为AMD 3500X处理器和GTX 1070显卡。训练优化方法采用AdaBound优化器。训练迭代次数为600次,批处理参数设置为100,初始学习率设置为0.001。该模型的评价方法采用准确率来评价。
训练的损失函数和验证集准确率变化曲线如图10所示。
图10 损失函数和验证集的准确率变化曲线
本工业零件抓取实验系统采用三轴龙门式机械手,抓取场景为标准件散乱、不堆叠地分布于平面工作台上。抓取实验平台采用眼在手上的布置方式,通过标准标定板标定出相机内参以及像素坐标和机械手坐标之间的映射关系后即可应用于抓取。抓取实验平台实物如图11所示。
图11 抓取实验平台实物
每次将10个不同类别的工业零件混合后随机散乱地丢放于平面工作台上,然后机械手回零点拍照并完成识别,最后通过机械手将零件抓取到对应的物料框中。重复上述实验过程并记录抓取、分拣结果,将实验结果汇总于表3(实验次数为100)。根据汇总结果可知,对于长宽比较小的零件,影响抓取成功率的主要因素是目标检测算法能否识别出其类别和位置。对于细长类零件,除以上因素外还会受到姿态预测是否正确的影响。另外,以上10分类标准件中,自攻螺钉和沉头螺钉的识别率相对较低,考虑是由于自攻螺钉长宽比较大和沉头螺钉过小的原因所致。
表3 零件抓取实验结果汇总表
本文基于深度学习的目标检测技术和工业零件抓取相结合,实现了工业生产的智能化分拣,改进了传统工业机械臂不能自动识别、定位目标物体的不足。该工业零件抓取实验系统应用了基于内卷积的轻量化特征提取网络、基于上采样和特征图级联结构的特征融合机制以及根据K-means聚类样本来重设先验框等技巧。本文的算法采用TensorFlow深度学习框架实现。抓取平台的硬件部分由单目工业摄像机、三轴龙门机械臂、搭载GTX1070显卡的计算机和STM32单片机等部分构成。该工业零件抓取实验系统将传统嵌入式控制技术和人工智能技术有机结合,实现了现有工业生产线抓取的智能化。同时,本实验系统所采用的算法框架完全开源,可用于研究人员视觉算法验证和人工智能教学。