RT-DETR改进策略【注意力机制篇】| 引入Shuffle Attention注意力模块,增强特征图的语义表示

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: RT-DETR改进策略【注意力机制篇】| 引入Shuffle Attention注意力模块,增强特征图的语义表示

一、本文介绍

本文记录的是基于Shuffle Attention注意力模块的RT-DETR目标检测改进方法研究Shuffle Attention模块通过独特的设计原理,在保持轻量级的同时实现了高效的特征注意力机制,增强了网络的表示能力。本文对RT-DETR进行二次创新,以增强模型性能。


专栏目录:RT-DETR改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
专栏地址:RT-DETR改进专栏——以发表论文的角度,快速准确的找到有效涨点的创新点!

二、Shuffle Attention注意力原理

深度卷积神经网络的Shuffle Attention

Shuffle Attention(SA)模块是一种用于深度卷积神经网络的高效注意力模块,其设计原理和优势如下:

2.1、设计原理

  1. 特征分组(Feature Grouping):对于给定的特征图$X \in R^{C \times H \times W}$(其中$C$、$H$、$W$分别表示通道数、空间高度和宽度),SA首先沿着通道维度将$X$分为$G$组,即$X = [X_1, \cdots, X_G]$,$X_k \in R^{\frac{C}{G} \times H \times W}$。在每个注意力单元开始时,$Xk$的输入沿着通道维度被拆分为两个分支$X{k1}$和$X{k2}$($X{k1}, X_{k2} \in R^{\frac{C}{2G} \times H \times W}$)。一个分支用于通过利用通道间的相互关系来生成通道注意力图,另一个分支用于通过利用特征的空间间关系来生成空间注意力图,从而使模型能够关注“什么”和“哪里”是有意义的。
  2. 通道注意力(Channel Attention):为了充分捕获通道间的依赖关系,SA使用全局平均池化(GAP)来生成通道级别的统计信息$s \in R^{\frac{C}{2G} \times 1 \times 1}$,即$s = \mathcal{F}{gp}(X{k1}) = \frac{1}{H \times W} \sum{i = 1}^{H} \sum{j = 1}^{W} X{k1}(i, j)$。然后,通过一个简单的带有sigmoid激活的门控机制创建一个紧凑的特征,以实现精确和自适应的选择指导。通道注意力的最终输出通过$X{k1}' = \sigma(\mathcal{F}{c}(s)) \cdot X{k1} = \sigma(W_1 s + b1) \cdot X{k1}$获得,其中$W_1 \in R^{\frac{C}{2G} \times 1 \times 1}$和$b_1 \in R^{\frac{C}{2G} \times 1 \times 1}$是用于缩放和移动$s$的参数。
  3. 空间注意力(Spatial Attention):与通道注意力不同,空间注意力关注“哪里”是信息丰富的部分,这与通道注意力是互补的。首先,使用组归一化(GN)对$X{k2}$进行处理以获得空间级别的统计信息,然后采用$Fc(\cdot)$来增强$\hat{X}{k2}$的表示。空间注意力的最终输出通过$X_{k2}' = \sigma(W2 \cdot GN(X{k2}) + b2) \cdot X{k2}$获得,其中$W_2$和$b_2$是形状为$R^{\frac{C}{2G} \times 1 \times 1}$的参数。
  4. 聚合(Aggregation):之后,所有子特征被聚合。最后,类似于ShuffleNet v2,采用“通道洗牌”(channel shuffle)操作来实现跨组信息在通道维度上的流动。

在这里插入图片描述

2.2、优势

  1. 轻量级且高效SA模块通过将通道维度分组为子特征,并利用Shuffle Unit为每个子特征集成互补的通道和空间注意力模块,参数和计算量相对较少。例如,在ResNet50中,SA的参数为300,计算量为2.76e - 3 GFLOPs,而ResNet50的参数为25.56M,计算量为4.12 GFLOPs,但SA在Top - 1准确率上的提升超过了1.34%。
  2. 增强语义表示:通过特征分组和通道洗牌,SA能够显著增强特征图的语义表示。实验表明,在使用SA模块后,Top - 1准确率统计上有所提高,并且“通道洗牌”使得每个组的平均得分增加(约0.4%)。
  3. 验证有效性:通过对不同深度的平均激活分布的观察以及使用GradCAM进行可视化,验证了SA模块能够使分类模型更关注相关区域,从而有效提高分类准确率。
  4. 在各种任务中表现出色:在ImageNet - 1k分类、MS COCO对象检测和实例分割等任务的实验中,SA相比于当前的SOTA方法,在实现更高准确率的同时具有更低的模型复杂度,验证了其在各种计算机视觉任务中具有良好的泛化能力。

论文:https://arxiv.org/pdf/2102.00240
源码:https://github.com/wofmanaf/SA-Net

三、实现代码及RT-DETR修改步骤

模块完整介绍、个人总结、实现代码、模块改进、二次创新以及各模型添加步骤参考如下地址:

https://blog.csdn.net/qq_42591591/article/details/144114671

相关文章
|
存储 缓存 Android开发
安卓Jetpack Compose+Kotlin, 使用ExoPlayer播放多个【远程url】音频,搭配Okhttp库进行下载和缓存,播放完随机播放下一首
这是一个Kotlin项目,使用Jetpack Compose和ExoPlayer框架开发Android应用,功能是播放远程URL音频列表。应用会检查本地缓存,如果文件存在且大小与远程文件一致则使用缓存,否则下载文件并播放。播放完成后或遇到异常,会随机播放下一首音频,并在播放前随机设置播放速度(0.9到1.2倍速)。代码包括ViewModel,负责音频管理和播放逻辑,以及UI层,包含播放和停止按钮。
|
存储 芯片 内存技术
计算机组成原理:存储系统【三】
计算机组成原理:存储系统【三】
|
算法 索引 Python
使用Python实现PageRank计算
使用Python实现PageRank计算
489 0
|
SQL Java 数据库连接
Mybatis-Plus常用的查询方法--看这一篇就够了!!!
前言: Mybatis-Plus作为Mybatis的增强,自己封装了很多简单还用的方法,来解脱自己写sql! 对于项目的搭建小编就不在说了,可以参考: SpringBoot+Mybatis-Plus的入门搭建与配置测试 这样就可以跟小编站在同一起跑线了,咱们直接开始介绍方法的使用哦!!
2223 2
|
机器学习/深度学习 编解码 算法
英文论文(sci)解读复现:基于YOLOv5的自然场景下苹果叶片病害实时检测
英文论文(sci)解读复现:基于YOLOv5的自然场景下苹果叶片病害实时检测
1186 0
|
机器学习/深度学习 数据可视化 算法
RT-DETR改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
RT-DETR改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
1296 5
|
资源调度 自然语言处理 网络架构
RT-DETR改进策略【Neck】| 使用CARAFE轻量级通用上采样算子
RT-DETR改进策略【Neck】| 使用CARAFE轻量级通用上采样算子
428 11
RT-DETR改进策略【Neck】| 使用CARAFE轻量级通用上采样算子
|
JSON 数据挖掘 数据格式
Pandas处理JSON文件read_json()一文详解+代码展示
Pandas处理JSON文件read_json()一文详解+代码展示
2273 0
Pandas处理JSON文件read_json()一文详解+代码展示
|
存储 缓存 安全
Rockchip系列之RK3568 Android设备固件和分区信息
Rockchip系列之RK3568 Android设备固件和分区信息
2751 0
|
Java 编译器 数据安全/隐私保护
Java语言包(Package)深入解析
Java语言包(Package)深入解析
791 0