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

Deepfake-Detection-Exp-02-22-ONNX-NPU

模型介绍

Deepfake-Detection-Exp-02-22-ONNX 是 Deepfake-Detection-Exp-02-22 的 ONNX 导出版本,包含多种量化精度(FP32、FP16、INT8、Q4、BNB4 等)。该模型基于 ViT (Vision Transformer) 架构,patch_size=32,用于区分真实图像与深度伪造图像。

原始模型地址

  • ModelScope: https://www.modelscope.cn/models/prithivMLmods/Deepfake-Detection-Exp-02-22-ONNX
  • 原始 PyTorch 模型: https://www.modelscope.cn/models/prithivMLmods/Deepfake-Detection-Exp-02-22

任务类型

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

模型框架

ONNX(从 PyTorch 导出)

输入格式

  • 图像:RGB 格式,224x224 像素
  • 预处理:resize 到 224x224,归一化(mean=0.5, std=0.5)
  • ONNX 输入:pixel_values (float32), 形状 [batch_size, 3, 224, 224]

输出格式

  • logits:形状为 (batch_size, 2) 的 ONNX 张量
  • 类别:{0: "Deepfake", 1: "Real"}

依赖环境

  • Python 3.11+
  • onnx >= 1.14.0
  • onnxruntime >= 1.15.0
  • PyTorch >= 2.0.0(NPU 推理用)
  • transformers >= 4.30.0
  • pillow >= 9.0.0
  • numpy >= 1.21.0

NPU 适配说明

由于 ONNX Runtime 暂未提供原生 Ascend 执行加速器,NPU 推理使用 PyTorch 加载相同权重后通过 torch_npu 在昇腾 NPU 上运行。CPU 推理使用 ONNX Runtime 原生运行。

主要适配工作:

  1. CPU:使用 ONNX Runtime 的 CPUExecutionProvider 运行 ONNX 模型
  2. NPU:使用 PyTorch + torch_npu 加载相同模型权重执行推理
  3. 对比 ONNX CPU 与 PyTorch NPU 的推理结果

环境准备

pip install onnx onnxruntime torch torchvision transformers pillow numpy
python -c "import torch; print(torch.npu.is_available())"

推理命令

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

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

推理结果

设备推理后端类别置信度推理耗时
CPUONNX RuntimeReal0.50111112.58 ms
NPUPyTorchReal0.501014~11 ms

CPU/NPU 精度测试方法

  1. CPU 端使用 ONNX Runtime 加载 ONNX 模型推理
  2. NPU 端使用 PyTorch + torch_npu 加载相同权重推理
  3. 对比两边的 logits、概率分布和分类结果
python compare_cpu_npu.py

CPU/NPU 精度测试结果

测试图像指标ONNX CPU 结果NPU 结果差异
test_face.png分类RealReal一致
test_face.png概率(Deepfake)0.4988890.4989860.000098
test_face.png概率(Real)0.5011110.5010140.000098
test_face.png余弦相似度--0.999989
test_face2.png分类RealReal一致
test_face2.png概率(Deepfake)0.4892720.4892250.000048
test_face2.png概率(Real)0.5107280.5107750.000048
test_face2.png余弦相似度--0.999967

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

性能测试结果

设备推理耗时 (ms)加速比
CPU (ONNX Runtime)12.581x
NPU (Ascend910)~11~1.1x

精度结论

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

推理成功证据

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

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

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

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

精度结论

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

模型标签

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

下载使用量0