Start here

Quick start & APIInstallOnline OCRCode generator

Models & pipelines

PP-OCRv6 modelsLanguagesPP-StructureV3PaddleOCR-VL

Deploy & integrate

Serving & APIPaddleOCR.jsMCP server

Fix & upgrade

TroubleshootingMigrate from 2.xReleases

Evaluate

Our benchmarkCompare OCR toolsLicense & cost

Tools

Online OCRInstall command builderCode generatorError fixer2.x → 3.x converterLanguage code finder

Language

English简体中文日本語Try OCR online
Decision guide · Checked October 27, 2026

PaddleOCR vs Tesseract, EasyOCR, Docling and the rest

No single OCR tool wins every job. PaddleOCR is the broadest free option: fast multilingual text lines on a CPU, plus document parsing that ranks near the top of the main public benchmark. Tesseract still suits searchable PDFs from clean scans, RapidOCR is PaddleOCR's models in a lighter ONNX package, and Docling, MinerU and Surya each come with licensing details you should read before you ship.

Checked against PaddleOCR 3.7.0Updated 14 min read
On this page
  1. Which OCR tool for which job
  2. Side-by-side: licenses, versions and capabilities
  3. How widely each is used
  4. What the benchmarks say
  5. PaddleOCR vs EasyOCR
  6. PaddleOCR vs Tesseract
  7. PaddleOCR vs RapidOCR
  8. PaddleOCR vs Docling
  9. PaddleOCR vs MinerU
  10. PaddleOCR vs Surya and Marker
  11. PaddleOCR vs cloud OCR APIs
  12. Other open models worth a look
  13. Questions

Short answer: pick PaddleOCR when you need many languages, rotated or photographed text, or document-to-Markdown parsing under a plain Apache-2.0 license for both code and weights. Pick Tesseract for searchable PDFs and ALTO/hOCR from clean printed scans. Pick RapidOCR if you want PaddleOCR's models without the PaddlePaddle framework. Pick Docling for an MIT-licensed RAG ingestion pipeline (its default OCR is RapidOCR). Check the license before you use MinerU or Surya/Marker commercially.

How to read this page. Every version, license and number below was read from the project's own repo, PyPI, Hugging Face or the vendor's pricing page on October 27, 2026. Benchmark scores come from third-party or vendor tables and are labelled as such. Our own benchmark only measured PaddleOCR models. We did not re-run any competitor, so we make no speed claims about them.

Which OCR tool for which job#

Start from the output you need, not from the tool:

Your jobStart withWhy, and the catch
Text lines with boxes from photos, receipts, screenshots; Chinese, Japanese or mixed scriptsPaddleOCR PP-OCRv6One model reads 50 languages, 112 language codes in total, and it runs on a CPU. In our test PP-OCRv6 small averaged 0.9 s per page. Catch: install the inference engine carefully (install guide).
Searchable PDF, hOCR or ALTO from clean printed scansTesseractWrites those formats natively, comes as pre-built binary packages, needs no deep-learning framework. Catch: weak on Chinese and rotated text in the only shared benchmark (below), and it needs clean images.
PaddleOCR's text models in a light runtime (ONNX, OpenVINO, TensorRT, MNN)RapidOCRIt is PaddleOCR's models converted to ONNX, same Apache-2.0 terms. Catch: no document-parsing pipeline of its own. PaddleOCR 3.x can also run on ONNX Runtime with engine="onnxruntime".
PDFs to Markdown/JSON for RAG, MIT licenseDoclingLayout, reading order, tables and formulas with a choice of OCR engines. Catch: OCR quality depends on the engine you plug in; the default is RapidOCR.
Highest parsing accuracy on hard documents, GPU availablePaddleOCR-VL-1.6 or MinerU2.5-ProBoth score above 95 on OmniDocBench v1.6. Catch: MinerU's code license adds terms for very large companies and online services.
Document parsing on CPU onlyPP-StructureV3 or MinerU's basic tierBoth run without a GPU. PP-StructureV3 took 13–15 s for our invoice on 4 vCPUs.
Layout + OCR from a small VLM, research or a startup under $5MSurya / MarkerStrong, actively released. Catch: the model weights are not free for commercial use above $5M funding or revenue.
No servers to run, pay per pageAWS Textract, Google Document AI, AzureAbout $1.50 per 1,000 pages for basic OCR at all three. Catch: your documents leave your network, and Textract reads only six languages in printed text.

Side-by-side: licenses, versions and capabilities#

The master comparison, split into three tables so each stays readable on a phone.

License and latest release#

