YOLOv8模型改进 第二十一讲 添加多尺度差异融合模块MDFM 增强跨层拼接的特征

        现有深度学习方法在遥感变化检测中存在特征融合局限于局部、多采用简单操作且对多尺度学习机制利用不足,以及特征聚合时多级特征交互困难、未考虑特征间耦合交互等问题,而 MDFM 通过一系列精心设计的操作,包括生成初始差异特征、多尺度融合、引入权重及最终融合等,有效整合双时相特征语义信息,减少噪声影响,从而解决了现有方法在特征融合方面的诸多问题。基于此,本文将 MDFM 应用于 YOLOv8 的 neck 部分的上下层拼接环节,旨在解决该部分在特征融合时忽略各层特征差异的问题,同时增强 neck 部分的多尺度特征,进一步提升模型整体性能。左边是原始模型,右边是改进后的模型。

 1. 多尺度差异融合模块MDFM介绍   

     MDFM 主要用于融合双时相图像特征,并生成富含上下文信息的差异特征,具体过程如下:


1. 特征提取与差异特征生成
        首先从双时相图像中提取特征f1和f2。对f1和f2进行像素级相减操作,随后取绝对值。通过一个 3×3 的卷积操作处理上述结果,得到Di。
2. 多尺度特征融合(MSFF)
        利用多尺度特征学习机制增强特征融合效果,该机制基于不同核大小的卷积实现多尺度融合,由 MSFF 单元完成。MSFF 单元包含四个分支的卷积操作,其中三个分支分别进行特定的卷积融合操作,具体为:
        第一个分支:[1x1,3x3,1x1]
        第二个分支:[1x1,5x5,1x1]
        第三个分支:[1x1,7x7,1x1]
        第四个分支:[1x1]
将这四个分支的结果进行拼接,得到融合后的特征。


3. 元素级通道权重与最终融合差异特征生成
        引入元素级通道权重,其计算与Fi和Di相关。将wi与之前得到的Mi相加,得到融合多尺度信息的Si。通过通道卷积块(CWCB)进行双时相特征融合操作,具体为将S1和S2逐通道拼接,然后先进行 3×3 深度卷积操作,再乘以wi,最终得到融合的差异特征Ci。

2. 接下来,我们将详细介绍如何将MDFM集成到 YOLOv8 模型中。        

这是我的GitHub代码:tgf123/YOLOv8_improve (github.com)

这是改进讲解:YOLOv8模型改进 第二十一讲 添加多尺度差异融合模块MDFM 增强跨层拼接的特征_哔哩哔哩_bilibili

2.1  如何添加

        1. 首先,在我上传的代码中yolov8_improve中找到FSDA.py代码部分,它包含两个部分一个是FSDA.py的核心代码,一个是yolov8模型的配置文件。 

​​       

        2. 然后我们在ultralytics文件夹下面创建一个新的文件夹,名字叫做change_models, 然后再这个文件夹下面创建mdfm.py文件,然后将mdfm的核心代码放入其中

    3. 在 task.py文件中导入mdfm

from ultralytics.change_models.mdfm import MDFM

     4. 然后将 mdfm添加到下面当中

     

        5. 最后将配置文件复制到下面文件夹下

        6. 运行代码跑通 


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

if __name__=="__main__":

    # # 使用自己的YOLOv8.yamy文件搭建模型并加载预训练权重训练模型
    # model = YOLO(r"D:\model\yolov8\ultralytics\cfg\models\v8\yolov8_LDConv.yaml")\
    #     .load(r'D:\model\yolov8\yolov8n.pt')  # build from YAML and transfer weights
    #
    # results = model.train(data=r'D:\model\yolov8\ultralytics\cfg\datasets\VOC_my.yaml',
    #                       epochs=300,
    #                       imgsz=640,
    #                       batch=16,
    #                       # cache = False,
    #                       # single_cls = False,  # 是否是单类别检测
    #                       # workers = 0,
    #                      # resume=r'D:/model/yolov8/runs/detect/train/weights/last.pt',
    #                      #  amp = True
    #                       )

    # 使用YOLOv8.yamy文件搭建的模型训练
    model = YOLO(r"D:\model\yolov8\ultralytics\cfg\models\v8\yolov8_mdfm.yaml")  # build a new model from YAML
    model.train(data=r'D:\model\yolov8\ultralytics\cfg\datasets\VOC_my.yaml',
                          epochs=300, imgsz=640, batch=64
                # , close_mosaic=10
                )

    # # 加载已训练好的模型权重搭建模型训练
    # model = YOLO(r'D:\bilibili\model\ultralytics-main\tests\yolov8n.pt')  # load a pretrained model (recommended for training)
    # results = model.train(data=r'D:\bilibili\model\ultralytics-main\ultralytics\cfg\datasets\VOC_my.yaml',
    #                       epochs=100, imgsz=640, batch=4)




内容概要:本文介绍了一种针对无人机影像中小目标检测改进特征融合策略——基于增强特征相关性的轻量化策略(Enhanced Interlayer Feature Correlation, EFC)。传统的方法如简单的拼接或加法操作无法充分利用多特征融合的优势,导致背景复杂区域小目标检测效果不佳。为此,提出GFF单元(Grouped Feature Focus)与多特征重构模块(Multilevel Feature Reconstruction)来替代传统3×3卷积,在保持有效表达能力的同时降低计算开销。具体来说,GFF通过通道划分聚焦不同次的空间语义信息,并利用归一化手段优化信息映射;MFR则通过对各特征进行分离重构建模,减轻冗余信息并减少深网络中小目标信息丢失的风险。实验证明了EFC对包括VisDrone、UAVDT在内的多个基准数据集上表现出色,显著提升了小目标识别精度和效率。 适合人群:从事图像处理和计算机视觉研究工作的学者和技术人员,尤其是那些关注无人机遥感应用以及小物体探测领域的专业人士。 使用场景及目标:①适用于各种类型的深度学习模型架构作为插件直接部署于已有的FPN骨干网路上进行小对象监测;②提高系统运行速度并且减少所需的内存和浮点运算次数。 其他说明:本项工作得到了重庆市自然科学基金资助。相关源代码将在GitHub平台上开放,供后续研究者继续深入探讨这一课题的价值及其潜力所在。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值