The best local OCR model for most document pipelines in 2026 is a small document-tuned vision-language model: PaddleOCR-VL-1.6 (0.9B, Apache 2.0), MinerU2.5-Pro (1.2B, Apache 2.0) or GLM-OCR (0.9B, MIT), each of which turns scans into Markdown with tables and fits on a single modest GPU. LightOnOCR-3 and Chandra 2 lead on olmOCR-Bench, while Tesseract remains the CPU baseline for clean printed pages.
Quick picks by document type
These picks come from model cards, GitHub repositories, the OmniDocBench leaderboard and the serving lists of vLLM, llama.cpp and Ollama, all checked on 22 October 2026. Benchmark figures are the vendors’ own unless stated.
| Job | Pick | Why |
|---|---|---|
| Mixed scans to Markdown, one GPU | PaddleOCR-VL-1.6 | 96.34 on OmniDocBench v1.6, 0.9B, Apache 2.0, official GGUF |
| Long PDFs with tables across pages | MinerU2.5-Pro | Cross-page table and paragraph merging; 2.12 pages a second on one A100 |
| Field extraction from IDs and forms | GLM-OCR | Fills a JSON schema you supply; in Ollama, vLLM and llama.cpp |
| Many languages and scripts | dots.mocr | Built for multilingual layout parsing; MIT |
| English archives in batch | olmOCR 2 | Toolkit renders, rotates and retries pages; 82.4 on olmOCR-Bench |
| Boxes for every block | LightOnOCR-3-4B | Grounding mode labels each block with coordinates; Apache 2.0 |
| CPU only, clean print | Tesseract 5.5 or PP-OCRv6 | No GPU, word-level positions |
Why document-heavy industries keep scans inside the network
The pages that most need OCR are often the ones least suited to a public API:
- Banks read account statements, payslips, passports and utility bills for KYC and lending files. See the finance document processing use case.
- Insurers receive claim forms, repair estimates and photographed documents at first notice of loss, as in the claims triage use case.
- Healthcare providers still receive referrals and prior-authorisation paperwork by fax. Under HHS guidance, a cloud provider that stores or processes electronic protected health information is a business associate and needs a business associate agreement, even when it cannot view the data.
- Law firms scan exhibits and productions for review, where privilege decides who may see a page.
- Government agencies process benefit applications, permits and identity documents, often in networks with no internet route. The government document classification use case covers that intake.
A cloud OCR service can be made to fit some of these rules with contracts and regional hosting. A model on your own GPU removes the question: the page image, the extracted text and the logs never leave. For the vendor side of that decision, our comparison of document AI services that run on premise covers Azure containers, Google, SAP and Mistral.
Open OCR models compared, October 2026
Sizes are Hugging Face parameter totals, including the vision encoder. “vLLM” means the architecture appears in vLLM’s supported-model list or the vendor publishes a vLLM recipe.
| Model (vendor) | Size | Weights licence | Strengths | Serving confirmed |
|---|---|---|---|---|
| PaddleOCR-VL-1.6 (Baidu PaddlePaddle) | 0.96B | Apache 2.0 | Tables, formulas, charts, seals and stamps; May 2026 | vLLM, llama.cpp (official GGUF), PaddleOCR |
| MinerU2.5-Pro-2605 (OpenDataLab) | 1.2B | Apache 2.0 | PDF to Markdown, cross-page tables, charts; May 2026 | vLLM (Qwen2-VL architecture), Transformers |
| GLM-OCR (Z.ai) | 0.9B (1.3B on the Hub) | MIT | Schema-driven field extraction, tables, formulas; January 2026 | vLLM, SGLang, llama.cpp, Ollama |
| dots.mocr (rednote, now dots-studio) | 3.0B | MIT | Multilingual layout, charts to SVG; March 2026 | vLLM, llama.cpp (dots.ocr GGUF) |
| DeepSeek-OCR-2 (DeepSeek) | 3.4B | Apache 2.0 | 256 to 1,120 visual tokens per page; January 2026 | vLLM; Ollama and llama.cpp carry the first version |
| olmOCR-2-7B-1025 (Ai2) | 8.3B | Apache 2.0 | English documents, maths, tables, old scans; October 2025 | vLLM through the olmOCR toolkit |
| LightOnOCR-3 (LightOn) | 0.8B, 1B, 4B | Apache 2.0 | Labelled bounding boxes, charts to tables; October 2026 | vLLM |
| Chandra OCR 2 (Datalab) | 5.3B | Modified OpenRAIL-M | Handwriting, forms, 90+ languages; March 2026 | vLLM, Transformers |
| Surya OCR 2 (Datalab) | 0.7B | Modified OpenRAIL-M | Layout, reading order and tables in one model; May 2026 | vLLM, llama.cpp |
| Nanonets-OCR2-3B (Nanonets) | 3.8B | None stated | Signatures, watermarks, checkboxes, handwriting | vLLM (Qwen2.5-VL architecture) |
| HunyuanOCR-1.5 (Tencent) | 1.1B | Tencent Hunyuan Community License | Parsing, text spotting, extraction, translation | vLLM, llama.cpp |
| Granite-Docling-258M (IBM) | 0.26B | Apache 2.0 | Compact converter inside Docling | vLLM (Idefics3), IBM GGUF |
Two more Baidu releases are worth a test if Chinese and English dominate your pages: Qianfan-OCR (4.7B, Apache 2.0) and Unlimited-OCR (3.3B, MIT), which parses several pages in one request. General vision models also read documents. Qwen3.5 and Gemma 4 are the usual choices, and our local vision model guide covers them, but Datalab’s run of olmOCR-Bench scored Qwen3-VL 8B at 64.6, well below the specialists.
Classic engines still worth a baseline
Tesseract released 5.5.3 on 24 July 2026 and remains Apache 2.0, CPU-only and oriented to printed text. PaddleOCR shipped PP-OCRv6 detection and recognition models in June 2026, in tiny, small and medium sizes, several with ONNX builds. docTR reached version 1.1.0 in August 2026 under Apache 2.0.
Keep one of them in the pipeline even after you adopt a VLM. Classic engines return word coordinates you can draw on the page, they are cheap enough to run on every page, and their errors look like errors. A vision-language model can produce a clean sentence that is not on the page. When the two disagree on a field, that disagreement is a better trigger for human review than any single model’s output.
Licence traps in OCR weights
OCR is the corner of open AI where “open” varies most. Read the weights licence, not only the code licence:
- HunyuanOCR excludes three territories. The Tencent Hunyuan Community License does not apply in the European Union, the United Kingdom or South Korea, and forbids using the model or its output outside its licensed territory. European banks and insurers should rule it out.
- Datalab’s weights have revenue limits. Chandra 2 is free under its modified OpenRAIL-M licence only for organisations below $2 million in revenue and funding; Surya OCR 2 sets the line at $5 million. Larger users need a commercial licence, and the Chandra terms bar use that competes with Datalab’s API.
- MinerU’s toolkit adds conditions. The MinerU2.5-Pro weights are Apache 2.0, but the MinerU software uses Apache 2.0 with extra terms: a separate commercial licence once a group passes 100 million monthly active users or $20 million in monthly revenue, and attribution for online services built on it. Most large banks and insurers cross that revenue line.
- No licence means no grant. Nanonets-OCR2-3B’s model card states no licence. Until the vendor publishes one, assume you have no right to deploy it.
- Mistral OCR 4 is not open weight. Mistral announced it on 23 June 2026 as a model that runs in a single container for fully self-hosted deployments, available to enterprise customers by agreement. There are no public weights to evaluate first.
What olmOCR-Bench and OmniDocBench measure
Two benchmarks dominate OCR model cards, and both are built by teams that also ship OCR models.
olmOCR-Bench comes from Ai2, the maker of olmOCR. It has 1,403 PDF files and 7,010 unit tests in English, grouped into arXiv maths, old scans, tables, headers and footers, multi-column pages, long tiny text and a baseline set. A test passes when the output keeps a fact the page contains, or drops content a good conversion should drop.
OmniDocBench comes from OpenDataLab, the team behind MinerU. Its current edition covers 1,651 PDF pages across ten document types, from academic papers and financial reports to newspapers, textbooks and handwritten notes. Version 1.6 in April 2026 added 296 harder pages, and the overall score averages text accuracy, table structure and formula recognition.
Four reasons to treat the numbers as a shortlist rather than a verdict:
- Scores are mostly self-reported. Chandra 2 reports 85.8 on olmOCR-Bench, LightOnOCR-3-4B reports 86.3, and dots.mocr reports 83.9, each from its own pipeline and settings.
- Conventions move scores. Nanonets-OCR2-3B scores 32.1 on the headers-and-footers category in dots.mocr’s comparison because it keeps them; for a KYC file, keeping the bank’s footer may be exactly what you want. LightOn notes that normalising raw output changes overall scores noticeably.
- Versions change fast. MinerU2.5-Pro claimed the top OmniDocBench v1.6 score in spring 2026; PaddleOCR-VL-1.6 passed it in late May; in October 2026, newer entries such as TeleOCR and OvisOCR2 sit above both.
- Your documents are missing. Neither benchmark has fax artefacts, rubber stamps over text, carbon-copy claim forms or photographed passports at an angle.
Handwriting, stamps and faxes
The hard pages in regulated work are rarely the ones benchmarks emphasise. Three groups need their own test set:
- Handwriting. Chandra 2 and Surya OCR 2 publish handwritten form and note examples, Nanonets-OCR2 says it trained on handwriting in several languages, and LightOnOCR-3-4B scores 46.1 on the handwritten pages of a French benchmark, its family’s best. Expect accuracy well below printed text and route handwritten fields to review by default.
- Stamps and seals. PaddleOCR-VL-1.6 lists improved seal and stamp recognition, and MinerU2.5-Pro-2605 lists seals among its image-parsing gains. Received-date stamps on claims and court filings are often the field that matters most.
- Faxes and photocopies. Low resolution and noise favour models that take higher-resolution input. LightOn reports its best olmOCR-Bench scores at 400 DPI, about 4,800 image tokens per page, so scan quality and rendering settings matter as much as the model.
GPU memory and throughput
OCR models are small, so weights rarely decide the hardware. Image tokens and output length decide throughput.
| Model | BF16 weights | Notes |
|---|---|---|
| Granite-Docling-258M | 0.5 GB | Runs inside the Docling converter |
| Surya OCR 2 | 1.4 GB | GPU through vLLM, CPU or Apple Silicon through llama.cpp |
| PaddleOCR-VL-1.6 | 1.9 GB | PaddleOCR also targets CPUs and NPUs |
| HunyuanOCR-1.5 | 2.2 GB | Speculative decoding draft included |
| MinerU2.5-Pro | 2.3 GB | 2.12 pages a second on one A100 with vLLM, per OpenDataLab |
| GLM-OCR | 2.7 GB | 1.86 PDF pages a second at single concurrency, per Z.ai |
| dots.mocr | 6.1 GB | |
| DeepSeek-OCR-2 | 6.8 GB | 256 to 1,120 visual tokens per page |
| LightOnOCR-3-4B | 9.1 GB | About 4,800 image tokens per page at 400 DPI |
| Chandra OCR 2 | 10.6 GB | |
| olmOCR-2-7B-1025 | 16.6 GB | Ai2 recommends the FP8 build, about half that |
At MinerU’s quoted rate, one A100 processes about 183,000 pages in 24 hours. A 24 GB card holds any model in the table with room for batching, which is where throughput comes from.
Serving OCR models with vLLM, llama.cpp and Ollama
Checked on 22 October 2026:
- vLLM lists dedicated architectures for DeepSeek-OCR and DeepSeek-OCR-2, dots.ocr, GLM-OCR, HunyuanOCR, LightOnOCR, PaddleOCR-VL, Qianfan-OCR and Unlimited-OCR. olmOCR, MinerU2.5-Pro, Nanonets-OCR2, Chandra 2 and LightOnOCR-3-4B run on the Qwen2-VL, Qwen2.5-VL or Qwen3.5 architectures it already supports.
- llama.cpp names PaddleOCR-VL, GLM-OCR, DeepSeek-OCR, dots.ocr and HunyuanOCR in its multimodal documentation, and warns that each needs its own prompt format. llama.cpp’s maintainers publish GGUFs for GLM-OCR, DeepSeek-OCR, dots.ocr and Qianfan-OCR; PaddlePaddle and IBM publish their own.
- Ollama carries
glm-ocranddeepseek-ocr, plus general vision models. It is the quickest way to try OCR on a laptop, and the least suited to batch archives.
A local OCR pipeline: from page image to approved record
A model choice is one step in five. Each step produces something a reviewer or auditor can check:
- OCR and layout. Classify each file first; born-digital PDFs keep their text layer and skip OCR. Scanned pages go to the VLM for Markdown with reading order, tables and block coordinates.
- Extraction. Map text to the fields the workflow needs, such as account number, policy number, date of loss or referral reason. GLM-OCR can fill a JSON schema directly; otherwise a language model reads the Markdown.
- Validation. Check every field in code: check digits, date ranges, totals that add up, names that match the customer record, values that appear verbatim on the page.
- Human review. Send low-confidence fields, engine disagreements and every handwritten value to a reviewer who sees the page region beside the extracted value.
- Record. Store the page image, the extracted value, the model version and the reviewer’s decision together, so any figure can be traced to its source.
Our guide to extraction, validation and routing goes deeper on steps 2 to 4, and the scanned-document RAG guide covers layout and chunking for search.
How VDF AI fits document-heavy workflows
VDF AI runs on the customer’s own servers, private cloud or air-gapped network, so page images, extracted fields and audit logs stay in that environment. Agents read documents through tools: the OCR tool can use a local Tesseract engine that never leaves the perimeter, a document parser handles PDFs and Office files, and image analysis can run on a vision model on your own GPUs.
VDF AI Router registers local model endpoints served through vLLM, Ollama or another self-hosted server, so a PaddleOCR-VL or GLM-OCR deployment can sit behind the same governed routing as your other models, and air-gap mode keeps every request local. The document analysis agent reads scanned PDFs with OCR and answers questions with the source passage cited. For intake workflows, agents can apply the validation rules above, human approval gates hold high-risk steps for a person, and each run lands in the audit log. Role-based access keeps a claims handler’s documents separate from a KYC analyst’s. A three-month platform trial lets a team test the setup on its own scanned files first.
Sources
Verified 22 October 2026.
- PaddleOCR-VL-1.6 model card and official GGUF
- MinerU2.5-Pro-2605 model card and MinerU Open Source License
- GLM-OCR model card
- dots.mocr model card
- DeepSeek-OCR-2 model card
- olmOCR-2-7B-1025 model card and olmOCR-Bench dataset
- LightOnOCR-3-4B model card and LightOn’s LightOnOCR-3 release post
- Chandra OCR 2 model card and its weights licence
- Surya OCR 2 model card
- Nanonets-OCR2-3B model card
- HunyuanOCR model card and Tencent Hunyuan Community License
- Granite-Docling-258M model card
- Qianfan-OCR and Unlimited-OCR model cards
- OmniDocBench repository and leaderboard
- Mistral OCR 4 announcement
- Tesseract releases, PaddleOCR repository and docTR releases
- vLLM supported models and llama.cpp multimodal documentation
- Ollama: glm-ocr and deepseek-ocr
- HHS guidance on HIPAA and cloud computing
Reading scans without sending them out? See the OCR tool or book a demo.