一种基于改进YOLOv5s的钢材表面缺陷检测方法
文献发布时间:2023-06-19 18:58:26
技术领域
本发明涉及图像处理检测技术领域,具体涉及一种基于改进YOLOv5s的表面缺陷检测方法。
背景技术
目前由于钢材产量的快速增长和检测技术的不完善,其表面的任何缺陷,比如残缺、变形等不仅影响其质量性能,而且还影响企业的形象及产品美观。工业环境中的金属设备因处于高温,辐射,化学原料接触,高湿度等特殊运行环境,设备表面极大可能出现各种缺陷。在钢材表面缺陷检测任务中,由于复杂的工业环境等因素的影响,导致检测难度增加,误检率和漏检率高,检测效率低。因此,在上述情况下对钢材表面缺陷进行快速精准的识别具有重要的研究意义。
随着人工智能的迅速发展与深度学习算法的日益成熟,卷积神经网络在人脸识别、图像分类、目标检测等方面具有更加优异的性能比。徐长航等在含缺陷钢制试件红外热像检测实验的基础上,利用多种图像处理技术,实现了裂纹、圆孔等不同类型缺陷的提取与识别。边栋梁通过卷积神经网络模型对钢材表面粗糙度的分类准确率高达100%。JOUNG etal将红外成像技术应用在管道缺陷的检测上。基于深度学习的目标检测算法根据是否具有区域选取(Region Proposal,RP)分为双阶段目标检测算法和单阶段目标检测算法,双阶段目标检测算法先经过RP生成推荐候选框,再进行类别、边界回归,多目标识别精度高,同时计算开销大、训练时间长,适用于云端、算力强设备,代表有区域推荐卷积神经网络(RegionConvolutional Neural Networks,RCNN)、高速区域推荐卷积神经网络(Fast RegionConvolutional Neural Networks,Fast-CNN,Fast-RCNN)、超高速区域推荐卷积神经网络(Faster Region Convolutional Neural Networks,Faster-RCNN);双阶段目标检测算法采用网格单元代替RP约束检测框,对图像直接检测,算法速度快、可移植性好,但容易漏检、精度偏低,适用于移动终端以及嵌入式设备,代表有YOLO(You Only Look Once)、SSD(Single Shot Mutibox Detector)、Retina-Net。YOLOv4目标检测在小目标和遮挡目标检测方面效果突出,但在图像画质较低时由于能够提取的信息不够充分,导致误检的概率较大,同时该模型的泛化能力不足,不能很好地适应更多的应用场景。
发明内容
发明目的:针对背景技术中指出的问题,本发明提出一种基于改进YOLOv5s的钢材表面缺陷检测方法,解决了现有钢材表面缺陷检测算法对复杂目标特征提取不充分、缺陷定位偏差大以及工业环境对检测算法实时性要求高的问题。
技术方案:本发明提供。
有益效果:
本发明方法把人工智能技术和缺陷检测技术相结合,针对当前钢材表面缺陷检测中对复杂目标特征提取困难、定位误差大以及检测速度慢等问题,使用线性对比度增强方法对图片进行处理,有选择地突出钢材表面缺陷特征的信息,抑制无用信息,使用mosaic增强样本图像的多样性,在Yolov5网络的头部部分增加了一个新的小尺度预测头,提高小目标检测能力。使用融合注意力机制CBAM-ECA注意力机制,消除复杂背景的影响,实现检测的快速性和精确性,将原有的损失函数IoU Loss调整为DIoU Loss,加快网络收敛速度,使用Ghost Bottleneck模块替换YOLOv5s的主干特征提取网络,在不降低模型精确度或精度极小降低的情况下,缩小模型体积,更好地满足当前工业环境中对于钢材表面缺陷检测实时性的要求。
附图说明
图1为本发明实施例中的方法流程图;
图2为本发明实施例中图像Mosaic数据增强效果图;
图3为本发明实施例中的线性对比度增强效果图;
图4为本发明实施例中的的GhostBottleneck模块的原理图;
图5为本发明实施例中深度可分离卷积(DW Conv)原理简图;
图6为本发明实施例中上采样后添加重影模块结构示意图;
图7为本发明实施例中GIoU Loss和DIoU Loss回归过程图;
图8为本发明实施例中CBAM-ECA融合注意力机制结构图;
图9为本发明实施例中改进后Yolov5网络结构简图;
图10为本发明实施例中训练和验证集的训练期间,框损失、目标损失、分类损失、精确度、召回率、平均精度和均值平均精度曲线图;
图11为本发明实施例中改进算法模型实验结果曲线对比图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明。
如图1所示,本发明实施例公开的一种基于改进YOLOv5s的钢材表面缺陷检测方法,主要包括以下步骤:
步骤1:制作数据集。
S1.1:获取金属表面缺陷数据,并对金属表面缺陷数据进行标注,得到训练样本集,将缺陷分为6种典型表面缺陷,即轧制氧化皮,斑块,开裂,点蚀表面,内含物和划痕。
S1.2:将数据集中的图像用LabelImg工具软件标明个图象中缺陷的类别和位置,并以YOLOv5数据的格式分类储存,将钢材表面缺陷数据集划分为用于训练的训练集、用于验证的验证集以及用于测试的测试集。
步骤2:数据集进行预处理。
S2.1:YOLOv5通过对CutMix数据增强进行优化得到了Mosaic数据增强方案,CutMix数据增强使用两张图像进行随机缩放和剪裁并乱序组合成一张新的图像,而Mosaic数据增强则是使用4张图像进行该操作,相当于变相加大了训练时的批量大小,在优化了训练效果的同时还降低了显卡内存的消耗,效果如图2所示;
S2.2:通过比较了几种图像预处理方法后采用了效果较好的线性对比度增强方法来对数据集进行预处理,此方法适用于图像的灰度值范围较小,导致部分输入图像整体较暗或较亮的情况,效果如图3所示。
步骤3:构建基于改进YOLOv5s模型的钢材表面缺陷检测网络模型。
S3.1:对主干网络进行优化,原模型骨干网络的主干Bottleneck网络替换为更为轻量的Ghost Bottleneck网络,充分利用Ghost Bottleneck模块的图像高维特征提取功能,充分利用特征映射的信息冗余特点,以提高特征提取能力。Ghost Bottleneck由两个Ghost模块堆叠而成,基于一组内在特征映射,采用一系列简单的线性变化来生成更多Ghost特征映射,映射充分揭示内在特征的信息。具体过程如下:
Y′=X*f+b (2)
式中,X为输入特征图,*为卷积操作,f为当前层的卷积核,Y′为m个通道的本征特征图,b为偏置项,对Y特征图的每一个通道进行线性运算输出t通道数位n的特征图,有:
Y
式中,y
S3.2:如图4(a)所示,Ghost Bottleneck模块由两个堆叠而成,第一个Ghost模块作为扩展层,其目的是增加通道数,第二个Ghost模块减少通道数,来与路径shortcut匹配,使用shortcut去链接两个Ghost模块的输入和输出,第二个Ghost模块不适用ReLu激活函数,其余层在每层之后都应用了批量归一化(BN)和Relu激活函数,Ghost Bottleneck中对于卷积步长stride=2的情况,如图4(b)所示,两个模块之间由一个stride=2的深度卷积进行连接。
S3.3:为了提高Yolov5对钢材缺陷特征的检测性能,在Yolov5的头部部分增添一个新的小尺度检测头,该头部份通过4倍下采样得到,可以生成一个更大(304×304)的特征图,与标准YOLOv5型号的8倍、16倍和32倍下采样检测头相比,该小尺度检测头可以利用浅层中更高分辨率(1200×1200)的特征图来捕获钢材表更精细的缺陷特征信息,改进的头部部分具有3个不同尺度的预测头,分别可用于检测微小(304×304)、小型(152×152)和大型(38×38)目标,可有效提高模型检测不同大小缺陷特征的能力,如图9所示。
S3.4:深度可分离卷积(DW Conv)是谷歌提出的一种轻量化卷积形式,其将完成的卷积分为深度卷积与逐点卷积,当CBS模块在主干中通过下采样获得特征信息,在颈部通过上采样整合信息时,信息可能因为卷积操作丢失,而在特征提取时与融合网络中的深度可分离卷积则可以保留更多的特征信息,DW对特征层中的所有通道进行1×1的升维卷积,然后利用卷积运算获取所需的特征并降低网络参数,同时考虑通道数量和特征区域的大小变化,执行通道和区域的分离,如图5所示。本发明改进YOLOv5s的网络结构模型使用深度可分离卷积代替普通卷积,并在上采样引入重影模块,实现网络的轻量化操作,重影模块使用更少的参数来生成更多的特征并保持模型的准确性,降低计算量。重影模块具体结构如图6所示。
S3.5:在颈部特征融合层中添加融合注意力机制模块,该模块由CBAM与ECA-Net融合组成,其中,ECA-Net模块实现通道注意力,CBAM模块实现空间注意力,ECA-Net模块首先通过一维卷积学习全局平均池化处理过的特征,然后与更新后的通道权重与输入特征图相乘,生成新的特征图,然后,CBAM模块中的空间注意力模块SAM将ECA-Net模块生成的特征映射作为输入,生成空间注意特征映射,并将其添加到原始特征映射中,模拟残差结构,最后对求和后的特征映射使用Relu激活函数,生成具有双重注意机制的特征映射,通过将CBAM-ECA注意力模块集成到网络结构中,可以有效地消除复杂背景地影响,可以从复杂背景中获取钢材缺陷重要特征信息,有效地增加了模型地鲁棒性,提高模型的识别能力。
S3.6:当目标网络的预测框与真实框没有交集的时候,IoU Loss会影响网络导致其训练无法进行,当网络真实框和目标框呈现出包含关系的时候,GIoU和IoU的损失值是一样的,代表这时候GIoU Loss和IoU Loss是相同的,没有办法呈现出两框的相对位置关系。针对该问题,改用DIoULoss作为回归损失函数。其公式如下:
式中,b和b
S3.7:上述改进YOLOv5s的网络结构模型包括用于特征提取的骨干部分、用于特征融合的颈部部分和用于目标检测的头部部分。骨干网络部分样本经过Focus切片、卷积操作得到特征图,在第3层开始连续经过3个Ghost Bottleneck模块处理,输出目标尺度特征图,在第5层引入注意力机制CBAM-ECA模块,随后再次利用3个Ghost Bottleneck模块进行特征下采样,通道数变为原来的两倍,随后再次添加注意力机制CBAM-ECA模块,最终完成缺陷特征提取,特别地,在颈部特征融合层中增加注意力CBAM-ECA模块,突出钢材表面缺陷的关键信息,具体网络结构如图9所示。
步骤4:使用所述训练集对改进的YOLOv5网络模型进行训练,获得轻量化YOLOv5网络模型。
S4.1:将数据集按照8:2的比例划分为训练集和测试集,实验硬件配置使用IntelCore i5-7300HQ@2.50GHz处理器、NVIDIA GTX 1050,4G显存GPU,内存16G,操作系统为Windows 10,开发平台使用Pycharm,编程语言为Python,深度学习的框架为Pytorch,GPU加速库为CUDA10.2;
S4.2:batch_size设置为16,初始学习率lr
步骤5:对基于改进YOLOv5钢材表面缺陷检测模型进行评价。
S5.1:选取目标检测领域最常用的指标查准确率(Precision)、召回率(Recall)、平均精度(AP)、均值平均精度(mAP)以及检测速度进行评估。R
S5.2:本实例实验结果与常规YOLOv5进行比对如表1所示。
表1
由表1可以看出,轻量化YOLOv5模型的参数数量仅为其他模型的三分之一左右,推理时的FPS也提高接近于两倍,这是由于Ghost Bottleneck对于特征图新颖的处理方式,降低了计算复杂度,轻量化YOLOv5模型可以更好地适应于工业生产中对钢材表面缺陷检测的实时性需求,所需的计算量大大降低,具有一定的工业生产实用性,图7和图8为训练的准确率、召回率和mAP。
- 一种基于改进YOLOv5的钢材表面缺陷检测方法
- 一种基于改进YOLOv5算法的带钢表面缺陷检测方法