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

本文主要是介绍一种基于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.源码获取

可私信获取

这篇关于一种基于YOLO改进的高效且轻量级的表面缺陷检测网络, NEU-DET和GC10-DET涨点明显的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/613164

相关文章

input的accept属性让文件上传安全高效

《input的accept属性让文件上传安全高效》文章介绍了HTML的input文件上传`accept`属性在文件上传校验中的重要性和优势,通过使用`accept`属性,可以减少前端JavaScrip... 目录前言那个悄悄毁掉你上传体验的“常见写法”改变一切的 html 小特性:accept真正的魔法:让

Android使用java实现网络连通性检查详解

《Android使用java实现网络连通性检查详解》这篇文章主要为大家详细介绍了Android使用java实现网络连通性检查的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录NetCheck.Java(可直接拷贝)使用示例(Activity/Fragment 内)权限要求

使用Python实现高效复制Excel行列与单元格

《使用Python实现高效复制Excel行列与单元格》在日常办公自动化或数据处理场景中,复制Excel中的单元格、行、列是高频需求,下面我们就来看看如何使用FreeSpire.XLSforPython... 目录一、环境准备:安装Free Spire.XLS for python二、核心实战:复制 Exce

基于Java实现PPT到PDF的高效转换详解

《基于Java实现PPT到PDF的高效转换详解》在日常开发中,经常会遇到将PPT文档批量或单文件转换为PDF的需求,本文将详细介绍其使用流程、核心代码与常见问题解决方案,希望对大家有所帮助... 目录一、环境配置Maven 配置Gradle 配置二、核心实现:3步完成PPT转PDF1. 单文件转换(基础版)

Java高效实现PowerPoint转PDF的示例详解

《Java高效实现PowerPoint转PDF的示例详解》在日常开发或办公场景中,经常需要将PowerPoint演示文稿(PPT/PPTX)转换为PDF,本文将介绍从基础转换到高级设置的多种用法,大家... 目录为什么要将 PowerPoint 转换为 PDF安装 Spire.Presentation fo

C#自动化实现检测并删除PDF文件中的空白页面

《C#自动化实现检测并删除PDF文件中的空白页面》PDF文档在日常工作和生活中扮演着重要的角色,本文将深入探讨如何使用C#编程语言,结合强大的PDF处理库,自动化地检测并删除PDF文件中的空白页面,感... 目录理解PDF空白页的定义与挑战引入Spire.PDF for .NET库核心实现:检测并删除空白页

Python实现简单封装网络请求的示例详解

《Python实现简单封装网络请求的示例详解》这篇文章主要为大家详细介绍了Python实现简单封装网络请求的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录安装依赖核心功能说明1. 类与方法概览2.NetHelper类初始化参数3.ApiResponse类属性与方法使用实

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

Redis实现高效内存管理的示例代码

《Redis实现高效内存管理的示例代码》Redis内存管理是其核心功能之一,为了高效地利用内存,Redis采用了多种技术和策略,如优化的数据结构、内存分配策略、内存回收、数据压缩等,下面就来详细的介绍... 目录1. 内存分配策略jemalloc 的使用2. 数据压缩和编码ziplist示例代码3. 优化的