朱 颖, 黄宇钧, 张亚婉, 唐艳凤, 屈福康
(广州华立学院,广州 511325)
视觉感知使搬运机器人从传统的不可移动的工业机器人,逐渐发展为可实现走向自由移动、智能分拣、往返搬运的移动机器人。利用RGB-D深度相机获得场景的彩色图和深度图像,实现对场景的三维重建,获取目标位姿信息等被广泛应用于智能协作机器人[1-2]。精准取物是搬运作业机器人的基本功能之一[3]。目标物料的识别与定位直接决定着机器人取物精度。
目标识别与定位主要有基于图像处理技术、基于机器学习的图像分割技术与分类器、基于深度学习的神经网络算法等[4]。文献[5]提出结合CIE-Lab颜色空间和深度信息对物体进行分割识别;文献[6]通过形态学与Canny边缘检测相结合的算法识别目标物体,并获取其中心坐标,但是缺少目标姿态的识别;文献[7]提出基于连通域Blob分析与神经网络分类器相结合的方法对随机摆放的多类型工件进行分类识别和定位,该算法的实效性不太理想;文献[8]通过SURF与Grabcut相结合算法识别目标物体,利用模板匹配求取目标物体形心的世界坐标;文献[9]利用改进遗传算法GA与最佳直方图(KSW)熵融合的方法对目标识别;文献[10-11]对Faster RCNN的快速神经网络进行改进对小目标物体的识别与定位有较高精度并具有时效性。这些算法大部分缺少对目标姿态的识别,不能满足机器人对随机摆放的目标进行准确作业的要求。
本文针对单目相机和双目相机识别精度低造成目标物料定位精度低等问题采用RGB-D相机进行图像的采集与深度信息获取。目前基于深度学习的卷积神经网络算法大多实时性和精确性不够[4],针对搬运机器人目标检测与定位的实时性问题,提出了基于HSV颜色空间的改进Otsu分割算法对物料进行识别;针对作业环境复杂,物料摆放多变等问题,提出了Graham与旋转卡壳相结合的算法寻找最小外接矩来获取目标物料的准确位姿。
目标物料识别是物料抓取的第一步,主要包括物料信息采集与预处理、物料的识别。目标识别步骤一般可分为:图像采集、颜色空间选取、图像预处理、图像分割与识别等。本文物料目标识别流程如图1所示。
图1 目标物料识别步骤
本文采用RGB-D深度相机进行图像的采集,选取最接近人眼视觉的HSV颜色空间进行目标物料自动阈值分割,对分割后的特征集进行高斯滤波与形态学处理,获取更精准的特征进行识别。
本系统采用乐视RGB-D深度相机对图像进行采集与获取视觉信息,RGB-D相机由RGB镜头与深度镜头构成,能获得场景的纹理图像与深度图像。RGB镜头采用常见小孔成像镜头,深度相机是一种主动成像设备,通过红外发射器发出预定义红外模式,红外接收器接收回波,根据三角测距原理计算出目标点距离镜头的深度,RGB-D相机结构如图2所示。
图2 乐视深度相机的结构
结构光测距对投射光源进行了编码和特征化,相机拍摄的图像是被编码光源投影到物体上并经过了物体表面深度调制过的。结构光采用三角视差测距,物体距离越远则精度越高。
机器人环境变光强条件显著影响拍摄图像的RGB颜色空间像素值,从而影响物料识别算法的精确性和稳定性,本文采用HSV(Hue,Saturation,Value)颜色空间物料进行识别。HSV模型是根据颜色的直观特性模型,也称六角锥体模型,可通过调节H分量来确保物料颜色特征的识别精度,调节S分量使其适应不同色调光照环境,调节V分量适应不同光照强度,提升环境自适应能力。
提出“H窄,S宽,V动态”的新双阈值选取方式,通过H(色相)分量阈值范围调小的方式来确保物料颜色特征的识别精度,调节S(饱和度)分量的阈值范围扩大适应不同色调光照环境,提高识别的精度、鲁棒性以及算法能力对环境的适应能力。通过V(亮度)变化的阈值范围,适应图片中稳定的光照,让视觉在光照发生变化时也能进行及时的调节,提升环境适应能力。
本文实验物料识别对色相的精度要求较高,故不进行滤波处理直接在HSV颜色空间进行图像分割,为满足机器人实时性要求采用阈值分割算法对物料进行分割。
本文对色相H进行图像分割,通过对H进行细调使H阈值范围变小,可精确将特定颜色特征进行分割。亮度V相对独立,可通过后期动态调整图片亮度均值或者中值,使其适应各种光照环境。本实验系统物料的材质固定,在不同环境下其饱和度变化不大,不同色系的冷暖光照射将改变局部饱和度,可通过饱和度阈值适当加大来增强鲁棒性。本文采用Otsu算法即最大类间方差法进行自动阈值分割,最大类间方差阈值的求解过程不需要人为设定其他参数,由计算机自动选取。并对分割出来的特征集,进行面积、形状等特征分析获取目标集。
Otsu算法对直方图具有明显双峰的图像效果理想,而物料的局部亮斑和阴影很容易产生噪声并影响分割目标的完整度,需对分割出的目标进行去噪与断裂补全处理。本文采用改进组合滤波算法对噪声进行滤波与补全处理。
首先采用高斯滤波算法对小噪声点进行滤波,并保持边缘。高斯滤波器对噪声处理效果由滤波窗口尺寸大小决定,窗口大则会导致图像变得模糊丢失信息;当窗口较小,则去噪效果不理想。选择3×3的滤波窗口对物块图像进行实验。在去除较小噪声的同时,图像边缘轮廓也比较清晰。
为了对断裂进行补全、消除较大噪声对图像信息的干扰、同时保证图像的完整性,本文采用对噪声比较敏感的形态学低通滤波器OC-CO对分割后图像进行处理。数学形态学用腐蚀、膨胀、开运算、闭运算及其组合以及不同形状和长度的结构元素对信号进行处理。
开闭和闭开运算组合并取平均可构成形态学低通滤波器OC-CO即:
(1)
其中:变量si为滤波器的输入信号,变量Yo为滤波器的输出信号,变量g为滤波器的结构元素。
机械手准确抓取除了需精准识别出物料,还要对物料进行定位和姿态识别,获取物料的准确位姿。根据待抓取物料是规则对称的特点,为避免出现互补角度分辨不明的情况,本文提出改进几何矩算法获取物料的中心坐标与姿态。结合目标最小外接矩的中心坐标与深度相机获取目标准确的深度信息。
改进几何矩算法通过计算几何矩的质心获取物料中心像素坐标和区域凸包质心形成的矢量线角度计算物料旋转角度。本文利用“旋转卡壳模型”和“凸包效应”对位置识别算法进行改进。本文提出Graham与旋转卡壳相结合的算法寻找最小外接矩。
凸包是一个计算几何学中的概念,也称最小凸包,是指包含集合S中所有对象的最小凸集[12]。物料的凸包是由凸多边形包围物料轮廓而形成的又一轮廓[13]。在二维空间中一个点集S的凸包是指包含S的最小凸集合,集合X(x1、x2、x3……xn)的凸包S为:
(2)
常见的平面凸包求法有Graham扫描法[14]、Jarvis步进法、中心法、水平法等[15]。计算二维点集凸包的经典算法有增量法、卡壳模型,就是凸包的最小外接矩形,四条线确定一个多边形的外接矩形模板,如图3所示。
图3 卡壳模型
Graham算法步骤[16]为:
1)找出参考点P0;
2)对其他点按极角进行排序,逻辑上形成了一个简单多边形;
3)删除简单多边形上的凹点。
其过程如图4所示。
图4 Graham算法步骤
基于“凸包”法能够节省更多的计算资源,由于有些多边性端点的获取困难,计算量大等缺点,如当识别物体为圆弧形时,就难以输出凸包点,将造成程序错误导致无法运算,本文对凸包算法进行改进,通过两条相互垂直的旋转线对目标进行扫描,获取上下左右的最大值和最小值(minP,xmaxP,yminP,ymaxP)形成“卡壳”集合,并根据确定的坐标与斜率确定直线,由两条直线相交获取矩形的4个顶点,从而算出矩形面积,求出最小面积即为物料的最小外接矩形,通过最小外接矩形计算出中心坐标。为了简化计算量提高速度,扫描旋转时不区分长宽,旋转角度竖直方向范围为(90°,180°)、水平方向为(0°,90°),在姿态识别时加上长宽比进行约束。具体步骤为:
1)起始时竖直方向以角度θ0=90°、水平方向角度为θ0-90°的两条直线对二值图进行扫描,获取minP0,xmaxP0,yminP0,ymaxP0;
2)计算由minP0、xmaxP0、yminP0、ymaxP0四个坐标和斜率确定的四条线围成的矩形面积,并记录坐标、角度和面积;
3)将2)获取的矩形框逆时针旋转1°,重复1)和2)直到旋转完90°;
4)识别并输出最小面积,确定最小外接矩形;
5)根据最小外接矩形4个顶点,确定物料的中心;
6)计算外接矩竖直方向边长Ly与水平方向边长Lx之比,获取物料姿态旋转角度。Ly:Lx>1,则物料姿态旋转角为θ;反之,则物料姿态旋转角为θ-90°。
当深度相机与RGB镜头相融合,消除视觉漂移解决深度图像与彩色图像不能重合的问题。物料对红外的遮挡将在背景上形成阴影,深度图像将不进行物料的二次识别,直接通过外接矩进行深度信息的获取。
本文取相机到物料前表面中心的距离为物料的深度D,在抓取时,对机械臂的运动坐标进行定值补偿,简化运算与识别。具体实现如图5所示,首先获取外接矩形框内的深度信息,考虑到物料并非为规则的矩形其边缘与矩形框存在空隙,该空隙对应的深度信息不是物料的深度信息需剔除;本文在外接矩中心坐标附近选取一个圆,以排除非物料像素的干扰,再将该圆内的深度求均值获得深度D。
图5 深度信息的获取
本文在基于ROS的移动搬运机器人上搭载RGB-D相机,对搬运物料进行识别与位姿定位实验。通过与文献[5]的物料识别算法对比来验证本文识别算法的精确性;而对于物料位姿定位,通过对比传统几何矩算法来验证该算法的精确性,并改变物料状态和环境进行反复实验,验证该算法的有效性。
对比文献[5]中基于CIE-Lab颜色空间的阈值分割算法,该算法通过双阈值选择器,选出特定阈值的色块。该算法能够快速计算出色块的位置和大小,能对目标物料进行快速定位。当存在与目标物料同材质块状干扰时,分别采用基于CIE-Lab阈值分割算法和基于HSV颜色空间自动阈值分割算法进行识别,其识别效果如图6所示。
图6 优化算法对强干扰的排除
从图6中可得原图中存在众多干扰,如阴影、目标物料同颜色的小蓝块、反光等光照不均等。文献[5]中算法精度比较低,需要事先取阈值,受环境影响较大,易造成误识别或识别失败,无法消除阴影蓝斑效应等影响,虽能分割出目标物料,同时也分割出很多伪目标,且对于反光部分目标缺失。基于HSV颜色空间的最大类间方差法能有效去除阴影等影响,“H窄S宽V动态”阈值选取能够同时解决鲁棒性与精确性的问题,但与目标物料相同的小蓝块也被分割。本文算法进一步进行面积和形状处理去除小蓝块。其效果如图5所示。
当光照发生变化时,如图7(a)所示,物料部分被自身阴影遮蔽,环境亮度却很强。识别出的物料易形成高反光区形成噪声、遮蔽处产生断裂甚至容易产生巨大的断裂误判为两个或多个不同的物体,如图7(b)所示。本文改进算法识别效果如图7(c)所示,改进后算法通过改进组合滤波算法对噪声进行滤波与补全处理有效消除噪声点的影响,同时补全阴影断裂。
图7 局部阴影识别效果
对实验一识别到的物料进行定位与姿态进行识别,其效果对比如图8所示。
图8 物料姿态识别效果
由图8可得,传统几何矩算法只能定位物料的中心坐标,无法识别物料姿态;当出现干扰时,其抗干扰能力弱,输出的中心坐标失真;当无明显干扰时,传统算法得到的外接矩也不是最小矩,其中心坐标也存在偏差。采用本文算法得到最小外接矩,对物料定位更精准,并能识别其姿态。
对不同位姿的物料进行识别,如图9所示。
图9 物料不同位姿识别效果
由图9可以看出,采用本文算法可对不同位姿有效识别。该算法在不同环境下能准确识别物料的大小、位置、倾斜角等,具有较高的准确度和鲁棒性。
本文采用RGB-D深度相机搭建移动机器人的视觉系统,对搬运物料进行图像采集与深度信息获得。
结合HSV颜色空间的特点,采用改进后的Otsu分割算法对目标物料进行分割,然后采用高斯滤波与形态学低通滤波器OC-CO的组合滤波器对分割的特征集进行去噪与断裂补全处理,最后对目标物料进行识别。实验结果表明,该算法对存在与目标物料类似材质干扰、光照发生变化、物料部分被自身阴影遮蔽、高反光区形成噪声、遮蔽处产生断裂等复杂环境均能快速准确对目标物料进行识别。
提出了改进几何矩算法对物料的位置和姿态进行识别,RGB-D深度相机结合几何矩获取深度信息。实验结果表明,该算法对物料在不同环境下均能准确识别出物料的大小、位置、倾斜角、深度信息等,具有较高的准确度和鲁棒性。