付泽民 王志进 熊鹏鹏
(上海应用技术大学机械工程学院,上海物理气相沉积(PVD)超硬涂层及装备工程技术中心,上海 201418)
在材料冲压成型的过程中,由于各种无法预料的外力作用,导致压件最终呈现出不同的形貌特征,而这正是判断压件合格与否的标准。因此,能否高效准确地判断出该形貌特征是否符合工业生产的要求是制约金属压件批量生产的关键要素。视觉检测技术作为一种无损伤的非接触式视觉检测技术,具有检测精度高、效率高、可靠度高等优点[1-2],成为近年取代低效率、高成本的传统人工抽检方法的最好选择。对此国内外的学者都有研究,陈舒萍等[3]利用视觉检测实现对金属加工温度的测量,实时监测工件的温度和轮廓尺寸变化;Scholz Friedrich等[4]研究了视觉检测技术,使用羧基官能化的金纳米棒,成功地应用于生物分子的灵敏视觉检测;万子平等[5]将机器视觉应用于零件轮廓测量,实现了对零件的快速精密测量;Manali Nandy等[6]研究了基于机器视觉,通过使用磁性纳米乳剂,成功实现了对碳钢缺陷的稳定性检测。
本研究在HALCON的基础上,成功设计了一种可行的视觉检测方案,用以解决不规则压件的多特征检测问题,从而实现对压件的高效和精准检测。通过采集100个压件产品利用上述方法进行检测,检测的准确率达到97%,满足了工业上对此类精密产品的高效检测要求。
本技术方案的实现由计算机系统、光源系统、相机系统、被检测的压件和压件传送系统等组成,在传送带把被测物传送到指定位置,结合光源系统和相机系统,准确地采集被测物的图像信息,再将图像信息传递给计算机进行相应的图像处理。图像处理通过相应的灰度化处理、线性变换,再使用阈值分割、转换为XLD轮廓,进行轮廓分割。根据分割后的轮廓进行依次判断是线、圆还是椭圆,从而拟合相应的轮廓,检测出相应的特征。通过对压件进行相应的特征检测,从而判断是否符合工业的生产要求,再结合机械臂进一步处理。如果符合,可以通过传送带直接传送到合格产品指定区域;反之,可以触发机械臂对不合格品进行抓放到其他位置。图1所示,为系统的整体设计。图2为技术路线设计图。
图像采集是把压件的真实图像通过相机系统转化为可以被计算机处理和存储的数字图像形式,在HALCON软件中直接调用open_framegrabber算子,利用grab_image算子抓取压件图像再进行保存[7],采集的图像如图3所示。
采集图像后进行灰度化处理,再对图像进行对比度拉伸,使用scale_image算子,从而突出感兴趣的目标或灰度区间,相对地,就可以抑制不感兴趣的灰度区间[8]。线性变换将图像的灰度区域分割为若干条线段,一条线段对应一个线性变换关系式,从而作用于该灰度区域的变换。如下式:
(1)
式(1)通过线性变换将感兴趣的灰度范围从[a,b]拉伸到[c,d],而其他区域就会被压缩。区域[a,b]就是需要转换的灰度范围,而c和d是斜率,通过调节节点位置和控制斜率,可达到对任意灰度区间的拉伸和压缩。拉伸在数字图像处理过程中可以增强图像的对比度,其增强后的效果如图4所示。
为了将压件从背景中分割出来,此时采取二进制阈值处理。通过选择一个阈值为初始估计值,然后不断迭代更新这一估计值[9],直到满足给定的条件为止,方法如下:
(1)选取一个合适的灰度值T作为阈值估计值。
(2)使用阈值T将灰度图像划分为两个区域:R1和R2。
(3)对灰度区域R1和R2分别求像素的灰度平均值:μ1和μ2。
(4)计算新的阈值:
(2)
(5)重复步骤(2)~(4),直到满足迭代的阈值T小于先前定的估计值为止。
其分割语句为:binary_threshold(ImageScaled, Region, 'max_separability', 'dark', UsedThreshold),ImageScaled为需要阈值的图像,Region是处理后的区域,max_separability表示最大限度的可分性,dark是所选的区域比直方图平滑多一点,而UsedThreshold是自动阈值中选择的阈值值。
过阈值分割后的图像效果比较好,完全可以提取压件的轮廓,采用算子gen_contour_region_xld(Region, Contours, 'border_holes'),Region为转换区域,Contours为转换得到的XLD轮廓,border_holes是以区域的外边界点为边缘点构成XLD轮廓。提取压件的XLD轮廓后,需对轮廓进行分割,算子:segment_contours_xld(Contours, ContoursSplit, 'lines_circles', 8, 7, 2),Contours是需要进行分割的轮廓,ContoursSplit分割后的的轮廓组合,line表示用直线段和椭圆弧分割,8是轮廓平滑参数,7是第一次用Ramer算法时的参数,而2是第二次逼近轮廓时的参数。其图像轮廓如图5所示。
经过上述操作后,压件的轮廓已经分割成若干个小的轮廓,对分割后的轮廓需要确定其属性,从而判断其是圆、椭圆还是线段。使用算子:get_contour_global_attrib_xld(),对应得到Attrib的值,其轮廓对照关系如表1所示。
表1 轮廓对照关系表
当Attrib=-1时就属于直线段,使用直线拟合算子fit_line_contour_xld()拟合轮廓中的直线,再结合算子gen_contour_polygon_xld()获取直线段的起止点的坐标值,通过坐标值,就可以测量压件再图像中的像素尺寸,从而再转换得到压件的实际尺寸。
当Attrib=1时就属于圆,对圆的拟合采用最小二乘法进行圆参数拟合,用算子fit_circle_contour_xld()将边缘轮廓线拟合为标准圆,获取圆心坐标及半径。圆方程为:
(x-x0)2+(y-y0)2=r2
(3)
令A=2x0,B=2y0,C=r2-x02-y02,从而得到圆的多项式方程为[10]:
Ax+By+C-x2-y2=0
(4)
基于待拟合圆的N个数据点坐标为(xn,yn),n=1,2,…,N,定义各点的拟合误差:
en=Axn+Byn+C-xn2-yn2
(5)
形成如下的目标函数:
(6)
对式(6)求一阶偏导数,并令其为零,整理后则可知向量[A,B,C]T的最小二乘解:
(7)
基于获得的[A,B,C]T,则可以求得圆的参数:
(8)
椭圆拟合采取算子fit_ellipse_contour_xld(),并结合gen_ellipse_contour_xld()算子一起使用,可以拟合为椭圆,并检测出椭圆的长半轴和短半轴,同时包括圆心。拟合得到图像如图6所示。
通过上面的拟合计算,再借助算子distance_pp(RowBegin, ColBegin, RowEnd,ColEnd,Distance1)和distance_pl(line_row[7],line_col[7], line_row[10],line_col[10],line_row[11],line_col[11], Distance2),distance_pp表示两点(RowBegin, ColBegin)和(RowEnd, ColEnd)之间的距离来测量线段的尺寸,而distance_pl表示点到直线的距离,(line_row[7], line_col[7])就是点,而(line_row[10], line_col[10])和(line_row[11], line_col[11])就是线段的起始点和终点。通过这些算子可以测出压件轮廓上一些特征的重要参数。如图7所示,图7a为压件的线长尺寸参数,图7b为圆半径和压件的几何参数。
本次实验分别对100个压件进行检测,包括90个合格品和10个不合格品,检测结果见表2,其中符合检测要求的有97个,占总体的97%,绝大多数满足工业的生产标准。
表2 压件尺寸检测正确率
本文针对不规则的压件形貌检测,在HALCON软件的基础上,提出了一种基于视觉的不规则压件检测方案。该方案首先对采集的压件图像信息进行灰度化处理,然后使用线性变换函数对图像进行拉伸变换,利用迭代阈值分割图象和获取压件的整体轮廓;再分割轮廓,采用最小二乘法对压件的特征进行拟合求取压件的尺寸、特征圆信息、椭圆信息和线长信息;以满足工业上对此类精密产品的高效检测要求。本实验采集了100个压件产品进行检测,其准确率达到97%,可以应用于实际的工业生产,同时为压件的质量检测提供一定的指导意义。