Rozpoznawanie tekstu dla Androida przy użyciu Google Mobile Vision

W tym tygodniu stworzymy prostą aplikację na Androida, która używa Google Mobile Vision API do optycznego rozpoznawania znaków(OCR). Mobile Vision Text API daje programistom Androida potężne i niezawodne możliwości OCR, które działają z większością urządzeń z Androidem.

Jest to bardzo potężne API, które może być również używane do wykrywania twarzy na żywo i śledzenia twarzy wraz z możliwościami skanowania kodów kreskowych.Aby dowiedzieć się więcej na temat tej wspaniałej biblioteki, skorzystaj z poniższego linku

Jak zawsze, przykładowy projekt jest dostępny tutaj

Zacznijmy od utworzenia nowego projektu w Android Studio.

  1. Wejdź do Plik ⇒ Nowy Projekt. Gdy pojawi się monit o wybranie domyślnej aktywności, wybierz Empty Activity i kontynuuj.
  2. Otwórz build.gradle w (Module:app) i dodaj zależności Mobile Vision w ten sposób.

3. Aby użyć tej biblioteki, może być konieczne zaktualizowanie zainstalowanej wersji Repozytorium Google w narzędziach SDK .Upewnij się, że twoja wersja Repozytorium Google jest aktualna. Powinna to być co najmniej wersja 26.

4. Nie zapomnij dodać uprawnień do dostępu do CAMERA, a także meta-danych do korzystania z OCR w pliku AndroidManifest.xml w ten sposób

5. Następnie stworzymy prosty layout dla naszej aktywności, który będzie wyglądał tak

Wewnątrz metody onCreate() pliku MainActivity.java, wywołamy metodę startCameraSource().

Co zatem dzieje się w powyższym kodzie? Oto jego istotne części.

TextRecognizer: Ten obiekt przetwarza obrazy i określa, jaki tekst pojawia się w ich obrębie. Po zainicjalizowaniu, może być użyty do wykrywania tekstu we wszystkich typach obrazów. Należy pamiętać, że zanim zaczniemy używać go do rozpoznawania tekstu, powinniśmy sprawdzić, czy jest gotowy. Robi się to za pomocą metody textRecognizer.isOperational().

CameraSource: Jest to menedżer kamer wstępnie skonfigurowany do przetwarzania Vision. Tutaj ustawimy rozdzielczość na 1280*1024 i włączymy auto-focus, ponieważ pomoże to w rozpoznawaniu mniejszych tekstów znacznie szybciej. Ponadto, ustawimy cameraSource, aby domyślnie używała tylnej kamery.

Detector.Processor<TextBlock> : Aby TextRecognizer mógł odczytywać tekst prosto z kamery, musimy zaimplementować Detector Processor, który będzie obsługiwał detekcje tak często, jak tylko staną się dostępne.

Są tu zaimplementowane dwie metody. Pierwsza z nich, receiveDetections(), będzie odbierać TextBlock z Detektora, gdy tylko staną się one dostępne. Druga, release(), może być użyta do czystego pozbycia się zasobów.

7. Ostatni krok

Pobieramy wartości TextBlock i tworzymy obiekt StringBuilder i dodajemy wartości do textView, który będzie aktualizowany za każdym razem, gdy w widoku kamery pojawi się tekst.

Uruchamiamy aplikację

W końcu możemy uruchomić aplikację i zobaczyć widok tekstu na żywo z widoku kamery

I to wszystko. Mamy teraz prostą aplikację OCR gotową z kilkoma liniami kodu!

Do następnego razu 🙂 Szczęśliwej nauki i Szczęśliwego Nowego Roku dla wszystkich.