PaddleOCR转ONNX

 

 

1、环境:

pip install paddle2onnx


Windows10下PaddleOCR可以正常inference,然后转存为onnx模型进行推理加速。
paddle:paddlepaddle-gpu=2.0.0rc1;
paddle2onnx:paddle2onnx=0.5;
onnx:onnx=1.8.0;
onnxruntime:onnxruntime-gpu=1.6.0;
cuda:cuda=10.1;
cudnn:cudnn=7.6.5;
这边onnxruntime-gpu需要安装cuda,onnxruntime就不需要,正常无需gpu加速,已可达到使用需求。

2、模型转换(paddle-onnx)
(1)检测模型
paddle2onnx --model_dir ./inference_large/det/ --model_filename inference.pdmodel --params_filename inference.pdiparams --save_file ./onnx_model/det_large.onnx --opset_version 11 --enable_onnx_checker True 
1
通过上述命令在目录onnx_model下得到PaddleOCR检测模型的onnx模型,该模型可以放到netron上查看输入尺寸,默认为(-1 * 3 * 640 * 640),如果我们需要修改模型输入的尺寸和batch,可以用onnx修改得到的onnx模型输入尺寸(? * 3 * ? * ?):

file_path = './onnx_model/det_large.onnx'
model = onnx.load(file_path)
model.graph.input[0].type.tensor_type.shape.dim[0].dim_param = '?'
model.graph.input[0].type.tensor_type.shape.dim[2].dim_param = '?'
model.graph.input[0].type.tensor_type.shape.dim[3].dim_param = '?'
onnx.save(model, './onnx_model/det_large_dynamic.onnx')



(2)识别模型
paddle2onnx --model_dir ./inference_large/rec/ --model_filename inference.pdmodel --params_filename inference.pdiparams --save_file ./onnx_model/rec_large.onnx --opset_version 11 --enable_onnx_checker True 
1
同理,通过上述命令在目录onnx_model下得到PaddleOCR检测模型的onnx模型,该模型可以放到netron上查看输入尺寸,默认为(-1 * 3 * 32 * 100),如果我们需要修改模型输入的尺寸和batch,可以用onnx修改得到的onnx模型输入尺寸(? * 3 * ? * ?):

file_path = '。/onnx_model/rec_large.onnx'
model = onnx.load(file_path)
model.graph.input[0].type.tensor_type.shape.dim[0].dim_param = '?'
model.graph.input[0].type.tensor_type.shape.dim[2].dim_param = '?'
model.graph.input[0].type.tensor_type.shape.dim[3].dim_param = '?'
onnx.save(model, './onnx_model/rec_large_dynamic.onnx')
————————————————
版权声明:本文为CSDN博主「favorxin」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/favorxin/article/details/113838901

你可能感兴趣的:(目标检测)