APP下载

基于YOLOv5的钢材表面缺陷检测算法

2024-02-21徐明升祝俊辉干家欣侯津津周贤勇

无线电工程 2024年2期
关键词:钢材卷积表面

徐明升,祝俊辉,干家欣,侯津津,王 圆,周贤勇,陈 琳

(长江大学 计算机科学学院,湖北 荆州 434023)

0 引言

钢材是国家建设必不可少的重要物资,其应用极为广泛,尤其在基础建设当中更是发挥着不可替代的作用。现阶段,大部分钢材是通过原材料进行压力加工制成的,具有一定的形状和性能。在压力加工过程中,受限于成本、设备和技术等因素,钢材会出现不可避免的缺陷,如裂纹、内含物、斑块和点蚀面等,一旦钢材有了这些缺陷,其抗压、抗拉伸和耐腐蚀等能力势必会受到不同程度的影响。因此,缺陷检测在钢材出长前尤为重要。

传统的钢材缺陷检测的主要方法有漏磁检测法、涡流检测法等。漏磁检测法在闭合性裂纹上检测效果不佳;涡流检测法受环境影响较大,具有一定的局限性。此外,以上传统方法都需要人工和精密仪器的参与,检测成本较高。

近年来,随着人工智能的发展,基于深度学习的检测方法已逐渐在缺陷检测行业中使用。目前,主流的深度学习目标检测算法有以下2类:一阶段目标检测算法和二阶段目标检测算法[1]。二阶段目标检测算法以Faster R-CNN[2]、Mask R-CNN[3]为主;一阶段目标检查算法以Single Shot MultiBox Detector(SSD)[4-5]、You Only Look Once(YOLO)系列[6-8]为主。由于二阶段目标检测算法在检测过程中会生成一系列候选框,但是一阶段目标检测算法则将其转换为回归问题处理,所以二阶段目标检测算法检测精度相对较高,但是检测速度相对于一阶段目标检测算法较慢[9]。杨莉等[10]提出了一种特征融合和级联检测网络的Faster R-CNN钢材表面缺陷检测算法,能够较好地完成钢材表面缺陷的检测任务,但是在检测速度上很难满足工业上的要求。一阶段目标检测算法的精度虽然相对略低,但是拥有较高的检测速度,十分贴合工业上钢材表面缺陷检测的任务。邹旺等[11]提出了一种改进YOLOv4-tiny的带钢表面缺陷实时检测方法,该方法是基于卷积神经网络的轻量级目标检测器,虽然模型尺寸小、检测速度快,但在NEU-DET数据集上的平均精度均值(mean Average Precision,mAP)为73.29%,精度相对较低。李鑫等[12]提出改进YOLOv5的钢材表面缺陷检测算法,其体积减小的同时,进一步提升了一定的检测速度,在NEU-DET数据集上的mAP值从73.5%提升到了76.8%。

在钢材表面缺陷检测应用中,检测精度在实际应用中尤为重要,因此本文提出一种基于改进YOLOv5的钢材表面缺陷检测算法,进一步提升识别准确率。实验表明,改进后的YOLOv5s算法在NEU-DET数据集上具有良好的检测性能,并且满足工业对钢材表面缺陷检测实时性的需求。

1 YOLOv5算法简介

在YOLOv4发布不久,YOLOv5便横空出世。YOLOv5是一种新颖的检测算法,该算法在先前版本的基础上添加了数据增强等新的改进,泛化能力较好、检测精度高,很受工业的青睐。

目前YOLOv5已经更新到了6.2版本,共有5个模型,按照模型的大小,可分为YOLOv5n、YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x。本文选择YOLOv5s作为预训练模型,YOLOv5s是这5个模型中量级较小的,同时还能保证较为高速度的网络。将其应用于钢材表面缺陷检测,旨在保证拥有一定检测速度的前提下进一步提升模型的准确度。YOLOv5s网络结构共分为4个部分,分别是Input(输入端)、Backbone(主干网络),Neck(颈部)和Head(头部)。YOLOv5s的网络结构如图1所示。

