当前主流的基于 Transformer 的单图像去雨方法在全局建模时,多依赖空间域操作(如自注意力机制),计算成本高昂。同时,在利用对比样本方面存在不足。而从频域角度分析,雨条纹模式在频域有显著差异,且频域特征处理具有全局建模能力,能为解决上述问题提供新途径。在此背景下,FFCM 应运而生,旨在通过融合频域特征,实现高效的全局建模,提升去雨效果。
上面是原模型,下面是改进模型

1. 傅里叶卷积混合器介绍
FFCM(Fused Fourier Convolution Mixer)基于离散傅里叶变换(DFT)理论。离散傅里叶变换能将空间域的图像特征转换到频域。在图像去雨场景中,雨条纹在频域具有独特且相对稳定的特征模式,利用 DFT 可将图像的退化成分(如雨条纹)与正常图像成分在频域上进行一定程度的分离。同时,频域特征由整个空间域的成分计算得出,具备天然的全局特性,可作为全局特征提取器,有助于对图像进行全局建模分析,以实现有效的去雨等处理。
结合图片信息,FFCM的结构主要包含以下几个关键部分:
空间域处理:输入特征首先经过逐点卷积(PConv)提升特征维度,然后分裂为两组,分别采用不同核大小(3×3 和 5×5)的深度卷积(DConv)提取多尺度局部特征,接着经过激活函数(如 GELU)处理,再通过逐点卷积进一步变换,最终得到空间域特征。
频率域处理:将空间域处理过的特征通过离散傅里叶变换(DFT)转换到频域,得到实部和虚部,将其连接后进行 1×1 卷积操作,再经过调制和分裂等处理,最后利用逆离散傅里叶变换(Inv - FFT)将特征转换回空间域,得到频率域特征。
融合输出:将空间域特征和频率域特征通过残差连接相加,再经过逐点卷积进行通道压缩,得到 FFCM 模块的输出,这种结构设计实现了多尺度空间特征与频域全局特征的融合。
2. YOLOv11与FFCM的结合
本文使用FFCM替换最后一层的C3K2模块,增强YOLOv11模型最后一层的特征融合。
3. FFCM模块代码部分
YOLOv8_improve/YOLOv11.md at master · tgf123/YOLOv8_improve · GitHub
视频讲解:YOLOv11模型改进讲解,教您如何修改YOLOv11_哔哩哔哩_bilibili
YOLO11改进-模块-引入融合傅里叶卷积混合器 Fused Fourier Convolution Mixer_哔哩哔哩_bilibili
YOLOv11全部代码,现有几十种改进机制。
4. 将FFCM模块 引入到YOLOv11中
第一: 将下面的核心代码复制到D:\model\yolov11\ultralytics\change_model路径下,如下图所示。
第二:在task.py中导入包
第三:在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_FFCM.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 = False
)