OCR na Androida

Co to jest OCR?

Optyczne rozpoznawanie znaków (OCR) odnosi się do procesu automatycznego identyfikowania z obrazu znaków lub symboli należących do określonego alfabetu. W tym poście skupimy się na wyjaśnieniu, jak korzystać z OCR na Android.

Po rozpoznaniu tekstu obrazu, może być używany do:

    • Zapisz go do pamięci.
    • Przetwarzaj lub edytuj go.
  • Tłumaczyć go na inny język.

Popularność smartfonów w połączeniu z coraz lepszymi aparatami fotograficznymi doprowadziła do wzrostu wykorzystania tego typu technik rozpoznawania i powstania nowej kategorii aplikacji mobilnych, które je wykorzystują.

Na urządzeniu czy w chmurze?

Przed użyciem biblioteki OCR należy zdecydować, gdzie powinien odbywać się proces OCR, na smartfonie czy w chmurze.

W zależności od wymagań aplikacji, każde podejście ma swoje wady i zalety.

Jeśli aplikacja wymaga np. wykonywania rozpoznawania znaków bez połączenia z internetem, silnik OCR będzie uruchamiany na samym urządzeniu. W ten sposób można uniknąć wysyłania obrazów na serwer, ponieważ kamery zamontowane w obecnych urządzeniach mogą robić duże zdjęcia.

Z drugiej strony, biblioteki OCR zwykle zajmują dużo miejsca, będąc niezbędnymi do pobrania każdego z języków do rozpoznania, jak wyjaśnimy poniżej.

Jakie biblioteki mogą być używane?

W poniższym linku do Wikipedii znajduje się tabela porównawcza ze wszystkimi bibliotekami OCR, obsługiwanymi platformami, językami programowania użytymi w jej rozwoju i innymi istotnymi informacjami.

Link: http://en.wikipedia.org/wiki/ List_of_optical_character_recognition_software

W tym poście będziemy używać biblioteki Tesseract, która wyróżnia się ponad resztą. Jest ona Open Source, posiada SDK, została stworzona przez HP i jest obecnie rozwijana przez Google.

OCR na Androida z wykorzystaniem biblioteki Tesseract

Aczkolwiek Tesseract może być uruchomiony na serwerze Linux jako usługa w chmurze, w tym poście zaimplementujemy bibliotekę Tesseract w aplikacji na Androida, uruchamiając silnik OCR na samym urządzeniu.

Oryginalny projekt Tesseract dla Androida nazywa się Tesseract Android Tools i zawiera narzędzia do kompilacji bibliotek Tesseract i Leptonica do użytku na platformie Android, oraz API Java do dostępu do tych natywnie skompilowanych bibliotek.

Link: https://github.com/rebbix/tesseract-android-tools/tree/master/tesseract-android-tools

Do naszego przykładu wykorzystamy fork Tesseract Android Tools, który dodaje więcej funkcjonalności.

Link: https://github.com/rmtheis/tess-two

OCR Example on Android

Potrzebujemy kilku prostych kroków, aby wykonać OCR na Androidzie:

Rozważania

  • Jakość rozpoznawania może się różnić w zależności od warunków oświetlenia obrazu, rozdzielczości kamery, czcionki tekstu, rozmiaru tekstu i innych …
  • Aby osiągnąć najwyższą możliwą jakość, bardzo ważne jest, aby wyśrodkować tekst na obrazie, a obraz był odpowiednio skoncentrowany.

Podgląd użycia OCR w aplikacji tłumacza

Następujący film pokazuje część aplikacji, którą tworzę na potrzeby mojego projektu dyplomowego (TFG), gdzie używam opisanych technik OCR.

Dodaj komentarz