StackMap
Subscribe

chandra vs receipt-ocr

Datalab's SOTA open OCR model: images/PDFs to structured HTML/Markdown/JSON with layout, tables, forms, checkboxes, handwriting and math, in 90+ languages. Local HF or vLLM inference. — versus — Receipt-to-JSON in one pip install: CLI, Python API and FastAPI service that send a receipt image to any OpenAI-compatible model and return merchant, totals and line items, plus a Tesseract module.

The curated verdict

Both read an image and return structure. Chandra is a purpose-trained OCR model handling arbitrary layout, tables and handwriting; receipt-ocr just prompts a hosted VLM against a fixed receipt schema, which is cheaper to adopt and brittler off-domain.

chandrareceipt-ocr
Stars12k636
Forks1.2k79
LanguagePythonPython
LicenseApache-2.0MIT
Last activity2 months ago28 days ago
Topicsocrocr, data
Curated connections94

chandra — the curator's take

Currently the strongest open OCR weights on the olmocr benchmark (85.8, above olmOCR 2 and dots.ocr), with handwriting, filled forms and checkboxes as the real differentiators — plus a serious self-built 90-language benchmark where it averages 72.7% vs Gemini 2.5 Flash's 60.8%. `pip install chandra-ocr`, `chandra_vllm`, done; ~2 pages/s real-world on an H100. The catch is licensing: code is Apache-2.0 but the WEIGHTS are OpenRAIL-M — free for research, personal use and sub-$2M startups, commercial self-hosting needs a Datalab license, and their paid API deliberately stays ahead of the open weights. Pick olmOCR for a fully permissive stack, MinerU when you want a whole parsing pipeline rather than the model itself.

receipt-ocr — the curator's take

Narrow on purpose, and that is the value — one schema, one document type, a working CLI, Docker service and FastAPI app on day one, and any OpenAI-compatible endpoint (OpenAI, Gemini, Groq) behind a single env var. Do not mistake it for a document-intelligence stack: no layout model, no bounding boxes, no batch pipeline, and accuracy is entirely whatever VLM you point it at. Good as a reference implementation or the expenses corner of a larger app; wrong choice for mixed document types or on-prem throughput.