注意力级联网络的金属表面缺陷检测算法

2021-07-22 17:02方钧婷谭晓阳
计算机与生活 2021年7期
关键词:级联卷积注意力

方钧婷,谭晓阳+

1.南京航空航天大学 计算机学院,南京 211106

2.模式分析与机器智能工业和信息化部重点实验室,南京 211106

3.软件新技术与产业化协同创新中心,南京 211106

随着我国工业和制造业的蓬勃发展,高标准、高质量产品的需求逐渐旺盛。金属是工业生产中的重要材料,在生产过程中,金属表面不可避免地会产生缺陷,这些缺陷会对产品的质量和性能造成不利影响,同时与产品市场份额和品牌声誉息息相关。许多工厂仍然使用人工检查的方式进行金属表面缺陷检测,这不仅费时费力,而且无法满足大规模工业生产的需求。与人工检查相比,基于计算机视觉的表面缺陷检测具有高精度和高效率的优点。因此,迫切需要将自动化的金属表面缺陷检测引入工业产品生产过程中。

缺陷是指在生产过程中产生的物理和化学损坏,通常是由于撞击、摩擦、腐蚀等引起的。冰箱工业中金属门的受检图像如图1(a)所示,缺陷形状各异,背景光照复杂。图1(b)列举了一些缺陷类型,其中划痕类缺陷存在面积跨度大、易断开的特点;污点类缺陷目标小并且易与背景纹理混淆;缺陷普遍存在边缘不清晰和对比度低的问题。与光学部件和织物等非金属表面不同,金属表面容易出现照明不均匀和强反射等问题,强反光会使图片出现盲区;金属的镜面材质还会产生周围环境的倒影,这些特点均导致背景环境更加复杂,增加了检测的难度。金属表面缺陷检测的难点在于:(1)环境因素,例如不均匀照明、零件边界、强反光和背景纹理影响检测效果。(2)缺陷的边缘对比度低、模棱两可,易漏检和误检,检测器难以准确定位。基于区域的对象检测方法在目标检测领域取得了突破性的成果,但是直接应用于缺陷检测并不能很好地解决上述难点,检测效果无法满足工业需求。

Fig.1 Challenges of metal surface defects detection图1 金属表面缺陷检测的挑战

本文针对复杂的实际检测环境,设计了高性能的金属表面缺陷检测算法,旨在对缺陷区域进行定位和分类,以满足工业制造的需求。在基于传统区域卷积神经网络(region-based convolutional neural network,R-CNN)二阶段目标检测算法上,设计加入注意力机制提高神经网络特征提取能力,引入级联头部网络提高检测质量。本文的主要贡献如下:

(1)提出了一种基于注意力机制的端到端检测方法。将级联检测头部网络用于金属缺陷检测,与普通检测头相比,它提供了高质量和更一致的检测结果。

(2)设计了轻量高效的空间和通道注意力模块。通过添加该模块,卷积神经网络可以计算长距离依赖关系和学习关注重要特征,有效地提高特征提取能力。

(3)大量实验证明了本文方法的缺陷检测精度更高,鲁棒性更好。有希望在工业生产线上部署本系统,以提高生产质量。

1 相关工作

1.1 缺陷检测

表面缺陷检测问题已有充分研究,传统的检测方法可分为两类:图像处理方法和基于手工特征的机器学习方法。(1)图像处理方法使用局部异常反射来检测缺陷,包括Gabor 滤波器、边缘检测、Kittler 方法等。文献[1]通过Canny 边缘检测提取特征,用阈值法进行铁路轨道表面缺陷检测。文献[2]在铜带的红外图像上使用一阶Haar 小波变换获得小波特征,然后对其进行统计并区分是否存在缺陷。文献[3]使用Gabor 滤波器和双重阈值方法来检测钢板上的针孔。图像处理方法无法利用缺陷的内部特征,导致将某些零件、边界、纹理视为缺陷。而且这一类方法对背景颜色和照明条件十分敏感,当条件发生变化时,需要重新设计该方法。(2)基于手工特征的机器学习方法使用例如方向梯度直方图(histogram of oriented gradient,HOG)、局部二值模式(local binary patterns,LBP)、灰度共生矩阵(gray-level co-occurrence matrix,GLCM)等算法进行特征提取,然后通过训练好的分类器来确定输入图像是否有缺陷。文献[4]提出了一种照明和图像采集系统获得金属零件图像,然后使用Otsu 阈值法和其他图像处理方法对图像进行二值化,最后使用支持向量机(support vector machine,SVM)来预测图像是否包含缺陷。文献[5]使用向量值正则核函数逼近和SVM 来定位钢铁产品的缺陷。这类方法有两个局限:首先,对于复杂环境,手工制作的特征向量不能充分表达信息;其次,分类器检测无法准确定位缺陷。上述两种传统方法缺乏对实际金属检测环境的适应性和鲁棒性。

