【YOLOv8改进 - 注意力机制】DoubleAttention: 双重注意力机制,全局特征聚合和分配

简介: YOLOv8专栏探讨了该目标检测模型的创新改进,如双重注意力块,它通过全局特征聚合和分配提升效率。该机制集成在ResNet-50中,在ImageNet上表现优于ResNet-152。文章提供了论文、代码链接及核心代码示例。更多实战案例与详细配置见相关CSDN博客链接。

YOLOv8目标检测创新改进与实战案例专栏

专栏目录: YOLOv8有效改进系列及项目实战目录 包含卷积,主干 注意力,检测头等创新机制 以及 各种目标检测分割项目实战案例

专栏链接: YOLOv8基础解析+创新改进+实战案例

介绍

image-20240716222919922

摘要

学习捕捉远程关系是图像/视频识别的基础。现有的CNN模型通常依赖于增加深度来建模这种关系,这效率极低。在这项工作中,我们提出了“双重注意力块”,这是一个新颖的组件,它从输入图像/视频的整个时空空间聚合和传播有用的全局特征,使后续的卷积层能够高效地访问整个空间的特征。该组件设计了两个步骤的双重注意力机制,第一步通过二阶注意力池化将整个空间的特征聚集到一个紧凑集,第二步通过另一个注意力自适应地选择和分配特征到每个位置。提出的双重注意力块易于采用,可以方便地插入现有的深度神经网络中。我们进行了广泛的消融研究和实验,以评估其在图像和视频识别任务中的性能。在图像识别任务中,配备了我们双重注意力块的ResNet-50在ImageNet-1k数据集上以超过40%的参数量和更少的FLOPs超越了更大规模的ResNet-152架构。在动作识别任务中,我们提出的模型在Kinetics和UCF-101数据集上实现了最新的最先进结果,效率显著高于最近的工作。

文章链接

论文地址:论文地址

代码地址:代码地址

基本原理

双重注意力机制(Double Attention)的详细介绍及其技术原理

技术原理

双重注意力机制(Double Attention Mechanism)由两个主要步骤组成:特征聚合(Feature Gathering)和特征分配(Feature Distribution)。这一机制旨在有效地捕获输入数据中全局特征,从而使后续的卷积层能够更高效地访问这些特征。

  1. 特征聚合(Feature Gathering)

    • 输入张量:$X \in \mathbb{R}^{c \times d \times h \times w}$,其中 $c$ 是通道数,$d$ 是时间维度,$h$ 和 $w$ 是空间维度。
    • 局部特征:每个位置 $i$ 处的局部特征记为 $v_i$。
    • 聚合函数
      $$ g_i = A \cdot \text{softmax}(b_i)^T $$
      其中 $A$ 和 $B$ 是由不同卷积层生成的特征图,分别表示为 $A = \phi(X; W\phi)$ 和 $B = \text{softmax}(\theta(X; W\theta))$。
  2. 特征分配(Feature Distribution)

    • 分配函数
      $$ z_i = G_{\text{gather}}(X) \cdot v_i $$
      其中 $v_i$ 是位置 $i$ 的注意力向量,确保 $\sumj v{ij} = 1$。
  3. 双重注意力块(Double Attention Block)

    • 组合操作
      $$ Z = G_{\text{gather}}(X, V) = \left[ \phi(X; W_\phi) \cdot \text{softmax}(\theta(X; W_\theta))^T \right] \cdot \text{softmax}(\rho(X; W_\rho)) $$
      这一步包括:
      • 特征聚合:使用二阶注意力池化。
      • 特征分配:通过注意力向量适应性地分配局部需要的特征。
    • 计算图:包括双线性池化和注意力机制(参见文档中的实现图)。

image-20240716222809853

核心代码

class DoubleAttention(nn.Module):

    def __init__(self, in_channels, c_m, c_n, reconstruct=True):
        super().__init__()
        self.in_channels = in_channels
        self.reconstruct = reconstruct
        self.c_m = c_m
        self.c_n = c_n
        # 定义三个1x1卷积层
        self.convA = nn.Conv2d(in_channels, c_m, 1)
        self.convB = nn.Conv2d(in_channels, c_n, 1)
        self.convV = nn.Conv2d(in_channels, c_n, 1)
        # 如果需要重构,定义一个重构卷积层
        if self.reconstruct:
            self.conv_reconstruct = nn.Conv2d(c_m, in_channels, kernel_size=1)

task与yaml配置

详见: https://blog.csdn.net/shangyanaf/article/details/140478959