ToolCode licenseWeights licenseLatest release
PaddleOCRApache-2.0Apache-2.0 (all 16 HF cards we checked)113.7.0
2026-06-111
TesseractApache-2.0Not stated in README (separate tessdata repo; not checked)5.5.3
2026-07-243
EasyOCRApache-2.0Not stated1.7.2
2024-09-245
RapidOCRApache-2.0Apache-2.0, derived from PaddleOCR3.10.0
2026-10-086
docTRApache-2.0Not stated1.1.0
2026-08-2114
DoclingMITPer model package2.143.1
2026-10-277
MinerUMinerU Open Source License (Apache 2.0 + extra terms)2.5-Pro: Apache-2.0; 2.5-2509: AGPL-3.0114.0.12
2026-10-119
Surya / MarkerApache-2.0Modified Open Rail-M, free only under $5M0.22.1 / 2.0.0
2026-07-2012
olmOCRApache-2.0Apache-2.00.4.27
2026-03-1215

What it is and who maintains it#

ToolApproachHardwareMaintainer
PaddleOCRDetection + recognition; PP-StructureV3; 0.9B VLM (PaddleOCR-VL)CPU, GPU, XPU, NPUPaddlePaddle (Baidu)
TesseractLSTM line recognizer + legacy engineCPU (no GPU mentioned)Stefan Weil, Zdenko Podobny
EasyOCRCRAFT + CRNN on PyTorchGPU or CPUJaidedAI
RapidOCRPaddleOCR models as ONNXONNX Runtime, OpenVINO, TensorRT, MNN, Paddle, PyTorchRapidAI
docTRDBNet/FAST + CRNN/PARSeq and others, PyTorchPyTorch (CUDA images)t2k GmbH (originally Mindee)
DoclingLayout and table pipeline, pluggable OCR, optional 258M VLMmacOS, Linux, Windows; x86_64, arm64LF AI & Data (started at IBM Research)
MinerUTiered: small ONNX/Torch models plus a VLMCPU for basic tier; 8 GB+ VRAM for PyTorch VLM tiersOpenDataLab
Surya / Marker650M OCR VLM; Marker adds a PDF pipelinevLLM (NVIDIA) or llama.cpp (CPU, Apple)Datalab
olmOCR7B VLM (Qwen2.5-VL base)NVIDIA GPU, 12 GB+Ai2

Languages and outputs#

ToolLanguages (as stated)OutputsStructure
PaddleOCR"100+"; 112 codes; 50 in one PP-OCRv6 modelJSON, Markdown, DOCXLayout, tables, formulas
Tesseract"More than 100"Text, hOCR, PDF, TSV, ALTO, PAGEPage segmentation only
EasyOCR"80+"(box, text, confidence) listNone stated
RapidOCRChinese + English by defaultResult objectNone stated
docTRNot statedNested dict / JSONLayout, tables; formulas not stated
DoclingDepends on OCR engineMarkdown, HTML, JSON, DocTags, moreLayout, tables, formulas
MinerUNot statedMarkdown, HTML, LaTeX, DOCX, EPUB, PDF, JSONLayout, tables, formulas
Surya / Marker91 in Surya's internal benchmarkJSON, HTML; Marker: Markdown, chunksLayout, tables, formulas
olmOCRNot statedMarkdown, Dolma JSONLEquations, tables

Sources for each row are the project READMEs and PyPI pages listed at the bottom235671012131415. "Not stated" means the project's own docs don't say, not that the feature is missing.

How widely each is used#

Downloads are a weak signal, but they show where the Python ecosystem has settled. Read this chart with three caveats. pytesseract is only a wrapper: Tesseract itself is installed from OS packages and isn't counted, and the wrapper is pulled into many CI jobs. RapidOCR is inflated by Docling, because a default pip install docling installs it. And all PyPI counts include CI runs and mirrors.18

PyPI downloads in the last month

pypistats.org, fetched October 27, 2026. Includes CI and mirror traffic. pytesseract counts the wrapper only.

PackageDownloads, last month
pytesseract (wrapper)17,000,623
rapidocr3,839,920
docling2,909,751
rapidocr-onnxruntime2,483,889
easyocr1,927,066
paddleocr1,244,691
python-doctr204,697
surya-ocr157,743
marker-pdf116,251
mineru109,382
olmocr19,942
pypistats.org recent-downloads API, last_month.

The gap between rapidocr and paddleocr is partly the same models travelling through other tools: RapidOCR repackages PaddleOCR's models and Docling installs RapidOCR. PaddleOCR's own GitHub repository had 91,789 stars on the same day.2

