本文档记录 PoseResNet 卡片检测与矫正模型在昇腾 NPU (Ascend 910B3) 上的迁移适配与精度验证结果。
该模型基于 ResNet18 骨干网络,通过关键点检测实现身份证、银行卡等卡片的定位与透视矫正。模型输出热力图(heatmap)、边界框回归等多项预测。
相关获取地址:
参考文档:
| 组件 | 版本 |
|---|---|
CANN | 8.5.1 |
torch | 2.8.0 |
torch_npu | 2.8.0.post4 |
modelscope | 1.37.0 |
opencv-python-headless | 4.13.0 |
Ascend 910B3,单卡推理[1, 3, 768, 768] RGB 图像conda create -n cv_resnet18_card_correction python=3.10 -y
conda activate cv_resnet18_card_correction
pip install torch==2.8.0 torch_npu==2.8.0.post4 torchvision==0.23.0 \
-i https://mirrors.huaweicloud.com/repository/pypi/simple \
--trusted-host mirrors.huaweicloud.com
pip install modelscope==1.37.0 opencv-python-headless numpy \
sortedcontainers simplejson addict datasets pyarrow Pillow \
-i https://mirrors.huaweicloud.com/repository/pypi/simple \
--trusted-host mirrors.huaweicloud.commodelscope download --model damo/cv_resnet18_card_correction \
--local_dir ./cv_resnet18_card_correctionpython inference.py --image card.jpg --device npufrom inference import run_inference
result = run_inference("card.jpg", device="npu")
print(f"耗时: {result['time_ms']:.1f}ms")python evaluate.py验证结果:
[1, 1, 192, 192]测试条件:input [1, 3, 768, 768]。
| 指标 | CPU | NPU (Ascend 910B3) |
|---|---|---|
| 推理耗时 | 1671 ms | 8 ms |
| 加速比 | — | 201.5x |
对比 CPU (PyTorch) 与 NPU (torch_npu) 在相同随机输入下模型输出热力图 (hm) 的鲁棒平均相对误差(|value| > 0.01)。
| 指标 | 数值 |
|---|---|
| 输出形状 | [1, 1, 192, 192] |
| 鲁棒平均相对误差 | 0.0111% |
| 精度要求 | 平均相对误差 < 1% |
| 精度评测 | 通过 |
pipeline.infer_model 获取 PoseResNet 模型,输出为 list of dict 包含 hm、reg、wh 等多个头