浙江大学学报(工学版), 2025, 59(3): 512-522 doi: 10.3785/j.issn.1008-973X.2025.03.009

计算机技术

基于改进YOLOv8s的钢材表面缺陷检测算法

梁礼明,, 龙鹏威, 金家新, 李仁杰, 曾璐,

江西理工大学 电气工程与自动化学院,江西 赣州 341000

Steel surface defect detection algorithm based on improved YOLOv8s

LIANG Liming,, LONG Pengwei, JIN Jiaxin, LI Renjie, ZENG Lu,

School of Electrical Engineering and Automation, Jiangxi University of Science and Technology, Ganzhou 341000, China

通讯作者: 曾璐,女,副教授,硕导. orcid.org/0009-0001-4213-7887. E-mail:zenglu@jxust.edu.cn

收稿日期: 2024-01-30  

基金资助: 国家自然科学基金资助项目(51365017,61463018);江西省自然科学基金资助项目(20192BAB205084);江西省教育厅科学技术研究资助项目(GJJ2200848).

Received: 2024-01-30  

Fund supported: 国家自然科学基金资助项目(51365017,61463018);江西省自然科学基金资助项目(20192BAB205084);江西省教育厅科学技术研究资助项目(GJJ2200848).

作者简介 About authors

梁礼明(1967—),男,教授,硕导,从事机器学习、模式识别与图像处理研究.orcid.org/0009-0004-5278-5249.E-mail:9119890012@jxust.edu.cn , E-mail:9119890012@jxust.edu.cn

摘要

钢材表面缺陷形态多样、结构复杂、小目标占比高,而通用目标检测算法计算量过大且不适合终端设备部署. 针对上述问题,提出基于YOLOv8s的轻量级的钢材缺陷检测算法(SDB-YOLOv8s). 重新设计特征交互模块(S-C2f),抑制空间和通道冗余信息,提高检测精度;引入空洞Transformer模块,增强网络对全局上下文信息的捕获能力和稀疏采样特性,以减少细粒度信息损失,并提升对小目标的特征提取能力;设计BS-ShuffleNetV2轻量化网络作为骨干网络,在降低模型复杂度的同时保证检测精度. 在NEU-DET和Severstal钢材缺陷数据集进行实验验证,结果表明,与基线模型相比,SDB-YOLOv8算法的mAP分别提升6.4和7.0个百分点、参数量和计算复杂度仅为基线模型的64.8%和56.2%. 每秒检测帧数分别达到146帧和121帧、精确度分别提升4.6和6.5个百分点. 实验结果表明,该算法在检测精度、速度和轻量化方面取得了较好的平衡,同时为边缘终端设备提供了较高精度和实时性的参考.

关键词: 缺陷检测 ; 轻量化YOLOv8s ; 深度学习 ; 特征提取 ; 特征交互

Abstract

The surface defects of steel are diverse in form, complex in structure, and exhibit a high proportion of small targets, while general object detection algorithms have excessive computational complexity and are not suitable for the deployment on edge devices. To address these issues, a lightweight steel defect detection algorithm based on YOLOv8s, called SDB-YOLOv8s, was proposed. Firstly, a redesigned feature interaction module (S-C2f) was introduced to suppress spatial and channel redundant information, enhancing detection accuracy. Secondly, a dilated Transformer module was incorporated to enhance the network’s ability to capture global contextual information and sparse sampling characteristics, reducing fine-grained information loss and improving feature extraction capabilities for small targets. Finally, a lightweight network, BS-ShuffleNetV2, was designed as the backbone network to reduce model complexity while maintaining detection accuracy. Experimental validation on the NEU-DET and Severstal steel defect datasets showed that compared to baseline models, the SDB-YOLOv8 algorithm achieved an improvement in mAP of 6.4 and 7.0 percentage points, and detection frames per second of 146 and 121, with accuracy improvements of 4.6 and 6.5 percentage points respectively. The number of parameters and computational complexity were only 64.8% and 56.2% of the baseline model. The experimental results demonstrated that this algorithm achieved a better balance in terms of detection accuracy, speed, and lightweight characteristics, while providing a reference for high accuracy and real-time capabilities for edge terminal devices.

Keywords: defect detection ; lightweight YOLOv8s ; deep learning ; feature extraction ; feature interaction

PDF (1725KB) 元数据 多维度评价 相关文章 导出 EndNote| Ris| Bibtex  收藏本文

本文引用格式

梁礼明, 龙鹏威, 金家新, 李仁杰, 曾璐. 基于改进YOLOv8s的钢材表面缺陷检测算法. 浙江大学学报(工学版)[J], 2025, 59(3): 512-522 doi:10.3785/j.issn.1008-973X.2025.03.009

LIANG Liming, LONG Pengwei, JIN Jiaxin, LI Renjie, ZENG Lu. Steel surface defect detection algorithm based on improved YOLOv8s. Journal of Zhejiang University(Engineering Science)[J], 2025, 59(3): 512-522 doi:10.3785/j.issn.1008-973X.2025.03.009

传统的钢材缺陷检测主要依赖人工检查,该方法耗时、费力且受人员主观因素影响,误检率和漏检率较高. 随着计算机视觉和深度学习[1]技术的快速发展,基于图像的物体检测[2]方法在工业领域得到了广泛应用,研究人员发现机器视觉检测方法可以同时兼顾准确性和效率. 然而深度学习模型的训练和测试须占用大量的计算资源,而终端设备的计算能力有限,这为钢材表面缺陷检测的实际应用带来一定困难和挑战. 因此,研究和应用轻量化、高效和准确的钢材表面缺陷检测技术具有重要的现实需求.

当前目标检测领域的主流算法包括两阶段的R-CNN[3]和Fast R-CNN[4]算法,和一阶段的SSD[5]、YOLO[6]算法以及基于Transformer的目标检测算法DETR[7]. 其中两阶段目标检测算法首先产生候选框,然后对其内容进行特征提取,最后对区域内容进行目标回归,具有较高的检测精度,但对候选框的筛选过程导致检测速度较慢. 一阶段目标检测算法采用基于回归的算法,将分类和定位任务进行合并,以获得较快的检测速度,但检测精度较低. Transformer的目标检测算法DETR是基于对象查询的方法,可一次性对整张图像中的目标进行检测,避免了传统滑动窗口方法的低速问题. 然而在钢材表面缺陷领域,因终端设备计算能力有限,深度学习算法在实际部署上仍然面临巨大挑战.

