基于卷积神经网络的改进机械臂抓取方法*
2020-03-04魏国亮
蔡 晨 魏国亮
(上海理工大学光电信息与计算机工程学院 上海 200093)
1 引言
近年来,计算机视觉在机器人[1]、视觉现实、物体识别、深度图像绘制等领域得到了广泛的应用。最近一些研究已将计算机视觉应用于机械臂抓取任务中。传统的机械臂方法基于人工示教,为避免外界环境的干扰,需将机械臂固定在某一抓取位置。与之相比,基于计算机视觉的机械臂抓取方法以计算机为大脑感知外界环境,以机械臂为操作手完成响应,对复杂场景中的不确定因素有较好的处理能力[2]。
基于计算机视觉的机器人抓取结合了模式识别技术和图像处理技术,通过对采集设备获取的图像进行分析和处理,完成对目标的位置提取和方位估计,然后由机械臂接收信息并完成抓取任务。以往的抓取方法主要依赖于手动特征如ORB[3]、SIFT[4]等,这些方法对人工特征有较高的要求,对目标物体的形状、大小、角度等因素较为敏感。因此,传统的手工特征提取方法具有较弱的泛化能力,不能稳定地应用于多变的场景中。除此之外,基于目标局部转换的方法[5~6]也取得了一定的成功。
在过去的几年里,我们见证了深度学习在计算机视觉领域的一场革命。深度学习直接性地从像素级数据中学习到图像的内在联系与深度信息,在许多场景理解任务中取得了空前的性能,在目标检测、物体分割与分类等任务中的表现极为突出。卷积神经网络(CNN)的起源可追溯至数十年前[7],得益于并行计算设备与大型数据集的发展、在线资源可访问性能[9~10]及其在建模[8]中的优势,CNN取得了快速的发展。最近,CNN也被用于学习如何检测机械臂最优抓取姿态。
在本文中,我们利用文献[11]中的算法框架。采用基于深度网络的两级级联系统完成机械臂抓取中最优位置的检测。第一步为选择一组包含目标对象的候选抓取区域。第二步在前一步的基础上检测并获得最佳抓取位置。为了追求更高的准确度,我们在机械臂抓取网络的建立过程中做了以下工作:
1)将Mask R-CNN应用于机械臂抓取,以获得抓取目标像素级分类信息,得到准确目标位置。
2)在对RGB-D图像进行预处理的过程中引入引导滤波,并采用逆距离加权方法优化抓取中心的深度信息,以获得更优的抓取位置。
3)将本结构应用于COCO和自建数据集。与现有的抓取框架进行对比,分析网络的性能,并通过实验验证了该方案的可行性。
2 相关工作
目标检测通常采用基于区域建议的方法,Ross Girshick[12]提出的一系列CNN算法(R-CNN)是目标检测领域中的里程碑。R-CNN及其派生(Fast R-CNN,Faster R-CNN等)借助CNN具有良好的特征提取和分类性能的优点,采用启发式方法完成分类与回归。R-CNN系列网络虽显著地提高了检测精度,但嵌有RPN的2-stage结构框架决定了其不具备实时性的性能。基于区域的全卷积网络(R-FCN)[13]通过位置敏感分数图来解决目标检测的敏感定位问题,并构建了基于R-FCN的2-stage目标检测框架,使检测精度和速度上取得了良好的平衡。YOLO[14](You Only Look Once)均匀地在图片的不同位置进行密集抽样,采用不同尺度和长宽比,利用CNN提取特征后直接进行分类与回归。完成端到端的检测,从而大大提高了速度。其派生YOLO2保持原有速度的同时提高了精度[15]。SSD(Single Shot-MultiBox Detector)[16]在多尺度特征图采用卷积核来预测候选框的类别分数、偏移量,对不同尺度的目标均有较高的检测精度。
机械臂抓取目标物时依赖于精确的坐标定位,然而基于边界框的物体检测只是粗略的估计物体的位置,不能满足机器人准确抓取的要求。实例分割是对图像中的每个目标进行检测,并且为每一个目标计算出一个像素级别的掩模,这样可以更加准确地获取物体的目标位置。Mask R-CNN[17]将一个实例分割任务合并到Faster R-CNN[18]检测框架中,从而形成一个多任务学习模型,该模型为每个实例对象预测一个边界框和一个分割掩码。
3 最佳抓取位置的检测
系统框架和算法流程如图1所示。该系统主要包括RGB-D摄像机Kinect 2.0和UR3机械臂。摄像机垂直悬挂在桌子上方。该方法主要由目标检测部分、改进中心点算法和坐标系匹配三部分组成。
图1 实验框架和算法流程
3.1 网络框架
为了避免传统机械臂抓取中的局限性,降低操作的复杂度,本文利用Mask R-CNN获取目标的掩模图像。网络以校正后的RGB图像作为CNN特征提取网络(如ResNet)的输入,根据参数设置生成多个候选框,称为兴趣区(ROI)。区域网络(RPN)和边界框回归(BB)对ROI的前景和背景进行分类,选择合适的阈值,得到一组前景概率较高的区域。通过RoI Align层运算,使输出特征图与输入图像的位置信息相对应。然后,利用三个分支网络获取前景概率较高的区域内目标对象的类型、位置和掩码信息,完成目标物体的实例分割,使机械臂抓取的姿态估计能够精确到像素级。图2显示了Mask R-CNN的网络结构。
图2 Mask R-CNN的网络结构
3.2 中心坐标计算
根据现实中物体的固有特性,我们假定物体表面光滑,其深度值不存在随机不规则变化。使用高斯滤波等线性滤波算法中的滤波核与待处理的图像本身边缘信息无关,而引导滤波考虑了原图像的边缘信息。在对深度图像的平滑过程中,以原RGB图像作为引导图像,添加到深度图像的过滤过程中。所述滤波图像的色度通道包含与所述引导图像的亮度通道一致的连续边缘。基于此,我们选择引导滤波器对深度图进行去噪处理。
图3 导向过滤过程示意图
我们将深度图像P作为输入图像,将颜色图像I作为引导图像,如图3所示。引导函数表示了支持窗口中输出和输入之间的线性关系。式(1)为输出图像Q计算公式。
其中,wk表示以K点为中心的支持窗口的区域,i表示wk的像素索引,点i的输出值qi通过其输入值Ii的线性变换得到,ak和bk代表该线性函数的参数。
对于抓取中心的选择,我们采用常用的重心法,其中心位置的获取如式(2)所示。
其中,Dx和 Dy表示x和y的范围,hi表示 xi或 yi的值的数目。
根据中心位置深度信息的提取,考虑了周围像素的深度信息,加权后得到确定Z轴值,替代直接读取二维位置的深度值作为三维的值的方法。式(3)给出了反距离加权法的精确表达式。
其中,λi表示 zi的权重,定义如式(4)。其中 di是中心点和位置i之间的距离。
3.3 坐标系匹配
在进行坐标系匹配之前,首先需要用张正友标定方法[20]对摄像机进行标定,从而得到摄像机的内参数和外参数。
为获取机械臂坐标系下目标物体的三维位置信息,我们需完成目标坐标由图像坐标系至世界坐标系、世界坐标系至机械臂基座坐标系的转换。
第一步为图像坐标系至世界坐标系的转换。先将针孔成像模型的齐次世界坐标退为三维坐标系,如式(5)所示。其中,R和t为该转换过程的旋转矩阵与平移矩阵。
由于 det(m)=axay≠0,det(R)=1,式(5)可转化为式(6)。即利用内参,外参和物体中心的像素坐标,可获得目标在世界坐标系中的坐标。
第二步为世界坐标系至机械臂基座坐标系的转换。在匹配之前,首先需要确定世界坐标系的方向。如图4(a)所示,通过图像的坐标系方向来定义世界坐标系的方向。后将机械臂TCP移动到标定板坐标系的原点,记录坐标 Ar:(xar,yar),进行若干距离的移动后,定义坐标Br:(xbr,ybr),在向量AB任一侧存在点Cr:(xcr,ycr),并根据条件DC与AB垂直,在AB上确定D点。我们定义Ar为AB在机械臂坐标系下的原点坐标,AB的方向表示世界坐标系在机械坐标系的x方向,DC的方向表示y方向,如图4(b)所示。大部分时候A,B,C三个点不足以与世界坐标系匹配,根据匹配方法,我们会得到4对不同的表现形式,图4(c)和4(d)为Br在第四象限,Cr在AB的顺时针和逆时针方向位置的实例。
图4 坐标匹配的示例图
由于机械臂抓取需要感知物体深度,故将深度相机采集到的视差转换为世界坐标系下的z轴坐标。由机械臂手工示教所得参数,将世界坐标系下z轴坐标转换至机械臂基座坐标系下,从而得到机械臂进行抓取的三维目标位置信息。
4 实验与分析
4.1 实验环境
为了评估本算法在现实世界中的可行性,本文进行了多种机械臂抓取实验对比。本实验利用UR3作为抓取设备,Kinect 2.0作为数据采集设备。
4.2 基于Mask R-CNN的目标检测与分割
在对目标检测网络进行训练以及微调时实验环境为Ubuntu系统,并使用显卡GTX1080对训练过程进行加速。Mask R-CNN模型所依赖的深度学习框架是基于带有Tensorflow后端的Keras。模型训练所需设置的超参数如下:1)采用SGD对Mask R-CNN进行微调,初始学习率设置为0.001;2)网络每次迭代的样本的批大小(batch size)为64,网络在训练集上共迭代275次;3)权重衰减项weight_decay为0.0005,无阻尼Nesterov动量为0.9。
本文利用不同尺度下的样本图像检验Mask R-CNN目标检测模型对不同尺度目标的检测能力,验证模型的精度。图5为目标对象在不同采集高度下的检测准确率。实验结果表明,当图像中目标物体的尺寸适中时,精度相对较好;当样本图像中物体的尺寸过大或过小时,精度相对较差。
图5 不同尺度下的检测结果
4.3 坐标系转换实验
本文采用引导滤波对深度图进行降噪处理,使深度图更为平滑。图6中显示了引导过滤的预处理对比深度图。
图6 导向滤波的结果对比
本文对瓶子的两种位姿进行对比实验,放置形态如图7所示。Kinect被放置在三个不同的高度。通过机械手的示教,可以分别在600mm和720mm、500mm和630mm、750 mm和890 mm三个不同姿态的高度上检测出瓶子的最佳抓取深度。
图7 瓶子的两种位姿
表1显示了不同位姿下改进方法得到的深度值与中心坐标点对应的深度值的比较,可见考虑周围信息后抓取位置更接近最优。
表1 深度计算的对比实验结果
5 结语
本文提出了一种基于Mask R-CNN的机械臂抓取最佳位置检测框架,实现了对抓取目标的精确分类和定位。与传统的机械臂抓取方法相比,该算法增强了目标定位的准确性。采用改进的中心点算法,对深度图进行滤波降噪处理,得到更精确的三维抓取位置。同时,通过标定得到摄像机的内参与外参,从而完成目标位置由图像坐标系至机械臂基座坐标系的转换。本文将深度相机放置在工作台顶部,利用UR3型机械臂进行抓取实验。实验结果证明了基于Mask R-CNN的机械臂抓取框架的有效性。