高光谱图像包含丰富的空间 - 光谱信息,在分类任务中具有重要价值。然而,现有 Transformer 模型在处理 HSI 场景时面临挑战,固定感受野无法适应不同 HSI 对象所需的有效上下文尺度,影响分类精度。例如,不同土地覆盖类型在 HSI 中呈现出不同的空间和光谱特征,需要不同大小的感受野来准确识别 。
上面是原模型,下面是改进模型

1. Kernel Selective Fusion Attention (KSFA)介绍
KSFA 通过一系列操作实现对多尺度特征的选择和融合,以适应不同土地覆盖类型的上下文尺度需求。首先,利用扩张深度卷积构建大感受野获取特征,再通过空间 - 光谱选择机制,根据不同土地覆盖类型的特点,自适应地融合合适感受野大小的特征。在空间选择方面,通过对不同感受野卷积核提取的特征进行拼接、池化和卷积操作,生成空间选择掩码;在光谱选择方面,利用全局平均池化和全连接层生成光谱注意力特征,再通过 softmax 操作得到光谱选择掩码,最终通过矩阵乘法得到空间 - 光谱选择权重,对特征图进行加权融合 。
从提供的图片来看,调制融合模块KSFA模块主要包含以下几个部分:
KSFA 主要由两部分组成。一是通过两个解耦的深度卷积(DwConv)对输入特征进行处理,使用不同大小的卷积核(如 3×3 和 5×5)和扩张率(如 d = 1 和 d = 2),并经过 1×1 卷积层整合通道信息和统一维度,得到不同感受野的上下文特征;二是空间 - 光谱选择机制,包括空间选择和光谱选择。空间选择通过对不同感受野特征进行拼接、池化、卷积和激活操作生成空间选择掩码;光谱选择通过全局平均池化、全连接层和 softmax 操作生成光谱选择掩码,最终将两者结合得到空间 - 光谱选择权重,对特征图加权融合得到输出 。
2. YOLOv11与调制融合模块MFM的结合
将 KSFA 添加到 YOLOv11 的 C3K2 模块时,先在C3K2模块的卷积层后接入 KSFA。利用 KSFA 的多尺度卷积和空间 - 光谱选择机制,自适应调整感受野,融合不同尺度特征,增强C3K2 模块对不同尺寸目标特征的捕捉能力,提升 YOLOv11在复杂场景目标检测中的性能。
3. 调制融合模块MFM代码部分
视频讲解:
YOLOv8_improve/YOLOv11.md at master · tgf123/YOLOv8_improve · GitHub
用一篇论文教您如何使用YOLOv11改进模块写一篇1、2区论文_哔哩哔哩_bilibili
YOLOv11模型改进讲解,教您如何修改YOLOv11_哔哩哔哩_bilibili
YOLOv11全部代码,现有几十种改进机制。
4. 调制融合模块MFM引入到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_KSFA.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
)