一种改进YOLOv5的布匹瑕疵检测方法转让专利

申请号 : CN202110841573.7

文献号 : CN115700741A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张强王琦窦冬洋齐鹏王诗宇王晓杰刘信君韩玉虎

申请人 : 沈阳中科数控技术股份有限公司

摘要 :

本发明涉及一种基于改进YOLOv5的布匹瑕疵检测方法,包括:输入布匹的RGB图像;训练目标检测网络SE‑YOLOv5;检测瑕疵点;输出瑕疵点的位置。本发明方法为基于SE模块的YOLOv5网络(SE Module‑Based YOLOv5,SE‑YOLOv5),SE‑YOLOv5在YOLOv5网络中的backbone中加入了SE模块,并且把YOLOv5CSP中的Leaky ReLU函数替换为ActivateOrNot(ACON)激活函数,从而提高了模型的精度。实验结果表明,SE‑YOLOv5相比YOLOv5,有着更好的泛化能力,能够更好地应用到实际的布匹瑕疵检测。

权利要求 :

1.一种改进YOLOv5的布匹瑕疵检测方法,其特征在于,包括以下步骤:从数据集中获取布匹的RGB图像;

训练SE‑YOLOv5模型;

将RGB图像导入训练好的SE‑YOLOv5模型进行瑕疵点检测,并输出检测结果。

2.根据权利要求1所述的一种改进YOLOv5的布匹瑕疵检测方法,其特征在于,通过精度、查准率、召回率和F1值,对检测前后的RGB图像进行计算,以此评价SE‑YOLOv5模型的性能。

3.根据权利要求1所述的一种改进YOLOv5的布匹瑕疵检测方法,其特征在于,所述SE‑YOLOv5模型为:在YOLOv5网络中的backbone层的最后加入SE模块,以及把YOLOv5网络中CSP层中的LeakyReLU函数替换为ACON激活函数。

4.根据权利要求1或3所述的一种改进YOLOv5的布匹瑕疵检测方法,其特征在于,通过带有瑕疵的布匹的RGB图像对SE‑YOLOv5模型进行训练。

5.根据权利要求3所述的一种改进YOLOv5的布匹瑕疵检测方法,其特征在于,所述ACON激活函数为:fACON‑C(x)=(p1‑p2)x·σ[β(p1‑p2)x]+p2x其中,x为输入值,p1和p2为可学习的参数,β为切换因子,σ为Sigmoid函数。

6.根据权利要求1所述的一种改进YOLOv5的布匹瑕疵检测方法,其特征在于,所述检测结果包括:瑕疵点锚框的中心位置的横坐标、纵坐标以及瑕疵点锚框的长度和宽度。

7.一种改进YOLOv5的布匹瑕疵检测系统,其特征在于,包括:数据获取模块,用于从数据集中获取布匹的RGB图像;

模型训练模块,用于训练SE‑YOLOv5模型;

瑕疵点检测模块,用于将RGB图像导入训练好的SE‑YOLOv5模型进行瑕疵点检测,并输出检测结果。

8.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现如权利要求1‑6任一项所述的一种改进YOLOv5的布匹瑕疵检测方法。

9.一种改进YOLOv5的布匹瑕疵检测系统,其特征在于,包括存储器和处理器;

所述存储器,用于存储计算机程序;所述处理器,用于当执行所述计算机程序时,实现如权利要求1‑6任一项所述的一种改进YOLOv5的布匹瑕疵检测方法。

说明书 :

一种改进YOLOv5的布匹瑕疵检测方法

技术领域

[0001] 本发明属于布匹瑕疵检测领域,具体涉及一种改进YOLOv5的布匹瑕疵检测方法。

背景技术

[0002] 布匹瑕疵检测是产品质量控制的一个重要组成部分。在生产过程中,低质量的产品对产商和客户都是不利的。质量低下的产品无法长期地占领市场。然而,很多工厂在很大程度上依靠人力,通过肉眼来检测布匹瑕疵,这加重了厂商劳动成本的负担,而且效率低。为此,有必要将自动化瑕疵检测引入生产过程中,这可以有效地提高布匹质量,降低劳动成本。
[0003] 针对布匹瑕疵检测问题,目前主流的有三种方法。第一种方法:Shi等人(SHI B,LIANG J,DI L,et al.Fabric defect detection via low‑rank decomposition with gradient information and structured graph algorithm[J].Information Sciences,2021,546:608‑626.)使用了一种新的用于布匹瑕疵检测的低秩分解模型,这种方法基于梯度信息的低秩分解和结构图算法。第二种方法:Zhu等人(ZHU Z,HAN G,JIA G,et al.Modified densenet for automatic fabric defect detection with edge computing for minimizing latency[J].IEEE Internet of Things 2020,7(10):9623‑
9636.)提出了一种用于边缘计算场景的基于深度学习的布匹瑕疵检测方法,其修改了DenseNet的结构来更好地适应资源受限的边缘计算场景。第三种方法:Li等人(LI Y,ZHANG D,LEE D‑J J N.Automatic fabric defect detection with awide‑and‑compact network[J].Neurocomputing,2019,329:329‑338.)提出了一个紧致的卷积神经网络,用于检测一些常见的布匹瑕疵,该网络使用了几个带有多层感知机的微结构来进行优化。
[0004] 尽管这些方法在特定情况下取得了令人满意的成绩,但大多数方法都局限于简单的纹理,无法解决现实世界中复杂的布匹瑕疵检测问题。

