随着科学技术的飞速发展, 焊接作为先进制造业中的一种基本工艺方法, 已被广泛应用于航空, 航天, 核工业, 能源交通, 石油化工及建筑和机械等各个工业部门. 对于焊接结构件来说, 焊缝质量很大程度上决定了结构件的使用寿命. 但是在焊接过程中, 往往由于焊接工艺参数的不稳定, 或者结构件焊接应力变形等诸多不良因素的存在, 使得焊缝中不可避免的出现诸如气孔、裂纹、夹渣、未融合、咬边、未焊透及烧穿等缺陷, 这些焊缝缺陷的存在, 不但影响了焊缝的美观, 而且更严重的是直接导致焊接结构件的失效, 甚至引起危险的脆断, 带来极大的经济损失. 因此, 为了保证焊接结构件的质量, 防止事故的发生, 焊后对焊缝缺陷的准确检测就变得尤为关键.
为了确保在焊接过程中结构件产品不出现问题, 就必须要对其中的焊缝进行无损检测[1]. X射线检测作为无损检测的一种常用技术, 已经成为检测焊接缺陷的重要手段. 目前大多数企业的X射线探伤检测仍以人工评定方式为主, 人工评定本身易受个人自身经验和主观标准不一致的影响, 并且人工评定劳动强度大, 工作效率低. 因此, 迫切需要提高焊缝缺陷检测的自动化水平, 降低漏检率和误检率[2,3]. 本文根据某石油钢管厂的实际需求, 提出了一种基于背景重构的焊缝缺陷自动检测方法.
2 传统方法存在的问题分析焊缝缺陷自动检测的核心是图像处理、目标识别、缺陷跟踪[4]. 由于采集到的X射线焊缝图像具有噪声多、缺陷对比度不高、背景起伏较大以及不同类型缺陷灰度分布特征差别较大等特点, 给利用图像处理技术实现缺陷自动检测带来了很大的困难. 国内外学者都对此进行了深入研究, 并且在过去的二三十年间, 提出了许多焊缝缺陷自动检测的方法, 主要分为以下两类:
(1) 基于焊缝缺陷位置的方法[5,6]. 在实际生产中, 焊缝缺陷一般分布在焊缝区域的内部、外部和靠近焊缝边界处, 此类方法在检测之前必须准确的提取出焊缝的边界, 分割出焊缝区域, 针对相对于焊缝区域不同位置的缺陷采取不同的检测算法, 因此, 此类方法的检测精度对焊缝区域能否准确提取依赖性较大, 并且如果缺陷非常靠近焊缝边界处, 由于受到焊缝边界的影响, 甚至会引起较多的误报.
(2) 基于模式识别的检测方法[7]. 此类方法需要训练大量的缺陷样本, 从而获得分类器, 然后通过分类器来检测缺陷. 其缺点是在训练缺陷样本的时候需要人工标记缺陷信息, 人工标记缺陷信息一方面工作量大, 另一方面由于对缺陷没有统一的判别标准, 再加上工作人员个体认知的差异, 标记的结果差别较大, 故难以实际应用.
针对上述两类方法中存在的不足, 本文提出一种基于背景重构的钢管焊缝缺陷检测算法. 该算法不需要提取焊缝区域, 也不需要人工大量标记缺陷信息, 可准确的检测中不同类型的缺陷, 具有较强的抗干扰能力.
3 焊缝图像模型分析首先分析焊缝图像的数学模型. 下图是一张含有缺陷的焊缝图像(如图1所示).
从图像中我们可以看出, 一张含有缺陷的焊缝图像可以分为如下三区域: 背景区域、焊缝区域、缺陷区域. 即满足如式(1).
$F = {F_B} + {F_H} + {F_Q}$ | (1) |
其中, F表示整张图像; FB表示背景区域; FH表示焊缝区域; FQ表示缺陷区域.
由式(1)可推得:
${F_Q} = F - {F_B} - {F_H} = F - \left( {{F_B} + {F_H}} \right)$ | (2) |
由式(2)可知, 要想求得缺陷区域FQ, 我们只需求得背景区域FB及焊缝区域FH即可, 因此, 检测缺陷FQ的问题即被转化为求取背景区域FB及焊缝区域FH的问题.
4 算法原理及检测流程独立成分分析(ICA)算法是指: 在源信号s(t)中各分量相互独立的假设下, x(t)为观测信号, 通过解混系统B把他们分离开来, 使得解混后输出y(t)逼近于s(t). 该算法的一般流程如图2所示.
在焊缝缺陷检测中, 我们可以认为正常的无缺陷的图像为源信号s(t), 而含有缺陷的图像为观测信号x(t), 我们通过解混系统将观测信号x(t)(含有缺陷的图像)进行解混, 使得解混后输出的y(t)逼近于s(t), 这样就估计出了含有缺陷的图像但是不含缺陷区域的背景图像.
在本文实验中, 首先选取一系列正常的无缺陷的钢管焊缝X射线图像集作为输入信号源s(t), 并且对这一系列的正常图像进行尺寸和亮度的归一化, 然后, 使用快速ICA算法从这一系列正常图像中训练出一组独立的基底, 并用该组基底逼近输入的含有缺陷的测试图x(t), 得到结果图像y(t), 在结果图像中, 背景区域和焊缝区域得到较好的表达, 缺陷区域表达不好. 最后, 用输入的含有缺陷的测试图像与逼近的结果图像相减, 得到差后图像, 此时的差后图像中缺陷区域被凸显出来, 背景区域和焊缝区域均被减去, 对差后图像最后使用图像的二值化方法, 可提取出最终缺陷.
5 图像预处理由于实际工作现场诸多因素的影响, 导致采集到的X射线焊缝图像均存在信噪比低、背景起伏大、对比度低等缺点, 给后续的缺陷提取工作造成了很大的困难, 所以图像预处理是非常必要的.
5.1 图像滤波通过对实际X射线焊缝图像噪声类型的研究, 笔者采用了均值滤波进行降噪[8], 并取得了很好的效果.
均值滤波是指在图像上对目标像素设定一个模板, 该模板包括了其周围的临近像素, 再用模板中的全体像素的平均值来代替原来像素值. 设原图像为f(i, j), 窗口大小为
$g\left( {i,j} \right) = \frac{1}{{\left( {2k + 1} \right)\left( {2l + 1} \right)}}\sum\limits_{s = - k}^k {\sum\limits_{t = - l}^l {f\left( {i + s,j + t} \right)} } $ | (3) |
经过大量实验表明, 采用3×3的模板进行均值滤波后, 噪声信号的干扰得以有效的抑制.
5.2 图像增强由于实际工作现场诸多因素的影响, 导致采集到的图像对比度较低, 因此对其进行增强是十分必要的. 针对不同质量的图像, 采用不同的灰度转换函数可以取得良好的增强效果.
在各种转换函数中, 正弦函数由于在上下波头处变换平缓, 中间变化比较大, 与X射线焊缝图像的灰度变化非常相近, 因此可以利用正弦函数对焊缝图像进行非线性灰度变换[9].
$\begin{aligned}g\left( {x,y} \right) & = 127*\left\{ {1 + \sin \left[ {\pi \cdot f\left( {x,y} \right)/\left( {b - a} \right) } \right.} \right.\\ &\left. {\left. {- \left( {\pi \cdot \left( {b + a} \right)/2 \cdot \left( {b - a} \right)} \right)} \right\}} \right]\end{aligned}$ | (4) |
式中, f(x, y)为变换前点(x, y)的灰度; g(x, y)为变换后点(x, y)的灰度; a为变换前图像的最低灰度值; b为变换前图像的最高灰度值.
利用式(4)对原图进行增强, 增强前后效果如图3所示, 从图3(b)可以看出, 正弦增强函数的确可以有效的增强X射线焊缝图像的对比度.
6 基于快速ICA的背景估计
获得预处理后的正常的无缺陷的图像集合后, 我们需要从该集合中学习一组基向量, 该组基向量可以很好的表达出焊缝图像的背景区域FB和焊缝区域FH, 并且能够抑制缺陷区域FQ. 常用的基向量学习方法有: 主分量分析法(PCA)、高斯混合模型(GMM)和独立成分分析(ICA)等等. 本文采用了快速ICA方法, 该方法具有计算效率高, 分离效果好, 收敛速度快, 并且不受训练样本数的影响. 下面给出基于快速ICA算法进行基向量学习, 并估计含有缺陷图像的FB和FH的具体步骤:
(1) 将预处理后的正常的无缺陷的图像集合中的所有训练样本组成观测矩阵Z;
(2) 对观测矩阵进行中心化, 使它的均值为0;
(3) 对观测矩阵进行白化, 得到新的观测矩阵Z1;
(4) 选择一个初始化随机权矩阵W;
(5) 根据式(5)对权矩阵W进行迭代更新, 知道更新完W中每一个列向量, 得到新的权矩阵W1;
${W_1} = E\left\{ {{Z_1}{\rm{tanh}}\left( {{W^{\rm{T}}}{Z_1}} \right)} \right\} - E\left\{ {{{\tanh }'}\left( {{W^{\rm{T}}}{Z_1}} \right)} \right\}W$ | (5) |
(6) 得到权矩阵W1后, 根据式(6), 得到学习出的基向量H;
$H = {W^{\rm{T}}}{Z_1}$ | (6) |
(7) 得到基向量H后, 根据式(7), 即可得到含有缺陷的焊缝图像的估计背景图像FBH;
${F_{BH}} = H * {F_{{\text{测}}}}$ | (7) |
式中, F测为待检测的含有缺陷的焊缝图像.
7 缺陷分割含有缺陷的焊缝图像经过上述背景估计后, 焊缝图像的背景区域FB和焊缝区域FH已经估计得到, 接下来, 我们只需将含有缺陷的原图像与估计得到的图像进行做差, 即可将缺陷信息凸显出来, 最后通过图像分割的方法将缺陷提取出来.
7.1 分割方法介绍图像分割经常用在数字灰度图像中提取目标物体中, 它主要分为两大类: 一是基于空间灰度阈值的分割方法; 二是空间域增长分割方法. 本文采用了第一类灰度阈值分割方法[10], 灰度阈值分割就是先确定一个处于图像灰度取值范围之中的灰度阈值, 然后将图像中各个像素的灰度值都与这个阈值相比较, 并根据比较结果将对应的像素划为两类, 像素的灰度值大于阈值的划为一类, 像素的灰度值小于阈值的划为另一类(灰度值等于阈值的像素可归入这两类之一).
要想把焊缝图像中的缺陷信息从背景中完整的分割出来, 确定一个合适的阈值就显得尤为关键. 若阈值选得过高, 这势必会影响分割出来的缺陷的大小和形状, 甚至有些不明显的缺陷点容易被误归为背景, 造成漏检. 反之若阈值选得过低, 则容易引起误检. 目前已经提出的阈值选取方法有很多种, 例如最大类间方差法、最大熵值法、最小误差法和简单统计法等等.
7.2 缺陷分割经过对各种阈值选取方法的试验, 本文采取了迭代阈值分割法对图像进行阈值分割, 从而成功有效的将缺陷分割出来.
迭代阈值分割的原理是首先选择一个近似的阈值作为估计计算的初始阈值, 然后进行阈值分割, 产生子图像, 并根据子图像的灰度特性选取新的阈值, 经过多次的迭代之后, 平均灰度值将趋向于真值. 迭代阈值分割的具体算法步骤如下:
(1) 选取一个初始阈值
${T^0} = \frac{{{Z_{{\rm{min}}}} + {Z_{\max }}}}{2}$ |
其中, Zmin, Zmax分别表示图像中灰度值的最小最大值.
(2) 利用Tk将图像分成小于Tk和大于Tk两组R1和R2, 并计算它们的灰度均值Z1和Z2.
$\begin{array}{l}{Z_1} = \frac{{\sum\limits_{f\left( {i,j} \right) < {T^k}} {f\left( {i,j} \right)} }}{{{N_1}}}\\{Z_2} = \frac{{\sum\limits_{f\left( {i,j} \right) > {T^k}} {f\left( {i,j} \right)} }}{{{N_2}}}\end{array}$ |
其中, f(i, j)是图像中点(i, j)的灰度值, N1, N2分别为R1和R2中的像素个数.
(3) 计算新的阈值T k+1.
${T^{k + 1}} = \frac{{{Z_{\rm{1}}} + {Z_2}}}{2}$ |
(4) 如果Tk+1=Tk则结束, 否则k=k+1, 转步骤(2).
7.3 分割结果进一步处理经过上述阈值分割方法, 我们可得到缺陷与背景的二值化图像, 其中缺陷信息灰度值为255, 背景信息灰度值为0. 但是经过仿真我们发现, 由于采集过程中某些不确定性因素或者成像面板上的坏点而造成采集到的焊缝图像上有些许灰度值极高的离散斑点, 这些斑点在经过阈值分割后同样被分割出来, 从而会引起误检, 因此我们需要将阈值分割后的结果进行进一步处理, 消除这些斑点引起的误检.
通过大量仿真研究, 我们设计了如下的解决方案: 我们将经过阈值分割出来的缺陷结果视为一个一个的连通域, 然后计算每个连通域内包含的像素个数, 我们知道, 容易引起误检的离散斑点所包含的像素相比于真实的缺陷所包含的像素是非常少的, 因此, 我们可以确定一个像素阈值, 如果某个连通域内所包含像素个数低于此像素阈值, 那么我们即认为该连通域为“伪”缺陷, 反之则认为是真实缺陷. 最后将“伪”缺陷过滤, 真实缺陷保留.
8 实验结果本文选取了580幅正常的无缺陷的焊缝图像作为训练样本, 含有各类缺陷的测试图像为240幅, 下面给出最终的各种缺陷类型提取分割结果图, 如图4所示.
9 结论与不足由于X射线焊缝图像噪声多、缺陷对比度不高、背景起伏较大以及不同类型缺陷灰度分布特征差别较大, 因此在缺陷检测较为困难. 本文在分析了传统方法在X射线钢管焊缝缺陷检测中存在的问题基础上, 提出了一种基于快速ICA的背景估计的X射线钢管焊缝缺陷检测算法. 该算法具有以下优点:
(1) 不分缺陷类型. 该算法对缺陷类型不敏感, 对任何缺陷均可以检测, 有较好的通用性.
(2) 速度快. 该算法在检测过程中无需检测焊缝区域, 直接对整幅图进行背景重构, 重构完毕做差即可凸显出缺陷.
(3) 适用性强. 对于空间对比度不同的缺陷均有很好的检测效果.
(4) 稳定性好. 在两年多的时间里, 我们在实验室和工厂现场应用本文提出的算法进行了上百次实验, 漏报率为2.14%, 误报率为3.88%, 结果证明该算法的重复性和可靠性较好.
当然, 该算法还有些许不足之处: 在对差后图像进行阈值分割时, 在阈值的选取上尚不能做到完全的自动准确的选取, 需要一定的人工干预. 这将是后续的一个研究问题, 在该方面还得继续深入研究.
[1] |
仲维畅. 工具钢环形试件表面因其表面下人工孔而产生的漏磁场—磁粉探伤原理之三十二. 第九届全国无损检测新技术学术研讨会论文集摘要汇编. 宁波, 中国. 2004. 116–120.
|
[2] |
耿荣生. 更快、更可靠和更直观——第16届世界无损检测会议综述. 无损检测, 2004, 26(11): 565-569, 592. DOI:10.3969/j.issn.1000-6656.2004.11.006 |
[3] |
Tian Y, Du D, Hou RS, et al. A model of automatic detection system for weld defects based on machine vision. In: Tarn TJ, Chen SB, Zhou C, eds. Robotic Welding, Intelligence and Automation. Lecture Notes in Control and Information Sciences. Berlin Heidelberg: Springer, 2007. 341–348.
|
[4] |
Ding M, Fan GL. Fast human pose tracking with a single depth sensor using sum of Gaussians models. In: Bebis G, Boyle R, Parvin B, et al, eds. International Symposium on Visual Computing. ISVC 2014: Advances in Visual Computing. Cham: Springer, 2014. 599–608.
|
[5] |
张晓光, 孙正, 胡晓磊, 等. 射线检测图像中焊缝和缺陷的提取方法. 焊接学报, 2011, 32(2): 77-80. |
[6] |
Tang YL, Tong RF, Tang M, et al. Depth incorporating with color improves salient object detection. The Visual Computer, 2016, 32(1): 111-121. DOI:10.1007/s00371-014-1059-6 |
[7] |
张晓光, 林家骏. 基于模糊神经网络的焊缝缺陷识别方法的研究. 中国矿业大学学报, 2003, 32(1): 92-95. |
[8] |
邵家鑫, 都东, 朱新杰, 等. 基于X射线数字化图像处理的双面焊焊缝缺陷检测. 焊接学报, 2010, 31(11): 21-24. |
[9] |
高炜欣, 胡玉衡, 武晓朦, 等. 埋弧焊X射线焊缝缺陷图像分类算法研究. 仪器仪表学报, 2016, 37(3): 518-524. |
[10] |
孙怡, 孙洪雨, 白鹏, 等. X射线焊缝图像中缺陷的实时检测方法. 焊接学报, 2004, 25(2): 115-118, 122. |