YOLO12 改进、魔改|融合傅里叶卷积混合器FFCM ,强复杂场景下对模糊、小目标或遮挡目标的特征表达

        当前基于 Transformer 的单图像去雨方法在全局建模时,多通过空间域操作实现,计算成本高且效率与效果难以平衡。同时,现有方法在训练中对负样本信息利用不足。而从频域角度看,雨条纹模式在频域有显著特征,且频域操作有助于分离图像退化成分和建模长距离信息。FFCM 正是基于这样的背景被提出,旨在利用频域特性提升图像去雨等任务的性能。               

1.FFCM 原理

        FFCM 利用离散傅里叶变换(DFT)的特性,其能分离图像退化成分,雨条纹模式在频域具有显著且不变的特征,并且变换后的频域成分由所有空间成分计算得到,可作为全局特征提取器。在操作时,先在空间域通过点卷积提升输入特征并利用不同核大小的深度卷积提取多尺度局部特征 ;之后在频域,对空间域处理后的特征进行 DFT 转换为实部和虚部,经卷积、调制等操作后再通过逆 DFT 转换回空间域 ,最后通过残差结构和点卷积进行通道压缩得到输出。

        FFCM 采用空间 - 频率连接设计。在空间域操作部分,先利用点卷积提升输入特征,将其分裂为两组以提取多尺度局部特征;在频域操作部分,对空间域处理后的特征进行 DFT 变换,对得到的实部和虚部进行卷积操作,再经过调制、分裂后通过逆 DFT 转换回空间域,最终通过残差结构和点卷积进行通道压缩,实现局部 - 全局特征融合。        

2.FFCM 习作思路

         FFCM 在检测领域应用:在检测领域,FFCM 可用于提取图像中目标的多尺度特征。它利用频域分析能力,能够有效分离出目标与背景在频域上的差异特征,增强对不同尺度目标的感知能力。如在复杂背景下检测小目标时,FFCM 可以通过频域操作突出小目标的特征,避免其被背景信息淹没,提升检测精度与召回率,为后续的目标分类和定位提供更具代表性的特征。

         FFCM 在分割领域应用:在分割领域,FFCM 有助于更好地捕捉图像中物体的边界和细节信息。通过在空间域和频域的协同操作,它能同时获取局部的纹理细节和全局的结构特征,对于分割任务中区分相似物体或模糊边界的情况,FFCM 可以利用频域中独特的特征表示,提高分割的准确性和完整性,使得分割结果更接近真实物体的轮廓。

3. YOLO与FFCM 的结合          

         将 FFCM 融入 YOLO,能通过空间 - 频域融合操作同时捕捉目标局部细节与全局结构,增强复杂场景下对模糊、小目标或遮挡目标的特征表达;且相比传统注意力机制更高效,在平衡计算成本的同时提升模型对复杂背景的鲁棒性,优化检测精度与速度。

4.FFCM 代码部分

YOLO12模型改进方法,快速发论文,总有适合你的改进,还不改进上车_哔哩哔哩_bilibili

 代码获取:YOLOv8_improve/YOLOV12.md at master · tgf123/YOLOv8_improve · GitHub

5. FFCM 引入到YOLOv12中


第一: 先新建一个v12_changemodel,将下面的核心代码复制到下面这个路径当中,如下图如所示。E:\Part_time_job_orders\YOLO_NEW\YOLOv12\ultralytics\v12_changemodel。

  

第二:在task.py中导入

 ​​​               ​​​​​​​   

第三:在task.py中的模型配置部分下面代码

                   ​​​​​​​​​​​​​​  

第四:将模型配置文件复制到YOLOV11.YAMY文件中

       ​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​  

     ​​​​​​​ ​​​​​​​​​​​​​​ ​​​​​​​ ​​​​​​​​​​​​​第五:运行代码

from ultralytics.models import NAS, RTDETR, SAM, YOLO, FastSAM, YOLOWorld
import torch
if __name__=="__main__":



    # 使用自己的YOLOv8.yamy文件搭建模型并加载预训练权重训练模型
    model = YOLO("/home/shengtuo/tangfan/YOLO11/ultralytics/cfg/models/11/yolo12_FFCM.yaml")\
        # .load(r'E:\Part_time_job_orders\YOLO\YOLOv11\yolo11n.pt')  # build from YAML and transfer weights

    results = model.train(data="/home/shengtuo/tangfan/YOLO11/ultralytics/cfg/datasets/VOC_my.yaml",
                          epochs=300,
                          imgsz=640,
                          batch=4,
                          # cache = False,
                          # single_cls = False,  # 是否是单类别检测
                          # workers = 0,
                          # resume=r'D:/model/yolov8/runs/detect/train/weights/last.pt',
                          amp = True
                          )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值