YOLOv8模型改进 第十六讲 添加频率谱动态聚合模块FSDA 去除图像噪声
在图像去雾领域,深度学习在白天图像去雾方面已取得显著成果,但夜间雾图研究较少。夜间雾图面临雾、辉光和噪声等复杂干扰,且模拟数据与真实数据的亮度差异也带来挑战。为解决这些问题,我们使用FSDA模块,处理频率不一致特性。FSDA首先聚合频谱信息,再计算并应用通道权重,最后映射回空间域,从而优化频谱信息,增强YOLOv8在去噪中的能力
1. 频率谱动态聚合模块FSDA介绍
- 频谱信息聚合:首先,以特征图的幅度谱和相位谱作为输入。对其进行逐点卷积操作,然后经过激活函数处理,实现频谱信息的初步聚合。
- 计算通道权重:接着,以聚合后的频谱信息为输入。先进行全局平均池化,再经过多次卷积和激活函数操作,最后通过特定激活函数得到通道权重映射。
- 应用通道权重:之后,将通道权重映射与之前聚合的频谱信息进行点乘,再通过卷积操作,然后利用残差连接进行滤波,从而得到滤波后的频谱信息,包括幅度谱和相位谱。
- 映射回空间域:最后,根据滤波后的幅度谱和相位谱计算出实部和虚部,再通过傅里叶逆变换将特征图重新映射回空间域。
2. 接下来,我们将详细介绍如何将FSDA集成到 YOLOv8 模型中。
这是我的GitHub代码:tgf123/YOLOv8_improve (github.com)
这是改进讲解:YOLOv8模型改进 第十六讲 添加频率谱动态聚合模块FSDA 去除图像噪声_哔哩哔哩_bilibili
2.1 如何添加
1. 首先,在我上传的代码中yolov8_improve中找到FSDA.py代码部分,它包含两个部分一个是FSDA.py的核心代码,一个是yolov8模型的配置文件。
2. 然后我们在modules文件夹下面创建FSDA.py文件,然后将FSDA的核心代码放入其中
3. 在 task.py文件中导入FSDA
from ultralytics.nn.modules.FSDA import C2f_FSDA
4. 然后将 FSDA添加到下面当中
5. 最后将配置文件复制到下面文件夹下
6. 运行代码跑通
from ultralytics.models import NAS, RTDETR, SAM, YOLO, FastSAM, YOLOWorldif __name__=="__main__":# 使用自己的YOLOv8.yamy文件搭建模型并加载预训练权重训练模型model = YOLO(r"D:\bilibili\model\ultralytics-main\ultralytics\cfg\models\v8\yolov8_FSDA.yaml")\.load(r'D:\bilibili\model\ultralytics-main\tests\yolov8n.pt') # build from YAML and transfer weightsresults = model.train(data=r'D:\bilibili\model\ultralytics-main\ultralytics\cfg\datasets\VOC_my.yaml',epochs=100, imgsz=640, batch=8, amp=False)
# self.args.half = False 关闭半精度验证