为了解决上述挑战,一些研究者提出了轻量级钢材表面缺陷检测模型. 例如,Zhou等[8]提出YOLOv5s-GCE轻量级钢材表面缺陷检测模型,通过引入鬼影模块和坐标注意力机制来优化模型的计算量和参数量,然而该模型对于小目标的检测精度较低. Qin等[9]将EfficientNet网络作为骨干特征提取网络,设计EDDNet模型,有效减少了计算开销. Yang等[10]构建CBAM-MobilenetV2-YOLOv5模型,利用MobilenetV2模块和卷积块注意力模块使模型更加轻量化. 张政超等[11]改进YOLOv5模型,使用轻量化ShuffleNetv2作为骨干网络,大大降低模型的复杂度,并在检测速度方面具有优势. 蔡剑锋等[12]将MobileNet引入Mask RCNN目标检测框架,作为骨干特征提取网络,成功降低了模型的参数量和计算量. 此外,卷积操作的局部性限制了CNN获取全局上下文信息的能力,而Transformer可以全局关注不同区域图像特征之间的关系,并通过自注意力机制来提取充分的特征信息. 因此,研究者尝试将Transformer应用于钢材表面缺陷图像目标检测. 例如,阎馨等[13]引入Involution算子和Transformer多头注意力模块,提升模型的检测精度并降低计算资源的使用. 上述研究优化了计算量较大的目标检测算法,但在钢材表面缺陷检测领域,仍须在满足终端设备部署的同时平衡检测精度和速度.

鉴于上述研究的局限性,以YOLOv8s为基线模型,提出轻量化的钢材缺陷检测算法SDB-YOLOv8s(S-C2f+DilateFormer+BS-ShuffleNetV2, SDB). 本研究主要创新点如下:1)对数据集进行增强处理;2)结合S-C2f模块、DilateFormer (Dilated Transformer)模块和BS-ShuffleNetV2骨干网络构建SDB-YOLOv8s算法;3)在NEU-DET和Severstal数据集对上对SDB-YOLOv8s算法进行实验验证.

1. YOLOv8s模型

YOLOv8是YOLO系列目标检测模型的最新版本,由Ultralyticsgongs团队于2023年发布. 该算法是YOLO系列算法的集大成者,在以前YOLO系列的成功基础上进行创新和改进,改进主要包括:1)创建新的主干网络,将YOLOv5中的C3结构换成梯度流更丰富的C2f模块;2)使用新的Ancher-Free作为检测头,采用主流的解耦头结构将分类与检测头分离;3)采用新的Distribution Focal Loss作为损失函数,并使用TaskAlignedAssigner的动态正态样本分配策略. YOLOv8提供了5种不同尺寸的模型:纳米、小型、中型、大型和超大型,为了平衡检测精度和速度,选用YOLOv8s作为钢材缺陷检测的基线模型. 该网络由输入端、骨干网络、特征融合网络和预测网络4部分组成,分别用于特征输入、特征提取、特征融合和预测输出.

2. 本研究模型

2.1. SDB-YOLOv8s模型

提出轻量级的SDB-YOLOv8s检测模型,用于快速准确地检测钢材表面形态多样、结构复杂的缺陷. SDB-YOLOv8s模型首先设计S-C2f模块代替原Neck网络的C2f模块,抑制空间和通道维度上的冗余信息,提升网络检测精度;此外,特征图经过主干网络多次下采样操作后,分辨率降低,为了避免细节信息丢失,在骨干网络的最底端添加空洞TransFormer,使网络具备滑动稀疏采样特性,减少细粒度信息损失,保持较高的特征分辨率,并更好地利用前面层次提取到的多尺度特征信息,从而提高网络的特征提取能力;最后设计轻量级BS-ShuffleNetV2网络替代原始YOLOv8s的主干网络,在维持较高精度的同时极大优化模型的参数量和计算复杂度. 改进部分在图中用红框部分表示,SDB-YOLOv8s的网络结构如图1所示.

图 1

图 1   SDB-YOLOv8s网络结构

Fig.1   SDB-YOLOv8s network structure


2.2. S-C2f模块

C2f是一种特征图转换模块,旨在将低层次的特征图转换成高层次的特征图. 然而,该模块使用较大的卷积核进行下采样,导致部分细节语义信息丢失,从而降低检测性能. 此外,C2f模块采用深层网络结构,导致计算复杂度较高,使模型的训练和推理速度变慢. 为了解决这个问题,Li等[14]提出空间和通道重建卷积(spatial and channel reconstruction convolution, ScConv),通过重建特征图的空间和通道信息,更好地捕获不同位置和不同通道之间的相关性,从而抑制冗余信息,提高检测能力. 受文献[14]启发,在C2f模块中融入ScConv,重新设计特征交互模块(S-C2f). 该模块可以更好地捕获特征之间的相关性,抑制冗余信息,并提高检测能力. 此外,S-C2f模块采用轻量级的操作和特征重建方式,降低计算复杂度,使模型的训练和推理速度更快,S-C2f和ScConv结构如图2所示.

图 2

图 2   S-C2f和ScConv网络结构

Fig.2   S-C2f and ScConv network structure


ScConv主要包含空间重组单元(spatial reconstruction unit, SRU)和通道重组单元(channel reconstruction unit, CRU) 2个结构. SRU网络结构如图3所示,该单元采用分离-重构操作.

图 3

图 3   SRU网络结构

Fig.3   SRU network structure


分离过程首先通过组归一化(group normalization,GN)中的缩放因子对不同特征图中的信息含量进行评估,将信息量大的特征从信息量的小的特征中进行分离;然后经$ {{\boldsymbol{W}}_\gamma } $重新将特征映射的权值通过Sigmoid函数映射到(0, 1.0),并通过阈值进行门控. 假设给定输入特征图为$ {\boldsymbol{X}} $,则上述过程在数学上可以分别表示为

