一种基于YOLO改进的高效且轻量级的表面缺陷检测网络, NEU-DET和GC10-DET涨点明显

💡💡💡本文摘要:一种基于YOLO改进的高效且轻量级的表面缺陷检测, 在NEU-DET和GC10-DET任务中涨点明显

目录

1.轻量且高效的YOLO

1.1 SCRB介绍

1.1.1 ScConv介绍

 1.2 GSConvns

 1.3 od_mobilenetv2_050

1.4  对应yaml

2.实验结果

3.源码获取


1.轻量且高效的YOLO

轻量且高效的YOLO网络结构

1.1 SCRB介绍

 其实ScConv和Bottleneck的基础上,和C3进行结合。

1.1.1 ScConv介绍

原文链接:Yolov8引入CVPR2023 SCConv:空间和通道重建卷积,即插即用,助力检测_scconv 2023-CSDN博客

  

 论文:https://openaccess.thecvf.com/content/CVPR2023/papers/Li_SCConv_Spatial_and_Channel_Reconstruction_Convolution_for_Feature_Redundancy_CVPR_2023_paper.pdf

         卷积神经网络(CNN)已经实现在各种计算机视觉任务中表现出色,但这是以巨大的计算成本为代价的资源,部分原因是卷积层提取冗余特征。 在本文中,我们尝试利用特征之间的空间和通道冗余,针对 CNN 压缩,提出了一种高效的卷积模块,称为 SCConv(空间和通道重建卷积),以减少冗余计算,并促进代表性特征学习。 提出的 SCConv 由两个单元组成:空间重建单元(SRU)和通道重建单元(CRU)。 SRU利用分离重建方法来抑制空间冗余,而CRU使用分割-变换-融合策略来减少通道冗余。 此外,SCConv 是一个即插即用的架构单元,可以可以直接用来替代各种卷积神经网络中的标准卷积。 实验结果表明SCConv 嵌入式模型能够实现更好的效果
通过减少冗余特征来显着降低复杂性和计算成本来提高性能。

        SCConv 的结构包括了空间重建单元(SRU)和通道重建单元(CRU)。 下图显示了我们的 SCConv 模块添加在 ResBlock 中的确切位置 。

SRU结构: 

 CRU结构:

 1.2 GSConvns

YoloV8优化:轻量级Slim-Neck | 即插即用系列_slim-neck 是怎么改进-CSDN博客

 

 论文地址:https://arxiv.org/ftp/arxiv/papers/2206/2206.02424.pdf

github: GitHub - AlanLi1997/slim-neck-by-gsconv: Pytorch implementation of the 'Slim-neck by GSConv: A better design paradigm of detector architectures for autonomous vehicles'

 本文贡献:

  1. 引入了一种新方法 GSConv 来代替 SC 操作。该方法使卷积计算的输出尽可能接近 SC,同时降低计算成本;

  2. 提供了一种新的设计范式,即带有标准 Backbone 的 Slim-Neck 设计;

图2(a)和(b)展示了深度可分离卷积(DSC )和标准卷积(SC)的网络结构,但是深度可分离卷积这种设陷导致特征提取和融合能力比 SC 低得多。 

为了使 DSC 的输出尽可能接近 SC,引入了一种新方法——GSConv,使用 shuffle 将 SC 生成的信息(密集卷积操作)渗透到 DSC 生成的信息的每个部分。

     采用 GSConv 方法的 Slim-Neck 可缓解 DSC 缺陷对模型的负面影响,并充分利用深度可分离卷积 DSC 的优势。

 1.3 od_mobilenetv2_050

其实就是od_mobilenetv2_050替换了backbone

1.4  对应yaml

