---
title: "How Accurate Is Surya OCR 2.5? Tested on Real Documents"
url: "https://goremy.ai/blog/articles/surya-ocr-2-5-test-results-languages"
author: Luis Chavez-Mattos
editor: Luis Chavez-Mattos
editor_title: Director, Product
published: "2026-10-31T23:40:06.544Z"
updated: "2026-10-31T23:40:09.085Z"
topic: Open-Weight Model Benchmarks
description: Surya OCR 2.5 tested on invoices, handwriting, an 1883 newspaper, LaTeX, Hindi, Arabic, Urdu and Yoruba. See where it works and where it fails.
---

# How Accurate Is Surya OCR 2.5? Tested on Real Documents

> Surya OCR 2.5 tested on invoices, handwriting, an 1883 newspaper, LaTeX, Hindi, Arabic, Urdu and Yoruba. See where it works and where it fails.

Edited by Luis Chavez-Mattos, Director, Product · Published 2026-10-31

## How accurate is Surya OCR 2.5 on real documents?

Surya OCR 2.5 is accurate on clean printed pages and simple tables, and unreliable on fine print, small handwriting, stylized calligraphy and some non-Latin scripts. In a hands-on test across about ten documents, a clean English invoice came back with correct line items and totals. A French handwritten letter, a Polish passport page, an Urdu book cover and an Arabic poem all produced visible errors. Treat it as a strong small model for clean text, and verify everything else.

## TL;DR

- Surya 2.5 reads scanned pages and returns **text plus layout, reading order and tables**, in HTML, markdown and block JSON.
- On a clean English invoice, **text, line items and totals were correct**, with one small typo in "Bill to" and one structural mistake.
- **Small handwriting and fine print are the weak spot.** A city name on a passport page came out garbled, and "November" became "Movember" in an 1883 newspaper.
- **Non-Latin results varied widely.** Hindi was readable, Arabic was partly right, Urdu Nasta'liq calligraphy was very weak, and Yoruba (not on the supported list) was mostly accurate.
- It sits at the small end of the **accuracy-versus-size chart** but scores above most models of similar size, though a few larger models still beat it.
- It ran in roughly **1800 MB of VRAM** and can run on a CPU, so it suits cheap local setups. Check outputs before using them in production.

## What does Surya OCR 2.5 actually output?

Surya 2.5 takes a scanned document and returns the text along with the page layout, reading order and tables as HTML. The test GUI showed the same result in three forms: HTML, markdown and a block-level JSON.

The model is described as a single vision language model with a Qwen 3.5 style design. A prompt decides which output you get, whether layout, OCR or tables. Text line detection is handled by a separate small model. It supports many languages and runs on your own machine.

Setup in the demo was two pip commands, then a Streamlit-based GUI. Speed was usually under 10 seconds per page, sometimes 10 to 15.

## How does it handle clean printed pages and tables?

This is where it does best. The tested invoice had a logo, an address block, two tables, a total box and a footer. Layout and tables came out well, and the text and numbers matched the page. Line items and totals were correct.

Two flaws showed up:

- A small typo in the "Bill to" label.
- The notes box and the totals were merged into one table, though they are separate on the page. For anyone parsing invoices into structured data, that is the more serious error.

The LaTeX manual page also went reasonably well. The visible text and the code block were read correctly, and the section header was tagged properly. Layout boxes overlapped slightly, and the equation block sat outside the visible markdown. One error mattered in a page about code: "command marks not points" was read as "check mark not points".

## Where does Surya 2.5 fail on handwriting and fine print?

It fails on small, faint or decorated text. Each of these tests showed the pattern.

| Document | What worked | What failed |
|---|---|---|
| French handwritten letter with printed header and doctor's stamp | Sensible block order; date and handwritten message mostly correct | Stamp labeled "form" and its box overlapped the signature; stamp text partly wrong; a stray Chinese character at the end; question-mark-in-diamond glyphs |
| Old Polish and French passport page | Layout and reading order | Small handwritten lines garbled; the city Warsaw was read as something starting with M |
| 1883 newspaper masthead, low-res scan | Title, tagline and street address correct | "November" became "Movember", "three pence" became "tar spouse", "Church Wood" became "Church Woop" |

