(1.内蒙古科技大学 机械工程学院,内蒙古 包头 014010; 2.内蒙古科技大学 工程训练中心,内蒙古 包头 014010;3.内蒙古物通天下网络科技有限责任公司,内蒙古 包头 014010)
随着机器视觉和图像处理的日渐成熟,边缘检测技术的应用范围越来越广泛,其在列车轴承表面缺陷方面的应用也取得了一定的效果,但是由于受到噪声的干扰,提高抗噪性和准确保留边缘特征成为目前需要解决的主要问题。传统的边缘检测算法对噪声比较敏感,进行检测时通常会加强噪声,其中Canny算法的边缘检测效果相对较好。而数学形态学方法在近些年也开始用于边缘检测,它是一种非线性的滤波,相比于传统的滤波算法,经过数学形态学处理后得到的图像有比较好的抗噪性和连续性,但是也存在着一些问题,即无法令处理后的图像同时在噪声平滑和边缘准确定位方面都达到最优。赵芳[1]等人将多尺度形态学和双边滤波结合的去噪方法引入Canny算法中,检测效果有了一定的提高,但是也增加了算法运行的时间,这影响了视觉检测系统的工作效率。孙汝萍[2]通过小波分解的方法将图像分解为高、低频,分别进行边缘检测处理,再将图像融合为完整边缘,这也增加了算法的复杂性。朱地博[3]等人采用两个互不相同的结构元素对图像边缘进行检测,得到的边缘特征不够清晰,这说明只用数学形态学进行边缘检测显然很难得到准确的边缘特征。除此之外,还有一些关于米粒、轨道图像、布匹瑕疵图像的边缘检测算法研究[4-6],但是用于处理列车轴承表面缺陷图像并不完全合适。基于这种情况,笔者提出一种改进的边缘检测算法,其结合了形态学处理的抗噪性好和Canny算法准确保留边缘特征的优点,用于列车轴承表面缺陷(麻点、压痕、腐蚀)的边缘检测,效果有了明显的提高,这对于轴承缺陷视觉检测系统的研究有重要意义。
数学形态学作为边缘检测中提取图像分量的一种工具,可以根据需要提取分量的特征,分别采用适当形状和尺度的结构元素对图像分量进行提取,具体实现的方法是通过腐蚀和膨胀操作进行图像处理,并在此两种算法的基础上推导出形态学的开、闭运算和其他形态学算法[7]。
对于平面A2上的元素集合B,使用结构元素C对集合B进行形态学处理,得到4种基本运算。
① 形态学腐蚀:
BΘC={s|(C)s⊆B}
(1)
② 形态学膨胀:
(2)
③ 形态学开运算:
B·C=(BΘC)⊕C
(3)
④ 形态学闭运算:
B·C=(B⊕C)ΘC
(4)
形态学边缘检测算法实际上相当于使用一个结构元素对原图像进行腐蚀,再用原图像减去腐蚀后的图像,恰好删除了腐蚀后的内部点,留下了边界元素。取D(B)为经过形态学处理后的边缘图像,可定义为
D(B)=B-(BΘC)
(5)
形态学处理依赖于结构元素的选取,不仅与结构元素的形状有关,还与结构元素的尺寸及原点位置密切相关[8]。形态学用于边缘检测处理时对噪声不敏感,其本质是结构元素和集合的相互作用,如果在传统的边缘检测算法中引入数学形态学,可在一定程度上抑制噪声,同时保留边缘细节信息。
在目前的图像边缘检测处理中,抑制噪声和准确保留边缘特征很难同时实现,有一些边缘检测算法通过平滑滤波,在去除噪声的同时,也增加了边缘定位的不确定性;而提高边缘检测算法对边缘敏感性的同时,却也增加了对噪声的敏感性,Canny算法是在抑制噪声干扰和保留边缘特征之间最好的折中方案[8]。
图1分别给出了5种传统的边缘检测算法对麻点缺陷边缘检测后的图像。
图1 传统的边缘检测算法处理后的图像
实验表明,Canny算法相比于其他传统算法,具有准确保留边缘特征的优点,虽然具备一定的抗噪性,但是仍然存在对噪声敏感的问题,所以应该加入其他算法将其改进。
本文结合形态学对噪声不敏感、Canny算法准确保留边缘特征的优点,提出了一种改进的边缘检测算法,其核心思想是将二值化后的图像首先进行形态学3菱形闭运算处理,然后对其进行Canny边缘检测,最终实现对轴承缺陷的边缘提取。
由于结构元素的选取在形态学处理中占有极其重要的地位,所以对多种不同的结构元素分别进行对比实验,最终选取[0 1 0;1 1 1;0 1 0]作为本文算法形态学处理中的结构元素,实验证明,该结构元素对于轴承3种主要缺陷(麻点、压痕和腐蚀)的处理效果最好。实验中用到的结构元素分别为
[1 1 1;1 1 1;1 1 1]
(3×3)
[1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;1 1 1 1 1]
(5×5)
[0 1;1 0]
(0110)
[1 0;0 1]
(1001)
[0 1 0;1 1 1;0 1 0]
(3菱形)
[0 0 1 0 0;0 1 1 1 0;1 1 1 1 1;0 1 1 1 0;0 0 1 0 0]
(5菱形)
以麻点图像的形态学闭运算处理为例,图2分别给出了麻点缺陷原图、二值化后的图像以及此六种结构元素闭运算处理后的图像。
图2 不同结构元素闭运算处理后的图像
由图2可以看出,相比于二值化后的图像,经过此六种形态学结构元素闭运算处理后的图像均有一定的抗噪效果,所以形态学图像处理可在一定程度上抑制噪声。对此六种结构元素处理后的图像进行比较后发现,3×3、5×5、5菱形这3种结构元素对图像的抗噪效果最好,但是对图像原有特征的改变比较大,出现特征边缘不准确的问题;而0110和1001这两种结构元素对图像的抗噪效果较差,并且处理后的特征有方向性,不具有普遍性;只有3菱形结构元素处理后的图像具有一定的抗噪性,而且保留了边缘的细节信息。
形态学基本运算包括腐蚀、膨胀、开运算和闭运算,各有其作用和优势,用于轴承缺陷边缘检测的效果不同,实验表明,形态学闭运算的处理效果最好。
以麻点图像的形态学3菱形结构元素处理为例,图3分别给出了腐蚀、膨胀、开运算和闭运算处理后的图像。
图3 3菱形不同基本运算处理后的图像
由图3可以看出,相比于闭运算处理后的图像,腐蚀、膨胀和开运算处理的抗噪效果差,而且腐蚀处理后将噪声点扩大了,膨胀处理后将特征缩小了,所以这3种处理效果都不是很理想,最终选择闭运算作为本文算法中形态学处理的基本运算。
综上所述,选择形态学3菱形闭运算作为边缘检测的前处理,结合Canny算法作为本文算法进行轴承表面缺陷的边缘检测。
用本文算法在Matlab R2018a环境下对轴承表面的3种主要缺陷(麻点、压痕和腐蚀)进行处理,并与形态学边缘检测和Canny算法边缘检测进行比较分析,实验结果如图4~图6所示。
实验结果表明了本文算法的可行性和有效性,相比于形态学边缘检测和Canny算法边缘检测处理后的图像,本文算法不仅加强了抑制噪声的能力,还准确地保留了图像的边缘特征,同时为接下来的表面缺陷分类识别处理提供了极大便利。
图4 麻点图像及边缘检测后的图像
图5 压痕图像及边缘检测后的图像
图6 腐蚀图像及边缘检测后的图像