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.1.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.1-py3-none-any.whl (18.7 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: onnxocr_ppocrv5-0.0.1.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.1.tar.gz
Algorithm Hash digest
SHA256 3c3f3ef06cc84ef5504b196487cbcf7c501d63c23171a1a756834cb00124c038
MD5 db6a0c09d0d59ae90750d50414e24295
BLAKE2b-256 bb949319d5f4da53763952e53fae52c934c0964ed60d1878c162d8794e91db29

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for onnxocr_ppocrv5-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7e7e4f7c17bbdd4c363281eb9dca856de7a523307076a6a401b0e0c1a48c09da
MD5 9f0cc4da56a9f86b9609f601fafdc2ae
BLAKE2b-256 77d628d1efb39c12d56d0c5b98e9a00177886322d942f43839fb78e4149fef45

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