图1 YOLOv5s网络结构Fig.1 Network structure of YOLOv5s

Input采用了图片尺寸处理、自适应锚框计算和Mosaic数据增强。图片尺寸处理通过添加少量黑边的方式将不同长宽的图片缩放为相应的尺寸;自适应锚框计算是计算预测框与真实框差距后再反向更新,直到获取最合适的锚框值;Mosaic数据增强将4张图片进行随机缩放、排列等操作,组合成1张图片[13]。

Backbone的任务为特征提取,主要包含了Focus和BottleneckCSP模块。其中Focus模块主要对图片进行切片操作,切片操作可以降低FLOPs,且不影响mAP。BottleneckCSP模块在切片卷积之后增强整个卷积神经网络学习性能的同时大幅减少了计算量。

Neck采用了特征金字塔(FPN)[14]与路径聚合网络(PAN)[15]联合的结构,其任务是对来自Backbone提取到的特征进行混合与组合,即结合高层语义信息和底层位置信息,得到更加丰富的特征信息,并把这些特征信息传递给Head部分。

Head主要由3个Detect组成,其对应Neck部分输出的3个特征图,共输出大、中、小3个预测分支,之后根据设定的阈值和NMS选出最为合适的检测结果。

2 改进的YOLOv5算法

改进后的网络结构如图2所示,首先在Backbone层引入多个坐标注意力(Coordinate Attention,CA)机制模块,增强网络对于重要特征的关注度。使用GhostBottleneck结构与主干网络中的部分卷积模块和C3模块进行替换,构建轻量化网络。图中GB-1表示步长为1的GhostBottleneck,用来代替主干网络中的部分卷积结构,GB-2表示步长为2的GhostBottleneck,用来代替主干网络中的C3结构。其次在Neck层采用双向特征金字塔网络(Bidirectional Feature Pyramid Network,BiFPN)结构替换原Concat结构,提升模型的检测效果。最后在Detect部分使用K-means算法增加一个尺度为10×10特征层,并接入到相应的Neck部分,提升对缺陷占比较大目标的检测效果。

图2 YOLOv5s改进后的网络结构Fig.2 Improved network structure of YOLOv5s

2.1 引入GhostBottleneck结构

考虑到对模型进行优化会增加额外的参数,导致模型占用内存增大。为减少参数量,获得更加轻量化的模型,本文将YOLOv5s中Head部分的卷积替换为具有更少参数且对计算精度影响较小的GhostBottleneck[16]。

GhostBottleneck是个可复用模块,以Ghost模块为构建基础,主要由2个Ghost模块堆叠而成。图3为Ghost模块的结构示意,由图3可以看出,Ghost模块一开始将Input的特征图进行卷积,生成的结果与普通卷积中Output的通道数不同,其首先得到特征图的通道数为输入特征图通道数的一半,之后将得到特征图的每个通道数单独进行某种线性变换,最后将每个通道的特征图与线性变换的结果结合起来,得到近似于原始的特征图。图4所示为本文所采用的GhostBottleneck结构示意,当Stride=1时,其构建类似于ResNet的瓶颈网络,由2个堆叠的Ghost模块组成,第一个Ghost模块增加通道数,第二个Ghost模块则将通道数减少为输入的通道数,以此与shortcut支路相匹配。当Stride=2时,其在2个Ghost模块中插入了DWConv,主要是为了减少计算量。

图3 Ghost模块结构示意Fig.3 Structure of Ghost module

图4 GhostBottleneck结构示意Fig.4 Structure of GhostBottleneck

在本文的研究中,将主干网络中的CBS模块用Stride=2的GhostBottleneck代替,C3模块用Stride=1的GhostBottleneck代替,采用这种结构对网络进行优化,提高网络在实际检测中的鲁棒性。

2.2 增加注意力机制模块

在钢材图像中,有些类型的缺陷像素占比较少,且背景相似度高,网络容易流失一些缺陷的关键特征信息。为了提高网络对钢材表面缺陷的关注,实现更精准地检测,本文在YOLOv5s主干特征提取网络中引入CA模块[17]。CA模块结构如图5所示。

