Wat is OCR?
Optische tekenherkenning (OCR) verwijst naar het proces van automatisch identificeren van een afbeelding tekens of symbolen die behoren tot een bepaald alfabet. In dit bericht zullen we ons richten op het uitleggen hoe OCR te gebruiken op Android.
Eenmaal herkend de tekst van het beeld, kan het worden gebruikt om:
-
- Opslaan op opslag.
- Verwerken of bewerken.
- Het te vertalen naar een andere taal.
Populariteit van smartphones in combinatie met steeds betere camera’s heeft geleid tot een toename van het gebruik van dit soort herkenningstechnieken en een nieuwe categorie van mobiele apps die er gebruik van maken.
Op het apparaat of in de cloud?
Voordat een OCR-bibliotheek wordt gebruikt, moet worden besloten waar het OCR-proces moet plaatsvinden, op de smartphone of in de cloud.
Afhankelijk van de app-eisen heeft elke benadering zijn voor- en nadelen.
Als de app bijvoorbeeld vereist dat karakterherkenning zonder internetverbinding wordt uitgevoerd, wordt de OCR-engine op het apparaat zelf gestart. Op deze manier kan het verzenden van afbeeldingen naar een server worden vermeden, omdat de camera’s op de huidige apparaten grote foto’s kunnen maken.
Aan de andere kant hebben OCR-bibliotheken de neiging veel ruimte in beslag te nemen, omdat ze nodig zijn om elk van de te herkennen talen te downloaden, zoals we hieronder zullen uitleggen.
Welke bibliotheken kunnen worden gebruikt?
In de volgende link naar Wikipedia staat een vergelijkende tabel met alle OCR-bibliotheken, ondersteunde platforms, programmeertalen die bij de ontwikkeling ervan zijn gebruikt en andere relevante informatie.
Link: http://en.wikipedia.org/wiki/ List_of_optical_character_recognition_software
In deze post gaan we Tesseract bibliotheek gebruiken, die boven de rest uitsteekt. Het is Open Source, heeft SDK, is gemaakt door HP en wordt momenteel ontwikkeld door Google.
OCR op Android met behulp van Tesseract Library
Hoewel Tesseract kan worden uitgevoerd op een Linux-server als een cloud service, in deze post zullen we Tesseract bibliotheek te implementeren in een Android app, het starten van de OCR-engine op het apparaat zelf.
Het oorspronkelijke Tesseract-project voor Android heet Tesseract Android Tools en bevat tools voor het compileren van de Tesseract- en Leptonica-bibliotheken voor gebruik op het Android-platform, en een Java API voor toegang tot deze native-gecompileerde bibliotheken.
Link: https://github.com/rebbix/tesseract-android-tools/tree/master/tesseract-android-tools
Voor ons voorbeeld gaan we een vork van Tesseract Android Tools gebruiken, die meer functionaliteit toevoegt.
Link: https://github.com/rmtheis/tess-two
OCR Voorbeeld op Android
We hebben een paar eenvoudige stappen nodig om OCR op Android uit te voeren:
Overwegingen
- De kwaliteit van de herkenning kan variëren, afhankelijk van de lichtomstandigheden in de afbeelding, de resolutie van de camera, het lettertype van de tekst, de grootte van de tekst en andere …
- Om de hoogst mogelijke kwaliteit te bereiken, is het zeer belangrijk dat de tekst in het beeld wordt gecentreerd en dat de afbeelding goed is scherpgesteld.
Preview gebruik OCR in een vertaler app
De volgende video toont een deel van de app die ik aan het ontwikkelen ben voor mijn afstudeerproject (TFG), waar ik gebruik maak van de beschreven OCR technieken.