基于Zernike距的金刚滚轮轮廓检测算法*
2015-11-27赵莹博沈南燕
赵莹博 沈南燕 李 静
基于Zernike距的金刚滚轮轮廓检测算法*
赵莹博 沈南燕 李 静
(上海大学 智能制造及机器人重点实验室上海200072)
为了满足金刚滚轮廓形测量系统的高精度测量要求,提出了一种基于各向异性扩散滤波的Zernike距亚像素边缘检测方法。该方法是先利用各向异性扩散滤波代替高斯滤波形成新canny算法进行金刚滚轮图像粗定位,再利用Zernike距算法对边缘进行亚像素定位,实现图像边缘的亚像素检测。试验表明,该算法抗噪性强,检测精度高。
边缘定位 异性扩散滤波 Zernike距
目前,金刚滚轮广泛应用于磨削领域,对于其廓形的检测,主要有三种方法分别为:离线三坐标测量法、复印法、在机测量法。离线三坐标测量法的使用范围有限,并且无法保证定位精度;复印法中的碳板粉末容易堵塞砂轮的容屑空间,而机器视觉检测方法可以避免这些缺点。机器视觉测量技术凭借着其非接触、速度快、稳定性好、精度高等优点正逐渐成为精密检测领域中的新技术。在机器视觉检测的过程中,被检测工件(如金刚滚轮)边缘的精度往往影响着检测结果的精度。因此,研究边缘检测算法对于精密检测具有重要的意义。
边缘是滚轮图像前景与背景的分界线,也是灰度值发生剧烈变化的位置,它包含着许多用于识别的有用信息。传统的边缘检测算法只能在像素级水平对图像的边缘进行定位,随着工件检测精度要求的不断提高,传统的像素级边缘检测算法已经不能满足用户的需求[1]。相对于提高检测系统硬件的分辨率来说,通过软件实现高精度边缘检测的方法(亚像素算法)更简单、有效、低成本。目前常用的亚像素边缘检测方法有传统的距方法,但传统的Zernike距算法没有考虑模板效应,提取的边缘较粗、定位精度低[2],针对这些缺点,文献[3,4]推导了Zernike距7 7、9 9模板系数,实现了较高的精度定位。文献[5]利用Robert算子与Zernike距算子进行亚像素边缘检测,在提高精度的同时也减少了运行时间。
本文在分析传统Zernike距算法的基础上,提出用基于各向异性扩散的canny边缘检测算子结合Zernike距算子实现工件图像的亚像素边缘检测。以基于各向异性扩散的canny算子进行边缘的像素级定位,再用7 7的Zernike距算子进行亚像素边缘的精确定位。该算法提高了边缘提取的精度,同时具有良好的抗噪能力。
1 改进的Canny算子检测图像的像素级边缘
图像平滑的目的是去除图像中的噪音并提高图像的信噪比。传统的canny算法采用高斯滤波器对图像进行平滑处理,而高斯滤波器往往会过渡平滑导致图像的边缘模糊,以致提取到图像边缘不准确。为了提高canny算子边缘粗定位的精度,可以利用各向异性扩散滤波器代替高斯滤波器进行图像平滑[6]。其中各向异性扩散的P-M方程如公式(1)所示:
2 Zernike距检测图像的亚像素级边缘
2.1 图像Zernike Moments定义
从(6)可看出,一幅图像旋转前后模保持不变,只有相角发生变化,这个性质称为Zernike的旋转不变性。利用Zernike旋转不变性可以容易的计算出边缘检测需要的参数,进而实现边缘的精确定位。
2.2 Zernike Moments边缘检测原理
对图1所示的模型计算可得:
结合公式(6),可以得到圆心到边缘的垂直距离为:
结合文献[9]中对模板效应的修正可以得到亚像素边缘检测计算公式:
3 改进算法
基于Zernike距的亚像素边缘提取算法提取到的金刚滚轮图像边缘有较高的精度,但是较粗,并且计算复杂,运行时间较长,不能满足实时在机的检测要求。为了在复杂环境下实现金刚滚轮轮廓的高精度检测,本文提出了新算法,该算法先用各向异性扩散滤波器平滑图像,在去除噪音的同时保持边缘的锐化,以便提取精度较高的金刚滚轮图像初始边缘点,再用Zernike距对初始边缘点进行亚像素处理,来实现图像边缘的亚像素提取。本算法的步骤如下:
(6)否则,返回到第(4)步,取下一像素点计算。
4 实验与分析
为了验证本文提出的算法在金刚滚轮轮廓提取过程中的有效性和优越性,设计了3组试验。利用MATLAB2013b工具对各向异性扩散滤波和Zernike距相复合的亚像素边缘检测算法进行实现。本文采用型号为AVT STINGRAY504B工业检测专用CCD摄像机、DTCM230-64远心镜头以及DH0-FL10884-W光源,在固定的工作距离和相同的光源照明条件下采集金刚滚轮的轮廓图像。如图2(a)所示。
第一组试验对采集到的金刚滚轮轮廓图像进行边缘检测如图2,将本文算子和Zernike距、canny算法做实验比较。从实验结果可以看出canny算子提取的边缘有噪音的影响如图2(b)所示,Zernike距算子检测到的边缘较粗如图2(c)所示,影响到局部边缘的定位,而本文改进的Zernike距算子检测到的边缘效果更好,如图2(d)所示。
图2 不同算子对金刚滚轮图像的边缘检测图像
第二组实验是向采集的金刚滚轮轮廓图像中加入均值为零、方差为0.01的高斯噪声并进行边缘检测如图3(a)所示,并用本文算子和Zernike距、canny算法分别对加噪的金刚滚轮轮廓图像进行处理,其结果如图3所示。
图3 不同算子对含有高斯噪声金刚滚轮边缘检测图像
本实验的目的是为了验证本文算子具有更强的滤除噪音能力,从图3(b)可以看出canny算子具有较多的噪音未去除,且有些点不连续,去噪能力较差;Zernike算子对噪声敏感,且边缘较粗如图3(c)所示;而本文改进Zernike距算子具有很强滤除能力,并且取得的边缘比较细,能够较高精度的局部定位。
第三组实验是对一幅自制256×256的二值图像进行处理,来检测本文边缘检测算子在有高斯噪声存在情况下的精度。256×256的二值图像的第98行到157行和第98列到157列区域为0,其他为1,如图4所示。另外,在此二值图像中加入均值为零、方差为0.01的高斯噪声。
图4 二值图像
从表1的实验数据说明本文提出的算法可以将检测精度定位到亚像素级,相比Zernike距算法精度有所提高。
表1 不同算子提取的正方形边缘点坐标比较
第四组实验是为了比较不同算子的运行效率,各个算子处理金刚滚轮图像的运行时间如表2所示。从表2可以看出本文算法在运行速度上稍微慢了一些,但是该算法应用于金刚滚轮轮廓在机检测。相比于在机检测中进、退刀等其他操作来说,该算法的运行时间几乎可以忽略不计。所以说该算法并不会影响金刚滚轮轮廓在机检测的效率。
表2 三种算法时间比较
5 结语
随着工业信息化、自动化的发展,像素级的图像处理精度已经不能满足实际生产的需要,为了将边缘检测精度提高到亚像素级别,本文提出了一种将改进canny算子与Zernike距相结合的快速亚像素边缘检测算法,该方法是利用各项异性扩散滤波canny算子提取质量较好的像素级边缘,再经过Zernike距的处理获得亚像素边缘。经过试验证明,该算法具有以下优点:(1)提取的金刚滚轮轮廓清晰且边缘较细;(2)提取的金刚滚轮轮廓精度高;(3)具有很强的抗噪能力,能够满足复杂的工业环境,实现金刚滚轮轮廓的在机检测。但是由于两种算法结合,使运算更加复杂,运算速度较低,能否满足在线检测有待进一步研究。
[1] 张宝峰,王明跃,朱均超.一种零件图像亚像素边缘检测算法[J].计算机仿真,2014,31(2):288-292.
[2] 李金泉,王建伟,陈善本等.一种改进的Zernike 正交矩亚像素边缘检测算法[J].光学技术,2003,29(4): 500-503.
[3] 齐英剑,池娟,张彬.基于Zernike矩亚像素边缘检测的改进算法[J].西安邮电学院学报,2010,15(5):75-78.
[4] 高世一,赵明扬,张雷等.基于Zernike正交矩的图像亚像素边缘检测算法改进[J].自动化学报,2008,34(9): 1163-1168.
[5] 罗敏,王琰.一种利用Roberts-Zernike 矩的亚像素边缘检测方法[J].Computer Engineering and Applications,2011,47(5).
[6] Li J,Ding S. A research on improved canny edge detection algorithm[M]//Applied Informatics and Communication. Springer Berlin Heidelberg,2011: 102-108.
[7] Chao S M, Tsai D M. An improved anisotropic diffusion model for detail-and edge-preserving smoothing[J]. Pattern Recognition Letters,2010,31(13):2012-2023.
[8] 解斌,许黎明,赖小平等.基于阈值分割与Zernike正交矩的曲线磨削边缘检测方法[J].机械制造,2014,52(7):68-70.
[9] 武阿明,张奇志,周亚丽.基于小波和Zernike边缘提取[J].北京信息科技大学学报(自然科学版),2013,4:009.
[10] 罗敏,王琰.一种利用Roberts-Zernike矩的亚像素边缘检测方法[J].Computer Engineering and Applications,2011,47(5).
﹡资助项目名称:基于堆内构件关键加工过程及轴类零件高效加工过程智能化研究
课题编号:13D21101601