Skip to content

TurboOCR Docs

TurboOCR is a self-hosted GPU document parser — not just OCR. It runs PP-OCRv6 text detection and recognition plus layout, tables (→ HTML), formulas (→ LaTeX) and reading-order Markdown as one C++/CUDA/TensorRT pipeline, exposing HTTP and gRPC from a single binary. POST an image or PDF, get structured JSON back — text, confidence, bounding polygons, and optional layout regions, tables, and formulas. Everything runs locally; no VLM, no API.

On a single RTX 5090 it sustains whole-page OCR at up to 559 img/s on receipts (~520 img/s on forms), and full structured parsing (layout + tables + formulas) at ~20 pages/s — where VLM document parsers like PaddleOCR-VL run ~1 page/s. Linux + any NVIDIA Turing-or-newer GPU, MIT licensed, shipped as a Docker image at ghcr.io/aiptimizer/turboocr.

  • Up to 559 img/s on receipts / 520 img/s on forms — fastest by default, on one RTX 5090
  • 15–90× faster than classic OCR engines on forms & receipts — FUNSD 92% / CORD 93% word-F1 on the medium tier (English/Latin-script; default tier is tiny for max throughput)
  • Full document parsing0.90 Overall on a 125-doc OmniDocBench subset at ~20 pages/s, fully local (PaddleOCR-VL scores 0.95 on the same subset at ~1 pg/s)
  • PP-OCRv6 — one model covers Latin + Chinese + Japanese; pick tiny (default) / small / medium via OCR_MODEL. More scripts (Arabic, Cyrillic, Korean, Thai, Greek) via retained PP-OCRv5 recognizers
  • Tables → HTML — SLANet-Plus structure model, opt-in with TABLE_BACKEND=slanext + ?tables=1
  • Formulas → LaTeX — in-process pure-C++ PP-FormulaNet-S, opt-in with FORMULA_BACKEND=ppformulanet_s + ?formulas=1
  • Layout + reading order — PP-DocLayoutV3 (RT-DETR-L, 25 region classes), on by default, run per request via ?layout=1
  • Markdown exportPOST /ocr/markdown turns a page into faithful Markdown (tables + formulas inline)
  • PDF native — pages rendered by a PDFium worker pool and fed into the same GPU pipeline, with optional page-image export & auto-rotation
  • HTTP + gRPC from one binary, sharing the same GPU pipeline pool; GET /capabilities reports which stages are loaded
  • One-line Docker deploy — TensorRT engines build on first start, then cache in a named volume
  • Prometheus metrics on /metrics — request counters, latency histograms, VRAM usage
  • MIT licensed, source on GitHub