Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >YOLOv8改进:Dual-ViT:一种多尺度双视觉Transformer ,Dualattention助力检测| 顶刊TPAMI 2023

YOLOv8改进:Dual-ViT:一种多尺度双视觉Transformer ,Dualattention助力检测| 顶刊TPAMI 2023

原创
作者头像
AI小怪兽
发布于 2023-10-08 05:24:00
发布于 2023-10-08 05:24:00
1.7K00
代码可运行
举报
文章被收录于专栏:YOLO大作战YOLO大作战
运行总次数:0
代码可运行

💡💡💡本文独家改进:DualViT:一种新的多尺度视觉Transformer主干,它在两种交互路径中对自注意力学习进行建模,即学习更精细像素级细节的像素路径和提取整体全局语义信息的语义路径,性能表现出色,Dualattention引入到YOLOv8实现创新涨点!!!

Dualattention | 亲测在多个数据集能够实现大幅涨点

1.Dual-ViT

论文:Dual Vision Transformer | IEEE Journals & Magazine | IEEE Xplore

摘要:以前的工作已经提出了几种降低自注意力机制计算成本的策略。其中许多工作考虑将自注意力过程分解为区域和局部特征提取过程,每个过程产生的计算复杂度要小得多。然而,区域信息通常仅以由于下采样而丢失的不希望的信息为代价。在本文中,作者提出了一种旨在缓解成本问题的新型Transformer架构,称为双视觉Transformer(Dual ViT)。新架构结合了一个关键的语义路径,可以更有效地将token向量压缩为全局语义,并降低复杂性。这种压缩的全局语义通过另一个构建的像素路径,作为学习内部像素级细节的有用先验信息。然后将语义路径和像素路径整合在一起,并进行联合训练,通过这两条路径并行传播增强的自注意力信息。因此,双ViT能够在不影响精度的情况下降低计算复杂度。实证证明,双ViT比SOTA Transformer架构提供了更高的精度,同时降低了训练复杂度。

如图1(a)所示。Twins(上图(b))在SRA之前添加了额外的局部分组自注意力层,以通过区域内相互作用进一步增强表示。RegionViT(上图(c))通过区域和局部自注意力分解原始注意力。然而,由于上述方法严重依赖于特征映射到区域的下采样,在有效节省总计算成本的同时,观察到了明显的性能下降。

如上图(d)所示,双ViT由两个特殊路径组成,分别称为“语义路径”和“像素路径”。通过构造的“像素路径”进行局部像素级特征提取是强烈依赖于“语义路径”之外的压缩全局先验。由于梯度同时通过语义路径和像素路径,因此双ViT训练过程可以有效地补偿全局特征压缩的信息损失,同时减少局部特征提取的困难。前者和后者都可以并行显著降低计算成本,因为注意力大小较小,并且两条路径之间存在强制依赖关系。

在本文中,我们提出了一种新颖的 Transformer 架构,它优雅地利用全局语义进行自注意力学习,即双视觉 Transformer (Dual-ViT)。

2.DualAttention引入到yolov8

2.1新建加入ultralytics/nn/attention/dualvit.py

