A 1M-parameter OCR model that reads 49 pages a second on CPU
Indra OCR trades heavyweight pipelines for a tiny ONNX recognizer, and somehow still beats Tesseract and PaddleOCR on accuracy.

What it does
Indra OCR converts PDFs and images into markdown, plain text, or JSON with bounding boxes. The pipeline covers line detection, CTC-based recognition, layout block classification (headings, lists, tables, captions, footnotes), and reading order. For digital PDFs it reads the existing text layer in any script and only OCRs what’s missing — a sensible bit of laziness most tools skip.
The interesting bit
The main recognizer is about 1M parameters, roughly 18 MB of ONNX models, no PyTorch. That’s small enough to run fast on plain CPUs — the README claims 49 pages/s throughput and ~230 ms per page on 4 vCPUs — while still scoring 41.3 on OmniParseBench text, ahead of PaddleOCR’s text models (35.8) and far ahead of Tesseract (19.3). Small models doing boring work well is an underrated genre.
Key highlights
- 11–17x faster than Tesseract and PaddleOCR on the same machine, per their benchmark table
- Bounding boxes for every line and layout block, with labels and reading order
- Handles rotated pages (quarter turns) and skew correction
- OCR supports Latin scripts (~50 languages), Cyrillic, Greek, Devanagari, Bengali, and Chinese; digital PDF text layers work in any script
- Ships a local web viewer for inspecting lines, blocks, and per-stage timings
Caveats
- Not for complex tables (merged cells, wrapped cell text), handwriting, or degraded scans — the README is refreshingly blunt about this (~8% on handwriting tests, ~20% on old scans)
- Scripts outside the OCR list come out wrong on scans — Hangul, for instance, gets misread as Chinese
- Model weights use a modified OpenRAIL-M license: free for research, personal use, and startups under $20M funding/revenue, but not for competing with their API
Verdict
If you’re batch-converting clean printed documents on CPU and want markdown out, this is a serious contender. If your workload is handwriting, math-heavy papers, or crumbling archival scans, look elsewhere — the README itself will tell you so.
Frequently asked
- What is datalab-to/indra?
- Indra OCR trades heavyweight pipelines for a tiny ONNX recognizer, and somehow still beats Tesseract and PaddleOCR on accuracy.
- Is indra open source?
- Yes — datalab-to/indra is open source, released under the Apache-2.0 license.
- What language is indra written in?
- datalab-to/indra is primarily written in Python.
- How popular is indra?
- datalab-to/indra has 889 stars on GitHub.
- Where can I find indra?
- datalab-to/indra is on GitHub at https://github.com/datalab-to/indra.