APP下载

基于深度学习的型钢表面多形态微小缺陷检测算法

2022-08-24刘亚姣于海涛王江于利峰张春晖

计算机应用 2022年8期
关键词:先验型钢尺度

刘亚姣,于海涛*,王江,于利峰,张春晖

(1.天津大学电气自动化与信息工程学院,天津 300072;2.河北津西钢铁集团股份有限公司,河北唐山 064302)

0 引言

型钢是基础设施建设中的重要钢材,广泛应用于工业建筑的钢结构及桥梁、海洋采油平台、输电线路等领域。在型钢生产过程中,由于生产工艺和现场条件的复杂性,型钢表面存在多种类型的缺陷,一般表现为剥落、结疤、划伤和击伤等。这些表面缺陷严重影响了型钢的质量,造成产品使用寿命的降低甚至引发安全事故。因此,型钢表面的缺陷检测是型钢生产过程中的重要环节[1-2]。

传统钢材表面缺陷检测包括人工检测、涡流检测、漏磁检测、红外检测及超声波检测技术[3]。人工检测容易出现缺陷漏检等弊端,耗时耗力。而涡流漏磁等检测技术受型钢表面状态及环境因素的影响较大,且检测速度较慢,难以满足高速、高质量型钢表面缺陷检测的需要。

近几年来,深度学习发展迅速,基于卷积神经网络的目标检测算法因其强大的特征表达优势和建模能力,已成为表面缺陷检测的有效手段[4]。目前,基于卷积神经网络的缺陷检测算法从结构上一般可划分为以Faster R-CNN(Faster Region-based Convolutional Neural Network)[5]为代表的两阶段算法和以YOLO(You Only Look Once)[6]为代表的一阶段算法。YOLO 系列相较于Faster R-CNN 二阶段算法利用了回归的思想,使用一阶段网络直接完成分类与位置定位两个任务,速度较快,因此在实时检测系统中应用广泛:文献[7]将高实时性YOLOv3[8]算法应用于路面破损的检测和分类中,识别率达到73.64%,单张处理时间仅0.034 s;文献[9]利用YOLOv3 算法实现了钢轨表面的缺陷检测,识别率达到97%,识别时间约为0.15 s,具有良好的适用性;文献[10]在YOLOv3 基础上提出一种检测冰箱金属表面缺陷的Metal-YOLOv3 算法,通过优化损失函数和选取合适的先验框提升检测精度;文献[11]采用极限学习机算法作为目标检测的特征提取网络,提出一种Faster-YOLO 目标检测算法,检测速度较YOLOv3 模型提高2 倍。上述研究在YOLO 算法的应用拓展、检测效率提高等方面做了许多工作,验证了该算法在实时缺陷检测领域的有效性,但采用YOLO 算法存在无法同时检测出全部缺陷目标,难以检测相对集中且较小的缺陷目标,难以保存小缺陷目标特征等问题[12-13]。

而型钢表面缺陷具有形态多样、微小缺陷较多的特点。因此,本文选择兼顾检测速度与精度的YOLOv3 算法作为基础框架,针对型钢表面缺陷检测的具体特点进行改进,提出了Steel-YOLOv3 检测算法,在实现型钢表面缺陷的实时在线检测基础上,解决由于型钢缺陷形态各异且微小缺陷众多造成的检测难题。该算法能够实现对型钢表面缺陷的精确检测,可实际应用于型钢生产过程。

本文的主要工作如下:

1)针对型钢表面缺陷设计了Steel-YOLOv3 检测算法,算法检测性能好,实用性强;

2)提出多尺度-密集特征金字塔网络(Multi-scale Dense Feature Pyramid Network,M-DFPN)框架,增强对多尺寸,尤其是密集微小尺寸缺陷的检测能力。

1 YOLOv3型钢缺陷检测

1.1 YOLOv3检测算法

