【目标检测论文解读复现NO.27】基于改进YOLOv5的螺纹钢表面缺陷检测

news2024/12/26 23:46:55
前言
此前出了目标改进算法专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读最新目标检测算法论文,帮助大家解答疑惑。解读的系列文章,本人已进行创新点代码复现,有需要的朋友可关注私信我。

一、摘要

针对在工业场景下螺纹钢表面缺陷检测精度低、漏检和误检率高等问题,提出了一种改进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

解读的系列文章,本人已进行创新点代码复现,有需要的朋友可关注私信我。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/183062.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【工程化之路】Node require 正解

require 实现原理 流程概述 步骤1:尝试执行代码require("./1"). 开始调用方法require.步骤2:此时会得到filename,根据filename 会判断缓存中是否已经加载模块,如果加载完毕直接返回,反之继续执行步骤3&…

python图像处理(laplacian算子)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 和之前的prewitt算子、sobel算子不同,laplacian算子更适合检测一些孤立点、短线段的边缘。因此,它对噪声比较敏感,输入的图像一定要做好噪声的处理工作。同时,laplacian算子设计…

Leetcode 03. 无重复字符的最长子串 [C语言]

目录题目思路1代码1结果1思路2代码2结果2该文章只是用于记录考研复试刷题题目 Leetcode 03: 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所…

尚医通-OAuth2-微信登录接口开发(三十一)

