PPOCR_v6 / README-zh.md
philcuriosity1024's picture
Upload folder using huggingface_hub
6d39ea5 verified
|
Raw
History Blame
5.1 kB
metadata
license: mit
language:
  - zh
base_model:
  - PP-OCRv6_mobile_det
  - PP-OCRv6_mobile_rec
  - PP-LCNet_x0_25_textline_ori
pipeline_tag: text-classification
tags:
  - OCR
  - paddle
  - PPOCRv6
  - axera

PPOCR_v6

English | 中文

本版本 PPOCR_v6 已转换为可在爱芯 NPU 上运行的模型,采用 w8a16 量化。

转换工具链接

如果您对模型转换感兴趣,可以通过以下链接导出 axmodel:

支持平台

性能测试

芯片 模型 npu_mode 耗时(ms)
PP-OCRv6_small_det NPU1 42.158
PP-OCRv6_small_det NPU3 23.837
AX650 PP-LCNet_x0_25_textline_ori NPU1 0.294
PP-LCNet_x0_25_textline_ori NPU3 0.172
PP-OCRv6_small_rec NPU1 2.473
PP-OCRv6_small_rec NPU3 1.073

测试方案:

ax_run_model -w 10 -r 100 -m xx.axmodel

识别和检测的onnx模型来源:PaddlePaddle/PP-OCRv6small-det-onnxsmall-rec-onnx 方向分类器:AXERA-TECH/PPOCR_v5

使用说明

将本仓库所有文件下载到设备中

PPOCR_v6# tree -L 1
.
|-- 11.jpg          # 测试图
|-- README-zh.md
|-- README.md
|-- axmodel         # 各个版本的axmodel
|-- cls.json        # 方向分类模型转换axmodel配置文件
|-- dataset         # 量化数据集 与 测试数据集
|-- det.json        # 检测模型转换axmodel配置文件
|-- fonts           # 绘制字体
|-- onnx            # 各模型的原始onnx文件
|-- ppocrv6_ax.py   # axmodel运行pipeline
|-- ppocrv6_onnx.py # onnx运行pipeline
|-- rec.json        # 识别模型转换axmodel配置文件
|-- res-ax.jpg      # axmodel运行结果
|-- res-onnx.jpg    # onnx运行结果
|-- run_det_ax.py   # 检测axmodel模型准确率测试文件
|-- run_det_onnx.py # 检测onnx模型准确率测试文件
|-- run_rec_ax.py   # 识别axmodel模型准确率测试文件
`-- run_rec_onnx.py # 识别onnx模型准确率测试文件

转换

cd dataset 
sh download_quant_dataset.sh
sh download_val_dataset.sh
cd ..
pulsar2 build --config det.json 
pulsar2 build --config cls.json 
pulsar2 build --config rec.json 

测试

检测

python3 run_det_onnx.py --resize_mode letterbox   # resize_mode可选:letterbox(默认)、stretch(官方)
"""
  Images:       50
  GT boxes:     201
  DET boxes:    151
  Matched:      77
  Precision:    0.5099 (50.99%)
  Recall:       0.3831 (38.31%)
  Hmean (F1):   0.4375
"""
python3 run_det_ax.py --resize_mode letterbox   # resize_mode可选:letterbox(默认)、stretch(官方)
"""
  Images:       50
  GT boxes:     201
  DET boxes:    150
  Matched:      75
  Precision:    0.5000 (50.00%)
  Recall:       0.3731 (37.31%)
  Hmean (F1):   0.4274
"""

注:resize_modestretch时,为官方做法,直接resize到模型输入大小;letterbox为右下角填充,与动态输入的onnx差距较小,在本项测试中指标较优。可下载 small-det-onnx 中动态输入 shapeinference.onnx 进行对比。

识别

python3 run_rec_onnx.py
"""
  Total samples:         2077
  Correct (exact match): 1563
  Accuracy:              0.7525 (75.25%)
  Norm Edit Distance:    0.8947
"""
python3 run_rec_ax.py
"""
  Total samples:         2077
  Correct (exact match): 1518
  Accuracy:              0.7309 (73.09%)
  Norm Edit Distance:    0.8781
"""

推理

在 AX650 主机上推理,如 M4N-Dock(爱芯派Pro)

输入图片: input

python3 ppocrv6_onnx.py --use_angle_cls --visualize --image 11.jpg
python3 ppocrv6_ax.py --use_angle_cls --visualize --image 11.jpg

输出图片: output

其他

tiny的识别模型量化误差较大,指标如下:

onnx-preds:
  Total samples:         2077
  Correct (exact match): 1271
  Accuracy:              0.6119 (61.19%)
  Norm Edit Distance:    0.8263

ax-w8a16-preds:
  Total samples:         2077
  Correct (exact match): 1178
  Accuracy:              0.5672 (56.72%)
  Norm Edit Distance:    0.7941

TODO

  • ax620性能测试
  • ax615性能测试