基于深度学习One-stage方法的焊缝缺陷智能识别研究

2021-07-19 10:15李砚峰刘翠荣吴志生孙前来朱彦军李科
关键词:射线焊缝卷积

李砚峰,刘翠荣*,吴志生,孙前来,朱彦军,李科

(1.太原科技大学 材料科学与工程学院,太原 030024;2.太原科技大学 电子信息工程学院,太原 030024)

0 引言

焊缝缺陷射线图像识别是一种重要的无损检测方法[1]。在焊缝缺陷射线图像识别领域,采用人工在线检测的方法存在受质检员主观经验影响大,检测任务量大时容易产生漏检、误检等检测质量问题[2]。研究人员不断探索采用人工智能算法实现对焊缝射线图像的自动化识别。目前,基于人工智能算法的焊缝缺陷射线图像的识别方法主要有两大类,一类方法是基于传统的神经网络算法,另一类是基于深度学习的卷积神经网络(convolution neural network)算法。传统神经网络算法对焊缝缺陷射线图像识别,首先对图像进行分割,分离出图像中的焊缝部分,然后基于人工经验提取和筛选焊缝缺陷的几何尺寸、纹理等特征,最后将这些特征参数输入传统神经网络,实现对射线图像中焊缝缺陷的识别和定位。目前用于焊缝缺陷图像识别的传统神经网络算法主要有SVM、BP、ANFIS、AdaBoost、RBF、ANN和MLP等[3-11]。该类方法的主要问题在于:射线图像本身复杂,对图像进行准确的分割很难做到,特征的筛选和参数化受人为因素影响,不能充分利用图像包含的丰富信息。基于深度学习的卷积神经网络的方法是直接以图像为输入,不需要人工提取和描述目标特征,网络可以自动学习射线焊缝缺陷图像中复杂的深度特征[12-15]。基于这些深度特征,卷积神经网络通过其良好的容错、并行以及泛化能力,可以确定缺陷目标的位置并对每个目标进行分类。真正实现了从输入原始焊缝射线图像到输出焊缝缺陷分类和缺陷位置的端到端(end-to-end)的智能化识别定位。

目前,基于深度学习卷积神经网络的目标识别定位算法分为one-stage和two-stage两类。one-stage方法是直接对生成的anchor进行分类和定位,而two-stage方法首先要生成候选区域(region proposals),然后再将候选区域映射到特征图(feature map)上进行分类和定位。所以two-stage方法非常耗时,其性能很难达到实时检测的需求。one-stage方法主要代表算法有YOLO系列算法[16-17]和SSD算法[18],two-stage方法主要代表为Faster R-CNN系列算法[19-21]。YOLO是利用回归思想的目标检测算法,直接在图像的不同位置上回归出每个位置的目标边框以及目标类别,在检测速度方面性能优秀。因此,本文基于YOLO网络,并结合密集连接、特征金字塔、跳跃连接卷积块和anchor box优化等对网络进行改进,以提高对焊缝缺陷识别的正确率和检测速度。

1 焊缝缺陷图像识别定位网络模型

1.1 网络架构及识别定位原理

基于深度学习的卷积神经网络通过卷积和下采样操作既可以获取图像中丰富的边缘、纹理等浅层特征,也可以获取结构、语义等深层特征。然而,网络深度大、下采样操作会使得小目标特征消失,导致小目标的识别定位效果差。本文的识别对象既包括气孔、夹渣、细小裂纹等小目标焊缝缺陷,也包括未熔合、未焊透等较大的焊缝缺陷。因此网络模型的设计要充分考虑缺陷尺度的较大差异。本文焊缝缺陷图像识别网络由特征提取、目标检测和输出3部分组成。在深度学习神经网络中CSPNet具有参数少和计算量小、能够有效提高特征学习能力等优点[22],DensNet可以有效缓解梯度弥散,使特征信息前后向传播更加顺畅[23],因此在特征提取模块中将二者结合成CSPDens_block块应用到主干网络中。目标检测模块采用PANet中的FPN backbone和Bottom-up path augmentation实现浅层特征和深层特征的融合,以提高识别定位时还原特征图像素的准确度[24]。输出模块采用YOLO层实现多尺度目标的分类和回归。网络模型直接将整张图像作为输入数据,将输入的图片分割成N×N网格,然后每个单元格负责检测中心点落在该网格内的目标,直接对生成的anchor进行分类和定位。本文算法网络结构如图1所示,图1中Conv表示卷积,Concat表示特征图连接,CBL表示Convolution、Batch Normalization、Leaky ReLU。

