杜绪伟 陈 东 马兆昆 刘方全
(1.青岛科技大学机电工程学院 青岛 266061)(2.中车青岛四方机车车辆股份有限公司 青岛 266111)
视觉分拣的本质就是通过机器视觉来替代人眼来进行判断和测量,图像边缘检测作为数字图像处理技术的重要组成部分,已广泛应用于机器人、目标定位和视觉导航等领域[1]。在工业化中为了实现对工件的判断,通常需要对工件进行边缘检测来获取其具体信息。边缘保存了图像大量的重要信息,而且边缘检测也是最近机器视觉领域的重要课题,运用也越来越广泛。传统的边缘检测算法,如Sobel 算子[2]、Roberts 算子[3]、Prewitt 算子[4]、Kirsch 算子[5]等虽然实施起来比较方便,但是这些算子检测的结果都达不到既定要求。Laplacian 算子[6]虽然在精度方面做出了很大的改进,但是对于噪声还是比较敏感,因此在处理图像的实际效果中并不明显。John Canny[7]在1986年提出最佳边缘检测算子的三个准则并在此基础上提出了Canny 算法,有效平衡了定位精度、最小响应、检测时间的边缘检测最优标准。传统的Canny 算法虽然被普遍的运用,但是算法在滤波部分采用传统的高斯滤波来进行预处理,在清除噪声的过程中会过度清除掉图像的边缘信息,造成部分边缘信息丢失进而降低边缘检测的精度,而且固定的双阈值也导致了该算法的适应性较差[8]。所以传统的Canny算法还需要进一步的改进才能得到更好的运用。
Canny 基于边缘检测提出了三个判断准则[9],而他也在此基础上进一步发展创造出了Canny 算法。Canny 算法采用二维零均值高斯函数,并对图像矩阵执行卷积运算,实现图像的消除噪声和平滑处理。选取的高斯函数的表达式为
Canny算法采用2×2的模板来计算灰度图像梯度[10]。通过其在X方向、Y方向的像素的一阶导数,可以确定像素的梯度幅值。
虽然传统的Canny 算法得到了广泛的运用,但是其仍然存在很大的问题[11]。
1)基于2×2 的邻域进行计算,对噪音比较敏感,而且容易丢失边缘信息并且易检测出大量干扰信息,影响检测精度;
2)采用固定的双阈值,致使算法处理边缘分布不同的图像时不能自主改变,适应性不强。
传统的Canny 算法在滤波部分采用高斯滤波来进行预处理,在清除噪声的过程中会过度清除掉了图像的边缘信息,导致部分边缘信息丢失[12]。针对这一问题本文运用双边滤波来代替高斯滤波进行图像预处理,这样不仅可以有效地去除噪声还可以保留更多有用的边缘信息。运用Ostu 法来进行阈值分割,而后融合形态学梯度思想进行Canny 算子边缘检测,来获得边缘图像。
双边滤波[13]是Tomasi在1998 年提出的一种非线性滤波方法。它不仅可以保持边缘信息还可以达到降噪平滑的效果。与高斯滤波相似,双边滤波对每个像素及其领域内的像素进行加权平均。双边滤波是两个高斯滤波的结合:一个计算图像空间邻近度的权值[14];另一个计算图像像素值相似度的权值。双边滤波由空间权重与相似权重组成。
空间权重:与像素的位置有关系,为像素之间的距离,定义为
最大类间方差法将两类的类间方差作为判别准则,即σ2的最大值便为最佳选择的阈值T。
形态学一般表示生物学的一个分支,数学形态学便是从生物形态学发展而来。数学形态学作为从图像中提取表达和描绘区域形状的有用图像分量的工具,是由一组形态学代数运算组成[16]。最基本的形态学算子有膨胀、腐蚀、开运算和闭运算四种。
一般二值图像中的形态学:
作为Z2中的集合A和B,B对A的腐蚀定义为
运用这些算子或者组合可以进行图象形状和结构的分析及处理[19]。融合了形态学梯度思想,通过腐蚀和膨胀处理阈值分割后的图像,而后将这两幅二值图像取差集,进而得到形态学梯度图[20]。如图1 所示形态学梯度处理不仅清除了图像中的小的噪声干扰,还可以填补物体中的空洞进而提高检测精度。将差值图像和原始滤波图像求交集图像便可以得到具有更精确边缘的灰度图。
图1 形态学处理
为得到改进后的Canny 算法的效果,本文用Visual Studio2015 软件利用C#语言编程配置0pencvsharp 在Windows 操作系统里进行验证。分别用两个不同零件进行实验得到两组实验结果如图2、图3所示。
图2 第一组实验图像
图3 第二组实验图像
总体来说,本文所采用的改进的Canny 边缘检测算法与传统的算法相比在清除噪声和保留更多的边缘信息上做的更突出。由于传统的算法对于噪声的比较敏感,造成图像上会有各种干扰因素的出现,影响到边缘信息的精确度进而导致检测的结果不理想。而改进后的算法可以尽量避免噪声并精确地得到最优化的边缘信息。由于新算法只须要处理图像中的一小部分区域,所以处理效率得到提升。
边缘检测一直是视觉领域的研究热点,研究方法也有很多。本文在研究传统Canny 算法的基础之上,对其噪声干扰比较大、阈值适应性比较差等方面做出了改进。
1)通过利用双边滤波替代了高斯滤波,避免了高斯滤波使其即保持边缘信息也可以达到降噪平滑的效果,增强了抑制噪声能力。
2)利用最大类间方差法进行阈值分割,使目标和背景分离更加准确,减小了因背景因素影响而产生的误差。
3)用融合形态学梯度来进一步使边缘信息更加完善来改进Canny 算法,使图像边缘提取的精确度更高。