YOLOv9最新改进系列:融合混合注意力机制CBAM,关注通道和空间特征,助力YOLOv9新模型快速涨点!

news2024/12/23 6:28:48

YOLOv9最新改进系列:融合混合注意力机制CBAM,关注通道和空间特征,助力YOLOv9新模型快速涨点!

YOLOv9原文链接戳这里,原文全文翻译请关注B站Ai学术叫叫首er

B站全文戳这里!

详细的改进教程以及源码,戳这!戳这!!戳这!!!B站:AI学术叫叫兽 源码在相簿的链接中,动态中也有链接,感谢支持!祝科研遥遥领先!

YOLOv9最新改进系列:融合混合注意力机制CBAM,关注通道和空间特征,助力YOLOv9新模型快速涨点!!

  • YOLOv9最新改进系列:融合混合注意力机制CBAM,关注通道和空间特征,助力YOLOv9新模型快速涨点!
  • 注意力机制是啥:
  • 简介
  • 2 实现方法
    • 2.1
    • 2.2
    • 2.3
    • 2.4
  • 3 代码
  • 4 结论
  • 5 修改步骤!
    • 5.1 修改YAML文件
    • 5.2 新建.py
    • 5.3 修改tasks.py
  • 6、验证是否成功即可


CBAM注意力提出全文戳这

详细的改进教程以及源码,戳这!戳这!!戳这!!!B站:AI学术叫叫兽 源码在相簿的链接中,动态中也有链接,感谢支持!祝科研遥遥领先!
截止到发稿时,B站YOLOv9最新改进系列的源码包,已更新了11种的改进!自己排列组合2-4种后,考虑位置不同后可排列组合上千种!!专注AI学术,关注B站博主:Ai学术叫叫兽er!

注意力机制是啥:

神经网络中的注意力机制(Attention Mechanism)是在计算能力有限的情况下,将计算资源分配给更重要的任务,同时解决信息超载问题的一种资源分配方案。在神经网络学习中,一般而言模型的参数越多则模型的表达能力越强,模型所存储的信息量也越大,但这会带来信息过载的问题。那么通过引入注意力机制,在众多的输入信息中聚焦于对当前任务更为关键的信息,降低对其他信息的关注度,甚至过滤掉无关信息,就可以解决信息过载问题,并提高任务处理的效率和准确性。

这就类似于人类的视觉注意力机制,通过扫描全局图像,获取需要重点关注的目标区域,而后对这一区域投入更多的注意力资源,获取更多与目标有关的细节信息,而忽视其他无关信息。通过这种机制可以利用有限的注意力资源从大量信息中快速筛选出高价值的信息。

简介

Convolutional Block Attention Module(CBAM):CBAM是一种组合模型,将通道注意力和空间注意力相结合,以提高模型的表现力。

CBAM 模块包括两个注意力子模块:通道注意力模块和空间注意力模块。通道注意力模块用于计算每个通道的重要性,以便更好地区分不同通道之间的特征。空间注意力模块则用于计算每个像素在空间上的重要性,以便更好地捕捉图像中的空间结构。

通道注意力模块通过对输入特征图在通道维度上进行最大池化和平均池化,然后将这两个池化结果输入到一个全连接层中,最后输出一个通道注意力权重向量。这个向量用于加权输入特征图中的每个通道,从而更好地区分不同通道的特征。

空间注意力模块通过对输入特征图在通道维度上进行平均池化和最大池化,然后将这两个池化结果输入到一个全连接层中,最后输出一个空间注意力权重张量。这个张量用于对每个像素在空间上进行加权,从而更好地捕捉图像中的空间结构。
在这里插入图片描述

在图中,绿色框表示通道注意力模块,橙色框表示空间注意力模块。通过将这两个模块串联起来,可以得到一个完整的 CBAM 模块,用于插入到卷积神经网络中以提升模型性能。

2 实现方法

通道注意力模块的目标是增强每个通道的特征表达。以下是实现通道注意力模块的步骤:

2.1

全局最大池化和全局平均池化: 对于输入特征图,首先对每个通道执行全局最大池化和全局平均池化操作,计算每个通道上的最大特征值和平均特征值。这会生成两个包含通道数的向量,分别表示每个通道的全局最大特征和平均特征。

2.2

全连接层: 将全局最大池化和平均池化后的特征向量输入到一个共享全连接层中。这个全连接层用于学习每个通道的注意力权重。通过学习,网络可以自适应地决定哪些通道对于当前任务更加重要。将全局最大特征向量和平均特征向相交,得到最终注意力权重向量。

2.3

Sigmoid激活: 为了确保注意力权重位于0到1之间,应用Sigmoid激活函数来产生通道注意力权重。这些权重将应用于原始特征图的每个通道。

2.4

注意力加权: 使用得到的注意力权重,将它们与原始特征图的每个通道相乘,得到注意力加权后的通道特征图。这

3 代码

