Skip to content

handsome-rich/MIRROR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 

Repository files navigation


🪞 MIRROR: Manifold Ideal Reference ReconstructOR

用于通用 AI 生成图像检测的流形理想参考重建器 📄 Paper (arXiv)

MIRROR 是一种专为 AI 生成图像(AIGI)检测 设计的创新框架。不同于传统的二分类检测范式,MIRROR 采用了一条全新的思路:
通过在冻结的现实先验存储库(Memory Bank)中重建理想的“真实参考”,并分析原始图像特征重建特征之间的细微差异,从而精准捕捉 AI 生成内容所留下的隐蔽痕迹。


✨ 核心亮点

  • 🔄 范式重构:摒弃传统的“寻找伪影(Artifacts-Driven)”思路,首创受人类视觉启发的 Reference-Comparison(参考-比对) 范式 。
  • 🏆 SOTA 性能:在 AIGCDetect、Genimage、UnivFD、Chameleon14 个主流基准测试 上刷新当前最优结果。
  • 👁️ 超越人眼:针对高保真生成图像,构建了首个 Human-AIGI Benchmark 。实验证明,MIRROR 在人类难以分辨的“高难样本”上准确率高达 89.5%,成功跨越“Superhuman Crossover”,超越了人类视觉专家的判别能力 。
  • 🧠 强大记忆:引入了大规模现实图像 Memory Bank ,有效提升模型对多样化场景的泛化能力和鲁棒性。

📈 性能表现(Performance Comparison)

MIRROR 在 14 个主流 AIGI 基准数据集 上均展现出卓越的检测能力,尤其是在高难度的 In-the-Wild(真实野外) 场景中,相比现有最先进方法(SOTA)取得了显著的性能提升。

下表给出了 MIRROR(基于不同 DINO Backbone)与当前主流方法(如 DDA、B-Free、UnivFD 等)的 平衡准确率(Balanced Accuracy, B.Acc) 对比结果:

不同 Backbone 下的 Benchmark 对比(Balanced Accuracy %)

类别 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 将在后续版本发布。

🚀 快速开始

1️⃣ 环境配置

推荐使用 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 安装指令。

2️⃣ 权重准备

请确保您的 weight 目录下包含以下文件结构。
其中 模型检查点Memory Bank 权重 可从下述链接下载:

📌 请将下载后的文件放置到项目根目录下的 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 预训练权重

3️⃣ 一键推理

使用以下命令启动评估流程:

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

4️⃣ 推理数据集结构说明

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 运行设备,可选 cudacpu

📊 输出结果说明

推理完成后,系统将在 --output_dir(默认 ./results)下生成详细的 CSV 报告,命名格式为 {benchmark}_{timestamp}.csv

核心评估指标包含:

  • Acc / Bal_Acc: 总体准确率与平衡准确率。
  • Real_Acc / Fake_Acc: 针对真实与伪造样本的分项准确率。

📧 联系与贡献


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages