许佳伟,杨 亮,郝思佳

(中海石油气电集团有限责任公司,北京)

引言

为保证质量以及安全性,工业界通过X 射线探伤手段检测工件内部缺陷情况。以往采取的人工分析焊缝图像的方式受人为因素及外界条件的影响,效率低、不可靠、一致性差。通过计算机图像处理技术,对X 射线缺陷检测图像进行分析、检测和识别,可有效克服由于人为因素引起的对焊件缺陷的误判和漏判等问题,使焊接质量评定更科学、客观和规范。

近年来,基于X 射线图像的焊缝缺陷检测的问题一直受到国内外研究者的关注,目前的方法主要分为图像处理和神经网络两大类型。AbdehakMahmoudi 提出通过快速分割算法来提取缺陷区域[1],Jun Zeng 提出了基于Canny 边缘提取的自适应算法[2],PingKuang提出了PCA 构建模板算法,在模板与图像中获得相似性高的ROI 区域[3],上述方法均通过滤波或阈值调整的方式来提取缺陷区域,但缺乏普适性,在实际应用中X 射线的焊缝图像灰度值高、特征不明显。殷鹰等人利用神经网络的方式进行检测,通过视觉扫描、区域差运算、焦点搜索后确定可疑区域,再通过深度学习网络来提取特征识别[4]。Domingo Mery 将整图切分成若干等宽高的图片,利用深度神经网络来提取特征最后进行分类[5]。深度学习的概念逐渐在图像分类领域迅速发展。本研究借鉴计算机视觉领域的最新成果,建立焊缝X 射线图像缺陷识别模型并验证该模型的准确性。

1 模型设计与建立

焊缝典型缺陷主要包括圆形缺陷、条形夹渣、严重缺陷(未熔合、未焊透、裂纹)三大类。本研究设计的缺陷检测算法旨在输入胶片数字化图像后基于计算机视觉的分割算法检测出该焊缝图像中每个缺陷的位置、大小与类型。通过分割算法检测焊缝缺陷的位置与类型、测量焊缝大小,再通过焊缝图像评定算法来获取缺陷最密集的区域,计算评定结果,给出评定结论。

1.1 数据集介绍

在确定使用基于计算机视觉的分割算法作为解决方案后,需要准备实验数据。本研究采用的数据集包括数据集A、B、C 的样本数量分别为190、150 和220,样本数量总计560。

1.2 算法优化设计

基于深度学习的物体检测算法大致分为一步法检测器(Weld-SSD)和二步法检测器(Weld-RCNN)两类。一步法检测器在原图上铺设一系列锚点框,利用全卷积网络,对这些锚点框进行一次分类和一次回归,得到检测结果。而二步法检测器在原图上铺设一系列锚点框,先利用一个全卷积网络对这些锚点框进行第一次分类和第一次回归,得到候选区域。再利用一个网络对候选区域进行第二次分类和第二次回归,得到最终检测结果。本研究基于上述两种算法模型,进行算法优化设计。

1.2.1 Weld-SSD 算法优化设计

一 步 法 检 测 器 则 有 YOLO、SSD、RetinaNet、CornerNet,其中SSD 是一步法检测器的集大成者。由于在焊缝缺陷数据中,圆形缺陷占比最高,本算法模型主要研究焊缝圆形缺陷的识别。对于圆形缺陷,不同个体的大小变化较大,SSD 的先验框选择就显得尤为重要。本研究采用的改进方式包括数据预处理与数据增强、用于检测的特征图选择优化、先验框设计、损失函数优化等。

1.2.2 Weld-RCNN 算法优化设计

相对于一步法检测器,一步法一般胜在高效率,而二步法有更高的精度。代表性的二步法检测器有Faster R-CNN、R-FCN、FPN、Cascade R-CNN。

考虑到焊缝X 射线图像缺陷与背景的区分度不高,网络训练时的难例增多,正负样本比例不均衡,不同缺陷尺寸差距较悬殊,需要在网络结构上进行优化设计。

Weld-RCNN 算法模型包括四个模块,具体如下:

(1)标签生成与数据增强。

依据胶片图像焊缝位置特点设计了基于图像y方向导数极值的焊缝区域提取算法。数据增强的方式包括旋转、翻转、镜像等。在图像输入网络前,需要对图像进行归一化操作。

