Closed5
PaddleOCR v5をonnx化する

日本語のREADMEあり
ライセンスはApache-2.0 license

READMEより、前提となるpaddlepaddle
のインストールが必要
Windows users need to use the following command to install the dev version of paddlepaddle
python -m pip install --pre paddlepaddle -i https://www.paddlepaddle.org.cn/packages/nightly/cpu/
windowsの場合はpaddlepaddle
をプレビュー版から取得する必要がある

次にpaddleocr
をインストールし、paddlex --install paddle2onnx
コマンドを実行する。
これにより以下のコマンドで変換できるらしい。
paddlex \
--paddle2onnx \ # Use the paddle2onnx feature
--paddle_model_dir /your/paddle_model/dir \ # Specify the directory containing the Paddle model
--onnx_model_dir /your/onnx_model/output/dir \ # Specify the output directory for the converted ONNX model
--opset_version 7 # Specify the ONNX opset version to use

モデルはここからダウンロードできる

実際に試す
環境
- OS: Windows
- Python 3.12.10
- uv + venv
前準備
uv venv -p 3.12 .venv
.\.venv\Scripts\Activate.ps1
uv pip install -U pip
uv pip install -U setuptools
主要パッケージのインストール
uv pip install --pre paddlepaddle -i https://www.paddlepaddle.org.cn/packages/nightly/cpu/
uv pip install paddleocr
paddlex --install paddle2onnx
モデルファイルは.tar
で圧縮されているので解凍しておく。
また、出力用のフォルダも作成しておく
フォルダ構成
├─.venv
├─det_onnx
├─PP-OCRv5_mobile_det_infer
├─PP-OCRv5_mobile_rec_infer
└─rec_onnx
OCRv5_mobile_rec_inferの変換を実行する
paddlex --paddle2onnx --paddle_model_dir PP-OCRv5_mobile_rec_infer --onnx_model_dir rec_onnx --opset_version 7
onnxruntime
とonnx_graphsurgeon
が不足していたようなので自動的にインストールされた。
変換時のログ
Input dir: PP-OCRv5_mobile_rec_infer
Output dir: rec_onnx
Paddle2ONNX conversion starting...
[Paddle2ONNX] Start parsing the Paddle model file...
[Paddle2ONNX] Use opset_version = 7 for ONNX export.
[Paddle2ONNX] PaddlePaddle model is exported as ONNX format now.
2025-09-11 00:48:01 [INFO] Try to perform constant folding on the ONNX model with Polygraphy.
[W] 'colored' module is not installed, will not use colors when logging. To enable colors, please install the 'colored' module: python3 -m pip install colored
[I] Module: 'onnxruntime' is required, but not installed. Attempting to install now.
[I] Running installation command: .venv\Scripts\python.exe -m pip install onnxruntime>=1.10.0
[I] Folding Constants | Pass 1
[I] Module: 'onnx_graphsurgeon' is required, but not installed. Attempting to install now.
[I] Running installation command: .venv\Scripts\python.exe -m pip install onnx_graphsurgeon>=0.3.27 --extra-index-url=https://pypi.ngc.nvidia.com
[I] Total Nodes | Original: 1011, After Folding: 578 | 433 Nodes Folded
[I] Folding Constants | Pass 2
[I] Total Nodes | Original: 578, After Folding: 578 | 0 Nodes Folded
2025-09-11 00:48:40 [INFO] ONNX model saved in rec_onnx\inference.onnx.
Paddle2ONNX conversion succeeded
Copied PP-OCRv5_mobile_rec_infer\inference.yml to rec_onnx\inference.yml
Done
同様にOCRv5_mobile_det_inferの変換を実行する
paddlex --paddle2onnx --paddle_model_dir PP-OCRv5_mobile_det_infer --onnx_model_dir det_onnx --opset_version 7
変換時のログ
Input dir: PP-OCRv5_mobile_det_infer
Output dir: det_onnx
Paddle2ONNX conversion starting...
[Paddle2ONNX] Start parsing the Paddle model file...
[Paddle2ONNX] Use opset_version = 11 for ONNX export.
[Paddle2ONNX] PaddlePaddle model is exported as ONNX format now.
2025-09-11 01:48:46 [INFO] Try to perform constant folding on the ONNX model with Polygraphy.
[W] 'colored' module is not installed, will not use colors when logging. To enable colors, please install the 'colored' module: python3 -m pip install colored
[I] Folding Constants | Pass 1
[I] Total Nodes | Original: 949, After Folding: 526 | 423 Nodes Folded
[I] Folding Constants | Pass 2
[I] Total Nodes | Original: 526, After Folding: 526 | 0 Nodes Folded
2025-09-11 01:49:00 [INFO] ONNX model saved in det_onnx\inference.onnx.
Paddle2ONNX conversion succeeded
Copied PP-OCRv5_mobile_det_infer\inference.yml to det_onnx\inference.yml
Done
このスクラップは10日前にクローズされました