【YOLOv11改进 - 注意力机制】 MSDA(Multi-Scale Dilated Attention):多尺度空洞注意力

简介: 【YOLOv11改进 - 注意力机制】 MSDA(Multi-Scale Dilated Attention):多尺度空洞注意力本文介绍了一种高效的视觉变换器——DilateFormer,通过多尺度扩张注意力(MSDA)模块,在保持高性能的同时显著降低计算成本。MSDA通过在滑动窗口内模拟局部和稀疏的块交互,实现了多尺度特征聚合。实验结果显示,DilateFormer在ImageNet-1K分类、COCO对象检测/实例分割和ADE20K语义分割任务上均取得了优异的性能,且计算成本比现有模型减少70%。

介绍

image-20240221143259781

摘要

作为事实上的解决方案,标准的视觉变换器(ViTs)被鼓励模拟任意图像块之间的长距离依赖性,而全局关注的接受域导致了二次计算成本。视觉变换器的另一个分支受到CNNs启发,利用局部注意力,只模拟小邻域内块之间的交互。尽管这样的解决方案降低了计算成本,但它自然会受到小的关注接受域的限制,这可能会限制性能。在这项工作中,我们探索有效的视觉变换器,以追求计算复杂性和关注接受域大小之间的理想折衷。通过分析ViTs中全局注意力的块交互,我们观察到浅层中的两个关键属性,即局部性和稀疏性,表明在ViTs的浅层中全局依赖性建模的冗余。因此,我们提出多尺度扩张注意力(MSDA),在滑动窗口内模拟局部和稀疏的块交互。通过金字塔架构,我们通过在低级阶段堆叠MSDA块和在高级阶段堆叠全局多头自注意力块,构建了多尺度扩张变换器(DilateFormer)。我们的实验结果表明,我们的DilateFormer在各种视觉任务上实现了最先进的性能。在ImageNet-1K分类任务上,与现有的最先进模型相比,DilateFormer实现了相当的性能,而计算成本减少了70%。我们的DilateFormer-Base在ImageNet-1K分类任务上实现了85.6%的顶级准确率,在COCO对象检测/实例分割任务上实现了53.5%的框mAP/46.1%的掩码mAP,在ADE20K语义分割任务上实现了51.1%的MS mIoU。

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

点击查看文章目录: YOLOv11创新改进系列及项目实战目录 包含卷积,主干 注意力,检测头等创新机制 以及 各种目标检测分割项目实战案例

点击查看专栏链接: YOLOv11目标检测创新改进与实战案例

在这里插入图片描述

文章链接

论文地址:论文地址

代码地址:代码地址

参考文章文章地址

基本原理

MSDA模块的多头设计是指在MSDA中,不同的头部(heads)具有不同的扩张率 ,以实现多尺度的特征聚合和语义信息捕获。通过设置不同的扩张率,每个头部可以在不同的尺度上聚焦于输入特征图的不同区域,从而有效地捕获多尺度的语义信息。这种多头设计使得MSDA能够更全面地理解和利用输入数据的特征,提高了模型的性能和泛化能力。

MSDA(Multi-Scale Dilated Attention)的工作原理如下:

  1. 特征映射处理:给定一个特征映射X,通过线性投影得到相应的查询(Q)、键(K)和值(V)。

  2. 多头设计:将特征映射的通道分成n个不同的头部,每个头部使用不同的扩张率进行多尺度的Sliding Window Dilated Attention(SWDA)操作。

  3. 多尺度SWDA操作:每个头部的SWDA操作用于在不同尺度上捕获语义信息。具体地,对于第i个头部,其输出表示为hi = SWDA(Qi, Ki, Vi, ri),其中ri是第i个头部的扩张率。

  4. 特征聚合:将各个头部的输出进行拼接,然后通过线性层进行特征聚合,得到最终的输出特征表示X。

image-20240221144356079

核心代码


class Globalstage(nn.Module):
    """ A basic Transformer layer for one stage."""
    def __init__(self, dim, depth, num_heads, mlp_ratio=4., qkv_bias=True, qk_scale=None,
                 drop=0., attn_drop=0., drop_path=0., act_layer=nn.GELU, norm_layer=nn.LayerNorm,
                 cpe_per_satge=False, cpe_per_block=False,
                 downsample=True, merging_way=None):

        super().__init__()
        # build blocks
        self.blocks = nn.ModuleList([
            GlobalBlock(dim=dim, num_heads=num_heads,
                        mlp_ratio=mlp_ratio,qkv_bias=qkv_bias,
                        qk_scale=qk_scale, drop=drop, attn_drop=attn_drop,
                        drop_path=drop_path[i] if isinstance(drop_path, list) else drop_path,
                        norm_layer=norm_layer, act_layer=act_layer, cpe_per_block=cpe_per_block)
            for i in range(depth)])

        # patch merging layer
        self.downsample = PatchMerging(dim, int(dim*2), merging_way, cpe_per_satge) if downsample else nn.Identity()

