Ce este OCR?
Recunoașterea optică a caracterelor (OCR) se referă la procesul de identificare automată dintr-o imagine a caracterelor sau simbolurilor aparținând unui alfabet specificat. În această postare ne vom concentra pe explicarea modului de utilizare a OCR pe Android.
După ce a fost recunoscut textul imaginii, acesta poate fi utilizat pentru:
-
- Salvare în memorie.
- Procesare sau editare.
- Traduceți-o în altă limbă.
Popularitatea telefoanelor inteligente, combinată cu camere foto din ce în ce mai bune, a dus la o creștere a utilizării acestui tip de tehnici de recunoaștere și la o nouă categorie de aplicații mobile care se folosesc de ele.
Pe dispozitiv sau în cloud?
Înainte de a utiliza o bibliotecă OCR, este necesar să se decidă unde trebuie să aibă loc procesul OCR, pe smartphone sau în cloud.
În funcție de cerințele aplicației, fiecare abordare are avantajele și dezavantajele sale.
Dacă aplicația necesită, de exemplu, efectuarea recunoașterii caracterelor fără conexiune la internet, motorul OCR va fi lansat chiar pe dispozitiv. În acest fel, ar putea fi evitată trimiterea imaginilor către un server, deoarece camerele montate pe dispozitivele actuale pot realiza fotografii de mari dimensiuni.
Pe de altă parte, bibliotecile OCR tind să ocupe mult spațiu, fiind necesară descărcarea fiecărei limbi de recunoscut, după cum vom explica mai jos.
Ce biblioteci pot fi folosite?
În următorul link către Wikipedia există un tabel comparativ cu toate bibliotecile OCR, platformele suportate, limbajele de programare folosite în dezvoltarea lor și alte informații relevante.
Link: http://en.wikipedia.org/wiki/ List_of_of_optical_character_recognition_software
În această postare vom folosi biblioteca Tesseract, care se detașează față de restul. Este Open Source, are SDK, a fost creată de HP și în prezent este dezvoltată de Google.
OCR pe Android folosind biblioteca Tesseract
Deși Tesseract poate fi rulată pe un server Linux ca serviciu cloud, în această postare vom implementa biblioteca Tesseract într-o aplicație Android, lansând motorul OCR chiar pe dispozitiv.
Proiectul original Tesseract pentru Android se numește Tesseract Android Tools și conține instrumente pentru compilarea bibliotecilor Tesseract și Leptonica pentru utilizare pe platforma Android, precum și un API Java pentru accesarea acestor biblioteci compilate nativ.
Link: https://github.com/rebbix/tesseract-android-tools/tree/master/tesseract-android-tools
Pentru exemplul nostru, vom folosi o bifurcație a Tesseract Android Tools, care adaugă mai multe funcționalități.
Link: https://github.com/rmtheis/tess-two
Exemplu OCR pe Android
Avem nevoie de câțiva pași simpli pentru a efectua OCR pe Android:
Considerații
- Calitatea recunoașterii poate varia în funcție de condițiile de iluminare a imaginii, de rezoluția camerei, de fontul textului, de dimensiunea textului și altele…
- Pentru a obține cea mai bună calitate posibilă, este foarte important ca textul să fie centrat în imagine și imaginea să fie corect focalizată.
Vizualizare folosind OCR într-o aplicație pentru traducători
Video-ul următor prezintă o parte din aplicația pe care o dezvolt pentru proiectul meu final de diplomă (TFG), în care folosesc tehnicile OCR descrise.
.