当前位置: 首页 > news >正文

YOLO11改进-模块-引入可变形交互注意力模块DIA-Module

        在遥感图像融合分类任务中,当前的方法存在一些不足。一方面,图像的离散性会导致一些难以采样的点出现,不利于空间信息的收敛。另一方面,在注意力机制中,通常会聚焦于某一模态的优势特征,如 PAN 图像的纹理和 MS 图像的背景,这样容易忽略其他特征,难以实现不同特征间的交互增强,导致在去冗余过程中丢失有价值的信息,无法充分捕捉目标的多样性,进而影响模型对空间信息的表示和分类性能。为解决这些问题,设计了 DIA - Module。

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

改进后的模型

1. 可变形交互注意力模块DIA-Module介绍 

       DIA - Module 基于不同的池化策略生成具有属性差异的特征,通过特定的梯度调整方法利用跨属性的调制系数来重构特征块的形态,减少冗余样本点信息。同时,不同属性特征之间的相互作用促使神经元和可学习参数在训练过程中更多地参与,增强掩码空间特征的表示能力。在 MS 和 PAN 图像融合中,利用 MS 图像在全局和光滑特征方面的优势以及 PAN 图像在纹理细节方面的优势,通过设置不同的梯度缩放因子调整调制系数,实现对不同模态特征的有效融合和增强。

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

DIA-Module(可变形交互注意力模块)主要由池化操作、下采样、调制系数生成与特征重构、上采样与掩码生成、特征融合这几部分构成,各部分协同工作以增强模型对特征的处理能力:

         池化操作:接收输入特征,分别进行全局平均池化和最大池化。全局平均池化可以获取特征的全局平均信息,反映整体趋势;最大池化则聚焦于局部的突出特征,通过这两种池化操作,得到包含全局平滑性和局部纹理属性的特征。

          下采样:考虑到计算成本,同时为保证输出特征块相邻样本点的相关性,对池化后的特征进行下采样。下采样可以减少数据量,降低计算复杂度,同时保留关键信息,为后续的权重学习提供合适尺寸的输入。

          调制系数生成与特征重构:针对不同模态图像的特点,为下采样后的特征设置相互依赖的调制系数。像 MS 图像在全局和光滑特征上有优势,PAN 图像在纹理细节方面更突出,通过设置不同的梯度缩放因子来调整调制系数,实现对不同模态特征的优化。在 MS 分支,给与纹理相关的调制系数设置较小的梯度缩放因子,稳定获取高兼容性的纹理特征;给与全局特征相关的调制系数设置较大的梯度缩放因子,促进全局特征的快速收敛。在 PAN 分支,设置方式相反。

         上采样与掩码生成:对上一步重构后的特征进行上采样,使其恢复到合适的尺寸,保持与原始特征的一致性。然后将上采样后的特征拼接起来,经过卷积和 sigmoid 函数处理,生成掩码。卷积操作可以提取特征的局部信息,sigmoid 函数将输出值映射到 0 到 1 之间,从而得到具有空间选择性的掩码。

          特征融合:将生成的掩码与原始输入特征相乘,掩码中值较大的区域会增强原始特征相应位置的信息,值较小的区域则抑制对应位置的信息,实现对原始特征的加权和增强,突出重要特征,提升模型对空间信息的表示能力 。     

2. YOLOv11与可变形交互注意力模块DIA-Module 的结合                  

        将本文中的 ADCD-Net 相关模块融入 YOLOv11 进行改进,对C2PSA进行魔改。DIA-Module 通过优化特征处理,增强空间信息表示,使 YOLOv11在复杂场景下对目标的定位更精准;DTM-Module 促进特征交互与重用,让模型更好地利用多尺度信息,提升对不同大小目标的检测能力,从而提高检测精度与稳定性。

3. 可变形交互注意力模块DIA-Module 代码部分视频讲解:

YOLOv8_improve/YOLOv11.md at master · tgf123/YOLOv8_improve · GitHub

YOLOv11模型改进讲解,教您如何修改YOLOv11_哔哩哔哩_bilibili

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

 4. 可变形交互注意力模块DIA-Module 引入到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_DIA_MODEL.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
                          )

相关文章:

  • Python高阶函数-eval深入解析
  • 企业级开发SpringBoost玩转Elasticsearch
  • HashMap 如何解决哈希冲突?ConcurrentHashMap 如何保证线程安全?进程和线程有什么区别?多线程有什么优缺点?...
  • 网页常用字符大全
  • 嵌入式行业常见平台交互协议全解析
  • 2025-04-07(DS复习):Databricks DLT 详解
  • 阶段测试 【过程wp】
  • 【PalladiumZ2 使用专栏 1 -- 波形 trigger 抓取详细介绍】
  • I have something to say about Vue Node.js
  • 二十七- Scala
  • 【仪器仪表专题】案例:信号高电平到底是看顶端值还是最大值?
  • Python 中用于判断一个集合是否为另一个集合的超集issuperset
  • 当前主流的LLM Agent架构、能力、生态和挑战
  • 小球反弹(蓝桥杯C语言)
  • 10 家医院上云用云实践分享|含物联网、AI、HIS、信创等场景
  • 7款热门智能电视文件管理器横向评测
  • 一个简单的跨平台Python GUI自动化 AutoPy
  • 职坐标解析自动驾驶技术发展新趋势
  • C++day8
  • Oracle 23ai Vector Search 系列之4 VECTOR数据类型和基本操作
  • 建设银行论坛网站首页/游戏推广可以做吗
  • 乐清微网站建设/湘潭营销型网站建设
  • 怎么在百度上做公司网站/西安seo培训机构
  • 天天清茶 湖南网站建设/好的推广平台
  • 成都建设企业网站/百度官网电话客服24小时
  • 西安企业网站建站/知名网站