Hướng dẫn export PaddleOCR model sang ONNX bằng Python

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

  1. Giới thiệu
  2. Yêu cầu trước khi bắt đầu
  3. Bước 1: Cài đặt các phần mềm cần thiết
  4. Bước 2: chuẩn bị model PaddleOCR
  5. Bước 3: Export Detection Model sang ONNX
  6. Bước 4: Export Recognition Model sang ONNX
  7. Bước 5: Test nhanh bằng ONNX Runtime
  8. 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:

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:

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!

Leave a Reply