$ {{\boldsymbol{X}}_{{\mathrm{out}}}} = {\mathrm{GN}}({\boldsymbol{X}}) = {\boldsymbol{\gamma}} \frac{{{\boldsymbol{X}} - {\boldsymbol{\mu}} }}{{\sqrt {{{\boldsymbol{\sigma}} ^2}+\varepsilon } }}+{\boldsymbol{\beta}} . $
(1)

$ {{w_i}} = {{{\gamma _i}}}/{{\displaystyle\sum\nolimits_{j = 1}^C {{\gamma _i}} }};\quad i,j = 1,2, \cdot \cdot \cdot ,C. $
(2)

$ {\boldsymbol{W}} ={\mathrm{ Gate}}({\mathrm{Sigmoid}}({{\boldsymbol{W}}_\gamma }({\mathrm{GN}}({\boldsymbol{X}})))). $
(3)

式中:${\boldsymbol{ \mu}} $${\boldsymbol{ \sigma}} $为均值和标准差,$ {\boldsymbol{\gamma}} $${\boldsymbol{ \beta}} $为可训练变量,$ \varepsilon $为保证稳定性的极小常数,${{w_i}} $${{\boldsymbol{W}}_\gamma } $中的元素,C为通道数.

在经分离操作后,得到2个加权特征$ {{\boldsymbol{X}}}_1^{\rm{w}} $$ {{\boldsymbol{X}}}_2^{\rm{w}} $. 其中$ {{\boldsymbol{X}}}_1^{\rm{w}} $的信息量较大,具有更多信息性和表现力的空间内容,而$ {{\boldsymbol{X}}}_2^{\rm{w}} $的信息量较小,可视为冗余信息. 为了减少空间冗余信息,采用交叉重构方式将信息丰富的特征与信息较少的特征相加,以获得与空间内容相对应的信息,并节省空间. 再将特征信息$ {\boldsymbol{X}}_1^{\rm{w}} $$ {{\boldsymbol{X}}}_2^{\rm{w}} $进行拼接,得到空间细化特征$ {{{\boldsymbol{X}}}^{\rm{w}}} $. 其重构过程在数学上可以表示为

$ \left. \begin{array}{l} {\boldsymbol{X}}_1^{\rm{w}} = {{\boldsymbol{W}}_1} \otimes {{\boldsymbol{X}}}, \quad {\boldsymbol{X}}_2^{\rm{w}} = {{\boldsymbol{W}}_2} \otimes {{\boldsymbol{X}}}, \\ {\boldsymbol{X}}_{11}^{\rm{w}} \oplus {\boldsymbol{X}}_{22}^{\rm{w}} = {{\boldsymbol{X}}^{\rm{w1}}}, \; {\boldsymbol{X}}_{21}^{\rm{w}} \oplus {\boldsymbol{X}}_{12}^{\rm{w}} = {{\boldsymbol{X}}^{\rm{w2}}}, \; {{\boldsymbol{X}}^{\rm{w1}}} \cup {{\boldsymbol{X}}^{\rm{w2}}} = {{\boldsymbol{X}}^{\rm{w}}}. \end{array} \right\} $
(4)

式中:$ \otimes $$ \oplus $为元素乘法和加法,$ \cup $为矩阵的拼接操作. 经SRU处理后,输入信息不仅从信息量小的特征中分离信息量大的特征,且对其进行重构,增强代表性特征,并有效抑制空间维度上的冗余特征.

CRU单元主要用于优化通道维度上$ {{\boldsymbol{X}}^{\rm{w}}} $的冗余特征,通过轻量级卷积运算提取丰富的代表性特征,同时采用低成本的运算和特征重建方式处理冗余特征. 该单元采用分割-转换-融合操作,其结构如图4所示.

图 4

图 4   CRU网络结构

Fig.4   CRU network structure


分割操作:首先将SRU生成的空间细化特征$ {{\boldsymbol{X}}^{\rm{w}}} $分割成通道数分别为$ \alpha C $$ (1 - \alpha )C $的两部分,其中$ \alpha $为分割比,且$ 0 \leqslant \alpha \leqslant 1 $.0. 然后使用1×1卷积核对2个通道数进行压缩,得到压缩后的特征$ {{\boldsymbol{X}}_{{\mathrm{up}}}} $$ {{\boldsymbol{X}}_{\rm{low}}} $.

转换操作:首先将压缩后的特征$ {{\boldsymbol{X}}_{\rm{up}}} $$ {{\boldsymbol{X}}_{\rm{low}}} $作为“丰富特征提取”的输入和补充,对$ {{\boldsymbol{X}}_{\rm{up}}} $分别进行分组卷积(GWC)和逐点卷积(PWC)操作,然后将两部分信息相加得到输出特征$ {{\boldsymbol{Y}}_1} $.$ {{\boldsymbol{X}}_{\rm{low}}} $进行PWC操作,将得到的结果与原输入取并集得到特征$ {{\boldsymbol{Y}}_2} $,在数学上可表示为

$ {{\boldsymbol{Y}}_1} = {{\boldsymbol{M}}^{\rm{G}}}{{\boldsymbol{X}}_{\rm{up}}}+{{\boldsymbol{M}}^{{{\mathrm{P}}_1}}}{{\boldsymbol{X}}_{\rm{up}}}, $
(5)

$ {{\boldsymbol{Y}}_2} = {{\boldsymbol{M}}^{{{\mathrm{P}}_2}}}{{\boldsymbol{X}}_{\rm{low}}} \cup {{\boldsymbol{X}}_{\rm{low}}}. $
(6)

式中:$ {{\boldsymbol{M}}^{\rm{G}}} $$ {{\boldsymbol{M}}^{\mathrm{P}}} $分别表示GWC和PWC的可学习矩阵,P1和P2则分别对应上层和下层转换阶段中用于PWC操作的权重矩阵.

融合操作:采用简化的SKNet方法对$ {{\boldsymbol{Y}}_1} $$ {{\boldsymbol{Y}}_2} $进行自适应合并. 首先采用全局平均池化(Pooling)操作将全局空间信息和通道统计信息进行结合,得到池化特征$ {{{\boldsymbol{S}}}_1} $$ {{{\boldsymbol{S}}}_2} $;然后对$ {{{\boldsymbol{S}}}_1} $$ {{{\boldsymbol{S}}}_2} $进行Softmax操作,得到特征权重向量$ {{\boldsymbol{\beta }}_1} $$ {{\boldsymbol{\beta }}_2} $;最后在$ {{\boldsymbol{\beta }}_1} $$ {{\boldsymbol{\beta }}_2} $的指导下,将$ {{\boldsymbol{Y}}_1} $$ {{\boldsymbol{Y}}_2} $按通道方向合并,最终得到通道提炼特征$ {{\boldsymbol{Y}}} $,在数学上可表示为