近年来,深度学习在目标检测中表现出出色的性能,提出了几种基于卷积神经网络的缺陷检测方法。文献[6]提出了一种基于R-CNN 的快速缺陷检测方法,该方法可以检测各种缺陷,包括钢表面腐蚀检测。文献[7]提出了一种多任务卷积神经网络检测金属轴承滚子的表面缺陷。文献[8]提出了一种CASAE(cascaded autoencoder)体系结构来分割和定位缺陷。文献[9]提出了一种轻量级的网MobileNet-SSD 来检测缺陷。上述方法并没有针对金属表面环境做出优化,在真实的复杂场景下,检测效果有限。

1.2 目标检测

目标检测包括对目标的分类和定位。在深度学习神经网络的快速发展下,目标检测可以大致分为两种类型:一阶段方法和两阶段方法。

两阶段方法将目标检测任务分为两个阶段:生成区域建议(region of interest,ROI),对区域建议进行分类和回归。R-CNN[10]使用选择性搜索[11]在输入原始图像中生成ROI,然后通过基于卷积神经网络的独立分类器对原始图像中裁剪的ROI 进行分类和细化。SPPNet(spatial pyramid pooling network)[12]和Fast R-CNN[13]通过空间金字塔和ROIPooling简化计算改进R-CNN,RoIAlign层[14]进一步改进了ROIPooling,解决粗略空间量化问题。Faster R-CNN[15]引入区域建议网络(region proposal network,RPN),构建了一个统一的目标检测端到端的框架,RPN 通过回归锚框生成ROI,与检测网络共享相同的主干网络,以替换原始耗时的选择性搜索区域提议方法,RPN 被广泛应用于之后的两阶段方法。R-FCN(region-based fully convolutional networks)[16]通过全卷积网络构造位置敏感图替换全连接层,进一步提高了Faster RCNN 的检测速度。TridentNet[17]构建了并行的多分支架构,其中每个分支参数共享但是感受野不同,旨在提高检测器对尺度变化的鲁棒性。Cascade R-CNN[18]构建了交并比(intersection over union,IoU)阈值递增的级联架构,提高检测精度的同时避免过拟合现象和训练推理时的质量不匹配问题。一阶段方法不进行ROI 提取,而是直接预测边界框和类别。YOLO(you only look once)[19]将输入图像划分为N×N的网格作为锚框进行分类和回归。YOLOv2[20]通过使用更多的锚框和新的边界框回归方式提高性能。YOLOv3[21]通过使用更有效的网络结构Darknet-53和多尺度预测进一步提升性能。SSD(single shot multibox detector)[22]将锚框密集地放置在输入图像上,并使用不同卷积层的特征对锚框进行回归和分类。RetinaNet[23]提出Focal Loss 解决一阶段检测器的类别不平衡问题,使其结果能与两阶段检测器相媲美。CornerNet[24]是另一种基于关键点的方法,将目标检测框检测为一对角点。CenterNet[25]将目标检测为三个关键点,从而提高了检测精度。这一类基于角点的方法放弃了Faster R-CNN 引入的被广泛使用的锚框概念,并且取得了非常好的性能,为目标检测带来了新方法。

1.3 注意力机制

