paddleocr在部署时候时,不同硬件平台兼容性做的不好,x86平台要用inference,arm用lite,为适配不同平台,采用MNN来进行推理。
1、paddlepaddle_gpu
版本非常重要,其余版本都出现转化错误,借助下面链接:
https://github.com/PaddlePaddle/Paddle/issues/77757
paddlepaddle_gpu更换为3.2.1版本
pip install paddlepaddle-gpu==3.2.1 -i https://www.paddlepaddle.org.cn/packages/stable/cu126/
2、paddle2ONNX
https://github.com/PaddlePaddle/Paddle2ONNX
安装版本v2.1.0版本即可
3、PaddleOCR 3.4.0版本
采用python3.10版本,结合PaddleOCR 3.4.0,
进行训练:
python -m paddle.distributed.launch --gpus '1' ./tools/train.py -c ./passwd/PP-OCRv5_mobile_det.yml
进行export_model
python ./tools/export_model.py -c ./passwd/PP-OCRv5_mobile_det.yml -o Global.pretrained_model=./output/PP-OCRv5_mobile_det/latest.pdparams Global.save_inference_dir=./output/PP-OCRv5_mobile_det/inference/
导成inference.pdiparams和inference.json
转化为onnx
paddle2onnx --model_dir ./output/PP-OCRv5_mobile_det/inference/ --model_filename inference.json --params_filename inference.pdiparams --save_file model.onnx --opset_version 11
然后MNN进行转化
./MNNConvert -f ONNX --modelFile /home/gzy/ocr/model.onnx --MNNModel /home/gzy/ocr/best.mnn
3、进行det和rec的推理