【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

相关文章
|
5月前
|
机器学习/深度学习 Ruby
YOLOv5改进 | 2023注意力篇 | iRMB倒置残差块注意力机制(轻量化注意力机制)
YOLOv5改进 | 2023注意力篇 | iRMB倒置残差块注意力机制(轻量化注意力机制)
311 0
|
5月前
|
机器学习/深度学习 Ruby
YOLOv8改进 | 2023注意力篇 | iRMB倒置残差块注意力机制(轻量化注意力机制)
YOLOv8改进 | 2023注意力篇 | iRMB倒置残差块注意力机制(轻量化注意力机制)
653 0
|
5月前
|
机器学习/深度学习
YOLOv5改进 | 2023注意力篇 | MLCA混合局部通道注意力(轻量化注意力机制)
YOLOv5改进 | 2023注意力篇 | MLCA混合局部通道注意力(轻量化注意力机制)
380 0
|
3月前
|
机器学习/深度学习 移动开发 自然语言处理
【YOLOv8改进 - 注意力机制】ContextAggregation : 上下文聚合模块,捕捉局部和全局上下文,增强特征表示
【YOLOv8改进 - 注意力机制】ContextAggregation : 上下文聚合模块,捕捉局部和全局上下文,增强特征表示
|
3月前
|
机器学习/深度学习 PyTorch 算法框架/工具
【YOLOv8改进 - 注意力机制】GAM(Global Attention Mechanism):全局注意力机制,减少信息损失并放大全局维度交互特征
YOLO目标检测专栏探讨了模型创新,如注意力机制,聚焦通道和空间信息的全局注意力模组(GAM),提升DNN性能。GAM在ResNet和MobileNet上优于最新方法。论文及PyTorch代码可在给出的链接找到。核心代码展示了GAM的构建,包含线性层、卷积和Sigmoid激活,用于生成注意力图。更多配置详情参阅相关博客文章。
【YOLOv8改进 - 注意力机制】GAM(Global Attention Mechanism):全局注意力机制,减少信息损失并放大全局维度交互特征
|
3月前
|
机器学习/深度学习 计算机视觉
【YOLOv8改进 - 注意力机制】SENetV2: 用于通道和全局表示的聚合稠密层,结合SE模块和密集层来增强特征表示
【YOLOv8改进 - 注意力机制】SENetV2: 用于通道和全局表示的聚合稠密层,结合SE模块和密集层来增强特征表示
|
3月前
|
机器学习/深度学习 算法 计算机视觉
【YOLOv8改进 - 注意力机制】RCS-OSA :减少通道的空间对象注意力,高效且涨点
YOLOv8专栏探讨了YOLO系列的创新改进,提出RCS-YOLO模型,它在脑肿瘤检测中超越YOLOv6/v7/v8,精度提升1%,速度增快60%(达到114.8 FPS)。RCS-OSA模块结合RepVGG/ShuffleNet优点,通过通道重参数化和混洗优化卷积,提升速度和准确性。代码和论文可在提供的链接获取。
|
3月前
|
机器学习/深度学习 图计算 计算机视觉
【YOLOv8改进 - 注意力机制】 CascadedGroupAttention:级联组注意力,增强视觉Transformer中多头自注意力机制的效率和有效性
YOLO目标检测专栏探讨了Transformer在视觉任务中的效能与计算成本问题,提出EfficientViT,一种兼顾速度和准确性的模型。EfficientViT通过创新的Cascaded Group Attention(CGA)模块减少冗余,提高多样性,节省计算资源。在保持高精度的同时,与MobileNetV3-Large相比,EfficientViT在速度上有显著提升。论文和代码已公开。CGA通过特征分割和级联头部增加注意力多样性和模型容量,降低了计算负担。核心代码展示了CGA模块的实现。
|
3月前
|
机器学习/深度学习 计算机视觉
【YOLOv8改进 - Backbone主干】清华大学CloFormer AttnConv :利用共享权重和上下文感知权重增强局部感知,注意力机制与卷积的完美融合
【YOLOv8改进 - Backbone主干】清华大学CloFormer AttnConv :利用共享权重和上下文感知权重增强局部感知,注意力机制与卷积的完美融合
|
4月前
|
机器学习/深度学习 关系型数据库
【YOLOv8改进 - 注意力机制】NAM:基于归一化的注意力模块,将权重稀疏惩罚应用于注意力机制中,提高效率性能
**NAM: 提升模型效率的新颖归一化注意力模块,抑制非显著权重,结合通道和空间注意力,通过批量归一化衡量重要性。在Resnet和Mobilenet上的实验显示优于其他三种机制。源码见[GitHub](https://github.com/Christian-lyc/NAM)。**