注意力机制在人们的感知中起着重要的作用[26-27]。目前,注意力机制已成功应用于各类任务,例如语音识别[28-29]、机器翻译[30-31]和各类视觉任务。在视觉活动中,并不会完整地处理看到的所有东西,而是有选择地专注在特殊的部位,以更好地获得信息。注意力机制不仅可以将有限的处理资源分配于信息丰富的部分[26,32-33],同时也可以使得该部分的特征得到增强[34]。SENet[35]提出了挤压与激发模块,通过建模通道之间的相互依赖增强网络的表达能力。GENet[36]和PSANet[37]也是关注于通道之间的关系,以校准通道特征响应。文献[34]提出了可堆叠的注意力模块,捕捉不同特征图中的多层次注意力信息,使用残差连接以避免出现梯度消失问题,但是由于多层堆叠导致插入网络后大幅度增加了参数量和计算开销。Non-local Net[38]提出了非本地模块以捕获远程依赖关系与自我注意力[30]相结合,在目标检测、姿态估计、视频分类等多个视觉任务中起到了作用。文献[39]在基于Faster R-CNN 的目标检测框架中提出了目标关系模块来刻画目标之间相互关系,实现相对位置的注意力,提升目标检测效果。GCNet[40]通过加法融合对全局上下文进行建模,在各种识别任务中做到了轻量有效。CBAM(convolutional block attention module)[41]通过对通道和空间两个维度重新缩放推断注意力图,对原始特征图进行自适应特征细化。

2 基于注意力级联R-CNN 的缺陷检测算法

金属表面缺陷检测结构图如图2 所示,原输入图像是由普通相机在无特殊照明下拍摄而成,图像尺寸为813×618。检测过程主要包含两个阶段:

Fig.2 Architecture of proposed defect detection method图2 提出的缺陷检测算法的体系结构

(1)特征提取阶段,利用卷积神经网络提取特征,骨干网络为增加了注意力模块的ResNet-101,在2.1 节中将对注意力模块进行详细推导。

(2)多级联分类回归阶段,包含区域候选网络(RPN),通过多IoU 阈值级联的头部网络设计获得精确度更高的检测框,具体设计在2.2 节中详细介绍。

2.1 注意力模块

注意力模块的目标是捕获长期依赖关系,并将重点放在重要特征上。给定一个中间特征图,按顺序计算空间注意力和通道注意力,通过将注意力图与原始特征图相加来自适应地改进特征图。空间注意力模块计算图像上任何两个位置之间的相互作用,这对于大跨度和大面积缺陷特别有效。通道注意模块计算特征通道之间的相互依赖性,学习选择性地强调有意义的特征。本文在主干网ResNet-101 的res4 阶段的最后一个残差块之前添加注意力模块。表1 所示为金属表面缺陷检测器的特征提取阶段网络Attention-CNN 结构。注意力模块操作函数为:

Table 1 Structure of Attention-CNN表1 Attention-CNN 的网络结构

其中,⊕表示逐元素相加,X′∈RC×H×W表示通过上一个残差块后得到的特征图,X″∈RC×H×W表示改进后的特征图,fs(∙)表示空间注意力计算模块,fc(∙)表示通道注意力计算模块。其中,通道注意力模块计算所得fc(X′)∈RC×1×1在相加之前要沿着空间维度广播。

2.1.1 空间注意力模块

卷积神经网络凭借其丰富的表示能力,极大地推动了计算机视觉任务的发展。但是卷积神经网络的卷积范围是固定的,并不能很好地获取长距离依赖关系。在实际工业检查环境中,缺陷的大小和背景是多种多样的。对于光滑的金属表面,容易出现大面积背景环境的倒影,如果感受野太小,检测器无法理解倒影,就会将倒影中反射的场景检测为缺陷;对于大面积的划痕和雾状痕迹,如果感受野太小,检测器只会检测出部分缺陷。为了使缺陷检测器具有良好的鲁棒性,能被实际应用于工业,建立长距离依赖至关重要。卷积神经网络通过加深网络深度,使得深层卷积运算形成大感受野来模拟长距离依赖,这种方式会导致计算成本增加,而且网络优化变得更加困难。