(2)主干网络设计。

采用的目标检测模型基于两阶段的FasterRCNN架构的优化模型。骨干网络特征提取的深度卷积层采用的是ResNet18+FPN 的结构,这也是Faster-RCNN的第一阶段结构,此处引入FPN,增强了对小物体检测的性能。

(3)锚点机制优化。

锚点机制是两阶段检测与实例分割网络中常用的提取目标区域的处理算法,预设不同大小与尺度的锚点框,通过选中特征图的中心点利用滑动窗口进行滑动,利用锚点框的相应逆向推倒在原图上的目标物体的区域。

统计不同类型缺陷的大小分布,以圆形缺陷为例,圆形缺陷的尺寸大多集中于10~60 之间,尺度也在0.6~2 之间,由此可知,算法模型可以根据不同的数据分布来优化锚点机制,从而提升性能。

(4)损失函数的设计与优化。

针对正负样本不均衡的问题,在计算损失函数时使用了在线难例挖掘。此外考虑到出现漏标但模型识别出来的情况,增加随机性宽泛了损失回传,一定程度上降低了漏标样本带来的影响。

原始的二分类交叉熵损失函数如下所述,是经过激活函数的输出,在0~1 区间,在未经优化的普通交叉熵中,正样本若输出概率越大则损失越大,负样本输出概率越小则损失越小。

为此,本算法模块通过优化损失函数,设置如下的损失函数:

进一步引入超参来继续优化损失函数,加入会略微软化损失回传,损失函数不是单一的交叉熵,最终是采用Focal loss 的改良版,取值为0.5,取值为4。

2 模型测试

2.1 测试环境

Weld-SSD 算法模型的平台配置环境是Pytorch 0.4.1,Python 3.5。以Tensorflow1.3,Keras2.0.8,Python3.4 作为框架平台实现Weld-Faster-RCNN 的深度学习。

2.2 测试参数

2.2.1 Weld-SSD 算法优化模型

根据多次调参测试,最终选定如表1 所示的方案。

表1 最终方案

2.2.2 Weld-RCNN 算法优化模型

本研究采用的端到端的训练方式,利用公开数据集训练的权重作为初始化,先进行数据准备,然后进行训练,具体超参数设置如表2 所示。

表2 模型超参数设置

通过不断测试与调优后,最终损失曲线平稳下降,下降到了0.3。

2.3 测试结果

2.3.1 Weld-SSD 算法优化模型

对比不同先验框的检测结果,第一种的先验框设计方式在Crop 图上有更好的结果,而第二种设计方式在整图上的结果更好。由于在实际中面临的是整图的测量,所以整图的结果更具有实际意义与生产价值。由此可知,对SSD 进行改进之后的Weld-SSD 算法模型在整图上的结果却不太理想,这与图像本身的质量也有一定的关系。

2.3.2 Weld-RCNN 算法优化模型

采取不同优化方式设置对照实验,实验结果如表3 所示。可以看到数据增强、修改骨干网络、添加FPN、改进锚点机制以及采用OHNM 均能对网络性能有所改善。基于目标检测算法的最优模型是以Faster-RCNN 为架构,再引入在线难例挖掘机制以及改进了锚点机制和骨干网络后得到的模型,此模型在气孔上可以达到RC=84.6%,PR=70.2%。

表3 目标检测算法模型测试结果(选取PR 曲线中recall+precison 值达到最高的点)

对于ResNet18+FPN+Anchor+semi-OHNM 的模型,PR 曲线如图1 所示。由图1 可以看出,本研究采用模型最高Recall 可以达到96.5%,最高的Precision可以达到97.2%,与单纯使用现有网络相比性能更具优势。

图1 目标检测算法模型测试结果P/R 曲线

3 结论

本研究提出基于深度学习的焊缝X 射线图像缺陷识别模型,在输入胶片数字化图像后基于计算机视觉的分割算法检测出该焊缝图像中每个缺陷的位置、大小与类型,设计并实现了基于Anchor-based 的Weld-RCNN 算法,缺陷检测性能召回率达到84.6%,精准率70.2%。同时,实现检测算法模块后,搭建算法联调测试环境。结果表明,算法模型在测试中表现良好,算法与以往国内外研究者在焊缝图像缺陷检测相比,提升了性能,具有更好的鲁棒性。