YOLO11改进-模块-引入空间带状注意力机制(Spatial Strip Attention,SSA)增强模型对空间信息处理能力的重要模块
在图像相关任务中,传统卷积神经网络(CNN)在处理空间信息时,卷积核的感受野有限,难以有效捕捉长距离的空间依赖关系。而自注意力机制虽然能建模长距离依赖,但计算复杂度较高。为了在高效计算的同时更好地捕捉空间上下文信息,研究人员提出了 SSA,旨在改进模型对空间特征的处理能力,提升图像任务的性能。
上面是原模型,下面是改进模型

1. 空间带状注意力机制SSA介绍
SSA 基于注意力机制的思想,通过对输入特征图的不同空间位置赋予不同的权重,使模型能够有选择性地关注重要的空间区域。它利用轻量级的计算模块来生成注意力权重,避免了自注意力机制中过高的计算成本,同时能在水平和垂直方向上扩大感受野,有效聚合相邻位置的信息,从而更好地捕捉空间上下文。
从提供的图片来看,SSA模块主要包含以下几个部分:
从图中可以看到,对于输入特征图(大小为 H×W):
生成水平方向注意力权重:先在水平方向选取大小为 1×K 的带状区域,对其进行全局平均池化(GAP)操作,将特征压缩。接着通过一个卷积层(Conv)和 Sigmoid 函数,生成水平方向的注意力权重。
水平方向信息聚合:将生成的水平方向注意力权重与 1×K 带状区域的特征进行卷积操作(图中 “∗” 表示卷积 ),实现水平方向相邻位置信息的聚合,得到新的特征表示。
生成垂直方向注意力权重:对新的特征表示,在垂直方向选取大小为 K×1 的带状区域,重复上述操作,即进行 GAP、Conv 和 Sigmoid 操作,生成垂直方向的注意力权重。
垂直方向信息聚合:将垂直方向注意力权重与 K×1 带状区域的特征进行卷积,完成垂直方向的信息聚合。
输出:最后,将经过水平和垂直方向处理后的特征与原始输入特征通过跳跃连接(Skip Connection)相加,得到 SSA 的最终输出。
2. YOLOv11与空间带状注意力机制SSA的结合
基于上述的想法,本文将其与C3K2相结合,使用多个维度特征增强特征,关注多尺度、小目标。或者替换SPPF模块使用多个维度特征增强多尺度特征。
3. 空间带状注意力机制SSA代码部分
视频讲解:
YOLOv8_improve/YOLOv11.md at master · tgf123/YOLOv8_improve · GitHubYOLOv11模型改进讲解,教您如何修改YOLOv11_哔哩哔哩_bilibili
YOLOv11模型改进讲解,教您如何根据自己的数据集选择最优的模块提升精度_哔哩哔哩_bilibili
YOLOv11全部代码,现有几十种改进机制。
4. 将空间带状注意力机制SSA引入到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_SSA.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
)