MLKA 的提出源于图像超分辨率任务的挑战性,该任务需重建低质量图像缺失的高频信息,但因 LR 与 HR 图像对应关系复杂,寻找像素相关性困难。此前模型扩展容量的方法增加了训练负担和数据收集成本,而采用的注意力机制无法同时获取局部与长距离信息且感受野固定。受视觉注意力研究及 VAN 中 LKA 机制启发,MLKA 结合大核分解与多尺度学习被提出,以克服这些局限,增强模型特征表示能力来更好地应对超分辨率任务挑战。
1. MLKA的原理和结构
原理
解决现有问题:旨在解决先前 SR 模型中注意力机制无法同时摄取局部信息和长距离依赖,以及注意力图感受野固定的问题。通过结合大核分解和多尺度学习,使模型能够在不同粒度级别获取丰富的注意力图,从而聚合全局和局部信息,避免潜在的阻塞伪影。
结合多尺度与大核注意力:将经典的多尺度机制与新兴的大核注意力相结合,以相对较少的计算量建立各种范围的相关性,使模型能够模拟 CNN 和 Transformer 的特性。
结构
MLKA 的结构主要由大核注意力(LKA)、多尺度机制和门控聚合(Gated Aggregation)三部分组成。在大核注意力部分,通过将大核卷积分解为深度卷积、深度可分离卷积和点卷积来构建长距离关系。多尺度机制则将输入特征图分组,对每组特征应用不同参数的 LKA 以获取多尺度的注意力图。门控聚合利用空间门对 LKA 生成的注意力图进行动态校准,避免阻塞效应并学习局部信息,从而使 MLKA 能在不同尺度上自适应调整特征,平衡全局与局部信息利用。
2. YOLOv11与MLKA的结合
本文将YOLOv11模型的MLKA模块相结合 ,组合成C3k2_MLKA模块。在特征融合的时候使用C3k2_MLKA模块有助于更好地整合这些不同尺度的特征信息。通过 MLKA对多尺度特征的自适应调制,可以使得各个尺度的特征更加准确地反映目标的特征,从而提高对不同大小目标的检测能力。
3. MLKA代码部分
YOLOv8_improve/YOLOv11.md at master · tgf123/YOLOv8_improve
YOLOV11全部代码
4. 将MLKA引入到YOLOv11中
第一: 将下面的核心代码复制到D:\bilibili\model\YOLO11\ultralytics-main\ultralytics\nn路径下,如下图所示。
第二:在task.py中导入C3k2_MLKA包
第三:在task.py中的模型配置部分下面代码
第四:将模型配置文件复制到YOLOV11.YAMY文件中
第五:运行成功
from ultralytics.models import NAS, RTDETR, SAM, YOLO, FastSAM, YOLOWorld
if __name__=="__main__":
# 使用自己的YOLOv8.yamy文件搭建模型并加载预训练权重训练模型
model = YOLO(r"D:\model\yolov11\ultralytics\cfg\models\11\yolo11_MLKA.yaml")\
.load(r'D:\model\yolov11\yolo11n.pt') # build from YAML and transfer weights
results = model.train(data=r'D:\model\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
)