$ {{{\boldsymbol{S}}}_m} = {\text{Pooling}}({{\boldsymbol{Y}}_m}) = \frac{1}{{H W}}\displaystyle\sum\limits_{i = 1}^H {\displaystyle\sum\limits_{j = 1}^W {{{\boldsymbol{Y}}_{{C}}}(i,j)} } , $
(7)

$ {{{{\boldsymbol{\beta}}}}_1} = \frac{{{{\mathrm{e}}^{{{\boldsymbol{S}}_1}}}}}{{{{\mathrm{e}}^{{{\boldsymbol{S}}_1}}}+{{\mathrm{e}}^{{{\boldsymbol{S}}_2}}}}},\quad {{{{\boldsymbol{\beta}} }}_2} = \frac{{{{\mathrm{e}}^{{{\boldsymbol{S}}_2}}}}}{{{{\mathrm{e}}^{{{\boldsymbol{S}}_1}}}+{{\mathrm{e}}^{{{\boldsymbol{S}}_2}}}}},\quad {{{{\boldsymbol{\beta}} }}_1}+{{{{\boldsymbol{\beta}} }}_2} = 1, $
(8)

$ {\boldsymbol{Y}} = {{{{\boldsymbol{\beta}} }}_1}{{\boldsymbol{Y}}_1}+{{{{\boldsymbol{\beta}} }}_2}{{\boldsymbol{Y}}_2}. $
(9)

式中:$ H $$ W $分别表示卷积核的高度和宽度,$ C $表示通道数,$ m = 1,2 $.

2.3. Dilated Transformer

自Transformer提出以来,因其能更好地捕获全局上下文信息、处理不固定尺寸输入、学习全局和局部特征,并且具备迁移和多任务学习的优势,被广泛应用于计算机视觉和图像领域. 然而,Transformer也伴随着高计算开销和冗余信息问题,为了减少计算量和冗余性,引入高效的空洞Transfomer(DilateFormer)[15]结构. 该结构主要由多尺度空洞注意力(multi-scale dilated attention, MSDA)模块组成,如图5所示展示了DilateFormer的结构.

图 5

图 5   DilateFormer网络结构

Fig.5   DilateFormer network structure


MSDA采用滑动窗口注意力(sliding window dilated attention, SWDA)进行设计,SWDA中的键(key)和值(value)通过以查询补丁为中心的滑动窗口稀疏选择,然后对代表性补丁进行自注意力计算,在数学上可表示为

$ {\boldsymbol{X}} = {\text{SWDA}}({\boldsymbol{Q}},{\boldsymbol{K}},{\boldsymbol{V}},r). $
(10)

式中:$ {\boldsymbol{Q}} $$ {\boldsymbol{K}} $$ {\boldsymbol{V}} $分别表示query、key和value矩阵,$ r $为控制稀疏程度的系数. 对于位置$ (i,j) $处的query,SWDA采用以$ (i,j) $为中心,尺寸为$ w \times w $的滑窗稀疏选取key和value进行自注意力计算,则SWDA的输出$ {\boldsymbol{X}} $$ (i,j) $位置处的值$ {x_{ij}} $在数学上可以表示为

$ \begin{split}{x}_{i j} =&\operatorname{Attention}\left(\boldsymbol{q}_{i j}, \boldsymbol{K}_r, \boldsymbol{V}_r\right)= \\&\operatorname{Softmax}\left(\frac{\boldsymbol{q}_{i j} \boldsymbol{K}_r^{\mathrm{T}}}{\sqrt{d_k}}\right) \boldsymbol{V}_r .\end{split} $
(11)

式中:$ 1 \leqslant i \leqslant W,\;1 \leqslant j \leqslant H $${q}_{i j} $表示特征图位置$(i,j) $的查询向量,$ {{\boldsymbol{K}}_r} $$ {{\boldsymbol{V}}_r} $表示从$ {\boldsymbol{K}} $$ {\boldsymbol{V}} $中采样得到的值. 进一步可推算出$ (i',j') $位置处的key和value用于自注意力的计算表达式:

$ \left\{ {\left. {(i',\;j')} \right|i' = i+p r,\;j' = j+q r} \right\}. $
(12)

式中:$ - \dfrac{w}{2} \leqslant p,\;q \leqslant \dfrac{w}{2} $,SWDA通过在query周围稀疏地选择key和value,满足局部性和稀疏性,并减少计算量.

MSDA首先将特征图在通道维度上分成多个头,在不同头中使用不同的空洞系数对query周围的patch进行采样;然后将不同头的计算结果进行拼接;最后采用线性层对其进行计算,在数学可表示为

$ {{\boldsymbol{h}}_i} = {\text{SWDA}}({{\boldsymbol{Q}}_i},\;{{\boldsymbol{K}}_i},\;{{\boldsymbol{V}}_i},\;{r_i});\quad 1 \leqslant i \leqslant n. $
(13)

$ {\boldsymbol{X}} = {\text{Linear}}({\text{Concat}}[{{\boldsymbol{h}}_1}, \cdot \cdot \cdot ,{{\boldsymbol{h}}_n}]). $
(14)

式中:$ {r_i} $表示第$ i $个空洞系数;$ {{\boldsymbol{Q}}_i} $$ {{\boldsymbol{K}}_i} $$ {{\boldsymbol{V}}_i} $表示第$ i $个头的特征图;n为整数,表示在多头自注意力机制中,特征图的通道被划分为多少个头. MSDA能有效地提取不同尺度上的语义信息,且能减少细粒度信息损失和全局注意力计算中的冗余性.

2.4. BS-ShuffleNetV2网络

YOLOv8采用DarkNet-53作为主干网络,该网络由一系列卷积层和残差模块堆叠而成. 然而,DarkNet-53参数量和计算复杂度过高,限制了训练和推理速度,不适合边缘设备部署.