# YOLOv5 🚀 by Ultralytics, GPL-3.0 license# Parameters
nc: 80  # number of classes
depth_multiple: 0.33  # model depth multiple
width_multiple: 0.25  # layer channel multiple
anchors:- [10,13, 16,30, 33,23]  # P3/8- [30,61, 62,45, 59,119]  # P4/16- [116,90, 156,198, 373,326]  # P5/32# 0-P1/2
# 1-P2/4
# 2-P3/8
# 3-P4/16
# 4-P5/32# YOLOv5 v6.0 backbone
backbone:# [from, number, module, args][[-1, 1, od_mobilenetv2_050, [odconv4x mobilenetv2 050.pth.tar path, 4]], # 4[-1, 1, SPPF, [1024, 5]],  # 5]# YOLOv5 v6.0 head
head:[[-1, 1, GSConvns, [512, 1, 1]], # 6[-1, 1, nn.Upsample, [None, 2, 'nearest']],# 7[[-1, 3], 1, Concat, [1]],  # cat backbone P4 8[-1, 3, SCRB, [512, False]],  # 9[-1, 1, GSConvns, [256, 1, 1]], # 10[-1, 1, nn.Upsample, [None, 2, 'nearest']], # 11[[-1, 2], 1, Concat, [1]],  # cat backbone P3 12[-1, 3, SCRB, [256, False]],  # 13 (P3/8-small)[-1, 1, GSConvns, [256, 3, 2]], # 14[[-1, 10], 1, Concat, [1]],  # cat head P4 15[-1, 3, SCRB, [512, False]],  # 16 (P4/16-medium)[-1, 1, GSConvns, [512, 3, 2]], # 17[[-1, 5], 1, Concat, [1]],  # cat head P5 18[-1, 3, SCRB, [1024, False]],  # 19 (P5/32-large)[[13, 16, 19], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)]

2.实验结果

我们的方法在NEU-DET和GC10-DET上取得了更好的性能。具体指标见表一、表二。

NEU-DEU任务 

 GC10-DET任务PR result plot on NEU-DET

PR result plot on GC10-DET 

Visualization of detection results 

3.源码获取

可私信获取

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【mars3d】 graphic.bindPopup(inthtml).openPopup()无需单击小车,即可在地图上自动激活弹窗的效果。

实现效果:new mars3d.graphic.FixedRoute({无需单击小车,即可在地图上实现默认打开弹窗的激活效果。↓↓↓↓↓↓↓↓ 相关链接说明: 1.popup的示例完全开源,可参考:功能示例(Vue版) | Mars3D三维可视化平台 | 火星科…

WEB 3D技术 three.js 3D贺卡(3) 点光源灯光动画效果

经过 上文 WEB 3D技术 three.js 3D贺卡(2) 加入天空与水面效果 我们将水面 和 天空的效果搭建了一下 那么 我们将四周 点光源的效果做一下 首先 我们将 renderer.toneMappingExposure 的值 改为 0.1 让效果看着明显一点 这样 整个界面就会暗下来 然后 我们在任意位置 加入代…

看完买,开放式耳机质量榜单:南卡夺冠、韶音第5、Cleer排第7

​作为一名拥有丰富经验的开放式耳机用户,我想在此提醒大家,选择耳机时,千万不要盲目跟风或过于信赖所谓的“网红”或“大牌产品”。毕竟,每个人的需求和使用环境都是独一无二的,因此,适合自己的耳机才是最…

文件夹里的文件消失了?3个方法轻松找回文件!

“我在电脑上建了个文件夹,用来保存比较重要的文件和数据,但是不知道为什么,我文件夹里的文件莫名其妙就消失了,有什么方法可以找回消失的文件吗?” 为了更好的给文件进行分类,很多用户会选择将文件放置到不…

【C++】C++的IO流

一、C语言的输入与输出 C 语言中我们用到的最频繁的输入输出方式就是 scanf () 与 printf()。 scanf():从标准输入设备(键盘)读取数据,并将值存放在变量中。printf():将指定的文字/字符串输出到标准输出设备&#xff…

JDK17安装后没有jre解决方案

JDK17安装后没有jre解决方案 新安装的JDK17没有jre , 有些场景需要jre才能运行,如idea2023.3版 通过如下,进入jdk安装路径,执行以下命令 bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre运行命令…

SD-WAN解决跨国公司海外工厂网络安全问题

在跨境业务蓬勃发展的今天,越来越多的大型企业出于人力成本的考虑,在人力成本较低的发展中国家建立工厂。然而,传统基于路由器的网络架构已无法为这些跨国企业提供可靠的安全网络。那么,如何解决跨国企业海外工厂的网络难题呢&…

Macos flatter(用于快速LLL)本地编译安装(解决安装过程各种疑难杂症)

flatter是一个开源项目,能大大提高LLL的速度,项目提供的安装文档适用于Ubuntu,但是在macos上安装,总会遇到各种各样的问题,这里记录下所踩坑,帮助大家快速在macos上安装flatter。 文章目录 1.安装依赖库&am…

推荐一款低成本半桥驱动器集成电路 SIC631CD-T1-GE3

SIC631CD-T1-GE3 是经过优化的集成功率级解决方案用于同步降压应用,提供大电流、高电压效率高,功率密度高。使电压调节器设计能够提供高达50 A的电流每相持续电流。内部功率MOSFET利用Vishay的最先进的第四代TrenchFET技术行业基准绩效将显著降低开关和传…

【Docker】实战多阶段构建 Laravel 镜像:适用于 PHP 开发者阅读

作者主页: 正函数的个人主页 文章收录专栏: Docker 欢迎大家点赞 👍 收藏 ⭐ 加关注哦! 本节适用于 PHP 开发者阅读。Laravel 基于 8.x 版本,各个版本的文件结构可能会有差异,请根据实际自行修改。 准备 新…

C# WebApi传参及Postman调试

概述 欢迎来到本文,本篇文章将会探讨C# WebApi中传递参数的方法。在WebApi中,参数传递是一个非常重要的概念,因为它使得我们能够从客户端获取数据,并将数据传递到服务器端进行处理。WebApi是一种使用HTTP协议进行通信的RESTful服…

面试之Glide如何绑定Activity的生命周期

Glide绑定Activity生命周期 Glide.with() 下面都是它的重载方法,Context,Activity,FragmentActivity, Fragment, android.app.Fragment fragment,View都可以作为他的参数,内容大同小异,都是先getRetriever&#xff0…