SCI论文解读复现【NO.3】MSFT-YOLO:基于变压器的改进YOLOv5钢表面缺陷检测(代码已复现)

news2024/9/21 16:22:35

        此前出了目标检测算法改进专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读发表高水平学术期刊中的SCI论文,并对相应的SCI期刊进行介绍,帮助大家解答疑惑,助力科研论文投稿。解读的系列文章,本人会进行创新点代码复现,有需要的朋友可关注私信我获取。

一、摘要

随着人工智能技术的发展和智能化生产项目的普及,智能检测系统逐渐成为工业领域的热门话题。作为计算机视觉领域的一个基础性问题,如何实现工业中的目标检测,同时兼顾检测的准确性和实时性,是智能检测系统发展中的一个重要挑战。钢铁表面缺陷的检测是物体检测在工业中的重要应用。正确快速地检测表面缺陷可以大大提高生产率和产品质量。为此,本文引入了MSFT-YOLO模型,该模型是在单级检测器的基础上改进的。针对图像背景干扰大、缺陷类别易混淆、缺陷尺度变化大、小缺陷检测效果差的工业场景,提出MSFT-YOLO模型。通过在主干和检测头中加入基于Transformer设计的TRANS模块,使特征与全局信息相结合。通过组合多尺度特征融合结构对不同尺度的特征进行融合,增强了检测器对不同尺度目标的动态调整。为了进一步提高MSFT-YOLO的性能,我们还引入了大量有效的策略,如数据扩充和多步训练方法。在NEU-DET数据集上的测试结果表明,MSPF-YOLO能够实现实时检测,MSFT-YOLO的平均检测准确率为75.2,较基线模型(YOLOv 5)提高约7%,较Faster R-CNN提高约18%,具有一定的优势和启发性。  

二、网络模型及核心创新点

 MSFT-YOLO的总体原理图如图所示,主要包括三个部分:骨干网部分、特征增强部分和预测部分。在第一部分主干中,我们没有使用YOLOv5原有的卷积层,而是主要使用了自主开发的TRANS结构,通过将其组装到CSPDarknet中来扩展卷积的接收域。TRANS为检测提供了具有全局信息的多层次特征,增强了MSFT-YOLO对钢铁表面背景特征的识别能力。在网络的颈部,用简单有效的BiFPN结构代替PANet对骨干网的多层次特征组合进行加权,并将TRANS模块集成到预测头中,替代原有的预测头,挖掘了YOLOv5自注意的预测潜力,能够在高密度场景中准确定位目标,并能处理目标的大尺度变化。TRANS的具体细节见第3.2节。

三、应用数据集

论文中使用的主要数据集NEU-DET是东北大学发布的表面缺陷数据库,收集了热轧带钢的六种典型表面缺陷,包括银纹、夹杂物、补丁、麻面、轧制氧化皮和划痕。该数据库包括6种不同类型的典型表面缺陷的1800幅灰度图像,每种缺陷包含300个样本。

 四、实验效果(部分展示)

消融研究的结果。从实验数据中可以观察到,通过在主干处增加TRANS模块,对两种较为明显的缺陷斑和划痕的检测有了很大的提高,而BiFPN对裂纹斑、麻面、轧入氧化皮和划痕的检测效果更大,这些缺陷斑、麻面、轧入氧化皮和划痕的bon均大于3%。通过分析检测结果,TRANS使模型能够适应更宽范围的纵横比,解决了缺陷分布不均匀的样品问题,如传感器2022、22、3467 15个中的13个表面凹陷、滚入氧化皮和划痕,所有这些都有超过3%的奖金。通过对检测结果的分析,TRANS使模型能够适应更宽的长径比范围,解决了缺陷长径比分布不均匀的样品问题。同时,由于缺陷经常以独立和不规则形状的组合出现,TRANS对严重干扰、扰动和区域移动的高鲁棒性以及整合高级视觉语义信息的能力使得能够收集与较大邻域中的缺陷特征相关的信息,MSFT-YOLO集成了TRANS模块和BiFPN模块,能够捕捉模型中不同位置的信息,这再次提高了划痕和麻点表面两个类别的检测精度。BiFPN结构使模型能够适应更大的缺陷尺寸变化,解决了缺陷尺寸分布差异大的问题。我们的方法以YOLOv 5为基线进行了改进,虽然检测速度降低了40%,但仍然具有实时检测的潜力,检测准确率从0.682提高到0.757,检测准确率有了较大的提高。通过对检测样本的分析,我们加入TRANS模块和融合BiFPN对模型精度的提高起到了积极的作用,可以看出,我们的方法结合全局特征进行多层次特征融合,对于背景复杂、目标尺度差异大的工业场景中的缺陷检测效果非常明显。

 对比实验结果。表2显示了我们在NEU-DET数据集上评价的模型结果。在工业场景中,不仅目标检测任务的准确性很重要,而且检测效率也是衡量其能否在工业场景中投入使用的因素之一。只有在保证检测结果和检测速度的前提下,才能真实的做出正确的判断,满足工业生产的使用要求。因此,在本部分的论述中,将使用平均精度(mAP)作为模型和每秒帧数(FPS)来对缺陷检测模型进行综合评价。

 五、实验结论