task与yaml配置

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

相关文章
|
机器学习/深度学习 数据可视化 计算机视觉
YOLOv8改进 | 2023注意力篇 | MSDA多尺度空洞注意力(附多位置添加教程)
YOLOv8改进 | 2023注意力篇 | MSDA多尺度空洞注意力(附多位置添加教程)
928 0
|
机器学习/深度学习 数据可视化 测试技术
YOLO11实战:新颖的多尺度卷积注意力(MSCA)加在网络不同位置的涨点情况 | 创新点如何在自己数据集上高效涨点,解决不涨点掉点等问题
本文探讨了创新点在自定义数据集上表现不稳定的问题,分析了不同数据集和网络位置对创新效果的影响。通过在YOLO11的不同位置引入MSCAAttention模块,展示了三种不同的改进方案及其效果。实验结果显示,改进方案在mAP50指标上分别提升了至0.788、0.792和0.775。建议多尝试不同配置,找到最适合特定数据集的解决方案。
3383 0
|
计算机视觉
【YOLOv8改进】 MSDA:多尺度空洞注意力 (论文笔记+引入代码)
该文介绍了DilateFormer,一种新提出的视觉变换器,它在计算效率和关注接受域之间取得平衡。通过分析ViTs,发现浅层的局部性和稀疏性,提出了多尺度扩张注意力(MSDA),用于局部、稀疏的块交互。DilateFormer结合MSDA块和全局多头自注意力块,形成金字塔架构,实现各视觉任务的顶尖性能。与现有最佳模型相比,在ImageNet-1K分类任务上,DilateFormer性能相当但计算成本降低70%,同时在COCO检测/分割和ADE20K语义分割任务上表现优秀。文章还展示了MSDA的创新点,包括多尺度聚合、局部稀疏交互和减少自注意力冗余。此外,
|
11月前
|
机器学习/深度学习 编解码 计算机视觉
YOLOv11改进策略【Head】| ASFF 自适应空间特征融合模块,改进检测头Detect_ASFF
YOLOv11改进策略【Head】| ASFF 自适应空间特征融合模块,改进检测头Detect_ASFF
1757 13
YOLOv11改进策略【Head】| ASFF 自适应空间特征融合模块,改进检测头Detect_ASFF
|
11月前
|
机器学习/深度学习 数据可视化 算法
YOLOv11改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
YOLOv11改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
1919 7
YOLOv11改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
|
11月前
|
计算机视觉
YOLOv11改进策略【Neck】| GFPN 超越BiFPN 通过跳层连接和跨尺度连接改进v11颈部网络
YOLOv11改进策略【Neck】| GFPN 超越BiFPN 通过跳层连接和跨尺度连接改进v11颈部网络
2325 10
YOLOv11改进策略【Neck】| GFPN 超越BiFPN 通过跳层连接和跨尺度连接改进v11颈部网络
|
11月前
|
编解码 异构计算
YOLOv11改进策略【Neck】| BiFPN:双向特征金字塔网络-跨尺度连接和加权特征融合
YOLOv11改进策略【Neck】| BiFPN:双向特征金字塔网络-跨尺度连接和加权特征融合
3023 7
YOLOv11改进策略【Neck】| BiFPN:双向特征金字塔网络-跨尺度连接和加权特征融合
|
11月前
|
机器学习/深度学习 计算机视觉
YOLOv11改进策略【注意力机制篇】| 添加SE、CBAM、ECA、CA、Swin Transformer等注意力和多头注意力机制
YOLOv11改进策略【注意力机制篇】| 添加SE、CBAM、ECA、CA、Swin Transformer等注意力和多头注意力机制
3095 2
YOLOv11改进策略【注意力机制篇】| 添加SE、CBAM、ECA、CA、Swin Transformer等注意力和多头注意力机制
|
11月前
|
机器学习/深度学习 资源调度 算法
YOLOv11改进策略【损失函数篇】| 引入Soft-NMS,提升密集遮挡场景检测精度,包括GIoU-NMS、DIoU-NMS、CIoU-NMS、SIoU-NMS、 EIou-NMS
YOLOv11改进策略【损失函数篇】| 引入Soft-NMS,提升密集遮挡场景检测精度,包括GIoU-NMS、DIoU-NMS、CIoU-NMS、SIoU-NMS、 EIou-NMS
4208 6
|
11月前
|
人工智能
YOLOv11改进策略【损失函数篇】| 2024 引进Focaler-IoU损失函数 加强边界框回归 (Focaler-DIoU、Focaler-GIoU、Focaler-CIoU)
YOLOv11改进策略【损失函数篇】| 2024 引进Focaler-IoU损失函数 加强边界框回归 (Focaler-DIoU、Focaler-GIoU、Focaler-CIoU)
2019 4