于海涛,李福龙,刘亚姣,王 江,于利峰,张春晖,刘宝顺,马永福
1.天津大学 电气自动化与信息工程学院,天津 300072
2.河北津西钢铁集团股份有限公司,河北 唐山 063000
在型钢生产过程中,鉴于工艺和环境复杂性,型钢表面不可避免地存在如凹坑、结疤、划伤、击伤等多种类型表面缺陷,严重影响了型钢质量,降低了钢材的使用寿命。因此,表面缺陷检测是钢铁生产的重要环节之一[1-2]。传统人工检测方法由于缺乏严格的定性定量标准,严重依赖检测人员的主观判断,存在漏检率高、效率低下等问题,难以满足高效精准的型钢表面多类别缺陷检测需求[3]。
随着人工智能和深度学习的快速发展,利用机器视觉对表面缺陷进行精准定位与准确识别在技术上逐渐成熟可行[4-5]。当前基于深度学习的目标检测算法主要包括以RCNN家族为代表的两阶段目标检测算法和以YOLO系列模型为代表的单阶段目标检测算法[6-9]。前者使用区域候选网络(region proposal network,RPN)提取目标信息,通过分离特征提取与目标回归等两个过程,具有检测精度高的优点,被广泛应用于钢材表面缺陷检测任务中:如王立中等改进了Faster R-CNN中的Resnet101特征提取网络,并应用于带钢表面缺陷检测,验证了Faster-RCNN模型在钢材表面缺陷检测问题上的有效性[10];翁玉尚等人在此基础上提出了一种检测带钢表面缺陷的改进Mask-RCNN模型,通过使用k-means II聚类算法改进了区域建议网络锚框生成精度,进而提升了检测准确率[11];韩强等人进一步提出了一种特征融合和级联检测网络的Faster R-CNN钢材表面缺陷检测算法,通过融合特征图的方式达到减少特征提取过程中结构信息丢失的目的,缺陷检测精度达到98.29%[12]。然而,虽然两阶段算法具有较高的检测精度,却存在检测效率低的问题,不适于型钢表面微小缺陷的快速检测[13]。
与两阶段算法相比,单阶段目标检测算法利用回归思想,将分类与定位任务相合并,直接计算出多个目标的分类结果与位置坐标,速度更快,被广泛应用于实时检测系统中[14]。如程婧怡等人针对金属表面缺陷检测提出了改进YOLOv3模型,通过加入DIoU边框回归损失为边界框移动方向提供了更准确的位置信息,加快了模型的收敛,在NEW-DET数据集上取得了31.6 frame/s的检测速度[15];袁野等人提出一种检测冰箱金属表面缺陷的Metal-YOLOv3模型,通过优化损失函数和选取合适的先验框等方法提升了检测效率[16]。上述研究在表明YOLO模型在缺陷检测领域的高效性,但采用YOLO模型存在检测精度较低、难以检测相对集中且较小的缺陷对象等问题。
近期研究表明利用注意力机制可有效提高小目标检测准确率[17]。当前注意力机制主要包括通道注意力(channel-attention)、空间注意力(spatial-attention)和自注意力(self-attention),其中自注意力模型在目标检测领域效果最好[18],但同样存在检测效率低的问题。前两种模型没有充分利用图像多尺度特征信息的优势,与自注意力模型相比检测效果略差。
针对上述问题,考虑到型钢表面缺陷具有形态多样、微小尺度缺陷较多的特点,本文以YOLOv3模型作为基础架构,提出了一种基于空间注意力和通道注意力的双重多尺度注意力模型DMSA(dual multi-scale attention,DMSA),并将其与改进的YOLOv3模型相结合,显著提升了型钢表面微小尺度缺陷的检测精度和多尺度缺陷的检测效率。本文的主要贡献如下:
(1)构建了基于通道和空间注意力的双重多尺度注意力模型DMSA,强化了多尺度融合特征图中小尺度缺陷特征的分配权重,提高了小尺度缺陷目标的检测精度。
(2)改进了YOLOv3模型,使用深度可分离卷积(depth separable convolution,DSC)替代特征提取主干网络中的标准卷积,削减模型计算量,提高检测速度,并构建了多尺度长距离上下文特征提取层(multi-scale long-distance context,MLC)替代原模型上采样操作之前的卷积过程,增强了模型对微小尺寸缺陷的特征提取能力。
(3)将DMSA模型和改进的YOLOv3模型相融合,构建了型钢表面多尺度缺陷检测模型DMSA-YOLOv3,与原YOLOv3模型相比显著提高了多尺度缺陷检测精度和检测速度。
综合考虑型钢表面缺陷检测速度与精度要求,本文在原YOLOv3模型基础上,构建了如图1所示的DMSAYOLOv3缺陷检测模型,其新增模块由红色虚线方框标出。DMSA-YOLOv3模型首先添加了第二个残差模块中的128×128尺度输出特征图,用于获取型钢表面小尺度缺陷特征信息,并与原YOLOv3模型三种小尺度输出特征图共同作为DMSA模型输入。通过对四种特征图进行位置信息编码和通道关联性计算,DMSA模型分别获取多尺度特征图的空间与通道注意力权重。为解决融合注意力模型后造成的检测速度下降问题,DMSAYOLOv3模型使用深度可分离卷积替代YOLOv3模型特征提干网络中的标准卷积,实现特征提干网络的轻量化处理;同时,将上采样操作之前和通道堆叠之后的卷积过程替代为构建的多尺度长距离上下文特征提取层,利用改进金字塔模块和长程连接模块全面获取型钢表面不同尺寸缺陷信息。新增模块强化了DMSA-YOLOv3模型对小尺度缺陷的特征提取能力,增加了特征图中小尺度缺陷目标特征信息,可以有效提高多类别缺陷检测准确率和检测精度。
图1 DMSA-YOLOv3模型架构Fig.1 Architecture of DMSA-YOLOv3 model
DMSA模型结构如图2所示,首先计算四种不同尺度特征图的空间注意力权重,增加小尺度缺陷特征关注度并抑制复杂背景噪声影响,提高小尺度缺陷目标定位精度;再计算多尺度融合特征图的通道注意力权重,通过密集连接方式将包含微小尺度缺陷轮廓信息的浅层特征图和包含多种缺陷类型语义信息的深层特征图相结合,强化浅层特征图中对小尺度缺陷特征的表征能力与特征权重,提高小尺度缺陷目标的检测准确率。
图2 DMSA模型架构Fig.2 Architecture of DMSA
与主流空间注意力模型CBAM(convolutional block attention module)使用大尺寸卷积来获取位置信息不同,为避免卷积操作导致部分位置信息受损,从而严重影响小尺度目标注意力权重计算精度的问题,DMSA模型通过将空间注意力分解为横向和纵向两个并行的一维特征编码,完成空间坐标信息的高效整合,建立了全局范围内各像素之间的长程依赖关系,进而获取特征图中每个像素点的空间注意力权重。对于输入特征图x i∈RH×W中任一像素点(h,w),DMSA模型分别沿水平和垂直两个方向编码其位置信息,其所分配得到的空间注意力权重为Attspatial=Attrow(h)·Attcol(w),其中At trow(h)和Attcol(w)分别表示该像素点在第h行和第w列分配得到的空间注意力权重,具体计算公式为:
式中,x(i,j)表示特征图中坐标(i,j)处的像素值;s(x,y)为相似性评估函数,DMSA模型中使用交叉熵损失函数。
为有效结合浅层特征图中小尺度缺陷轮廓特征和深层特征图中多种缺陷类型的语义特征,DMSA借鉴了Dense Net设计思想,使用密集连接方式融合多尺度特征图。如图2所示,对于每种尺度的空间注意力特征图,DMSA模型按照其通道数拆为四份,除一份自留,另外三份特征图均通过上采样操作或经一个或多个卷积核大小为3×3、步长为2的卷积操作缩放为其他三种尺度的特征图并进行堆叠,之后,DMSA模型使用式(2)计算每张特征图的通道注意力权重:
通过全局位置信息编码与多通道注意力整合,DMSA模型在强化YOLOv3模型所提取小尺度缺陷注意力权重的同时弱化了所提取复杂背景特征的干扰,从而有效提升模型对小尺度缺陷目标的检测精度。
DMSA模型的引入改善了小尺度缺陷目标的检测效果,但也导致了检测模型计算量增加,检测速度下降。针对该问题,使用深度可分离卷积替代YOLOv3模型DarkNet53特征提干网络中的标准卷积,实现网络的轻量化处理。
标准卷积操作如图3(a)所示。对于3个输入特征通道,其对应的卷积核通道个数也为3个,标准卷积分别将每个输入通道与单个卷积核实行卷积操作,并将各通道卷积结果累加得到输出结果。标准卷积输出特征图通道数与卷积核通道数相等。按照上述计算过程,对于Ci个单个尺寸为H×W的输入通道,分别使用Co个大小为k×k的卷积核对相应通道进行步长为1的卷积运算,最终得到Co×H×W的输出,标准卷积参数量Ws为:
图3 普通卷积与深度可分离卷积Fig.3 Normal convolution and depth separable convolution
与标准卷积相比,深度可分离卷积将其拆分为逐通道卷积和点向卷积两个阶段。如图3(b)所示,在逐通道卷积阶段,输入特征图中的每个通道不再与所有卷积核进行卷积操作,而是仅和与之对应的单通道卷积核进行卷积操作,各输入通道之间相互独立,取消了通道之间特征融合,保持了卷积后输出特征图通道数量。逐通道卷积参数量Wd为:
之后,点向卷积使用标准卷积方式,采用1×1大小卷积核对所有通道的输出特征图进行整合处理,进而改变输出特征图的通道数。点向卷积参数量Wl为:
因此,采用深度可分离卷积可以显著削减标准卷积操作的参数量与计算量,使网络更加轻量化,提高模型检测效率。
DMSA模型需要包含丰富小尺度缺陷形态信息的输入特征图用以特征强化与压缩。由于YOLOv3模型使用全局池化方式对特征图进行降维处理以解决大分辨率图像中多目标检测问题,每次全局池化都会牺牲空间分辨率,多次池化后会造成细节信息丢失,严重影响小尺度目标检测准确率。为了对输入图像中微小尺度缺陷进行全面精准的特征提取,本文在YOLOv3模型的基础上构建了如图4所示的多尺度长距离上下文特征提取层,替代上采样操作之前的卷积过程。
图4 多尺度长距离上下文特征提取层Fig.4 Multi-scale long-distance context feature extraction
以32×32输入尺度特征图为例,改进金字塔模块在特征提取前使用大小为1×1×256的卷积核实现通道降维,帮助网络学习到一组不同特征,降低冗余特征数量。针对普通全局池化过程中因空间分辨率降低导致的小目标不可见问题,改进金字塔模块摒弃了原始模块中的标准卷积和全局池化操作,通过设置的扩张率分别为1、3、5和7的四个并行空洞卷积进行特征提取,在保持空间分辨率的前提下增大特征图的感受野,提高模型对小尺度缺陷精准定位能力。四个分支的输出结果使用特征堆叠方式紧密连接,通过对多尺度局部特征重用以提升网络性能。最后,改进金字塔模块再次使用大小为1×1×1 024的卷积核完成四个分支输出特征图的特征交互。
为了获取原始输入特征图中的浅层信息,本文基于残差网络思想构建了与改进金字塔模块并行的长距离上下文特征提取模块。该模块同样使用1×1×1 024的卷积核提取输入图像特征,然后将长距离特征提取图与改进金字塔模块获取的局部多尺度特征图逐元素融合,得到包含丰富的小尺度缺陷信息的多尺度长距离上下文特征提取图作为DMSA模型输入。
为了优化所提出的DMSA-YOLOv3模型的检测精度,使用三种不同的计算误差构成本文的损失函数以调整网络参数[16]:
实验选用多类别平均精度(mean average precision,mAP)、每秒帧数(frames per second,FPS)和最小可检测缺陷(minimum detected defections,MDD)作为模型评价指标。mAP为模型检测精度评价指标,其计算公式为:
式中,AP(average precision)表示各个类型缺陷的平均检测精度;N表示缺陷种类数。计算AP需要引入召回率(Recall)和查准率(Precision):
式中,TP(true positive)表示预测为正样本且确实为正样本的数量;FP(false positive)表示预测为正样本但实际为负样本的数量;FN(false negative)表示预测为负样本但实际为正样本的数量;AP即为不同召回率下查准率曲线与横纵坐标轴围成的面积;mAP为所有种类缺陷的AP平均值;FPS表示每秒可以完成目标检测的图像帧数,为模型检测速度评价指标;MDD表示模型可检测出最小缺陷大小(像素×像素),并转换为标准面积(mm2),其中每两个像素代表1 mm距离。
本文所用型钢表面缺陷数据集包含结疤、凹坑、划伤、掉肉和击伤五种缺陷类型,每类缺陷400张,共计2 000张缺陷图像,均为1 024×1 024像素的BMP格式单通道灰度图。对五种缺陷尺寸分布的统计结果发现缺陷标记框具有多尺度特性,不同缺陷之间尺寸差距明显,检测模型难以学习多尺度缺陷;同时,深度学习模型的训练需要大量数据支撑,少样本训练易造成模型过拟合,影响缺陷检测效果。为缓解正负样本分布不均衡和多尺度缺陷特征问题,引入四种数据增广方法和CutScale数据增强方法对数据进行预处理。通过修正缺陷图像的灰度值、加入高斯白噪声、进行伽马变换和水平或垂直翻转的方法,对缺陷图像的亮度、对比度与缺陷位置进行调整。四种增广方法将每种缺陷类型图像扩充为1 500张,共计7 500张。CutScale数据增强方法通过人工标定手段,使四种缺陷在原图中的面积占比均得到不同程度的提升,在保持原图背景的基础上扩大了缺陷尺度,有利于检测模型学习到不同尺度的H型钢表面缺陷特征。
本文中所有实验均在Windows10系统上使用Python编程语言完成,硬件环境为Intel Xeon Silver 4110 CPU、NVIDIA 2080Ti GPU和64 GB SAMSUNG RAM,并使用FaceBook公司开发的pytorch1.6深度学习框架搭建实验所需的各个模型。实验数据集包括15 000张图像,其中正样本缺陷图像7 500张,每类缺陷各1 500张;负样本背景图像7 500张。数据集按4∶1随机分为训练集和测试集。实验采用批次迭代法训练网络模型,批训练大小设置为32,迭代次数设置为50次。模型初始学习率设置为0.01,经20次迭代后更新为0.001,权重衰减率为0.000 2。
双重多尺度注意力模型DMSA强化小尺度缺陷特征图的可视化结果如图5所示,红色部分越深说明模型对该部分关注度越高。
图5 注意力模型可视化Fig.5 Visualization of attention model
可视化结果表明,DMSA模块可以有效改善模型对多类别缺陷的定位精度与识别准确率。对于凹坑和掉肉两种小尺度类型缺陷,DMSA模块有效提高了模型对缺陷区域的定位精度:原YOLOv3模型未检测到型钢表面右上方凹坑缺陷,改进后DMSA-YOLOv3模型实现了该缺陷的精准识别;DMSA模块同时压缩了掉肉缺陷的检测区域。击伤缺陷对比图表明,DMSA模块有效弱化并抑制了特征图上方复杂背景信息的干扰,从而加强了模型对于缺陷目标的感知能力,增加特征图中缺陷目标的表征信息,提高模型检测准确率。
为准确衡量所提出DMSA-YOLOv3模型检测性能,使用YOLOv3模型和YOLOv5L模型作为纵向对比模型,并使用另外两种经典目标检测模型SSD和Faster-RCNN作为横向对比模型[19]。所有实验均在相同参数设置下进行。五种模型在部分缺陷图像中的检测效果如图6所示。实验结果表明,所提出DMSA-YOLOv3模型取得了最佳检测效果。针对凹坑和掉肉缺陷,DMSAYOLOv3模型准确检测出小尺度缺陷目标,与其他模型相比精度更高;Faster-RCNN模型虽然可以检出缺陷类型,但存在定位不精确的问题;另外三种模型均存在不同程度漏检现象:YOLOv3模型可以检测出大尺度凹坑和掉肉,却忽略了小尺度凹坑缺陷;YOLOv5L模型和SSD模型漏检更为严重,均无法检测出掉肉和凹坑缺陷。针对划伤、击伤和结疤等三种其他类型缺陷,五种模型均能准确检测出目标,由于SSD和YOLOv5L模型选取了小的卷积核导致感受野变窄,无法完全标注缺陷位置信息,尤以击伤和结疤两种缺陷更为明显;另外三种模型则实现了缺陷的无差别完全标注。表1所示为五种模型对不同缺陷的检测精度,表现为可检出最小缺陷尺度。
图6 本文算法检测效果对比Fig.6 Comparison of detection effect of algorithm in this paper
表1 不同模型检测精度对比Table 1 Comparison of detection precision of various models mm2
YOLO系列三种模型作纵向对比,DMSA-YOLOv3模型mAP值达到97.6%,与YOLOv3模型92.9%和YOLOv5L模型84.2%的准确率相比分别提升了4.7和13.4个百分点,主要是因为多尺度长距离上下文特征提取层和双重多尺度注意力模型的引入使得YOLOv3模型对于小目标检测能力得到显著提升,从而提高了其在整体数据集上的缺陷检测准确率。为评估各项改进方法对DMSA-YOLOv3模型表面缺陷检测结果的影响,设计了消融实验。实验内容与检测结果如表2所示,其中表2(a)表示不同消融模型对多种类型缺陷的检测准确率,表2(b)表示消融模型对不同类型缺陷的检测精度。“√”表示使用了某种改进方法。
表2 DMSA-YOLOv3消融实验Table 2 Ablation experiments of DMSA-YOLOv3
模型1(YOLOv3+DSC)仅使用深度可分离卷积对YOLOv3模型特征提取主干网络进行轻量化处理。由于深度可分离卷积弱化了主干网络的特征提取能力,导致模型1对各类型缺陷的检测精度均落后于YOLOv3模型。检测结果表明,凹坑和掉肉两种缺陷精度损失最为严重,与YOLOv3模型相比分别降低了8.4和6.6个百分点。模型1不适于微小尺度缺陷检测。与模型1相比,模型2(YOLOv3+DSC+MLC)引入了空洞空间金字塔池化模块,通过设置四种不同的空洞卷积核扩张率增大特征图的感受野,动态捕捉多尺度上下文特征信息,增强了小目标缺陷特征提取能力。检测结果表明,模型2有效改善了凹坑和掉肉缺陷的检出率,使得整体检测准确率提高了2.6个百分点。DMSA-YOLOv3模型使用所提出改进方法组合对缺陷进行检测。与模型2相比,DMSA-YOLOv3模型利用双重多尺度注意力模型对多尺度特征进行筛选融合与无效特征剔除,进一步提升了检测效果,获得了最高检测准确率。横向对比结果表明YOLO系列模型检测准确率显著高于SSD模型,其中DMSA-YOLOv3模型比其高出19.5个百分点;Faster-RCNN模型作为当前最先进的两阶段模型之一,其检测准确率仅略低于DMSA-YOLOv3模型1.8个百分点,达到95.8%,高于另外两种YOLO模型。
由于多种类型缺陷对模型检测效果具有不同的作用,为验证各类缺陷检测鲁棒性,需分析不同模型针对单一类型缺陷的检测性能。图7所示为五种检测模型在四种缺陷类型上的PR曲线。可以发现,模型对不同类型缺陷的检测结果具有明显差别,对于划伤、击伤和结疤三种缺陷整体检测效果更好,准确率更高,对于凹坑和掉肉缺陷检测准确率明显下降。从图7可知,对任一类型缺陷,不同模型之间检测准确率差异表现为SSD<YOLOv5L<YOLOv3<Faster-RCNN<DMSA-YOLOv3,DMSA-YOLOv3均取得了最高的检测精度。
图7 不同检测模型对四种类型缺陷的检测结果Fig.7 Detection results of four types of defects by different detection models
多种模型迭代损失曲线如图8所示。在前十次训练过程中,五种模型多类别精度损失均呈现显著下降趋势,其中DMSA-YOLOv3模型收敛速度最快。在50次迭代训练完成后,各模型损失曲线已完全收敛。多种方法单次迭代时间对比如表3所示。由于两阶段Faster-RCNN模型通过使用大量参数提高定位精度,单次迭代需要更长时间完成锚框偏差计算与参数更新,其训练时间显著高于另外三种单阶段目标检测模型。同时,由表3可知,改进后的DMSA-YOLOv3模型与原YOLOv3模型相比训练速度提高了两倍以上,仅略低于YOLOv5L轻量化模型,可以实现缺陷检测模型的快速训练与在线部署。
图8 各模型损失曲线Fig.8 Loss curve of each model
表3 不同模型训练迭代时间对比Table 3 Comparation of consuming time of training iteration of various models
检测速度直接决定模型的效率,是衡量本文所提出DMSA-YOLOv3模型检测性能的又一重要指标。检测速度分析过程包括总检测时间(T)、平均单张图像检测时间(t)和单位时间检测图像张数(FPS)三个参数,并定义FPS为唯一评价指标。总检测时间表示完全处理3 000张测试集数据所需时间,单位为秒;平均单张图像检测时间计算公式为t=T/3 000×1 000=T/3,单位为毫秒;FPS计算公式为FPS=3 000/T,表示检测模型每秒可处理图像帧数。五种检测模型在测试集上的实验结果如表4所示。本文所提出DMSA-YOLOv3模型检测速度达到了55.3 frame/s,与YOLOv3模型相比提高了79.55%。这是因为使用深度可分离卷积对YOLOv3模型特征提取主干网络进行了轻量化处理。由于深度可分离卷积计算量仅为标准卷积计算量的1/9,DMSAYOLOv3模型的检测速度得到了显著提升。然而,其速度略低于轻量化检测模型YOLOv5L的57.2 frame/s,这是因为引入的空洞卷积在提升图像分辨率的同时也增加了模型的计算量,导致单张图像检测时间增加。
表4 不同模型检测速度对比Table 4 Comparison of detection speed of various models
本文针对型钢表面多尺度缺陷的快速精准检测问题,提出了DMSA-YOLOv3目标检测模型,实现了多种类型缺陷的精准分类与定位。所提出目标检测模型以YOLOv3模型作为基础架构,首先,构建了结合通道注意力机制和空间注意力机制的双重多尺度注意力模型DMSA,通过对YOLOv3模型输出进行多尺度特征融合,强化小尺度缺陷特征的注意力权重,提高了模型对于小尺度缺陷目标的检测精度。其次,针对引入DMSA模型导致检测效率下降的问题,使用深度可分离卷积对特征提取主干网络进行轻量化处理,提高目标检测速度;最后,利用构建的多尺度长距离上下文特征提取层强化特征提干网络对小尺度缺陷目标的特征提取能力,增加了DMSA模型输入特征图中小尺度缺陷目标的特征信息,进一步提高了模型对小尺度缺陷的检测准确率。实验结果表明,所提出DMSA-YOLOv3目标检测模型的多类别缺陷平均检测精度为97.6%,检测速度为55.3 frame/s,与YOLOv3模型相比分别提高4.7个百分点和24.5 frame/s,在不影响检测准确率的情况下大幅度提高了检测效率,同时提高了微小尺度缺陷的检出与定位能力。该模型完全满足型钢高速生产现场表面缺陷检测的速度与精度要求,可广泛地推广应用于型钢、钢轨等复杂钢材的缺陷实时检测中。