Sử dụng PaddleOCR model bằng thư viện Microsoft ONNX runtime giúp tốc độ xử lý nhanh hơn và dễ dàng debug bằng ngôn ngữ C#/C++. Bài viết này hướng dẫn cách export model det và rec sang file ONNX.
Mục lục
- Giới thiệu
- Yêu cầu trước khi bắt đầu
- Bước 1: Cài đặt các phần mềm cần thiết
- Bước 2: chuẩn bị model PaddleOCR
- Bước 3: Export Detection Model sang ONNX
- Bước 4: Export Recognition Model sang ONNX
- Bước 5: Test nhanh bằng ONNX Runtime
- Tổng kết
Giới thiệu
Trong bài viết này, chúng ta sẽ thực hiện export model PaddleOCR sang định dạng ONNX để dễ dàng deploy trên nhiều nền tảng khác nhau như C++, C#, TensorRT, ONNX Runtime hoặc OpenVINO.
Sau khi export thành công, bạn sẽ được 2 file:
- det.onnx: model phát hiện vùng text
- rec.onnx: model nhận diện ký tự
Bước 1: Cài đặt các phần mềm cần thiết
Bài hướng dẫn sử dụng các phiên bản sau:
- Python 3.12.8
- paddlepaddle-gpu==3.1.1
- paddle2onnx==2.1.0
- onnxruntime==1.24.4
Bước 2: chuẩn bị model PaddleOCR
Download model det tại link: https://www.paddleocr.ai/latest/en/version3.x/module_usage/text_detection.html
Download model rec tại link: https://www.paddleocr.ai/latest/en/version3.x/module_usage/text_recognition.html
Cấu trúc thư mục nên giống như sau:
|
1 2 3 4 5 6 7 8 9 |
model/ ├─ PP-OCRv5_mobile_det_infer/ │ ├─ inference.json │ └─ inference.pdiparams │ └─ PP-OCRv5_mobile_rec_infer/ ├─ inference.json └─ inference.pdiparams |
Bước 3: Export Detection Model sang ONNX
Chạy lệnh sau:
paddle2onnx --model_dir PP-OCRv5_mobile_det_infer --model_filename inference.json --params_filename inference.pdiparams --save_file det.onnx
Nếu export thành công, bạn sẽ được file det.onnx trong cùng folder
Bước 4: Export Recognition Model sang ONNX
Chạy lệnh sau để export model OCR Recognition:
paddle2onnx --model_dir PP-OCRv5_mobile_rec_infer --model_filename inference.json --params_filename inference.pdiparams --save_file rec.onnx
Nếu export thành công, bạn sẽ được file rec.onnx trong cùng folder

Bước 5: Test nhanh bằng ONNX Runtime
Để kiểm tra ONNX Runtime có load được model hay không, sử dụng đoạn code Python bên dưới:
|
1 2 3 4 5 6 7 8 9 |
import onnxruntime as ort for path in ["det.onnx", "rec.onnx"]: session = ort.InferenceSession(path) print(path, "loaded") print("inputs:", [x.name for x in session.get_inputs()]) print("outputs:", [x.name for x in session.get_outputs()]) |
Nếu cả 2 model đều load thành công thì quá trình export đã hoàn tất.
Tổng kết
Như vậy, bạn đã hoàn thành việc export PaddleOCR Models sang định dạng ONNX để sử dụng với ONNX Runtime hoặc tích hợp vào các ứng dụng C++, C#, AI Edge hoặc GPU inference.
Lợi ích của việc sử dụng ONNX runtime giúp các bạn dễ debug và nhanh chóng triển khai trong thực tế hơn là build từ lib Paddle Inference. Chúc các bạn thành công!