在图像去雾领域,随着深度学习的发展,端到端的去雾方法逐渐成为主流。然而,这些方法在特征提取和融合方面仍面临挑战,需要更有效的模块来增强网络对图像特征的理解和处理能力,从而提升去雾性能。MFM 正是在这样的背景下被提出,旨在通过动态调整融合权重,促进不同通道间的特征交互,优化网络的特征表示能力。
上面是原模型,下面是改进模型

1. 调制融合模块MFM介绍
MFM 的核心理论是基于特征融合和权重调制思想。它通过对不同来源的特征进行融合,并根据特征在去雾图像重建中的重要性动态调整融合权重,突出对去雾有重要贡献的特征,抑制无关或干扰特征,从而提升网络对图像特征的表达能力,优化去雾效果。例如,在去雾网络的解码过程中,不同层级和通道的特征包含了不同尺度和类型的信息,MFM 能够自适应地整合这些信息,使网络更好地学习到图像的清晰结构和细节信息。
从提供的图片来看,调制融合模块MFM模块主要包含以下几个部分:
输入:接收来自其他模块的特征信息。像有从局部特征嵌入全局特征提取模块来的特征,还有经过卷积处理后的特征。
全局信息提取:运用全局平均池化,把输入的特征图转变成能代表全局信息的向量,这样可以掌握特征的整体情况。
权重计算:通过多层感知器处理刚才得到的全局信息向量,再经过 Softmax 函数,生成一个系数矩阵,这个矩阵用来表明不同特征的重要程度。
特征融合:依据前面算出的系数矩阵,对输入的特征进行处理,重点突出那些重要的特征,并把它们融合在一起。
输出:融合好的特征再经过卷积等操作后输出,供后续的网络模块继续使用。
2. YOLOv11与调制融合模块MFM的结合
在 YOLOv11 中,用 MFM(调制融合模块)替换 concat,能根据特征重要性动态调整权重,相比简单拼接,可更有效突出关键特征。这能增强特征交互,提升模型对目标的特征表达能力,进而提高检测精度和对复杂场景的适应性 。
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_MFM.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
)