YOLOv8模型改进 第十九讲 添加倒置残差移动块iRMB(Inverted Residual Mobile Block,) 去除图像噪声

       本文这次分享的是倒置残差移动块iRMB,iRMB(Inverted Residual Mobile Block)的作用主要是在神经网络中实现高效的特征提取,它融合了卷积神经网络(CNN)捕捉局部特征的高效性和 Transformer 动态建模长距离交互的能力,通过采用如窗口 - MHSA 和深度可分离卷积等操作来减少模型参数和计算量,在提升模型性能的同时还具备设计上的灵活性,能够在不同的网络架构中方便地应用。本文将其添加到YOLOv8模型当中,使得YOLOv8模型可以更全面、更准确地提取特征,无论是局部细节特征还是全局语义特征都能有效获取。

 1. 倒置残差移动块iRMB介绍   

  1. 模块结构

    • 该模块由三个主要的卷积层和一个注意力机制(Attention Mechanism)组成。
    • 模块的输入是一个特征图(Feature Map),输出也是一个特征图。
  2. 卷积层

    • 第一层:1x1 卷积(1x1 Conv)
      • 这是模块的第一层,对输入的特征图进行 1x1 卷积操作。
      • 该层的输出分为三路,分别用于后续的操作。
    • 第二层:3x3 深度可分离卷积(3x3 DW - Conv)
      • 这是模块的第二层,对第一层 1x1 卷积的输出进行 3x3 深度可分离卷积操作。
      • 深度可分离卷积是一种高效的卷积操作,能够减少计算量。
    • 第三层:1x1 卷积(1x1 Conv)
      • 这是模块的第三层,对第二层 3x3 深度可分离卷积的输出进行 1x1 卷积操作。
      • 该层的输出通过一个跳跃连接(Skip Connection)与模块的输入相加,形成最终的输出。
  3. 注意力机制(Attention Mechanism)

    • 在第一层 1x1 卷积的输出中,有一部分被用于生成注意力矩阵(Attn Mat)。
    • 这部分输出被分成 Q(Query)、K(Key)和 V(Value)三个部分,用于计算注意力矩阵。
    • 注意力矩阵的计算在模块的右侧有详细展示,通过 Q 和 K 的交互生成注意力矩阵,然后与 V 相乘,得到注意力加权后的特征图。
  4. 跳跃连接(Skip Connection)

    • 在模块的最后,第三层 1x1 卷积的输出通过一个跳跃连接与模块的输入相加,形成最终的输出。
    • 跳跃连接有助于缓解梯度消失问题,提高网络的训练效率。

3. 倒置残差块 

  1. 定义
    • 倒置残差块(Inverted Residual Block)是一种在深度学习架构中使用的模块。从图中可以看到,它是整个架构中的一部分。
    • 它通常包含一个 1x1 卷积层(1x1 Conv),其扩张率(λ)为 4,并且有一个高效操作(Efficient Operator),图中用红色的 “F” 表示。
  2. 工作原理
    • 首先,输入的特征图(Feature Map)经过 1x1 卷积层进行通道扩张,将通道数扩大。
    • 然后,经过高效操作(Efficient Operator),这个操作可能是一些非线性变换或者其他有助于特征提取的操作。
    • 最后,可能还会有一个 1x1 卷积层来调整通道数,使其与输入的通道数匹配(如果有残差连接的话)。
  3. 在网络中的作用
    • 倒置残差块主要用于提取更丰富的特征。通过先扩张通道数再进行特征提取,可以捕捉到更多的特征信息,相比传统的先压缩通道数的残差块(常规残差块),它在一些轻量级网络中表现出更好的性能。
    • 它通常用于构建高效的神经网络架构,特别是在移动设备或者对计算资源有限制的场景下,能够在保证一定性能的同时减少计算量。

 3. 接下来,我们将详细介绍如何将FSDA集成到 YOLOv8 模型中。        

这是我的GitHub代码:tgf123/YOLOv8_improve (github.com)

这是改进讲解:YOLOv8模型改进 第十九讲 添加倒置残差移动块iRMB 去除图像噪声_哔哩哔哩_bilibili