图5 CA模块结构Fig.5 CA module structure

CA是一种新的、效率高的且较为轻量级的注意力机制。该机制在通道注意力中嵌入位置信息,使得模型能够关注大范围的位置信息又不会带来过多的计算量。其足够的灵活和轻量,能够简单地插入到移动网络的核心结构中。CA的编码过程有两部分:Coordinate信息嵌入和CA生成。

首先是Coordinate信息嵌入的部分,假设输入为x,接下来用(H,1)和(1,W)的池化核分别沿着水平方向和竖直方向做相应处理[18],计算一维平均池化,可以得到高度为h的第c个通道:

(1)

宽度为w的第c个通道的表达式如下:

(2)

其次是CA生成的部分。首先级联之前模块生成的2个特征图,通过卷积模块后,其维度将会降低为原来的C/r,之后将处理过的特征图F1送入Sigmoid激活函数得到形如1×(W+H)×C/r的特征图f,表达式如下:

f=δ(F1([zh,zw]))。

(3)

之后将f切割为2个单独的张量,分别为fh∈RC/r×H和fw∈RC/r×W,然后fh和fw再分别通过1×1卷积得到和输入A同样的通道数,结果如下:

gh=σ(Fh(fh)),

(4)

gw=σ(Fw(fw))。

(5)

最后把空间信息通过加权的方式进行融合,其最终的输出如下:

(6)

本文对YOLOv5s原始网络中的Backbone层引入卷积注意力机制模块CA,旨在强化YOLOv5s网络对方向和位置等信息的敏感度,增强网络对于重要特征的关注度,进一步提高目标检测的准确率。

2.3 引入BiFPN特征融合网络

在进行特征提取时,伴随网络层数的加深,特征信息会有必不可少的丢失,因此,融合不同尺度的特征被广泛应用于目标检测任务中,以提高网络模型的检测性能。目前已有的特征融合网络有FPN、路径聚合网络(PANet)、BiFPN[19]等。FPN结构是自顶向下传递语义特征,如图6(a)所示。YOLOv5在Neck部分使用了PANet结构,PANet在FPN的基础上增加了一个自底向上的二次融合路径,实现上下层语义传递及融合,如图6(b)所示。PANet双向融合较为简单,为了Neck能对特征进行更好地融合,本文采用如图6(c)所示的BiFPN特征融合网络替换原始结构。

图6 特征融合网络Fig.6 Feature fusion network

BiFPN为加权双向(自顶向下+自底向上)特征金字塔网络,其主要思想包括高效的双向跨尺度连接和加权特征图融合。

① 跨尺度连接。相比较于FPN+PAN,BiFPN在设计上的改变如下:如果1个节点只有1条输入边,那么其对特征网络的贡献就相对较小,故直接删除只有一条输入边的节点,即P3和P7的中间节点,这样一来简化了网络结构;为融合更多的特征,在相同层的输入节点和输出节点之间增加1个跳跃连接;将每个双向的自顶向下的和自底向上的路径视作为一个特征网络层,以获得更高层次的特征融合。

② 加权特征融合。不同的输入特征对于特征融合的贡献是不同的,应当对其进行加权融合,加权共分3种情况:其一是Unbounded Fusion,该方法加入可学习的权重,过程极为简单,但是会引起训练的不稳定;其二是Softmax-based Fusion,该方法可以将范围缩小到[0,1],训练稳定且效果最好,但是大大增加了训练时间,不适合用于本实验的钢材检测;其三是Fast Normalized Fusion,该方法和Softmax-based Fusion相似,也能将范围缩小到[0,1],但是Fast Normalized Fusion中引入了ReLU激活函数保证数值稳定,避免了Softmax操作的资源消耗,效率更高,训练速度比Softmax-based Fusion快30%。

因此本文将原模型中的FPN+PAN结构替换为BiFPN代替原先的特征,快速进行多尺度特征融合。

