Tekstgenkendelse til Android ved hjælp af Google Mobile Vision

I denne uges artikel vil vi oprette en simpel Android-app, der bruger Google Mobile Vision API’er til optisk tegngenkendelse (OCR). Mobile Vision Text API giver Android-udviklere en kraftfuld og pålidelig OCR-funktion, der fungerer med de fleste Android-enheder.

Dette er et meget kraftfuldt API, der også kan bruges til live ansigtsdetektion og ansigtssporing sammen med stregkodescanningsfunktioner.Hvis du vil vide mere om dette vidunderlige bibliotek, skal du følge linket nedenfor

Som altid er eksempelprojektet tilgængeligt her

Lad os komme i gang ved først at oprette et nyt projekt i Android Studio.

  1. Gå til File ⇒ New Project (Filer ⇒ Nyt projekt). Når du bliver bedt om at vælge standardaktivitet, skal du vælge Empty Activity og fortsætte.
  2. Åbn build.gradle i (Module:app), og tilføj Mobile Vision-afhængigheder som her.

3. For at bruge dette bibliotek skal du muligvis opdatere din installerede version af Google Repository i SDK-værktøjer .Sørg for, at din version af Google Repository er opdateret. Den skal være mindst version 26.

4. Glem ikke at tilføje tilladelser til adgang til CAMERA og også metadata til brug af OCR i AndroidManifest.xml-filen som følger

5. Dernæst vil vi oprette et simpelt layout til vores aktivitet, der vil se således ud

Inden for onCreate()-metoden i MainActivity.java vil vi kalde en startCameraSource()-metode.

Så hvad sker der i ovenstående kode? Her er de vigtige dele.

TextRecognizer: Dette objekt behandler billeder og bestemmer, hvilken tekst der vises i dem. Når det er initialiseret, kan det bruges til at registrere tekst i alle typer billeder. Bemærk, at før vi begynder at bruge det til at genkende tekst, skal vi kontrollere, at det er klar. Dette gøres ved hjælp af textRecognizer.isOperational()-metoden.

CameraSource: Dette er en kameramanager, der er forudkonfigureret til Vision-behandling. Her vil vi indstille opløsningen til 1280*1024 og slå autofokus til, fordi det vil hjælpe med at genkende mindre tekst meget hurtigere. Vi indstiller også cameraSource til at bruge bagkameraet som standard.

Detector.Processor<TextBlock> : For at TextRecognizer kan læse tekst direkte fra kameraet, skal vi implementere en Detector Processor, som vil håndtere detektioner så ofte, som de bliver tilgængelige.

Der er to metoder, der skal implementeres her. Den første, receiveDetections(), vil modtage TextBlock fra Detector, efterhånden som de bliver tilgængelige. Den anden, release(), kan bruges til rent at komme af med ressourcerne.

7. Sidste trin

Vi tager værdierne fra TextBlock og opretter StringBuilder-objektet og tilføjer værdierne til textView, som vil blive opdateret hver gang der er en tekst i kameravisningen.

Fyr op for appen

Endeligt kan du fyre op for appen og se en livevisning af tekst fra kameravisningen

Og det er det hele. Vi har nu en simpel OCR-app klar med få linjer kode!

Til næste gang 🙂 God læring og godt nytår til alle.