Deepfake-Detection-Exp-02-22-ONNX 是 Deepfake-Detection-Exp-02-22 的 ONNX 导出版本,包含多种量化精度(FP32、FP16、INT8、Q4、BNB4 等)。该模型基于 ViT (Vision Transformer) 架构,patch_size=32,用于区分真实图像与深度伪造图像。
图像分类(Image Classification)- 二分类:Deepfake(深度伪造)vs Real(真实)
ONNX(从 PyTorch 导出)
由于 ONNX Runtime 暂未提供原生 Ascend 执行加速器,NPU 推理使用 PyTorch 加载相同权重后通过 torch_npu 在昇腾 NPU 上运行。CPU 推理使用 ONNX Runtime 原生运行。
主要适配工作:
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| 设备 | 推理后端 | 类别 | 置信度 | 推理耗时 |
|---|---|---|---|---|
| CPU | ONNX Runtime | Real | 0.501111 | 12.58 ms |
| NPU | PyTorch | Real | 0.501014 | ~11 ms |
python compare_cpu_npu.py| 测试图像 | 指标 | ONNX CPU 结果 | NPU 结果 | 差异 |
|---|---|---|---|---|
| test_face.png | 分类 | Real | Real | 一致 |
| test_face.png | 概率(Deepfake) | 0.498889 | 0.498986 | 0.000098 |
| test_face.png | 概率(Real) | 0.501111 | 0.501014 | 0.000098 |
| test_face.png | 余弦相似度 | - | - | 0.999989 |
| test_face2.png | 分类 | Real | Real | 一致 |
| test_face2.png | 概率(Deepfake) | 0.489272 | 0.489225 | 0.000048 |
| test_face2.png | 概率(Real) | 0.510728 | 0.510775 | 0.000048 |
| test_face2.png | 余弦相似度 | - | - | 0.999967 |
结论:NPU 与 CPU 推理结果误差 < 1%(最大概率相对误差 0.02%)
| 设备 | 推理耗时 (ms) | 加速比 |
|---|---|---|
| CPU (ONNX Runtime) | 12.58 | 1x |
| 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