2.4 增加检测层

原YOLOv5s网络Head层中的主体部分就是3个Detect检测器,即利用基于网格的Anchor在不同尺度的特征图上进行目标检测的过程。当输入图像的尺寸为640 pixel×640 pixel时,检测层3个尺度上的特征图输出尺寸分别为20 pixel×20 pixel、40 pixel×40 pixel、80 pixel×80 pixel,用于检测大、中、小目标。由于数据集中有些类别缺陷占比较大,为加强网络对这些大目标缺陷的检测能力,在原YOLOv5s网络的Detect部分增加一个尺度为10 pixel×10 pixel特征层,并接入到相应的Neck部分。由于增加了检测层,需对检测锚框进行重新配置,本文使用K-means聚类方法获取数据集先验锚框,锚框配置如表1所示。

表1 锚框配置

3 实验及结果分析

3.1 数据集

本文通过钢材表面缺陷数据集(NEU-DET)验证YOLOv5s-GCBD(GhostBottleneck-CA-BiFPN-Anchor)算法的有效性。

实验选用的数据集是公开的NEU-DET(钢材表面缺陷)数据集,包括氧化轧皮(rolled-in_scale)、内含物(inclusion)、裂纹(crazing)、划痕(scratches)、斑块(patches)和点蚀面(pitted_surface)六种典型的钢材表面缺陷。每个类别有300张图片,共1 800张。图片分辨率为200 pixel×200 pixel的灰度图。数据集提供了注释,标注出了缺陷图像的位置和类别信息。数据集共有1 800张图片,随机抽取训练集1 440张,验证集180张,测试集180张,即按照8∶1∶1的比例分配数据集。数据集部分图像如图7所示。

图7 6种类别的缺陷图像示例Fig.7 Example of defect images in six categories

3.2 实验环境与参数设定

本实验在服务器上运行,实验环境配置如表2所示。模型训练时,开启Mosaic数据增强,提高模型的泛化能力;使用余弦退火算法动态调整学习率;采用SGD优化器来进行参数更新,参数设置如表3所示。

表2 实验环境配置

表3 参数设置

3.3 度量指标

本文从mAP、参数量、P-R曲线(Precision-Recall Curve)、平均推理时间(Speed)对模型进行比较。平均精度综合考虑了目标检测的精确率(Precision, P)和召回率(Recall, R),表达式分别如式(7)和式(8)所示。以R为横轴,P为纵轴,构成P-R曲线,AP即P-R曲线下的面积,如式(9)所示。mAP以IoU阈值为0.5来计算平均精度均值,mAP值越高,模型检测性能越好,如式(10)所示。

(7)

(8)

(9)

(10)

式中:TP(True Positives)、FP(False Positives)、FN(False Negatives)分别为指正样本被预测为正例的数量、负样本被预测为正例的数量、正样本被预测为负例的数量;N为预测类别数量,PAi为第i类样本的准确度。

3.4 实验结果分析

为了验证改变后的网络对钢材表面缺陷检测的性能有所提升,在NEU-DET进行了消融实验,结果如表4所示。共设计了5组消融实验,每组实验都有相同的参数和网络环境。

表4 消融实验结果

分析表4结果可知,增加1个检测层、引入CA机制、替换特征融合网络为BiFPN都能提升检测性能,使用GhostBottleneck结构虽然不能提高检测性能,但能够大大减少模型参数数量。第2组实验在原模型的基础上增加1个检测层,可以看出参数量有所增加,平均推理时间增加了1.5 ms,这是由于增加了检测层导致模型复杂度增加、计算量增加,但是mAP值达到了78.6%,提升了1.3%;第3组实验引入CA机制后,平均推理时间增加了1.5 ms,mAP值有了明显提升,为1.5%,证明了引入CA机制虽然会增加模型复杂度、加大计算量,但对钢材表面缺陷特征具有强化作用,使模型拥有更好的检测性能;在第4组实验中替换特征融合网络为BiFPN,模型mAP值又提升了1.1%,说明BiFPN能够快速进行多尺度融合,提高钢材表面缺陷的检测精度;在第5组实验中引入GhostBottleneck结构,mAP值略微降低,这是因为GhostNet卷积模块的引入会造成算法各性能参数的下降,但参数量明显减少,减少了17%,平均推理时间也减少了1 ms,这得益于GhostBottleneck结构能够减少计算量,获得了更轻量化的模型。

