YOLO12改进-模块-引入​双域条带注意力机制DSAM 解决卷积中卷积核固定和感受野固定问题,以及transformer计算量大的问题

       图像恢复(Image Restoration)旨在从退化的观测图像中重建高质量的图像,是计算机视觉中的经典问题。然而,由于图像退化的复杂性和多样性(如雾、雪、噪声、模糊等),传统方法依赖手工特征和假设,难以应对真实场景中的复杂退化。近年来,深度学习方法,尤其是卷积神经网络(CNN)和Transformer,在图像恢复任务中取得了显著进展,但仍存在以下挑战:

  1. ​CNN的局限性:卷积核是静态的,无法自适应输入特征,难以处理空间变化的退化(如非均匀模糊)。有限的感受野难以建模大尺度退化(如全局雾霾或大范围模糊)。

  2. ​Transformer的高计算复杂度:Transformer通过自注意力机制建模长程依赖,但其计算复杂度与图像尺寸成二次方关系,尤其对高分辨率图像不友好

      为了解决这些问题,​双域条带注意力机制(Dual-Domain Strip Attention Mechanism, DSAM)​被提出,旨在通过空间和频率域的高效特征聚合,以低计算成本提升图像恢复效果。

上面是原模型,下面是改进模型

改进后的模型

1. 双域条带注意力机制DSAM介绍 

       DSAM(Dual-Domain Strip Attention Mechanism)的核心思想是通过空间域频率域的双重注意力机制,高效地捕捉图像中的上下文信息,并利用多尺度学习处理不同大小的退化问题。其设计灵感来源于以下两点:

 ​       空间域的长程依赖建模:传统卷积的感受野有限,难以建模大尺度退化;自注意力虽能捕捉长程依赖,但计算复杂度高。DSAM通过条带注意力在水平和垂直方向上高效聚合信息,隐式扩展感受野。

        频率域的频谱差异利用:退化图像与干净图像在频谱上存在显著差异,DSAM通过条带池化分离高低频成分,并利用轻量注意力参数动态调制,提升频谱恢复能力。

从提供的图片来看,DSAM模块主要包含以下几个部分: 

      DSAM(双域条带注意力机制)通过多尺度和双域融合,高效地增强特征表示能力。其结构主要包括以下几个部分:

1. 多尺度频率处理:输入特征首先通过三个不同条带大小的频率条带注意力单元(FSA)进行并行处理。这三个FSA分别使用不同的条带尺寸(如K=7、K=11和全局条带),以捕捉不同尺度的频率信息。处理后的特征通过1×1卷积进行融合和细化,确保多尺度频率信息的有效整合。

2. 多尺度空间处理:融合后的特征被分为两组,分别送入两个不同条带大小的空间条带注意力单元(SSA)进行处理。例如,一组使用K=7的SSA,另一组使用K=11的SSA。这种设计使得模型能够同时处理局部和全局的空间上下文信息。最后,两组处理后的特征进行拼接,形成最终的输出。

3. 双域协同:DSAM的核心思想是结合空间域和频率域的优势。空间域:通过SSA捕捉图像的结构信息,包括局部细节和全局上下文。频率域:通过FSA校正图像的频谱差异,恢复高频细节和低频平滑区域。双域信息的互补性使得模型能够更全面地优化特征,提升图像恢复的质量。

2. YOLOv11与DSAM的结合          

 基于上述的想法,本文将其与C3K2相结合,通过SSA捕捉图像的 局部细节和全局上下文。通过FSA获取图像的频谱特征和高频细节。在小目标、多尺度、遮挡、噪声中都可以使用。

3. DSAM代码部分

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

更多代码:https://github.com/tgf123/YOLOv8_improve/blob/master/YOLOV12.md

通过网盘分享的文件:YOLOv12模块
链接: https://pan.baidu.com/s/1roit42FxOING9kiy24A4Zw 提取码: ek72

YOLO12改进-模块-引入多维协作注意力MCAM 抗背景干扰,增强多尺度、小目标_哔哩哔哩_bilibili

YOLOv11全部代码,现有几十种改进机制。

 4. 将DSAM引入到YOLOv12中

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

            ​​​​​​ 

第二:在task.py中导入

 ​​​          

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

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

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

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


from ultralytics.models import NAS, RTDETR, SAM, YOLO, FastSAM, YOLOWorld

if __name__=="__main__":

    # 使用自己的YOLOv12.yamy文件搭建模型并加载预训练权重训练模型
    model = YOLO(r"E:\Part_time_job_orders\YOLO_NEW\YOLOv12\ultralytics\cfg\models\12\yolo12_DSAM.yaml")\
        .load(r'E:\Part_time_job_orders\YOLO_NEW\YOLOv12\yolo12n.pt')  # build from YAML and transfer weights

    results = model.train(data=r'E:\Part_time_job_orders\YOLO\YOLOv12\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
                          )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值