z
zhangkx888/CommunityForensics-DeepfakeDet-ViT
模型介绍
文件和版本
Pull Requests
讨论
分析

CommunityForensics-DeepfakeDet-ViT 昇腾NPU部署文档

1. 模型简介

模型名称: 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

相关获取地址:

  • 权重下载地址(HuggingFace):https://huggingface.co/buildborderless/CommunityForensics-DeepfakeDet-ViT
  • 官方代码仓库(GitHub):https://github.com/JeongsooP/Community-Forensics
  • 技术论文:https://arxiv.org/pdf/2411.04125

2. 验证环境

组件版本
torch2.9.0
torch-npu2.9.0.post1+gitee7ba04
transformers4.57.6
numpy2.x
Pillow10.x
昇腾驱动 / CANNnpu-smi 25.5.5
  • NPU:2 逻辑卡(Ascend910)
  • 模型路径:/opt/atomgit/0820/CommunityForensics-DeepfakeDet-ViT
  • 推理设备:npu:0

3. 环境依赖

依赖项版本要求说明
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

4. 推理步骤

4.1 环境准备

# 检查 NPU 设备
npu-smi info

4.2 运行推理

cd /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

4.3 推理参数说明

参数类型默认值说明
--model_pathstr脚本所在目录模型权重目录
--imagestr-输入图片路径
--image_urlstr-输入图片 URL
--devicestrauto推理设备(auto/npu:0/cuda:0/cpu)

5. 测试样例及输出结果

样例 1:内置双样例检测(真实照片风格 vs AI 生成风格)

输入:

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。

样例 2:指定图片检测

输入:

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

6. 性能参考

指标数值
模型参数量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。

7. 注意事项

  • 推理脚本通过 torch_npu 调用 NPU 设备(check_device() 自动优先选择 npu:0),未检测到 NPU 时回退 CPU/CUDA。
  • 图像预处理遵循官方要求:不要将 size 强制设为 {"height": 384, "width": 384},处理器会自动执行 shortest_edge=440(保持纵横比)+ center_crop=384 + CLIP 归一化,避免拉伸变形破坏检测精度。
  • 模型为单标签 sigmoid 输出:fake_prob = sigmoid(logit),fake_prob > 0.5 判定为伪造(AI 生成),否则为真实。
  • 内置双样例使用 PIL/分形噪声程序化生成,离线可复现;检测自己的图片建议使用 --image 或 --image_url 参数。
  • 官方要求 transformers >= 5.4.0(旧版本可能对 shortest_edge resize 处理不一致);本验证在 4.57.6 下通过,升级到 5.x 可获得与官方一致的前处理行为。