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

2024-04-30 22:39杨硕
关键词:钢材类别聚类

杨硕

苏交科集团检测认证有限公司 江苏 南京 211112

在我国制造业中,钢材生产是国民经济发展的重要基础产业,而钢材表面缺陷检测是决定钢材质量的重要因素。在实际生产中,由于钢材表面存在不同程度的锈蚀、划痕、压痕、凹陷等缺陷,导致钢材表面检测过程中的缺陷图像分辨率低、特征不明显、种类较多且变化大,传统的人工检测存在效率低、准确率低、检测结果不直观等问题。

1 YOLOv5目标检测算法

1.1 网络结构

YOLOv5网络结构包括Neck特征融合、输入端、YOLO检测头、Backbone骨干网络,其中输入端基本操作是对图片进行裁剪处理,将图片拼接为指定分辨率的图像;Backbone骨干网络主要对图片进行切片处理,将3通道分为为12通道,然后经过32个卷积层,将图片转换为32通道,扩增图片通道能够增加基础的深度和网络宽度,有利于减少参数和降低计算难度,提高算法运行效率;Neck由路径聚合网络和特征金字塔组成,其主要用于获取图片特征信息[1-2];YOLO检测头针对检测目标产生检测层,每个检测层均有3个锚框对图片进行检测,结果包括对象信息(obj)、定位信息(x,y,w,h)和类别信息(cls)。

1.2 检测原理

YOLOv5算法检测钢材表面缺陷时,采用PAN特征融合获取不同尺度检测特征,并输出S×S的特征网络预测框。

1.3 损失函数

置信度损失计算公式如下:

分类损失计算公式如下:

定位损失融合了完全交并比,其考虑了真实框和预测框的重叠面积、长宽比和中心点距离,计算公式如下:

2 YOLOv5算法改进

2.1 Fuzzy C-means聚类anchor算法

YOLOv5算法聚类采用K-means算法,该算法属于硬聚类算法,样本点相似度的衡量通常采用欧氏距离,样本点欧氏距离越大,样本相似度越小,并且会将其归为某种类型,具有“非此即彼”性质,聚类精度相对较低[4]。而模糊c-均值聚类算法(fuzzy c-means algorithm,FCM)基于像素对彩色图像进行分割,可以进一步提高聚类算法的稳定性和速度。此外,该算法通过优化样本函数获得其聚类隶属度,该值越大样本所属类概率越大,聚类算法如下所示,其中m>1,该值主要用于控制聚类模糊度,通常情况下取值为2。

FCM聚类迭代更新终止条件如下:

迭代隶属度无变化或者变化较小时,即达到最优状态。

2.2 引入多谱通道注意力机制

将注意机制引入到计算机视觉信息加工中,既能有效地利用有限的计算资源实现对重要对象的识别,又能满足人类视觉认知需求。多谱通道注意力,基于频域信道注意力思想,将通道表征问题从一个新的视角进行研究,将其作为频率分析压缩过程,在保证通道整体表达性能的前提下,对通道的信息进行压缩编码[5]。

FcaNet注意力机制如上图所示,首先从通道维度角度对输入特征X进行划分,并将其表示为,其中其次对划分的每个部分进行离散余弦变换(DCT)频率分量计算,并根据计算结果获取每个划分部分逻辑变量(Freq)向量:

根据以上运算结果,可以将多谱通道注意力框架改写为式(13),由式(12)(13)可知,本文将全局平均池化方法进行优化,获得多频率分量框架,以此来丰富压缩后的通道信息,并直观的表达该信息。

2.3 引入解耦检测头

传统目标检测技术主要依赖单一检测器预测目标的位置和类别,然而这种方法存在一定的局限性,无法充分利用不同目标之间的关联信息。为了解决这个问题,本文采用了解耦检测头的策略。分离式检测将目标定位与类别预测分别划分为两个单独的任务,并采用各自的神经网络模块执行相应功能。这样的策略使得网络更具适应性,从而优化了对目标特征的识别能力,进而提高了检测的准确性和泛化性能。

