YOLO11改进-模块-引入令牌聚合模块TAB 提高小目标 遮挡

        传统基于卷积神经网络(CNN)的方法因卷积的局部机制,在捕捉全局依赖上受限,即便采用复杂网络结构提升性能,也增加了计算资源消耗。基于 Transformer 的方法虽能有效捕捉长距离依赖,但全局自注意力计算复杂度高,现有改进方法如分块处理存在内容不可知等局限。基于聚类的方法,像 SPIN,在长距离信息传播和推理速度上有缺陷,ATD 则因多注意力机制导致计算负担大。这些问题促使了 TAB 的提出,以实现高效的长距离信息交互和快速推理。

上面是原模型,下面是改进模型

改进后的模型

1. 令牌聚合模块TAB介绍 

        基于内容感知的思想,通过计算图像令牌(token)与令牌中心的相似度,将内容相似的令牌聚合在一起。借鉴 Routing Transformer,共享令牌中心并在训练阶段用指数移动平均(EMA)更新,以学习全局令牌中心。基于此,将图像令牌划分为内容相似的组,进而实现更精准的长距离信息交互。

从提供的图片来看,TAB模块主要包含以下几个部分:

        主要由四部分构成。Content-Aware Token Aggregation(CATA)模块负责获取初始令牌中心,按相似度划分令牌组,为解决组内令牌数量不均衡问题还会进一步划分子组,提升并行效率。Intra-Group Self-Attention(IASA)将子组投影得到查询(Q)、键(K)、值(V)矩阵,允许子组的 Q 关注相邻子组的 K,增强并行效率的同时减轻内容相似令牌被拆分的影响。Inter-Group Cross-Attention(IRCA)利用训练阶段令牌中心聚合的全局先验信息,在子组和令牌中心间进行交叉注意力计算,增强全局信息交互。1×1 卷积则用于融合前面模块的输出特征 ,优化特征表达。

2. YOLOv11与令牌聚合模块TAB的结合           

        在 YOLOv11 C3K2 中添加 TAB,能够凭借其内容感知令牌聚合机制,更高效地捕捉长距离依赖关系,整合全局信息,增强对不同尺度目标特征的提取与融合,让模型对大小目标的检测精度得到提升。同时,TAB 优化计算方式,减少冗余计算,提升模型推理速度,使 YOLOv11在保持高检测性能的基础上,能更快速地处理图像,满足实时检测的需求 。

3. 令牌聚合模块TAB代码部分

视频讲解:

YOLOv8_improve/YOLOv11.md at master · tgf123/YOLOv8_improve · GitHub

用一篇论文教您如何使用YOLOv11改进模块写一篇1、2区论文_哔哩哔哩_bilibili

YOLOv11模型改进讲解,教您如何修改YOLOv11_哔哩哔哩_bilibili

YOLOv11全部代码,现有几十种改进机制。

 4. 令牌聚合模块TAB引入到YOLOv11中

第一: 将下面的核心代码复制到D:\model\yolov11\ultralytics\change_model路径下,如下图所示。

                       

第二:在task.py中导入

 ​​​          ​​​​​​​​​​​​​​ ​​​​​​​         

第三:在YOLOv11\ultralytics\nn\tasks.py中的模型配置部分下面代码

   ​​​​​​​​​​​​​​​​​​​​​ ​​​​​​​​​​​​​​ ​​​​​​​ ​​​​​​​    ​​​​​​​ ​​​​​​​  ​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​          

第四:将模型配置文件复制到YOLOV11.YAMY文件中

     ​​​​​​​ ​​​​​​​​​​​​​​ ​​​​​​​ ​​​​​​​​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ ​​​​​​​           

     第五:运行成功

from sympy import false

from ultralytics.models import NAS, RTDETR, SAM, YOLO, FastSAM, YOLOWorld

if __name__=="__main__":

    # 使用自己的YOLOv8.yamy文件搭建模型并加载预训练权重训练模型
    model = YOLO(r"E:\Part_time_job_orders\YOLO\YOLOv11\ultralytics\cfg\models\11\yolo11_TAB.yamy")\
        .load(r'E:\Part_time_job_orders\YOLO\YOLOv11\yolo11n.pt')  # build from YAML and transfer weights

    results = model.train(data=r'E:\Part_time_job_orders\YOLO\YOLOv11\ultralytics\cfg\datasets\VOC_my.yaml',
                          epochs=300,
                          imgsz=640,
                          batch=64,
                          # cache = False,
                          # single_cls = False,  # 是否是单类别检测
                          # workers = 0,
                          # resume=r'D:/model/yolov8/runs/detect/train/weights/last.pt',
                          amp = True
                          )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值