YOLO12 改进、魔改|分组残差自注意力GRSA​​,通过分组残差和指数位置偏置设计,以更低计算成本实现更优的特征表示能力,适用于轻量级视觉任务,提高密集目标检测能力

        在单图像超分辨率(SISR)领域,Transformer架构虽已成为主流,但其自注意力机制存在根本性缺陷:计算复杂度与输入尺寸呈二次方增长,导致高分辨率图像处理时资源消耗剧增。如图1(a)所示,传统自注意力模块的参数量(Params)和乘加运算(MACs)远超轻量级场景需求,而现有优化方法(如SwinIR的窗口注意力)仍面临QKV生成冗余和位置编码低效两大瓶颈。尤其在实际应用中,移动端设备往往要求模型参数量控制在1M以下(如LatticeNet仅756K参数),传统方法难以兼顾性能与效率。GRSA的提出正是为了解决这一核心矛盾——通过分组残差结构和指数空间位置编码,在Urban100数据集上实现33.17dB PSNR(×2超分)的同时,将自注意力模块参数量降低60%,为边缘计算场景提供了新的技术路径。   

1.GRSA原理

  1. 分组残差线性层(GRL)​​:
    • 将QKV线性层输入通道分组,用两个独立线性层处理,减少参数量和MACs(乘加运算)。
    • 引入残差连接,将训练空间从线性空间转为残差空间,增强特征学习能力。
  2. 指数空间相对位置偏置(ES-RPB)​​:
    • 通过指数函数映射绝对位置坐标,强化近像素权重,减少噪声干扰和参数冗余。
    • 使用轻量MLP生成位置偏置,提升泛化能力。

GRSA由GRL和ES-RPB构成:

  1. ​分组残差线性层(GRL)​:输入特征在通道维度被均等分割为两部分,每组特征分别通过独立的线性变换层,采用残差连接设计,保留原始特征信息,最终输出通过通道拼接恢复原始维度。

  2. 指数空间相对位置偏置(ES-RPB)​​:采用指数衰减曲线替代传统离散位置编码,通过轻量MLP生成连续可微的位置偏置,在注意力权重计算前注入位置信息。

2.GRSA习作思路

在目标检测中的优点

        GRSA的分组残差设计可高效建模长程依赖关系,减少计算开销的同时保持对微小目标的敏感性。ES-RPB的指数空间映射能更精准捕捉局部位置上下文,提升检测框定位精度,尤其适用于密集场景。    

在图像分割中的优点

        GRSA的轻量化特性适合高分辨率分割任务。ES-RPB通过强化近邻像素关联,减少分割边界的模糊性,而分组残差结构可平衡全局上下文与局部细节的融合效率。       

3. YOLO与GRSA的结合          

         ES-RPB的位置感知能力能优化小目标检测性能,而残差设计可缓解深层网络退化问题。

4.GRSA代码部分

YOLO11|YOLO12|改进| 分组残差自注意力GRSA,通过分组残差和指数位置偏置设计,以更低计算成本实现更优的特征表示能力,提高密集目标检测能力_哔哩哔哩_bilibili

YOLO12模型改进方法,快速发论文,总有适合你的改进,还不改进上车_哔哩哔哩_bilibili

 代码获取:YOLOv8_improve/YOLOV12.md at master · tgf123/YOLOv8_improve · GitHub

5. CSA-ConvBlock引入到YOLOv12中


第一: 先新建一个v12_changemodel,将下面的核心代码复制到下面这个路径当中,如下图如所示。E:\Part_time_job_orders\YOLO_NEW\YOLOv12\ultralytics\v12_changemodel。

  

第二:在task.py中导入

 ​​​                  

第三:在task.py中的模型配置部分下面代码

                      

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

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

     ​​​​​​​ ​​​​​​​​​​​​​​ ​​​​​​​ ​​​​​​​​​​​​​第五:运行代码

from ultralytics.models import NAS, RTDETR, SAM, YOLO, FastSAM, YOLOWorld
import torch
if __name__=="__main__":



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

    results = model.train(data="/home/shengtuo/tangfan/YOLO11/ultralytics/cfg/datasets/VOC_my.yaml",
                          epochs=300,
                          imgsz=640,
                          batch=4,
                          # 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、付费专栏及课程。

余额充值