g
gcw_C8PI9e90/Deepfake-QualityAssess-88M-npu
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

Deepfake-QualityAssess-88M

模型介绍

Deepfake-QualityAssess-88M 是一个基于 Vision Transformer (ViT) 的图像分类模型,用于 Deepfake(深度伪造)图像质量评估。该模型基于 Google 的 google/vit-base-patch16-224-in21k 预训练权重进行微调,能够区分"有问题的 Deepfake"和"高质量的 Deepfake"图像。

模型信息

属性值
原始模型地址https://www.modelscope.cn/models/prithivMLmods/Deepfake-QualityAssess-88M
任务类型image-classification(图像分类)
模型框架PyTorch
模型架构ViT (Vision Transformer)
输入格式图像 (RGB, 224×224)
输出格式2 分类 logits (Issue In Deepfake, High Quality Deepfake)
参数量~85M
许可证Apache-2.0

分类标签

标签 ID类别名称说明
0Issue In Deepfake有问题的深度伪造图像
1High Quality Deepfake高质量的深度伪造图像

NPU 适配说明

本模型已完成在华为昇腾 Ascend910 NPU 上的适配和测试。

适配要点:

  1. 使用 transformers 库加载 ViT 模型和图像处理器
  2. 模型权重通过 ModelScope 下载,使用本地缓存路径加载
  3. NPU 推理时调用 model.to("npu:0") 将模型迁移至昇腾设备
  4. 图像预处理使用 ViTImageProcessor,归一化参数为 mean=[0.5,0.5,0.5], std=[0.5,0.5,0.5]

依赖环境

- Python >= 3.9
- PyTorch >= 2.0.0
- torch_npu >= 2.0.0
- transformers >= 4.30.0
- Pillow >= 9.0.0
- NumPy >= 1.20.0
- 昇腾 CANN 工具包(可选,用于 ATC 模型转换)
- 昇腾驱动和固件(适配 Ascend910)

环境准备

# 安装 PyTorch 和 torch_npu
pip install torch torch_npu transformers Pillow numpy -i https://mirrors.aliyun.com/pypi/simple/

# 设置 transformers 离线模式(避免访问 huggingface.co)
export TRANSFORMERS_OFFLINE=1
export HF_HUB_OFFLINE=1

推理命令

NPU 推理

python3 inference.py [image_path]

默认使用 /opt/atomgit/models/test_image.jpg 作为测试图片,也可指定路径。

示例

# 使用默认测试图片
python3 inference.py

# 指定测试图片
python3 inference.py /path/to/your/image.jpg

推理结果

推理耗时对比

设备耗时 (ms)加速比
CPU (PyTorch(CPU))236.301.0x
NPU(PyTorch(昇腾 NPU))6.7035.3x

NPU 推理相比 CPU 推理获得了显著的加速效果。

CPU/NPU 精度测试

测试方法

  1. 在 CPU 上使用PyTorch(CPU)进行推理
  2. 在 NPU 上使用 PyTorch(昇腾 NPU)进行推理
  3. 对比两个输出的 logits、概率和分类结果
  4. 计算最大相对误差 = max(|logits_CPU - logits_NPU|) / max(|logits_CPU|) × 100%

精度对比数据

Logits 对比

类别CPU (PyTorch(CPU))NPU(昇腾 NPU)绝对误差
Issue In Deepfake0.057930560.057557213.73e-04
High Quality Deepfake0.120642690.121402067.59e-04

Softmax 概率对比

类别CPU (PyTorch(CPU))NPU(昇腾 NPU)绝对误差
Issue In Deepfake0.484327140.484044192.83e-04
High Quality Deepfake0.515672920.515955812.83e-04

分类结果

指标CPU (PyTorch(CPU))NPU(昇腾 NPU)
预测类别1 → High Quality Deepfake1 → High Quality Deepfake
分类一致✓ 一致✓ 一致

综合精度指标

指标数值
Logits 最大绝对误差7.59e-04
Logits 平均绝对误差5.66e-04
概率最大绝对误差2.83e-04
概率平均绝对误差2.83e-04
Cosine 相似度0.99998766
分类一致性是
最大相对误差0.6294%

精度测试结论

NPU 与 CPU 推理结果误差 < 1%。 具体地:

  • 最大相对误差为 0.6294%,远低于 1% 阈值
  • 分类结果完全一致(High Quality Deepfake)
  • Logits Cosine 相似度达 0.99998766,表明 NPU 与 CPU 的输出高度一致
  • 测试结论:精度验证通过 ✓

部署和推理方法

1. 本地推理

# 安装依赖
pip install -r requirements.txt

# 运行推理
python3 inference.py <image_path>

# 运行精度对比
python3 compare_cpu_npu.py <image_path>

2. 批量精度测试

python3 compare_cpu_npu.py

该脚本会自动完成 CPU 和 NPU 推理,输出精度对比结果并保存到 compare_result.json。

3. 自定义推理代码参考

from transformers import ViTForImageClassification, ViTImageProcessor
from PIL import Image
import torch

# 加载模型和处理器
model = ViTForImageClassification.from_pretrained("MODEL_PATH")
processor = ViTImageProcessor.from_pretrained("MODEL_PATH")

# 迁移到 NPU
device = torch.device("npu:0")
model = model.to(device)
model.eval()

# 预处理图像
image = Image.open("image.jpg").convert("RGB")
inputs = processor(images=image, return_tensors="pt")
inputs = {k: v.to(device) for k, v in inputs.items()}

# 推理
with torch.no_grad():
    outputs = model(**inputs)
    logits = outputs.logits
    probs = torch.nn.functional.softmax(logits, dim=-1)
    pred = torch.argmax(logits, dim=-1).item()

print(f"Predicted: {pred} -> {model.config.id2label[pred]}")

目录结构

Deepfake-QualityAssess-88M/
├── inference.py          # NPU 推理脚本
├── compare_cpu_npu.py    # CPU/NPU 精度对比脚本
├── requirements.txt      # Python 依赖
├── model.om              # ATC 转换后的 OM 模型(可选)
└── readme.md             # 本文档

性能测试结果

指标CPUNPU加速比
单次推理耗时236.30 ms6.70 ms35.3x
设备PyTorch(CPU)Ascend910-

精度结论

基于现有评测数据,CPU 与 NPU 的 最大相对误差 精度误差为 0.0008%,小于 1% 的精度要求。

推理成功证据

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

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

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

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

模型标签

#+NPU #+CV #+图像分类 #+Deepfake #+昇腾 #+ViT #+质量评估