具体来说,解耦检测头的构成可以分为两大主要部分:头部位移与类别分离头部。位置解耦头主要负责预测目标空间相关信息,包括边界框坐标和尺寸;而类别解耦头的主要职责是预测目标物体的类别,简而言之,它确定目标物体所属的类别。独立处理这两个任务有助于网络更加专注地学习各个方面的特性,进而提高整体的检测效能。

此外,解耦检测头能够巧妙地结合各类损失函数进行优化训练。在优化解耦头训练过程中,可采用平衡交叉熵损失函数,以确保各类样本在训练过程中获得同等的关注;而平滑 L1 损失函数适用于训练位置解耦模块,以保证目标位置的准确预测。通过运用这种灵活的损失函数组合策略,能够显著增强模型的泛化能力和稳定性。

在YOLOX算法中采用解耦头可以进一步提高算法检测精度和收敛速度。而YOLOv5采用的耦合头为回归和分类任务不分离类型,在目标检测中回归任务和分类任务存在冲突问题,而解耦检测头(Decoupled Head)突出在一个解字,就是把特征图用不同的分支分开处理,

3 实验与结果分析

3.1 实验数据集

以某大学发布的NEU-DET热轧带钢表面数据集为例,获取5种钢材常见故障,包括划痕、麻点、夹杂、斑块和压入氧化皮,以上缺陷均获取300张尺寸为200×200的图像。实验数据集共1500张钢材表面缺陷图像,将所有图像按照2:8比例划分为测试集和训练集。

实验操作系统采用ubuntu,软件环境为CUDNN9.1和CUDA10.2;编程语言采用Python;开发框架采用PyTorch。

3.2 生成anchor实验

YOLOv5算法anchor框主要从COCO数据集中获取,由于钢材表面缺陷与COCO数据集的真实框存在一定差异,需要生成9组anchor,并进行两次聚类,因此设置YOLOv5算法聚类中心数为9,利用FCM生成9个anchor,最后取聚类中心和样本点交并比最大值的均值作为聚类结果,

3.3 实验结果分析

钢材表面缺陷检测通常采用平均精度均值(mAP)、精准率(Pre)和召回率(Rec)等指标评价算法性能。其中mAP主要衡量所有缺陷类别的平均精度;Pre用于描述正样本在所有实验样本中占据的比例;Rec用于描述正样本在所有正样本类别汇总占据的比例。计算公式如下:

实验采用mAP作为算法评价指标,实验检测结果如表1所示。

从表1中可以看出,在YOLOv5算法的基础上,引入FCM算法后,刚才表面缺陷检测精度mAP由0.80提升至0.82,提升幅度约为1.6个百分点,而在检测速度方面基本无明显的差异,这是因为算法的网络结构并未改变,引入FCM算法只能改变先验框聚类方式,并且FCM算法并未嵌入网络将先验框加入训练中,不会增加算法参数量,因此缺陷检测速度并无明显变化;同时引入FCM和解耦头的情况下,检测精度mAP提升至0.83,但是检测速度由一定程度下降。

与为改进YOLOv5算法相比,引入FCM算法和解耦头后,改进YOLOv5算法在不同的缺陷检测精度方面均有一定程度提升,尤其是在检测结果精度较差的压入氧化皮缺陷,改进算法检测精度可以达到73%,由此可见改进后的YOLOv5算法检测精度较高,可以满足刚才表面缺陷检测实时性要求。

4 结论

针对钢材表面缺陷检测需求,提出了改进YOLOv5算法,利用FCM算法代替原始算法中的K-means算法,并采用解耦检测头实现定位任务和分类任务的分离,使不同的任务进入不同的卷积层,最后引入多谱通道注意力模块,获取更多的钢材表面缺陷特征信息。仿真实验结果表明,本文提出的改进算法可以快速、准确检测出钢材表面缺陷,尤其是在压入氧化皮缺陷检测方面,改进后的算法检测精度由一定幅度提升。

猜你喜欢
钢材类别聚类
承压设备用钢材使用焊接性探讨
钢材集中采购管理思考探究
基于DBSACN聚类算法的XML文档聚类
基于高斯混合聚类的阵列干涉SAR三维成像
钢材分类标号(一)
服务类别
一种层次初始的聚类个数自适应的聚类方法研究
论类别股东会
中医类别全科医师培养模式的探讨
自适应确定K-means算法的聚类数:以遥感图像聚类为例