前言
此前出了目标改进算法专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读最新目标检测算法论文,帮助大家解答疑惑。解读的系列文章,本人已进行创新点代码复现,有需要的朋友可关注私信我。
一、摘要
针对在工业场景下螺纹钢表面缺陷检测精度低、漏检和误检率高等问题,提出了一种改进YOLOv5的螺纹钢表面缺陷检测算法。改进YOLOv5算法中,融合多空间金字塔池化模块(M-SPP),优化网络,通过增加网络的深度加强特征的提取,可以一定程度上提高检测精度;添加改进的空间和坐标注意力模块(SCA),进一步区分空间领域不同像素之间的权重关系,更加关注感兴趣的区域,减小非必要的区域权重,提高模型对小目标缺陷的关注度;使用双采样过渡模块(TB)进行下采样,减少重要特征的丢失,获取更多特征信息;利用k-means++算法重聚类锚框,生成的预设锚框更适应缺陷的不同尺度大小,提高算法的检测精度。通过在螺纹钢表面缺陷数据集上的实验结果表明,改进后的YOLOv5算法对螺纹钢表面缺陷检测具有良好的检测性能,优于其他对比的算法。改进YOLOv5算法的AP50达到97.6%,相对于YOLOv5算法提高了3.2%,其他各项指标均有涨点,在保持原来的检测速度基本不变的情况下,精准地检测螺纹钢表面缺陷。
二、网络模型及核心创新点
个人解读:这篇中文EI期刊的文章,没有直接像之前的文章一样使用别人的模块,进行堆叠,而是对已有模块进行了有效改进和创新。其主要贡献利用残差堆叠的思想,对主干网络中的SPP模块做了改进,改进后的M-SPP(multi-spatial pyramid pooling)拥有更密集的残差结构,通过增加网络的深度加强特征的提取,这样的方法可以一定程度上提高准确率。 (2) 改进了CA(coordinate attention)注意力,改进后的注意力SCA更加关注空间不同像素点之间的权重,对螺纹钢的小目标缺陷有明显的提升。 (3) PANet中下采样是隔点采样,会丢失掉一部分重要信息,为了尽量获得下采样更多的重要信息,使用了TB (transiton block)过渡模块进行下采样。
1.主干网络改进
2.注意力机制改进
3.TB过渡模块
4.k-means++重聚类Anchors
三、应用数据集
本文使用工业相机搭建的实验平台对工业上缺陷螺纹钢拍摄采集图片,因为缺陷螺纹钢的数量有限,使用工业相机共拍摄了1 047张图片,包含了螺纹钢表面3种缺陷,分别是锈迹、划伤、结疤,通过数据增强方法对图片旋转、镜像、翻转、缩放、添加噪声和标签平滑等,数据集扩充约4 500张图片,部分数据集如下图所示。
四、实验效果(消融实验)
本文使用根据IOU阈值划分的Avarage Precission,IOU(AP,AP@50,AP@75)和根据目标像素大小划分的Avarage Precission,Area作为评价指标。通过在相同数据集下,使用改进的不同模块分别进行实验,YOLOv5作为基础网络,最后同时添加所有使用的方法,实验结果见下表。
由此表明,加入不同的方法对螺纹钢缺陷检测都有一定的效果,同时加入所有方法最优,也体现了在加强网络特征提取和SCA注意力更加能够捕获全局信息,提高了网络的检测精度。
五、实验结论
在YOLOv5网络的基础上,使用k-means++算法对初始的anchor重聚类,很大程度减少网络的计算量,利用通过在主干网络中加入M-SPP模块,多尺度对特征堆叠融合,增加深度来提高准确率,缓解梯度消失问题,并提出了空间和坐标注意力(SCA),将其融合到主干网络和PANet之间的三个前向通道中,网络更加关注螺纹钢小缺陷位置,有效解决了小目标缺陷的漏检问题,并使用TB模块对特征图下采样,获得了更多有效特征,提高了检测精度。 本文的方法通过加强特征融合人和使用改进的注意力机制,对工业上螺纹钢表面缺陷精确检测,AP@50达到了97.6%,相对于YOLOv5提高了3.2%。
六、投稿期刊介绍
注:论文原文出自胡欣,周运强,肖剑,杨杰.基于改进YOLOv5的螺纹钢表面缺陷检测[J/OL].图学学报. https://kns.cnki.net/kcms/detail//10.1034.T.20230106.1212.003.html
解读的系列文章,本人已进行创新点代码复现,有需要的朋友可关注私信我。