1、基于灰度的螺旋缝焊管 X 光焊缝识别 张继建 付超 王胜辉 王刚 山东胜利钢管有限公司 摘 要: 焊缝识别是螺旋缝焊管 X 光缺陷识别的基础。以 MATLAB 软件图像处理工具箱IPT 为基础, 根据螺旋缝焊管 X 光图像的特征, 通过中值滤波、屏蔽等预处理, 利用图像梯度及概率求取焊缝中心线, 并进一步精化, 从而实现焊缝分割。通过实例给出识别算法, 并分析该 X 光焊缝识别方法的适用性。关键词: 螺旋缝焊管; 焊缝识别; X 光; 图像分割; MATLAB 软件; 作者简介:张继建 (1973-) , 男, 高级工程师, 从事螺旋缝焊管生产技术的研究等工作。收稿日期:2017-04-10G
2、rayscale-based X-ray Weld Seam Recognition for SSAW PipeZHANG Jijian FU Chao WANG Shenghui WANG Gang Shandong Shengli Steel Pipe Co., Ltd.; Abstract: Welded seam identification is the major purpose of X-ray defect recognition technique for the spiral welded pipe. Based on the MATLAB image toolbox IP
3、T, and according to the characteristics of the X-ray image of the spiral welded pipe, welded seam segmentation is implemented by means of median filtering, ROI shielding pretreatment, and using the image gradient and probability to calculate the weld centerline which is then further refined. Finally
4、, the recognition algorithm is described with actual examples, and the applicability of the X-ray weld seam recognition method is analyzed.Keyword: SSAW pipe; weld seam recognition; X-ray; image segmentation; software MATLAB; Received: 2017-04-10X 光图像缺陷自动识别是螺旋缝焊管无损检测的发展方向之一。其中, 焊缝识别, 也称焊缝分割、边缘检测, 是
5、X 光图像缺陷判断的前提。由于图像问题的复杂性, 在过去的 40 年中, 虽已提出和实现了很多图像分割技术和算法, 但除了相对简单的场景外, 分割问题仍没有解决1。目前没有成熟的图像分割基本理论, 只有一些特殊的方法。本文以 MATLAB 软件及其内置的图像处理工具箱 IPT (Image Processing Toolbox) 作为开发工具2, 尝试根据螺旋缝焊管 X 光图像的具体特征对焊缝进行分割。1 X 光图像采集及存储工业 X 光使用多种方法3-4采集焊缝图像信息并传递到计算机。一般使用 8位 256 色二维灰度矩阵对 X 光图像进行存储和处理5, 矩阵一般设计为 2 阶方阵。某焊缝
6、X 光原始图像如图 1 所示, 其中的 X 光图像为 512512 像素, 在计算机内部表示为:式中 x, y行列坐标;Z灰度。为方便计算, 将图像 Z 转化为值域0, 1的双精度矩阵, IPT 实现语句为:Zd=im2double (Z) 。2 螺旋焊缝 X 光图像特征需依据一定特征进行图像识别。理想的螺旋缝焊管 X 光图像有以下特征。(1) 强干挠集于周边。射线采集成像过程中, X 光采集板与螺旋缝焊管存在一定间隙, 为避免漏光, 使用光栅进行遮挡。遮挡较好时, 在图像边侧形成色度为 0 的全黑无用信息, 如图 1 所示四周黑边;遮挡较差或未遮挡时, 在图像边侧形成色度为 255 的全白无
7、用信息, 如图 1 所示左下大片白;而大部分情况下, 漏光在 X 光图像周边形成干挠, 使其灰度降低, 如图 1 所示左上区域。干挠信息主要集中在图像的四周, 对图像中间区域影响不大。图 1 焊缝 X 光原始图像 下载原图(2) 焊缝角度和宽度确定。X 光图像中, 螺旋缝焊管的焊缝基本呈一直线。对于某一螺旋缝焊管, 其旋向、成型角和焊缝宽度也是确定的。这些信息可以在焊缝识别前得到, 也可以在 X 光图像中识别出来。焊缝在 X 光图像中的方向与采集系统安装位置有关。图 1 中, 焊缝与水平线的夹角为成型角, 焊缝为右旋。(3) 焊缝灰度最小, 焊缝边缘梯度最大。图 2 所示为图像 1 中间水平剖
8、面 (256行) 的灰度与梯度。可见, 焊缝较非焊缝区域灰度更小;同时焊缝边缘灰度变化最大, 即梯度最大。可以认为, 通常情况下, 焊缝区域的灰度比邻域小, 灰度最小的点在焊缝上;在焊缝及邻域内, 梯度最大两点为焊缝边缘。由于 X 光图像存在干扰, 灰度或梯度会出现乖离点, 所以据以上原则做焊缝的精确判断时需要进行甄别。图 2 256 行剖面灰度及水平梯度 下载原图3 图像预处理3.1 滤波低通滤波是图像边缘处理的必要步骤。对 X 光图像, 低通滤波可以降低 X 光动态抖动信号影响, 也可以平滑因气孔、夹渣等灰度突变信息引起的影响。根据文献4, 6的研究, 中值滤波较适合于 X 光图像。选择
9、MATLAB 软件默认的 33 阶二维中值滤波器, 实现如下:滤波图像 Zf与滤波前图像 1 差别不明显, 本文不再显示。3.2 屏蔽 (ROI) 因为 X 光图像具有强干扰集于周边的特征;因此, 出于屏蔽无用信息及选择有用信息的考虑, 需对 X 光图像进行屏蔽处理。选定最大 (屏蔽较亮无用信息区) 与最小 (屏蔽较暗无用信息区) 两个阈值进行图像二值化。选择面积最大的中间连通域及其包围部分, 腐蚀一次, 然后确定为“有效”区域;非有效区域为“无效”区, 进行屏蔽。可以认为焊缝及有效信息均在“有效”区域内。该过程中, 腐蚀一次是为屏蔽有效与无效区域的过渡界线, 初步消除乖离点。选择阈值为 0
10、及 255 时, 图 1 的二值化图像如图 3 (a) 所示, 经上述全部屏蔽过程后的最终图像如图 3 (b) 所示。图 3 屏蔽效果图像 下载原图4 焊缝预估对于确定焊缝信息如宽度、成型角等可直接引用;不确定的情况下, 也可通过 X光图像进行求取。确定以下焊缝信息, 作为精确识别 X 光焊缝的依据和基础。4.1 焊缝“边缘”及“中点”在图 3 (b) 所示 X 光片基础上, 逐行扫描: (1) 搜索灰度最小点; (2) 在灰度最小点两侧附近搜索梯度最大点, 判定为焊缝“边缘”; (3) 焊缝边缘两点中点认定为焊缝“中点”。焊缝边缘搜索结果如图 4 所示, 两条黑线及周围零散黑点为焊缝“边缘”
11、。图 4 焊缝边缘搜索结果 下载原图4.2 焊缝宽度两焊缝边缘横坐标差即为焊缝水平宽度。但根据 4.1 节所求焊缝边缘明显有一部分乖离点;因此, 根据概率原则7求出“准确”可信的焊缝水平宽度范围。具体步骤如下:(1) 根据两边缘坐标得出每行焊缝水平宽度, 焊缝水平宽度的概率分布曲线如图 5 所示;图 5 焊缝水平宽度的概率分布曲线 下载原图1置信区间左分界线 2置信区间右分界线(2) 设定置信水平, 如 60%, 处于置信区间内的点是可信的, 而处于区间外的点为乖离点;(3) 如图 5 所示, 从最大概率点开始, 按“高概率点移位”原则移位, 即左右两侧哪一侧概率高则哪一侧移一个点位, 逐渐扩
12、大置信区间, 直至置信区间概率和为置信水平, 即水平线 1、2 以上概率和为 60%;(4) 求得置信区间, 为 (88, 108) 像素;并求得置信区间内点的加权平均值, 即焊缝水平像素宽度 b=97.7 像素;(5) 求焊缝实际宽度 B。B 的计算公式为:式中 K实际距离像素比, mm/像素, K=1/6.4;成型角, () , 由 4.4 节可求得。由公式 (3) 可计算出 B 为 10.2 mm。4.3 焊缝中心及边缘认定置信区间内的点为“准确”焊缝边缘, 其中点则为“准确”焊缝中心, 并以此系列点为基础, 使用一次多项式拟合, 求得焊缝中心线的解析方程:公式 (4) 即为“精确”焊缝
13、中心线。将中心线上移或下移半个焊缝宽度即可得到粗略的焊缝边缘, 焊缝预估图像如图 6 所示。公式 (4) 采用 MATLAB 软件中的图像坐标系:左上角为原点, 向右为 X 轴正方向, 向下为 Y 轴正方向。图 6 焊缝预估图像 下载原图4.4 成型角在公式 (4) 中, 斜率为 1.1, 即焊缝中心线与垂线夹角的正切;而成型角是焊缝与水平线的夹角, 则 =90-arctan1.1=42.0。4.5 再屏蔽在 X 光图像中, 乖离点会对焊缝分割形成干扰, 并浪费计算机的资源, 而屏蔽这些点会使焊缝识别更为精确。因此, 焊缝中心线确定后, 对 X 光图像再屏蔽, 可屏蔽“消除”乖离点。以焊缝中心
14、线为中心, 保留 1.3 倍焊缝宽度进行屏蔽。与图 3 (b) 复合屏蔽后图像如图 7 所示。图 7 X 光复合屏蔽图像 下载原图5 焊缝识别经过上述步骤, 焊缝识别简化为对图 7 的 X 光图片二值化, 将焊缝区域从图像中分割出来。区域分割有两种基本算法, 以强度、梯度为代表的非连续法和以区域生长为代表的连续算法8-9。本文以梯度为主, 并结合行生长算法进行焊缝分割。5.1 分割步骤(1) 分块。焊缝在 X 光图像不同区域的强度 (灰度) 差异较大。因此, 相同强度的点在不同区域应进行不同的分割。为确保分割的区域性, 应将图像分块。按逐行并以焊缝中心左右分块, 最多分为 512 行2 块/行
15、=1 024 块。图像的行焊缝中心不存在时 (如图 6 所示焊缝最上方焊缝中心不穿过焊缝所在的行) , 以焊缝灰度最小点分界。(2) 块分割。搜索每块的梯度最大点, 即为焊缝边缘, 焊缝边缘到焊缝中心线即为焊缝区域。(3) 焊缝分割。连接步骤 2 中所有分割区域, 即为焊缝, 如图 8 所示。图 8 焊缝 (未处理边缘) 下载原图(4) 边缘处理。图 8 所示为焊缝边缘呈不规则锯齿形, 是因为采用以梯度为主的非连续法求出的。因此, 使用边缘 10 点的移动平均值 (位置) 对边缘进行平滑处理。最终的焊缝分割效果如图 9 所示。图 9 最终的焊缝分割效果 下载原图5.2 适用性所有图像分割算法都
16、有特定的使用环境, 但其适用性都不好。该算法在使用时应注意以下两点。(1) 图像边界焊缝。在图像边界处, 干扰信息增强, 焊缝宽度变窄, 因此图像边界处焊缝特征与正常焊缝存在较多偏差, 此时图像分割误差较大。因此, 在处理 X 光图像时的屏蔽过程中, 适当扩大周边屏蔽区域。这虽然在静态识别中会造成信息缺失, 但在动态识别中可以通过增加帧采集频率, 改变周边焊缝在后续帧图像的位置, 从而弥补这一缺陷。(2) 管端焊缝。与图像边界焊缝相比, 管端 X 光焊缝图像存在同样的干扰增强及焊缝变窄的问题, 但其不能通过改变焊缝在动态帧中不同位置的方法解决;因此只有在检测过程中, 使用计算机自动识别与人工识
17、别结合方式解决。6 结语在螺旋缝焊管 X 光图像中, 通过图像的灰度及梯度差别, 并结合概率方法可以获得焊缝中心线及成型角等相关的焊缝信息, 并可进一步做到精确的焊缝识别。参考文献1Marques O.实用 MATLAB 图像和视频处理M.章毓晋, 译.北京:清华大学出版社, 2013. 2赵国生.MATLAB 完全学习手册M.北京:清华大学出版社, 2015. 3韩得水.基于 X 射线平板探测器的直焊缝检测技术D.太原:中北大学, 2014. 4丛焕武, 郭福娟, 吕飞, 等.基于 CCD 图像处理的焊缝识别技术研究J.电子测量技术, 2012, 35 (3) :73-77. 5梁硼.X 射线焊缝图像缺陷自动提取与识别技术研究D.南京:南京航空航天大学, 2012. 6高炜欣, 胡玉衡, 穆向阳, 等.埋弧焊 X 射线焊缝图像缺陷分割检测技术J.仪表仪器学报, 2011, 32 (6) :1215-1224. 7朱钰, 杨殿学.统计学M.北京:国防工业出版社, 2012. 8谢凤英.数学图像处理及应用M.北京:电子工业出版社, 2014. 9李了了, 邓善熙, 丁兴号.基于大津法的图像分块二值化算法J.微计算机信息, 2005, 21 (8) :76-77.