Skip to content
PaddleOCR logo

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.

4.5/5 my assessment
Open-source
Artificial Intelligence

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.

Francis Okafor
Francis Okafor AI & Tech Lead · Engineer

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

document processing computer vision automation software development

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