g
gcw_C8PI9e90/Deepfake-Detection-Exp-02-21-npu
模型介绍文件和版本Pull Requests讨论分析

Deepfake-Detection-Exp-02-21-NPU

模型介绍

Deepfake-Detection-Exp-02-21 是一个基于 ViT (Vision Transformer) 的深度伪造图像检测模型。该模型使用 Google 的 google/vit-base-patch16-224-in21k 作为基础架构,在 Deepfake vs Real 数据集上微调,用于区分真实图像与深度伪造图像。

原始模型地址

  • ModelScope: https://www.modelscope.cn/models/prithivMLmods/Deepfake-Detection-Exp-02-21
  • HuggingFace: https://huggingface.co/prithivMLmods/Deepfake-Detection-Exp-02-21

任务类型

图像分类(Image Classification)- 二分类:Deepfake(深度伪造)vs Real(真实)

模型框架

PyTorch

输入格式

  • 图像:RGB 格式,224x224 像素
  • 预处理:resize 到 224x224,归一化(mean=0.5, std=0.5)

输出格式

  • logits:形状为 (batch_size, 2) 的张量
  • 概率:经过 softmax 后的概率分布
  • 类别:{0: "Deepfake", 1: "Real"}

依赖环境

  • Python 3.11+
  • PyTorch >= 2.0.0
  • torchvision >= 0.15.0
  • transformers >= 4.30.0
  • pillow >= 9.0.0
  • numpy >= 1.21.0

NPU 适配说明

该模型已适配华为昇腾 NPU(Ascend910)。主要适配工作:

  1. 使用 torch_npu 在昇腾 NPU 上运行模型推理
  2. 模型权重加载后通过 .to("npu") 迁移至 NPU 设备
  3. 输入张量同步迁移至 NPU
  4. 推理完成后释放 NPU 显存资源

环境准备

# 安装依赖
pip install torch torchvision transformers pillow numpy

# 确保 torch_npu 可用
python -c "import torch; print(torch.npu.is_available())"

推理命令

# CPU 推理
python inference.py --image path/to/image.jpg --device cpu

# NPU 推理
python inference.py --image path/to/image.jpg --device npu

推理结果

设备类别置信度推理耗时
CPUDeepfake0.515876663.54 ms
NPUDeepfake0.51589110.91 ms

NPU 推理速度约为 CPU 的 60 倍。

CPU/NPU 精度测试方法

  1. 分别在 CPU 和 NPU 上对相同的测试图像运行推理
  2. 对比两边的 logits、概率分布和分类结果
  3. 使用以下指标评估:
    • 分类一致性(是否预测相同类别)
    • 概率差异(max / mean)
    • 概率相对误差
    • 余弦相似度
python compare_cpu_npu.py

CPU/NPU 精度测试结果

测试图像指标CPU 结果NPU 结果差异
test_face.png分类DeepfakeDeepfake一致
test_face.png概率(Deepfake)0.5158760.5158910.000015
test_face.png概率(Real)0.4841240.4841090.000015
test_face.png余弦相似度--0.999840
test_face2.png分类DeepfakeDeepfake一致
test_face2.png概率(Deepfake)0.5815910.5815600.000031
test_face2.png概率(Real)0.4184090.4184400.000031
test_face2.png余弦相似度--0.999996

结论:NPU 与 CPU 推理结果误差 < 1%(最大概率相对误差 0.008%)

性能测试结果

设备推理耗时 (ms)加速比
CPU663.541x
NPU (Ascend910)10.91~60x

精度结论

基于现有评测数据,CPU 与 NPU 的 余弦相似度 精度误差为 0.016%,小于 1% 的精度要求。

推理成功证据

本仓库提供完整的推理脚本,支持 CPU 和 NPU 双平台推理:

# NPU 推理
python3 inference.py --device npu

# CPU 推理
python3 inference.py --device cpu

推理完成后会输出推理结果和耗时,表明模型在 NPU 上推理成功。

精度结论

基于现有评测数据,CPU 与 NPU 的 余弦相似度 精度误差为 0.016%,小于 1% 的精度要求。

模型标签

#+NPU #+CV #+图像分类 #+深度伪造检测 #+ViT #+昇腾 #+PyTorch

下载使用量0