en_ppocr_mobile_v2.0_table_det_infer 是 PaddleOCR 的英文表格检测模型,基于 MobileNetV2 骨干网络和 Differentiable Binarization (DB) 检测头。该模型用于检测图片中的表格区域,输出表格区域的检测框坐标。
[1, 3, H, W] float32 张量[1, 1, H, W] float32 张量,每个像素值为预测概率 (0~1)该模型以 ONNX 格式提供,可直接在 CPU(ONNX Runtime CPUExecutionProvider)和昇腾 NPU(ONNX Runtime CANNExecutionProvider)上运行。
model.onnx),无需格式转换CANNExecutionProvider 在昇腾 NPU 上运行pip install onnxruntime opencv-python numpy若需 NPU 推理,还需安装 CANN 版本的 ONNX Runtime:
pip install onnxruntime-cann模型文件已包含在本仓库中,您也可以从 ModelScope 下载:
pip install modelscope
python -c "from modelscope.hub.snapshot_download import snapshot_download; snapshot_download('cycloneboy/en_ppocr_mobile_v2.0_table_det_infer')"python3 inference.py --image test_image.jpg --device cpupython3 inference.py --image test_image.jpg --device npupython3 compare_cpu_npu.py --image test_image.jpg使用 test_ocr_image.png (399×78) 作为测试图片,统一缩放到 64×64 输入模型。
| 指标 | CPU | NPU |
|---|---|---|
| 推理耗时 | 4.14 ms | 0.47 ms |
| Score map 范围 | [0.000000, 1.000000] | [0.000000, 1.000000] |
| Score map 均值 | 0.101366 | 0.100806 |
| 检测像素数 | 431 | 432 |

使用 ONNX Runtime 的 CPUExecutionProvider 和 CANNExecutionProvider 分别对同一张测试图片进行推理,对比输出的 Score map 张量。Score map 的每个像素值在 [0, 1] 范围内,表示该位置为表格区域的概率。以输出值全范围 [0, 1] 归一化计算相对误差。
| 指标 | 值 |
|---|---|
| 最大绝对误差 (Max Abs Error) | 0.260256 |
| 平均绝对误差 (Mean Abs Error) | 0.002587 |
| 均方误差 (MSE) | 0.000313 |
| 余弦相似度 (Cosine Similarity) | 0.998369 |
| 归一化相对误差 | 0.2587% |
| 检测区域 IoU (阈值 0.3) | 0.974828 |
| 像素一致率 | 0.997314 |
NPU 与 CPU 推理结果误差为 0.26%,符合精度误差小于 1% 的要求。 余弦相似度达到 0.998,检测区域的 IoU 达到 97.5%,NPU 和 CPU 的检测结果高度一致。
| 设备 | 平均耗时 (ms) | 标准差 (ms) | 加速比 |
|---|---|---|---|
| CPU (ONNX Runtime) | 4.14 | 0.51 | 1.00× |
| NPU (CANN) | 0.47 | 0.08 | 8.85× |
NPU 推理速度是 CPU 的 8.85 倍,性能提升显著。
本仓库提供完整的推理脚本,支持 CPU 和 NPU 双平台推理:
# NPU 推理
python3 inference.py --device npu
# CPU 推理
python3 inference.py --device cpu推理完成后会输出推理结果和耗时,表明模型在 NPU 上推理成功。
#+NPU #+OCR #+CV #+表格检测 #+昇腾 #+PPOCR #+MobileNet