前提
- 使用FastDeploy部署,如果原生部署也可以,但是不如这个简洁,当然他们都是飞桨的。
Paddle
版本,测试到在 Paddle 2.4.x版本,PaddleOCRv3版本识别率快且准,但是Paddle 2.5版本的时候 PaddleOCR
v3
准确率下降了很多(截至目前2023十二月),因此这这也是我直接使用 FastDeploy
的原因。
- 使用
FastDeploy
切换模型参数真的是太方便了,而且部署也方便。
- 使用原生模型
PaddleOCRv4
版本非GPU
耗时太长(40S以上),因此转为固定 shape 的onnx模型可以在CPU上秒级识别。
FastDeploy
加载使用 onnx 模型或者其他的比如标题中提到的 RKNN
平台的部署测试也方便。
PaddleOCR 转 onnx精度降低的问题
- 下载V4模型和转换工具,工具使用 Paddle2ONNX,模型请自己下载。
pip install paddle2onnx
- 先将模型转为动态的,但是动态的转rknn的模型暂不支持,因此还需要固定 shape。
paddle2onnx --model_dir ./models-v4/ch_PP-OCRv4_det_infer --model_filename inference.pdmodel --params_filename inference.pdiparams --save_file ./models-v4/ch_PP-OCRv4_det_infer/ch_PP-OCRv4_det_infer.onnx --opset_version 12 --input_shape_dict="{'x':[-1,3,-1,-1]}" --enable_onnx_checker True
paddle2onnx --model_dir ./models-v4/ch_PP-OCRv4_rec_infer --model_filename inference.pdmodel