基于三分支深度学习的假脸检测系统,创新性地结合空间域特征、频域特征和高频噪声特征,实现高精度的假脸识别。
- 🚀 三分支创新架构
- 空间域分支:捕捉图像的空间特征和纹理信息
- 频域分支:分析图像的频率分布特征
- 高频分支:专注于提取图像中的高频噪声特征
- 🔍 多维度特征融合
- 特征级联融合
- 自适应特征权重
- 📈 高性能表现
- 优秀的检测准确率
- 强大的泛化能力
- 🛠 完整工具链
- 模块化设计
- 完整的训练和推理流程
- 📊 全面的实验支持
- 训练过程可视化
- 详细的评估指标
- Python 3.8+
- PyTorch 1.8+
- CUDA 11.0+ (推荐)
- 克隆仓库:
git clone https://github.com/zzyss-marker/deepfake.git
cd triple-branch-deepfake-detection
- 创建虚拟环境:
conda create -n deepfake python=3.8
conda activate deepfake
- 安装依赖:
pip install -r requirements.txt
project_root/
│
├── configs/
│ └── config.py # 配置文件
│
├── src/
│ ├── data/ # 数据处理模块
│ │ ├── dataset.py # 数据集定义(包含频域转换)
│ │ └── transforms.py # 数据增强
│ │
│ ├── models/ # 模型定义
│ │ ├── model.py # 三分支网络架构
│ │ └── loss.py # 损失函数
│ │
│ └── utils/ # 工具函数
│ ├── metrics.py # 评估指标
│ └── helpers.py # 辅助函数
│
├── train.py # 训练脚本
├── predict.py # 预测脚本
└── requirements.txt # 项目依赖
三分支模型架构:
- 空间域分支:使用 EfficientNet-B5 提取空间特征
- 频域分支:分析 FFT 频谱特征
- 高频分支:提取高频噪声特征
- 特征融合:多层特征融合和自适应权重
- 组织数据集结构:
data/
├── train/
│ ├── real/
│ └── fake/
└── val/
├── real/
└── fake/
- 生成训练标签:
python tools/prepare_data.py --data_dir data/ --output train_labels.csv
- 使用默认配置训练:
python train.py
- 自定义配置训练:
python train.py --config configs/custom_config.py
- 恢复训练:
python train.py --resume checkpoints/last.pth
- 单图像预测:
python predict.py --image path/to/image.jpg --model checkpoints/best.pth
- 批量预测:
python predict.py --input_dir path/to/images/ --output results.csv
主要配置参数(在 configs/config.py
中):
class TrainConfig:
# 数据参数
img_size = (256, 256)
batch_size = 64
num_workers = 4
# 训练参数
num_epochs = 5
learning_rate = 1e-4
max_lr = 1e-3
weight_decay = 1e-4
early_stop_patience = 10
label_smoothing = 0.1
# 模型参数
model_name = 'efficientnet_b5'
num_classes = 2
使用 Weights & Biases 进行实验追踪:
- 配置 wandb:
wandb login
- 训练时自动记录:
- 训练/验证损失
- 准确率、AUC等指标
- 学习率变化
- 混淆矩阵
- 特征可视化
在测试集上的表现:
指标 | 数值 |
---|---|
准确率 | 99.4% |
AUC | 0.995 |
F1 分数 | 0.984 |
如果您使用了本项目的代码,请引用:
@misc{triple-branch-deepfake,
author = {pixiu},
title = {Triple-Branch Deep Fake Detection},
year = {2024},
publisher = {GitHub},
url = {https://github.com/zzyss-marker/deepfake.git}
}
本项目采用 Apache2.0 许可证。详见 LICENSE 文件。
感谢我的小菜鸡。