本文设计了一种基于YOLOv 5的钢材表面缺陷检测仪MSFT-YOLO。MSFT-YOLO结合了计算机视觉中的一些现有技术,包括Transformer编码块、多层次特征融合、数据扩展和一些训练技术。针对缺陷图像背景杂乱、缺陷类别易混淆的问题,提出在主干和检测头中增加基于Transformer的TRANS模块。针对缺陷尺度变化大、小缺陷检测效果差的问题,提出了BiFPN结构,通过融合不同尺度的特征,增强了检测器对不同尺度物体的调节能力。通过在NEU-DET数据集上的测试,MSFT-YOLO达到了0.752mAP,较基线提高了7.5%,FPS为30.6,表明该算法达到了很好的准确率,同时也具有实时检测的潜力,是一种具有实用价值的目标检测算法。在未来的研究中,将向模型中引入更丰富的数据集以增强其泛化能力,并对模型进行压缩以更好地适应工业场景下的实时监控。在实验过程中,我们在钢材表面缺陷数据处理和检测算法设计方面积累了大量经验,希望本文能对更多钢材表面缺陷的开发人员和研究人员有所帮助。

六、投稿期刊介绍

注:论文原文出自MSFT-YOLO: Improved YOLOv5 Based on Transformer for
Detecting Defects of Steel Surface. 本文仅用于学术分享,如有侵权,请联系后台作删文处理。

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

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

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

相关文章

HCIP第三天ospf星型和全连实验

HCIP文章目录 文章目录HCIP文章目录ospf实验实验要求拓扑图R1/4/5为全连的MGRE结构所有私有网段可以互相通讯ospf实验 实验要求 1、R6为ISP只能配置ip地址,R1-5的环回为私有网段 2、R1/4/5为全连的MGRE结构,R1/2/3为星型的拓扑结构,R1为中心…

stm32平衡小车(1)---蓝牙模块及其bug处理

基于stm32c8t6开发板 一,蓝牙模块HC-05 1.外观 2.接线方式 TX----->PB10 RX----->PB11 VCC----->3.3V GND---->GND 3.AT模式 不用烧录代码,直接将c8t6和HC-05相连接,通过XCOM或者SSCOM软件便可以进入调试模式&a…

MySQL常见深入优化

一、分页查询优化 1. SQL语句准备 CREATE TABLE employees (id INT ( 11 ) NOT NULL AUTO_INCREMENT,name VARCHAR ( 24 ) NOT NULL DEFAULT COMMENT 姓名,age INT ( 11 ) NOT NULL DEFAULT 0 COMMENT 年龄,position VARCHAR ( 20 ) NOT NULL DEFAULT COMMENT 职位,hire_ti…

(Django+redis双机配置)ubuntu虚拟机配置redis,window中django访问

目录 Ubuntu虚拟机配置redis 进入root用户 配置redis服务 开启端口 1.设置密码 2.关闭只允许本机访问 3.关闭保护模式 双向ping测试 ubuntu开启SSH服务 Django中 Django中settings配置redis Ubuntu虚拟机配置redis 进入root用户 首先要进入root用户 后续一定保证要…

Spring Boot内存泄露,排查

背景 为了更好地实现对项目的管理,我们将组内一个项目迁移到MDP框架(基于Spring Boot),随后我们就发现系统会频繁报出Swap区域使用量过高的异常。笔者被叫去帮忙查看原因,发现配置了4G堆内内存,但是实际使…

利用kafka发送系统

kafka是一种消息队列框架。 如果不用消息队列框架,就需要用阻塞队列来实现发送系统消息和系统通知 1.阻塞队列 阻塞队列是一种用来解决进程间通信的方式 阻塞队列依靠自带的两个方法put(往队列里面存数据)和take(从队列里面取数据) 2.Kafka kafka最早只是用来发…

CV | 计算机视觉中数据集的txt,csv数据预处理代码及实例

本文使用同一个数据集进行数据预处理练习,其中包含了人脸图片文件夹,CSV文件,txt文件。 数据集主要是针对于人脸照片进行年龄以及性别的预测,在导入模型签的一些简单的数据处理。 1.对人脸图片文件夹,txt文件的操作 …

详解 Redis 中的 RDB 快照

内存快照。所谓内存快照,就是指内存中的数据在某一个时刻的状态记录。这就类似于照片,当你给朋友拍照时,一张照片就能把朋友一瞬间的形象完全记下来。 对 Redis 来说,它实现类似照片记录效果的方式,就是把某一时刻的状…

1D/2D动画混合

1、动画混合 游戏动画中常见的功能就是在两个或者多个相似运动之间进行混合,比如: 根据角色的速度来混合行走和奔跑动画根据角色的转向来混合向左或向右倾斜的动作 可以理解是高级版的动画过渡,之前的动画过渡是处理两个不同类型动作之间切…

【ROS】—— ROS通信机制——参数服务器(四)

文章目录前言1. 参数服务器理论模型2. 参数操作(C)2.1 增加参数2.2 参数修改2.3 参数的获取2.3.1 ros::NodeHandle2.3.2 ros::param2.4 参数的删除3. 参数操作(python)3.1 增加参数与修改参数3.2 获取参数3.3 删除参数前言 📢本系列将依托赵虚左老师的ROS课程&#…

九联UNT403G/UNT413G_国科GK6323芯片_5621ds无线wifi_免拆卡刷固件

九联UNT403G/UNT413G_国科GK6323芯片_5621ds无线wifi_免拆卡刷固件。 固件特点: 1、修改dns,三网通用; 2、开放原厂固件屏蔽的市场安装和u盘安装apk; 3、无开机广告,无系统更新,不在被强制升…

判断成绩-C语言实现

任务描述 本关任务:判定学生成绩。 相关知识 if-else 分支语句基本用法 C 语言提供了 if-else 分支语句用于实现程序的选择结构。 基本格式如下: if ( 表达式 ) 语句A else 语句B 基本流程图如下: 图1 if-else 分支语句流程图 从上面的…

单相全桥逆变原理及仿真实验

前言 一、单相全桥逆变器组成原理 1.全桥逆变电路拓扑结构 2.单相逆变器的SPWM调制方式 二、单相全桥逆变器仿真 1.SPWM调制波仿真 2.全桥逆变仿真 三、SPWM单片机程序实现 1.CubeMX配置 2.SPWM正弦表数据生成 3.Keil5代码 4.protues仿真观测波形 前言 通常把直流电变成…

力扣 # 1323. 6 和 9 组成的最大数字 JAVA实现

力扣 1323. 6 和 9 组成的最大数字 给你一个仅由数字 6 和 9 组成的正整数 num。 你最多只能翻转一位数字,将 6 变成 9,或者把 9 变成 6 。 请返回你可以得到的最大数字。 难度:简单 示例 1: 输入:num 9669 输出&a…

基于采样的规划算法之动态规划方法

经过前面对RRT的介绍,我们发现基于采样的规划算法与基于图搜索的规划算法都是通过对路径树进行拓展新节点,来找到起点到终点的路径解。RRT家族通过随机采样来生成这棵路径树,随机采样会面临采样低效的问题——大部分采样的新节点都无益于提升路径解的最优性。动态规划基于特…

JS对数组的操作详解

目录 shift 方法 unshift 方法 reverse方法 sort方法 reduce方法 concat方法 join方法 push方法 pop方法 slice方法 splice方法 forEach方法 map方法 filter方法 every方法 some方法 indexOf方法 find方法 includes方法 在这里总结一下JS的数组方法&#xf…

JDBC基本使用

文章目录一、JDBC技术1.1、JDBC概念1.2、JDBC作用1.3、JDBC工作原理1.4、JDBC工作流程二、使用JDBC访问数据库2.1、创建Maven项目2.2、添加数据库依赖2.2.1、mysql依赖2.2.2、oracle依赖2.3、编写代码2.3.1、加载驱动2.3.2、通过DriverManager获取connection连接2.3.3、执行SQL…

java中线程安全问题及解决方法、线程状态、线程间通信(线程等待唤醒机制)

线程安全 概述: 多线程访问了共享数据,此时会产生冲突(如:在多个线程中执行售卖货物的业务,要求是某个货被某个线程售卖后,其他线程应该不再可以售卖此个货,但是默认被某个线程售卖后&#xf…

JVM 教程

jvm教程jvm概述前言JVM 定义JVM 的作用查看自己的 JVMJVM,JRE 和 JDK 联系小结JVM 整体架构目标JVM 整体架构类加载子系统运行时数据区执行引擎小结JVM 常用参数配置IntelliJ IDEA 添加运行参数JVM 参数:跟踪垃圾回收JVM 参数:跟踪类的加载与…

手把手代码实现五级流水线CPU——第二篇:分支预测流水线

系列文章目录 第三篇:流水线控制逻辑 第一篇:初级顺序流水线 文章目录系列文章目录一、流水线硬件结构二、流水线各阶段的实现实现原理一、流水线硬件结构 取指阶段 PC增加器:用来计算下一条指令的地址valP 译码阶段 一次译码操作读出俩个寄…