图1 网络结构图

1.2 焊缝缺陷特征提取

基于深度学习的卷积神经网络将输入图像视为由各种不同特征的图片叠加而成,通过多个卷积核对整个输入图片的特征进行扫描,通过降采样提取结构化的深层语义特征,更多的卷积核和更深的网络能够提取到图片更多的特征。然而,实际上网络越深,会产生误差的积累,出现梯度消散的问题,导致网络性能下降。因此本文采用CSPDens_block,将上一层卷积得到的特征图划分为2个部分,一部分经过Dens模块,另一部分与Dens的输出直接进行Concat实现特征图的连接扩充,使梯度流在不同的网络路径上传播,从而在降低网络计算量的同时,获取丰富的梯度融合信息,提升推理速度和准确率。CSPDens_block结构如图2(a)所示。

图2 CSPDens_block结构示意图

DensNet是在ResNet[25]基础上建立所有浅层与深层密集连接(Dens connection)的网络。如图2(c)所示,Dens操作可以实现跨层特征信息传递,使特征信息跳过部分网络层直接传递到网络深层,使得网络可以学习更多层级间的特征联系。这样既减轻了特征信息在逐层传递中的流失和梯度消失,又还加快了特征在网络中的传递。Dens block采用的方法不是特征图像素之间的相加,而是通道之间的连接,计算公式如下:

xl=Hl([x0,x1,…,xl-1]),

(1)

式中,[x0,x1,…,xl-1]表示0,…,l-1层的输出特征图concatenation操作(通道的合并);Hl中包括3×3的卷积、batch normalization和leakey ReLU。

随着网络层数的增多,对多通道输入图像进行传统的卷积会造成计算量指数级增长,为了控制通道间连接张量,采用可分离卷积(separable convolutions)以减少参数数量、加快特征传递的速度。可分离卷积是将一个完整的卷积运算分解为两步进行,如图2(b)所示,分别为Depthwise Convolution与Pointwise Convolution。Depthwise Convolution卷积完全是在二维平面内进行,Filter的数量与上一层的Depth相同。Pointwise Convolution使用 1×1卷积核对Depthwise Convolution输出的特征图在深度方向上进行加权组合,这样既保证特征传递,也减少了计算量。

1.3 多尺度融合检测

在射线焊缝缺陷图像检测中,小目标缺陷一般只有几十个甚至更少像素,网络从这些仅有的少量像素中能提取出的语义信息非常有限。在特征提取过程中,浅层特征具有较高分辨率,富有更强的位置信息;深层特征具有较强的语义和结构化信息,但位置信息比较粗糙。根据图像梯度上升法[26],利用不同层提取出的特征对原始图像进行重构,得出富含细节信息的低层特征和富含语义信息的高层特征可以更好地协助目标检测。YOLOv4使用3个不同尺度的特征图来预测待检测目标,将最后两个Residual_block(残差卷积模块)输出的特征图上采样,与网络浅层相应尺寸的特征图融合成有效信息进行预测。为了更充分地利用浅层特征和位置信息,本文对YOLOv4的多尺度检测模块进行改进,从原来的3个尺度检测扩展为4个尺度。如图2(c)所示,输入尺寸为320×320,每个分支共从CSPDens_block中提取特征,并对10×10、20×20、40×40分辨率的分支进行上采样操作,将上采样后的特征层与浅特征层进行级联,在10×10、20×20、40×40、80×80四个尺度特征图预测待检目标。同时,为了降低运算量、提升检测速度,将第2、3、4、5层CSPDens_block中的Dens操作和卷积核比YOLO减少1/2。通过融合更多尺度的浅层特征信息,增强了特征金字塔的表征能力,提升小目标缺陷的检测精度,降低漏检率,最后通过非极大值抑制算法去除冗余框。