为了解决上述问题,Ma等[16]提出ShuffleNetV2网络,该网络基于ShuffleNetV1网络,并采用深度可分离卷积层、通道重排层和残差连接进行搭建,大大降低模型的参数量,从而提高训练和推理速度. 但该网络无法在检测精度、轻量化和推理速度之间取得平衡. 为了进一步提升ShuffleNetV2网络的检测性能,引入SiLU激活函数,以改善具有不平滑特性类的激活函数(如原激活函数ReLU),并将ShuffleNetV2模块右分支第2个卷积替换为Bottleneck[17]瓶颈结构,以提高模型的检测性能. 基于这些改进,设计了BS-Shuffle NetV2网络,其结构如图6所示.

图 6

图 6   BS-ShuffleNetV2网络结构

Fig.6   BS-ShuffleNetV2 network structure


3. 实验结果及分析

3.1. 数据集

本实验采用东北大学NEU-DET[11]钢材缺陷数据集和来自Kaggle钢铁缺陷比赛数据集,后者由Severstal公司提供. NEU-DET和Severstal数据集分别包含18001120张图像,涵盖裂缝、夹杂物、斑块、点蚀表面、氧化皮和划痕这6种市面上常见的缺陷类型,示例图像如图7所示.

图 7

图 7   钢材表面各类缺陷图像

Fig.7   Images of various defects on steel surface


3.2. 数据增强

为了增强模型的泛化性能和鲁棒性,减少过拟合的影响,对Severstal数据集进行数据增强,包括水平翻转、垂直翻转和水平垂直翻转. 原数据集和扩充后数据集比例为1∶3. 如图8所示展示了部分原图和增强后的图像示例. 对于训练集和验证集,2个数据集均采用6∶2∶2的比例进行随机划分.

图 8

图 8   数据增强前后图像示例

Fig.8   Examples of image before and after data enhancement


3.3. 实验环境与参数设置

在Windows11操作系统下进行实验,采用Pytorch1.11.0作为深度学习框架,CPU为Intel Core i7-12700H,GPU为RTX4060,显卡为8 GB. 在训练阶段,采用Adam作为优化器,初始学习率为0.01,动量为0.973,权重衰减因子为0.0005. 输入图像尺寸为640×640、批量大小为16、训练总轮数为300.

3.4. 评价指标

采用6个指标对网络性能进行评估,包括平均精度(average precision, AP)、平均精度均值(mean AP, mAP)、每秒检测帧数(frames per second, FPS)、参数量(params)和浮点操作次数(floating-point operations, FLOPs),上述指标的定义式如下:

$ {\mathrm{AP}} = \displaystyle\int_0^1 {{{P{\mathrm{d}}R}}} , $
(15)

$ {\text{mAP}} = \frac{1}{N}{{\displaystyle\sum\limits_{i = 1}^N {{\text{AP}_i}} }}, $
(16)

$ {{P}} = \frac{\mathrm{TP}}{\mathrm{TP+FP}}, $
(17)

$ {{R}} = \frac{{\mathrm{TP}}}{\mathrm{TP+FN}}, $
(18)

$ {\mathrm{FPS}} = {{{F}}}/{t_{\mathrm{e}}}. $
(19)

式中:AP表示P-R曲线与坐标轴围成的面积;mAP为对所有类别的AP求平均值所得;$ N $表示待检测目标的类别数,本实验$ N = 6 $;TP、FP和FN分别表示正确检测到的真阳性、误报阳性和漏报阳性的数量;F表示总的待检图片数目,te表示检测所需的总时间.

3.5. 改进模块实验

3.5.1. S-C2f模块实验

针对SsConv模块中SRU单元的阈值权重进行门控调节,在NEU-DET数据集上,通过调节9个阈值(0.1~0.9),验证对指标提升效果最佳的权重,实验结果如表1所示,其中加粗表示最优值. 表中,Params为参数量,FLOPs为计算开销. 可以看出,当SUR单元的权重阈值在(0,1.0)进行门控时,9种情况所带来的参数量和计算开销一致,相比于基线模型均降低了0.8×106和1.9×109,表明SUR单元能有效抑制空间维度冗余信息并提高检测精度. 其中阈值为0.3时取得77.2%的最优值. 相较于原模型提升4.4个百分点,且优于其他阈值选取的情况,FPS也在原模型基础上提升10帧. 综上所述,当阈值设为0.3时,SRU单元对网络的贡献能力最佳.

表 1   SRU不同权重阈值对比实验

Tab.1  Comparison experiments of different weight thresholds for SRU

TmAP/%Params/106FLOPs/109FPS/帧
基线模型72.811.128.8109
0.174.410.326.9112
0.274.910.326.9117
0.377.210.326.9119
0.474.410.326.9119
0.575.210.326.9129
0.674.210.326.9119
0.773.310.326.9121
0.875.010.326.9123
0.975.210.326.9120

新窗口打开| 下载CSV


此外,为了验证S-C2f模块替换YOLOv8s中C2f模块在不同位置对网络性能的贡献能力,在NEU-DET数据集上进行3种情况的实验验证,实验结果如表2所示. 其中,B、C和D分别表示替换主干、颈部和整个模型,加粗表示最优值.可以看出,综合考虑4个指标,情况D虽然具备更明显的轻量化优势,参数量和计算量仅为原模型的83.7%和85.4%. 但与情况C相比,在检测精度和速度方面均不具备优势. 情况C的FPS相较于原模型提升20帧,mAP达到77.2%,均为最优. 此外,参数量和计算量相对于原模型分别降低0.8×106和1.9×109,在具备检测精度和速度优势的同时兼顾了参数量和计算量. 之所以只替换颈部的效果最好,可能是因为颈部是特征融合的关键节点,融入SsConv模块后可以最大程度增强特征表达能力,使不同尺度的特征更好地融合,有效捕捉关键细节和上下文信息,从而提升检测效果.

表 2   S-C2f模块不同位置实验

Tab.2  Experiments with different positions of S-C2f module

位置mAP/%Params/106FLOPs/109FPS/帧
基线模型72.811.128.8109
B74.810.326.5108
C77.210.326.9129
D73.69.324.5101

新窗口打开| 下载CSV


3.5.2. DilateFormer模块实验

