基于机器视觉定位的表壳镶钻机
2015-12-02殷惠莉陈秋强
殷惠莉,陈秋强
YIN Hui-li1 , CHEN Qiu-qiang2
(1.华南农业大学 电子工程学院,广州 510642;2.华南理工大学 自动化科学与工程学院,广州 510641)
0 引言
表壳镶钻,就是往表壳孔中镶嵌钻石。镶钻过程的主要步骤是:定位表壳孔、定位钻石、往表壳孔内滴胶水和镶嵌钻石。该过程的关键技术是定位技术,即是对表壳孔和钻石的精确定位。表壳孔和钻石大多为圆形,对表壳孔和钻石的定位即是对圆心的定位。圆心定位是工业应用的一个基本问题,在很多行业都有应用,如PCB(Printed Circuit Board)定位标志检测、几何尺寸测量和自动化罐装系统等等。
1 表壳镶钻机
表壳镶钻机是结合了图像处理技术和数控技术的机器视觉系统。机器视觉系统一般有三个主要的部分:获取图像的光学成像系统、抽取图像特征的图像处理与分析系统、执行控制任务的输出或显示系统[1]。表壳镶钻机的视觉系统构成如图1所示,而表壳镶钻机系统的原型实物如图2所示。
图1 机器视觉系统构成图
系统定位的过程如下:首先使用工业相机采集表壳孔和钻石的图像(如图3、图4所示);然后通过圆心定位算法定位表壳孔中心和钻石中心在图像中的坐标;最后用已标定好的摄像机参数将图像坐标转换成机床坐标。
图2 表壳镶钻机原型实物图
图3 表壳图像
图4 钻石图像
2 圆心定位算法研究
圆心定位是表壳镶钻机的关键技术之一,定位的精确度决定了表壳生产的正品率。传统的圆心定位算法以圆Hough变换最为常用。鉴于该方法资源需求大,检测速度慢,许多改进的Hough变换算法和其他圆心检测算法被提了出来。如焦圣喜[2]等人通过分析圆周点与邻域内其他点的位置关系,判断出圆周边缘的凹凸性及圆心方向;并以圆弧中心线的累加结果确定了圆周的圆心。魏新国[3]等人利用基于矩不变性的亚像素边缘提取算子,获得圆的亚像素边缘轮廓,在此基础上通过最小二乘法进行圆拟合求得圆的参数方程;吴慧兰[4]等人利用SIFT算法的特征检测器在圆心处具有极值响应的特性进行圆心定位。新的方法提高了圆心检测的速度,同时也增加了算法的复杂性。
表壳镶钻机的圆心定位操作和镶钻操作是分离的,系统对于定位的实时性要求不高。随着硬件的升级和计算成本的降低,Hough变换的运算速度也得到了提高。为了算法的简洁性和开发的高效性,表壳镶钻系统采用圆Hough变换进行圆心定位。经过实验验证,Hough变换的速度已经满足系统要求。
Hough变换的基本思想是空间转换:将图像空间比较难的定位问题转化为参数空间相对简单的极值点搜寻问题。圆形C 可以用下面的方程描述:,其中(a,b)是圆心在图像空间中的坐标,r是圆的半径。将以上的方程转化为参数空间的方程为:,此时的参数空间有三个参数(a,b,r),因此为三维参数空间。
传统的Hough圆变换以一定的分辨率对三维参数空间进行量化,然后使用一个三维累加器描述三维的空间。对于任何一个可能的半径值r ∈[rmin,rmax],算法在ab平面上寻找可能的圆心点。为了提高运算速度,表壳镶钻系统为用户提供简单易用的操作界面,并通过人工辅助得到圆的半径大小,从而将三维参数空间降为二维参数空间。
3 无效钻石的过滤
钻石散落在黑色的铝制料盘上,其位置和摆放状态都是随机的。现定义非正立的钻石和粘连的钻石为无效钻石。非正立的钻石包括倒立的和倾斜的钻石;粘连的钻石即有两颗以上的钻石靠在一起。如图5所示。
抓取无效钻石进行镶钻会生产出表壳次品。钻石在被抓起和放置于表壳孔的整个过程中朝向保持不变,非正立的钻石放置在表壳孔时也是非正立的;若钻石A和B粘连在一起,机械机构在抓取A时可能会微微碰触到B,则B之前定位的结果无效,机械结构抓取不到B会导致表壳孔漏镶钻石。
对于镶钻这道工序来说,镶嵌了非正立钻石或者漏镶钻石的表壳都是次品。为了降低次品率,系统需要在圆心定位算法的基础上再设计一套无效钻石过滤算法。
图5 无效钻石图像
3.1 非正立钻石的过滤
钻石的反面对光的反射不及正面强,表现在图像上就是非正立钻石比正立钻石暗,也即是说,非正立钻石的灰度值之和远远小于正立钻石的灰度值之和。定义每个圆心定位点所在的圆形区域(钻石半径已知)为一个单元。过滤非正立钻石的算法如下:
2)计算所有单元灰度值的均值Sa;
3)设置一个灰度差值的阈值ST,计算每个单元的差值
由于正立钻石数量较多(料盘的设计更有利于正立钻石的稳定),灰度平均值Sa跟正立钻石的灰度值之和相近。当,则第i个单元是正立的钻石;当,则第i个单元是非正立的钻石。
3.2 粘连钻石的过滤
判断一颗钻石是否与其他钻石粘连的最简单方法是对原图像进行腐蚀。腐蚀作用于二值图像会使得图像“收缩”或“细化”。这种收缩和细化的程度与腐蚀时所使用的结构元素有关。根据钻石在图像中的大小选择一个9×9的圆形结构元素对原图像进行腐蚀操作,腐蚀后每颗钻石图像都会收缩。
如果原本是独立的钻石,则腐蚀后其四周都是黑色的背景;如果原本是粘连的钻石,则腐蚀后仍然有粘连(因为钻石的半径远远大于9),故其周围不全是背景。根据腐蚀后圆形边缘的环形区域像素值之和即可判断是否有粘连,像素值之和为零则没有粘连;像素值不为零则有粘连。示意图如图7所示。
图6 粘连钻石过滤算法示意图
过滤粘连钻石的算法如下:
1)使用一个9×9的圆形结构元素对原图像进行腐蚀操作;
2)以每个定位点为圆心,腐蚀后圆周为内环,计算一定宽度(可调整)的环形区域的像素和Sp;
3)若Sp≠0则为粘连钻石,应予以过滤。
4 实验结果
本文提出的表壳镶钻系统运行在英特尔i7处理器(2.6GHz)的计算机硬件平台上。为了验证Hough变换的可行性和过滤算法的准确性,本文以系统实际运行时采集到的多幅图像进行测试。
图7 Hough变换的识别结果图
图7(a)是Hough变换对表壳图像的识别结果图,由于表壳在镶钻时只有中间一部分的表壳孔处于水平面,只需准确定位中间的圆心即可。图7(b)是Hough变换对钻石图像的识别结果图,Hough变换检测的是圆形,因此,倒立的钻石和粘连的钻石也被识别了出来。
图8是过滤算法的运行结果图,过滤算法能够很好地过滤掉无效钻石定位结果,从而提高定位的精度。
图8 过滤算法的运行结果图
表1 Hough变换与过滤算法运行时间
从表1数据可以看出,识别钻石图像时,Hough变换的运行时间不超过0.2s,增加了过滤算法后虽然运行时间增加了,但能够明显地提高系统的定位精度。
5 结论
设计了一套基于机器视觉定位的表壳镶钻机系统。系统通过霍夫变换定位图像中表壳孔和钻石的圆心位置,并使用形态学腐蚀操作设计了对无效钻石定位结果的过滤算法。过滤算法虽然增加了定位时的运算时间,但是却大大提高了系统的定位精度。
[1]刘金桥,吴金强.机器视觉系统发展及其应用[J].机械工程与自动化,2010;1(158):215-216.
[2]焦圣喜,肖德军,阚一凡.霍夫变换算法在圆心视觉定位中的应用研究[J].科学技术与工程,2013;13(14):4089-4093.
[3]魏新国,张广军.基于亚像素边缘提取的圆心定位方法[R].中国光电技术学术交流会,2002.
[4]吴慧兰,刘国栋,等.基于SIFT算法的圆心快速精确定位技术研究[J].光电子·激光,2008;19(11):1512-1515.