YOLO算法改进Backbone系列之:Groupmixformer(Advancing Vision Transformers with Group-Mix Attention)

摘要:视觉Transformer(ViTs)已被证明可以通过建模长程依赖关系来增强视觉识别,这种建模使用多头自注意力(MHSA),通常将其表述为查询-键-值计算。然而,从查询和键生成的注意力图只能捕获单个粒度上的token到token的相关性。在本文中,我们认为自注意力应该有一个更全面的机制来捕获token和token组(即多个相邻的token)之间的相关性,以获得更高的表示能力。因此,我们提出了一种先进的替代传统自注意力的方法,即Group-Mix Attention(GMA),它可以同时捕获token到token、token到token组以及token组到token组的相关性,并具有各种不同的组大小。为此,GMA将查询、键和值均匀拆分成多个片段,并执行不同的组聚合来生成组代理。注意力图是基于token和组代理的混合计算出来的,并用于重新组合值中的token和组。基于GMA,我们引入了一个强大的主干网络,即GroupMixFormer,它在图像分类、目标检测和语义分割方面取得了最先进的性能,同时参数数量比现有模型更少。例如,GroupMixFormer-L(具有70.3M参数和384*384输入)。在没有外部数据的情况下,在ImageNet-1K上达到了86.2%的Top1准确率,而GroupMixFormer-B(具有45.8M参数)在ADE20K上达到了51.2%的mIoU

注意力图只描述了单个粒度上每个token对之间的相关性(图1(a)),并且将注意力图与Value相乘只是线性地重新组合了各个token。这个框架显然没有考虑到不同粒度上不同token组(即邻域)之间的相关性。本文提出GMA,来缓解广泛使用的Q-K-V自注意力机制的上述局限性。GMA将token拆分为均匀且不同的片段,并用通过组聚合器生成的组代理替换一些单个token,如图1(b)所示。之后,我们使用查询和键来计算注意力图,并使用它重新组合Value中的组代理和单个令牌。本文提出的GMA具有以下优点:(1)GMA不仅能够建模单个token之间的相关性,还能够建模token组之间的相关性。不同类型的注意力被混合在一起,以从更全面的角度更好地理解token;(2)GMA是高效且易于实现的
在这里插入图片描述
在实现自注意力后,我们还使用三个可学习的线性投影来生成Q、K和V。之后,我们将Q、K、V均匀地分成五个段,每个段参与不同的计算。如图3(左半部分)所示,四个分支的输出被送入注意力计算中(预注意力分支)。在三个预注意力分支中,我们使用各种不同的实现(例如,最小池化、平均池化、最大池化、深度卷积)作为聚合器 Agg,具有不同的内核大小,分别设置为3、5、7。我们进一步通过在最后一个预注意力分支中使用恒等映射而不是聚合器来多样化结构。除了这样一个具有注意力但没有聚合器的分支外,我们还构建了一个具有聚合器但没有注意力的分支,被称为非注意力分支。最后,输出由一个token集成层混合,该层由一个带有归一化和激活的线性投影实现。
在这里插入图片描述

基于提出的Group-Mix Attention,我们引入了一系列名为GroupMixFormer的视觉Transformer。我们采用了四个阶段的分层拓扑。第一个4×patch嵌入层将图像嵌入到token中,这是通过两个连续的3×3卷积层实现的,每个卷积层的步长为2,另外两个3×3层的步长为1。在最后三个阶段开始时,我们使用2×patch嵌入,这也是通过3×3卷积实现的。在每个阶段内,我们构建了几个编码器块。除GMA块外,编码器块还包含一个前馈网络(FFN)、层归一化和恒等变换。对于图像分类,全局平均池化(GAP)后的最终输出token被送入分类器;对于密集预测任务(例如,目标检测和语义分割),特定任务的头部可以利用四个阶段输出的金字塔特征。我们使用不同的架构配置实例化了四个模型。架构超参数包括每个阶段中的编码器块数量L、嵌入维度D和MLP比率R,如下表所示。
在这里插入图片描述

在YOLOv5项目中添加模型作为Backbone使用的教程:
(1)将YOLOv5项目的models/yolo.py修改parse_model函数以及BaseModel的_forward_once函数
在这里插入图片描述在这里插入图片描述

(2)在models/backbone(新建)文件下新建groupmixformer.py,添加如下的代码:
在这里插入图片描述

(3)在models/yolo.py导入模型并在parse_model函数中修改如下(先导入文件):
在这里插入图片描述

(4)在model下面新建配置文件:yolov5_groupmixformer.yaml
在这里插入图片描述

(5)运行验证:在models/yolo.py文件指定–cfg参数为新建的yolov5_groupmixformer.yaml
在这里插入图片描述

  • 24
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值