3.1  如何添加

        1. 首先,在我上传的代码中yolov8_improve中找到FSDA.py代码部分,它包含两个部分一个是FSDA.py的核心代码,一个是yolov8模型的配置文件。 

​       

        2. 然后我们在ultralytics文件夹下面创建一个新的文件夹,名字叫做change_models, 然后再这个文件夹下面创建iRMB.py文件,然后将iRMB的核心代码放入其中

    3. 在 task.py文件中导入iRMB

from ultralytics.change_models.iRMB import C2f_iRMB,iRMB

     4. 然后将 FSDA添加到下面当中

        第一个改进修改的地方

​ 第二个改进修改的地方

        5. 最后将配置文件复制到下面文件夹下

        6. 运行代码跑通 


from ultralytics.models import NAS, RTDETR, SAM, YOLO, FastSAM, YOLOWorldif __name__=="__main__":# 使用自己的YOLOv8.yamy文件搭建模型并加载预训练权重训练模型model = YOLO(r"D:\bilibili\model\YOLOV8_new\ultralytics-main\ultralytics\cfg\models\v8\yolov8_irmb.yaml")\.load(r'D:\bilibili\model\YOLOV8_new\ultralytics-main\yolov8n.pt')  # build from YAML and transfer weightsresults = model.train(data=r'D:\bilibili\model\ultralytics-main\ultralytics\cfg\datasets\VOC_my.yaml',epochs=100, imgsz=640, batch=8)

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

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

相关文章

express项目中使用MySQL

一、安装mysql 模块 1.1 先配置包管理工具 npm init -y1.2、安装mysql 模块 npm install mysql2二、配置mysql // 1、导入mysql模块 const mysql require("mysql2");// 2、建立与mysql 数据库的链接 const db mysql.createPool({host: "127.0.0.1", …

泛微E9 OA与金蝶云的差旅费报销接口集成

FD001-差旅费报销申请 泛微>金蝶--498 集成案例分享 在企业日常运营中,差旅费报销申请的处理效率直接影响到员工满意度和财务管理的精确性。为了实现泛微OA-Http系统与金蝶云星空平台之间的数据无缝对接,我们设计并实施了FD001-差旅费报销申请集成方…

新疆高校大数据实验室案例分享

高校大数据实验室建设,企业可以提供技术支持、实训平台和项目案例,高校则提供科研和教学资源,实现产学研一体化。不仅有利于大数据技术的应用和人才培养也有利于区域发展。 泰迪与新疆合作的院校包括新疆大学、昌吉学院等 新疆大…

11.9.2024刷华为

文章目录 HJ31 单词倒排HJ32 密码提取语法知识记录 傻逼OD题目又不全又要收费,看毛线,莫名奇妙 HW这叼机构别搁这儿害人得不得? 我觉得我刷完原来的题目 过一遍华为机考的ED卷出处,就行了 HJ31 单词倒排 游戏本做过了好像 HJ3…

C语言--结构体的大小与内存对齐,位段详解

一.前言 为了保证文章的质量和长度,小编将会分两篇介绍,思维导图如下,上篇已经讲过了概念部分,本文主要讲解剩余部分,希望大家有所收获🌹🌹 二.结构体的大小与内存对齐 2.1 存在对齐的原因 平…

腾讯混元3D模型Hunyuan3D-1.0部署与推理优化指南

腾讯混元3D模型Hunyuan3D-1.0部署与推理优化指南 摘要: 本文将详细介绍如何部署腾讯混元3D模型Hunyuan3D-1.0,并针对不同硬件配置提供优化的推理方案。我们将探讨如何在有限的GPU内存下,通过调整配置来优化模型的推理性能。 1. 项目概览 腾…

第18篇 :深入剖析systemverilog中 randomize 失败案例启示录(二)

今天我们继续修改之前的例子,你会有意想不到的收获。程序源代码,和上一节文章一样。 症状3: 这里,我们没有显式调用类的randomize() 函数,而是定义了一个类函数。在函数中 ,重新约束了类内的随机变量。请…