作为当前主流的目标检测算法,YOLOv3 算法采用由5个残差模块组成的Darknet53 网络[14]作为特征提取主干网络,每个残差模块由多个小残差单元顺序连接。每个残差单元包括2 个CBL(Conv+BN+Leaky ReLU)模块和1 条残差边,残差边的引入有效解决了由于网络加深造成的梯度消失问题。每个CBL 模块包括卷积层(Convolution)、批处理归一化(Batch Normalization,BN)层和带泄露线性整流函数(Leaky Rectified Linear Unit,Leaky ReLU)3 个组件,各组件之间组合为残差连接方式。特征提取网络共产生3 种不同尺度的特征图,YOLOv3 算法为每种尺度设定3 个先验框,经聚类算法优化后共得到9 种不同尺度的先验框。其中,在尺寸为13×13 的特征图上采用(116,90),(156,198),(373,326)先验框,感受野最大,适合检测大尺度缺陷;尺寸为26×26 的特征图采用(30,61),(62,45),(59,119)先验框,具有中等尺度的感受野,适合检测中等大小的缺陷;尺寸为52×52 的特征图采用(10,13),(16,30),(33,23)先验框,感受野最小,适合检测图像中小尺寸的缺陷。在整个网络的中间部分,YOLOv3 通过上采样和特征图堆叠,构造类似特征金字塔网络(Feature Pyramid Network,FPN)结构[15]融合大中小3 个尺度的特征图信息,进行多尺度预测,加强缺陷检测能力。

1.2 YOLOv3型钢缺陷检测存在的问题

YOLOv3 将缺陷定位和分类集成在单一阶段的神经网络中,输入图像经过一次推断,便能同时得到图像中所有缺陷的位置和其所属类别,极大提升了检测的速度,也导致了检测精度较低的问题,尤其是在检测形变较大缺陷和微小密集缺陷上。

首先,虽然YOLOv3 使用了特征金字塔网络结构进行多尺度检测,有效提高了对缺陷的检测能力,但同一特征图上的特征点具有相同的感受野,对形变较大的缺陷提取的特征容易受到背景区域的干扰,导致检测边界框的定位不准,同时背景干扰也会导致小缺陷检测精度不高。其次,YOLOv3只有3 个尺度的特征图,且深层特征图和浅层特征图之间仅采用自下而上的单一连接融合不同级别的特征信息,存在对浅层位置特征信息融合不足的问题,造成微小缺陷的漏检。最后,YOLOv3 算法的训练与测试采用COCO(Common Objects in COntext)和VOC(Visual Object Classes)数据集[8],数据集中目标种类多,引入先验框的值具有一定的适用性,并不专门针对型钢表面缺陷设计,易造成缺陷漏检及检测定位不准确的问题。

针对以上问题,本文在高实时性缺陷检测算法YOLOv3的基础上,结合型钢形态多样、微小缺陷较多的特点,分别从调整单层特征图感受野大小,构造小尺度特征层并跨层密集融合多层特征图、选择合适的先验框3 个方面,对YOLOv3 算法进行改进,以提高对型钢表面缺陷的检测精度。

2 Steel-YOLOv3检测算法

2.1 Steel-YOLOv3整体结构

综合考虑型钢表面缺陷检测算法对速度与精度的要求,本文设计了Steel-YOLOv3 检测算法,算法结构如图1 所示。具体地,在原YOLOv3 特征提取主干网络Darknet53 和FPN 基础上,通过增加可变形卷积网络(Deformable Convolutional Network,DCN)(图1(a)),设计多尺度-密集特征金字塔(MDFPN)网格框架(图1(b))和优化先验框构建Steel-YOLOv3检测算法。为清晰地展示算法的具体结构,一些常规操作以模块形式展现。

