Co je OCR?
Optické rozpoznávání znaků (OCR) označuje proces automatické identifikace znaků nebo symbolů patřících do určité abecedy z obrázku. V tomto příspěvku se zaměříme na vysvětlení, jak používat OCR v systému Android.
Po rozpoznání textu obrázku jej lze použít k:
-
- Uložení do úložiště.
- Zpracování nebo úpravě.
- Přeložit jej do jiného jazyka.
Popularita chytrých telefonů v kombinaci se stále lepšími fotoaparáty vedla k nárůstu používání tohoto typu rozpoznávacích technik a nové kategorii mobilních aplikací, které je využívají.
Na zařízení, nebo v cloudu?
Před použitím knihovny OCR je nutné rozhodnout, kde má proces OCR probíhat, zda v chytrém telefonu, nebo v cloudu.
V závislosti na požadavcích aplikace má každý přístup své výhody a nevýhody.
Pokud aplikace vyžaduje například provádění rozpoznávání znaků bez připojení k internetu, spustí se engine OCR přímo v zařízení. Tímto způsobem by se dalo vyhnout odesílání obrázků na server, protože fotoaparáty namontované v současných zařízeních mohou pořizovat velké fotografie.
Na druhou stranu knihovny OCR obvykle zabírají mnoho místa, protože je nutné stáhnout každý z rozpoznávaných jazyků, jak si vysvětlíme níže.
Jaké knihovny lze použít?
Na následujícím odkazu na Wikipedii je srovnávací tabulka se všemi knihovnami OCR, podporovanými platformami, programovými jazyky použitými při jejich vývoji a dalšími důležitými informacemi.
Odkaz: http://en.wikipedia.org/wiki/ Seznam_optického_softwaru pro_rozpoznávání_znaků
V tomto příspěvku budeme používat knihovnu Tesseract, která vyniká nad ostatními. Je open source, má SDK, byla vytvořena společností HP a v současné době ji vyvíjí společnost Google.
OCR v systému Android pomocí knihovny Tesseract
Ačkoli knihovnu Tesseract lze spustit na linuxovém serveru jako cloudovou službu, v tomto příspěvku budeme knihovnu Tesseract implementovat v aplikaci pro systém Android a spustíme OCR engine přímo v zařízení.
Původní projekt Tesseract pro Android se nazývá Tesseract Android Tools a obsahuje nástroje pro kompilaci knihoven Tesseract a Leptonica pro použití na platformě Android a rozhraní Java API pro přístup k těmto nativně zkompilovaným knihovnám.
Odkaz: https://github.com/rebbix/tesseract-android-tools/tree/master/tesseract-android-tools
Pro náš příklad použijeme fork Tesseract Android Tools, který přidává další funkce.
Odkaz: https://github.com/rmtheis/tess-two
Příklad OCR v systému Android
Pro provedení OCR v systému Android potřebujeme několik jednoduchých kroků:
Pozornosti
- Kvalita rozpoznávání se může lišit v závislosti na světelných podmínkách obrazu, rozlišení fotoaparátu, písmu textu, velikosti textu a dalších …
- Pro dosažení co nejvyšší kvality je velmi důležité, aby byl text v obraze vycentrován a obraz byl správně zaostřen.
Náhled pomocí OCR v aplikaci překladače
Následující video ukazuje část aplikace, kterou vyvíjím pro svůj závěrečný projekt v rámci studia (TFG), kde používám popsané techniky OCR.
.