The French letter shows a second problem beyond misreads. Output contained characters that were not on the page, and replacement glyphs where letters should be. Those are the kind of errors that slip past a quick skim and corrupt downstream data.

## How does it do on Hindi, Arabic, Urdu and Yoruba?

Results differ a lot by script. These were single-page tests judged by a creator who said he is not a native reader of Arabic, so native-speaker checks would sharpen them.

- **Hindi (Devanagari):** A printed page from an old yellow scan came out as clean, readable Devanagari with sensible paragraphs and punctuation. A judge model flagged a few mistakes. The model scored lower on this script in the benchmark, yet the output was usable.
- **Arabic:** A poem with full diacritics returned all six lines and was readable. Words on one line were merged into a single run, the layout box covered only the first three lines, and the first word looked different from the original.
- **Urdu:** A book cover with decorative Nasta'liq calligraphy had acceptable layout but very weak text. The title was badly wrong, the author's name lost letters, the model added an English description of the cover painting (which is not OCR), and a faint watermark became a random URL.
- **Yoruba:** Not on the model's supported language list, yet the text was mostly accurate, with a few slips. Layout was fine.

The Urdu and Arabic results suggest that right-to-left, heavily stylized or diacritic-rich text deserves extra scrutiny. The Yoruba result suggests that unsupported does not always mean unusable for clean Latin-based text.

## Where does Surya 2.5 sit on the accuracy-versus-size chart?

The chart plots accuracy against model size, with smaller models on the left and more accurate ones higher up. Surya sits at the small end. It scores higher than most models of similar size and higher than many bigger ones. A few larger models still beat it, so it is not the most accurate OCR model overall. The pitch is good accuracy for its size.

The source gives no exact parameter count or benchmark scores, so compare it against your own documents rather than relying on the chart alone. For long-document numbers on a different OCR model, see [Unlimited OCR 2's 100-page benchmark results](https://goremy.ai/blog/articles/unlimited-ocr-2-long-document-benchmark-results).

## Can you run Surya 2.5 on modest hardware?

Yes. VRAM use in the demo was around 1800 MB, and the model can run on a CPU. Per-page times of under 10 seconds, with occasional 10 to 15, are workable for batch jobs on a laptop or small server. That combination is the main reason to consider it over larger OCR models.

## Which document types should you not trust to Surya 2.5?

Do not rely on it without review for:

1. **Handwriting, especially small handwriting.** Names, addresses and city fields were the failure points.
2. **Fine print and low-resolution scans.** Single-letter substitutions turned real words into plausible nonsense.
3. **Stylized or calligraphic scripts.** The Urdu Nasta'liq cover was the worst result.
4. **Pages where table boundaries matter.** The invoice merged two separate boxes into one table.
5. **Code and technical text.** One wrong word in a command changes its meaning.
6. **Stamps, signatures and watermarks.** These were mislabeled, overlapped or turned into invented text.

For clean printed pages with simple tables, it is a sensible low-resource choice. For anything legal, financial or medical, add a human or second-model check.

## Frequently Asked Questions

### Is Surya OCR 2.5 good for invoices?

On the clean English invoice tested, text, line items and totals were correct. It merged a notes box and a totals box into one table, so validate table structure before feeding results into accounting systems.

### Does Surya OCR 2.5 read handwriting?

Partly. It got most of a handwritten French message right, but small handwritten fields on a passport page came out garbled. Expect problems with short, cramped entries such as names and cities.

### Does it support non-Latin scripts?

It supports many languages, and Hindi came out readable. Arabic was partly correct and Urdu calligraphy was poor. Results depend heavily on the script and how stylized the text is.

### What hardware does Surya OCR 2.5 need?

In the demo it used about 1800 MB of VRAM and could also run on a CPU. Installation took two pip commands and a Streamlit-based GUI. Pages typically processed in under 10 seconds.

### Can I use it in production without checking the output?

The tester's advice was to always check output before production use. Errors included invented characters, misread fine print and wrongly merged tables, all of which can pass unnoticed.