Steel-YOLOv3 算法仍采用基于残差网络的Darknet53 作为主干网络,该网络默认要求输入图像的尺寸为416×416,整个主干网络共使用5 个残差模块,将后4 个残差模块的输出特征图104×104、52×52、26×26 和13×13 作为检测算法的4个特征尺度,全面获取型钢表面缺陷的不同尺寸信息。同时,每个尺度的输出层前,使用可变形卷积代替原Darknet53网络中残差模块最后一个残差单元的卷积层,提取不同缺陷形状的特征。接着,在FPN 中,构建M-DFPN,实现不同层级特征图之间的密集连接,使浅层特征图汇聚更多特征信息。最后,在算法训练阶段,采用K-means 维度聚类方法对缺陷边界框进行聚类,重新设计先验框尺寸,形成适用于型钢缺陷检测的先验框。

图1 Steel-YOLOv3检测算法的整体框架Fig.1 Overall framework of Steel-YOLOV3 detection algorithm

2.2 可变形卷积

型钢表面缺陷形态各不相同,仅通过大量数据使YOLOv3 算法的常规卷积网络完全提取缺陷的多样变化较为困难:常规卷积网络采用的是方块卷积,规则的采样点限制了其几何变换建模的能力,只能以固定形状和大小的窗口进行扫描。而可变形卷积核[16]的各元素均有一个可学习的参数偏置量,使可变形卷积的采样点可以根据特征图进行自适应调整,感受野可以随物体的形状和尺寸的不同而改变。因此,本文采用基于可变形卷积的特征提取网络自适应地“记忆”缺陷的形状和位置特征,增强对形状变化较大的型钢表面缺陷的检测能力,如图1(a)所示。具体地,基于可变形卷积构建Res-DCN 单元,并使用Res-DCN 单元代替Darknet53每个尺度输出层前的最后1 个残差单元(Res-Unit)。Res-DCN 单元包括2 个DCBL(Deformable Conv+BN+Leaky ReLU)模块和1 条残差边,其中,DCBL 模块是由1 个可变形卷积(Deformable Conv)、1 个BN层和1 个激活函数层(Leaky ReLU)组成。通过构建的Res-DCN 单元,实现了对各个尺度上不同形态特征的自适应提取。

常规卷积分为两步骤:1)在输入特征图上通过固定尺寸的卷积核进行采样;2)根据卷积核权重进行计算采样,并将计算结果相加。将大小为3×3,扩张率为1 的卷积核定义为R:

则对于输出特征图上的一个点p0,常规卷积可表示为:

其中:w为卷积核权重;x为输入特征图。

可变形卷积在常规卷积核的每个采样点位置上都增加一个二维偏置量Δpn,同时对每个采样点预测一个权重Δmn,实现流程如图2 所示。此时,对于输出特征图上的一个点p0,可变形卷积的计算过程如下:

图2 可变形卷积实现流程Fig.2 Deformable convolution implementation process

由于偏移量Δpn通常是小数,因此需要通过双线性插值计算x的值:

其中:p表示偏移后的任意位置,即p=p0+pn+Δpn;x(q)为p周围相邻四个整数坐标处的像素值;G(·,·)为四个整数坐标所对应的权重。G(·,·)可分为两个一维内核:

2.3 多尺度-密集特征金字塔(M-DFPN)

在型钢表面缺陷中,存在大量的微小尺寸缺陷。YOLOv3 借鉴了FPN 的思想,通过Darknet53 网络输出尺寸为13×13、26×26、52×52 的3 个不同尺度的特征图,在网络输出的后两个特征图上进行采样,与网络前期相应尺度的特征图融合成有效信息对目标进行预测。相较于YOLOv1、v2,YOLOv3 采用多尺度与特征融合的方法提高了对图像中不同尺寸目标的检测精度。而表面缺陷检测相较于目标检测,正样本尺寸更小,仅利用3 个尺度的特征对浅层信息的利用并不充分,不利于小尺寸缺陷的检测。为更好地提取微小尺寸缺陷信息,本文提出M-DFPN 框架,该网络框架可分为2 个阶段,如图3 所示。

