YOLO11改进-模块-引入凝聚注意力机制Condensed Attention解决遮挡、小目标问题

         传统卷积神经网络(CNNs)在图像恢复中存在局限性,如非动态权重限制实例自适应能力,稀疏连接限制全局依赖捕捉。基于 Transformer 的方法虽能捕获全局依赖,但全局注意力计算成本高。现有高效注意力机制,如局部窗口注意力、移位窗口注意力和通道注意力,虽提高了效率,但仍只能在局部范围内捕获依赖,未充分发挥 Transformer 潜力。为克服这些问题,需要一种新的方法来高效捕获全局依赖,这促使了 CA 的提出。

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

改进后的模型

1. 凝聚注意力机制Condensed Attention介绍 

       CA 的核心理论基于特征聚合、注意力计算和特征恢复的三步范式。通过在注意力计算前对通道和空间特征进行聚合,减少冗余特征,降低维度,从而在可接受的计算成本下进行全局注意力计算。在计算完注意力后,再恢复特征的空间和通道维度,以保持与输入特征的一致性。这种先降维计算注意力再恢复维度的方式,使得在超像素层面高效捕获全局依赖成为可能。

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

CA 主要包含特征聚合与恢复以及通道和空间注意力两部分结构。

         特征聚合与恢复:在特征聚合阶段,先通过点卷积沿通道维度聚合特征,得到通道压缩特征,再利用通道分组卷积沿空间维度聚合,得到超像素特征。在特征恢复阶段,先通过 1×1 通道分组卷积和像素重排恢复空间特征,再使用点卷积恢复通道特征,使输出特征与输入特征的分辨率和通道数相同。

         通道和空间注意力:为充分捕获超像素的全局依赖,CA 在超像素特征上依次执行通道和空间注意力。在计算过程中,引入通道切片和合并机制,先将通道特征投影成多个切片,再进行多头注意力计算,最后合并切片。通道和空间注意力的计算过程相似,仅在计算注意力时的维度不同,分别沿通道和空间维度计算,这种结构设计提高了方法的效率和有效性。

2. YOLOv11与CA的结合          

 本文提出用 CA 模块替换 C2PSA 模块中的多头注意力机制。CA 模块通过特征聚合、计算注意力。这一替换有望提升模型计算效率,增强对图像全局特征的捕捉能力,优化模型在目标检测任务中的表现。

3. CA代码部分

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

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

YOLOv11模型改进讲解,教您如何根据自己的数据集选择最优的模块提升精度_哔哩哔哩_bilibili

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

 4. 将CA引入到YOLOv11中

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

             

第二:在task.py中导入

 ​​​     ​​​​​​​     

第三:在task.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_CAttention.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、付费专栏及课程。

余额充值