焊缝缺陷自动检测是保证焊接质量的重要环节,是大规模工业应用的迫切需要。随着图像处理技术的提高,基于X射线的焊缝缺陷自动检测系统(automatic detection of weld defects,ADWD)得到了广泛的研究。
焊缝区域提取是焊缝缺陷检测与识别的基础,影响着检测与识别的正确与否。焊缝区域提取本质上是一个图像分割问题,由于X射线成像方式、焊接材质等因素的影响,X射线图像存在对比度低、噪声多、焊缝区域与背景灰度区分性小、焊缝区域边缘模糊等问题[1],使得X射线焊缝区域提取存在较大的困难,国内外已有很多相关研究。
文献[2]利用Prewitt算子、文献[3]利用Sobel算子和canny算子、文献[4]通过搜索图像中每列梯度值最大的像素点来检测焊缝边缘。这些基于边缘检测的方法在对比度明显,噪声较小的图像中能取得好的结果,但在边缘模糊的图像中会出现琐碎的边缘,不易形成完整的边界。文献[5]提出基于多阀值技术的焊缝区域分割方法,文献[6]提出基于遗传算法优化的多参数阈值分割方法。然而实际中,焊缝区域和背景中的灰度分布存在一定的重叠,导致阈值分割方法不能准确地分离出焊缝区域和背景。文献[7]结合GVF和Snake模型来获得焊接缺陷的边界,文献[8]提出了基于二进制变分水平集的主动轮廓模型来检测边缘。由于这类模型的初始参数对结果有一定的影响,使得这类模型的自动化程度和可靠性不高。
此外,针对焊缝图像的特征,出现了一些基于知识的焊缝提取方法。文献[9]提出了一种三层渐进式分割技术。文献[10]提出了基于知识判别的焊缝边缘检测算法。然而由于焊缝边缘知识的数学表达通常是不精确或者难以表述,因而难以有效利用。
1 图像预处理ADWD系统流程图如图 1所示。
初始的X射线焊缝图像灰度为16位,且集中在很小的一个低灰度区间内,先将此区间变换至8位灰度区间。变换式为:
$G'{\rm{(}}x{\rm{,}}y{\rm{)}} = \frac{{G{\rm{(}}x{\rm{,}}y{\rm{)}} - {\rm{min(}}G'{\rm{(}}x{\rm{,}}y{\rm{))}}}}{{{\rm{max(}}G{\rm{(}}x{\rm{,}}y{\rm{))}} - {\rm{min(}}G{\rm{(}}x{\rm{,}}y{\rm{))}}}}$ | (1) |
式中,G(x,y)、G'(x,y)分别为图像像素点(x, y)在变换前后的灰度值。
由于焊缝图像噪声较多、信噪比低,本文采用5× 5大小的高斯滤波器,既能有效滤除细小的噪声,也不会给边缘造成太大的模糊。为减少不相关信号的影响及运算量,通过模板(从原图中人工截取)匹配定位出焊缝区域子块,预处理示例图如图 2所示。
在灰度图像G(x, y)中,可将图像按行分为一系列的灰度曲线,选取其中一行x0,G(x0, y)是一条二维的灰度曲线。灰度曲线获取示例图如图 3所示,取图像中间一行x=129所形成的灰度曲线G(129, y)。
拟合直线方程可表示为:
${y_i} = k{x_i} + b$ | (2) |
式中,xi,yi为为待测点坐标;k、b分别表示拟合直线的斜率和截距,为待估参数。最小二乘直线拟合是根据一组观测点确定k、b的值,使得二元函数最小:
$S(k,b) = \sum\limits_{i = 1}^n {{{[{y_i} - (k{x_i} + b)]}^2}} $ | (3) |
式中,S(k,b)表示拟合直线与原曲线的误差平方和。根据多元函数的极值条件求得S(k,b)取最小值的解为:
$\left\{ {\begin{array}{*{20}{c}} {k = \sum\limits_{i = 1}^n {({x_i} - \bar x)({y_i} - \bar y)} /\sum\limits_{i = 1}^n {{{({x_i} - \bar x)}^2}} }\\ {b = \bar y - k\bar x\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;} \end{array}} \right.$ | (4) |
式中,$\bar x = \frac{1}{n}\sum\limits_{i = 1}^n {{x_i}} $、$\bar y = \frac{1}{n}\sum\limits_{i = 1}^n {{y_i}} $分别表示被拟合点重心的横纵坐标。
2.3 边缘点检测得到灰度曲线后,选取一个合适的窗口,宽度为w个像素,对窗口内的w个像素点进行最小二乘直线拟合,将拟合直线的斜率作为窗口中心像素点的响应,从而代替梯度算子。可以证明,此方法能检测出阶跃型边缘和阶梯型边缘等多种不同种类的边缘,并有效消除随机噪声和脉冲噪声等干扰。直线拟合对不同信号的响应示意图如图 4所示。
图中散点代表原始离散信号,实线代表拟合直线。为示意图的清晰可见,将拟合直线做了平移。图 4a反映了在灰度阶跃的边缘处,拟合直线的斜率最大;图 4b反映了在阶梯边缘处,拟合直线的斜率最大;图 4c反映了在高斯随机噪声中,拟合直线的斜率为零,不受噪声干扰;图 4d反映了少量外点干扰的脉冲噪声对拟合直线的斜率影响很小。
在焊缝图像中,一般含有较多的噪声,大部分噪声是随机分布的,当局部区域内外点(脉冲噪声)数量较多时,外点成随机分布,因此局部区域内存在多个外点干扰是小概率事件。由于本方法在最后利用了阈值处理来去除较小的局部极值,因此可以忽略外点的影响。
灰度曲线最小二乘直线拟合示例图如图 5所示,展示了图 3中的灰度曲线、直线拟合响应曲线及利用高斯平滑后再用sobel算子的响应曲线。可看出,对图像利用简单的高斯滤波器平滑后再求一阶梯度的边缘检测方法对噪声的反应比较敏感,分辨不出噪声和真实边缘,而局部最小二乘直线拟合的方式在噪声处的响应较小,在边缘处的响应大。这是因为拟合直线的斜率反映了窗口内整体的变化趋势,更能反映出图像真实的信号。
最小二乘直线拟合的窗口大小影响着边缘检测的结果,大尺度会造成边缘不能被检测到,因此直线拟合的窗口大小需根据被检测目标的大小来确定。
选择图 5a中的灰度曲线,并用不同大小的窗口对窗口中的点进行最小二乘直线拟合,拟合直线斜率的绝对值作为窗口中心点的边缘响应,不同尺度的响应曲线示例图如图 6所示。
可看出,随着窗口尺度w的增大,响应曲线越来越平滑,局部极值点对应着图中边缘较明显的地方,而弱的边缘被忽略掉了。大尺度可有效地去除噪声值保留较重要的边缘轮廓,但失去了定位的精度,小尺度受噪声的干扰波动比较大,但边缘的定位精度较高。
鉴于以上事实,利用不同尺度响应的乘积,在去除噪声干扰的同时提高边缘定位精度。设两种窗口的尺度分别为w1和w2,两种尺度下的响应分别为H1和H2。定义H1和H2的尺度乘积为:
$P(x) = {(1 + \left| {{H_1}(x)} \right|)^\alpha } \times {(1 + \left| {{H_2}(x)} \right|)^\beta }$ | (5) |
式中,α、β为正整数,表示不同尺度的尺度因子。大的尺度具有较大的尺度因子,这是由于大尺度响应曲线反应了图像的大致轮廓,小尺度响应曲线中较大的变化才能反映在尺度乘积上,而小的波动对大尺度响应曲线没有影响。大尺度的尺度因子越大,大尺度的响应曲线变化越剧烈,小尺度的响应曲线越不容易对其产生影响。不同尺度的尺度因子应该合理选取,不能相差过大;否则小尺度响应曲线的变化不能反映在尺度乘积上。本文中,令大的尺度因子为4,小的尺度因子为2。通过式(5),小的起伏得到了抑制,而大的起伏得到了增强,从而在去除噪声干扰的同时又能够提高边缘定位精度。
尺度相乘示例图如图 7所示,利用图 6a、6b响应曲线经过式(5)运算所得到的响应乘积。在尺度乘积结果中,最大的几个波峰点对应着原曲线中最主要的灰度变化轮廓。
得到尺度相乘曲线后,需找到曲线的波峰来确定边缘点。设曲线离散值为$P(1:n)$,则满足$P(1:n - 1) - P(2:n) < 0$及$P(3:n) - P(2:(n - 1)) < 0$的点为波峰点。由于噪声经过尺度相乘处理得到了较好的抑制,故只需略去很小的波峰点和不连续的边缘杂点即可。
3 实验结果与讨论在工业生产中,对钢材进行焊接的需求广泛存在,由于钢材的形态或材质不同,所形成的焊缝图像也不相同,常见的有钢板和钢管的焊缝图像。钢管焊缝图像较钢板焊缝图像,其灰度中间亮两端暗,背景和目标灰度重叠多,焊缝区域提取更难,本文针对钢管焊缝图像进行实验。
3.1 单一尺度与多尺度的检测精度对比通过结合两种不同尺度的响应结果即利用尺度乘积的方法,使得小的起伏得到抑制,而大的起伏得到增强,既能去除噪声干扰又能提高边缘的定位精度。为比较使用尺度乘积与单一尺度的检测效果,选取w1=11、w2=21、w3=51、w4=71的4种单一尺度进行对比实验。单一尺度下不同尺度的处理结果如图 8所示。可看出,大尺度虽然可以有效地去除噪声、突出较重要的边缘轮廓,但定位的精度较低;而小尺度虽然有较高的边缘定位精度,但受噪声干扰的波动较大。
不同尺度乘积处理结果如图 9所示,与图 8所示的结果相比较可看出,使用尺度乘积方法既能去除噪声干扰又能提高边缘的定位精度,从而克服使用单一尺度所存在的边缘定位精度与抗噪声干扰能力之间的矛盾。
实际中用多尺度直线拟合检测边缘时,小尺度的大小需根据被检测目标的大小来决定,以准确地定位出焊缝边缘,大尺度的大小应该足够大,达到只保留最主要的边缘轮廓的目的。这样才能忽略掉其他较小的变化,检测出所期望的边缘,同时保持较高的边缘定位精度。
图 9展示了利用w1=11,w3=51和w2=21,w4=71两种不同尺度乘积进行检测的结果。可看出小尺度对焊缝区内小的灰度变化也有响应,而大尺度的则没有,由于小尺度抗噪性不强,边缘有较多毛刺,没有大尺度所检测的边缘平滑。
3.3 与其他算法对比将本文提出的算法与水平集主动轮廓模型[11]、模糊核聚类方法[12]进行对比。实验图片集源于实际生产过程,含有606个无缺陷焊缝样本和83个有缺陷焊缝样本。对含同一焊缝的每个样间隔120°旋转一次拍摄3张焊缝图片。由于焊缝区域对X射线的吸收率较大,会形成一个深色的圆弧状区域。
在基于水平集的主动轮廓模型的实验中,首先通过人工画出初始轮廓线,然后进行迭代运算。在基于模糊核聚类方法的实验中,由于图像主要分为亮区、暗区和中间灰度区,为了使分类结果更准确,将分类参数定为4类。
原始灰度曲线边缘处的上升沿和下降沿宽度在40个像素左右,选择w2=21进行直线拟合能获得优良的边缘定位效果。w4=71的响应曲线中4个极大值点最为明显,很好地反映了焊缝区域的边缘轮廓。因此选择前面所述的实验参数即w2=21、w4=71两个尺度的尺度乘积来检测边缘。3种算法的正确检测率对比如表 1所示。3种算法的实验结果对比如图 10所示。
从实验的对比结果中可看出,本文算法能完整地提取整个焊缝区域,焊缝区域内的灰度变化被忽略,只保留了区域边界这种大的轮廓。基于水平集的主动轮廓模型和模糊核聚类方法在正常图片中检测效果比较好,但在缺陷图片中效果不理想,且焊缝边界不吻合。
另外本文算法的速度比另外两种算法的速度要快很多。在所提算法中最耗费计算时间的是局部直线拟合。每次计算新的拟合直线斜率时,由于只改变了最前和最后的两个像素点,根据拟合直线的斜率公式,可利用上次的计算结果和这两点的值即可计算出当前的拟合直线斜率,因此本文算法时间复杂度为O(mn)。而利用水平集主动轮廓模型和模糊核聚类方法,由于要经过多次迭代,计算时间要大大多于本文提出的算法。3种算法运行时间对比如表 2所示。
本文对ADWD系统中焊缝区域的提取进行了研究,分析了当今焊缝区域分割的最新方法,并提出了一种新的基于尺度乘积的焊缝边缘检测分割方法。通过实验表明本方法能显著抑制噪声的干扰,提高边缘检测的准确率,在灰度变化较复杂的焊缝图像中能取得比其他典型算法更好的效果。
该方法不仅可以用于焊缝边缘检测领域,还可以用于其他的边缘检测应用中,如公路车流量的检测,通过检测横向边缘的多少来判断车流量的大小;工业电视检测中通过检测横向边缘的高度来判断瓶装液体是否灌满等。
[1] | 周正干, 滕升华, 江巍, 等. 焊缝X射线检测及其结果的 评判方法综述[J]. 焊接学报, 2002, 23(3): 85-88. ZHOU Zheng-gan, TENG Sheng-hua, JIANG Wei, e tal. Research on defect detection and evaluation in welds with X-rays[J]. Transactions of the China Welding Institution, 2002, 23(3): 85-88. |
[2] | KUO H C, WU L J. An image tracking system for welded seams using fuzzy logic[J]. Journal of Materials Processing Technology, 2002, 120(1): 169-185. |
[3] | KONG M, CHEN S B, LIN T. Weld seam edge detection based on composite edge detectors[J]. Journal of Shanghai Jiaotong University, 2009, 43(5): 693-696. |
[4] | MA H, WEI S, SHENG Z, et al. Robot welding seam tracking method based on passive vision for thin plate closed-gap butt welding[J]. The International Journal of Advanced Manufacturing Technology, 2010, 48(9): 945-953. |
[5] | WANG Y, SUN Y, LV P, et al. Detection of line weld defects based on multiple thresholds and support vector machine[J]. NDT & E International, 2008, 41(7): 517-524. |
[6] | YAZID H, AROF H. Automated thresholding in radiographic image for welded joints[J]. Nondestructive Testing and Evaluation, 2012, 27(1): 69-80. |
[7] | GOUMEIDANCE A B, KHAMADJA M, NACEREDDINE N, et al. Parametric active contour for weld defects boundary extraction in radiographic testing[C]//Eighth International Conference on Quality Control by Artificial Vision. [S.l.]: Society of Photo-optical Instrumentation Engineers, 2007. |
[8] | BOUTICHE Y. A region-based model and binary level set function applied to weld defects detection in radiographic images[J]. International Journal of New Computer Architectures and their Applications (IJNCAA), 2011, 1(1): 236-244. |
[9] | VILAR R, ZAPATA J. Segmentation of weld regions in radiographic images: a knowledge-based efficient solution[M]. [S.l.]: Springer Berlin Heidelberg, 2013: 421-430. |
[10] | YE Z, FANG G, CHEN S, et al. A robust algorithm for weld seam extraction based on prior knowledge of weld seam[J]. Sensor Review, 2013, 33(2): 125-133. |
[11] | LI C, KAO C Y, GORE J C, et al. Implicit active contours driven by local binary fitting energy[C]//IEEE Conference on Computer Vision and Pattern Recognition. USA: IEEE, 2007. |
[12] | RASTGARPOUR M, ALIPOUR S, et al. Improved fast two cycle by using KFCM clustering for image segmentation[C]//Proceedings of the 7th International Multiconference of Engineers and Computer Scientists. Australia: [s.n.], 2012. |