由于深层神经元是被更宽感受野的结构性特征激活,而浅层神经元是被局部边缘、纹理等特征激活生成的特征图,本文算法通过FPN backbone和Bottom-up path augmentation实现横向和纵向“短连接”,可以让深层和浅层特征信息流通更快,使特征结构的定位和检测能力得到进一步提高。

1.4 Anchor box聚类分析

在one-stage目标识别定位网络中,YOLO引入了锚定边界框机制(anchor box),并采用K-means 聚类方法来获取anchor box的值,使得网络训练的初始化阶段得到更符合待检测对象本身的参数,减少了初始化参数与最优化参数之间的偏差。anchor box的数量和尺寸直接影响到缺陷目标识别定位的精度和速度,因此设定合适的anchor box参数格外重要。但由于YOLO原算法是在COCO和VOC数据集上训练后得到的anchor box值,并不适用本文研究的焊缝缺陷射线图像识别。本文通过K-means算法重新进行维度聚类,使anchor box与ground truth(真实边界框)的IOU值尽量大,因此目标函数采用预测边界框和真实边界框的交集和并集的比(distance intersection over union, DIOU)作为衡量标准[27],减少聚类误差,度量函数的公式如下:

(2)

式中,targ_box为样本标签的目标框;cent为聚类中心。DIOU越大,d值越小。

通过K-means算法重新对标签进行聚类分析,结果如图3所示,选取前12个anchor box:(7,9)、(13,17)、(21,37)、(36,52)、(69,48)、(12,48)、(96,18)、(24,265)、(180,22)、(57,258)、(168,63)、(132,265),按照面积大小分配给 4个尺度的特征图,尺度较大的特征图使用较小的 anchor box,每个网格计算3个预测框。

图3 K—means聚类分析结果

2 焊缝缺陷检测流程

本文针对焊缝缺陷射线图像识别算法流程分为4部分,首先对原图像进行归一化预处理生成输入数据集,进而对输入数据进行特征学习和网格划分,然后在不同的尺度上进行多尺度融合检测,最后采用极大值抑制NMS(non-maximum suppression, NMS)算法将不同尺度上提取得到的目标位置和类别信息进行结合,得到最终的检测结果。

在图像预处理阶段,为了提高算法的通用性,以适应不同分辨率的图像,保证原始图像中焊缝缺陷的特征被保留,需要对原始图像数据进行归一化预处理。具体方法是将原始图像按照320×320像素进行切割生成输入图块,对于宽度和高度不是320×320整倍的原始图像,切割后的图块有重叠区域。然后将属于同一个原始图像数据的各图块按照顺序进行编号。这样可以避免对原始图像缩放造成目标缺陷扭曲变形、特征消失,也可以通过坐标变换快速确定原始图像中缺陷的位置。

在焊缝缺陷射线图像识别中存在不同尺度和类型的目标缺陷,而不同的目标缺陷具有不同的特征,融合深层和浅层的特征信息、空间信息就可以更加准确地识别定位各类简单目标和复杂目标。因此,在特征提取过程中,将图块进行多通道卷积和下采样操作提取目标特征,然后对网络中不同层的特征图进行上采样和连接操作实现特征融合。