阶段1:在YOLOv3 特征提取主干网络Darknet53 的第2个残差模块后增加尺寸为104×104 的特征尺度,过程具体可见图3(a),使YOLOv3 原有的3 个尺度扩展为4 个尺度,获取更浅层的小尺寸缺陷特征;阶段2:借鉴Dense Net 思想,将密集连接引入YOLOv3 的FPN 结构中,如图4 所示,即在阶段2对阶段1 输出的4 个尺度特征图进行密集连接金字塔特征融合操作,虚线箭头代表引入的跨层下采样,实现第1 层特征图与第3 层特征图、第2 层特征图与第4 层特征图、第1 层特征图与第4 层特征图的跨层特征融合,具体过程如图3(b)所示,改进后的FPN 可以获得特征融合加强的浅层输出,增强对微小尺寸缺陷的表征能力。

图3 M-DFPN网络框架Fig.3 Framework diagram of M-DFPN

图4 密集特征金字塔Fig.4 Dense feature pyramid

综合考虑Steel-YOLOv3 算法检测效率和检测准确率的平衡,同时使先验框数量均匀分配到4 个预测尺度上,最终选择产生12 个先验框,具体的先验框尺寸为[(8,23),(12,31),(10,52),(32,29),(7,166),(18,68),(61,35),(23,164),(11,39),(77,57),(82,94),(34,388)]。

2.4 先验框优化设计

YOLOv3 算法原设定的先验框尺寸源于COCO 和VOC 数据集,主要面向自然界中通用目标检测,并不满足型钢表面缺陷检测的需求,且不适用于具有4 个特征尺度的情况。因此,本文针对型钢表面缺陷数据集和4 个尺度检测层的特点,采用K-means 维度聚类算法对缺陷边界框重新进行维度聚类,计算不同聚类数下的平均交并比,如图5 所示,使先验框与缺陷边界框更匹配,设计更具针对性的先验框参数。

图5 聚类数与平均交并比的关系Fig.5 Relation between number of clusters and average intersection ratio union

2.5 Steel-YOLOv3损失函数

为实现对型钢表面缺陷的定位与识别,Steel-YOLOv3 检测算法使用了均方和误差作为损失函数,该损失函数由坐标误差、置信度误差和类别误差三部分组成:

其中:Ecoord表示坐标误差;Econ表示置信度误差;Ecls表示类别误差。

Ecoord采用均方误差(Mean Square Error,MSE)损失函数,计算公式为:

3 网络训练

3.1 型钢表面缺陷数据集

本文所采用的型钢表面缺陷样本是在复杂生产环境下通过架设在某型钢生产线上的图像采集装置获取的。该数据集包含结疤、剥落、划伤和击伤4 种缺陷,每类缺陷200 张,共计800 张缺陷图像,如图6 所示:结疤缺陷宽度尺寸较小,多以弧形呈现;剥落缺陷尺寸微小,呈圆形;划伤缺陷尺寸较大,为细长条形;击伤缺陷尺寸大小不一,形变较多。

图6 型钢表面缺陷类型Fig.6 Types of surface defects of section steel

由于现场缺陷图像采集困难,样本数量较少,为缓解训练过程中的过拟合现象,采用图像垂直翻转、图像水平翻转、图像旋转、随机填充与尺度变换等数据扩充方式将样本量提升了10 倍。

3.2 训练参数及评价指标

本实验使用Intel Xeon Silver 4110 CPU,2080Ti GPU 和64 GB 内存。在算法训练过程中,样本集按照8∶1∶1 的比例被划分为训练集、验证集与测试集。实验采用批次迭代训练法,批训练大小设置为8,迭代次数设置为50 次,动量设置为0.9,权重衰减率为0.000 5,学习率设置为0.001,训练时使用SGD(Stochastic Gradient Descent)优化,Steel-YOLOv3 算法的迭代损失曲线如图7 所示。从图7 可以看出:算法训练在前10 次迭代中损失下降迅速;在35 次迭代后损失逐渐平稳;迭代50 次后损失几乎不再变化,损失曲线已完全收敛。

图7 训练损失曲线Fig.7 Training loss curve

为评价网络的检测性能并说明Steel-YOLOv3 检测算法在型钢表面缺陷检测中的有效性,实验选取平均精度(Average Precision,AP)、平均精度均值(mean Average Precision,mAP)和帧率作为算法评价指标。