CC音乐 1.0 | 纯净版音乐软件,内置3条音源,支持无损和母带下载

CC音乐是一款全新上架的第三方音乐软件,界面纯净简洁且无广告。内置三条音源接口,用户可以畅听全网音乐。软件涵盖了电台、排行榜、歌单分类、视频、歌手等多个栏目,即使是会员和灰色歌曲也能随意畅听。此外,CC音乐还支持下载无损…

【销帮帮-注册_登录安全分析报告-试用页面存在安全隐患】

联通支付注册/登录安全分析报告 前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨…

windows中docker安装redis和redisinsight记录

创建一个Redis运行容器,命令如下 docker run -it -d --name redis -p 6379:6379 redis --bind 0.0.0.0 --protected-mode no -d 代表Redis容器后台运行 --name redis 给创建好的容器起名叫redis -p 6379:6379 将容器的6379端口映射到宿主机的6379端口,注…

问题排查:C++ exception with description “getrandom“ thrown in the test body

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权。 文章目录 MotivationProcess Motivation 最近在做一个复杂系统集成到 Bazel 的工作。 在编译…

C++中类的默认成员函数

默认成员函数 1.构造函数2.析构函数3.拷贝构造函数4.赋值运算符重载4.1运算符重载4.2赋值运算符重载 #mermaid-svg-oipiwg9stvONvYK0 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-oipiwg9stvONvYK0 .error-icon{f…

从0开始学习机器学习--Day20--优化算法的思路

确定执行的优先级(Prioritizing what to work on : Spam classification example) 在建立学习系统前,我们不仅要梳理框架,更重要的是我们要弄清楚有哪些事情是要优先做的,这可以帮我们节约大量的时间。 以垃圾邮件为例,按照之前…

利用JS实现图片轮播(示例)

我们平时在逛购物网站的时候会看到页面内的商品图片自动轮播,二要想实现着中效果应该如何做呢?下面详细讲解代码的运用,实现下面视频的效果。大家也可以自己试试看,或者复制最后的完整代码运行一下! 图片自动轮播效果 …

关于99.9% 达成读码率方案

1.标签样式 2.尺寸大小 长30mm*宽30mm 至 长40mm*宽40mm ; 3.位置 标签位置在箱体中间,可以误差5mm; 4.质量要求 ①无遮挡,标签不允许任何介质在上面,尤其是塑料片 ②平整,必须和箱子壁贴平,不允许翻边,飘荡。 ③码不能有模糊,手机摄像头扫码可以…

w~视觉~合集20~SAM

我自己的原文哦~ https://blog.51cto.com/whaosoft/12500982 #SAM 今天,Meta发布史上首个图像分割基础模型SAM,将NLP领域的prompt范式引进CV,让模型可以通过prompt一键抠图。网友直呼:CV不存在了! 就在刚刚,Meta AI…

三、直流有刷电机H桥驱动原理

1、H桥简介 H桥驱动电路:是一种用于控制直流电机正反转及速度的电路,其名称来源于其电路结构类似于字母“H”。H桥驱动电路由四个开关元件(如晶体管、MOSFET等)组成,这些开关元件被配置成可以控制电机两端电流的方向&…

Leetcode刷题

题目如下: 这道题呢,这里我写出了两种解决办法,一种遍历链表来得出中间结点,一种通过快慢指针来得出中间结点 第一种: 遍历: 首先我们设置一个计数器count,来记录链表的长度,写一…

游戏开发--C#面试题

游戏开发--C#面试题 C#1. 值类型和引用类型的区别2. 重载和重写的区别3. ArrayList和List的区别4. List底层是什么实现的?5. 抽象类和接口的区别6. 静态成员和⾮静态成员的区别7. 装箱和拆箱是指什么?8. 值和引用类型在变量赋值时的区别是什么&#xff1…

# 设置ubuntu为中文后,如何保留用户家目录等文件夹名为英文

设置ubuntu为中文后,如何保留用户家目录等文件夹名为英文 一、问题描述: 当我们安装完ubuntu系统后,通过【系统设置】,在【语言支持】里,设置为【汉语(中国)】,这时在终端中显示文…