针对DilateFormer模块中的空洞系数进行调节,在NEU-DET数据集上,通过调节3个空洞系数(r=1, 2, 3),验证对指标提升效果最佳的取值,实验结果如表3所示,其中加粗表示最优值.可以看出,3个空洞系数所带来的参数量和计算开销一致,且都带来检测精度的提升. 但当选择空洞系数为1时,以损失最少检测速度的代价换来检测精度最佳的提升,可能是因为当空洞系数为1时,DilateFormer不进行卷积操作,能较好地保持网络上下文信息的丰富性,同时避免过度扩张导致的信息冗余和过多的计算消耗,从而最大程度提高了检测精度和速度. 综上所述,当空洞系数设为1时,DilateForme对网络的贡献能力最佳.

表 3   DilateFormer系数调节实验

Tab.3  DilateFormer coefficient adjustment experiment

rmAP/%Params/106FLOPs/109FPS/帧
基线模型72.811.128.8109
175.812.328.7104
275.312.328.7101
374.712.328.799

新窗口打开| 下载CSV


3.5.3. BS-ShuffleNetV2网络对比实验

为了验证改进BS-ShuffleNetV2主干网络的有效性,在NEU-DET数据集上与A:DarkNet-53(基线模型)、E:ShuffleNetV2、F:VanillaNet网络进行对比,实验结果如表4所示,其中加粗表示最优值.可以看出,将DarkNet-53替换成轻量化的ShuffleNetV2网络后参数量和计算量分别减少4.9×106和13.2×109,FPS提升108帧,且mAP相比于原模型降低0.3个百分点,表明ShuffleNetV2网络具有良好的轻量化特性,但无法有效平衡检测精度和轻量化问题;在将VanillaNet作为基线模型的主干网络时,虽然mAP、参数量、计算量和检测速度均得到一定改善,但相较于本研究设计的BS-ShuffleNetV2网络仍存在不足. 相比之下,本研究BS-ShuffleNetV2网络以损失微小参数量和计算量为代价,实现检测性能的提升,mAP达到74.0%. 在DarkNet-53、VanillaNet和ShuffleNetV2网络的基础上分别提升1.2、1.0和1.5个百分点,同时,其速度与ShuffleNetV2网络一致. 因此,本研究BS-ShuffleNetV2网络具备合理性和优越性.

表 4   改进BS-ShuffleNetV2对比实验

Tab.4  Improved BS-ShuffleNetV2 comparison experiments

模型mAP/%Params/106FLOPs/109FPS/帧
A72.811.128.8109
E73.06.416.4183
F72.56.215.6217
本研究74.06.416.5217

新窗口打开| 下载CSV


3.6. 消融实验

以YOLOv8s为基线模型,对其进行3个方面的改进,构建了SDB-YOLOv8s模型,通过在NEU-DET和Severstal数据集上进行5组消融实验,以验证各个模块的有效性. M1表示将颈部的C2f模块替换成S-C2f模块、M2表示在主干网络最后添加DilateFormer、M3表示将原主干网络替换成BS-ShuffleNetv2网络. 其实验结果如表5所示,加粗表示最优值. 可以看出,在NEU-DET和Severstal数据集上,首先将颈部的C2f模块替换为S-C2f模块,mAP分别提升4.4和4.3个百分点、参数量和计算复杂度仅为基线模型的92.7%和93.4%,FPS提升20帧和10帧,表明SsConv模块能够减少空间和通道维度上的冗余信息,优化模型参数量和计算复杂度,并提升检测速度. 同时,SUR单元通过重新构建空间和通道特征信息之间的相关性,进一步提高检测能力;其次在主干网络最后添加DilateFormer模块,损失微小参数量和检测速度,但检测精度得到提升. DilateFormer模块通过多尺度膨胀卷积核扩大感受野,增强对不同尺度的特征的感知能力,有效捕捉特征图的上下文信息,避免特征分辨率的损失,从而提高特征提取和检测能力;然后将主干网络替换为轻量化的BS-ShuffleNetv2网络后,在2个数据集上,mAP分别提升1.2和2.3个百分点,同时给检测速度带来显著提升,每秒检测帧数达到217、196帧,相比于原模型提升近一倍. 另外,参数量和计算量得到显著优化,仅为YOLOv8s的57.6%和71.0%,表明改进后的BS-ShuffleNetv2网络具备优越性. 最后,同时添加3个模块,即本研究所提SDB-YOLOv8s算法,mAP分别提升6.4和7.0个百分点,FPS分别提升11和18帧,精确度分别达到77.4%和77.6%,参数量和计算量则仅为基线模型的64.8%和56.2%. 消融实验结果表明本研究所提算法具有合理性,较好地平衡了检测精度、速度和轻量化.

表 5   NEU-DET和Severstal数据集消融实验结果

Tab.5  Ablation test results on NEU-DET and Severstal datasets

数据集模型方法mAP/%Params/106FLOPs/109FPS/帧P/%R/%
NEU-DETYOLOv8s72.811.128.810972.870.9
YOLOv8s+M177.210.326.912977.170.4
YOLOv8s+M275.812.328.710476.770.2
YOLOv8s+M374.06.416.521771.576.0
YOLOv8s+M1+M2+M379.27.216.214677.472.1
SeverstalYOLOv8s69.911.128.810371.168.4
YOLOv8s+M174.210.326.911270.069.7
YOLOv8s+M271.112.328.78868.870.9
YOLOv8s+M372.16.416.519665.170.3
YOLOv8s+M1+M2+M376.97.216.212177.670.4

新窗口打开| 下载CSV


图9所示展示了本研究算法与基线模型在NEU-DET和Severstal数据集上对检测各类缺陷的平均精度. 可以看出,SDB-YOLOv8s算法对各类缺陷的AP均有所提升,在NEU-DET数据集上对裂缝、夹杂物、点蚀表面和氧化皮的提升效果较好,分别提高14.8、5.5、3.8和9.5个百分点;在Severstal数据集上则对裂缝、氧化皮和划痕三类缺陷的检测精度提升最显著,分别提高9.4、10.8和9.1个百分点,对于2个数据集的其余类别缺陷,原模型已达到较高的检测精度,因此提升效果略低. 实验结果表明本研究算法能有效提高钢材表面缺陷的检测精度.

图 9

图 9   本研究算法与原模型对各类缺陷AP的对比

