基于改进的Inception 金属板材表面质量缺陷检测*
2022-08-26郝路通
胡 鹰 郝路通
(太原科技大学计算机科学与技术学院 太原 030024)
1 引言
金属板材在生产和制造加工的过程中,往往由于生产运行的环境恶劣从而使得一些板材产生各种各样的瑕疵。严重影响了产品的质量,影响使用的性能。金属板材表面缺陷分:擦花、漏底、碰凹和凸粉等。如今对于金属板材表面质量的检测方法有三种:人工检测、漏磁检测和基于机器视觉的智能检测。传统的人工检测通常由有经验的工人用肉眼人为的辨别,不仅仅工作效率非常低下,而且往往受制于主观因素的影响,随着工业化的发展,工作量的提升,已经被时代所抛弃[15]。漏磁检测技术广泛应用于金属产品的无损检测[8],利用磁源对被测材料局部磁化,如材料表面存在裂纹或坑点等缺陷,则局部区域的磁导率降低、磁阻增加,磁化场将部分从此区域外泄,从而形成可检验的漏磁信号。但该方法只能适用于导电材料或者能产生涡流效应的非金属材料,对缺陷的种类定性非常困难,往往只能辨别是否有缺陷,而不能辨别是何种缺陷。基于机器视觉的智能检测是最近新兴的一种检测技术,视觉检测不仅可以提高检测缺陷的效率,而且可以清楚地辨别不同种类的缺陷。
为了解决金属板材表面缺陷识别效率较低,成本过高,识别缺陷不明等问题,提出了一种基于改进的卷积神经网络模型Inception-SE-Resnet。
2 相关工作
近年来,深度学习方法在自然图像检测方面表现出优越性能[16],深度卷积神经网络能够完善分类器模型并自主训练提取目标特征,训练后得到的特征泛化性远高于人工提取特征。周神特等利用SIFT 算法提取缺陷特征点,提出了一种BP 神经网络和SVM 向量机结合分类器的检测方法[9],对金属板材表面缺陷能有效的提取和识别。高琳明等提出了一种基于深度学习特征与NSVM 非线性支持向量机分类算法相结合的板材表面缺陷识别方法[11],该识别方法具有较好的鲁棒性和实用性,同时识别精度也有一定的上升。但不论是BP与SVM相结合还是NSVM 都存在效率并不高,并且识别的过程中会产生一定的误差。
随 着 深 度 学 习 不 断 的 发 展,VGGnet[7]、Googlenet[1]、Resnet[3]、SEnet[6]等经典的卷积神经网不断出现并且运用于各行各业的分类问题当中。目前国内已经有学者在此领域进行了相关研究,天津工业大学的冷彦奕等在并联机器人上使用FCN算法准确分类出镀锌冲压件瑕疵[13],准确率达到96.60%,为后续的分拣工作打下了良好基础。浙江理工大学胡鑫杰等利用卷积神经网络对5 种不同类型的特定大型工件进行训练[14],分类准确率达到了98.62%,实现了工件的识别。范佳楠等基于Faster R-CNN 实现了实木板材缺陷检测识别系统[12]。青岛科技大学蔡汉明等利用卷积神经网络对板材表面的五种不同的缺陷进行训练准确率达到了90.6%[10]。但是以上技术均在不同于金属板材识别领域,且都存在一定的不足之处,例如卷积层数过多从而导致的参数过多,或者网络模型设置不合理导致的效果并不是非常理想,又或者受制于板材的材料,加工环境,人为操作各种因素的影响。
因此,针对此问题设计了一种卷积层数更少,参数更少,成本更低以及识别准确率更高的网络模型Inception-SE-resnet对板材缺陷进行识别。
3 基于卷积神经网络的金属板材表面缺陷识别模型
3.1 金属板材表面缺陷识别网络模型介绍
本文对经典InceptionV2[2]网络结构进行了改进,加入了Stem、SE-Block、Reduction[4]等部分。因为原本的Inception网络通过卷积过程进行运算,实验过程中将原本的7*7 和5*5 的卷积核分解为7*1,1*7,5*1,1*5,这样做大大减少了进行过程中产生的参数,加快了训练网络过程中产生的时间消耗,并且加深了网络的深度。同时,ResNet[5]的残差结构可以防止网络在因层数增加而导致的梯度消失以及过拟合的问题。SE-Block 是SENet 中提出的嵌入结构,提出了用各通道权重再衡量的方式来提高分类正确率,并且把激活函数把原有的Re-LU 改成LeakyReLU,目的是增加网络泛化能力。最后的一个层级是Softmax,本文金属缺陷图像种类为4种,此处将Softmax 设置为4。
3.2 Inception-SE-ResNet具体模型
如图2 所示,左侧是未加入SE-Block 的Inception-ResNet 模型,右侧是本文所设计的添加SE-Block的网络模型。首先,将从Inception网络结构中输出的结果x 通过全平均池化层(Global pooling)进入全连接层(FC),得到处理后的结果C1·x,这一步操作的目的是为了减少通道数量,减少计算的参数量。其次,经过非线性层θ,其激活函数为ReLU,得到结果θ(C1·x),继续传入到一个全连接层设置的学习的缩放参数为C2,通过缩放参数将通道数还原至初始状态,此步骤获得的结果为C2θ(C1·x)。最后,将结果传送到非线性层σ以此获得各个通道的权重信息并输出。所有特征的信息参数都包含在全连接层中,通过激活函数来对权重信息进行设置,排除低弱特征,学习重要特征,以此达到减少干扰项的目的。将ResNet 模块和Inception模块的对应信息进行叠加。为了加快训练速度,提高训练的效率,SE-Block只与每种类型的Inception模块最后一层相结合。
图1 本文模型示意图
图2 Inception-ResNet模块(左)和SE-Inception-ResNet(右)
3.3 激活函数的优化
在经过激活函数之前,图像经过权重和偏置的线性组合最终的输出也是线性的,通过激活函数会将输出转变为非线性结果,通过不断的非线性函数的叠加和融合,可以让网络拥有强大的非线性拟合能力。图3展示了两种不同激活函数的区别,ReLU函数将负值设为零,会不可避免地使一些神经元处于静默状态。相比较之下,Leaky ReLU[17]保留了负值的输入y = ax,其中参数a 为非零较小的固定参数,防止了因输入负值时梯度为零而无法更新权重的问题,对局部特征进行了一定的优化,损失函数的收敛有了一定的保证。
图3 激活函数
4 实验结果及分析
4.1 实验环境及数据
本文使用Python3.8 以及深度学习框架Keras,系统参数如表1所示。
表1 系统参数表
本文使用的实验数据来自kaggle 竞赛中所使用的数据集。数据集中每一张都是包含有缺陷的金属板材。图片共计5134张,按照4∶1的比例划分训练集与测试集,其中训练集图片4107 张,测试集图片1027 张。以上是四种不同类型缺陷的具体图片,图4~7 分别为擦花、漏底、碰凹和凸粉。
图4 擦花
图5 漏底
图6 碰凹
图7 凸粉
4.2 实验模型对比
为了验证模型的性能,本文采用了VGG16 与Inception 卷积网络模型来作比较。首先将数据集的中图片调整为224×224,然后将训练集输入到三个模型中进行训练,最终把测试集输入到训练好的网络模型得到测试结果进行比对。模型训练的批量尺寸设置为64,训练的周期为100,学习率设置为0.001,采用随机梯度下降(SGD)方法结合动量Momentum,momentum 设置为0.9。不同模型经过训练在测试集上的识别准确率如图8所示。
图8 三种模型准确率对比
从图8 中可以看出,三种模型在初期时因为随机初始化的参数,模型波动比较大。随着不断训练网络模型,最终三种模型识别的准确率不断上升并且逐渐趋于一个稳定的状态。Inception 与本文模型相比,虽然同样具有多通道卷积模块,但ResNet残差结构和SE-Block 模块使得网络模型在卷积过程中可以将低特征图与高特征图联合参与分类决策,并且在深层卷积中使误差不断减小,相比准确度提升了10.2%,证明了本文模型的可行性。
表2 为三种模型在面对不同类型的金属板材缺陷时的识别正确率,其结果均表明了本文模型在面对各种金属板材缺陷的结果总是优于其他两种对比模型。
表2 三种模型对四种缺陷的准确率
4.3 激活函数改进的对比
图9 为采用激活函数ReLU 和采用激活函数Leaky ReLU 加入SE 模块Inception-ResNet 网络模型对比实验结果图。
图9 不同激活函数准确率对比
由图中的数据可以看出,采用了Leaky ReLU的网络模型相较采用ReLU模型准确率提高了。这是由于ReLU函数在训练过程中可能导致一部分神经元处于静默状态,进而无法更新权重。而Leaky ReLU很好地解决了这种问题。
5 结语
本文针对现如今金属板材缺陷识别成本高,识别效率低以及识别精度不够等问题,提出了一种采用ResNet 模块和SE-Block 模块组成的Inception 网络模型,不仅提取特征的能力增强,并且使其在卷积层数增多的情况下性能更好、运算更快、参数更少。再通过将激活函数ReLu 替换为Leaky ReLU使其本身准确率得到小幅度提升。最终模型的准确率到达,相较于传统模型Inception 和VGGnet 提高了10.2%和17.2%,在金属表面缺陷识别问题上具有更好的效果。