相关文章
|
27天前
|
机器学习/深度学习 计算机视觉
RT-DETR改进策略【注意力机制篇】| GAM全局注意力机制: 保留信息以增强通道与空间的相互作用
RT-DETR改进策略【注意力机制篇】| GAM全局注意力机制: 保留信息以增强通道与空间的相互作用
31 3
RT-DETR改进策略【注意力机制篇】| GAM全局注意力机制: 保留信息以增强通道与空间的相互作用
|
1月前
|
机器学习/深度学习 计算机视觉
YOLOv11改进策略【注意力机制篇】| GAM全局注意力机制: 保留信息以增强通道与空间的相互作用
YOLOv11改进策略【注意力机制篇】| GAM全局注意力机制: 保留信息以增强通道与空间的相互作用
73 1
YOLOv11改进策略【注意力机制篇】| GAM全局注意力机制: 保留信息以增强通道与空间的相互作用
|
27天前
|
机器学习/深度学习 资源调度 数据可视化
RT-DETR改进策略【注意力机制篇】| 引入Shuffle Attention注意力模块,增强特征图的语义表示
RT-DETR改进策略【注意力机制篇】| 引入Shuffle Attention注意力模块,增强特征图的语义表示
52 4
RT-DETR改进策略【注意力机制篇】| 引入Shuffle Attention注意力模块,增强特征图的语义表示
|
1月前
|
机器学习/深度学习 计算机视觉 知识图谱
YOLOv11改进策略【注意力机制篇】| SENet V2 优化SE注意力机制,聚合通道和全局信息
YOLOv11改进策略【注意力机制篇】| SENet V2 优化SE注意力机制,聚合通道和全局信息
52 1
YOLOv11改进策略【注意力机制篇】| SENet V2 优化SE注意力机制,聚合通道和全局信息
|
27天前
|
机器学习/深度学习 计算机视觉
RT-DETR改进策略【注意力机制篇】| WACV-2021 Triplet Attention 三重注意力模块 - 跨维度交互注意力机制优化
RT-DETR改进策略【注意力机制篇】| WACV-2021 Triplet Attention 三重注意力模块 - 跨维度交互注意力机制优化
24 1
RT-DETR改进策略【注意力机制篇】| WACV-2021 Triplet Attention 三重注意力模块 - 跨维度交互注意力机制优化
|
27天前
|
机器学习/深度学习 计算机视觉
RT-DETR改进策略【注意力机制篇】| 2024 蒙特卡罗注意力(MCAttn)模块,提高小目标的关注度
RT-DETR改进策略【注意力机制篇】| 2024 蒙特卡罗注意力(MCAttn)模块,提高小目标的关注度
29 1
RT-DETR改进策略【注意力机制篇】| 2024 蒙特卡罗注意力(MCAttn)模块,提高小目标的关注度
|
27天前
|
机器学习/深度学习 资源调度 计算机视觉
RT-DETR改进策略【注意力机制篇】| NAM 即插即用模块,重新优化通道和空间注意力(含HGBlock二次创新)
RT-DETR改进策略【注意力机制篇】| NAM 即插即用模块,重新优化通道和空间注意力(含HGBlock二次创新)
49 1
RT-DETR改进策略【注意力机制篇】| NAM 即插即用模块,重新优化通道和空间注意力(含HGBlock二次创新)
|
1月前
|
机器学习/深度学习 计算机视觉
YOLOv11改进策略【注意力机制篇】| WACV-2021 Triplet Attention 三重注意力模块 - 跨维度交互注意力机制优化
YOLOv11改进策略【注意力机制篇】| WACV-2021 Triplet Attention 三重注意力模块 - 跨维度交互注意力机制优化
47 1
YOLOv11改进策略【注意力机制篇】| WACV-2021 Triplet Attention 三重注意力模块 - 跨维度交互注意力机制优化
|
1月前
|
机器学习/深度学习 资源调度 计算机视觉
YOLOv11改进策略【注意力机制篇】| NAM注意力 即插即用模块,重新优化通道和空间注意力
YOLOv11改进策略【注意力机制篇】| NAM注意力 即插即用模块,重新优化通道和空间注意力
45 2
YOLOv11改进策略【注意力机制篇】| NAM注意力 即插即用模块,重新优化通道和空间注意力
|
1月前
|
机器学习/深度学习 资源调度 数据可视化
YOLOv11改进策略【注意力机制篇】| 引入Shuffle Attention注意力模块,增强特征图的语义表示
YOLOv11改进策略【注意力机制篇】| 引入Shuffle Attention注意力模块,增强特征图的语义表示
55 1
YOLOv11改进策略【注意力机制篇】| 引入Shuffle Attention注意力模块,增强特征图的语义表示