目录: (1)微信登录-OAuth2介绍 (2)前台用户系统-微信登录-准备工作 (3)微信登录-生成微信二维码-接口开发 (4)微信登录-生成验证码-前端整合 (5&#xf…

Telerik DevCraft Ultimate R1 2023

Telerik DevCraft Ultimate R1 2023 Kendo UI R1 2023-添加新的Chip和ChipList组件。 KendoReact R1 2023(v5.11.0)-新的PDFViewer组件允许用户直接在应用程序中查看PDF文档。 Telerik JustLock R1 2023-Visual Studio快速操作菜单现在可以在创建通用…

蓝桥杯重点(C/C++)(随时更新,更新时间:2023.1.29)

点关注不迷路,欢迎推荐给更多人 目录 1 技巧 1.1 取消同步(节约时间,甚至能多骗点分,最好每个程序都写上) 1.2 万能库(可能会耽误编译时间,但是省脑子) 1.3 蓝桥杯return 0…

【数据库-通用知识系列-01】数据库规范化设计之范式,让数据库表看起来更专业

我们在设计数据库时考虑的因素包括读取性能,数据一致性,数据冗余度,可扩展性等,好好学习数据库规范化的知识,设计的数据库表看起来才专业。 范式一览 “键”理解: 超键:在关系中能唯一标识元组…

送什么礼物给小学生比较有纪念意义?适合送小学生的小礼物

送给小学生的礼物哪种比较有意义呢?送给学生的礼物,基本上是对学习有所帮助的,但是像送钢笔、练习册这些,有一部分学生是抗拒的,作为大人就是希望对视力、对成长有用的东西,我认为保护视力是现在许多家庭的…

isNotEmpty() 和 isNotBlank() 的区别,字符串判空, StringUtils工具包 StringUtil工具类,isEmpty() 和 isBlank() 的区别

目录1.StringUtils 和 StringUtilStringUtils 的依赖:StringUtils 的用法:StringUtil 工具类2. isNotEmpty() 和 isNotBlank()1.StringUtils 和 StringUtil 注:StringUtils 和 StringUtil 的区别(StringUtil为自定义工具类&#…

以表达式作为template参数

目录 一.template参数的分类&#xff1a; 二.非类型参数与默认参数值一起使用 三.应用 一.template参数的分类&#xff1a; ①.某种类型&#xff1a; template<typename T>; ②.表达式(非类型)&#xff1a; template<int length,int position>; 其中length…

Liunx中shell命令行和权限的理解

文章目录前言1.shell外壳的理解2.关于权限理解1.Linux下的用户2.角色划分3.文件和目录的权限3.粘滞位3.总结前言 Linux中的操作都是通过在命令行上敲指令来实现的&#xff0c;本文将简单的介绍Linux中的外壳程序shell以及浅谈一下对Linux中的权限理解。 1.shell外壳的理解 Lin…

微信小程序开发(一)

1. 微信小程序的开发流程 2. 注册小程序 小程序注册页&#xff1a;https://mp.weixin.qq.com/wxopen/waregister?actionstep1 如已注册&#xff0c;直接登录 小程序后台 https://mp.weixin.qq.com/ 即可。 在小程序后台的 【开发管理】→ 【开发设置】下可以查看AppID&…

算法训练营DAY45|322. 零钱兑换、279.完全平方数

两道题思路上有相似之处&#xff0c;都是求得最少的种类方法&#xff0c;也就是说在完全背包里给定容量时&#xff0c;用最少的物品去装满背包。它和用最多的方法去装满背包也有一些相似&#xff0c;也就是说两者实际上是互通的。 322. 零钱兑换 - 力扣&#xff08;LeetCode&a…

HTML零散知识

1、代码规范与思路 参考凹凸实验室代码规范&#xff1a;Aotu.io - 前端代码规范 CSS编写顺序的思路 先确定盒子本身是如何布局 position: absolutefloat: left/rightdisplay: flex 盒子的特性和可见性 display: block/inline-block/inline/nonevisibility/opacity 盒子模型…

【Pytorch项目实战】之生成式模型:DeepDream、风格迁移、图像修复

文章目录生成式模型&#xff08;算法一&#xff09;深度梦境&#xff08;DeepDream&#xff09;&#xff08;算法二&#xff09;风格迁移&#xff08;Style Transfer&#xff09;&#xff08;算法三&#xff09;图像修复&#xff08;Image Inpainting&#xff09;&#xff08;一…

(13)工业界推荐系统-小红书推荐场景及内部实践【用户行为序列建模】

&#xff08;1&#xff09;工业界推荐系统-小红书推荐场景及内部实践【业务指标、链路、ItemCF】 &#xff08;2&#xff09;工业界推荐系统-小红书推荐场景及内部实践【UserCF、离线特征处理】 &#xff08;3&#xff09;工业界推荐系统-小红书推荐场景及内部实践【矩阵补充、…

Docker搭建LNMP+Wordpress

一、服务器环境 容器操作系统IP地址主要软件nginxCentOS 7172.18.0.10Docker-NginxmysqlCentOS 7172.18.0.20Docker-MysqlmysqlCentOS 7172.18.0.20Docker-Mysql 二、Linux系统基础镜像 systemctl stop firewalld setenforce 0 docker pull centos:7 #从公有仓库中下载cento…

cubeIDE开发, stm32人工智能开发应用实践(Cube.AI).篇三

一、cube.AI实际项目应用 接篇二&#xff0c;前文都是采用FP-AI-SENSING1案例和配套的B-L475E-IOT01A开发板来阐述的&#xff0c;而实际项目中&#xff0c;我们都是基于自身项目硬件平台来训练模型及部署模型的&#xff0c;我们仅仅需要cube.AI软件包&#xff08;作为可调用库&…

技术大佬说我对「压测目标」的分析不够细

前言 前面总结压测类型的时候有简单描述了不同压测类型的从准备-脚本设计-压测的整体过程&#xff0c;但是对于压测对象没有更深入的进行分析总结&#xff0c;导致在压测执行结束后&#xff0c;出现压测结果不准确的情况。所以这边就压测的对象进行单独的总结分析。 在执行压测…

lego-loam学习笔记(三)

前言&#xff1a; 对于lego-loam中点云聚类源码的学习&#xff0c;它使用了广度优先算法&#xff0c;并且使用了数组双指针技巧。 主要分为两个部分&#xff1a; 第一个是labelComponents函数&#xff0c;它的功能是为每个点及其相邻的4个点运算角度&#xff0c;在对角度小于…