在本文中,设计简单高效的空间注意力模块,来捕获长距离依赖从而增强全局特征的提取能力。空间注意力模块计算的注意力图将每个位置的注意力响应计算为该位置与所有位置之间的关系。受NLNet[38]的启发,使用嵌入式高斯计算每个位置对的关系,然后根据文献[40]简化模块,并应用瓶颈设计进一步降低计算成本。空间注意力的计算公式为:

其中,N=H×W表示特征图的位置数量。i是查询位置的索引,j是枚举所有位置的索引。θ(xi)=Wθxi和φ(xi)=Wφxi表示嵌入计算,Wθ、Wφ和Wz表示线性变换矩阵,表示为1×1 卷积。C(x)是归一化函数,在嵌入式高斯中可化为softmax 计算。图3 显示了模块的架构,本文采用瓶颈比率r来减少参数的数量。

2.1.2 通道注意力模块

Fig.3 Architecture of spatial attention module图3 空间注意力模块结构图

特征图各个通道被视为特征检测器[42],即每个通道都表征一种特征,特征图通常是高维的,且在网络越深处维度越高,用来表示更深层的特征。为了关注于有意义的特征,本文建模通道之间的相互关系来生成通道注意力图。SENet[35]和CBAM[41]提出的通道注意力模块,都是在Sigmoid 操作后与输入特征图相乘,模块被插在每一个残差模块的相加操作之前,这导致了参数大量增加和网络加深。SENet和CBAM会使ResNet-50 增加9.9%参数量,使ResNet-101 增加10.7%参数量。若将其直接使用在金属表面缺陷检测问题,会出现以下问题:(1)骨干网络选择特征提取能力更强的ResNet-101,参数的大量增加使得训练批大小必须减小,这会导致网络收敛困难。(2)一般的注意力计算方法通常针对公共数据集中的自然图像,其训练样本远远超过了工业检查中的缺陷数据,网络深度的大幅加深会导致训练难度增加。在本文算法中,整个网络里只插入一个注意力计算模块,如果将其插在残差块中,经过跳跃连接后注意力自适应改进效果甚微,因而需要将其插在完整的残差块之后。而如果直接将SENet 和CBAM 的注意力模块放置在残差块之外,使用Sigmoid 操作会出现梯度消失现象。本文所设计的通道注意力模块,需要解决上述问题,才能有效应用于金属表面缺陷检测。

在本文中,对输入的特征图计算全局池化和最大池化以获得两个聚合空间信息的特征向量,通过一个共享的多层感知机(multilayer perceptrons,MLP)计算通道注意力,然后使用逐元素求和合并特征向量。最后,使用1×1 卷积进行特征转换。本文的通道注意力模块设计遵循GCNet[40]中提出的全局上下文建模框架。ResNet-101 在插入注意力模块后,参数仅增加4.1%。通道注意力的计算公式为:

其中,X′表示经过空间注意力模块后获得的特征图,表示具有一层隐藏层的多层感知机(MLP)组成的特征转换函数。和表示平均池化特征和最大池化特征。图4 显示了该模块的体系结构。

Fig.4 Architecture of channel attention module图4 通道注意力模块结构图

2.2 级联检测头部

在两阶段R-CNN 框架[13,15]目标检测算法中,RPN在网络获得区域候选框(Proposals)后,通过一个由分类和回归层组成的头部网络生成检测结果。头部网络通过计算候选框与真实边界框的交并比(IoU)来定义正负,一般将IoU 阈值设置为0.5,但这种宽松的要求会导致真实的正值不够准确,并且易产生嘈杂的边界框。缺陷检测器应该准确定位所有缺陷,同时抑制误报。本文提出级联检测头部网络来定位和分类缺陷,通过递增的IoU 阈值来训练检测器,从而提高了检测效果。头部网络结构如图2 所示。

该架构由两个头部网络级联而成,每个检测头都具有与R-CNN 头部相同的结构和自己的损失函数。第一个头部的IoU 阈值设置为0.5,第二个头部的IoU阈值设置为0.6。各阶段按顺序训练,使用上一个阶段的输出来训练下一个阶段。在缺陷检测任务中,分类任务比较简单而回归任务较难而且精度要求较高,本文重新设计损失函数。在每个阶段t,头部网络包括针对相应的IoU 阈值进行优化的分类器和回归器。损失函数如下所示:

