基于卷积神经网络的焊缝缺陷图像分类研究
2020-06-16张可帅朱漪曼
谷 静,张可帅,朱漪曼
(西安邮电大学 电子工程学院,陕西 西安 710121)
引言
焊接技术不断地发展和完善,并正在应用于各行各业。在焊接过程中由于焊接设备的影响会造成各种缺陷,对缺陷进行分类是焊缝质量等级评定的重要基础。目前对焊缝缺陷的检测大都采用无损检测技术(non-destructive testing,NDT),其中以X 射线技术为主[1]。对于X 射线所拍摄的图片,需要专业人士评判和分类,这种方式耗费时间且存在主观因素的影响。随后研究了基于计算机自动识别系统,但是这一系统仍需人为地提取和选择特征,因此目前大多数研究都集中在特征提取算法的手工设计上。李宁、卢子广利用分段分行纹理分析算法提取焊缝缺陷的特征值,最后将其输入到支持向量机分类器中,进行缺陷的分类[2]。Jayendra Kumar 等人采用灰度共生矩阵的纹理特征将其输入到神经网络中,取得86.1%的分类准确率[3]。丁晓东、黎扬进等人利用斜率截距法和分段区间检测法提取焊缝表面缺陷特征点,将其作为网络的输入,使得模型的整体识别率达到91.51%[4]。栗芝采用主成分分析(principal component analysis,PCA)和独立成分分析(independent component correlation algorithm,ICA)进行成分特征的提取,将7 类形状特征参数作为分类识别的输入,最后采用支持向量机对气孔和裂纹两类缺陷进行分类识别[5]。胡宏伟、张婕等人研究了一种基于一维局部二元模式算法结合核主成分分析提取焊缝缺陷回波信号特征的方法对焊缝缺陷进行分类[6]。
上述方法都是基于特征提取算法所进行的研究。近年来深度学习技术可以自动地提取图像中的特征,不需要人工参与,进而对图像良好地分类,因而被广泛地应用。杨志超、周强等人提出了基于卷积神经网络的焊接缺陷特征自动提取及分类算法,为焊接质量的检测研究提供了重要参考[7]。Domingo Mery 比较了包含卷积神经网络在内的各种计算机视觉方法,对有无缺陷的X 射线图像进行分类[8]。李真、马丽等人针对工业中焊缝缺陷的分类难题提出了一种基于深度学习的分类方法,结果表明该方法对缺陷分类有良好的效果[9]。
此外,训练数据的不平衡会影响不同类型的分类准确率[10]。本文采用深度卷积对抗生成网络(deep convolutional generative adversarial networks,DCGAN)[11]在数据层面上进行数据集的平衡处理,消除数据不平衡的影响,并在该数据集上验证模型的有效性,图1 为算法的流程图。
图 1 算法流程图Fig. 1 Flow chart of algorithm
1 焊缝缺陷数据集处理
1.1 原始数据集介绍
本文所用的数据集是由国内某车间提供,共包含2 454 张图片,有6 种缺陷类型,图片大小为64×64像素,按照8:2 的比例划分为训练集和测试集。各种缺陷类型及其在训练集和测试集上的缺陷数量如表1 所示。在该数据集上,未熔合缺陷和无缺陷图像所占比例较大。条形缺陷所占比例最小,且各个类别之间的所占比例均有差别。
表 1 焊缝缺陷类别数量Table 1 Number of weld defect categories
1.2 数据集的平衡处理
在深度学习领域中,数据量的大小和平衡直接影响到分类的性能。当数据量较少或不平衡的时候,网络中容易出现过拟合问题。为有效解决这一问题,本文在数据集层面上采用DCGAN 对原始数据集进行数据平衡处理,以用于学习不同特征的分类能力,在增加样本数量的同时消除不平衡数据集对模型的影响。采用DCGAN 后的训练样本数量如表1 所示,数量之间比较均衡。部分生成图片如图2 所示:其中(a)为裂纹,(b)为未焊透,(c)为条形缺陷,(d)为圆形缺陷。
DCGAN 是在对抗生成网络(generative adversarial networks,GAN)的基础上增加深度卷积网络结构,以此用来生成数据样本。GAN 算法流程如图3 所示:其中G 表示生成网络,D 为判别网络,生成网络模型中通过输入噪声Z 生成图像,然后让判别网络判断数据的真假,判别网络的输出是数据真实的概率。通过采用DCGAN 生成数据集,所生成的数据集相比于原始图片内容更加丰富,并且增加了图片的数量。此外在DCGAN所生成数据集的基础上,在网络的训练过程中采用镜像的在线增强方式,使得训练集数量进一步扩充。
图 2 DCGAN 生成的图片Fig. 2 Images generated by DCGAN
图 3 GAN 网络结构Fig. 3 GAN network structure
2 SINet 网络模型原理
SINet 是在基于卷积神经网络的基础上,利用2 个 3×3串联卷积的优势,将4 组串联卷积模块与SI 模块进行结合。4 组串联卷积模块作为基础学习网络,用于从低到高的学习图像的特征,每组卷积模块后面使用最大池化层对前面卷积层进行降维操作。将Inception 模块与压缩激励模块(SE block)相结合,形成SI 模块。在SI 模块中通过Inception 模块执行多尺度卷积操作,扩大在特征图上获取特征的能力,之后重新校准通道维度。最后使用全局平均池化层代替全连接层,减少模型的参数从而防止过拟合现象[12]。本文焊缝缺陷类型为6 类,因此在网络最后输出6 个特征图,求取每个特征图的平均值,所求取的值为每个类别的概率值,然后将其输入到softmax 中进行分类。改进模型的网络结构如图4 所示。
2.1 3 ×3串联卷积模块的原理
两两串联的 3×3卷积模块,其感受野等同于一个 5×5的 卷积操作,但是所用的参数却比 5×5卷积核要少。同种情况下假设卷积操作之后生成了10 张特征图,串联卷积模块所用的参数数量为2×(10×3×3)=180个 ,而 5×5卷积核所用的参数为10×5×5=250个,由此可见在基于相同感受野情况下,选用两两串联的 3×3卷积模块有效减少了模型的参数。因此采用串联卷积模块作为基础模块对焊缝缺陷图像进行特征提取。
2.2 SI 模块
图 4 SINet 结构Fig. 4 SINet structure
SI 模块是将Inception 模块与SE 模块相结合,如图5 所示为SI 模块。SI 模块从不同的接受域收集特征以提高模型的识别能力。利用多尺度卷积的思想,模块中使用 1×1卷 积、 3×3卷 积、 5×5卷积,通过3 种不同卷积核提取了3 种不同的尺度特征来增加特征的多样性[13],从而提高焊缝图像特征的提取能力。使用1 ×1卷积操作实现降维,减少模型的参数[14],在增加网络深度和宽度的同时防止过拟合现象。采用最大池化操作,操作中步长设置为1,以此来保留原始输入信息。
图 5 SI 模块示意图Fig. 5 Schematic diagram of SI module
在SI 模块中通过后半部分的压缩激励操作对一系列卷积操作后产生的特征图进行特征重标定,提升有用特征,抑制无用特征。如图6 所示为SI 模块中压缩激励模块[15](SE block)的示意图,其中输入X 是经过卷积操作后所输出的一个三维矩阵,假定特征通道的数目为 C, W为宽度,H 为高度。与传统的卷积神经网络不同,该过程需要进行3 次操作。
1.没有完善的管理体制。目前经过相关的大量研究,企业财务管理发展所涉及的工作内容有很多种,而且财政管理所包含的工作类型也涉及了很多种类,因此要想做好企业的财政工作,必须要从加强财政部门与其他部门的协调性。但是在我国目前企业发展过程中,财务管理工作与其他部门工作联系不深,而且相关体系建设的也不够完善,企业各个部门之间的协调性不够,严重影响了企业的财务管理工作,不利于企业的进一步发展。另外,内控制度及业务流程管理也没有得到完善,从而加大了财务风险。
图 6 SE 模块示意图Fig. 6 Schematic diagram of SE module
第1 个过程称为挤压操作,对应图中的 Fsq,该操作是一个全局平均池化的操作,将特征映射通过全局平均池化层合并为1 ×1×C,如(1)式所示:
第2 个过程称为激励操作,即将集合向量编码为 形 状 1×1×(C/r),用2 个FC 层 将 其 解 码 回1×1×C ,得到 s, W1的 维度是 C/r×C, W2的维度是C×C/r,如(2)式所示:
最后,在特征选择后,再进行重标定操作,将激励输出的权重作为每个特征通道的重要性,然后通过通道权重对先前的特征进行加权,使之在通道维度上完全配对。对应图中的 Fscale操作,如(3)式所示:
通过SI 模块中的多尺度特征融合以及压缩激励操作,对基础卷积操作所提取的特征进一步处理,利用多尺度特征,提高对焊缝缺陷特征的提取能力。后续通过压缩激励操作对所提取的特征图进行特征重标定,使得有用的特征权值变大,从而提高焊缝缺陷分类的准确率。
3 实验
本文采用的框架为Caffe 框架。在模型训练过程中,使用自适应矩估计算法[16](adaptive moment estimation,Adam)在数据集上训练模型。初始学习速率(base_lr)设为0.000 1。每次训练输入模型的图片数量(batch_size)设置为32。在实验中使用批量归一化(batch normalization,BN)算法来加速模型的收敛和防止过拟合。
3.1 评价指标
式中: nj表示j 类缺陷的焊缝图片数量; mj表示正确分为j 类的图片数量;K 为类别数目,本文中K 为6。
3.2 实验结果
实验中首先使用原始数据集对SINet 网络模型进行训练,将数据集按照4∶1 的比例划分为训练集和测试集。将训练好的模型在测试集上进行验证,该模型在测试集上的准确率为93.86%。之后采用DCGAN 平衡后的数据集,将所改进的网络模型重新进行训练。图7(a)为SINet 网络模型在训练和测试过程中的loss 曲线图,横坐标表示迭代次数,纵坐标表示loss 值;图7(b)为测试过程中准确率的曲线图,横坐标为迭代次数,纵坐标为准确率值。
图 7 SINet 曲线图Fig. 7 SINet curve
从图7(a)中可以看到,随着迭代次数的增长,其loss 值也在快速降低,在1 000 次以后开始收敛,且在该过程中训练集与测试集的loss 曲线大体上均趋于同步收敛。图7(b)中,测试集的准确率在1 000 次之后趋于稳定,且测试集的准确率为96.77%。
表2 为SINet 网络模型下,通过以上评价指标计算出的每类缺陷的分类结果及其准确率。从表中可以看出无缺陷图像的分类准确率为100%,裂纹以及圆形缺陷的分类准确率均在98%以上,识别效果也较好。而未熔合、未焊透与条形缺陷的分类准确率较低。在未熔合缺陷中有8 张错分为未焊透,有2 张错分为裂纹,在未焊透中有4 张错分为未熔合,在条形中有4 张错分为未焊透,其原因可能是这3 类图像比较相像。
表 2 焊缝缺陷的分类结果Table 2 Classification results of weld defects
图8(a)为焊缝缺陷图像正确分类的例子,图8(b)为焊缝缺陷图像错误分类的例子。通过对比可以看出错误分类的例子中未能识别出裂纹、未焊透且圆形缺陷的图片较为模糊,圆形缺陷呈现出正常的视觉特征,未能识别未熔合缺陷的图片与裂纹缺陷图片较为相似,同样,错分的条形缺陷与未焊透缺陷存在图片相似问题。因此在识别过程中存在识别错误的情况。
本文将所改进的卷积神经网络SINet 与Alex-Net、VGG16、ResNet50 在数据集上进行对比,分别比较了不同模型在同一测试集下的准确率和训练所生成的模型大小。表3 为4 种网络的对比情况。
图 8 部分测试样本分类结果Fig. 8 Classification results of some test samples
表 3 不同网络准确率和参数对比表Table 3 Comparison of accuracy and parameters in different networks
从表3 中看到SINet 测试准确率均高于其他卷积神经网络,且模型规模也最小。表中AlexNet、VGG16 训练模型的大小分别为115.6 MB 和159.6 MB,训练模型较大,其原因是网络结构最后使用的都是全连接层,导致网络模型的规模要大于其他卷积神经网络。ResNet50 模型的大小为94.5 MB,虽然该模型层数较深但是由于其最后采用全局平均池化层,因此网络模型参数较少。而本文所提出的SINet,其模型大小仅为20.0 MB,其原因在于网络中采用了串联卷积操作、SI 模块以及最后采用全局平均池化层,这种结构可有效地减小网络模型的大小。该模型对于焊缝缺陷图像的分类效果也比较好,准确率为96.77%,原因在于该模型中的SI 模块对缺陷图像进行多尺度融合以及特征重用,使得网络对图像提取特征的能力增强,进而进行良好的分类。
4 结论
针对焊缝缺陷图像的分类问题,本文提出了一种改进的卷积神经网络模型SINet,并且为消除数据不平衡对模型的影响,采用DCGAN 对数据集进行数据平衡处理,在该数据集上验证模型的有效性。SINet 以4 组2 个 3×3卷积串联为基础学习网络与SI 模块相结合,利用SI 模块中的多尺度卷积操作以及压缩激励操作,提高焊缝缺陷图像的分类精度。同时采用全局平均池化层代替全连接层,减少参数,防止过拟合现象的发生。经实验证明SINet 网络模型在焊缝缺陷图像测试集上的准确率达到96.77%。