PaddleOCR模型转换为ONNX,并设置固定输入尺寸

Paddle2onnx

源码:源码地址
在不需要设置固定尺寸时不需要下载源码只需要

pip install paddle2onnx
paddle2onnx --model_dir saved_inference_model \
            --model_filename model.pdmodel \
            --params_filename model.pdiparams \
            --save_file model.onnx

固定输入尺寸

  1. 将源码下载下来,安装相应的库
  2. 给输入指定尺寸
python tools/paddle/infer_paddle_model_shape.py --model_path ckpt/ch_ppocr_server_v2.0_det_infer/inference --save_path ch_PP-OCRv2_det_infer/inference --input_shape_dict="{'x':[-1,3,352,640]}"
python tools/paddle/infer_paddle_model_shape.py --model_path ckpt/ch_ppocr_mobile_v2.0_cls_infer/inference --save_path new_ckpt/ch_ppocr_mobile_v2.0_cls_infer/inference --input_shape_dict="{'x':[-1,3,48,192]}"
  1. 将转换好的模型转换为onnx
paddle2onnx --model_dir new_ckpt/ch_ppocr_mobile_v2.0_cls_infer --model_filename inference.pdmodel --params_filename inference.pdiparams --save_file ./onnx_model/onnx_fixed/cls_large.onnx --opset_version 11 --enable_onnx_checker True
paddle2onnx --model_dir new_ckpt/ch_ppocr_server_v2.0_det_infer --model_filename inference.pdmodel --params_filename inference.pdiparams --save_file ./onnx_model/onnx_fixed/det_large.onnx --opset_version 11 --enable_onnx_checker True
  1. 通过netron查看结果,针对paddleocr中,检测模块可以固定所有尺寸,角度类别网络只能固定chw,b=-1,识别网络基本不用固定尺寸,采取动态输入。
    参考:paddle2onnx
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!要将PaddleOCR训练的模型转换ONNX格式,您可以按照以下步骤进行操作: 1. 安装依赖: ```bash pip install paddlepaddle paddleocr onnxruntime ``` 2. 导入PaddleOCR和相关库: ```python import paddleocr import paddle.fluid as fluid import onnx import onnxruntime ``` 3. 加载PaddleOCR训练的模型: ```python paddleocr.OCR(rec_img_shapes=[3, 32, 320], rec_char_type='ch', \ use_gpu=False, use_angle_cls=True) model_path = 'your_model_path' model = paddleocr.load_model(model_path) ``` 4. 定义输入和输出的变量: ```python input_names = ['image'] output_names = ['ctc_greedy_decoder_0.tmp_0'] input_spec = fluid.core.VarDesc.VarType.LOD_TENSOR output_spec = fluid.core.VarDesc.VarType.LOD_TENSOR ``` 5. 创建PaddlePaddle的Executor,并加载模型参数: ```python exe = fluid.Executor(fluid.CPUPlace()) [inference_program, feed_target_names, fetch_targets] = \ fluid.io.load_inference_model(dirname=model_path, executor=exe) ``` 6. 使用PaddlePaddle的Fluid框架将模型转换ONNX格式: ```python paddle.onnx.export( inference_program, path="model.onnx", input_spec=[(input_names[0], input_spec)], output_spec=[(output_names[0], output_spec)], opset_version=11, enable_onnx_checker=True) ``` 7. 至此,您已经成功将PaddleOCR训练的模型转换ONNX格式,并保存为"model.onnx"文件。 请确保您按照上述步骤操作,并将"your_model_path"替换为您的模型路径。如果您使用的是GPU,请将"use_gpu"参数设置为True,同时将"fluid.CPUPlace()"替换为"fluid.CUDAPlace(0)"。 希望对您有所帮助!如有更多疑问,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值