YOLOv5s与YOLOv5s-GCBD的各类缺陷mAP值对比如图8所示,其中all classes表示所有类别mAP值的平均值。改进后与改进前的结果相比,整体的mAP值从76.7%提升到80.2%,提升了3.5%,结果表明改进的模型能够在多种缺陷类别上提升检测准确率。6类缺陷中除了pitted_surface类别的AP值略微降低了0.9%外,其他类别均有不同程度的提高,尤其是rolled-in_scale类别的mAP值从63.8%提高到了74.6%,提高了10.8%。scratches类别的mAP值最高,达到92.3%。

图8 改进前后对比Fig.8 Comparison before and after improvement

实验结果表明,改进的YOLOv5s-GCBD模型比原YOLOv5s模型的mAP值提升了3.5%,虽然模型大小和参数数量略微增加,但是其检测速度和检测精度仍然可以胜任工业上的要求。

3.5 检测效果对比

为验证YOLOv5s-GCBD模型的检测性能,使用原YOLOv5s模型和改进后的YOLOv5s-GCBD模型针对缺陷图片在测试集上进行了测试,图9所示为6类缺陷检测效果对比图,第一行为ground truth图,第二行为YOLOv5s算法检测效果图,第三行为本文提出的YOLOv5s-GCBD算法检测效果图。

图9 6类缺陷检测效果对比Fig.9 Comparison of six kinds of defect detection results

从图示的结果来看,原YOLOv5s模型对于一些缺陷目标存在漏检的情况,而改进后的YOLOv5s-GCBD模型能够更好地解决漏检问题。例如图中inclusion类中只检测出了1处目标缺陷,这是由于缺陷目标不明显,难以检测出缺陷;改进后的模型检测出了原模型漏掉的部分缺陷目标,对钢材表面缺陷的定位更加准确。尤其是rolled-in_scale类别缺陷,改进后的模型检测效果尤为突出。从整体的检测效果来看,YOLOv5s-GCBD模型的检测性能更好,检测效果有明显提升。

3.6 对比试验

为了验证YOLOv5s-GCBD模型的优势,将本文算法与SSD、Faster R-CNN、YOLOv4、YOLOv5、文献[12]在NEU-DET数据集上进行训练与测试,并应用mAP和模型权重文件大小进行模型性能的对比,对比结果如表5所示。

表5 对比实验结果

从表5可以看出,本文所提出的YOLOv5s-GCBD模型的mAP值达到了80.2%,比YOLOv5提升了3.5%。相比Faster R-CNN、SSD、YOLOv4、文献[12]算法,本文算法在检测准确率和模型大小上均有所优化。综合上述,本文所提出的模型相比其他主流算法在综合性能上表现更好。

4 结束语

为了解决传统钢材表面缺陷检测问题,提高检测精度,本文提出了一种新的基于YOLOv5算法的钢材表面缺陷检测模型。该模型增加检测层,降低漏检率;引入CA机制,提升特征提取能力;采用BiFPN结构,提高特征融合效率;使用GhostBottleneck结构减少模型的参数量。虽然改进之后的模型比原模型的参数量有略微提升,但在检测准确率上有更大优势。后续将继续优化网络结构、降低网络的推理复杂度,并将改进后的模型应用在不同的数据集上进行训练和检测效果。

猜你喜欢

钢材卷积表面
承压设备用钢材使用焊接性探讨
基于3D-Winograd的快速卷积算法设计及FPGA实现
钢材集中采购管理思考探究
太阳表面平静吗
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
钢材分类标号(一)
3.《黑洞表面》(英/美)等
神回复
一种基于卷积神经网络的性别识别方法