摘要——本文旨在解决纺织品生产过程中缺陷检测速度慢、精度欠佳以及易受不利环境条件影响等问题。通过对纺织品缺陷点的深入研究,我们开发了一种基于改进的YOLOv5架构的创新型缺陷检测算法。该方法采用数据增强技术,包括噪声注入和亮度降低,以增强算法在复杂检测场景下的鲁棒性。此外,引入了ShuffleNetV2轻量级网络,该网络采用深度可分离卷积和其他轻量级技术,优化了算法在资源受限设备上的运行性能。同时,引入SimAM注意力机制使模型能够在不引入额外参数或增加计算复杂度的情况下提取关键图像信息。实验结果验证了模型的有效性,在纺织品缺陷数据集上实现了93.9%的检测精度,比原始YOLOv5模型提高了1.5%。
关键词——织物缺陷检测;ShuffleNetV2;SimAM;YOLOv5
一、引言
中国纺织业的崛起经历了从数量积累到质量卓越的关键性转变。到2022年底,中国的纺织机械产量将占全球纺纱锭数的50%以上,织造设备数量将占全球的45%以上[1],这凸显了纺织业对国民经济的深远影响。在纺织品生产的各个环节,由于人为失误和机器故障,都容易出现纱线不匀、棉杂质、污渍、断纱、破洞、滑移和混色等缺陷。不合格纺织品流入市场,对整个行业的可持续发展构成重大威胁。因此,纺织品缺陷检测已成为推动技术进步和增强中国蓬勃发展的纺织行业市场竞争力的关键所在。在纺织品缺陷检测的早期阶段,普遍采用人工目视检查——这种方法效率低下、人工成本高昂,且容易出错和疏忽。随着国内外深度学习技术的飞速发展,纺织品缺陷检测技术得到了显著提升。
专家学者们深入研究了各种研究途径以应对这些挑战。在基于深度学习的方法领域,涌现出两大类:基于区域的两阶段检测网络和基于回归的单阶段检测。本文深入探讨了纺织品缺陷检测的历史发展,追溯了从劳动密集型的人工检测到深度学习革命带来的突破性解决方案的演变历程。代表性的算法模型包括SSD、Faster-RCNN、YOLO等。与两阶段网络相比,单阶段网络展现出更高的检测速度,能够同时满足实时监控和更高的检测精度,因此受到目标检测领域研究人员的青睐。Jing Junfeng等人[2]应用卷积神经网络检测织物缺陷,在单色织物上表现出色,并能精确定位缺陷区域。然而,传统卷积神经网络固有的计算复杂性限制了其在检测复杂织物图像方面的有效性。此外,N. Sajitha [3] 将增强型龙卷风优化算法与深度学习相结合,用于织物缺陷检测。该方法在复杂织物上展现出良好的效果,并能准确分类缺陷,但计算复杂度高,且对训练数据的质量和数量要求严格。
本文旨在解决纺织品缺陷检测过程中实时检测效率低、易受噪声和天气条件影响的问题。本文提出了一种基于 YOLOv5 的改进算法,并结合深度学习技术。通过镜像翻转、噪声注入和亮度调整等技术,构建了一个专门用于纺织品缺陷检测的数据集。与 SSD、YOLOv7 和 YOLOv8 模型的对比评估表明,在本文提出的数据集上,SSD 和 YOLOv7 算法的准确率低于 YOLOv5。此外,YOLOv8 更为复杂的架构导致模型体积更大,因此 YOLOv5 7.0 版本是进一步改进的首选。此外,引入适用于计算能力有限设备的轻量级网络 ShuffleNetV2,并结合 SimAM 注意力机制,旨在平衡检测速度和准确性。改进后的算法有效应对了复杂和弱光环境下纺织品缺陷检测的挑战。
二、数据来源及预处理
本研究使用的数据集源自浙江纺织厂的真实场景,包含2000多张灰度图案织物图像。图1展示了该数据集中的一张织物图像示例,其中包含各种缺陷类型,例如纱线不规则、棉絮杂质、污渍、断纱和破洞。每张数据样本图像的尺寸均为512×512像素,格式为.JPG。
图 1. 织物数据集中的缺陷织物图像
鉴于深度学习网络训练过程中兼容的数据集格式多种多样,本实验的图像标注工作分别针对YOLO数据集格式和PASCAL VOC数据集格式的原始图像进行标注,以确保其对各种深度学习算法的广泛适用性。标注工作使用LabelImg图像标注工具完成,随后将数据集按7:1:2的比例划分为训练集、验证集和测试集。为了模拟织物缺陷检测的挑战性环境,例如昏暗的照明和低性能设备场景,我们应用了数据增强技术。训练集扩充至5921张图像,并与原始的验证集和测试集合并,最终得到包含6555张图像的完整数据集。图2直观地展示了增强后的织物图像,体现了在复杂环境下检测纺织品缺陷的难度。
图2. 预处理后的织物图像
三、实验环境和参数配置
A. 实验环境配置
本模型的开发主要使用 Python 3.8,并采用开源深度学习框架 PyTorch 作为神经网络框架。实验配置方面,操作系统为 Ubuntu 22.04.3,并使用 CUDA 12.2 加速训练过程。硬件测试环境包括一颗主频为 2.30GHz 的 Intel(R) Core(TM) i5-8300H CPU 和一块 40GB 显存的 NVIDIA A100 GPU。
B. 实验参数配置
本研究采用 YOLOv5 7.0 版本作为基础模型。训练过程包括将输入图像配置为 640×640 像素。模型训练的优化函数选择为随机梯度下降 (SGD)。训练历时 300 个周期,初始学习率为 0.01。学习率衰减采用余弦退火策略,学习率动量设置为 0.937。训练批次大小设定为 16。
IV. 算法改进
A. YOLOv5 算法
YOLOv5 模型包含五个变体,分别是 YOLOv5n、YOLOv5s、YOLOv5m、YOLOv5l 和 YOLOv5x,它们的区别在于网络深度和宽度的变化。本文重点研究 YOLOv5s 变体。图 3 给出了该架构的详细示意图。
图 3. YOLOv5s 的架构
B. 改进的YOLOv5算法
1) 基于ShuffleNetV2的轻量级特征提取网络
YOLOv5中的主要特征提取网络主要基于C3网络构建,以实现高效的特征提取。尽管C3具有出色的检测性能,但其复杂的结构和大量的参数使得在计算能力受限的边缘设备上部署该模型面临挑战。为了解决这个问题,近期的研究工作涌现出各种轻量级网络,专门用于移动和嵌入式设备的部署。值得注意的是,ShuffleNetV2[4]在高效特征提取方面表现出色,显著降低了模型参数和计算复杂度。基于这些优势,本研究选择ShuffleNetV2作为增强型YOLOv5模型的特征提取网络。
ShuffleNetV2在ShuffleNetV1[5]的基础上构建,融合了深度可分离卷积和通道混洗的原理,并引入了通道分割的概念。 ShuffleNetV2 的架构由两个主要单元组成:基本单元 (a) 和下采样单元 (b),其详细结构如图 4 所示。
图 4. ShuffleNet V2 的基本单元
如图 4(a) 所示,特征图进入基本单元后,首先进行通道分割,随机且等分地分为左右两个分支。在右分支中,首先通过 1×1 常规卷积调整通道数,以便后续进行 3×3 深度可分离卷积,从而增强特征图的处理能力。与常规卷积相比,采用深度可分离卷积显著减少了模型参数和计算量,从而加快了网络的训练和推理速度。随后,输出特征图的通道数再次通过 1×1 常规卷积进行调整。经过三次连续卷积后,右分支特征图的通道数保持不变,从而减少了内存访问。最后,将右分支生成的特征图与左分支直接向下传播的特征图进行拼接。通过通道混洗操作,实现了通道间的交互和信息融合,从而提升了网络的整体表达能力。
如图 4(b) 所示,进入下采样单元后,特征图的主要任务是下采样。此操作将特征图的维度减半,同时增大感受野。其总体目标是减轻计算负担并减少参数数量。此外,通道数的翻倍显著增强了网络的特征提取和表达能力。总之,下采样单元在网络中扮演着至关重要的角色,它通过有效地下采样和增强特征提取能力来优化模型性能。
2) 基于SimAM注意力机制的主干网络 为了有效消除与目标相似的背景干扰,研究表明在主干网络中引入注意力机制是一种有效的方法。为了在不增加参数数量的情况下提升模型性能,本研究采用了SimAM,一种三维无参数注意力机制[6]。该机制借鉴了神经科学中的空间抑制现象[7],并通过能量函数来衡量神经元的重要性。如图5所示的SimAM注意力机制结构图,输入图像R包含C个通道的输入特征X∈R,其尺寸为H×W,其中W和H分别表示特征图的宽度和高度。这种配置产生了M=H×W个神经元,理论上每个通道都对应M个能量函数。SimAM机制通过一个受神经过程中观察到的空间抑制现象启发的能量函数来量化神经元的重要性。
图5. SimAM注意力机制的结构图
同一通道内的神经元具有相同的分布。为避免计算冗余,可以先计算单个通道内所有神经元的平均值。每个位置的最小能量的最终公式由公式(1)给出:
这里,变量 t 代表目标神经元,λ 代表超参数。如前所述,能量值越低,意味着神经元 t 与其相邻神经元之间的差异越大,表明其重要性越高。最后,根据注意力机制的定义,应用特征增强过程,得到公式 (2) 所示的 SimAM 公式:
在本研究中,SimAM机制被策略性地置于骨干特征提取网络的最深层,从而确保不会给模型参数增加额外负担。通过评估空间位置特征和通道信息,SimAM选择性地强化关键神经元。这种精心设计的整合提高了网络的特征提取能力,同时加快了训练速度。
3) 整体改进的网络架构
本研究对YOLOv5s算法进行了三项关键改进:
i. 集成ShuffleNetV2轻量级特征提取网络。
ii. 在骨干网络的最后一层加入SimAM注意力机制模块。
iii. 改进后的网络架构,记为YOLOv5-SS,如图6所示。
图 6. 改进的 YOLOv5s 结构
五、结果分析
A. 消融实验
为了验证本文提出的增强算法在模型检测性能、模型大小和检测精度方面的有效性,我们进行了一系列实验。这些实验在实验环境和训练参数均保持一致的条件下进行。我们系统地引入了多种增强策略,逐步进行修改,以确定每种方法对最终模型的影响。在指定的测试集上进行的测试结果汇总于表1。
消融实验结果表明,使用 ShuffleNetV2 时,模型参数数量减少了 45.8%,GFLOPS 降至 8.1G,实现了特征提取网络的轻量化,但牺牲了一定的准确率;mAP_0.5 下降了 0.2%。通过在主干网络的最后一层添加 SimAM 注意力机制模块,模型的 mAP_0.5 提升至 92.5%,GFLOPS 略微增加了 1.2%。最终,结合两种改进方法,在轻量化的基础上,将 SimAM 注意力机制模块融入特征提取网络的最后一层,YOLOv5-SS 相比原始 YOLOv5s 实现了 42.4% 的 GFLOPS 降低,同时 mAP_0.5 提升了 1.5%。
B. 对比实验
为了全面评估增强模型的性能,本研究开展了对比实验,将所提出的算法 YOLO-SS 与其他几种著名的目标检测算法进行了对比,这些算法包括 SSD、YOLOv7、YOLOv7-tiny 和 YOLOv8。这些对比实验的结果总结在表 2 中。
对比实验结果表明,改进后的算法带来了显著的性能提升。与原始模型相比,改进后的 YOLOv5 和 YOLOv7 模型的参数规模分别显著降低了 27.2% 和 86.2%。同时,mAP_0.5 也分别提高了 1.5% 和 2.0%,表明检测精度得到了提升。与 YOLOv7-tiny 模型相比,mAP_0.5 的提升幅度高达 6.4%。图 6 展示了各算法模型的 mAP_0.5 曲线,
图 7 则直观地展示了算法在验证集中选取的三幅图像上的检测结果。这些可视化结果共同表明,所提出的算法 YOLO-SS 在测试场景中达到了最高的检测精度。
图 7. 各算法模型的 mAP50/% 曲线
图 8. 模型检测性能比较
六、结论
实验结果表明,与其他主流目标检测算法相比,YOLOv5-SS算法在纺织品缺陷检测中实现了极高的检测精度,且模型尺寸非常小。该算法部署成本低、检测效率高,因此适用于移动设备和边缘设备。它被证明是一种高效且优越的解决方案,尤其适用于纺织行业的实际应用。