class ChannelAttention(nn.Module):


    def __init__(self, in_channels, ratio=16):
        super(ChannelAttention, self).__init__()
        self.avg_pool = nn.AdaptiveAvgPool2d(1)
        self.max_pool = nn.AdaptiveMaxPool2d(1)

        self.fc = nn.Sequential(
            # 全连接层
            # nn.Linear(in_planes, in_planes // ratio, bias=False),
            # nn.ReLU(),
            # nn.Linear(in_planes // ratio, in_planes, bias=False)

            # 利用1x1卷积代替全连接,避免输入必须尺度固定的问题,并减小计算量
            nn.Conv2d(in_channels, in_channels // ratio, 1, bias=False),
            nn.ReLU(inplace=True),
            nn.Conv2d(in_channels // ratio, in_channels, 1, bias=False)
        )

        self.sigmoid = nn.Sigmoid()

   def forward(self, x):
       avg_out = self.fc(self.avg_pool(x))
       max_out = self.fc(self.max_pool(x))
       out = avg_out + max_out
       out = self.sigmoid(out)
       return out * x

4 结论

我们提出了卷积瓶颈注意力模块(CBAM),这是一种提高 CNN 网络表示能力的新方法。 我们通过两个独特的模块(通道和空间)应用基于注意力的特征细化,并在保持较小开销的同时实现了相当大的性能改进。 对于通道注意力,我们建议使用最大池化特征和平均池化特征,从而产生比 SE [28] 更好的注意力。 我们通过利用空间注意力进一步提高性能。 我们的最终模块(CBAM)学习什么以及在哪里强调或抑制,并有效地细化中间特征。 为了验证其功效,我们使用各种最先进的模型进行了广泛的实验,并确认 CBAM 在三个不同基准数据集上的性能优于所有基线:ImageNet-1K、MS COCO 和 VOC 2007。此外,我们还可视化了如何 该模块准确推断给定的输入图像。 有趣的是,我们观察到我们的模块诱导网络正确地关注目标对象。 我们希望CBAM成为各种网络架构的重要组成部分。

5 修改步骤!

5.1 修改YAML文件

详细的改进教程以及源码,戳这!戳这!!戳这!!!B站:AI学术叫叫兽 源码在相簿的链接中,动态中也有链接,感谢支持!祝科研遥遥领先!

5.2 新建.py

详细的改进教程以及源码,戳这!戳这!!戳这!!!B站:AI学术叫叫兽er 源码在相簿的链接中,动态中也有链接,感谢支持!祝科研遥遥领先!

5.3 修改tasks.py

详细的改进教程以及源码,戳这!戳这!!戳这!!!B站:AI学术叫叫兽er 源码在相簿的链接中,动态中也有链接,感谢支持!祝科研遥遥领先!

6、验证是否成功即可

执行命令

python train.py

改完收工!
关注B站:Ai学术叫叫兽er
从此走上科研快速路
遥遥领先同行!!!!

详细的改进教程以及源码,戳这!戳这!!戳这!!!B站:AI学术叫叫兽er 源码在相簿的链接中,动态中也有链接,感谢支持!祝科研遥遥领先!

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

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

相关文章

各大厂都推出鸿蒙APP了,你就一定要学习一下鸿蒙APP测试了!

2023年8月,华为推出鸿蒙4.0,由于其广泛的用户基础和品牌传播力,在短短几个月的时间,使用鸿蒙4.0系统的设备就达到千万级别,并且在9月份发售Mate 6之后,还在装机量的增长更加迅猛。 基于此,11月…

【Harmony3.1/4.0】学习笔记一

Harmong3.1/4.0是基于ArkTS编程语言的操作系统,本文开始将逐渐讲解和学习鸿蒙操作系统的知识。 1.线性布局(Row/Column)综合使用 线性布局结合文本控件,图片控件和按钮控件完成简单的鸿蒙移动应用开发界面 其ArkTS代码如下: Entry Compone…

Compose 简单组件

文章目录 Compose 简单组件TextText属性使用AnnotatedStringSpanStyleParagraphStyle SelectionContainer 和 DisableSelectionClickableText TextFieldTextField属性使用OutlinedTextFieldBasicTextFieldKeyboardOptions 键盘属性KeyboardActions IME动作 ButtonButton属性使用…

【超级简单】vscode进入服务器的docker容器

前提 1、已经运行docker容器 2、已经用vscode链接服务器 在vscode中安装的插件 Dev Containers docker 在容器中安装的依赖 yum install openssh-server yum install openssh-clientsvscode进入服务器的docker容器 找到自己的容器,右键点击,找到…

网络安全可以免费学习吗?

当然可以!!! 这边每周都有免费的网络安全公开课!! 感兴趣的可以直接留言! 会有专门的人联系的 或者关注公众号:IT运维大本营,私信即可参加

研究表明,全球互联网流量竟有一半来自机器人

据Cyber News消息,Thales Imperva Bad Bot近期做了一份报告,显示在2023年有49.6%的互联网流量竟来自机器人,比上一年增长 2%,达到自2013年以来观察到的最高水平。 报告称,这一趋势正对企业组织产生负面影响&#xff0c…

鸿蒙原生应用元服务-访问控制(权限)开发等级和类型

一、权限等级说明 根据接口所涉数据的敏感程度或所涉能力的安全威胁影响,ATM模块定义了不同开放范围的权限等级来保护用户隐私。 应用APL等级说明 元能力权限等级APL(Ability Privilege Level)指的是应用的权限申请优先级的定义,…

MySQL Workbench下载安装、 MySQL Workbench使用

官方下载链接;MySQL :: Download MySQL Workbench 下载好懒人安装,也可自己选择目录 下面是使用: 连接数据库: 填写数据库连接信息: 基本操作部分: 数据导入导出: 导出/备份 导入: 生产er图…

基于springboot实现图书进销存管理系统项目【项目源码+论文说明】

基于springboot实现图书进销存管理系统演示 摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了图书进销存管理系统的开发全过程。通过分析图书进销存管理系统管理的不足,创建了一个计算机管理图书进销…

第 6 章 URDF、Gazebo与Rviz综合应用(自学二刷笔记)

重要参考: 课程链接:https://www.bilibili.com/video/BV1Ci4y1L7ZZ 讲义链接:Introduction Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程 6.7.4 kinect信息仿真以及显示 通过 Gazebo 模拟kinect摄像头,并在 Rviz 中显示kinect摄像头数据…

守护脑积水宝宝,共筑健康未来

每个新生命的诞生,都承载着家庭的殷切期望与无尽的欢乐。然而,有些宝宝自诞生起便笼罩在健康的阴霾之下——脑积水。这是一种因脑脊液分泌过多或循环吸收障碍导致的疾病,其特征是颅内脑脊液量增加、脑室系统扩大或蛛网膜下腔扩大。脑脊液&…

【汇编语言实验九】

汇编语言实验九 在屏幕中间显示‘welcome to masm!’ assume cs:code,ds:datasgdatasg segmentdb welcome to masm! datasg endsstack segmentdw 0,0,0,0,0,0,0,0 stack endscode segment ;代码段start: nopmov cx,16mov si,0mov bx,0s: mov ax,datasgmov ds,axmov dh,02mov …

在wix和wordpress之间你应该选择哪一个?3件你需要知道的事

如果你最近需要制作网站,为了帮助您缩小选择范围并选择满足您独特需求的解决方案,我们比较了两个最大的名字:Wix和WordPress。 为了帮助您缩小选择范围并挑选出满足您独特需求的解决方案,我们将对两个比较受欢迎的自助建站系统——…

【Java基础学习】面向对象编程

开始时间: April 10, 2024 结束时间: April 16, 2024 阶段: Done 基础部分 类与对象的关系 类是抽象的,概念的,代表一类事物对象是具体的,实际的,代表一个具体事物(实例)类是对象的模板,对象…

在Linux操作系统中,修改文件目录权限常用的命令操作

修改文件的属主或者是属组 命令chown 用户名.用户组名,文件路径 如上图所示,使用命令 chown martin.caiwu /opt/test/1.txt 将文件1.txt的属主修改为martin 。 将文件1.txt的属组修改为caiwu 如上图所示,使用命令chown .jishu /opt/test/…

网络革新:ETU-LINK 100G AOC全系列产品驱动数字经济的加速发展

高效、稳定、高速的网络连接成为各行业发展的基石。之前的文章内容小编为大家介绍了ETU-LINK 100G DAC系列产品,本期文章我们来看看100G AOC产品,它在网络技术革新中又起着什么作用呢? 一、100G AOC全系列产品解析 100G QSFP28 AOC有源光缆 …

Android --- Activity

https://developer.android.com/guide/components/activities/intro-activities?hlzh-cn Activity 提供窗口,供应在其中多个界面。此窗口通常会填满屏幕,但也可能小于屏幕并浮动在其他窗口之上。 大多数应用包含多个屏幕,这意味着它们包含…

算法课程笔记——全排列

要最小 ventor用endl 递归方式#include <cstdio>#include <iostream>#include <algorithm>#include <string>using namespace std;const int MAXN 10;bool visit[MAXN];//判断某个元素是否被访问过char sequence[MAXN];//存放找到的全排列void GetPer…

2024年苹果审核4.3相关问题综述

苹果审核中的4.3问题是开发者关注的焦点之一&#xff0c;本文对此进行了综述&#xff0c;总结了不同情况下的处理方式和优化策略。 第一种4.3 该类问题常见于代码或UI的重复率过高&#xff0c;苹果会直接拒绝应用。开发者需注意避免此类情况的发生&#xff0c;特别是在更新应…

MongoDB 使用

1 引用依赖包 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId></dependency>2 配置文件配置mongodb资料 # MongoDB连接信息 spring.data.mongodb.host 192.168.23.…