Fig.9   Comparison of AP values of proposed algorithm and original model for various types of defects


为了验证Severstal数据集中各项性能指标提升是因数据增强还是本研究算法效果,在相同实验条件下,对比本研究算法和YOLOv8s算法在扩充前后数据集上的实验结果,其中SeverstalA、SeverstalB分别表示扩充前后的数据集. 实验结果如表6所示,其中加粗表示最优值. 可以看出,扩充前Severstal数据集mAP达到74.3%,而扩充后数据集mAP反而降低4.4个百分点. 可能是由于数据增强前的样本过于简单,模型在训练过程中过拟合. 而本研究算法的mAP在数据增强前后均得到提升,表明Severstal数据集检测精度的提升是由本研究算法带来的效果,其余指标也得到一定优化. 实验结果表明,数据增强能在一定程度上避免过拟合,并且SDB-YOLOv8s算法具有良好的鲁棒性.

表 6   Severstal数据集扩充前后实验对比

Tab.6  Comparison of experiments before and after enrichment of Severstal dataset

数据集模型方法mAP/%Params/106FLOPs/109FPS/帧
SeverstalAYOLOv8s74.311.128.8120
YOLOv8s+M1+M2+M377.97.216.2146
SeverstalBYOLOv8s69.911.128.8103
YOLOv8s+M1+M2+M376.97.216.2121

新窗口打开| 下载CSV


3.7. 对比实验分析

为了验证本研究算法的优越性,在相同实验条件下,分别在NEU-DET和Severstal数据集上,将改进后的算法与其他算法进行对比,包括Faster R-CNN、SSD、YOLOv3、YOLOv3-tiny、YOLOv4、YOLOv4-tiny、YOLOv5s、YOLOv5m、YOLOX-s、YOLOv7、YOLOv7-tiny、YOLOv8s和文献[11]、[18]的算法. 由于Severstal数据集扩充后样本数量庞大,本研究实验设备的计算能力和内存容量有限,无法对除SSD、YOLOv3-tiny、YOLOv4-tiny、YOLOv5s、YOLOv5m、YOLOv7-tiny和YOLOX-s算法之外的其他算法进行实验. 此外,文献[11]、[18]算法的检测对象是NEU-DET数据集,因此无法在Severstal数据集上进行对比分析. 如表7所示展示了实验结果,其中加粗表示最优值. 可以看出,SDB-YOLOv8s算法在NEU-DET和Severstal数据集上具有显著优势. 与Faster R-CNN、SSD、YOLOv3、YOLOv3-tiny、YOLOv4、YOLOv4-tiny、YOLOv5s、YOLOv5m、YOLOX-s、YOLOv7、YOLOv7-tiny和基线模型YOLOv8s相比,SDB-YOLOv8s算法具有较高的检测精度,其mAP分别达到79.2%和76.9%. 此外,SDB-YOLOv8s算法的FPS分别为146帧和121帧,优于其他对比算法. 相比之下,文献[11]算法在NEU-DET数据集上具有较高的检测精度,模型参数量和计算量也具备优势,但检测精度与实验设备、数据集划分以及实验参数设置也具有相关性. 同时其49帧的FPS较低,实时性较差,无法较好地平衡轻量化、检测精度和速度. 文献[18]的检测速度相比于文献[11]有所提升,但占用过多的计算资源,检测精度也有所降低. 反观本研究算法,参数量和计算量仅为7.2×106、16.2×109,检测速度达到最优,极大地满足实时性需求. 因此,SDB-YOLOv8s算法能更好地平衡检测精度、速度和轻量化,并具有较高的通用性的实用价值.

表 7   不同算法在NEU-DET和Severstal数据集上的对比实验结果

Tab.7  Comparative experimental results of different algorithms on NEU-DET and Severstal datasets

数据集模型方法mAP/%Params/106FLOPs/109FPS/帧
NEU-DETFaster R-CNN65.772.0167.317
SSD61.041.1145.341
YOLOv367.061.5155.031
YOLOv3-tiny46.58.612.9142
YOLOv451.052.5119.845
YOLOv4-tiny54.65.916.1128
YOLOv5s70.17.0716.4102
YOLOX-s71.88.021.646
YOLOv770.037.2104.836
YOLOv7-tiny68.76.0213.1108
YOLOv8s72.811.128.8120
文献[11]78.55.810.949
文献[18]74.123.975
SDB-YOLOv8s(本研究)79.27.216.2146
SeverstalSSD65.341.1145.312
YOLOv3-tiny56.48.612.9117
YOLOv4-tiny59.65.916.1103
YOLOv7-tiny68.76.0213.1108
YOLOv5s72.47.0716.459
YOLOv5m73.221.050.352.6
YOLOX-s73.88.021.642
YOLOv8s69.811.128.8103
SDB-YOLOv8s(本研究)76.97.216.2121

新窗口打开| 下载CSV


3.8. 可视化对比

为了直观比较本研究算法和基线算法在钢材表面缺陷上的检测性能,分别使用SDB-YOLOv8s与YOLOv8s模型在NEU-DET和Severstal数据集上进行定性分析,并将检测效果进行可视化展示,如图10所示. 可以看出,本研究算法相比于基线模型能检测出更多有效缺陷区域,与前文图9中的对比结果图大致对应. 在NEU-DET数据集上本研究算法对裂缝、夹杂物、点蚀表面和氧化皮的检测效果较好;在Severstal数据集上对裂缝、氧化皮和划痕3类缺陷的检测效果较好,同时本研究算法所检测的缺陷置信度也较高. 虽然也存在部分漏检情况(例如,裂缝、点蚀表面和划痕缺陷),但总体而言能检测出大部分的缺陷区域,可视化结果表明本研究提出的SDB-YOLOv8s算法具有更强的浅层特征提取能力,可以较好地避免漏检和误检情况,并在检测性能上具备一定优势.

图 10

图 10   SDB-YOLOv8s算法和YOLOv8s算法可视化结果对比

Fig.10   Visualization results comparison of SDB-YOLOv8s algorithm and YOLOv8s algorithm


4. 结 语

