StackMap
Subscribe

doctr vs TurboOCR

docTR: two-stage OCR in PyTorch — detect words, then recognize them — with pretrained detection and recognition architectures you can mix, plus layout detection and rotated-page handling. — versus — GPU document parser in C++/TensorRT: PP-OCRv6 OCR, layout, tables and formulas to Markdown at 200-559 img/s on one GPU — no VLM, HTTP + gRPC, one-line Docker deploy.

The curated verdict

The two non-VLM options, at different points on the effort curve: TurboOCR is a C++/TensorRT server doing 200-559 images/s with layout, tables and formulas to Markdown; docTR is a Python library you import, fine-tune and control architecture by architecture.

doctrTurboOCR
Stars6.3k1.0k
Forks67297
LanguagePythonC++
LicenseApache-2.0MIT
Last activity3 days ago5 days ago
Topicsocrocr
Curated connections34

doctr — the curator's take

The dependable choice when you want OCR as a library rather than a model to serve: pick a detector and a recognizer, call `ocr_predictor(pretrained=True)`, get word-level boxes and text from PDFs or images, with rotated-page handling and optional layout regions. It predates the VLM wave and that's the point — small models, no prompt, deterministic output, trainable on your own data, and cheap enough to run per-page at volume. Two caveats: it gives you words and boxes, not document structure, so reading order, tables and markdown are your job (pair it with a parser); and stewardship moved from Mindee to t2k GmbH, so check commit cadence against the newer VLM OCR crowd before standardizing on it.

TurboOCR — the curator's take

The throughput bet: a classic multi-stage pipeline on TensorRT instead of a VLM — ~20 pages/s structured parsing where VLM parsers run ~1. Sharp on forms and receipts. When NOT: Linux + NVIDIA Turing+ only (Metal/ROCm still cooking), first start compiles engines (up to an hour on older cards), and benchmarks are self-published on its own harness — for messy scans and handwriting a VLM parser may still out-read it.