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

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

GRSA由GRL和ES-RPB构成:
-
分组残差线性层(GRL):输入特征在通道维度被均等分割为两部分,每组特征分别通过独立的线性变换层,采用残差连接设计,保留原始特征信息,最终输出通过通道拼接恢复原始维度。
-
指数空间相对位置偏置(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
)
6857

被折叠的 条评论
为什么被折叠?