针对钢材表面缺陷形态多样、结构复杂和小目标居多以及现有算法无法有效平衡检测精度、速度和轻量化等问题,提出轻量级的钢材表面缺陷检测算法(SDB-YOLOv8s). 该算法通过设计特征交互模块、引入空洞Transfomer模块和设计轻量化主干网络等方法,改善当前算法在钢材缺陷检测领域无法有效平衡检测精度、速度和轻量化的问题. 在NEU-DET和Severstal数据集上进行实验验证,该算法的mAP分别达到79.2%和76.8%,同时参数量和计算复杂度仅为基线模型的64.8%和56.2%、FPS分别达到146帧和121帧. SDB-YOLOv8s模型在保持较高检测精度的同时,所需的计算资源更少,检测速度更快,较好地平衡了检测精度、速度和轻量化. 目前,该模型的部署尚在实验阶段,未来的研究将考虑模型在不同光照和环境条件下对不同缺陷的表现能力,同时在实际部署时将考虑模型的寿命、维护和能源消耗等方面,最后将其应用在工业钢材缺陷检测领域.

参考文献

王安静, 袁巨龙, 朱勇建, 等

基于改进YOLOv8s的鼓形滚子表面缺陷检测算法

[J]. 浙江大学学报: 工学版, 2024, 58 (2): 370- 380

[本文引用: 1]

WANG Anjing, YUAN Julong, ZHU Yongjian, et al

Drum roller surface defect detection algorithm based on improved YOLOv8s

[J]. Journal of Zhejiang University: Engineering Science, 2024, 58 (2): 370- 380

[本文引用: 1]

袁天乐, 袁巨龙, 朱勇建, 等

基于改进YOLOv5的推力球轴承表面缺陷检测算法

[J]. 浙江大学学报: 工学版, 2022, 56 (12): 2349- 2357

[本文引用: 1]

YUAN Tianle, YUAN Julong, ZHU Yongjian, et al

Surface defect detection algorithm of thrust ball bearing based on improved YOLOv5

[J]. Journal of Zhejiang University: Engineering Science, 2022, 56 (12): 2349- 2357

[本文引用: 1]

GIRSHICK R, DONAHUE J, DARRELL T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation [C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition . Columbus: IEEE, 2014: 580–587.

[本文引用: 1]

REN S, HE K, GIRSHICK R, et al

Faster R-CNN: towards real-time object detection with region proposal networks

[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39 (6): 1137- 1149

DOI:10.1109/TPAMI.2016.2577031      [本文引用: 1]

LIU W, ANGUELOV D, ERHAN D, et al. SSD: single shot multibox detector [C]// European Conference on Computer Vision . Heideberg: Springer, 2016: 21−37.

[本文引用: 1]

HUSSAIN M

YOLO-v1 to YOLO-v8, the rise of YOLO and its complementary nature toward digital manufacturing and industrial defect detection

[J]. Machines, 2023, 11 (7): 677

DOI:10.3390/machines11070677      [本文引用: 1]

CARION N, MASSA F, SYNNAEVE G, et al. End-to-end object detection with transformers [C]// European Conference on Computer Vision . Cham: Springer, 2020: 213–229.

[本文引用: 1]

ZHOU S, ZENG Y, LI S, et al

Surface defect detection of rolled steel based on lightweight model

[J]. Applied Sciences, 2022, 12 (17): 8905

DOI:10.3390/app12178905      [本文引用: 1]

QIN R, CHEN N, HUANG Y. EDDNet: An efficient and accurate defect detection network for the industrial edge environment [C]// IEEE 22nd International Conference on Software Quality, Reliability and Security . Guangzhou: IEEE, 2022: 854–863.

[本文引用: 1]

YANG L, HUANG X, REN Y, et al

Steel plate surface defect detection based on dataset enhancement and lightweight convolution neural network

[J]. Machines, 2022, 10 (7): 523

DOI:10.3390/machines10070523      [本文引用: 1]

张政超

改进YOLOv5的轻量级带钢表面缺陷检测

[J]. 计算机系统应用, 2023, 32 (6): 278- 285

[本文引用: 7]

ZHANG Zhengchao

Lightweight strip steel defect detection based on improved YOLOv5

[J]. Computer System Applications, 2023, 32 (6): 278- 285

[本文引用: 7]

蔡剑锋, 柏俊杰, 张雪, 等

基于改进Mask R-CNN 的金属板材表面缺陷检测

[J]. 重庆科技学院学报: 自然科学版, 2023, 25 (2): 110- 116

[本文引用: 1]

CAI Jianfeng, BAI Junjie, ZHANG Xue, et al

Research on surface defect recognition of metal sheet based on improved Mask R-CNN

[J]. Journal of Chongqing Institute of Science and Technology: Natural Science Edition, 2023, 25 (2): 110- 116

[本文引用: 1]

阎馨, 杨月川, 屠乃威

基于改进SSD的钢材表面缺陷检测

[J]. 现代制造工程, 2023, (5): 112- 120

[本文引用: 1]

YAN Xin, YANG Yuechuan, TU Naiwei

Steel surface defect detection based on improved SSD

[J]. Modern Manufacturing Engineering, 2023, (5): 112- 120

[本文引用: 1]

LI J, WEN Y, HE L. Scconv: spatial and channel reconstruction convolution for feature redundancy [C]// Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition . Vancouver: IEEE, 2023: 6153–6162.

[本文引用: 2]

JIAO J, TANG Y M, LIN K Y, et al. Dilateformer: multi-scale dilated transformer for visual recognition [J]. IEEE Transactions on Multimedia , 2023, 25: 8906–8919.

[本文引用: 1]

MA N, ZHANG X, ZHENG H T, et al. Shufflenet v2: practical guidelines for efficient cnn architecture design [C]// Proceedings of the European Conference on Computer Vision . Cham: Springer, 2018: 116–131.

[本文引用: 1]

SANDLER M, HOWARD A, ZHU M, et al. Mobilenetv2: inverted residuals and linear bottlenecks [C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition . Salt Lake City: IEEE, 2018: 4510–4520.

[本文引用: 1]

曹义亲, 伍铭林, 徐露

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

[J]. 图学学报, 2023, 44 (2): 335- 345

[本文引用: 4]

CAO Yiqin, WU Minglin, XU Lu

Steel surface defect detection based on improved YOLOv5 algorithm

[J]. Journal of Graphics, 2023, 44 (2): 335- 345

[本文引用: 4]

/