OCR na Androidu

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.

.

Napsat komentář