PaddleOCR
Baidu's Apache 2.0 OCR toolkit (飞桨 PaddleOCR). PP-OCRv6 ships at 1.5M, 7.7M and 34.5M parameters, and PaddleOCR-VL-1.6 is a 0.9B document parser covering 109 languages.
Overview
Baidu open-sourced PaddleOCR in 2020 and it has been the default OCR stack across Chinese industry ever since. Version 3.7.0, dated 11 June 2026, introduced PP-OCRv6 in three sizes: tiny at 1.5M parameters, small at 7.7M and medium at 34.5M. One unified recognition model now covers 50 languages, which means a page mixing Simplified Chinese, English and Japanese does not need three model loads and three post-processing paths.
The repository is much more than a text recogniser. PP-StructureV3 handles layout analysis, table structure, formulas and reading order, and PaddleOCR-VL-1.6 is a 0.9B vision-language parser combining a NaViT-style dynamic-resolution encoder with ERNIE-4.5-0.3B, reported at 96.3 on OmniDocBench v1.6 across 109 languages. Everything is Apache 2.0, code and weights alike. No community licence, no user cap, no acceptable-use annex. In a category where several high-profile releases carry field-of-use restrictions, that single fact decides a lot of commercial projects.
The friction is PaddlePaddle. Installing the framework alongside the toolkit means matching CUDA and cuDNN to a specific paddlepaddle-gpu wheel, and those wheels historically trail new Python releases by months. English documentation is genuinely maintained and the docs site offers several languages, but deep GitHub issue threads still run in Chinese and that is where the useful answers are. PaddleOCR-VL weights are published on Hugging Face under the PaddlePaddle organisation and the toolkit fetches PP-OCR models automatically on first run, so nothing here needs a mainland phone number or a business licence. Hardware coverage goes past NVIDIA to Intel CPU, Kunlunxin XPU and other domestic accelerator targets, which matters if your deployment sits inside a Chinese enterprise with a domestic-chip procurement policy.
Key Features
- ✓ PP-OCRv6 in three deployment tiers: tiny at 1.5M parameters, small at 7.7M and medium at 34.5M
- ✓ One unified recognition model covering 50 languages, including Simplified and Traditional Chinese, Japanese, Korean and Latin scripts
- ✓ PaddleOCR-VL-1.6, a 0.9B vision-language document parser built on a NaViT-style encoder over ERNIE-4.5-0.3B, reported at 96.3 on OmniDocBench v1.6
- ✓ PP-StructureV3 pipeline for layout analysis, table structure, formula recognition and reading order, output as Markdown or JSON
- ✓ Inference across ONNX Runtime, OpenVINO and TensorRT; the v3.7.0 notes report 5.2x CPU speedup with OpenVINO and 6.1x on Apple M4
- ✓ Full training, fine-tuning and export scripts in the same repository, plus a serving mode and an MCP server
Where it holds
- • Apache 2.0 on both code and weights. No community licence, no monthly-active-user threshold, no acceptable-use annex to route past legal
- • PP-OCRv6 tiny at 1.5M parameters is small enough for real edge and on-premises deployment without a GPU
- • Mixed CJK and Latin pages are handled by one 50-language model, so no per-language model swapping on a bilingual invoice or contract
- • Training and fine-tuning recipes ship alongside inference, so adapting to a domain font or a specific form layout is a supported path rather than a fork
Where it breaks
- • The PaddlePaddle framework is a separate install and matching CUDA and cuDNN versions to the right paddlepaddle-gpu wheel is fussy; the wheels also trail new Python releases
- • English documentation is maintained but lags the Chinese pages, and the fastest answers on GitHub issues are usually in Chinese
- • The 2.x to 3.x API break was large, so a great deal of tutorial content and Stack Overflow material still teaches the old interface
- • Model naming is confusing across PP-OCRv5, PP-OCRv6, PP-StructureV3 and PaddleOCR-VL, with overlapping pipelines that are not obvious to a newcomer
My Take
PP-OCRv6 landed in June 2026 and reset the size-to-accuracy curve: the medium tier is 34.5M parameters and the release notes put it around 4.6 percent ahead on detection and 5.1 percent ahead on recognition versus the older PP-OCRv5 server model. Baidu also ships PaddleOCR-VL-1.6, a 0.9B vision-language parser reported at 96.3 on OmniDocBench v1.6. All of it is Apache 2.0, weights included, which is rarer in this category than it should be. The catch is PaddlePaddle itself: the framework is a second install, error messages are often Chinese-first and CUDA version pinning has cost a lot of teams an afternoon.
Quick Info
- Pricing:
- open-source
- Openness:
- Open source
- Licence:
- Apache 2.0
- Starting at:
- Free and open source under Apache 2.0. Code and model weights alike carry no cost, no user cap and no field-of-use restriction. Costs are compute only: PP-OCRv6 tiny runs on commodity CPU, while PaddleOCR-VL-1.6 wants a GPU. Baidu also sells hosted OCR through its cloud, but nothing in the repo requires it.
- Added:
- Aug 2026
- Updated:
- Aug 2026
Use Cases
Judge it on your own work
The notes above say where PaddleOCR holds and where it breaks. The fastest check is your own workload.
Visit website ↗PaddleOCR compared head to head
Alternatives to PaddleOCR
RapidOCR
open-sourcePaddleOCR's models converted to ONNX and shipped without the PaddlePaddle framework. Apache 2.0, a 27.3 MB wheel, PP-OCRv6 small by default and fully offline CPU deployment.
dots.ocr
open-sourceRedNote's (小红书) MIT-licensed document parser. A single vision-language model does layout, reading order and text; dots.mocr at 3B added direct SVG output for charts in March 2026.
MinerU
open-sourceDocument-to-Markdown engine from Shanghai AI Lab's OpenDataLab. Relicensed off AGPLv3 in April 2026, reported at 95.4 on OmniDocBench v1.6 and running on ten domestic AI chip families.
InternVL 3.5
open-sourceShanghai AI Lab's open vision-language family (书生·万象), nine sizes from 1B to 241B-A28B under Apache 2.0. The default open VLM for OCR, document parsing and GUI agent work.