基于图像处理的轴类零件表面裂纹检测
2015-03-15厉荣宣沈希忠张树行陈圣杰
厉荣宣, 沈希忠, 张树行, 陈圣杰
(上海应用技术学院电气与电子工程学院,上海 201418)
基于图像处理的轴类零件表面裂纹检测
厉荣宣, 沈希忠, 张树行, 陈圣杰
(上海应用技术学院电气与电子工程学院,上海 201418)
针对轴类零件表面图像的特点,提出一种基于图像处理的表面裂纹检测算法。算法首先采用空域和小波域混合滤波对图像去噪,提出一种图像分块自适应模糊集增强方法,以提高裂纹区和背景区的对比度;然后应用Canny边缘检测算子和数学形态学操作进行图像分割,提取裂纹区域;最后通过计算裂纹连通域的圆形度和长宽比特征判断零件的表面图像中是否有裂纹存在,实现裂纹检测。试验表明,该算法即使在信噪比不高的图像中也能实现对目标裂纹的检测,证明了算法的有效性。
图像处理;裂纹检测;小波;模糊集增强;形态学操作
随着科技发展和工业自动化水平的提高,企业对所生产零件的缺陷检测效率及准确率要求越来越高。在以往,大多零件的表面缺陷检测主要靠人工,效率低而且容易产生误判[1]。
近年来,随着数字图像技术的不断发展,由计算机视觉系统取代人工进行表面缺陷图像的处理、分析、识别成为研究和应用的热点。针对某种精密零件的表面缺陷,文献[2]运用像素特征定位方法,将目标图像二值化,完成零件和背景区分,避免了采用标准网格平面标定的繁琐过程,提高了测量精度和速度。文献[3]对齿轮的缺陷图像进行研究,提出了迭代阈值构造法,解决了阈值易受噪声干扰的问题。为了对某机械加工零件表面进行可靠、有效地检测,文献[4]根据机械加工零件表面的纹理特点,设计了一种新的图像频域滤波器,可增强缺陷纹理图像并抑制背景纹理对缺陷纹理检测的干扰,再通过图像分割的方法实现缺陷纹理和背景纹理的分离。文献[5]针对冷轧带钢表面缺陷种类多、形态复杂、表现各异的特点,利用独立成分分析(independent component analysis, ICA)和拓扑独立成分分析(topology independent component analysis, TICA)从缺陷集合中自适应地估计出基函数和滤波器,然后使用相应的滤波器对缺陷图像滤波,提取滤波响应并用支持向量机的方法对样本进行分类识别。
表面缺陷检测特点如下:从现场获取的原始图像大多具有图像质量不高、缺陷部位不明显的情况,因此图像预处理技术,尤其图像增强算法的适当运用关系到目标缺陷能否和背景正确剥离,是缺陷得以成功检测的基础;缺陷的识别涉及模式识别问题,由于不同工程背景下缺陷的种类、形态、复杂度均有所不同,因而大多的技术方法是针对特定缺陷类别或特殊应用背景而提出的,能够识别的种类相对有限,因此缺陷判断、识别的有效方法和技术还需进一步深入探索。
1 缺陷图像分析及算法提出
本文研究的原始目标图像来自某企业生产的轴类零件,结构简单,不具有精密零件结构复杂的特性。零件头部具有规则的圆形孔洞,尾部呈圆柱条棒状,粗细均匀。零件整体质密度均匀,制造工艺较简单(如图1所示)。
图1 零件机械图
在零件加工现场,由机械传动装置带动零件轴向匀速旋转 360°,使用配置好的工业相机近距离采集到多帧不包括零件外轮廓的表面图像,从而完成图像采集。从现场获取的某一帧零件表面图像如图2所示。
图2 表面裂纹的原始图像
经过对零件特征和缺陷位置的大量统计,缺陷类型全部为条形结构裂纹,而且95%以上的裂纹产生在零件尾部区域,其实缺陷检测只需进行裂纹的有无判断,而无需将缺陷进行分类。对裂纹检测不利的是,图像采集现场的振动、电磁、光线等干扰,采集到的图像噪声成分较复杂,裂纹的边缘不够清晰,需进行图像增强提高信噪比,并提升裂纹区域的对比度,从而利于后续分割、识别等操作。
2 构建基于图像处理的表面裂纹检测算法
从现场采集的裂纹图像噪声成分复杂,信噪比较低,算法首先使用图像增强方法把图像处理成适于裂纹提取的图像,思路是:用改进的自适应中值滤波和小波邻域收缩法分别对图像的椒盐噪声和高斯噪声进行滤波;针对去噪后裂纹区域边缘弱化的问题,提出一种图像分块自适应模糊集增强方法提升裂纹轮廓细节,使裂纹区域利于分割;然后采用 Canny算子和数学形态学操作结合的方法对增强后的裂纹图像进行二值化分割,其结果使得裂纹部分和背景区域完全分开;最后通过计算裂纹连通域的圆形度和长宽比特征判断是否有裂纹存在。算法流程如图3所示。
2.1 图像增强
2.1.1 改进的自适应中值滤波
对于裂纹表面图像的脉冲型椒盐噪声,采用改进的自适应中值滤波方法进行滤波。自适应中值滤波的基本原理为:定义w为中心位于(i, j)点、尺寸可调的中值滤波窗,初始化为 wini,预设的最大尺寸窗为 wmax, fmax、 fmed、 fmin分别为窗内灰度的最大值、中值、最小值, f(i,j)为点(i, j)的灰度值。自适应中值滤波法工作在A、B两层。A层:若窗口的灰度中值 fmed满足 fmin<fmed<fmax,则直接转到B层;若不满足 fmin< fmed< fmax,增加w的窗口尺寸,若w的尺寸小于 wmax,则重复A 层,否则直接输出 f(i,j)。B 层:若fmin< f(i,j)< fmax,则输出 f(i,j);否则输出 fmed。这样分层的思想是,通过 fmed与 fmax、 fmin的大小关系判断噪声强度,从而决定滤波窗口的尺寸,窗口尺寸确定之后,根据 f(i,j)与 fmax、 fmin的大小关系判断窗口中心点像素的属性,当为噪声点时进行中值滤波,当为信号点时保持灰度值不变。
图3 算法流程图
改进的自适应中值滤波的出发点是缩减算法的运行时间。改进算法在滤波器窗的选择上用十字窗取代了传统的方形窗,减少了参与中值排序的像素点数目,而且随着滤波器窗的增大,排序的时间优势愈发明显,从而节约了算法的运行时间,更能满足裂纹检测算法的整体实时性要求。
2.1.2 小波邻域收缩去噪
对于裂纹图像的高斯噪声,采用Chen等[6]提出小波邻域收缩法(也称 NeighShrink)去噪。在小波系数的较小邻域内,小波系数之间存在一定的相关性,因而在对其进行阈值处理时,应该考虑邻域系数的情况,这样才能减少重要的系数被置为零的情况,避免信号系数的过度收缩,从而保护图像细节。具体实现如下:
(1) 对含噪图像进行二维小波分解,得到1个以图像细节信息为主的低频系数子带LL和3个以噪声为主的高频系数子带HL、LH、HH,这 3个高频子带是图像水平、垂直和对角线三个方向的高频系数。频带分布如图4所示。
图4 小波系数分布的频带
(2) 将小波域中各层的水平、竖直和对角线三个方向的高频系数( dx,y)进行处理:对于每个所需处理的系数 dx,y(x,y分别表示系数的位置索引),计算以 dx,y为中心的方形窗口W内的所有系数平方和,即系数 dx,y的邻域能量( Sx,y),计算表达式为:
收缩因子 βx,y按下式计算:
上式中,[T]+表示对T取非负数部分,即当 T≥0时,结果为T本身,当 T< 0时,令 T= 0。λ为局部阈值,采用Donoho提出的Visushrink方法计算如下:
上式中, N2为图像的大小,σ为图像的噪声标准差,可以对第 1级分解的低频子带系数 HH1进行中值估计获得:
修正后的小波系数为:
(3) 用修正后的小波系数 dˆx,y对二维图像进行重构,从而得到去噪图像。
2.1.3 分块自适应模糊增强
去噪图像不可避免会出现图像细节边缘弱化的问题,对于裂纹的分割和提取是不利的。采用一种图像分块自适应模糊增强算法对图像进行增强,首先对图像进行分块,根据各块的一维熵值判断是否为裂纹潜在区,然后对裂纹潜在区进行模糊域图像增强,而对非裂纹潜在区进行灰度值保持。具体实现如下:
(1) 判断裂纹潜在区。首先对图像进行分块,计算每个子块矩阵基于直方图的信息熵,假设位于第m行、n列矩阵的信息熵值为mnh ,计算如下:
式中,Ω表示图像灰度值不等于 0的像素集合,n( i)表示灰度值为i的像素个数,N表示像素的总数目, p( i)表示灰度值为i像素出现的概率。
其次,以图像各子块的信息熵值mnh 作为元素构成熵值矩阵H。在H中,图像背景对应的子块区域通常灰度变化不明显,因而具有较小的信息熵,而裂纹区域的灰度分布较大,因此对应的信息熵值通常较大。基于此,通过设定一个较大的阈值th将图像子块划分为裂纹潜在区和非裂纹区,进而施加不同的处理。本文中,th是通过熵值矩阵H自适应选择而来,具体求法为:计算H每一列的最大值构成一维矩阵,从该矩阵中选出最小值作为阈值th的取值。当图像子块的信息熵值大于该阈值时,判定该子块为裂纹潜在区,反之,视为背景图像区。实际上,图像中可能存在一些灰度变化的非裂纹干扰区也会被认定为裂纹潜在区,考虑到对图像的操作不仅局限于增强处理,还有后续的分割、去除干扰等处理,这样的判定结果是在容许度范围之内的。
(2) 裂纹潜在区子块模糊集增强。经典的 Pal和 King[7]模糊增强方法存在算法结构复杂、运算耗时长的问题。文献[8]在隶属度函数和模糊增强函数基础上,采用一维最大熵法确定渡越点,进而对裂纹潜在区子块进行模糊集增强以提高裂纹的对比度。具体实现如下:
隶属度函数的定义为:
式中,mnX 表示位于像素点(,)m n的灰度值,L代表图像的最大灰度级,为常数256。
c应的隶属度,选择合适的渡越点对图像增强的效果具有决定性影响。
由于图像的一维最大熵通常用来获取图像分割的阈值,而图像分割可以视为图像增强的极限情况,因此可以采用图像的一维最大熵法计算渡越点 Xc的值。假设阈值TH可以将图像分为两个区域:前景区和背景区。按照式(6)~(7)的原理分别计算前景区和背景区的各灰度阶的信息熵,分别记为h1和h2,然后计算信息熵之和 hTH= h1+ h2,满足 hTH的值最大的TH即为 Xc的值。
2.2 图像分割
利用边缘检测算子进行图像的二值分割是常用方法,在表面裂纹图像中,裂纹的边缘是所要提取目标和背景的边界线,因此提取出该边缘便能区分目标和背景[9]。Canny算子是具有非最大值抑制和双阈值的一阶微分算子,既可以抑制多响应边缘,还能有效减少边缘漏检率。其检测过程为:①将图像与高斯函数做卷积,获得平滑图像;②用基于平滑梯度方向的方法确定图像局部边缘的法向;③根据局部边缘的法线方向求解边缘位置;④计算边缘强度,并对梯度幅值进行非极大值抑制;⑤用双阈值算法检测和连接边缘。
经 Canny算子边缘分割后的裂纹区域存在双边缘问题,而且不可避免残留一些干扰成分,不符合分割的最终目的。使用数学形态学操作的方法对边缘检测后的图像进行后续完善。具体过程为:①创建结构元素SE;②用 SE对二值图像进行膨胀运算,使相邻的部分闭合成一个区域;③分别计算图像中各个区域面积,由于裂纹的面积远大于干扰部分的面积,因而保留面积最大的区域(即目标裂纹区域),去掉其他区域;④使用膨胀运算填充裂纹区域的孔洞,使裂纹部分构成一个裂纹全白,背景全黑的连通域;⑤最后使用开运算平滑裂纹图像,使裂纹轮廓变的光滑。
2.3 特征提取及判断
经过二值化分割后的图像只含有一个连通域,通过计算该连通域的圆形度和长宽比特征判断是否存在裂纹。
圆形度计算如下:
上式中,S为连通域面积,C为连通域周长。
当区域为圆形时R值最大为1。
长宽比D计算如下:
上式中,L为连通域的长度。
在对连通域是否为裂纹的判断中,规定当圆形度小于 0.3,并且长宽比大于 3同时满足的情形下,判定原图中存在裂纹,从而完成裂纹的检测。
3 试验结果及分析
在MATLAB R2012b环境下对算法进行试验和分析。首先将从现场采集的裂纹图像标准化,调整为256×256的灰度图,如图5(a)所示。改进的自适应中值滤波去噪的效果和小波邻域收缩去噪的效果分别如图5(b)~(c)所示。
图5 灰度图和图像去噪
图5(b)中,从去噪整体效果看,图像变的比较平滑,脉冲型噪声得到有效去除;算法执行过程中,十字滤波窗最小尺寸为3,最大尺寸为7,体现了随着窗内噪声强度变化自适应滤波的特点。图5(c)中,采用3级sym5小波对图像二维小波分解,在计算小波系数的邻域能量时选择 3×3的窗口尺寸。对比图5(b),该方法在进一步去除图像噪声的同时,并没有明显弱化图像的边缘等细节信息。
图像分块自适应模糊增强算法作为整个算法的核心,对于提升裂纹区域对比度和提取裂纹边缘具有重要作用。在试验中,引入传统 Pal-King模糊增强算法、文献[8]使用的模糊增强算法和本文算法加强对比,效果分别如图6(a)~(b)所示。
图6 模糊增强算法对比
图6(c)中首先对图像进行了8×8分块,由各块信息熵构成的熵矩阵H如表1所示。通过H得到阈值Th大小为5.09,对比表1可以看到,该阈值使得裂纹区域和背景区域实现了有效区分。对于裂纹潜在区子块,通过计算模糊域图像的一维最大熵确定各块的自适应渡越点取值,从而完成图像模糊集增强。从效果上看,在分块的前提下,该算法对裂纹区域进行了比较正确的判断和选择,并对裂纹区域的边缘细节部分进行了明显的强化,从而利于裂纹提取。
图像分割中,首先用Canny算子进行边缘检测,高低阈值的尺度因子设置为0.74,得到包含1个裂纹区和多个小的干扰区的二值图像,如图7(a)所示。数学形态学操作中,先用半径为2的圆形结构元素对二值图像先进行膨胀操作,使各区域分别连接成整体区域,并计算各自的面积,保留面积最大的区域,去掉干扰区域,从而得到只含裂纹区域的二值图像,如图7(b)所示。图7(c)中,继续使用形态学操作填充裂纹区域的孔洞,使目标裂纹区域连接成一个整体连通域,最终完成图像的分割。
表1 熵值矩阵H
图7 图像分割
最后计算裂纹连通域的圆形度和长宽比特征,圆形度R为0.124,长宽比D为3.465,均符合裂纹判定的条件,因此检测结果为原图像中存在裂纹。
从算法的适应性和通用性角度出发,另外选取从现场获取的 100帧图像进行试验,其中带裂纹特征图像64幅,不带裂纹的图像36幅;62幅缺陷图像被检出,检测准确率96.9%(62/64),对不含裂纹的图像没有误检,误检率为0,充分验证了算法的有效性。
4 结 论
本文针对某轴类零件表面裂纹图像的特点,提出一种基于图像处理的裂纹检测算法,实现了原始零件图像中是否含有裂纹的判断。通过空域和小波域混合滤波方法对图像去噪,着重提出一种图像分块自适应模糊集增强的方法加强裂纹区域质量,继而使用 Canny边缘检测算子和数学形态学操作完成图像二值分割,最后通过计算连通域圆形度和长宽比特征判定裂纹的存在。试验结果表明,该算法在原始图像信噪比较低的情形下仍能有效检测到裂纹是否存在,具有较高的准确度和实时性。
[1]彭 飞, 朱晓军, 朱志洁. 荧光磁粉探伤自动检测及图像处理系统研究[J]. 航海工程, 2009, 38(3): 141-145.
[2]俞晓明, 朱 涛, 孙 霖. 基于图像的精密零件缺陷检测技术[J]. 计算机仿真, 2012, 29(3): 273-277.
[3]肖俊建, 王慧英. 图像处理技术在齿轮缺陷检测中的应用[J]. 机械传动, 2009, 332: 98-101.
[4]黎 明, 马 聪, 杨小芹. 机械加工零件表面纹理缺陷检测[J]. 中国图象图形学报, 2004, 9(3): 318-323.
[5]周新星, 王典洪, 孙 林. 基于独立成分分析的表面缺陷特征提取与识别方法[J]. 计算机辅助设计与图形学学报, 2012, 24(4): 506-512.
[6]Chen G Y, Bui T D, Krzyzak A. Image denoising using neighbouring wavelet coeffieients [C]//IEEE International Conference on Acoustics, Speech and Signal Processing, 2004: 917-920.
[7]Pal S K, King R A. Image enhancement using fuzzy set [J]. Electronics Letters, 1980, 16(10): 376-378.
[8]姜 桃, 赵春江, 陈 明, 等. 自适应图像模糊增强快速算法[J]. 计算机工程, 2011, 37(19): 213-215.
[9]周 品, 李晓东. MATLAB数字图像处理[M]. 北京: 清华大学出版社, 2012: 374.
Surface Crack Detection of Shaft Components Based on Image Processing
Li Rongxuan, Shen Xizhong, Zhang Shuhang, Chen Shengjie
(School of Electrical and Electronic Engingeering, Shanghai Institute of Technology, Shanghai 201418, China)
According to the characteristic of the image of a shaft component surface, an algorithm to detect surface crack is proposed based on image processing. The algorithm firstly adopts complex spatial and wavelet method to de-noising, comes up with an adaptive fuzzy enhancement of block matrix to improve the contrast of crack and background. Canny edge detection and morphology operation are used for image segmentation. At last, the circularity and length-width ratio are obtained to judge the existence of crack, and crack detection is done eventually. The result of test manifests the accurate detection of crack even if the signal to noise ratio is not very high, proving the effectiveness of algorithm.
image processing; crack detection; wavelet; fuzzy enhancement; morphology operation
TP 391.41
A
2095-302X(2015)01-0062-06
2014-06-09;定稿日期:2014-08-15
厉荣宣(1987-),男,山东日照人,硕士研究生。主要研究方向为图像信号处理。E-mail:lirxuan@163.com
沈希忠(1968-),男,上海人,教授,博士。主要研究方向为信号处理与控制。E-mail:xzshen@yeah.net