4 实验与结果分析

4.1 Steel-YOLOv3消融实验

为分析Steel-YOLOv3 检测算法中各改进方法对型钢表面缺陷检测结果的影响,设计了消融实验,评估对应算法的检测效果。具体实验内容及检测结果如表1 所示。

1)算法1(YOLOv3+DCN)。在特征提取阶段对每个尺度的特征图采用可变形卷积,生成适合缺陷形状的可变形形状采样区域,以解决不同缺陷类型形态各异的问题。从表1 中可以看出:算法1 的各类型缺陷检测精度均有提升,平均检测精度提高了4.30 个百分点,说明引入可变形卷积可增强对不规则缺陷的提取能力,有效提高算法的性能。

表1 Steel-YOLOv3检测算法的消融实验结果Tab.1 T Ablation experimental results of Steel-YOLOv3 detection algorithm

2)算法2(YOLOv3+M-DFPN+先验框优化)。采用了多尺度-密集特征金字塔网络,相较YOLOv3 扩展了1 个浅层的特征尺度,并增加了3 个跨层级的密集连接,着重解决微小缺陷的漏检问题。此外,为适应4 个特征尺度的情况,在算法训练时使用了重新设计的先验框,与型钢表面缺陷的尺寸更加匹配,也在一定程度上提升了检测精度。算法2 的改进使整体检测精度提升7.84 个百分点,其中微小剥落缺陷的提升效果尤为明显,达到14.09 个百分点,表明M-DFPN 和先验框优化对提升算法的检测精度,特别是微小缺陷检测精度的提升具有最积极的影响。

3)Steel-YOLOv3 算法。使用所提改进方法的组合对缺陷进行训练,实验结果显示Steel-YOLOv3 完整检测算法综合运用各改进方法以解决YOLOv3 算法在型钢表面缺陷检测任务中存在的问题,对缺陷的检测效果最好。与YOLOv3 相比,Steel-YOLOv3 算法的检测精度提升了12.63%,4 类缺陷均取得了良好的检测效果,提高了对多形态、微小缺陷的检测能力,验证了该算法在型钢表面缺陷检测中的有效性。

4.2 不同检测算法性能对比实验

为说明所提Steel-YOLOv3 检测算法的优越性,本文将该算法与目标检测中常用的几种深度学习算法进行对比,包括两阶段目标检测算法Faster R-CNN600 和单阶段目标检测算法SSD(Single Shot multibox Detector)512[17]、YOLOv5l。实验使用型钢表面缺陷数据集进行算法训练,训练过程的超参数相同,输入图像的尺寸使用算法中建议的尺寸,对输入缺陷图像进行等比缩放。表2 给出了4 种不同算法的检测结果,不同算法的检测效果如图8 所示。

表2 不同检测算法性能比较结果Tab.2 Performance comparison results of different detection algorithms

实验结果表明,本文所提出的Steel-YOLOv3 检测算法表现出了很好的性能:检测精度优于其他检测算法,且每类缺陷的检测效果相对平均,检测速度满足实时性要求。图8 的检测结果显示了本文提出的Steel-YOLOv3 能够准确对各类缺陷进行定位和类型识别,而其他算法存在漏检测,对属于微小缺陷的剥落漏检现象严重,表明Steel-YOLOv3 算法可以更好地实现对微小缺陷的检测。

图8 不同检测算法的缺陷检测效果Fig.8 Defect detection results of different detection algorithms

