基于局部处理的X射线图像裂纹缺陷自动检测
2020-02-08娄联堂何慧玲石胜平
娄联堂,何慧玲,石胜平
(1 中南民族大学 数学与统计学学院,武汉 430074;2 中国中车集团长江车辆有限公司 工艺研究所,武汉 430212)
无损检测中的自动缺陷检测,是目前国内外研究的热点. 利用数字图像处理与分析技术进行工业产品缺陷的自动无损检测是一种常用方法,然而X射线图像缺陷检测是非常复杂的,最困难的是在对比度差的图像中发现小的、不规则的缺陷,用一般的直方图均衡化和阈值分割无法将目标缺陷很好地分割出来. 由于缺陷的复杂性和多样性,自动缺陷检测算法的可靠性和灵活性对自动焊缝缺陷检测系统至关重要. YIN等人[1]提出了一种前馈反向传播神经网络在无损检测中的应用,定义并选择了7类几何特征来表征不同类型的焊接缺陷,实验结果表明机器学习确实是一种较好的方法,但此方法需要大量的样本,因为机器学习分类的准确性主要依赖于样本学习,各种可能性都需要考虑到,而一般在工业中,出现缺陷的可能性较小,样本较少,这时无法利用机器学习来进行缺陷检测. THIRUGANAM等人[2]提出了一种结合全局和局部阈值技术的射线焊接图像分割方法. NACEREDDINE等人[3]提出了一种基于图像中每个像素邻域像素灰度统计特性的对比度增强方法. 上述两种方法都可以检测出较明显的缺陷,但对细小裂纹这类缺陷的检测上存在局限性.
本文将研究X射线图像中的裂纹缺陷自动检测问题,将焊接图像中的裂纹缺陷作为研究对象,在已有文献的基础上做了改进,提出了一种基于局部方差和局部直方图增强技术的缺陷检测方法,对焊接结构进行检查,以确保焊接质量符合设计要求、安全可靠.
1 预处理
在处理和分析X射线图像时,很难发现小缺陷的存在,也很难准确地确定其尺寸,通常需要从预处理阶段开始. 图像预处理的首要任务是选择感兴趣的区域,就是在怀疑有缺陷的地方,对图像的某些部分进行定格[3]. 感兴趣区域是图像的缩小区域,选择感兴趣区域可以省去操作员对图像无用部分的处理,从而缩短计算时间.
在X射线图像中,焊缝所在区域只是整幅图像的一部分,而裂纹缺陷又总是位于焊缝内局部区域中. 通常,在规范的X射线图像中焊缝区域一般位于图像中间部分,而编号等文字信息位于图像偏上或偏下的区域中,而且焊缝区域的图像纹理特征与其他区域存在较明显差异,如图1(a)所示. 将检测图像的上述几何和代数特征作为先验知识加以利用,就可以确定焊缝区域,即图像感兴趣区域[4],如图1(b)所示.
在这里,对原始图像(a)进行预处理,提取感兴趣部分,相当于将含有缺陷的部分图像进行放大,并去除无关部分,有利于计算机更快、更准确地检测出缺陷. 为方便,下文提到的原图都指图1(b).
图1 对原始图像进行预处理Fig.1 Preprocessing the original image
2 基于局部方差和直方图均衡化处理的图像分割方法
对比度增强是将图像中的亮度值范围拉伸或压缩成显示系统指定的亮度显示范围,从而提高图像全部或局部的对比度,改善图像的视觉效果,将图像转换成一种更适合人或计算机进行分析处理的形式,突出某些对人或计算机分析有意义的信息,提高图像的使用价值. 对比度不足会使图像中的细节分辨不清,计算机检测起来较困难. 如图2所示,直接对原图进行分割,导致裂纹缺陷丢失,后期将无法检测.
图2 利用Otsu方法对原图二值化处理后的图像Fig.2 Image after binary processing of original image by Otsu method
文献[3]提出了一种基于局部方差增强图像的方法,实验结果见图3(a). 文献[5]提出了一种基于局部直方图增强图像的方法,实验结果见图3(c). 这两种方法在增强效果上还存在局限性和不足.
本文在文献[3]和文献[5]的基础上,提出了一种基于局部方差和局部直方图均衡化增强图像的方法,对图像进行灰度放大,增强亮度的同时拉伸对比度,从而达到改善图像的视觉效果、清晰显示局部细节的目的.
图像增强步骤如下:
(1)计算原图像f(x,y)的全局均值mG和方差σG;
(2)选取大小合适的局部区域Sxy(如八邻域),计算局部均值mSxy和方差σSxy;
(3)对图像进行灰度增强,处理后的图像为:
(1)
(4)对(3)中处理后的图像采用局部直方图均衡化增强对比度.
a)确定模板大小,并对图像进行扩展;
b)从图像的第一个像素开始与模板点乘,将点乘后的局部区域进行直方图均衡化;
c)将均衡化后中心点的像素值赋给原图对应点的元素,未被赋值的元素取原值,重复此过程,直至处理完整幅图像.
为了验证基于局部方差和局部直方图均衡化增强图像对比度方法的可行性和有效性,本文进行了多组对比实验,实验结果见图3.
注:其中第一行中对局部方差增强的图像去噪后利用局部阈值法进行处理后,图像呈全白,未在结果中给出图3 实验对比图像Fig.3 Contrast image of experiments
图3(a)、(c)分别是基于局部方差、局部直方图增强后得到的图像,图3(f)是采用本文提出的基于局部方差和局部直方图增强后得到的图像,其中选取Sxy大小为3×3的局部区域,在式(1)中取k=0.8;取像素值为1大小为35×35的模板. 比较原图与图3(a)、(c)、(f),可以看出图3(a)采用局部方差增强后的图像与原图无明显区别;图3(c)采用局部直方图均衡化增强后的图像,对比度增强了;而图3(f)采用本文提出方法增强后的图像与图3(c)相比,暗区的对比度更高. 由于在图像获取和处理的过程中会存在许多噪声,因此,本文采用文献[6]中的方法,用中值滤波去噪,以保持图像质量,避免噪声对图像处理产生干扰,影响实验结果的有效性. 图3(b)、(d)、(g)是图3(a)、(c)、(f)去噪后利用Otsu方法二值化处理后得到的图像;图3(e)、(h)是图3(c)、(f)去噪后利用文献[7]中的局部阈值法二值化处理后得到的图像. 比较图2与图3(b)、(d)、(g),可以看出图3(b)采用局部方差增强图像后的分割效果与原图分割效果无区别,裂纹缺失;图3(d)采用局部直方图均衡化增强图像后,分割效果不佳,裂纹大部分缺失;图3(g)采用本文提出的方法增强图像后,将裂纹分割出来了. 此外,对比图3(d)、(g)与图3(e)、(h),明显前一组的处理效果要优于后一组,这是因为当该图像由暗色背景上的较亮物体组成,即当物体和背景像素的灰度十分明显时,可以用适用于整个图像的单个(全局)阈值,也就是此时Otsu方法优于局部阈值法,可以将缺陷很好地分割出来. 这也进一步说明了采用基于局部方差和局部直方图均衡化后,图像的对比度明显增强了. 因此,本文提出的基于局部方差和局部直方图均衡化算法,有效地增强了图像的对比度,使细节更清晰.
3 裂纹缺陷检测
通过以上分析,我们选取图3(g)二值化图像进行裂纹检测,可看出图中存在一些小的残留点和小孔,为去掉这些小的残留点和小孔,节省检测时间,并使检测到的结果更精确地代表裂纹缺陷,可利用形态学方法[8]对图像进行处理. 其中形态学腐蚀方法可以有效地去除图像中一些较小部分,填充狭窄的间隔并消除不相关,同时保持图像的基本形状特征与连通性,使边界更平滑.
二值图像分析最重要的方法就是连通区域标记,它通过对二值图像中白色像素(目标)的标记,让每个单独的连通区域形成一个被标识的块,进一步就可以获取这些块的轮廓、外接矩形、质心、不变矩等几何参数. 本文利用八邻域区域连通标记算法对图4(a)中的区域进行标记,它一次遍历图像,并记下每一行(或列)中连续的团和标记的等价对,然后通过等价对对原来的图像重新进行标记. 实验结果见图4(b)与图4(c),得到两个连通区域.
图4 形态学处理与连通区域标记Fig.4 Morphological processing and connected region marking
根据缺陷特征分析,很容易检测出图4(c)为裂纹缺陷.
综上,本文X射线图像裂纹检测方法的步骤如下:
(1)在X射线图像中提取可能存在缺陷的感兴趣区域;
(2)基于局部方差和局部直方图均衡化进行对比度增强,再用中值滤波去噪;
(3)采用Otsu方法进行阈值化处理;
(4)利用形态学腐蚀处理,消除裂纹与边缘之间的细小连通及其他小孔;
(5)标记连通区域;
(6)根据裂纹的几何特征对所有提取到的连通区域进行分析,将裂纹缺陷检测出来.
4 结论
由上述各组实验对比可知,仅用局部方差或局部直方图均衡化增强图像,都不能将裂纹缺陷准确地分割出来,使后期检测较困难. 而本文采用的方法达到了较好的图像增强效果,分割出了裂纹缺陷,最终准确地检测出裂纹缺陷,因此本文方法优于仅用局部方差或局部直方图均衡化方法. 本文主要针对的是细微裂纹缺陷检测问题,由于裂纹缺陷特征基本相同,只是位置可能不同,文中算法需要用到的参数较少,无须进行太多调整;同时本文的裂纹与焊缝的边界相当近(仅相差一个像素),利用本文提出的方法能正确检测出裂纹缺陷,对于其他不同位置的裂纹缺陷也应该能检测到,因此本文提出的方法对于细微裂纹缺陷检测具有一定的适应性.