← all repositories
datalab-to/indra

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.

★889 stars Python Computer VisionData Tooling
indra
Collecting fresh signals — velocity needs a few days of history.
collecting data…
star history

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.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.