Surya
Local OCR software extracts multilingual text, page layouts and tables from documents on CPU, Apple Silicon or NVIDIA GPUs.
Surya is a local OCR toolkit for developers who need text and page structure from document images. It handles multilingual documents and preserves reading order for use in document-processing applications.
- Text recognition: Extract text from a full page or individual blocks, with support for languages including Arabic, Chinese, Hindi and Japanese.
- Page layout: Identify tables, images and headers, and return their layout and reading order as structured data.
- Table recognition: Recover rows and columns alongside the surrounding document text.
- Detection models: Separate smaller models locate text lines and detect OCR errors.
OCR, layout analysis and table recognition share a vision-language model that can produce page HTML or layout JSON. Surya focuses on documents; photos and text in natural scenes aren't its target use case.
Local inference uses vllm on NVIDIA GPUs or llama.cpp on CPU and Apple Silicon. It can also connect to an existing OpenAI-compatible inference server. OCR, layout and table recognition require an inference backend; text detection runs separately through PyTorch.
The code is open source under Apache 2.0. Datalab also offers a separate managed platform that runs Surya and variants of Chandra on hosted infrastructure.