Skip to content

RainNight11/MambaGuard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MCDF: Multi-scale Cross-modal Deep Fusion for Image Detection

项目简介

MCDF(Multi-scale Cross-modal Deep Fusion)是一个基于深度学习的图像检测项目,主要用于真假图像检测任务。该项目集成了多种先进的深度学习模型,包括VMamba、CLIP、Simba等,通过多尺度跨模态深度融合技术实现高精度的图像真伪检测。

主要特性

  • 多模型支持: 集成VMamba、CLIP、Simba、PIMNet等多种先进模型
  • 多尺度融合: 采用EinFFT等技术实现多尺度特征融合
  • 跨模态学习: 结合视觉和文本信息进行深度学习
  • 双分支架构: 支持DualBranchMCDF双分支网络结构
  • 数据增强: 丰富的数据增强策略,包括模糊、JPEG压缩、旋转等
  • 对比学习: 集成SupCon对比学习损失函数

项目结构

MCDF/
├── configs/                    # 配置文件
│   ├── config_mcdf.py          # MCDF模型配置
│   └── config_setting.py       # 训练设置配置
├── data/                       # 数据目录
├── datasets/                   # 数据集处理
│   └── dataset.py              # 数据集类定义
├── models/                     # 模型定义
│   ├── MCDF.py                 # MCDF主模型
│   ├── Dual_MCDF.py            # 双分支MCDF模型
│   ├── Dual_MCDF_2d.py         # 2D双分支MCDF模型
│   ├── PIMNet.py               # PIMNet模型
│   ├── vmamba/                 # VMamba模型
│   ├── clip/                   # CLIP相关模型
│   └── ...
├── kernels/                    # 自定义CUDA核心
│   └── selective_scan/         # 选择性扫描核心
├── mamba/                      # Mamba状态空间模型
├── pre_trained_weights/        # 预训练权重
├── results/                    # 训练结果
├── main_epoch.py               # 主训练脚本
├── engine.py                   # 训练引擎
├── utils.py                    # 工具函数
└── earlystop.py               # 早停机制

支持的模型

主要模型

  • MCDF: 多尺度跨模态深度融合模型
  • DualBranchMCDF: 双分支MCDF模型
  • VMamba: 视觉Mamba模型(Small/Base/Tiny版本)
  • CLIP: 对比语言-图像预训练模型
  • Simba: Simba模型(S/B/L版本)
  • PIMNet: 位置信息挖掘网络
  • GILMNet: GILM检测网络

支持的CLIP变体

  • CLIP_VMamba_S/B/T220
  • RN50
  • ViT-L/14, ViT-B/32, ViT-B/16
  • CLIP_Simba_S/B/L

数据集支持

  • CNNSpot: 训练集
  • FDMAS: 测试集

安装要求

基础依赖

pip install torch torchvision
pip install timm
pip install tensorboardX
pip install scikit-learn
pip install opencv-python
pip install pillow
pip install scipy
pip install tqdm
pip install einops
pip install transformers

CUDA依赖(可选)

项目包含自定义CUDA核心,需要:

  • CUDA Toolkit
  • ninja
  • 编译环境

快速开始

1. 数据准备

将数据集放置在相应目录:

# 示例:RealFake数据集
mkdir -p ./datasets/RealFake
# 将真实图像放在 real/ 子目录
# 将虚假图像放在 fake/ 子目录

2. 配置设置

编辑配置文件 configs/config_mcdf.py

# 选择模型
network = 'mcdf'  # 或 'dual_mcdf'

# 选择CLIP骨干网络
clip_backbone_type = "CLIP_VMamba_B"
clip_backbone_path = "models/clip/VMamba_B_clip.pt"

# 数据集设置
datasets = 'RealFake'
data_path = "./datasets/RealFake"

3. 训练模型

python main_epoch.py

4. 自定义测试

# 在config中设置测试路径
resume_txt_path = "path/to/test/images.txt"
# 运行测试
python main_epoch.py

配置说明

模型配置

  • network: 选择网络类型('mcdf', 'dual_mcdf', 'vmunet'等)
  • clip_backbone_type: CLIP骨干网络类型
  • num_classes: 分类数量(默认为1,二分类)

训练配置

  • cropSize: 输入图像裁剪尺寸(默认224)
  • loadSize: 图像加载尺寸
  • blur_prob: 模糊增强概率
  • jpg_prob: JPEG压缩增强概率

损失函数配置

  • criterion: 主损失函数(BCEWithLogitsLoss)
  • supcon_temperature: 对比学习温度参数
  • supcon_weight: 对比学习权重
  • use_supcon: 是否使用对比学习

核心技术

EinFFT模块

  • 基于FFT的频域特征处理
  • 支持GPU优化的一维FFT
  • 多块并行处理

对比学习

  • SupCon损失函数
  • 温度缩放机制
  • 特征对比学习

数据增强

  • 高斯模糊
  • JPEG压缩
  • 随机旋转和翻转
  • 多种插值方法

结果输出

训练结果保存在 results/ 目录下:

  • checkpoints/: 模型检查点
  • log/: 训练日志
  • outputs/: 预测结果
  • summary/: 训练摘要

性能监控

项目支持TensorBoard可视化:

tensorboard --logdir=results/[experiment_name]/summary

注意事项

  1. GPU内存: 某些模型需要较大GPU内存,建议使用16GB+显存
  2. CUDA编译: 首次运行可能需要编译CUDA核心,耗时较长
  3. 预训练权重: 确保下载相应的预训练权重文件
  4. 数据格式: 确保数据集格式符合要求

许可证

本项目遵循相应的开源许可证。Mamba组件遵循Apache 2.0许可证。

致谢

本项目基于以下优秀的开源项目:

  • Mamba: 状态空间模型
  • CLIP: 对比语言-图像预训练
  • VMamba: 视觉Mamba模型
  • timm: PyTorch图像模型库

联系方式

如有问题或建议,请通过GitHub Issues联系。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages