模型名称: CommunityForensics-DeepfakeDet-ViT (buildborderless/CommunityForensics-DeepfakeDet-ViT)
模型链接: buildborderless/CommunityForensics-DeepfakeDet-ViT
模型描述: 基于 Vision Transformer (ViT-Small) 的 AI 生成图像检测模型,在 2.7M 样本、4,803 个图像生成器上训练,用于检测 AI 生成/深度伪造图像(CVPR 2025:Community Forensics)。输入单张 RGB 图像,输出单个 logit,经 sigmoid 得到伪造概率(>0.5 判定为伪造)。
模型架构: ViT-Small(patch16/384,12 层 Transformer,6 注意力头,hidden_size=384,单标签 sigmoid 输出)
参数规模: 21.8M
相关获取地址:
| 组件 | 版本 |
|---|---|
torch | 2.9.0 |
torch-npu | 2.9.0.post1+gitee7ba04 |
transformers | 4.57.6 |
numpy | 2.x |
Pillow | 10.x |
| 昇腾驱动 / CANN | npu-smi 25.5.5 |
2 逻辑卡(Ascend910)/opt/atomgit/0820/CommunityForensics-DeepfakeDet-ViTnpu:0| 依赖项 | 版本要求 | 说明 |
|---|---|---|
| Python | >= 3.10 | 推荐 3.11 |
| torch | >= 2.1.0 | 本验证使用 2.9.0 |
| torch_npu | >= 2.1.0 | 昇腾 NPU 插件(随 CANN 安装) |
| transformers | >= 4.45.0 | 官方推荐 >= 5.4.0;本验证使用 4.57.6 通过 |
| numpy | >= 1.24.0 | 数值计算 |
| Pillow | >= 9.0.0 | 图像处理 |
安装命令:
# 使用清华源安装基础依赖
pip install torch torch_npu transformers numpy Pillow -i https://pypi.tuna.tsinghua.edu.cn/simple
# torch_npu 需与 CANN 版本配套,亦可从昇腾官方源安装:
# pip install torch_npu -i https://pypi.ascend.com/pypi/simple或直接使用仓库内 requirements.txt 一键安装:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple# 检查 NPU 设备
npu-smi infocd /opt/atomgit/0820/CommunityForensics-DeepfakeDet-ViT
# 默认推理(内置双样例:真实照片风格 vs AI 生成风格)
python inference.py
# 检测指定本地图片
python inference.py --image ./suspicious.jpg
# 检测指定 URL 图片
python inference.py --image_url https://example.com/image.jpg| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| --model_path | str | 脚本所在目录 | 模型权重目录 |
| --image | str | - | 输入图片路径 |
| --image_url | str | - | 输入图片 URL |
| --device | str | auto | 推理设备(auto/npu:0/cuda:0/cpu) |
输入:
python inference.py输出:
[INFO] 设备类型: npu | 设备: npu:0
[INFO] 正在加载 DeepfakeDet-ViT 模型: /opt/atomgit/0820/CommunityForensics-DeepfakeDet-ViT
[INFO] 模型加载成功 | 设备: npu:0 | 参数量: 21.8M
[INFO] 待检测图像数量: 2
============================================================
Running inference on NPU...
============================================================
----- 样例 1: 真实照片风格示例(风景) -----
logit = -8.5955
fake_prob = 0.0002
real_prob = 0.9998
判定结果 = REAL (真实)
单图推理耗时 = 221.3 ms
----- 样例 2: AI 生成风格示例(分形噪声合成图) -----
logit = 4.8966
fake_prob = 0.9926
real_prob = 0.0074
判定结果 = FAKE (AI 生成)
单图推理耗时 = 6.6 ms
============================================================
Inference completed! DeepfakeDet-ViT 在昇腾 NPU 上推理成功!
============================================================完整运行日志(含推理期间 npu-smi info 采样及进程占用情况)见 run_npu.log。
输入:
python inference.py --image ./suspicious.jpg输出:
[INFO] 设备类型: npu | 设备: npu:0
[图片] 本地图片: ./suspicious.jpg
[INFO] 待检测图像数量: 1
...
----- 样例 1: 本地图片: ./suspicious.jpg -----
logit = <logit 值>
fake_prob = <伪造概率>
real_prob = <真实概率>
判定结果 = FAKE (AI 生成) / REAL (真实)
单图推理耗时 = ~220 ms| 指标 | 数值 |
|---|---|
| 模型参数量 | 21.8M |
| 模型加载 + 权重迁移至 NPU | ~12 s |
| 单图前向推理(384x384 输入) | ~220 ms(首图)/ ~7 ms(预热后) |
| NPU 显存占用(推理期间) | 276 MB |
| NPU 芯片 | Ascend910 / 2 逻辑卡 |
推理期间通过 npu-smi info 多次采样可观察到 python3 进程实际占用 NPU(进程内存 276MB,HBM 用量 3108MB 升至 3360MB),详见 run_npu.log。
torch_npu 调用 NPU 设备(check_device() 自动优先选择 npu:0),未检测到 NPU 时回退 CPU/CUDA。size 强制设为 {"height": 384, "width": 384},处理器会自动执行 shortest_edge=440(保持纵横比)+ center_crop=384 + CLIP 归一化,避免拉伸变形破坏检测精度。fake_prob = sigmoid(logit),fake_prob > 0.5 判定为伪造(AI 生成),否则为真实。--image 或 --image_url 参数。transformers >= 5.4.0(旧版本可能对 shortest_edge resize 处理不一致);本验证在 4.57.6 下通过,升级到 5.x 可获得与官方一致的前处理行为。