/PaddleOCR

Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80+ languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices)

Primary LanguagePythonApache License 2.0Apache-2.0

English | 简体中文

Introduction

PaddleOCR aims to create multilingual, awesome, leading, and practical OCR tools that help users train better models and apply them into practice.

Recent updates

  • 🔥2022.5.9 Release PaddleOCR release/2.5

    • Release PP-OCRv3: With comparable speed, the effect of Chinese scene is further improved by 5% compared with PP-OCRv2, the effect of English scene is improved by 11%, and the average recognition accuracy of 80 language multilingual models is improved by more than 5%.
    • Release PPOCRLabelv2: Add the annotation function for table recognition task, key information extraction task and irregular text image.
    • Release interactive e-book "Dive into OCR", covers the cutting-edge theory and code practice of OCR full stack technology.
  • 2021.12.21 Release PaddleOCR release/2.4

    • Release 1 text detection algorithm (PSENet), 3 text recognition algorithms (NRTRSEEDSAR).
    • Release 1 key information extraction algorithm SDMGR and 3 DocVQA algorithms (LayoutLM, LayoutLMv2, LayoutXLM).
  • 2021.9.7 Release PaddleOCR release/2.3

    • Release PP-OCRv2. The inference speed of PP-OCRv2 is 220% higher than that of PP-OCR server in CPU device. The F-score of PP-OCRv2 is 7% higher than that of PP-OCR mobile.
  • 2021.8.3 Release PaddleOCR release/2.2

    • Release a new structured documents analysis toolkit, i.e., PP-Structure, support layout analysis and table recognition (One-key to export chart images to Excel files).
  • more

Features

PaddleOCR support a variety of cutting-edge algorithms related to OCR, and developed industrial featured models/solution PP-OCR and PP-Structure on this basis, and get through the whole process of data production, model training, compression, inference and deployment.

It is recommended to start with the “quick start” in the document tutorial

Quick Experience

E-book: Dive Into OCR

Community👬

  • For international developers, we regard PaddleOCR Discussions as our international community platform. All ideas and questions can be discussed here in English.

  • For Chinese develops, Scan the QR code below with your Wechat, you can join the official technical discussion group. For richer community content, please refer to 中文README, looking forward to your participation.

PP-OCR Series Model List(Update on September 8th)

Model introduction Model name Recommended scene Detection model Direction classifier Recognition model
Chinese and English ultra-lightweight PP-OCRv3 model(16.2M) ch_PP-OCRv3_xx Mobile & Server inference model / trained model inference model / trained model inference model / trained model
English ultra-lightweight PP-OCRv3 model(13.4M) en_PP-OCRv3_xx Mobile & Server inference model / trained model inference model / trained model inference model / trained model
Chinese and English ultra-lightweight PP-OCRv2 model(11.6M) ch_PP-OCRv2_xx Mobile & Server inference model / trained model inference model / trained model inference model / trained model
Chinese and English ultra-lightweight PP-OCR model (9.4M) ch_ppocr_mobile_v2.0_xx Mobile & server inference model / trained model inference model / trained model inference model / trained model
Chinese and English general PP-OCR model (143.4M) ch_ppocr_server_v2.0_xx Server inference model / trained model inference model / trained model inference model / trained model

Tutorials

Visualization more

PP-OCRv3 Chinese model
PP-OCRv3 English model
PP-OCRv3 Multilingual model
PP-Structure
  • layout analysis + table recognition
  • SER (Semantic entity recognition)
  • RE (Relation Extraction)

Guideline for New Language Requests

If you want to request a new language support, a PR with 1 following files are needed:

  1. In folder ppocr/utils/dict, it is necessary to submit the dict text to this path and name it with {language}_dict.txt that contains a list of all characters. Please see the format example from other files in that folder.

If your language has unique elements, please tell me in advance within any way, such as useful links, wikipedia and so on.

More details, please refer to Multilingual OCR Development Plan.

License

This project is released under Apache 2.0 license