What the benchmarks say#

There is no neutral, up-to-date benchmark that covers every tool here. The closest is OmniDocBench, published by OpenDataLab, the same organisation that maintains MinerU. Keep that in mind, and note that the dataset is licensed for research use only.16

Document parsing: OmniDocBench v1.6#

The end-to-end table scores full-page parsing: text, tables and formulas combined into one "Overall" score (higher is better). It includes PaddleOCR-VL, MinerU, Marker, olmOCR, dots.ocr, DeepSeek-OCR and the big cloud VLMs. Tesseract, EasyOCR, RapidOCR, Docling, Surya and PP-StructureV3 have no row in it, so we can't compare them here.

PaddleOCR-VL-1.6 ranks third on OmniDocBench v1.6

Overall score, higher is better. Third-party table published by OpenDataLab (MinerU's maintainers). Selected rows from 35.

MethodOverall
TeleOCR96.91
OvisOCR296.47
PaddleOCR-VL-1.696.34
MinerU2.5-Pro95.75
GLM-OCR95.22
PaddleOCR-VL-1.594.93
MinerU-2.593.04
Gemini 3 Pro92.91
dots.ocr90.77
DeepSeek-OCR 290.25
GPT-5.286.59
MinerU-Pipeline86.47
olmOCR85.74
Mistral OCR85.66
Marker78.44
OmniDocBench README, table "OmniDocBench (v1.6_full)", fetched 2026-10-27.

The top five are within 1.7 points of each other, so treat them as a group. PaddleOCR's own documents quote 96.33 for 1.6; the OmniDocBench table says 96.34. And PP-StructureV3, PaddleOCR's CPU-friendly pipeline, last appeared in the older v1.5 table with 86.73, which you can't compare directly with v1.6 scores.16

Plain text OCR: the older OmniDocBench v1.0 table#

The only shared table that includes Tesseract, EasyOCR and Surya next to PaddleOCR is OmniDocBench's component-level text recognition test on the v1.0 text subset. It is old: it evaluated PaddleOCR 2.9.1 (on PyPI since October 22, 2024), Tesseract 5.5, EasyOCR 1.7.2 and Surya 0.5.0 (August 2024).17 PaddleOCR has since moved to PP-OCRv5 and PP-OCRv6, and Surya has been rebuilt as a VLM. So use it for the broad pattern, not the exact numbers.

Edit distance on printed text (lower is better)

OmniDocBench v1.0 text subset, normalized edit distance. PaddleOCR 2.9.1-era versions, late 2024. Third-party table.

EnglishChineseMixed
ToolEnglishChineseMixed
PaddleOCR 2.9.10.0710.0550.118
Tesseract 5.50.0960.5510.250
EasyOCR 1.7.20.2600.3980.445
Surya 0.5.00.0570.1230.164
OmniDocBench README, "Component-level OCR text recognition evaluation on OmniDocBench (v1.0) text subset".

On English, Surya 0.5.0 had the lowest error (0.057), then PaddleOCR (0.071) and Tesseract (0.096). On Chinese and mixed-language text PaddleOCR was clearly ahead. The table also has rotated subsets and one it labels "Horizontal". There Tesseract and EasyOCR mostly failed, with edit distances of 0.92–0.997. The exception was Tesseract on 90° rotations (0.117). PaddleOCR scored 0.015 on Rotate90, 0.285 on Rotate270 and 0.021 on Horizontal.16

PaddleOCR vs EasyOCR#

These are the two most common "install it with pip and read text" libraries, and they look alike from the outside: both detect lines, recognize them and return boxes with confidence scores. The real differences:

  • Activity. EasyOCR's last release is 1.7.2 from September 24, 2024, and its README says issues older than six months are closed automatically "due to limited resources". PaddleOCR shipped 3.7.0 in June 2026 with a new model generation (PP-OCRv6).51
  • Framework. EasyOCR runs on PyTorch, which is convenient if your project already uses it. PaddleOCR 3.x needs PaddlePaddle or another engine. It can also run on ONNX Runtime, which in our test was 1.4–1.5× faster on CPU with identical text.22
  • Languages. EasyOCR states "80+". PaddleOCR accepts 112 language codes, and one PP-OCRv6 model covers 50 of them.2
  • Accuracy. In the older OmniDocBench v1.0 text table, EasyOCR's edit distance was 0.26 on English and 0.398 on Chinese, against 0.071 and 0.055 for PaddleOCR 2.9.1. Both versions are from 2024.16
  • Beyond lines. EasyOCR has no layout, table or formula features. PaddleOCR has PP-StructureV3 and PaddleOCR-VL for whole documents.

EasyOCR wins when you're already on PyTorch, need a language in its list, and want the shortest path to working code. PaddleOCR wins on maintenance, accuracy in the shared benchmark, language coverage and document features. Both are Apache-2.0.

PaddleOCR vs Tesseract#

Tesseract is the classic open-source engine, now 5.5.3 (July 24, 2026). It uses an LSTM line recognizer plus a legacy engine, reads "more than 100 languages", and its maintainers are Stefan Weil and Zdenko Podobny. Its README is candid: "in many cases, in order to get better OCR results, you'll need to improve the quality of the image".3

Where Tesseract is genuinely better is output formats. It writes plain text, hOCR, PDF, invisible-text-only PDF, TSV, ALTO and PAGE out of the box. If you are making scanned archives searchable or feeding a library system that expects ALTO, Tesseract does that in one command. It also comes as pre-built binary packages with no deep-learning framework to install.

Where PaddleOCR is better is hard input: photos, receipts, screenshots, rotated or vertical lines, and Chinese, Japanese or Korean text. In the OmniDocBench v1.0 text table, Tesseract 5.5 had an edit distance of 0.551 on Chinese versus 0.055 for PaddleOCR 2.9.1, and nearly failed on 270° rotations (0.969).16 PaddleOCR also returns structured JSON with polygons, and its document pipelines handle tables and formulas, which Tesseract does not attempt.

About "pytesseract". pytesseract (0.3.13, August 2024) is a Python wrapper that calls an installed Tesseract binary. Installing it doesn't install Tesseract.4 The independent tesseractocr.org guide covers Tesseract setup in depth.

PaddleOCR vs RapidOCR#

The two share their models. RapidOCR's README says the project "converted the models in PaddleOCR into the highly compatible ONNX format", and that its model files "are derived from official PaddleOCR models", redistributed under Apache-2.0.6 So the recognition quality you get is PaddleOCR's quality. The differences are packaging and scope:

  • Runtimes. RapidOCR runs on ONNX Runtime (CPU or GPU), TensorRT, OpenVINO, MNN, Paddle or PyTorch. Install with pip install rapidocr onnxruntime. That's the appeal: no PaddlePaddle wheel to match to your CPU or CUDA version.
  • Scope. RapidOCR is text detection and recognition. PaddleOCR adds orientation and unwarping models, PP-StructureV3, PaddleOCR-VL, serving, an MCP server and the training code.
  • Model timing. Because RapidOCR converts PaddleOCR's models, a new PaddleOCR model has to exist before RapidOCR can ship it. We didn't verify which generation RapidOCR 3.10 uses by default, so check its model list before you compare.
  • Defaults. RapidOCR's default languages are Chinese and English. PaddleOCR 3.7 defaults to PP-OCRv6, which covers 50 languages in one model.

If the reason you want RapidOCR is "no PaddlePaddle", note that PaddleOCR 3.x itself accepts engine="onnxruntime". That was our fastest CPU setup for every PP-OCRv6 tier.22 RapidOCR still wins for OpenVINO, MNN or TensorRT targets, a setup with no PaddlePaddle at all, or compatibility with Docling.

PaddleOCR vs Docling#

Docling (2.143.1, MIT) is a document conversion framework rather than an OCR engine. It handles "page layout, reading order, table structure, code, formulas" and exports Markdown, HTML, lossless JSON, DocTags and more. It was started at IBM Research Zurich and is hosted by the LF AI & Data Foundation.7

For OCR it plugs in other engines: EasyOCR, Nemotron OCR, Tesseract, OcrMac, RapidOCR and an OnnxTR plugin. PaddleOCR isn't on that list by name. But the docling package on PyPI requires docling-slim[standard], and the standard extra includes RapidOCR. From those two files we infer that a default pip install docling runs OCR with PaddleOCR-derived ONNX models through RapidOCR.8 So "Docling vs PaddleOCR" is partly "Docling's pipeline vs PaddleOCR's pipeline, with similar text models underneath".

The pipelines differ in structure:

  • License. Docling's code is MIT. For models, its README says to "refer to the model licenses found in the original packages". PaddleOCR is Apache-2.0 for code and every weight card we checked.
  • Benchmarks. Docling has no row in OmniDocBench v1.6. Marker's README reports Docling at 50.3 on olmOCR-bench, but that is a competitor's own run.13 We haven't measured Docling, so we won't rank it.
  • Integrations. PaddleOCR has official LangChain and MCP integrations, and its README lists Dify and RAGFlow among projects that use it.2

Choose Docling if you want one MIT-licensed converter for many document types and are happy with its default OCR. Choose PP-StructureV3 or PaddleOCR-VL if accuracy on scans, multilingual text or formulas matters most. The independent docling.org guide goes deeper on Docling itself.

PaddleOCR vs MinerU#

MinerU, from OpenDataLab, is PaddleOCR's closest competitor for PDF-to-Markdown, and the projects are entangled. MinerU's README acknowledges PaddleOCR. PaddleOCR lists MinerU among projects built on it. The PaddleOCR-VL-1.6 model card thanks MinerU and OmniDocBench, and two of PaddleOCR's own Markdown helpers are MIT code adapted "via MinerU 3.0.0".1025

Accuracy and hardware#

On OmniDocBench v1.6, MinerU2.5-Pro scores 95.75 and PaddleOCR-VL-1.6 scores 96.34. MinerU-Pipeline (version 3.4.0, listed under "Pipeline Tools") scores 86.47.16 MinerU 4.0 offers four tiers. The basic tier runs ONNX models in about 2 GB of RAM ("CPU works"). The PyTorch VLM tiers need a GPU or MPS with 8 GB+ of VRAM.10 PaddleOCR-VL is GPU software too: PaddleOCR's own docs say "CPU inference is not recommended" for it.25

PaddleOCR's own documentation compares PP-StructureV3 with MinerU on 925 PDF pages. On a V100, PP-StructureV3 with server models took 1.77 s per page with 17.0 GB peak VRAM, and MinerU took 1.57 s with 31.6 GB. On an A100: 1.12 s and 21.8 GB against 1.06 s and 76.9 GB. This is first-party data with old versions (PaddleOCR 3.0.0, MinerU 1.3.10), but it shows the trade-off: similar speed, much less GPU memory for PP-StructureV3.24

The MinerU license history#

This is the part people get wrong. MinerU 2.5.4 (September 2025) was published on PyPI as AGPL-3.0. By 3.4.0 (June 2026) it had switched to the MinerU Open Source License, which is Apache 2.0 plus extra terms:910

  • a separate commercial license is required if you and your affiliates exceed 100 million monthly active users or USD 20 million monthly revenue;
  • online services must "clearly and prominently indicate" that they use MinerU;
  • breaking these terms ends the license.

Weights are separate again. On Hugging Face, MinerU2.5-2509-1.2B is still agpl-3.0, while MinerU2.5-Pro-2604-1.2B is apache-2.0.11 For most companies the new code license is workable, but the attribution clause matters for SaaS products. PaddleOCR's Apache-2.0 terms have no revenue threshold and no display requirement.

PaddleOCR vs Surya and Marker#

Surya (0.22.1) is Datalab's OCR toolkit, now built on a 650M-parameter OCR VLM that handles layout, reading order and tables. Marker (2.0.0) is Datalab's PDF converter built on Surya. Both had new releases on July 20, 2026. Datalab reports 87.2% on "an internal benchmark set of 91 languages" and 5 pages/s on an RTX 5090. Both figures are self-reported. Surya needs vLLM on an NVIDIA GPU or llama.cpp on CPU/Apple Silicon.12

The license is the deciding factor for many teams. The code is Apache-2.0, but the weights use "a modified AI Pubs Open Rail-M license (free for research, personal use, and startups under $5M funding/revenue)". Above that you need a paid license from Datalab.12 PaddleOCR's weights carry no such threshold.

On accuracy, there's no current shared number for Surya. The old v1.0 text table had Surya 0.5.0 slightly ahead of PaddleOCR 2.9.1 on English (0.057 vs 0.071) and behind on Chinese (0.123 vs 0.055); both versions are long superseded. Marker 1.8.2 scored 78.44 on OmniDocBench v1.6. On Ai2's olmOCR-Bench, published by a third competitor, Marker 1.10.1 scored 76.1 and PaddleOCR-VL 80.0, behind olmOCR v0.4.0 (82.4) and Chandra OCR (83.1). Several rows there, including PaddleOCR-VL, carry an asterisk the README doesn't explain.1516

Surya/Marker win if you are under the threshold and like their tooling and output. PaddleOCR wins if you need unrestricted commercial weights or want to stay on CPU with PP-OCRv6.

PaddleOCR vs cloud OCR APIs#

AWS Textract, Google Document AI and Azure AI Document Intelligence remove the work of running models, but charge per page and process your documents on their servers. List prices we could verify:

ServiceBasic OCR per 1,000 pagesLayout / tables / forms per 1,000 pagesLanguages (vendor)
AWS Textract19$1.50 (first 1M), then $0.60; free tier for new customersTables $15; Forms $50; Layout free with TablesPrinted text in 6 languages (English, German, French, Spanish, Italian, Portuguese); handwriting English only
Google Document AI20First 1,000 free; $1.50 to 5M; $0.60 above check current pricingLayout Parser $10; Form Parser $30 (first 1M)Enterprise OCR: "more than 200", incl. handwriting
Azure Document Intelligence21$1.50 (first 1M), then $0.60 check current pricingPrebuilt incl. Layout $10; custom extraction $30Per-language tables; no single total
PaddleOCR, self-hosted$0 license$0 license112 codes

AWS prices are from the pricing page's worked examples for US West (Oregon). For Google, the HTML we fetched printed no unit on the OCR row, and Azure's pricing page loads prices with JavaScript, so we read Azure's from Microsoft's Retail Prices API (East US). Check both on the vendor's page before you budget.

Self-hosting isn't free either: you pay for hardware and operations. For scale, at the 0.9 s per page we measured for PP-OCRv6 small on 4 vCPUs, a million pages is about 250 hours of one such machine. Your pages and hardware will differ.22 PaddleOCR's team also runs a hosted API with a free quota of 3,000 pages per model per day, but no published price.23 See what PaddleOCR costs and the hosted API guide.

Cloud APIs win when volume is low, you have no one to run servers, or you need their specialist extractors (invoices, IDs, queries). PaddleOCR wins on privacy, cost at volume, language coverage versus Textract, and freedom to fine-tune.

Other open models worth a look#

Four more open document models come up often. The first three are in OmniDocBench v1.6, and all four READMEs set them up on CUDA GPUs.

  • dots.ocr (90.77 on v1.6): MIT code and weights, about 3B parameters.
  • DeepSeek-OCR 2 (90.25): MIT code; DeepSeek-OCR-2 weights are Apache-2.0 on Hugging Face.
  • olmOCR (85.74): Apache-2.0 code and weights, 7B, needs an NVIDIA GPU with at least 12 GB.
  • GOT-OCR2.0 (2024): Apache-2.0 code and weights, but its README badge marks the training data CC BY-NC 4.0.

Sources: each project's README and Hugging Face license field.261516

Questions#

Is PaddleOCR better than EasyOCR?

For most jobs, yes. PaddleOCR is actively released (3.7.0 in June 2026; EasyOCR's last release was September 2024). It covers more languages and adds layout, table and formula parsing. It also had much lower error rates in the only shared benchmark, OmniDocBench v1.0, though that table tested 2024 versions. EasyOCR is simpler if your stack is already PyTorch.

Is PaddleOCR better than Tesseract?

On photos, rotated text and Chinese, Japanese or Korean, clearly. In OmniDocBench v1.0, Tesseract 5.5's edit distance on Chinese was 0.551 versus 0.055 for PaddleOCR 2.9.1. On clean English print the gap is small (0.096 vs 0.071), and Tesseract writes searchable PDF, hOCR and ALTO natively, which PaddleOCR doesn't.

Does Docling use PaddleOCR?

Not by name, but effectively by default. The docling package installs RapidOCR through its standard extra, and RapidOCR's README says its models are PaddleOCR models converted to ONNX. That's our inference from Docling's own pyproject.toml and install docs. You can switch Docling to EasyOCR, Tesseract and other engines.

Is RapidOCR the same as PaddleOCR?

It uses the same models, converted to ONNX and redistributed under Apache-2.0, according to RapidOCR's README. The runtime, API and feature set are different: RapidOCR focuses on detection and recognition across many inference engines, while PaddleOCR also offers document parsing, a VLM, serving and training.

Is MinerU still AGPL?

The current code isn't. MinerU 2.5.4 was AGPL-3.0 on PyPI; 3.4.0 and 4.0.x use the MinerU Open Source License (Apache 2.0 plus terms for companies above 100M monthly users or $20M monthly revenue, and an attribution requirement for online services). The MinerU2.5-2509-1.2B weights on Hugging Face are still AGPL-3.0; MinerU2.5-Pro weights are Apache-2.0.

Can I use Surya commercially?

The code, yes (Apache-2.0). The model weights are free only for research, personal use and startups under $5M in funding or revenue, per Datalab's README. Beyond that you need a commercial license from Datalab.

What is the best open-source OCR in 2026?

It depends on the job. For document parsing on a GPU, PaddleOCR-VL-1.6 and MinerU2.5-Pro are among the top scorers on OmniDocBench v1.6, behind TeleOCR and OvisOCR2. For CPU text OCR in many languages, PaddleOCR PP-OCRv6 (or RapidOCR) is the practical default. For searchable PDFs from clean scans, Tesseract is still hard to beat on simplicity.

Sources

  1. PaddleOCR on PyPI (3.7.0, uploaded 2026-06-11, "Apache License 2.0"): pypi.org/project/paddleocr.
  2. PaddleOCR README: "100+ Languages Supported", PP-OCRv6 "supports 50 languages with a single unified model", PaddleOCR-VL-1.5 "111 languages", JSON/Markdown output, DOCX export, hardware badge cpu/gpu/xpu/npu, "Awesome Projects" list (MinerU, RAGFlow, Dify…): github.com/PaddlePaddle/PaddleOCR. 112 accepted lang codes counted from paddleocr/_pipelines/ocr.py and langs.py in 3.7.0 (see our language list). Stars: GitHub API stargazers_count 91,789 on 2026-10-27.
  3. Tesseract README (Apache-2.0; LSTM line recognizer plus legacy engine; "more than 100 languages"; outputs plain text, hOCR, PDF, invisible-text-only PDF, TSV, ALTO and PAGE; no GUI; image quality advice; maintainers), VERSION file (5.5.3) and tessdoc release notes ("V5.5.3 Jul 24 2026"): github.com/tesseract-ocr/tesseract, tessdoc ReleaseNotes.md.
  4. pytesseract 0.3.13 (2024-08-16, Apache License 2.0), a wrapper that calls an installed Tesseract binary: pypi.org/project/pytesseract.
  5. EasyOCR on PyPI (1.7.2, 2024-09-24, Apache License 2.0) and README ("80+ supported languages", CRAFT detection, CRNN recognition, "All deep learning execution is based on Pytorch", gpu=False CPU mode, issues older than 6 months auto-closed, handwriting under "What's coming next"): github.com/JaidedAI/EasyOCR.
  6. RapidOCR README ("we innovatively converted the models in PaddleOCR into the highly compatible ONNX format"; model files "derived from official PaddleOCR models … distributed under the Apache License, Version 2.0"; engines; default Chinese + English; Docling listed among users) and PyPI (rapidocr 3.10.0, 2026-10-08; rapidocr_onnxruntime 1.4.4, 2025-01-17): github.com/RapidAI/RapidOCR.
  7. Docling on PyPI (2.143.1, 2026-10-27, MIT) and README (exports Markdown, HTML, WebVTT, DocLang, DocTags, lossless JSON; "page layout, reading order, table structure, code, formulas"; GraniteDocling 258M VLM; model licenses "found in the original packages"; LF AI & Data; started by IBM Research Zurich): github.com/docling-project/docling.
  8. Docling installation docs (OCR engines: EasyOCR, Nemotron OCR, Tesseract, Tesseract CLI, OcrMac, RapidOCR, OnnxTR plugin) and pyproject.toml (docling requires docling-slim[standard]; standard includes feat-ocr-rapidocr, rapidocr>=3.9.1,<4): installation.md, pyproject.toml.
  9. MinerU on PyPI: 4.0.12 (2026-10-11) and 3.4.0 (2026-06-18) declare LicenseRef-MinerU-Open-Source-License; 2.5.4 (2025-09-25) declared "AGPL-3.0": pypi.org/project/mineru.
  10. MinerU LICENSE.md (Apache 2.0 plus additional terms: separate commercial license above 100 million MAU or USD 20 million monthly revenue; online services must "clearly and prominently indicate" MinerU is used) and README (flash/basic/standard/advanced tiers; ONNX/Torch small models; llama.cpp, vLLM or LMDeploy for the VLM; nine output targets; basic tier 2 GB RAM, "None (CPU works)"; PyTorch VLM tiers "8 GB+ VRAM"; acknowledges PaddleOCR): github.com/opendatalab/MinerU.
  11. Hugging Face model API, license field: opendatalab/MinerU2.5-2509-1.2B = agpl-3.0; opendatalab/MinerU2.5-Pro-2604-1.2B = apache-2.0; PaddlePaddle/PaddleOCR-VL, -1.5, -1.6 and 13 other PaddlePaddle model cards (PP-OCRv6, PP-OCRv5, layout, formula, table and orientation models; full list on our license page) = apache-2.0. Fetched 2026-10-27.
  12. Surya README (650M-parameter OCR model; "87.2% on an internal benchmark set of 91 languages" and "5 pages/s on an RTX 5090", both self-reported; needs vLLM or llama.cpp; weights under "a modified AI Pubs Open Rail-M license (free for research, personal use, and startups under $5M funding/revenue)") and PyPI surya-ocr 0.22.1 (2026-07-20): github.com/datalab-to/surya.
  13. Marker README (same weight license as Surya; outputs markdown, JSON, HTML, chunks; "Works on GPU, CPU, or MPS"; self-reported olmOCR-bench results) and PyPI marker-pdf 2.0.0 (2026-07-20): github.com/datalab-to/marker.
  14. docTR README ("powered by PyTorch"; detection and recognition architectures; layout and table models; maintained by t2k GmbH, originally Mindee) and PyPI python-doctr 1.1.0 (2026-08-21, Apache 2.0, Python >=3.11): github.com/mindee/doctr.
  15. olmOCR README (7B VLM, NVIDIA GPU with at least 12 GB, Markdown output, olmOCR-Bench table published by Ai2) and PyPI olmocr 0.4.27 (2026-03-12): github.com/allenai/olmocr.
  16. OmniDocBench README, end-to-end table "Comprehensive evaluation of document parsing on OmniDocBench (v1.6_full)" (latest update entry 2026/09/11) and "Component-level OCR text recognition evaluation on OmniDocBench (v1.0) text subset" (PaddleOCR 2.9.1, Tesseract 5.5, EasyOCR 1.7.2, Surya 0.5.0). Published by OpenDataLab, which also maintains MinerU: github.com/opendatalab/OmniDocBench. The PP-StructureV3 score of 86.73 is from the v1_5 branch README.
  17. PyPI upload dates of the versions in the v1.0 text table: paddleocr 2.9.1 on 2024-10-22, easyocr 1.7.2 on 2024-09-24, surya-ocr 0.5.0 on 2024-08-16 (pypi.org/pypi/<package>/<version>/json, fetched 2026-10-27).
  18. Download counts: pypistats.org /api/packages/<package>/recent, last_month values fetched 2026-10-27 17:49 UTC: pypistats.org.
  19. AWS Textract pricing page worked examples (US West, Oregon; free tier of 1,000 pages a month of Detect Document Text for three months for new customers) and FAQ (languages): aws.amazon.com/textract/pricing, FAQ.
  20. Google Cloud Document AI pricing table and processor list (Enterprise Document OCR: "more than 200 languages"): cloud.google.com/document-ai/pricing. The OCR row printed no unit in the HTML we fetched; per-1,000-pages is inferred from the same table's Form Parser example.
  21. Azure AI Document Intelligence prices from Microsoft's Retail Prices API (eastus, USD, consumption), because the pricing page renders prices with JavaScript: pricing page, language support.
  22. Our own CPU benchmark of PaddleOCR models only (PaddleOCR 3.7.0, 4-vCPU Intel Xeon @ 2.10 GHz, no GPU, 2026-10-27): paddleocr.dev/benchmarks. We did not run any competitor.
  23. PaddleOCR hosted API quota ("up to 3,000 pages per model per day"; files over 100 pages: only the first 100 parsed) from Baidu AI Studio's "API Quota Rules and Error Code Description", updated 2026-02-10: ai.baidu.com/ai-doc/AISTUDIO/pmjcld5qm. No price was published on any page we could read.
  24. PP-StructureV3 vs MinerU speed (PaddleOCR 3.0.0 vs MinerU 1.3.10, 15 PDFs, 925 pages, V100 and A100): PaddleOCR's own PP-StructureV3 doc, docs/version3.x/algorithm/PP-StructureV3/PP-StructureV3.en.md, lines 305–921. First-party.
  25. PaddleOCR source: paddleocr/_doc2md/math/omml.py lines 17–18 ("Adapted from … dwml … via MinerU 3.0.0 (MIT License)"); PaddleOCR-VL-1.6 model card thanks MinerU and OmniDocBench; MCP server doc: PaddleOCR-VL "CPU inference is not recommended" (docs/version3.x/integrations/mcp_server.en.md:261).
  26. dots.ocr, DeepSeek-OCR and GOT-OCR2.0 READMEs and Hugging Face license fields (dots.ocr: MIT; DeepSeek-OCR: MIT, DeepSeek-OCR-2 weights apache-2.0; GOT-OCR2.0: code Apache 2.0, training data CC BY-NC 4.0), fetched 2026-10-27.
Updated October 27, 2026·How we verify facts