paddle 文本检测识别模型转为onnx

发布时间:2026/7/6 1:27:34

paddle 文本检测识别模型转为onnx 命令行方式默认使用 PP-OCRv5 模型paddleocr ocr -i https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_ocr_002.png–use_doc_orientation_classify False–use_doc_unwarping False–use_textline_orientation False–save_path ./output–device gpu:0Python脚本方式集成命令行方式是为了快速体验查看效果一般来说在项目中往往需要通过代码集成您可以通过几行代码即可完成产线的快速推理推理代码如下from paddleocrimportPaddleOCRocrPaddleOCR(use_doc_orientation_classifyFalse,# 通过 use_doc_orientation_classify 参数指定不使用文档方向分类模型 use_doc_unwarpingFalse,# 通过 use_doc_unwarping 参数指定不使用文本图像矫正模型 use_textline_orientationFalse,# 通过 use_textline_orientation 参数指定不使用文本行方向分类模型)#ocrPaddleOCR(langen)# 通过 lang 参数来使用英文模型#ocrPaddleOCR(ocr_versionPP-OCRv4)# 通过 ocr_version 参数来使用 PP-OCR 其他版本#ocrPaddleOCR(devicegpu)# 通过 device 参数使得在模型推理时使用 GPU#ocrPaddleOCR(#text_detection_model_namePP-OCRv5_server_det,#text_recognition_model_namePP-OCRv5_server_rec,#use_doc_orientation_classifyFalse,#use_doc_unwarpingFalse,#use_textline_orientationFalse,#)# 更换 PP-OCRv5_server 模型 resultocr.predict(./general_ocr_002.png)forres in result:res.print()res.save_to_img(output)res.save_to_json(output)ONNX导出PaddleOCR 官方提供了 Paddle2ONNX 工具支持将 PaddlePaddle 模型格式转化到 ONNX 模型格式Paddle2ONNX1 Paddle2ONNX 简介Paddle2ONNX 支持将PaddlePaddle模型格式转化到ONNX模型格式。通过 ONNX 可以完成将 Paddle 模型到多种推理引擎的部署包括 TensorRT/OpenVINO/MNN/TNN/NCNN以及其它对 ONNX 开源格式进行支持的推理引擎或硬件。2 Paddle2ONNX 环境依赖Paddle2ONNX 依赖PaddlePaddle3.0我们建议您在以下环境下使用 Paddle2ONNX PaddlePaddle 3.0.0onnxruntime 1.10.03 安装 Paddle2ONNX如果您只是想要安装 Paddle2ONNX 且没有二次开发的需求你可以通过执行以下代码来快速安装 Paddle2ONNXpip install paddle2onnx如果你希望对 Paddle2ONNX 进行二次开发请按照Github 源码安装方式编译Paddle2ONNX。4 快速使用教程4.1 获取PaddlePaddle部署模型Paddle2ONNX 在导出模型时需要传入部署模型格式包括两个文件model_name.json: 表示模型结构model_name.pdiparams: 表示模型参数4.2 调整Paddle模型如果对Paddle模型的输入输出需要做调整可以前往Paddle 相关工具查看教程。4.3 使用命令行转换 PaddlePaddle 模型你可以通过使用命令行并通过以下命令将Paddle模型转换为ONNX模型paddle2onnx--model_dirmodel_dir\--model_filenamemodel.json\--params_filenamemodel.pdiparams\--save_filemodel.onnx可调整的转换参数如下表:参数参数说明–model_dir配置包含 Paddle 模型的目录路径–model_filename[可选]配置位于--model_dir下存储网络结构的文件名–params_filename[可选]配置位于--model_dir下存储模型参数的文件名–save_file指定转换后的模型保存目录路径–opset_version[可选]配置转换为ONNX的OpSet版本目前支持7~19等多个版本默认为 9–enable_auto_update_opset[可选]是否开启opset version自动升级功能当低版本opset无法转换时自动选择更高版本的opset进行转换 默认为 True–enable_onnx_checker[可选]配置是否检查导出为 ONNX 模型的正确性, 建议打开此开关 默认为 True–enable_dist_prim_all[可选]是否开启组合算子拆解默为 False–optimize_tool[可选]ONNX模型优化工具可选择onnxoptimizer、polygraphy、None, 默认为 onnxoptimizer–enable_verbose[可选]是否打印更更详细的日志信息默认为 False–version[可选]查看 paddle2onnx 版本4.4 裁剪ONNX如果你需要调整 ONNX 模型请参考 ONNX 相关工具4.5 优化ONNX如你对导出的 ONNX 模型有优化的需求推荐使用onnxslim对模型进行优化:pipinstallonnxslim onnxslim model.onnx slim.onnx导出后的onnx如图导出的 ONNX 存在一些问题我们需要修改宽高不动态 宽高固定主要是方便 TensorRT 的推理 Conv 和 BN 层融合 算子融合可以提高计算效率、减少操作数、降低延迟 输入输出节点名修改成 images 和 outputtools/paddle下的文件可以处理宽高固定python infer_paddle_model_shape.py--model_pathmodels/det/inference--save_pathmodels/det/new_inference--input_shape_dict{x:[-1,3,960,960]}pdaale2onnx的onnx文件夹中的rename_onnx_model.py可以修改节点名称python rename_onnx_model.py--modelmodel.onnx--origin_namesx1 y1--new_namesimages output--save_filenew_model.onnx算子融合我们可以考虑利用 onnx-simplifier 来完成

相关新闻