YOLO11改进-模块-引入轻量级分组注意力LWGA 动态融合不同层的特征,增强检测精度

        遥感视觉任务在学术和实践中至关重要,但面临诸多挑战。由于卫星的空间分辨率和拍摄角度以及物体的多样性,遥感图像中物体尺寸存在大规模变化,这增加了物体识别和检测的难度。传统的多尺度特征分析和多分支结构特征提取技术虽有一定效果,但存在局限性。多尺度架构可能无法全面表征特定尺度下不同物体大小的特征,多分支架构则因参数和计算负载增加,加剧了轻量级遥感视觉任务的难度。此外,传统轻量级网络通常未考虑遥感图像的特定特征,导致识别和检测能力不足。

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

修改后的模型

1. 轻量级分组注意力LWGA介绍 

      LWGA 模块旨在增强遥感图像中多尺度物体的特征表示。它利用特征图中固有的冗余,通过多种特征提取技术处理每个分区。具体包括:

         点注意力(GPA):利用点注意力原理,优先关注微小物体的特征,通过通道扩展、激活函数处理和通道恢复等操作,生成注意力图,与原始特征结合,保留传统方法易忽略的细微差异。

         局部注意力(RLA):借鉴标准卷积的固有能力,通过特定卷积操作有效提取局部特征,对规则形状物体的特征提取效果较好。

         中距离注意力(SMA):通过 TGFI 模块缩小特征尺寸以增强感受野,同时保留原始位置坐标,整合上下文信息,有效保留不规则结构的中等大小物体的关键特征,之后通过 TGFI 模块插值恢复特征尺寸。

         全局注意力(SGA):针对不同阶段采用不同策略。在阶段 1 和 2,通过 TGFI 模块缩小特征尺寸,进行简单特征提取和卷积操作生成注意力图;阶段 3 和 4,分别采用不同的常用视觉注意力机制生成注意力图,最后恢复特征尺寸并与原始特征相加,增强整体特

       

2. YOLOv11与轻量级分组注意力LWGA的结合           

        使用 LWGA 替换 YOLO11 中的 SPPF,能够增强对多尺度目标的特征捕捉能力。LWGA 通过不同的注意力机制,从点、局部、中距离和全局多个尺度提取特征,相比 SPPF 能更精准地聚焦不同大小目标,提升检测精度。并且 LWGA 在轻量化设计上更具优势,能在保证性能的同时降低计算成本,使模型在资源受限设备上也能高效运行。

3. 轻量级分组注意力LWGA代码部分

视频讲解:

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

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

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

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

 4. 轻量级分组注意力LWGA引入到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_LWGA.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、付费专栏及课程。

余额充值