潘海鸿,陈家春,章 旭,李权文,陆生齐,陈 琳
(1.广西大学机械工程学院,南宁 530004;2.广西安博特智能科技有限公司,南宁 530007)
位姿识别技术是机器视觉技术应用在自动化工业生产中的重要一环,在生产的复杂场景中利用技术手段将目标的形状、轮廓或表面特征从背景在提取出来,通过算法去分析识别目标物体并获取目标物体的大致位姿信息,依此完成定位从而实现后续抓取分拣和装配等操作。目前针对于目标位姿检测识别方面已有不少学者和研究人员做了大量的研究工作。叶伯生、朱颖等[1-2]通过图像处理获得工件轮廓,依据最小矩形估计确定工件的空间形位。该方法简单快速,但要求前景与背景分明,便于提取前景轮廓。杨小冈等[3]通过计算带匹配图像与模板的灰度分布相似度在图像中寻找目标,若需要实现对包含旋转角目标的识别,则需建立多角度的模板进行迭代匹配,角度精度越高,需要模板数量也越多。该灰度匹配方法依赖迭代匹配的方式获得精确角度,存在耗时长的问题;孙兴龙等[4]提取待检测物体的模板及目标图像特征、模板与目标图像特征匹配、求解匹配参数获取旋转角度等;该匹配方法所提取的特征可以为尺度不变点[5]、颜色特征[6]或部分图像[7]等。但同样存在计算量大、耗时长等问题,且要求被匹配二者间具有相同足够的清晰特征。李红卫等[8]基于深度学习技术在图像特征的提取和分割识别准确率上都具有良好的表现,可应用于图像的角度和位置识别,但其需要大量样本制作数据集,存在准备时间较长、准备工序繁琐等不足。
以上方法可适用于大多数分拣物品相对简单、背景单一的分拣线,但面对工业中应用滚筒线分拣铸造工件时则稍显不足。该工况会存在着:图像背景复杂,前景背景分离困难;工件表面不规则喷油,成像与模板图像相差较大,且清晰度质量不一;工件种类多样且摆放方向不定等难题。为此,提出一种基于Opencv视觉的新型去背景提取工件最小包围轮廓的方法(RBEC),实现在工业滚筒线上对工件角度的准确识别。该方法首先对工件图像进行最大最小滤波适当模糊图像,再与原图像进行像素相与操作去除工件与相邻滚筒间形成的阴影,其次通过自定义像素去除算法对滚筒线残留进行去除,最后提取剩余工件特征的最小包围轮廓信息获取工件在滚筒线上的偏角。本文最后在实际的工件缸盖分拣流水线上验证该方法,并与传统的尺度不变特征变换(scale-invariant feature transform,SIFT)、加速稳定特征法(speeded up robust features,SURF)和傅里叶-梅林法进行效率以及准确性的对比,以验证本文所提方法的有效性。
RBEC算法主要分为3个模块:①去工件阴影及背景,工件具有一定高度时光源照射在其上会在前景与背景之间产生阴影,步骤1解决工件与背景间形成的阴影区域的影响;②去辊道边缘残留,滚筒长时间受污与磨损造成的滚筒面每次成像不尽相同,步骤2解决提取工件轮廓受滚筒残留的影响;③提取工件最小包围轮廓信息,步骤3通过工件轮廓信息得出此时工件在滚筒上的偏角。
图1 RBEC方法框架
对输入带工件的辊道图像(m1×n1)(图2)进行最大和最小滤波处理,为去除工件阴影同时保留工件特征,对图像做如下处理:
(a) 带工件辊道图像 (b) 空辊道背景图像图2 输入图像
g2(i,j)=g1(i,j)-g(i,j)
s.t. 0
(1)
式中:g(i,j)为处理前原图像对应i行j列位置像素灰度值,g1(i,j)为滤波处理后图像对应i行j列位置像素灰度值,g2(i,j)为处理前后图像对应i行j列位置像素灰度值相减所得灰度值。
为突出图像特征信息,据式(1)对遍历像素点计算所得图像进行对比度强化处理。遍历像素点计算图像像素灰度值总和:
(2)
式中:SG为图像像素灰度值总和。
将图像像素值进行灰度值分类,灰度值相同的像素点放入同一类中:
(3)
式中:Sk为满足灰度值为k的像素灰度值总和。
对图像进行对比度强化处理,将图像像素灰度值重新映射至0~255范围内:
(4)
通过对比度强化处理后,使得图像主要轮廓特征得以突出保留,获得特征强化图如图3所示,同理对空辊道图像进行上述步骤处理获得空辊道特征强化图如图4所示。
为保留前景(工件),去除背景(辊道),空辊道特征强化图与带工件辊道特征强化图遍历像素点做像素相减操作:
g4(i,j)=g3(i,j)-g2(i,j)
s.t. 0
(5)
式中:g3(i,j)为空辊道图像对应i行j列位置像素灰度值,g2(i,j)为带工件辊道图像对应i行j列位置像素灰度值,g4(i,j)为空辊道图像对应i行j列位置像素灰度值与带工件辊道图像对应i行j列位置像素灰度值相减所得灰度值。
经步骤5处理后对图像进行二值化,得到二值强化后的特征图像(图5)。
图5 二值化后特征图像 图6 去辊道间隙噪点后特征图像
由于二值化后的图像中辊道间隙保留下了过多细微的噪点,为去除噪点同时保留下工件特征,对其进行均值滤波后再次进行预设固定阈值图像二值化,去除辊道边缘中间细微噪点同时保留工件特征信息。同时对图像进行适当开运算(腐蚀-膨胀),以增强工件特征间的紧密性(图6)。
为方便后续处理,将图6均分为上下两部分依次进行处理。
设在图像上半部分的任一点像素可表示为P(i,j,g),其中i,j为该像素点对应的位置,即该点所在的行数和列数,g为该点所对应的像素值。遍历图像像素点,若该点像素值为255,即图中白点,则视其为“键点”,并对其进行处理:
(1)求取该键点与图像水平中心线“邻近”程度,其求取公式为:
(6)
式中:DW为评估该点与中心线的邻近程度值,i为该点对应所在的行数,img.rows为该图像的总行数。
(2)统计该键点左右水平直线一定像素点距离范围内的像素值为255的像素点数量并进行归一化处理:
(7)
式中:Pp为该键点左右一定像素点距离范围内像素点值为255的数量占比大小,Wpn为该键点的左右直线距离范围内像素点值为255的白点数量,Pd为选取的向左或向右的像素点距离。
(3)对式(1)与式(2)求取的DW与Pp各赋予一定比例权重再求和值,得出评估该键点取舍评估值,与预先设定阈值对比,判断该点的保留(该键点像素值保持不变)或者舍弃(键点像素值置为0)。
PJ=(A*DW+B*Pd)
(8)
式中:PJ为评估该键点保留或舍弃的评估值,A为DW的权重(本文此处取0.5),B为Pp的权重(本文此处取0.5)。PJ若大于设定的阈值(本文此处取0.6),则初步判断该点为工件上的关键点,应给予保留,若小于设定的阈值,则判断为辊道上残留的边缘点,应去除。对于图像下半部分的处理,DW的求取公式更变为:
(9)
其余处理操作与上半部分相同。图6经上述的处理后,其结果如图7所示。
图7 键点评估后图像 图8 开运算处理后图像
为去除和弱化辊道上孤立的小点,对图7进行开运算(腐蚀-膨胀)处理后如图8所示,图像中的滚筒边缘残留已得到大面积的去除,工件的表面特征可基本保留下来。
为去除图像上最后残余的滚筒边缘点,根据辊道边缘残留的间隔特征以及工件上点的紧密性特点,对图像上存在的任一键点P(i,j,g),g=255,有:
(10)
式中:d为距离键点P点的左右像素距离,n为先验经验选定需连续判断的像素点个数,N为需判断的像素点个数中像素点值为255的个数总和。依据辊道实际情况,在此处选定d为80个像素点距离,n为20个连续像素点。若N=0,表明该键点两侧一定像素距离内均是像素值为0黑点,则判断该点为辊道上的残留点,应去除该键点;反之N≠0,则表面是工件上的特征点,给予保留。图8经上述步骤处理之后,辊道残留剩余边缘得以去除并较好的保留下了工件的表面特征(图9)。
图9 辊道边缘去除后图像
为识别工件的角度,对图像9进行“膨胀-腐蚀”运算,并通过OpenCV库函数中的findContours函数提取图像中的最小包围轮廓信息,将轮廓信息反馈在原灰度图像上(见图10中黑线方框)。
图10 工件的最小包围轮廓 图11 工件偏转角的提取
提取包围轮廓的4个角点0,1,2,3,求得相邻角点间的中点A,B,C,D。连接AC、BD,AC与BD之间的交点为工件的中心点、同时比较AC与BD直线之间的欧氏距离,距离最长的直线斜率(图11中BD)则为工件的偏转角度,至此根据BD偏转角及包围轮廓角点位置信息可获得工件在图像中的旋转角度及位置信息。
使用玉柴发动机缸盖智能识别分拣-拾放流水线(图12)作为实验验证平台。该分拣-拾放平台技术指标为:①能适应工件不规则喷油;②满足工件方向不定工况;③处理时间小于200 ms;④多种类工件识别角度误差均小于±1.5°。使用RBEC法对流水线上无序摆放缸盖工件的角度验证。实验硬件环境为CPU i7 8700,内存16 G,海康威视MV-CE050-31GM相机;实验软件环境为Win10,Visual studio 2015,Opencv3.4.1。
图12 发动机缸盖识别分拣-拾放流水线
RBEC方法输入为m1行n1列的带工件辊道图像以及同样为m1行n1列的空辊道图像。在启动分拣流水线时,触发空拍信号,由相机对空辊道进行拍照获取空辊道图像;在工件到达分拣工位后,触发拍照信号,相机对带有工件的辊道进行拍照获取带工件辊道图像;待工件被抓取离开相机范围后再次触发空拍信号;下一个工件到达分拣工位时,触发拍照信号,以此往复。
实验为避免RBEC方法的偶然性和验证该方法的鲁棒性,对进入该分拣工位5种表面特征、长宽各不相同的工件在辊道宽度允许的范围内进行任意角度摆放拍摄,其中每种工件各随机摆放20个不同的角度,共计100个角度进行RBEC法的角度识别验证(图13)。经上述RBEC法中3个步骤进行处理,得到每个型号的角度误差数据与平均耗时,如表1所示。
(a) A30 (b) DK3 (c) JAN (d) F30 (e) KJ1图13 部分不同类型工件测试图像
表1 RBEC法工件角度验证结果
由表1可知,RBEC方法在处理这类方向不定且受不规则喷油影响的工件时,均能够出色的满足分拣平台的技术指标,处理时间远小于200 ms,最大识别角度误差也均小于1.5°。
为了验证RBEC方法在面对辊道上的复杂工件表面的角度识别具有一定优越性,本文分别使用SIFT法[9]、SURF法[10]以及傅里叶-梅林法(FMT法)[11]对上述100个不同的角度的工件进行配准求其角度,其配准结果如表2所示。
表2 100次实验统计结果
由表2可知,相较于SIFT法、SURF法以及FMT法,RBEC法在保证角度识别效率的同时可有效保证角度识别精度及稳定性。而由于光源的非均匀性,工件表面成像质量会随工件姿态变化发生改变,出现工件表面特征丢失及模糊等情况(图13),致使SIFT、SURF及FMT法均出现误差增大导致识别失败的情况。SIFT方法配准的角度及位置结果依赖模板图像特征点与目标图像特征点间的投影变换计算,但由于其匹配点众多且特征点受外界因素影响较大,配准结果不稳定且计算耗时较长;SURF方法基于SIFT上效率有了较大的提升,但仍存在计算时间较长、受外界干扰影响较大等不足;FMT方法匹配效果较差,对于这类带较强干扰类型的工件图像更易出现匹配失败情况,同时其角度的计算误差也较大。RBEC方法不依赖工件表面特征,在较强的干扰下可实现对辊道无序摆放工件角度的高效正确识别。
本文提出一种基于辊道去背景化提取工件最小包围轮廓的方法,克服了工业辊道现场高干扰、多种类和无序摆放工况下工件的位姿识别效果差和识别时间长的问题。具体包括:
(1)采用滤波后的背景图像与工件图像进行像素相减,有效去除阴影与大部分背景干扰;
(2)对去背景后剩余的滚筒边缘残留采用自定义判断像素权重占比算法进行去除,保留工件特征区域像素点,计算步骤简单,工件背景完全去除;
(3)对工件区域进行形态学连通并基于最小包围轮廓进行工件轮廓提取获得工件在辊道上的旋转角度和位置信息。相较于传统的SIFT法、SURF法和FMT法,RBEC法在复杂工件表面识别的效率和鲁棒性上均得以有效保证。