在目标检测阶段,图块被分为S×S个网格。每个网格预测B个bounding box(即包含目标缺陷的矩形边界框)和C个属于某种类别的概率值。bounding box包含5个数据值(x,y,w,h,confidence),(x,y)是bounding box的中心相对于单元格的偏移量,(w,h)是bounding box的宽度和高度,confidence是某个网格中目标属于某一类别缺陷的置信度。对于宽度为w,高度为h的图像被分为S×S个网格,设图像中某个网格的坐标为(xi,yj),xi和yj的取值范围为(0,S-1),预测边界框中心点坐标为(xc,yc),则最终预测位置(x,y)归一化处理公式如下:

(3)

(4)

confidence的值用于表示边界框是否包含目标的概率以及当前边界框与真实边界框(ground truth)的重合度,计算公式如下:

(5)

式中,Pr(obj)表示网格中是否有目标缺陷,若有则Pr(obj)=1,若无则Pr(obj)=0。C个类别的条件概率为Pr(classi|obj),表示该网格中包含属于第i类目标缺陷的概率。每个网格预测的输出概率P的公式如下:

(6)

最后,将计算得到的置信度较高的边界框进行NMS处理,得到最终检测结果。

3 网络模型训练

3.1 数据集

本文实验图像数据来自产学研合作企业。采集气孔、夹渣、裂纹、未熔合、未焊透5种常见的焊缝缺陷射线图像各920张。随机抽取每种缺陷图像800张作为网络训练使用,其余120 张作为测试集图像。为了避免因训练集数据量小而引起网络过拟合,对800张原始图像进行切割、翻转、平移、调整对比度、噪声扰动变化,扩充各类缺陷图,生成50 162张构成焊缝缺陷射线图像数据库。其中气孔缺陷图像10 076张,夹渣9 847张、裂纹10 150张,未熔合10 326张、未焊透9 763张,实验中部分焊缝X射线图像样本如图4所示。

图4 焊缝缺陷射线图像样本

3.2 训练模型

在网络模型训练时采用leakey ReLU(rectified linear unit)作为激活函数,并根据本文检测的目标特点将x≤0时的系数调整为0.01,公式如下:

(7)

训练网络的损失函数包含3部分:边界框损失、置信度损失和分类损失,计算公式如下:

loss=losscoord+lossconf+lossclass,

(8)

式中:

(9)

(10)

(11)

4 实验及结果分析

4.1 实验条件

本文检测实验采用操作系统Windows10,CPUi7-8700k,GPU为1080ti,内存16GB,深度学习框架为tensorflow。网络训练的初始化参数设置,最大迭代50 000次,学习率为 0.001,batch_size设置32,权值衰减系数0.000 5,冲量常数0.9,根据损失下降的趋势,适当调节学习率和 batch_size 的值,直至损失函数值小于等于阈值时停止训练。

4.2 模型测试

从焊缝缺陷射线图像数据库中调取图像对YOLO和本文设计的CSPDensNet网络进行训练。然后将测试集数据图像输入YOLO和CSPDensNet进行检测。采用表征识别准确率的损失函数loss值和表征焊缝缺陷定位准确率的IoU值比较YOLO和CSPDensNet网络算法的性能。网络训练和测试过程中损失函数值和迭代次数的关联曲线如图5所示,图中YOLO _train和YOLO _test分别表示YOLO在训练集和测试集上的损失函数值,CSPDnet _train和CSPDnet_test分别表示本文设计的CSPDensNet在训练集和测试集上的损失函数值。

由图5可见,CSPDensNet和YOLO通过训练损失函数值都稳定在2 %左右。对测试集图像数据进行识别时,CSPDensNet损失函数的值优于YOLO,而且CSPDensNet模型的损失函数的值是逐步稳定,并最终达到2 %左右,而YOLO模型虽然损失函数的值下降较快,但在迭代4 500次达到最小值3.4 %后,损失函数的值出现振荡后上升,最终达到4.5 %左右。图6所示CSPDensNet和YOLO在训练时的IoU曲线,由图可见CSPDensNet的anchor box和ground truth box的平均交并比IoU也明显好于YOLO,达到87.51 %。

图5 损失函数_迭代曲线

图6 平均交并比_迭代曲线

4.3 实验结果及分析

在目标检测领域,准确率(Precision)和召回率(Recall)是评判检测网络模型优劣的重要标准,因此采用这两个指标和检测时间来评估实验结果。准确率P和召回率R的公式如下:

(12)

(13)

式中,TP表示检测到的正样本数,即检测缺陷分类正确的样本数;FP表示被检测为正样本的负样本数,即检测缺陷分类错误的样本数;FN表示被检测为负样本的正样本数,即没有被检测出来但实际含有缺陷的样本数。实验检测结果见表1。气孔、夹渣、裂纹、未熔合、未焊透5种常见的焊缝缺陷,本文与YOLOv4算法在准确率或召回率上都有明显提升。

表1 焊缝缺陷检测结果表

在识别结果中,造成气孔和夹渣错误识别的主要原因是焊缝缺陷射线图像中气孔、类似圆形夹渣和点状未熔合的形态和灰度较为相似,裂纹、未熔合和未焊透错误识别是由呈线状的裂纹、细线状的未熔合和间隙较窄的未焊透这几类缺陷在形态上相似而造成。

使用同一数据集对本文算法和一些基于候选区域的经典CNN目标检测算法进行对比,评价指标为各类缺陷的平均准确率(mAP)。mAP值越高表示该算法对各类焊缝缺陷的识别定位效果越好,实验结果见表2。从表2中可以看出,基于one-stage的本文算法和YOLOv4算法与基于two-stage的R-CNN和Fast R-CNN算法相比,在焊缝缺陷识别定位中检测速度和精度上有明显优势。与Faster R-CNN相比,YOLOv4在准确率与召回率的指标上有所不及,但是在检测速度上远优于该算法。本文算法在准确率或召回率上比YOLOv4的性能有明显提高,在检测速度方面也有所提升,与Faster R-CNN相比,本文算法在检测速度方面优势明显,在检测精度方面也有所提升。

表2 不同算法检测结果对比

图7为实验中的部分检测结果。从图7(a)到图7(e)行分别为气孔(Pore)、夹渣(Slag)、裂纹(Crack)、未熔合(LOF)、未焊透(LOP)缺陷的图像。图7(1)为实验中的部分待检测射线焊缝缺陷图像,图7(2)为YOLOv4算法的检测结果,图7(3)为本文算法的检测结果。对比图7(2)和图7(3)中气孔(Pore)、夹渣(Slag)和裂纹(Crack)缺陷的识别定位结果可以看到,图像标注的椭圆区域中的焊缝缺陷,YOLOv4存在漏检的情况,本文算法针对各类缺陷的识别定位准确率更高。

(1)原图 (2)YOLOv4检测结果 (3)CSPDens_Net检测结果

5 结论

① 基于深度学习卷积神经网络的端到端的one-stage智能识别算法,可以避免传统人工智能算法需人工实现焊缝缺陷特征提取和特征描述的问题。

② 采用CSPDense block、可分离卷积和上移concatenat操作,可以充分融合网络浅层和深层特征、增强特征金字塔的表征能力,从而提高算法对焊缝缺陷射线图像识别定位的精度。

③ 与two-stage类型算法相比,本文算法对焊缝缺陷识别准确率、召回率都有一定程度提高,与YOLO原算相比,本文算法的速度和识别精度都有所提升,能够满足对焊缝缺陷识别的准确率和实时性要求。

猜你喜欢
射线焊缝卷积
《钢结构设计原理》对接和直角焊缝混合连接强度计算
基于全卷积神经网络的猪背膘厚快速准确测定
钢结构桥梁焊缝无损检测技术探讨
螺旋缝埋弧焊管焊缝裂纹及未焊透检测分析
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
基于焊缝余高对超声波探伤的影响分析
多维空间及多维射线坐标系设想
话说线段、射线、直线