Faster R-CNN 作为经典的两阶段目标检测算法,具有较好的检测效果,但Faster R-CNN 检测速度较慢,无法满足实时性要求;SSD 算法相较于两阶段Faster R-CNN 算法,检测速度提升了3 倍多,检测速度很快,然而SSD 算法检测精度有了明显的下降,仅为70.57%;相较于SSD 算法,YOLOv5l算法在保持速度优势的前提下,检测精度大幅提升,但对微小剥落缺陷的检测能力依然有限,对长宽比较极端的击伤缺陷的检测效果也较差;Steel-YOLOv3 算法检测相较于对比算法检测精度最高,相较于Faster R-CNN、SSD 和YOLOv5l 算法,检测精度分别提高了3.51%、26.46%和5.71%;在缺陷检测速度上,由于加入了DCN,需要通过误差的反向传播对DCN 的偏置量进行学习,且利用M-DFPN 框架进行多尺度特征密集融合都需要预测更多的信息,所以检测速度相较于YOLOv5l、SSD 算法略有下降,但仍接近Faster R-CNN 算法的3 倍,满足实时检测的需求。因此,Steel-YOLOv3 是兼具检测精度和检测速度的型钢表面缺陷检测算法。

4.3 Steel-YOLOv3现场性能测试

为测试Steel-YOLOv3 算法在复杂生产环境下对型钢表面缺陷的在线检测性能,本文在某钢铁集团热轧型钢生产线进行了为期5 d 的算法性能测试。

测试期间型钢表面缺陷检测速度到达了单张38.27 ms,帧率为26.13 frame/s,检测结果如表3 所示。

表3 基于Steel-YOLOv3的型钢表面缺陷现场检测结果Tab.3 Field detection results of section steel surface defects based on Steel-YOLOv3

结疤、剥落、划伤、击伤4 类表面缺陷的检测准确率分别为92.85%、90.20%、91.67%、93.55%。其中,存在2 个结疤缺陷、4 个剥落缺陷、2 个划伤缺陷和1 个击伤缺陷未被检测出,漏检率为5.63%。经现场查看,所漏检缺陷的面积过小,对型钢表面质量影响甚微,可忽略不计。此外,不同类型缺陷之间存在少量误识别现象。结疤缺陷有1 个被分为击伤缺陷;剥落缺陷有1 个被分为结疤缺陷;划伤缺陷有1 个被分为结疤缺陷;击伤缺陷有1 个被分为划伤缺陷,误检率为2.5%。现场测试结果表明,本文所提出的Steel-YOLOv3 检测算法在实际应用中具有良好的检测效果,单张图像检测时间为38.27 ms,平均识别准确率为92.07%,实现了型钢表面缺陷的在线高精度检测。

5 结语

本文针对型钢表面多形态微小缺陷的实时检测问题,设计了Steel-YOLOv3 检测算法,实现了缺陷的准确定位与分类。首先,本文采用具有高实时性的YOLOv3 作为基础框架,保证了缺陷检测的实用性和快速性;其次,针对型钢表面缺陷形态多样、微小缺陷众多的特点,本文采用了可变形卷积(DCN)增加特征网络卷积层对多形态缺陷特征的提取能力,并通过设计多尺度-密集特征金字塔(M-DFPN)框架和优化先验框以弥补YOLOv3 对微小缺陷难以识别和定位不准的不足。仿真实验结果表明:本文提出的Steel-YOLOv3 算法对缺陷的检测精度为89.24%,帧率为25.62 frame/s。相较于对比算法,本文算法可以在不影响检测效率的情况下提高对多形态、多尺度,尤其是微小缺陷的检测能力。现场性能测试结果表明,本文算法完全能够满足型钢高速生产现场表面缺陷检测的效率与精度要求,可实际应用于型钢的缺陷检测中。后续可对算法进一步优化,使用更轻型网络在保证检测精度的同时提升检测速度,提升算法的泛化能力,广泛地推广应用于型钢、钢轨等复杂钢材的缺陷实时检测中。

猜你喜欢

先验型钢尺度
财产的五大尺度和五重应对
莱钢型钢265m2烧结机高效生产实践
基于无噪图像块先验的MRI低秩分解去噪算法研究
莱钢低成本加铌Q345B热轧型钢的试制开发
莱钢型钢1#~4#转炉铁合金控制系统应用
基于自适应块组割先验的噪声图像超分辨率重建
宇宙的尺度
基于平滑先验法的被动声信号趋势项消除
先验的废话与功能的进路
9