Skip to main content

ONNX-based OCR (PP-OCRv5) inference pipeline with DirectML support.

Project description

English | 简体中文 |

OnnxOCR

onnx_logo

A High-Performance Multilingual OCR Engine Based on ONNX

GitHub Stars
GitHub Forks
GitHub License
Python Version

🚀 Version Updates

  • 2025.05.21
    1. Added PP-OCRv5 model, supporting 5 language types in a single model: Simplified Chinese, Traditional Chinese, Chinese Pinyin, English, and Japanese.
    2. Overall recognition accuracy improved by 13% compared to PP-OCRv4.
    3. Accuracy is consistent with PaddleOCR 3.0.

🌟 Core Advantages

  1. Deep Learning Framework-Free: A universal OCR engine ready for direct deployment.
  2. Cross-Architecture Support: Uses PaddleOCR-converted ONNX models, rebuilt for deployment on both ARM and x86 architecture computers with unchanged accuracy under limited computing power.
  3. High-Performance Inference: Faster inference speed on computers with the same performance.
  4. Multilingual Support: Single model supports 5 language types: Simplified Chinese, Traditional Chinese, Chinese Pinyin, English, and Japanese.
  5. Model Accuracy: Consistent with PaddleOCR models.
  6. Domestic Hardware Adaptation: Restructured code architecture for easy adaptation to more domestic GPUs by modifying only the inference engine.

🛠️ Environment Setup

python>=3.6  

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt  

Note:

  • The Mobile version model is used by default; the PP-OCRv5_Server-ONNX model offers better performance.
  • The Mobile model is already in onnxocr/models/ppocrv5 and requires no download;
  • The PP-OCRv5_Server-ONNX model is large and uploaded to Baidu Netdisk (extraction code: wu8t). After downloading, place the det and rec models in ./models/ppocrv5/ to replace the existing ones.

🚀 One-Click Run

python test_ocr.py  

📡 API Service (CPU Example)

Start Service

python app-service.py  

Test Example

Request

curl -X POST http://localhost:5005/ocr \  
-H "Content-Type: application/json" \  
-d '{"image": "base64_encoded_image_data"}'  

Response

{  
  "processing_time": 0.456,  
  "results": [  
    {  
      "text": "Name",  
      "confidence": 0.9999361634254456,  
      "bounding_box": [[4.0, 8.0], [31.0, 8.0], [31.0, 24.0], [4.0, 24.0]]  
    },  
    {  
      "text": "Header",  
      "confidence": 0.9998759031295776,  
      "bounding_box": [[233.0, 7.0], [258.0, 7.0], [258.0, 23.0], [233.0, 23.0]]  
    }  
  ]  
}  

🐳 Docker Image Environment (CPU)

Build Image

docker build -t ocr-service .  

Run Image

docker run -itd --name onnxocr-service-v3 -p 5006:5005 onnxocr-service:v3  

POST Request

url: ip:5006/ocr  

Response Example

{  
  "processing_time": 0.456,  
  "results": [  
    {  
      "text": "Name",  
      "confidence": 0.9999361634254456,  
      "bounding_box": [[4.0, 8.0], [31.0, 8.0], [31.0, 24.0], [4.0, 24.0]]  
    },  
    {  
      "text": "Header",  
      "confidence": 0.9998759031295776,  
      "bounding_box": [[233.0, 7.0], [258.0, 7.0], [258.0, 23.0], [233.0, 23.0]]  
    }  
  ]  
}  

🌟 Effect Demonstration

Example 1 Example 2
Example 3 Example 4
Example 5 Example 6

👨💻 Contact & Communication

Career Opportunities

I am currently seeking job opportunities. Welcome to connect!
WeChat QR Code

OnnxOCR Community

WeChat Group

WeChat Group

QQ Group

QQ Group

🎉 Acknowledgments

Thanks to PaddleOCR for technical support!

🌍 Open Source & Donations

I am passionate about open source and AI technology, believing they can bring convenience and help to those in need, making the world a better place. If you recognize this project, you can support it via Alipay or WeChat Pay (please note "Support OnnxOCR" in the remarks).

WeChat Pay Alipay

📈 Star History

Star History Chart

🤝 Contribution Guidelines

Welcome to submit Issues and Pull Requests to improve the project together!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

onnxocr_ppocrv5-0.0.2.tar.gz (18.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

onnxocr_ppocrv5-0.0.2-py3-none-any.whl (18.7 MB view details)

Uploaded Python 3

File details

Details for the file onnxocr_ppocrv5-0.0.2.tar.gz.

File metadata

  • Download URL: onnxocr_ppocrv5-0.0.2.tar.gz
  • Upload date:
  • Size: 18.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for onnxocr_ppocrv5-0.0.2.tar.gz
Algorithm Hash digest
SHA256 85d7a90029c7a9be043fc6a65335636a625b1d404db1dedfd0c242235d9871b5
MD5 149281fafe5cd49d6a46a6d023ce6c45
BLAKE2b-256 4165e9f9eb33db0706775297f7227aa88b71241df74ee086778c8c4014fa1d74

See more details on using hashes here.

File details

Details for the file onnxocr_ppocrv5-0.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for onnxocr_ppocrv5-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b1d37e73f15438f10b10720e1fbc477283b06d415681b4c5049ca74ed56280c3
MD5 f32a4a0f9342cabded0e9c144d11b659
BLAKE2b-256 cdfbd7696a08a2bca5f5bea7392cc17bc770fa0a01b9977d17ad570689373739

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page