Text Recognition

With ML Kit's text recognition APIs, you can recognize text in any Latin-based language (and more, with Cloud-based text recognition).

Text recognition can automate tedious data entry for credit cards, receipts, and business cards. With the Cloud-based API, you can also extract text from pictures of documents, which you can use to increase accessibility or translate documents. Apps can even keep track of real-world objects, such as by reading the numbers on trains.

iOS Android

If you're a Flutter developer, you might be interested in FlutterFire, which includes a plugin for Firebase's ML Vision APIs.

Choose between on-device and Cloud APIs

On-device Cloud
Pricing Free

Free for first 1000 uses of this feature per month: see Pricing

Ideal use cases Real-time processing—ideal for a camera or video feed
Recognizing sparse text in images
High-accuracy text recognition
Recognizing sparse text in images
Recognizing densely-spaced text in pictures of documents

See the Cloud Vision API demo.

Language support Recognizes Latin characters Recognizes and identifies a broad range of languages and special characters

Example results

Sparse text

Photo: Dietmar Rabich / Wikimedia Commons / "Düsseldorf, Wege der parlamentarischen Demokratie -- 2015 -- 8123" / CC BY-SA 4.0
Recognized Text
Text Wege
der parlamentarischen
Demokratie
Blocks (1 block)
Block 0
Text Wege der parlamentarischen Demokratie
Frame (117.0, 258.0, 190.0, 83.0)
Corner Points (117, 270), (301.64, 258.49), (306.05, 329.36), (121.41, 340.86)
Recognized Language Code de
Lines (3 lines)
Line 0
Text Wege der
Frame (167.0, 261.0, 91.0, 28.0)
Corner Points (167, 267), (255.82, 261.46), (257.19, 283.42), (168.36, 288.95)
Recognized Language Code de
Elements (2 elements)
Element 0
Text Wege
Frame (167.0, 263.0, 59.0, 26.0)
Corner Points (167, 267), (223.88, 263.45), (225.25, 285.41), (168.36, 288.95)

Document text

Recognized Text
Text DR. SEWARD'S DIARY 361
Professor. He had evidently expected some such call, for
I found him dressed in his room. His door was ajar, so that
he could hear the opening of the door of our room. He
came at once; as he passed into the room, he asked Mina
if the others might come, too.
"No," she said quite simply, "it will not be necessary.
You can tell them just as well. I must go with you on your
journey."
Dr. Van Helsing was as startled as I was. After a mo-
ment's pause he asked:
"But why?"

...

(full text)

Blocks (1 block)
Block 0
Text

DR . SEWARD ' S DIARY 361 Professor . He had evidently expected some such call , for I found him dressed in his room . His door was ajar , so that he could hear the opening of the door of our room . He came at once ; as he passed into the room , he asked Mina if the others might come , too .

" No , " she said quite simply , " it will not be necessary . You can tell them just as well . I must go with you on your journey . "

Dr . Van Helsing was as startled as I was . After a mo ment ' s pause he asked :

...

(full text)

Confidence 0.98
Frame (25.0, 21.0, 359.0, 583.0)
Recognized Language Code en
Paragraphs (10 paragraphs)
Paragraph 1
Text " No , " she said quite simply , " it will not be necessary . You can tell them just as well . I must go with you on your journey . "
Confidence 0.98
Frame (29.0, 110.0, 355.0, 44.0)
Recognized Language Code en
Words (34 words)
Word 7
Text simply
Confidence 0.99
Frame (179.0, 110.0, 37.0, 15.0)
Recognized Language Code en
Symbols (6 symbols)
Symbol 0
Text s
Confidence 1.00
Frame (179.0, 110.0, 3.0, 15.0)
Recognized Language Code en