其中,Lcls是分类的交叉熵损失函数,Lreg是定位任务的平滑L1损失函数,T=2 是阶段总数,c是分类预测的概率,是类别标签,r是预测的边界框,是真实的边界框,αt是不同阶段的权衡系数,β是分类和回归的权衡系数。通过这种级联学习,一些错误的检测框将被丢弃,因为它们无法满足更严格的IoU,正确的检测框通过更严格的IoU 头部回归后,将更接近真实值。

3 实验

3.1 数据集

本次实验数据集包含3 000 张像素为618×813 的普通相机拍摄的冰箱产品表面图像,其中1 500 张图像包含缺陷,1 500 张不包含缺陷。手工标注数据集上所有的缺陷坐标,然后按7∶3 的比例随机分为训练集和测试集。

由于已标记的金属表面缺陷数据较少,而深度卷积神经网络需要大量有效数据进行充分训练,否则难以获得具有泛化性的训练结果,而且容易陷入过拟合。为此,采用了图像水平翻转、图像垂直翻转、图像水平垂直翻转、随机抠取和尺度变换进行图像增光,增加训练样本的多样性。

3.2 实现细节

本文的缺陷检测系统是在Detectron 平台上的基于Caffe2 实现的,使用RPN[15]生成区域提议,级联RCNN的IoU阈值设置为U={0.5,0.6},α={1.0,0.5},β=1.5。本文使用FPN(feature pyramid networks)和ResNet-101 作为骨干网络,并在ImageNet 上进行了预训练。除了强大的骨干网络,本文还应用了多尺度训练和Soft-NMS。设置注意力机制模块中的瓶颈系数为4。初始学习率设置为0.001,分别在6 000 和9 000 轮后缩小为原来的10%,共10 轮后结束训练。在1 个GTXTITAN GPU 上运行,批大小为2。选取平均精度(average precision,AP)来衡量算法检测精度,它可以更全面地评估算法模型。在计算AP 过程中,边界框回归的准确率用交并比IoU 阈值衡量,IoU 取值越大,评价越严苛。本文使用AP50和AP75两个指标来评估检测精度,AP50指IoU=0.50 时计算得到的AP 值,AP75指IoU=0.75 时计算得到的AP 值。

3.3 不同设计对结果的影响

本节中设计了多个实验来证明本文提出的结构设计选择的有效性。在本实验中,使用FPN和ResNet-101 作为baseline,具体的训练和验证策略同3.2 节。

3.3.1 模块组合方式实验

注意力模块包含空间和通道两个模块,在2.1 节中描述了空间和通道模块顺序连接这一种组合方式,还有另外三种连接组合方式:仅一个空间模块,通道和空间模块顺序连接,空间和通道模块并行连接。如表2 所示,空间和通道模块顺序连接达到最佳结果,而且所有增加通道注意力的方法都胜过单个空间注意力模块,表明用两个维度计算注意力至关重要。

Table 2 Results of different combination表2 不同组合方式的实验结果

3.3.2 不同注意力模块对比实验

通过上述消融研究,本文得到了最终注意力模块组合方式,即按空间通道顺序连接模块。该实验中,将本文方法与两个常用的注意力模块NLNet[38]和GCNet[40]进行对比。与文献[38,40]设置相同,在res4的最后一个残差块之前添加一个NL block、一个GC block 或本文提出的注意力模块。表3 显示本文的注意力模块比NL 块和GC 块具有更好的性能。值得注意的是,本文的注意力模块是轻量级的,对ResNet-101 所需4.465×107参数以外引入3.1×106的附加参数,对应增加了6.9%,从而取得可观的性能提升(从78.9%增至81.8%)。

Table 3 Results of different attention modules表3 不同注意力模块的实验结果

3.3.3 不同级联策略对比实验

