跳转至

如何更换其他检测和识别模型?

本文详尽地给出了如何更换其他检测和识别模型的保姆级教程。

Note

建议用rapidocr_onnxruntime>=1.3.x版本来加载PaddleOCR v3/v4版本训练所得模型。

引言

rapidocr系列库中默认打包了轻量版的中英文检测和识别模型,这种配置可以覆盖到大部分场景。但是也总会有一些其他场景,要用到其他检测和识别模型。

这一点在设计时已经做了考虑,留出了接口,这个博客就是以如何更换rapidocr_onnxruntime的识别模型为英文和数字的识别模型为例做讲解,其他模型同理。

⚠️注意:使用其他模型的前提条件:使用的模型必须是PaddleOCR中文本检测DBNet系列、文本识别CRNN系列模型,这样才能保证前后处理代码可以复用,其他模型不能直接替换模型路径使用。

以下以使用英文和数字识别模型为例讲解。

1. 安装rapidocr_onnxruntime

pip install rapidocr_onnxruntime

详细教程参考:link

2. 获得英文和数字的ONNX识别模型

Note

如果想用RapidOCR仓库推理其他模型,必须要用PaddleOCRModelConvert工具转换模型
转换模型时,字典会自动写入到onnx模型里,rapidocr_onnxruntime推理时无须额外指定字典。

模型地址:

https://paddleocr.bj.bcebos.com/PP-OCRv4/english/en_PP-OCRv4_rec_infer.tar

字典地址:

https://raw.githubusercontent.com/PaddlePaddle/PaddleOCR/release/2.7/ppocr/utils/en_dict.txt

在线转换: 基于PaddleOCRModelConvert工具得到en_PP-OCRv4_rec_infer.onnx模型。

详细教程参见:link

3. 使用模型

Note

检测模型,对应模型路径参数为det_model_path
识别模型,对应模型路径参数为rec_model_path
详细说明参见:link

如果得到的识别模型,没有将字典文件写入到ONNX模型中,可以通过初始化RapidOCR类时,通过rec_keys_path来指定对应的字典文件。

1
2
3
4
5
6
7
8
9
from rapidocr_onnxruntime import RapidOCR

# det_model_path同理
model = RapidOCR(rec_model_path="en_PP-OCRv4_rec_infer.onnx")

img_path = "1.png"
result, elapse = model(img_path)
print(result)
print(elapse)

评论