发明内容

[0005] 针对现有布匹瑕疵检测方法不能检测复杂布匹的瑕疵以及准确率不够高的问题,本发明在YOLOv5 backbone中加入了Squeeze‑and‑Excitation(SE)模块,并且使用ActivateOrNot(ACON)激活函数来替换YOLOv5 CSP中的LeakyReLU激活函数,从而得到了SE‑YOLOv5(SE Module‑Based YOLOv5)。本发明方法能够检测复杂纹理中的瑕疵,在实际应用场景中更加可靠实用。
[0006] 本发明为实现上述目的所采用的技术方案是:
[0007] 一种改进YOLOv5的布匹瑕疵检测方法,包括以下步骤:
[0008] 从数据集中获取布匹的RGB图像;
[0009] 训练SE‑YOLOv5模型;
[0010] 将RGB图像导入训练好的SE‑YOLOv5模型进行瑕疵点检测,并输出检测结果。
[0011] 通过精度、查准率、召回率和F1值,对检测前后的RGB图像进行计算,以此评价SE‑YOLOv5模型的性能。
[0012] 所述SE‑YOLOv5模型为:在YOLOv5网络中的backbone层的最后加入SE模块,以及把YOLOv5网络中CSP层中的LeakyReLU函数替换为ACON激活函数。
[0013] 通过带有瑕疵的布匹的RGB图像对SE‑YOLOv5模型进行训练。
[0014] 所述ACON激活函数为:
[0015] fACON‑C(x)=(p1‑p2)x·σ[β(p1‑p2)x]+p2x
[0016] 其中,x为输入值,p1和p2为可学习的参数,β为切换因子,σ为Sigmoid函数。
[0017] 所述检测结果包括:瑕疵点锚框的中心位置的横坐标、纵坐标以及瑕疵点锚框的长度和宽度。
[0018] 一种改进YOLOv5的布匹瑕疵检测系统,包括:
[0019] 数据获取模块,用于从数据集中获取布匹的RGB图像;
[0020] 模型训练模块,用于训练SE‑YOLOv5模型;
[0021] 瑕疵点检测模块,用于将RGB图像导入训练好的SE‑YOLOv5模型进行瑕疵点检测,并输出检测结果。
[0022] 一种计算机可读存储介质,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现所述的一种改进YOLOv5的布匹瑕疵检测方法。
[0023] 一种改进YOLOv5的布匹瑕疵检测系统,包括存储器和处理器;所述存储器,用于存储计算机程序;所述处理器,用于当执行所述计算机程序时,实现所述的一种改进YOLOv5的布匹瑕疵检测方法。
[0024] 本发明具有以下有益效果及优点:
[0025] 1.模型可用于复杂的布匹瑕疵检测,便于布匹瑕疵检测模型在实际环境的部署。
[0026] 2.提升了布匹瑕疵检测模型的泛化能力,精度比原有模型要高。

附图说明

[0027] 图1为本发明方法整体流程图;
[0028] 图2为本发明方法的网络结构图;
[0029] 图3为本发明方法的ACON‑CSP模块图;
[0030] 图4为本发明方法所使用数据集的示例图;
[0031] 图5为本发明方法检测布匹瑕疵的效果图;
[0032] 图6为本发明方法训练时的边界框回归损失曲线图。

具体实施方式

