用于通用 AI 生成图像检测的流形理想参考重建器 📄 Paper (arXiv)
MIRROR 是一种专为 AI 生成图像(AIGI)检测 设计的创新框架。不同于传统的二分类检测范式,MIRROR 采用了一条全新的思路:
通过在冻结的现实先验存储库(Memory Bank)中重建理想的“真实参考”,并分析原始图像特征与重建特征之间的细微差异,从而精准捕捉 AI 生成内容所留下的隐蔽痕迹。
- 🔄 范式重构:摒弃传统的“寻找伪影(Artifacts-Driven)”思路,首创受人类视觉启发的 Reference-Comparison(参考-比对) 范式 。
- 🏆 SOTA 性能:在 AIGCDetect、Genimage、UnivFD、Chameleon 等 14 个主流基准测试 上刷新当前最优结果。
- 👁️ 超越人眼:针对高保真生成图像,构建了首个 Human-AIGI Benchmark 。实验证明,MIRROR 在人类难以分辨的“高难样本”上准确率高达 89.5%,成功跨越“Superhuman Crossover”,超越了人类视觉专家的判别能力 。
- 🧠 强大记忆:引入了大规模现实图像 Memory Bank ,有效提升模型对多样化场景的泛化能力和鲁棒性。
MIRROR 在 14 个主流 AIGI 基准数据集 上均展现出卓越的检测能力,尤其是在高难度的 In-the-Wild(真实野外) 场景中,相比现有最先进方法(SOTA)取得了显著的性能提升。
下表给出了 MIRROR(基于不同 DINO Backbone)与当前主流方法(如 DDA、B-Free、UnivFD 等)的 平衡准确率(Balanced Accuracy, B.Acc) 对比结果:
| 类别 | Benchmark | SOTA 基线 | MIRROR (DINOv2-L) | MIRROR (DINOv3-L) | MIRROR (DINOv3-H+) | 相对 SOTA 提升 |
|---|---|---|---|---|---|---|
| 标准基准 | AIGCDetectBenchmark | 84.7 (B-Free) | 90.5 | 91.7 | 97.3 | +12.6 |
| GenImage | 89.6 (B-Free) | 91.3 | 94.2 | 99.8 | +10.2 | |
| UnivFakeDetect | 87.8 (B-Free) | 84.6 | 88.2 | 92.4 | +4.6 | |
| Synthbuster | 96.5 (DDA) | 97.0 | 98.1 | 99.2 | +2.7 | |
| EvalGEN | 96.6 (DDA) | 98.1 | 99.0 | 99.8 | +3.2 | |
| DRCT-2M | 99.2 (B-Free) | 92.8 | 93.0 | 93.0 | −6.2 | |
| 野外场景 | Chameleon | 83.5 (DDA) | 85.4 | 90.7 | 94.6 | +11.1 |
| SynthWildx | 94.6 (B-Free) | 88.9 | 93.1 | 95.1 | +0.5 | |
| WildRF | 92.6 (B-Free) | 92.2 | 96.7 | 97.8 | +5.2 | |
| AIGIBench | 84.4 (DDA) | 85.6 | 90.5 | 94.9 | +10.5 | |
| CO-SPY | 80.3 (DDA) | 87.4 | 91.3 | 97.4 | +17.1 | |
| RR-Dataset | 70.3 (DDA) | 76.8 | 78.9 | 88.3 | +18.0 | |
| BFree-Online | 87.1 (B-Free) | 84.3 | 83.0 | 97.6 | +10.5 |
说明:
- 所有数据集均已 格式对齐(PNG -> JPG) 处理。
- 所有结果均以 平衡准确率(Balanced Accuracy %) 报告。
- MIRROR 在三种 Backbone 下进行评估:DINOv2-L、DINOv3-L、DINOv3-H+。
- 随着 Backbone 能力增强,整体性能稳定提升;同时 MIRROR 在 野外场景 中始终保持显著优势,体现了良好的泛化性与鲁棒性。
- 推理代码开源:提供完整推理脚本与配置。
- 模型权重发布:提供基于 DINOv3-H+ 的推理权重。
- 训练流程开源:训练代码以及剩余权重将在后续版本发布。
- 难样本基准:Human-AIGI Benchmark 将在后续版本发布。
推荐使用 Python 3.10+。
# 克隆仓库
git clone https://github.com/349793927/MIRROR.git
cd MIRROR
# 安装基础依赖
pip install torch torchvision tqdm pillow numpy scikit-learn transformers peft
注意:请根据您的显卡型号,从 PyTorch 官网 获取对应的
torch安装指令。
请确保您的 weight 目录下包含以下文件结构。
其中 模型检查点 与 Memory Bank 权重 可从下述链接下载:
-
checkpoint-h-cur.pth(Phase 2 训练后的模型检查点)
👉 下载地址:
https://drive.google.com/file/d/1gos1QgZA4Xuj706oa5i5E6vsOAoaLyr3/view?usp=sharing -
mirror_phase1.pth(Phase 1 的 Memory Bank 权重)
👉 下载地址:
https://drive.google.com/file/d/1CpgltI-F7JN7hDyk2O16Ix3Zr_2d2-G0/view?usp=sharing
📌 请将下载后的文件放置到项目根目录下的
weight/文件夹中。
weight/
├── checkpoint-h-cur.pth # Phase 2 训练后的模型检查点
├── mirror_phase1.pth # Phase 1 的 Memory Bank 权重
└── dinov3-huge/ # 本地 DINOv3-Huge 骨干模型权重目录
├── config.json # DINOv3-Huge 配置文件
└── model.safetensors # DINOv3-Huge 预训练权重
使用以下命令启动评估流程:
python inference.py \
--model_path "./weight/checkpoint-h-cur.pth" \
--memory_path "./weight/mirror_phase1.pth" \
--backbone_path "./weight/dinov3-huge" \
--base_data_path "/path/to/your/dataset" \
--benchmarks Chameleon \
--batch_size 128 \
--device cuda \
--use_amp
MIRROR 的推理脚本支持 多基准(Benchmark)+ 多子数据集(Sub-dataset) 的自动评估。
--base_data_path 应指向所有 Benchmark 的根目录,其下每个子文件夹对应一个 Benchmark:
base_data_path/
├── AIGC_bm/ # AIGCDetectBenchmark
├── UniversalFakeDetect/ # UnivFD
├── synthbuster/ # Synthbuster
├── GenEval-JPEG/ # EvalGEN
├── Chameleon/ # Chameleon
│ └── test/
├── WildRF/
│ └── test/
├── synthwildx/
├── AIGIBench/
├── CO-SPY-In-the-Wild/
├── drct/
├── RRDataset/
└── B-Free/
| 参数名 | 类型 | 描述 |
|---|---|---|
--model_path |
str |
模型检查点路径(.pth 文件)。 |
--memory_path |
str |
Memory Bank 权重路径。 |
--backbone_path |
str |
DINOv3 预训练权重存放目录。 |
--base_data_path |
str |
测试数据集根目录(需包含子 benchmark 文件夹)。 |
--benchmarks |
list |
待评估的基准列表,如 Genimage UnivFD。 |
--device |
str |
运行设备,可选 cuda 或 cpu。 |
推理完成后,系统将在 --output_dir(默认 ./results)下生成详细的 CSV 报告,命名格式为 {benchmark}_{timestamp}.csv。
核心评估指标包含:
- Acc / Bal_Acc: 总体准确率与平衡准确率。
- Real_Acc / Fake_Acc: 针对真实与伪造样本的分项准确率。
- 反馈:欢迎通过 Issues 提交 Bug 或改进建议。
- 联系:ruiqi.liu24@nlpr.ia.ac.cn。
