基于EC双流模型的焊接缺陷图像识别*
2022-01-27陈英蓉庞再军刘冠良潘海鸿
陈 琳,陈英蓉,庞再军,刘冠良,潘海鸿
(广西大学机械工程学院,南宁 530004)
0 引言
焊接作为重要的材料加工工艺,广泛的应用在航天、造船等行业,受焊接过程中各种参数稳定性的影响,焊缝会出现如内部小孔、夹渣、未焊透、裂纹等各种缺陷,而这些焊接缺陷影响焊接工件的使用寿命。为了保证焊接工件的产品质量,工业检测中通常采用超声波检测法、射线检测法、磁粉检测法、涡流检测法、渗透检测法等[1]对焊缝缺陷进行检测,但是超声波检测法对缺陷定量分析存在困难,磁粉检测法、涡流检测法和渗透检测法用于检测工件表面及近表面缺陷,由于X射线检测法速度快可实现实时监测,通过其得到焊接缺陷图像既可定性显示焊接缺陷,又可测量尺寸,在工业监测中X射线检测法得到广泛应用,并采用的图像处理方法对缺陷进行识别。
国内外学者对X射线焊接缺陷图像检测的研究主要从传统方法和深度学习方法两方面进行。传统方法首先在图像中定位焊接缺陷,然后分割出焊接缺陷,并采用手工提取特征和编码,最后利用分类器进行分类。李波等[2]使用小波变换降低图像噪声,通过边缘检测提取焊缝图像的缺陷特征,整体正确率可至91.8%。陆艺丹等[3]利用区域标记法分割出有效区域,可对焊接点中气孔分布以及面积等缺陷参数进行自动监测,可缩短检测时间。但是传统方法存在着识别准确率低、识别速度慢等问题。故需要进一步改进,提高识别效率。由于卷积神经网络(CNN)可自主从焊接缺陷样本上学习特征,可解决传统方法存在着识别准确率低、识别速度慢等问题。刘涵等[4]利用聚类算法对区域内任意形状大小的缺陷和噪声干扰点进行分割,采用CNN和Softmax分类器相结合的算法进行分类,准确率提高到94.6%。TRIPICCHIO等[5]主要利用迁移学习在小型和不平衡的焊接缺陷数据集上实现焊接缺陷分类。樊丁等[6]采用超像素分割算法和改进的ELU激活函数构建CNN模型,提高焊接缺陷图像的识别准确率至97.8%。郭文明等[7]制作数据集WDXI,根据平均灰度值提取焊接面积,利用自适应直方图均衡进行图像增强,利用双中线模糊降噪,利用基于区域的卷积神经网络进行分类。
上述方法在焊接缺陷图像检测中已实现显著效果,但是依然存在一定的误判率,而实际的工业检测对X射线焊接缺陷图像识别准确率提出更高的要求。针对这些问题,本文给出一种基于EC(EfficientNet and CBAM)双流模型的X射线焊接缺陷识别及分类方法,提高焊接内部缺陷检测的准确率,使得缺陷检测更加准确,智能化。
1 EC双流模型构建
EC(EfficientNet and CBAM)双流模型由并行的网络组成,并使用EfficientNet[8]作为并行网络的基础网络(baseline),为提高模型泛化能力,避免训练过程梯度消失等问题,加入BN[9](batch normalization)层对特征提取训练过程进行优化;为提高网络局部特征注意力,引入CBAM[10](convolutional block attention module)机制;为降低模型计算量,提升模型收敛性能,采用GAP[11](global average pooling)和Softmax作为焊接缺陷分类器。EC双流模型的结构如图1所示。
图1 EC双流网络框架
1.1 模型介绍
EC双流模型是一个端到端的模型,其基础网络EfficientNet采用新的模型复合扩张方法,结合神经结构搜索技术,从网络深度、网络宽度、输入分辨率三个维度来放大网络,该模型采用简单、高效复合系数和更结构化的方式对CNN进行放大,在计算量相当的情况下,其识别精度往往要优于Inception[12]、ResNet[13]等模型。由于焊接缺陷图像数据集比较小,为节省训练时间,提高各种类型缺陷分类准确率,实验采用ImageNet预训练EfficientNet模型作为缺陷特征提取网络,然后根据焊接缺陷特征微调模型参数。
EC双流模型首先利用第一个网络流EfficientNet网络得到粗粒度焊接缺陷特征图,第二个网络流提取其细特征,并嵌入注意力机制CBAM生成注意力图,通过注意力图与粗粒度特征结合达到对焊接缺陷特征信息增强,实现对感兴趣区域即缺陷区域的关注,减少与背景不相关信息对特征提取干扰。其过程如图2所示,先经过EfficientNet提取特征得到特征图,再利用BN层对图像的像素点计算均值和方差,并对数据做归一化处理,见式(1)。使得EC双流模型训练过程中CBAM模块中每一层神经网络的输入保持均值为0、方差为1的标准正态分布见式(2)。
(1)
(2)
为了关注更加细粒度的特征,EC双流模型插入轻量化的注意力通用模块CBAM,以实现注意力机制。CBAM包含两个部分,CAM(channel attention module)和SAM(spatial attention module),分别进行通道与空间上的注意力。CAM关注焊接缺陷图像的数据部分,将经过BN层的数据利用最大池化层和平均池化层汇聚空间信息生成两个1×1×N的特征向量,并将得到特征向量输入多层感知机实现参数共享,特征融合后经过Sigmoid激活函数得到焊接缺陷图像的通道注意力图,见式(3)。
SAM关注焊接缺陷图像特征间的空间关系,将CAM得到的通道注意力图利用最大池化层和平均池化层汇聚通道上生成两个W×H×1的特征向量,并使得两个向量成为W×H×2的特征图,并利用卷积核对此特征图提取特征,得到W×H×1的特征图,经过Sigmoid激活函数得到焊接缺陷图像的空间注意力图,见式(4)。空间注意力集中在输入图像的位置部分,是对通道注意力的补充。二者串联一起实现CBAM的注意力机制。最后将EfficientNet得到粗粒度特征图和CBAM得到的注意力特征图结合得到第二个网络流的焊接缺陷图像特征图。
(1)CAM(channel attention module)
W0∈RC/γ×CW1∈RC×C/γ
(3)
式中,σ是激活函数;W0、W1是多层感知机的权重。
(2)SAM(spatial attention module)
Ms(F)=σ(f7×7([AvgPool(F);MaxPool(F)]))=
(4)
式中,σ是激活函数;f7×7是7×7的卷积网络。
EC双流模型的两个网络分别得到两种特征图,并通过外积的方式将其汇合成最终的特征信息,并输入GAP层,如图2所示。最终在模型最后一层达到特征融合,特征融合能得到与目标数量一样多的特征图,GAP对所接收到的每一个特征图都进行全局平均池化降维操作,将尺寸为h×w×d的张量缩小为1×1×d大小的张量,并将得到特征张量输入到Softmax激活函数实现焊接缺陷分类。采用GAP替代全连接层,能有效降低参数计算量,防止过拟合现象发生。
图2 CBAM机制网络结构图
1.2 评价指标
为了评价所提出模型对焊接缺陷分类测试结果,训练完成后分别计算精度(precision)和召回率(recall),并利用综合评价指标F1作为准确率和召回率的评估值。
(5)
(6)
(7)
式中,TP为预测为正的正样本;FP为预测为正的负样本;FN为预测为负的正样本;precision为精度;recall为召回率。
2 实验结果及分析
2.1 数据集来源
焊接缺陷数据集由两部分组成,分别是焊接缺陷GDXray[14]数据集和实验采集X射线焊接缺陷数据。在整张原始的焊接缺陷图像中,感兴趣区域所占比例比较小,利用整张图像进行训练计算量过大,根据焊接缺陷的类型和大小,将含有缺陷图像裁切为64×64大小作为感兴趣区域。焊接缺陷数据集包含裂纹、未焊透、小孔、夹渣4类缺陷如图3所示,共5762张图片。最后将数据集分为训练集和测试集,其中训练集5185张,测试集577张。分类卷积神经网络实验并未对图片进行其他预处理。
图3 部分X射线焊接缺陷图像
2.2 实验配置
实验是在Ubuntu18.04操作系统上进行,软件环境为Anaconda3.6.0,python3.7,CUDA10.0,cuDNN8.0,采用的第三方库是Numpy,Matplotlib,TensorFlow,Keras。硬件采用GPU为NVIDIA Tesla P100显卡。CPU为Intel Xeon Gold 6126。
在实验的过程中涉及到batch_size大小、学习率、优化器、迭代次数等参数如表1所示。
表1 实验参数设置
2.3 焊接缺陷图像识别结果
EC双流模型采用不同模型作为特征提取基础网络,分别利用ResNet50、VGG16、VGG19和EfficientNet这4种预训练网络模型作为EC双流模型基础网络进行对比试验。在焊接缺陷图像测试集得到结果如表2所示,与ResNet50、VGG网络相比,EfficientNet识别准确率提升约7.28%,召回率Recall和综合指标F1分别提升15.6%、16.4%,实验结果可知,采用EfficientNet作为基础网络能有效提升焊接缺陷识别准确率。
表2 不同特征提取网络在双流模型上的性能
图4是在数据集上模型训练和测试情况,随着迭代次数增加识别准确率呈增长趋势,损失值由快变慢呈降低趋势;在迭代次数为10时,模型基本达到稳定收敛状态。在相同的训练参数下,进行多次训练后发现,每次训练后得到识别准确率稳定在99.13%。实验结果证明,采用BN和GAP优化EC双流模型具有比较好鲁棒性。
(a)EC双流模型的正确率 (b)EC双流模型的损失值
图5根据EC双流模型在测试集上分类结果绘制得到的混淆矩阵,得到更多识别精度与分类结果。
图5 测试集分类结果的混淆矩阵
为进一步验证所提的EC双流模型的性能,在参数一致情况下(同表1所示),将其与VGG16、BCNN(VGG16)、Xception进行对比实验。
图6是4种模型在测试集上准确率变化情况,图7是4种模型在测试集上的损失值变化情况。
图6 各个模型的迭代正确率
图7 各个模型的迭代损失值
在相同的迭代次数下,随着迭代次数的增加,EC双流模型和BCNN逐渐收敛,曲线变化趋于平缓;Xception波动大收敛慢。EC双流模型在4种方法中收敛速度最快,准确率最高,损失值最小。
由表3可知,EC双流模型比VGG16参数量减少25.6%,准确率高13.69%;EC双流模型相对于BCNN准确率提升2.6%,参数量下降96%;EC双流模型相比Xception准确率提升0.98%,但参数量和耗时却只有Xception 1/2。这说明所提方法在数据集上识别准确率高,可以用于X射线焊接缺陷质量检测。
表3 各个网络分类结果对比
3 结论
本文针对裂纹、气孔、夹渣、未焊透4种典型焊缝缺陷数据集进行扩充得到数据集,通过建立EC双流模型,经训练后可实现缺陷类型的自动识别,并具有较高的准确率、鲁棒性及抗干扰能力。基于EC双流模型的X射线图像缺陷类型的自动识别技术,可有效提高对焊缝典型缺陷类型识别的效率和准确性。缺陷自动识别网络的识别效果显示:各类缺陷间的识别和区分能力较好,该结论对于降低检测人员主观因素干扰和工作强度具有重要的应用价值。但是仍有一些问题待解决,例如单张图片的预测时间比较长,后续工作需要进行复杂度优化,减少缺陷检测时间。