陈昕卓,李建军,张 超
(内蒙古科技大学 信息工程学院,内蒙古 包头 014010)
随着我国工业的蓬勃发展,我国已进入制造大国行列。近年来,随着我国“工业4.0”和“中国制造2025”等战略目标的提出以及制造业数字化、网络化、智能化的普及,工业品供应商对其产品的质量把控越来越严。在工业品生产线上,表面缺陷检测技术是保障工业品质量、性能和提高企业综合竞争力的关键。目前工业品缺陷检测的方法可以概括为以下3类:1)采用传统的人工方法检测产品表面,耗费大量人力、物力资源,费时且效率低下;人工处理具有较强的主观性,检测的准确率无法得到保障;2)采用传统的机器学习的方法提取特征进行缺陷检测时,主要任务量集中于图像预处理、提取特征、特征分类器设计。此类方法过度依赖人为设计的特征提取与分类方法,并且需要通过大量的实验进行参数调节和阈值设定,准确率随外界环境波动较大,误差率较高[1-4];3)基于卷积神经网络(CNN)的检测方法,该方法以经典的卷积神经网络为基础进行图像处理,进而生成特征图,最后完成缺陷检测,但是工业品表面缺陷复杂多样、缺陷区域大小不一、种类和程度均不相同,使得深度神经网络在工业品表面检测领域的应用受到了限制[5-7]。
基于卷积神经网络的检测和分类方法近年来已取得较好发展,Krizhevsky等[8]在2012年提出AlexNet网络模型,该模型由5个卷积层、3个全连接层和3个池化层构成,采用BN层加快收敛速度、采用Dropout防止过拟合。在ILSRVC大规模视觉识别挑战赛中斩获冠军,top5数据集预测的错误率为16.4%。Li等[9]简化了AlexNet模型的参数并用于钢板表面的缺陷分类,通过网络训练学习缺陷特征,避免了特征提取与图像分类分离的问题,形成了端到端的缺陷识别,分类准确率达99.05%。
K.M.He等[10]在2015年提出了ResNet网络,基于Basic Block层数的不同,将残差网络分为ResNet18、ResNet34、ResNet50、ResNet101、ResNet152共5个类型,通过downsample使输入与输出尺寸相统一,利用恒等映射原理,可以使网络进一步地加深而不会导致网络梯度消失和爆炸,也不会增加误差。获得当年CVPR大赛第一名,在ImageNet测试集上达到了96.32%的准确率。何[11]等人提出了基于RestNet34的弱监督钢板缺陷分类检测系统,分类准确率达93.2%。
He等[12]通过采用残差网络(ResNet34、ResNet50)在每个阶段生成的特征图,提出多级特征融合网络(MFN),进行钢板表面缺陷检测,该方法可以在单个GPU上以20fps的速度进行检测,缺陷检测任务的准确率达到82.3%。
基于以上基础。本文针对现有网络模型复杂、特征尺度单一、参数过多、难以训练、网络收敛速度慢等问题,在ResNet网络模型的基础上提出了一种多尺度残差融合模型。其主要创新点包括:
1)在特征提取方面,为避免输入特征尺度单一、特征信息丢失。使用多尺度特征融合网络模型,将卷积核分别设置为5×5、7×7、9×9提取多尺度特征信息。
2)针对神经网络中全连接层参数量大,导致的收敛速度满,且易产生过拟合等问题。在网络模型中,采用全局平局池化层替代全连接层。防止网络的过拟合,加强特征图与类别的一致性,加快网络收敛速度。
3)为了提高神经网络中BatchNorm[13]模块对图像进行批量归一化能力,避免样本之间差异过大的问题,使用Representative BatchNorm[14]层代替BatchNorm层,在原BatchNorm层的基础上增加中心校准和缩放校准环节。增强特征信息并削弱噪声,提高分类任务的准确率。
本文所提出的网络,在东北大学钢板缺陷数据集NEU-CLS进行实验分析,相比现有技术,得到了比现有检测更高的识别准确率,因此,将该项技术应用于实际生产中,将会进一步提升产品的质量保障,提升产品竞争力。
在运用残差网络ResNet时,由于特征提取尺度的单一性,存在特征信息丢失的现象。针对这个问题,提出多尺度特征融合模块提取图像中不同尺度的特征。本文提出的多尺度特征融合模块的基本思想是运用多个不同的卷积核提取多尺度特征,采用并联三通道结构,并将多个卷积操作提取的特征图融合,最终构成了完整的多尺度特征提取模块。该模块的结构如图1所示。
图1 多尺度特征融合模块结构示意图
多尺度特征提取与融合模块主要分为两个部分:多尺度特征提取部分、多尺度特征融合部分。
1)多尺度特征提取部分采用并联三通道结构,且各分支结构卷积核不同。卷积核大小分别为5×5、7×7和9×9,不同尺寸的卷积核对不同尺度的特征进行提取,既保留浅层的细节信息又融合了深层信息。
2)特征融合部分是将多尺度特征提取层提取的多个特征图进行融合,运用Concatenate使多通道提取的特征图拼接成一个完整的特征图。最后融合成的特征图的输出通道数为各分支输出通道数之和。在融合过程中,为保证输出特征图大小一致,采用padding填充特征图边缘区域。多尺度特征提取与融合模块原理如图2所示。
图2 多尺度特征提取与融合模块原理图
在使用卷积神经网络进行分类任务时,全连接层通常作为神经网络的最后一层。该层存在大量的参数,导致计算量增大,极大地限制了神经网络的收敛速度,且易产生过拟合等问题。为解决上述问题,一般会在全连接层设置Dropout,按照一定的概率随机失活一些网络单元,减弱神经元之间的依赖性,增加网络的泛化能力。但是采用Dropout会增加网络的训练时间,并且不易设置最优参数。
全局平均池化(GAP,global average pooling)[15]不以小窗的形式滑动,而是在上一层输出的整张特征图上进行全局均值化,将特征图转化为一个特征向量,输入的每一层特征图由特征向量的每一个数值表示,其原理如图3所示。使用全局平均池化层对整张特征图所有值求平均,可以充分利用每张特征图的信息提取关键特征并减少计算量。本文利用全局池化层代替残差网络中的最大池化层,将特征向量导入残差网络的输出层进行求解,即可获得分类结果,减少了参数量,不需要优化参数,提高了网络训练效率,减轻了拟合程度。因此,运用GAP代替全连接层有助于提高网络性能,提升识别率。
图3 全局平均池化原理图
1.3.1 BN
BatchNorm模块能加速神经网络的收敛并提升识别准确率,因而被广泛使用。Batch- Norm由特征居中、特征缩放和放射变换3个步骤实现。给定输入特征x∈RN×C×H×W,其中N、C、H、W为batch的大小、通道数、输入特征的高度和宽度。特征居中、缩放、仿射公式如下:
xm=x-μ
(1)
(2)
Y=γxs+β
(3)
式中,xm为feature map中心,xs为特征缩放值,Y为仿射变换后的结果,γ是用来调整数值分布的方差大小,β是用来调节数值均值的位置。γ、β是由反向传播过程中学习得到,γ的默认值是1,β的默认值是0。μ和σ为feature map 所有像素值点总数的平均值和方差,在归一化的过程中,使其满足均值为0,方差为1的分布,其公式为:
(4)
(5)
式中,μ为像素点总数的平均值,σ为像素点总数的方差值;xi为该图像样本中第i个像素点值;n表示该样本总像素点数,∈为保证分母恒大于0的常数值。
BN通过归一化方程对样本进行归一化操作将数据规整到统一的区间,减轻了数据的发散度,降低了网络的学习难度。且在一定程度上保留原数据的分布。
1.3.2 RBN
通过BatchNorm的均值和方差归一化处理使得神经网络的训练更加稳定,通过使用小批量统计信息将中间特征限制在归一化分布内,从而减轻了训练难度,但在归一化过程中忽略了样本之间的表示差异。为了解决上述问题,提出了RBN(representative batch normalization)模型,其中RBN分为两个步骤:1)中心化校准(centering calibration);2)缩放校准(scaling calibration) 。中心化步骤是为了增强信息特征,减少噪声:缩放步骤是为了让特征服从一个稳定的分布,其原理如图4所示。
图4 BN(左)和RBN(右)工作流程图
1)中心化校准。中心化校准在原BatchNorm层的居中操作前添加中心校准环节。若给定输入特征为X,定心校准如式(6)所示:
Xm=X+ωm⊙Km
(6)
式中,输入特征X∈RN×C×H×W,Xm为定心校准值,其中N、C、H、W为batch的大小、通道数、输入特征的高度和宽度。ωm是一个形状为(N,C,1,1)的可学习变量,Km是各个实例特征的统计量且Km∈RN×C×H×W,⊙是将两个特征散步同一形状的点积运算符。通过定心校准后,feature map的中心公式为:
XM=Xm-E(Xm)
(7)
式中,XM为特征中心,E(Xm)为中心校准后的均值。
2)缩放校准。缩放操作是添加在特征缩放之后的校准环节,可对特征的方差进行缩放,并得到特征的单位方差。然而,均值缩放会导致特征强度不稳定,即某些通道的特征远大于其他通道的特征。因此,在缩放操作后采用缩放校准来校准特征强度。缩放校准公式如下:
XS=XS·R(ωv⊙Ks+ωb)
(8)
式中,ωv、ωb∈R1×c×1×1是可学习变量,R()为限制函数,本文采用Sigmoid函数作为限制函数抑制极值,Ks是实例特征XS的统计量。
RBN采用了简单而有效的特征校准方案,保留了样本中各实例的特征,并产生了更稳定的特征分布。定心校准增强了信息特征并削弱了噪声;缩放校准限制了特征强度以形成更稳定的特征分布。用RBN取代BN可较大限度地提高神经网络模型的性能。
1.4.1 ResNet网络的优缺点
随着深度学习的发展,自AlexNet网络诞生以来,许多学者选择通过加深网络深度的方法解决目标检测、分类等任务,虽然取得了较好的效果,但也带来了一些问题:
1)传统的卷积神经网络由一系列卷积层与下采样层进行堆叠得到,在浅层网络叠加到一定深度时,会产生梯度消失和梯度爆炸问题。导致网络反向传播过程中无法对前面的网层权重进行有效的调整。
2)在深度模型上增加更多的网层会导致网络退化的现象,即随着网络深度的增加,准确性达到饱和,然后迅速下降。这是由于冗余的网层学习了非恒等映射的参数造成的。
ResNet网络通过引入一个深度残差学习框架解决了深层网络梯度消失(爆炸)的问题,使用shortcut 的连接方式,进行恒等映射,不会产生额外的参数,也不会增加计算复杂度。以ResNet18为例,ResNet18共有18层,网络输入为224×224,通过卷积和最大池化操作,图像降维到56×56,且通道数保持不变。完成前两步操作后进入残差模块,每经历一部分残差模块图像降维一半,通道数则增加到原通道数的二倍,通过4次残差网络的处理,图像降维到7×7,此时通道数为512,最后连接平均池化层和全连接层。
ResNet虽然解决了梯度消失(爆炸)的问题,也可以避免随着网层的叠加而导致的网络退化现象。但在工业品表面缺陷检测与分类的使用场景下,仍存在特征提取尺度单一、模型参数多、资源需求大、收敛速度慢等缺陷。
1.4.2 改进的ResNet网络
通过设计多尺度特征提取模块,充分提取深浅层的特征信息,并且随着网络宽度的增加,可以有效缓解训练样本有限的问题。全局平均池化层代替全连接层,减少了参数量,提高了网络训练效率,减轻了残差网络过拟合程度。
在每个残差块中,当输入通过卷积操作后,采用RBN层代替BN层,通过中心化校准和缩放校准,增强信息特征,减少噪声,并使特征分布更加均匀。再通过线性整流函数(ReLU,rectified linear unit)进行激活,最后通过卷积层和RBN层的处理得到输出,设计框图如图5所示。
图5 残差块设计框图
该网络首先使用多尺度特征提取和融合模块对原图像进行卷积操作学习特征,然后添加RBN层进行数据的归一化处理,保证网络性能的稳定。然后采用线性整流函数,以提高该模块的非线性映射能力,函数关系如下式所示:
fi(x)=ωi*x+bi
(9)
(10)
其中:x表示多尺度特征提取模块的输入;fi(x)为第i个卷积层的的输出;wi和bi分别表示该模块的第i个卷积层的权重和偏置;“*”表示卷积操作;σ(·)表示ReLU激活函数。最后将得到的f(x)作为ResNet的输入。
将残差网络结构分为4个阶段(当输出空间大小或输出通道数要改变时,标志着另一个阶段的开始)。每个阶段有2个BasicBlock,在网络末端使用全局平均池化层代替全连接层。网络模型架构如图6所示。
图6 改进的ResNet网络结构图
本文的实验在东北大学公开的钢板表面缺陷数据集NEU-CLS上进行,该数据集涵盖了6类常见的热轧钢板表面缺陷,分别为轧制氧化皮(RS),斑块(Pa),开裂(Cr),点蚀表面(PS),内含物(In)和划痕(Sc)该数据集共有1 800张样本,每个类别300张。训练集与测试集的比例设置为8∶2。
以搭载Intel酷睿i7-11700kF CPU,内存大小32G,Nidia 1660GPU的计算机作为实验硬件基础,实验软件环境基于Windows10操作系统、pytorch1.6深度学习框架、python3.7搭建的缺陷检测框架。
在原有ResNet18、ResNet34、ResNet50上进行改进,采用多尺度输入代替单一尺度输入,通过RBN层代替BN层,通过平均池化层代替全连接层得到Multi-scale-RBN-ResNet网络。将Multi-scale-RBN-ResNet模型和原有ResNet模型进行对比实验,在非迁移学习的情况下,训练时每次读取数据的样本数为batch size=8,本文提出的网络模型在该数据集上迭代30次(epoch=30),实验结果如图7所示。
图7 NET-CLS数据集实验结果对比图
由图可知,随着迭代次数的增加,各模型的测试准确率也随之提高,最终接近100%。其中,本文提出的模型明显优于传统残差网络模型,在不使用迁移学习的情况下,分类准确率可达到100%。其中,Multi-scale-RBN-ResNet18收敛速度最快,并且相对稳定,模型的识别性能最为优异。
该数据集来源于实际生产中带有表面缺陷的钢板并已完成图像预处理:将尺寸归一到200×200、对噪声进行去除、并完成二值化操作,使得缺陷检测过程中受外界干扰较小,检测的准确率达100%。
本文提出的Multi-scale-RBN-ResNet18网络模型和使用NEC-CLS数据集的其他方法在分类准确率上的对比实验,结果如表1所示。
表1 本文模型与其他的检测方法对比实验
其中,在文献[16]中,提出了一种金字塔特征融合和全局注意力网络,用于表面缺陷检测;在文献[17]中,根据基线卷积神经网络在每个阶段生成的特征地图,提出多级特征融合网络(MFN)用于融合更多深度信息;在文献[13]中,提出了一种基于卷积神经网络的钢表面缺陷半监督学习方法,该方法需要的标记样本较少,并利用伪标签对CNN进行了改进;在文献[18]中,提出一种用于带钢表面检测的端到端表面缺陷识别系统。该系统基于对称的环绕显著图进行表面缺陷检测,深度卷积神经网络直接以缺陷图像作为输入,以缺陷类别作为输出;可对数据集中的6类缺陷和无缺陷钢板进行分类。本文提出的模型取得了最高的识别准确率,验证了该模型的有效性。
为了验证本文提出的网络模型对不同工业品表面缺陷的测试效果,选取阿里天池比赛的铝型材表面缺陷数据集,并结合铝型材在生产过程中的常见缺陷类别进行实验验证。大赛数据集里有1万份来自实际生产中有瑕疵的铝型材监测图像数据,本文随机选取其中的8个瑕疵类别,每个类别包含200个数据。训练集和测试集的比例设置为8∶2。原始样本瑕疵种类如图8所示。
图8 铝型材表面缺陷数据集
在铝型材缺陷数据集上叠加30个epoch,将本文提出的模型与AlexNet[19]、VGG16[20]和ResNet模型进行对比,如图9所示。由图可知,对于橘皮、划痕、擦花缺陷种类,缺陷信息较为接近,且铝型材的制造与加工处于工况复杂的场景下,通过小样本和细节缺陷信息的输入,网络分类准确率仍可达到98.8%。与AlexNet、VGG16和ResNet网络模型相比,Multi-scale-RBN-ResNet18在准确率和收敛速度两方面均得到了极大限度的提升。
图9 铝型材数据集测试准确率对比图
本文针对工业品表面缺陷检测任务,在ResNet模型的基础上,添加多尺度特征融合模块,利用多尺度卷积提取更多尺度的特征;然后,采用RBN层代替BN层,增强了特征信息;最后使用全局平均池化代替全连接层,使输出与特征类别映射更加直观,并简化了网络模型。在NEU-CLS数据集上识别率达100%,在阿里天池铝型材表面数据集上识别率达98.8%。实验结果表明,改进后的网络模型对工业品表面陷检测效果比较理想,性能优于其他同类模型。