级联头部网络由多个R-CNN 头部组合而成,头部数量会影响检测的精度和实时性。在该实验中,分析级联策略对实验结果的影响,分别比较1~3 个头部对实验结果的影响。1 个头部的实验设置为U={0.5},α={1.00},β=1.5;2 个头部级联的实验设置为U={0.5,0.6},α={1.00,0.50},β=1.5;3 个头部级联的实验设置为U={0.5,0.6,0.7},α={1.00,0.50,0.25},β=1.5。实验结果如表4 所示,级联3 个头部网络AP50可以达到81.9%,比2 个头部网络高0.1 个百分点,检测精度有细微的提升,但同时检测速度下降,影响检测实时性。因此,本文选择2 个头部网络级联作为最终模型。

Table 4 Results of different number of stages表4 不同级联数量的实验结果

3.4 与传统算法对比实验

为了证明算法的优越性,将其与传统的机器学习方法进行比较。本实验中选择了HOG+SVM 和GLCM+SVM 进行了比较。HOG[43]是一种描述图像局部纹理的共同特征,GLCM[44]是一种经典的用来描述像素空间关系的特征。在获得上述特征后,选择SVM 将其分类为常规图像和缺陷图像。由于传统方法无法准确定位,使用AP 作为精度评估方法过于苛刻,因此在本实验中,仅比较分类的准确性。对于本文算法,如果检测到缺陷,则将整个图像分类为缺陷图像,否则分类为常规图像。精度计算如下:

其中,Tp是真正例(true positives,TP)的数目,而Fp是假正例(false positives,FP)的数目。实验结果对比如表5。从表中可以看出,仅在分类任务上,传统方法只能达到约70%的精度,而本文方法则达到99.7%。显然,本文方法要优于传统检测方法。

Table 5 Comparison with traditional methods表5 与传统方法的比较结果

3.5 与深度学习算法对比实验

本节实验旨在验证算法的检测精度。由于现在的基于深度学习的金属缺陷检测方法不够通用,并且通常是在目标检测方法上进行轻微改动,直接选择与主流目标检测算法进行比较:YOLOv3、Faster R-CNN、TridentNet 和CenterNet。在Detectron 和Detectron2上使用预训练好的ResNet-101 对Faster R-CNN 和TridentNet 进行训练,训练方法和细节设置与本文方法相同。对于一阶段检测器,按照文献[21]中给出的检测框架来训练YOLOv3,按照文献[25]来训练CenterNet。最后,还与文献[7]所提出的金属表面缺陷检测方法进行了比较,本文采用与文献[7]相同的26 层卷积神经网络结构,相同的参数设置和数据扩充进行训练。

表6 显示了各个检测算法在实际金属缺陷数据集上的性能,用AP 作为评价标准。显然,本文方法性能优于其他检测算法,AP50可以达到81.8%。值得一提的是,CenterNet 作为一种可以与顶级二阶段检测器性能相媲美的一阶段检测器,在缺陷检测任务上AP50只能达到23.8%。因为大量缺陷(例如划痕)是不规则线性的,它们通常不会穿过中心位置,CenterNet无法检测到中心关键点,从而导致大量漏检。

Table 6 Comparison with deep learning methods表6 与深度学习方法的比较

4 结束语

本文针对复杂背景下的金属表面缺陷检测问题,设计了高效的检测系统。针对背景大面积的反光和强反射,提出注意力模块以捕捉长距离依赖关系以及特征之间的相互依赖关系。该模块可以轻易插入主流主干网络,在增加少量参数的情况下,有效提高网络特征提取能力,在金属表面缺陷检测中表现好,后续可以考虑将其应用于传统目标检测问题。设计级联头部网络实现高质量检测,提高检测框位置精度。实验结果表明本文所提模型具有较高的准确性和鲁棒性,满足工业需求。

猜你喜欢
级联卷积注意力
一种中间电容谐振型级联双向DC-DC变换器
基于全卷积神经网络的猪背膘厚快速准确测定
基于MARC理论计算设计回收铀分离级联
实现级联形状回归方法对视线追踪
基于图像处理与卷积神经网络的零件识别
让注意力“飞”回来
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
A Beautiful Way Of Looking At Things
阅读理解两则