Tools,

Apple Vision OCR vs Tesseract on real scans

8 of 11

sets where Live Text beat Tesseract

Get the Python code

Two Apple engines, one library

A Mac has two OCR engines: Vision and Live Text. The Python library ocrmac calls both.

English books: Vision found 97.7%

55 proofread Wikisource pages from 11 books. Words found, of 14,446:

97.7% Apple Vision

97.0% Tesseract, its default eng

Tesseract won Fraktur, Russian and Korean columns

Letters right in order, scored as on my Tesseract page for each language. English counts words found, curly quotes as straight. Tesseract is the best setting I found for each set:

Scans (pages) Tesseract Live Text
English books (55) 97.0% 97.6%
German Fraktur (46) 94.2% 34.7%
Russian (90) 95.1% 91.6%
Arabic (44) 84.0% 97.7%
Thai (82) 83.0% 95.7%
Chinese, lines (36) 88.4% 94.7%
Chinese, columns (36) 52.4% 72.9%
Japanese, lines (10) 61.6% 67.7%
Japanese, columns (35) 81.6% 87.5%
Korean, lines (8) 86.0% 90.2%
Korean, columns (81) 68.4% 67.0%

Tesseract's best Russian setting uses its Sauvola option. Without it, the best was 92.1%.

How I tested it
  • Pages: real scans of 136 books from Wikisource, whose text people proofread. They are the pages of my earlier Tesseract tests, picked by a seeded shuffle, not by me.
  • Each set is scored by the same code as its Tesseract page, so both engines meet the same rule on the same pages.
  • Apple: ocrmac 1.0.1 defaults on Python 3.14, the accurate level, the set's language, one page at a time. Tesseract 5.5.4.
  • One Mac: Apple M5 Max, macOS 26.6.
  • On Python 3.12, Vision's text changed on 35 of 55 English pages, for 97.6% of the words found. Live Text gave the same text.
  • Few pages: Japanese lines come from 3 books and Korean lines from 2.

Vision skips columns. Live Text reads them.

On the 152 column pages in Chinese, Japanese and Korean:

40 pages with no text at all from Vision

1.7% or less of the characters, per language

On lines across, Vision and Live Text were close. Use Live Text if your scans have columns.

Vision and Live Text on every set
Scans Vision Live Text
English books 97.7% 97.6%
German Fraktur 36.5% 34.7%
Russian 90.9% 91.6%
Arabic 97.6% 97.7%
Thai 96.1% 95.7%
Chinese, lines 94.7% 94.7%
Chinese, columns 1.7% 72.9%
Japanese, lines 72.8% 67.7%
Japanese, columns 0.2% 87.5%
Korean, lines 85.6% 90.2%
Korean, columns 1.5% 67.0%

Set the language, or Vision reads English

With no language given, Vision found 0% on the Arabic, Thai, Chinese, Japanese and Korean scans. Russian and German came out the same either way.

Do not use the fast level

recognition_level="fast" found 63.9% of the English words. It lists 6 languages, the accurate level 30.

Apple was faster

Median time for one English page:

0.29 s Live Text

0.81 s Tesseract

Vision took 0.50 s.

Run it in Python

Install it with pip install ocrmac. It runs on macOS only. For lines across, with Vision:

from ocrmac import ocrmac

lines = ocrmac.OCR("page.png", language_preference=["en-US"]).recognize()
text = "\n".join(line[0] for line in lines)

For columns, or any page, with Live Text:

from ocrmac import ocrmac

lines = ocrmac.OCR(
    "page.png",
    framework="livetext",
    language_preference=["ja-JP"],
    unit="line",
).recognize()
text = "\n".join(line[0] for line in lines)

ocrmac says Live Text needs macOS Sonoma or later. It calls a class that Apple does not document, so a macOS update can break it.

What I did not test
  • iPhone and iPad, other Macs and other macOS versions.
  • Handwriting, phone photos, receipts and screenshots.
  • Vietnamese and the other languages I had no scans for.
  • Tesseract with image fixes other than Sauvola.
  • Apple's other text APIs in Swift.
Sources

Our Actor runs Tesseract

Our Apify Actor runs Tesseract in a Linux container, so it cannot use Apple's engines. On a Mac, Live Text is free.

Two ways to skip the work

Run it yourself. Our Apify Actor turns scanned PDFs into Markdown, tables included.

Try the Actor

Or send us the scan. Tack, our AI, does the job for $29, up to 50 pages. First page free.

Get one page free

Questions people ask

Is Apple Vision OCR better than Tesseract?

On most of these scans, yes. On 55 English book pages, Vision found 97.7% of the words and Tesseract 97.0%. Tesseract won on Fraktur, Russian and Korean columns.

Can Apple Vision read vertical text?

Vision read 1.7% or less of the characters on Chinese, Japanese and Korean columns. Live Text read them: 87.5% on Japanese columns.

Which languages does Apple Vision OCR support?

On macOS 26.6, the accurate level lists 30 languages, among them Chinese, Japanese, Korean, Russian, Thai, Vietnamese and Arabic. The fast level lists 6.