| 基于图像处理的钢管缺陷在线监测算法研究 |
2. 精密工程与工业测量国家测绘地理信息局重点实验室,湖北 武汉,430079
2. Key Laboratory of Precise Engineering and Industry Surveying, National Administration of Surveying, Mapping and Geoinformation, Wuhan 430079, China
钢管生产是工业生产的重要组成部分。受矿石品位、生产工艺和生产环境等因素限制,钢管可能产生砂眼、飞边、划痕和麻点等缺陷[1]。这些缺陷严重影响钢管质量,缺陷数量是钢管质量等级评定的关键指标。因此,钢管缺陷检测尤为重要。
根据检测原理的不同,目前国内外常用的钢管缺陷检测包括涡流检测、超声检测、红外检测、漏磁检测以及X射线检测等方法。其中,X射线检测方法具有适用范围广、检验结果直观、检验技术和检验工作质量可自我监测等优点得到了广泛应用[2]。
目前,国内厂家使用的数字式X射线实时成像系统大都缺少图像处理功能,传至用户终端的影像需进行人工判读。该方法受主观因素影响大,工作强度高,效率低,不符合现代钢铁工业的生产要求。因此,利用数字图像处理技术,实现计算机在线监测代替人工判读具有重要意义。本文对基于数字图像处理的钢管缺陷在线监测算法进行了研究,并开展了相关实验验证。
1 钢管DR影像特点实验所用的数字式X射线 (digital radiography, DR) 影像来源于国内某大型钢厂,将影像进行格式转换并去掉非感光区域后,两幅含有气泡等缺陷的影像如图 1所示。
![]() |
| 图 1 缺陷DR影像 Figure 1 DR Images Containing Defects |
钢管DR影像灰度构成单一。缺陷影像则还包含了亮度特征最为显著的缺陷区域 (目标区域),缺陷以外的区域均属于背景。排除极个别影像后,缺陷影像具有如下特点:①混杂部分脉冲噪声;②像素灰度值动态范围小,目标的面积大小、密集程度存在差异,目标区域亮度明显高于背景;③背景区域可细分为非钢管区域与正常钢管区域,在两者交界处,像素灰度值以平缓的方式过渡,形成较弱的伪边缘;④目标区域虽然整体亮度高,但存在亮度较低的目标边缘;⑤部分目标重合。影像特点决定了后续图像处理算法的选取。
2 钢管DR影像的数字图像处理方法在钢管DR影像特征分析的基础之上,本文设计了钢管缺陷在线监测算法,包括3个步骤。
1) 图像预处理:①利用中值滤波方法消除原始影像中的脉冲噪声;②对原始影像进行基于Canny方法的目标区域 (region of interset, ROI) 检测;③进行图像增强;④列灰度曲线法与高斯平滑结合,对缺陷区域外的范围进行平滑。
2) 目标分割:①利用漫水填充初步分割出目标;②进行形态学开运算。
3) 目标提取:①对分割结果进行二值化;②轮廓跟踪;③输出图像处理结果及缺陷信息。
2.1 基于Canny方法的ROI检测新算法为实现钢管缺陷的在线监测,在预处理时需引入ROI检测算法,筛选出可能包含缺陷的图像。
阈值分割法简单快速,常用于数字图像ROI检测,但适应性较差,阈值不容易确定,对环境因素敏感。因此,本文提出基于Canny方法的ROI检测新算法。
传统Canny边缘检测算法[3]门限值需要人工选取,随门限值不同,边缘检测结果将产生较大方差。另外,人工选择门限也不具备自适应能力。本文利用Canny检测门限不定的特点,根据DR影像的梯度分布直方图设计了一种自适应确定高低门限的方法,当用选定的门限对图像做Canny检测时,只检测图像中由缺陷产生的强边缘信息,由此即可完成ROI检测。
梯度直方图能描述梯度信息,经中值滤波后的缺陷影像和正常影像的梯度直方图如图 2所示。其中,由边缘 (目标边缘和伪边缘) 产生的梯度只占梯度总数的极小部分,且强度最高,分布于直方图横轴最右端。在正常影像中,只有较弱的伪边缘信息,其产生的梯度值较小,使得正常影像的梯度分布范围小。而在缺陷影像中,边缘信息显著增多,目标边缘产生高梯度使得梯度分布范围变广,部分缺陷图像的梯度分布甚至占据了整个梯度空间,且强目标边缘产生的梯度值要远远高于伪边缘产生的梯度值。
![]() |
| 图 2 影像的梯度分布直方图 Figure 2 Gradient Distribution Histogram of the Images |
经中值滤波[4]去掉影响ROI检测的脉冲噪声后,利用自适应获取门限的Canny方法实现图像ROI检测的步骤如下。
1) 对平滑后的图像,计算每一点的梯度幅值为:
| $ ~\left\{ \begin{align} &{{P}_{x}}(i, j)=(I(i, j+1)-I(i, j)+ \\ &\ \ \ \ \ \ \ \ \ \ \ \ I(i+1, j+1)-I(i+1, j))/2 \\ &{{P}_{y}}(i, j)=(I(i, j)-I(i+1, j)+ \\ &\ \ \ \ \ \ \ \ \ \ \ I(i, j+1)-I(i+1, j+1))/2 \\ &M(i, j)=\sqrt{{{P}_{x}}{{(i, j)}^{2}}+{{P}_{y}}{{(i, j)}^{2}}} \\ \end{align} \right. $ | (1) |
式中,I为平滑后的图像阵列;Px、Py分别为x方向与y方向的梯度;M(i, j) 为 (i, j) 处的梯度幅值。
2) 统计图像中不同梯度幅值的频率,得到反映图像梯度幅值分布情况的梯度直方图。
3) 按从小到大的顺序,对不同梯度值进行累加,当累加至一定百分比P时,取对应的梯度幅值Ts,则高门限值Th=Ts+TP,TP为定值,表示强目标边缘与伪边缘产生的梯度幅值的平均差异。低门限值Tl=kTh(0 < k < 1,取经验值k=0.4)。
4) 将Th和Tl作为门限值,利用Canny算法对中值滤波后的图像进行边缘检测,若检测到目标边缘,则为包含ROI的影像,进入后续处理,否则排除。
图 3(a)和图 3(b)分别对应图 1中缺陷样例1和样例2的ROI检测结果,强边缘信息均被检出,而弱边缘和伪边缘被忽略,故算法能实现ROI检测。另外,在相同的实验条件下,P与TP相对固定,故算法不失为一种自适应方法。取经验值P=99.5%,TP=40,能检测出所有包含ROI的影像。对P进行微调,能控制ROI检测的误判率和漏检率。
![]() |
| 图 3 ROI检测结果 Figure 3 ROI Test Results |
2.2 采用列灰度曲线法定位非目标区域
ROI检测完成后,本文采用二维拉普拉斯变换[4]对原始图像进行增强,但该方法在增强目标边缘的同时,引入了噪声,也增强了伪边缘。为了保留增强结果同时消除噪声,采用二维高斯函数的一阶导数在图像的非目标区域进行平滑,而非目标区域的定位则依赖于列灰度曲线法。固定列数R,从第一行起对R列上的每一个像素按行递增方式统计灰度值,由此得到图像在第R列的列灰度曲线图。图 4是一幅缺陷影像某一列的列灰度曲线,从中可看到首尾两个灰度突变点,中间起伏较大的部分对应于目标区域。
![]() |
| 图 4 缺陷影像列灰度曲线图 Figure 4 Column Gray Curve of the Defect Image |
从列灰度曲线图上得到首尾两个灰度突变点,为了将伪边缘排除在外,将首个突变点所在行数加上一个较小的正数ioff得到i1,最后一个突变点所在行数减去ioff得到i2,则只要在行数为i1≤i≤i2的范围之外进行高斯平滑,就能最大限度地保留目标边缘,同时平滑掉伪边缘和钢管区域之外的噪声点。实际应用时,可通过在图像不同列取灰度曲线求平均值的方法更准确地定位非目标区域的范围。
2.3 基于区域提取的漫水填充算法图像预处理后,需对缺陷进行分割,根据分割时所依据的图像特性的不同,图像分割大致可分为阈值分割法、边缘检测法以及区域提取法[5]。阈值分割法效率高,但无法区分较弱目标和背景,边缘检测法容易产生伪边缘过多或边缘断裂严重的情况,故本文采用基于区域提取的漫水填充算法。
漫水填充本质上是种子填充算法,可将连通分量标记为同一颜色或灰度值,区域的连通性依据像素点之间颜色值或灰度值的相似性来定义。设当前像素点为Src (i, j),则Src (i, j) 被纳入连通区域的条件为:
| $ \text{Src}(i', j')-{{I}_{\text{low}}}\le =\text{Src}(i, j)\le =\text{Src}(i', j')+{{I}_{\text{up}}} $ | (2) |
式中,Src (i′, j′) 为Src (i, j) 已知的已被纳入连通区域的相邻点;Ilow和Iup为较小的正整数,视图像灰度分布情况而定。
使用漫水填充算法前需确定种子点、Ilow和Iup的值。本文选取图像左下角点为种子点,并根据图像灰度分布特点,取Ilow=2,Iup=1。为排除左下角点刚好为噪声点的极端情况,可对该点邻域内像素点进行遍历,取灰度值为中值的点作为种子点。
漫水填充法与两种不同阈值分割法的分割结果见图 5,从中可看出Otsu阈值法[6]和最小误差阈值法[7]均无法区分部分目标与背景,漫水填充法则完整分割出了目标。
![]() |
| 图 5 两种阈值分割法与漫水填充法分割效果比较 Figure 5 Comparison of Segmentation Results Between Threshold Segmentation Methods and Flood Fill |
2.4 基于边界跟踪的目标特征提取
漫水填充法虽然较完整地分割出了目标,但分割结果中存在残留噪声形成的斑点,目标边缘不够清晰,少数原本独立的目标连为一体。为去除斑点噪声,修正目标形状的失真,采用形态学开运算[8]对分割结果进行处理,以消除斑点噪声,相连的独立目标被分开,二值化后即可进行缺陷轮廓特征的提取。
本文采用边界跟踪的方式提取目标轮廓。轮廓实质上是由以坐标序列形式存储于链表之中的一系列边界点组成,因此,当获得目标的轮廓后,即可方便地计算其几何特征和矩特征。
Suzuki等提出了一种边界跟踪算法,该算法能追踪二值图像中的外边界和孔,并确定它们间的层次关系[9]。图 6(a)表示一幅二值图像,阴影部分代表白色区域,为1-连通分量;空白部分代表黑色区域,为0-连通分量。各连通分量和边界的层次关系分别如图 6(b)和图 6(c)所示。
![]() |
| 图 6 二值图像中连通分量和边界的层次关系 Figure 6 Hierarchical Relationships of Connected Components and Edges in Binary Image |
用I(i, j) 表示二值图像像素值,则算法的大致实现步骤如下。
1) 按从左至右、自上而下的顺序遍历图像,当搜索到边界跟踪的起始点时暂停扫描。起始点的判断方法是:若I(i, j-1)=0且I(i, j)=1,则I(i, j) 为外边界起始点;若I(i, j)≥1且I(i, j+1)=0,则I(i, j) 为孔边界起始点。为新找到的边界分配唯一ID值,记为NNBD(对于图像边界NNBD=1,每寻找到一条新边界,NNBD值加1)。
2) 确定新边界的父边界。可根据新边界类型 (外边界或者孔) 和最新找到的上一条边界类型,确定新边界的父边界。
3) 从起始点开始,跟踪找到的新边界,并标记边界上的点。设当前跟踪点为 (p, q),则具体标记方法为:若I(p, q)=1且I(p, q+1)=0,则令I(p, q)=-NNBD,-NNBD表示跟踪到了边界右边的终止点;否则,若 (p, q) 不为任何已完成跟踪的边界上的点,则令I(p, q)=NNBD。
4) 当整条边界的跟踪和标记完成后恢复扫描,直至遍历至图像右下角点,算法结束。
将上述算法跟踪到的边界以2个像素的宽度显示,所得结果如图 7所示,缺陷用完整、连续、封闭的轮廓表示。
![]() |
| 图 7 用追踪到的边界表示缺陷 Figure 7 Defects Expressed by Followed Edges |
得到目标的轮廓后即可获取缺陷个数、位置、周长和面积等基本信息。缺陷个数为跟踪到的外轮廓的总数,而缺陷位置可用其坐标系方向的外接矩形的中心坐标表示。计算出目标边界点的最小和最大坐标值,即可确定坐标系方向上的外接矩形。
缺陷周长采用Freeman码[10]计算。Freeman码用曲线起始点坐标及边界点方向代码对轮廓或曲线进行描述,用8-Freeman码表示轮廓的方法如图 8所示。
![]() |
| 图 8 Freeman码表示轮廓 Figure 8 Contours Expressed by Freemen Code |
周长可按下式计算:
| $ p=\sqrt{2}{{N}_{o}}+{{N}_{e}} $ | (3) |
式中,No表示Freeman链码奇步数目;Ne表示偶步数目。
面积的计算方法如图 9所示,将轮廓包围的整个区域拆分成小三角形,通过对小三角形面积的累加即可得到区域面积A为:
![]() |
| 图 9 区域面积计算方法图解 Figure 9 Calculation of the Region Area |
| $ A=\frac{1}{2}\sum\limits_{i=1}^{{{N}_{b}}}{({{x}_{i+1}}{{y}_{i}}-{{x}_{i}}{{y}_{i+1}})} $ | (4) |
式中,Nb代表区域边界点的数目。
3 实验结果与分析利用本文算法对61张实验影像进行处理,部分缺陷图像处理前后的对照如图 10所示,4幅原始图像在整体亮度、目标数量、总面积或分布的离散程度等方面有明显差异,但在结果中,检出的大小目标均完整、无遗漏或较少遗漏,原来的灰度特征得到保留,表明本文算法具有较好的适应性。
![]() |
| 图 10 不同缺陷影像的处理结果 Figure 10 Processing Results of Different Defect Images |
61幅影像全部检测完毕耗时约35.5 s,平均每张图像处理时间小于0.6 s (实验用计算机内存2 G,CPU频率1.90 GHz)。其中12张缺陷影像全部被检出,漏检数为0,误判数为1,基本实现在线监测。实际检测时,缺陷影像所占比例远小于20%,处理速度将明显提高。检测报告的一部分如表 1所示,其中包含肉眼不易发现的细小缺陷信息,结果表明,本文算法比人工检测更能检出细小目标,效率更高。表 1中统计信息代表每张图片上缺陷信息的情况。
| 表 1 部分检测报告 Table 1 Part Test Reports |
![]() |
4 结束语
本文研究了基于数字图像处理的钢管缺陷检测算法,阐述了基于Canny检测的ROI检测法、针对特定区域的图像平滑、漫水填充和边界跟踪等几种算法的基本原理与实验效果。结果表明,算法具有良好的适应性,相比人工方法具有自动化程度高、细小缺陷检测效果好和效率高等优势。下一步的研究将围绕缺陷类型识别和缺陷监测软件研发两方面展开。
| [1] |
国家质量监督检验检疫总局. GB/T 15757-2002. 产品几何量技术规范 (GPS) 表面缺陷术语、定义及参数[S]. 北京: 中国标准出版社, 2002 |
| [2] |
刘玲慧. 工业CT/DR图像缺陷检测算法研究[D]. 重庆: 重庆大学, 2009 |
| [3] | Canny J. A Computational Approach to Edge Detection[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1986, 8(6): 679–698 |
| [4] |
Gonzalez R C, Woods R E. 数字图像处理[M]. 2版. 阮秋琦, 阮宇智. 北京: 电子工业出版社, 2006 |
| [5] |
胡惠灵. 基于视觉检测的引水压力钢管缺陷检测技术研究及应用[D]. 合肥: 合肥工业大学, 2011 |
| [6] |
马彩青. 基于图像处理的PCB缺陷检测系统的设计与研究[D]. 成都: 西南交通大学, 2009 |
| [7] | Kittler J, Illingworth J. Minimum Error Thresholding[J]. Pattern Recognition, 1986, 19(1): 41–47 DOI: 10.1016/0031-3203(86)90030-0 |
| [8] |
Bradski G, Kaehler A. 学习OpenCV[M]. 于仕琪, 刘瑞祯. 北京: 清华大学出版社, 2009 |
| [9] | Suzuki S, Be K. Topological Structural Analysis of Digitized Binary Images by Border Following[J]. Computer Vision Graphics and Image Processing, 1984, 30(1): 32–46 |
| [10] | Freeman H. On the Classification of Line-Drawing Data[J]. IEEE Transactions on Systems Science and Cybernetics, 1969, 5(1): 70–79 DOI: 10.1109/TSSC.1969.300247 |
2017, Vol. 42