[0033] 下面结合附图及实施例对本发明做进一步的详细说明。
[0034] 本发明采用的技术方案是:一种改进的YOLOv5的布匹瑕疵检测方法,包括以下步骤:
[0035] S1:输入布匹的RGB图像;
[0036] S2:训练SE‑YOLOv5模型;
[0037] S3:检测瑕疵点;
[0038] S4:输出瑕疵点的位置。
[0039] 所述训练SE‑YOLOv5模型,具体为:在YOLOv5网络中的backbone中加入SE模块(HU J,SHEN L,ALBANIE S,et al.Squeeze‑and‑Excitation Networks[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2020,42(8):2011‑2023.),以及把YOLOv5 CSP中的LeakyReLU函数替换为ACON激活函数。
[0040] 假设网络backbone中某一层的输出是 其中,H为输出数据的高度,W为输出数据的宽度,C为输出数据的通道数。SE模块就是一个计算单元,其可以通过一个卷积操作F来进行构建,F把输入 映射到特征图 其中,H′是特征
图的高度,W′是特征图的宽度,C′是特征图的通道数。我们使用K=[k1,k2,…,kc′]来表示卷积核的集合,其中kc′是第c′个卷积。输出可以写成M=[m1,m2,…,mC′],其中[0041]
[0042] 式(1)中的*是卷积操作, X=[x1,x2,…,xC],是空间核,其代表kc′作用在X对应的通道上。为了简化,我们省略了偏置项。我们通过对所有通道进行加和来得到输出,通道依赖被隐式地嵌入到了kc′,但被卷积核捕获的局部相关性所融合。
[0043] 如图3所示,其中,CBL表示由卷积、批量归一化和SiLU激活函数组合而成的操作,ResUnit表示残差单元,Conv表示卷积操作,BatchNorm表示批量归一化,我们替换YOLOv5 CSP中的Leaky ReLU函数为ACON激活函数,这种新结构被称为ACON‑CSP。ACON‑CSP模块主要在特征图上进行特征提取,从图像中提取出丰富的信息。与大规模的卷积神经网络相比,ACON‑CSP结构能够减少优化过程中的梯度信息重复。具体来说,我们使用ACON‑C来替代LeakyReLU。ACON‑C仅使用超参数来缩放特征。ACON‑C的定义如下:
[0044] fACON‑C(x)=(p1‑p2)x·σ[β(p1‑p2)x]+p2x       (2)
[0045] 其中x是输入值,p1和p2是可学习的参数,β是切换因子,σ是Sigmoid函数,并且我们初始化β=p1=p2=0。
[0046] 所述检测瑕疵点,具体为:我们将布匹的图像传送到已经训练好的SE‑YOLOv5。
[0047] 所述输出瑕疵点的位置,具体为:输出归一化的瑕疵点锚框的中心位置的横坐标、纵坐标以及长和宽。
[0048] 如图1所示,基于SE‑YOLOv5的布匹瑕疵检测方法包括以下步骤:
[0049] 1:输入布匹的RGB图像;
[0050] 2:训练如图2所示的目标检测网络SE‑YOLOv5模型;其中,Input表示输入,Output表示输出,Focus表示切片操作,CBL表示由卷积、批量归一化和SiLU激活函数组合而成的操作,SPP表示空间金字塔池化,Upsample表示上采样,Concat表示融合操作,Conv表示卷积;
[0051] 3:检测瑕疵点;
[0052] 4:输出瑕疵点的位置。
[0053] 为了验证本发明方法的性能,我们在公开的布匹瑕疵数据集(天池布匹疵点智能识别比赛所提供的数据集)上进行了实验,我们称该数据集为天池布匹瑕疵数据集。该数据集的示例图片如图4所示。该数据集一共有3622张图片,2239张图片用于训练,1383张图片用于测试。
[0054] 本发明方法使用accuracy(精度)、precision(查准率)、recall(召回率)、F1值来衡量模型的性能。
[0055]
[0056]
[0057]
[0058]
[0059] 其中,ncorrect是指测试集中瑕疵被正确检测出的图片的数量,btotal是测试集中图片的数量,真正例(TruePositive,TP)是指正确检测出了图片中的一个目标。假正例(FalsePositive,FP)是指错误地检测了一个目标,即网络预测的目标不在图片中。假负例(FalseNegative,FP)是指图片中存在一个目标,但没有被网络检测出来。在目标检测中,IoU测量了预测的锚框和真正的锚框之间的重叠区域。检测结果会跟给定阈值的IoU相比较,然后检测会被分成正确检测或者错误检测。
[0060] 我们在天池布匹瑕疵数据集验证了本发明方法的性能。本发明方法的accuracy为95.52%,超过了YOLOv5。实验结果如表1所示,结果显示本发明方法能够有效地判断图片是否有瑕疵,并且我们模型的性能超过了现有的YOLOv5布匹瑕疵检测模型。SE‑YOLOv5瑕疵检测的效果如图5所示。
[0061] 表1天池瑕疵数据集上的模型性能比较
[0062]
[0063] 我们使用天池布匹瑕疵数据集来训练本发明方法改进的模型。训练时的边界框回归函数曲线如图6所示,本实验的epoch(回合)数量设置为300,随着迭代次数的增加,边界框回归损失在不断地减少,并且模型在280个epoch后开始收敛,趋于稳定。结果显示SE‑YOLOv5收敛地很快,并且训练损失会收敛到一个稳定的值。