核心代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Attention(nn.Module):
    def __init__(self, dim, num_heads):
        super().__init__()
        assert dim % num_heads == 0, f"dim {dim} should be divided by num_heads {num_heads}."

        self.dim = dim
        self.num_heads = num_heads
        head_dim = dim // num_heads
        self.scale = head_dim ** -0.5

        self.q = nn.Linear(dim, dim)
        self.kv = nn.Linear(dim, dim * 2)
        self.proj = nn.Linear(dim, dim)
        self.apply(self._init_weights)

    def _init_weights(self, m):
        if isinstance(m, nn.Linear):
            trunc_normal_(m.weight, std=.02)
            if isinstance(m, nn.Linear) and m.bias is not None:
                nn.init.constant_(m.bias, 0)
        elif isinstance(m, nn.LayerNorm):
            if m.bias is not None:
                nn.init.constant_(m.bias, 0)
            if m.weight is not None:
                nn.init.constant_(m.weight, 1.0)
        elif isinstance(m, nn.Conv2d):
            fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels
            fan_out //= m.groups
            m.weight.data.normal_(0, math.sqrt(2.0 / fan_out))
            if m.bias is not None:
                m.bias.data.zero_()

    def forward(self, x):
       # x =x.permute(3, 0, 1, 2)
        B, H, W, C = x.shape

        N = H * W
        q = self.q(x).reshape(B, N, self.num_heads, C // self.num_heads).permute(0, 2, 1, 3)
        kv = self.kv(x).reshape(B, -1, 2, self.num_heads, C // self.num_heads).permute(2, 0, 3, 1, 4)
        k, v = kv[0], kv[1]
        attn = (q @ k.transpose(-2, -1)) * self.scale
        attn = attn.softmax(dim=-1)
        x = (attn @ v).transpose(1, 2).reshape(B, H, W , C)
        x = self.proj(x)
        return x

详见:https://cv2023.blog.csdn.net/article/details/133375417

2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
可视化VIT中的注意力
来源:DeepHub IMBA 本文约4000字,建议阅读8分钟 本文为你介绍ViT模型。 2022年, Vision Transformer (ViT)成为卷积神经网络(cnn)的有力竞争对手,
数据派THU
2023/04/18
1.2K0
可视化VIT中的注意力
preprint版本 | 何凯明大神新作MAE | CVPR2022最佳论文候选
本文证明了蒙面自动编码器(MAE)是一种可扩展的计算机视觉自监督学习器。我们的MAE方法很简单:我们屏蔽输入图像的随机补丁并重建丢失的像素。
机器学习炼丹术
2021/12/06
1.3K0
preprint版本 | 何凯明大神新作MAE | CVPR2022最佳论文候选
YOLOv8改进:全网原创首发 | 多尺度空洞注意力(MSDA) | 中科院一区顶刊 DilateFormer 2023.9
本文全网首发独家改进:多尺度空洞注意力(MSDA)采用多头的设计,在不同的头部使用不同的空洞率执行滑动窗口膨胀注意力(SWDA),全网独家首发,创新力度十足,适合科研
AI小怪兽
2023/10/20
2.3K0
YoloV8改进策略:注意力改进|引入DeBiLevelRoutingAttention注意力模块(全网首发)
在计算机视觉领域,目标检测任务的性能提升一直是研究热点。我们基于对YoloV8模型的深入理解,创新性地引入了DeBiLevelRoutingAttention(简称DBRA)注意力模块,旨在进一步增强模型的特征提取能力和目标检测精度。
AI浩
2024/10/22
9580
YoloV8改进策略:注意力改进|引入DeBiLevelRoutingAttention注意力模块(全网首发)
金字塔Transformer,更适合稠密预测任务的Transformer骨干架构
以CNN为骨干的方案在计算机视觉的各个领域均取得极大的成功,本文研究了一种简单的无卷积骨干网络用于诸多稠密预测任务(包含检测、分割等)。近来提出的Transformer(ViT)主要是针对图像分类任务而设计,我们提出稠密预测任务提出了一种PVT方案(Pyramid Vision Transformer),它克服了将ViT向稠密预测任务迁移的困难。(1) 不同于ViT的低分辨率输出、高计算复杂度与内存消耗,PVT不仅可以得到更高分辨率的输出(这对于稠密预测任务尤为重要),同时按照金字塔形式渐进式收缩特征分辨率;(2) PVT继承了CNN与Transformer的优势,通过简单的替换CNN骨干使其成为不同视觉任务的统一骨干结构;(3) 通过充分的实验验证了PVT的优越性,在目标检测、语义分割、实例分割等任务上PVT均取得了优异性能。比如RetinaNet+PVT在COCO数据集上取得了40.4AP指标,超越了RetinaNet+ResNet50的36.3AP。
AIWalker
2021/03/04
1.2K0
金字塔Transformer,更适合稠密预测任务的Transformer骨干架构
一文了解视觉Transformer解析 !!
自2017年“注意力就是一切”的理念问世以来,Transformer模型便迅速再自然语言处理(NLP)领域展露头角,确立了其领先地位。到了2021年,“一张图片等于16x16个单词”的理念成功将Transformer模型引入计算机视觉任务中。自此以后,众多基于Transformer的架构纷纷涌现,应用于计算机视觉领域。
JOYCE_Leo16
2025/02/02
6051
一文了解视觉Transformer解析 !!
MoA-Transformer | Swin-Transformer应该如何更好地引入全局信息?
基于Transformer的体系结构在自然语言处理(NLP)领域取得了巨大的成功。受Transformer在语言领域的巨大成功的启发,Vision Transformer被提出,并在ImageNet数据集上取得了优秀的性能。Vision Transformer就像NLP中的word token一样,将图像分割成patches并输入Transformer之中,并通过Transformer的几个multi-head self-attention层来建立远程依赖关系。
集智书童公众号
2022/02/11
1K0
MoA-Transformer | Swin-Transformer应该如何更好地引入全局信息?
YOLOv8优化策略:全新的聚焦线性注意力模块(Focused Linear Attention)| ICCV2023 FLatten Transforme
本文独家改进:全新的聚焦线性注意力模块(Focused Linear Attention),既高效又具有很强的模型表达能力,解决视觉Transformer计算量过大的问题,最终引入到YOLOv8,做到二次创新;
AI小怪兽
2023/11/10
8980
【YOLOv8】YOLOv8改进系列(8)----替换主干网络之Swin Transformer
论文介绍了一种新的视觉Transformer模型——Swin Transformer,它旨在成为计算机视觉领域的通用骨干网络。Swin Transformer通过其独特的层次化结构和移位窗口(Shifted Windows)机制,解决了传统Transformer在视觉任务中的计算复杂度问题,并在图像分类、目标检测和语义分割等多个任务中取得了优异的性能。
HABuo
2025/03/19
4170
【YOLOv8】YOLOv8改进系列(8)----替换主干网络之Swin Transformer
YoloV8改进策略:注意力改进|VOLO,视觉识别中的视觉展望器|即插即用|附代码+改进方法
本文参考的是《VOLO:视觉识别中的视觉展望器》一文,该论文主要讨论了视觉识别领域中卷积神经网络(CNNs)与视觉转换器(ViTs)的性能对比,并提出了一个新的模型架构——Vision Outlooker(VOLO)。VOLO通过引入一种新颖的前景注意力机制(Outlook Attention),在ImageNet分类任务上实现了卓越的性能,且能够很好地迁移到下游任务,如语义分割。
AI浩
2024/11/13
1.5K0
YoloV8改进策略:注意力改进|VOLO,视觉识别中的视觉展望器|即插即用|附代码+改进方法
【YOLOv8】YOLOv8改进系列(5)----替换主干网络之EfficientFormerV2
这篇论文介绍了一种名为 EfficientFormerV2 的新型高效视觉模型,旨在解决如何在移动设备上实现与 MobileNet 相当的模型大小和推理速度的同时,达到与 Vision Transformers (ViTs) 相似的高性能。
HABuo
2025/03/11
3610
【YOLOv8】YOLOv8改进系列(5)----替换主干网络之EfficientFormerV2
YOLOv8独家首发改进:聚合全局、局部信息模块D-Mixer和全新重叠空间降维注意力 | TransXNet ,CNN 与 ViT 的完美结合,2023.11
💡💡💡本文独家改进:改进1)重叠空间降维注意力(OSRA),2)混合网络模块(D-Mixer),聚合全局信息和局部细节,分别引入到YOLOv8,做到二次创新;
AI小怪兽
2023/11/28
1K0
图像恢复SwinIR: Image Restoration Using Swin Transformer
在图像超分辨率、图像去噪、压缩等图像修复(Image restoration)任务中,卷积神经网络目前仍然是主流。但是卷积神经网络有以下两个缺点:
JOYCE_Leo16
2024/03/19
1.7K0
图像恢复SwinIR: Image Restoration Using Swin Transformer
【AI系统】EfficientFormer 系列
本文主要介绍一种轻量化的 Transformer 结构,在获得高性能的同时,能够保持一定的推理速度。以延迟为目标进行优化设计。通过延迟分析重新探讨 ViT 及其变体的设计原则。
用户11307734
2024/12/05
2000
深度学习应用篇-计算机视觉-图像分类3:ResNeXt、Res2Net、Swin Transformer、Vision Transformer等模型结构、实现、
相较于VGG的19层和GoogLeNet的22层,ResNet可以提供18、34、50、101、152甚至更多层的网络,同时获得更好的精度。但是为什么要使用更深层次的网络呢?同时,如果只是网络层数的堆叠,那么为什么前人没有获得ResNet一样的成功呢?
汀丶人工智能
2023/06/08
2.2K0
深度学习应用篇-计算机视觉-图像分类3:ResNeXt、Res2Net、Swin Transformer、Vision Transformer等模型结构、实现、
【图像分类】Vision Transformer理论解读+实践测试
Vision Transformer是2021年谷歌在ICLR上提出的算法,算法原理并不复杂,但是其价值是开创性的。它首次将NLP领域火热的Transformer模型架构移植到了CV领域,打破了这两个领域壁垒,并取得不错的成效。
zstar
2022/09/20
3.1K0
【图像分类】Vision Transformer理论解读+实践测试
YOLOv12源码分析+如何训练自己的数据集(NEU-DET缺陷检测为案列)
💡💡💡本文内容:YOLOv12创新点A2C2f和Area Attention结构分析,以及如何训练自己的私有数据集
AI小怪兽
2025/02/25
1.1K2
计算机视觉中常用的注意力机制
注意力机制起初是作为自然语言处理中的工作Attention Is All You Need被大家所熟知,从而也引发了一系列的XX is All You Need的论文命题,SENET-Squeeze-and-Excitation Networks是注意力机制在计算机视觉中应用的早期工作之一,并获得了2017年imagenet, 同时也是最后一届Imagenet比赛的冠军,后面就又出现了各种各样的注意力机制,应用在计算机视觉的任务中。
为为为什么
2022/08/09
8860
计算机视觉中常用的注意力机制
图解swin transformer
针对上述两个问题,我们提出了一种包含滑窗操作,具有层级设计的Swin Transformer。
BBuf
2021/04/30
5.6K1
OutLook Attention:具有局部信息感知能力的ViT
近段时间,Transformer-based模型在Visual Recognition领域取得了非常大的进展。但是如果不借助额外的训练数据,Transformer-based模型离CNN-based模型还是具有一定的差距(NFNet-F5(CNN-based):86.8%,CaiT(Transformer-based):86.5%)。作者认为,这是因为token embedding并没有进行细粒度特征表示,因此本文提出了一种新的Attention方式,通过局部信息的感知,能够获得更加细粒度的特征表示。
BBuf
2021/07/23
7760
推荐阅读
可视化VIT中的注意力
1.2K0
preprint版本 | 何凯明大神新作MAE | CVPR2022最佳论文候选
1.3K0
YOLOv8改进:全网原创首发 | 多尺度空洞注意力(MSDA) | 中科院一区顶刊 DilateFormer 2023.9
2.3K0
YoloV8改进策略:注意力改进|引入DeBiLevelRoutingAttention注意力模块(全网首发)
9580
金字塔Transformer,更适合稠密预测任务的Transformer骨干架构
1.2K0
一文了解视觉Transformer解析 !!
6051
MoA-Transformer | Swin-Transformer应该如何更好地引入全局信息?
1K0
YOLOv8优化策略:全新的聚焦线性注意力模块(Focused Linear Attention)| ICCV2023 FLatten Transforme
8980
【YOLOv8】YOLOv8改进系列(8)----替换主干网络之Swin Transformer
4170
YoloV8改进策略:注意力改进|VOLO,视觉识别中的视觉展望器|即插即用|附代码+改进方法
1.5K0
【YOLOv8】YOLOv8改进系列(5)----替换主干网络之EfficientFormerV2
3610
YOLOv8独家首发改进:聚合全局、局部信息模块D-Mixer和全新重叠空间降维注意力 | TransXNet ,CNN 与 ViT 的完美结合,2023.11
1K0
图像恢复SwinIR: Image Restoration Using Swin Transformer
1.7K0
【AI系统】EfficientFormer 系列
2000
深度学习应用篇-计算机视觉-图像分类3:ResNeXt、Res2Net、Swin Transformer、Vision Transformer等模型结构、实现、
2.2K0
【图像分类】Vision Transformer理论解读+实践测试
3.1K0
YOLOv12源码分析+如何训练自己的数据集(NEU-DET缺陷检测为案列)
1.1K2
计算机视觉中常用的注意力机制
8860
图解swin transformer
5.6K1
OutLook Attention:具有局部信息感知能力的ViT
7760
相关推荐
可视化VIT中的注意力
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档