Riconoscimento del testo per Android usando Google Mobile Vision

Per la scrittura di questa settimana creeremo una semplice applicazione Android che utilizza le API di Google Mobile Vision per il riconoscimento ottico dei caratteri (OCR). La Mobile Vision Text API dà agli sviluppatori Android una capacità OCR potente e affidabile che funziona con la maggior parte dei dispositivi Android.

Questa è una API molto potente che può essere utilizzata anche per il rilevamento del volto dal vivo e il tracciamento dei volti insieme alle capacità di scansione dei codici a barre.Per saperne di più su questa meravigliosa libreria, seguite il link qui sotto

Come sempre, il progetto di esempio è disponibile qui

Iniziamo creando prima un nuovo progetto in Android Studio.

  1. Vai su File ⇒ Nuovo progetto. Quando ti chiede di selezionare l’attività predefinita, seleziona Empty Activity e procedi.
  2. Apri build.gradle in (Module:app) e aggiungi le dipendenze di Mobile Vision in questo modo.

3. Per utilizzare questa libreria, potrebbe essere necessario aggiornare la versione installata di Google Repository negli strumenti SDK. Dovrebbe essere almeno la versione 26.

4. Non dimenticare di aggiungere i permessi per l’accesso a CAMERA e anche i meta-dati per l’utilizzo di OCR nel file AndroidManifest.xml come questo

5. Successivamente, creeremo un semplice layout per la nostra attività che sarà simile a questo

All’interno del metodo onCreate() del MainActivity.java, chiameremo un metodo startCameraSource().

Allora cosa succede nel codice sopra? Ecco le parti importanti.

TextRecognizer: Questo oggetto elabora le immagini e determina quale testo appare al loro interno. Una volta inizializzato, può essere utilizzato per rilevare il testo in tutti i tipi di immagini. Notate che prima di iniziare ad usarlo per riconoscere il testo, dovremmo controllare che sia pronto. Questo viene fatto usando il metodo textRecognizer.isOperational().

CameraSource: Questo è un gestore di telecamere preconfigurato per l’elaborazione di Vision. Qui imposteremo la risoluzione a 1280*1024 e attiveremo l’auto-focus, perché aiuterà a riconoscere il testo più piccolo molto più velocemente. Inoltre, impostiamo la cameraSource per usare la camera posteriore per default.

Detector.Processor<TextBlock> : Affinché TextRecognizer legga il testo direttamente dalla camera, dobbiamo implementare un Detector Processor, che gestirà i rilevamenti ogni volta che diventano disponibili.

Ci sono due metodi da implementare qui. Il primo, receiveDetections(), riceverà TextBlock dal Detector man mano che diventano disponibili. Il secondo, release(), può essere usato per liberarsi in modo pulito delle risorse.

7. Passo finale

Prendiamo i valori di TextBlock e creiamo l’oggetto StringBuilder e aggiungiamo i valori alla textView, che sarà aggiornata ogni volta che c’è un testo nella camera view.

Accendiamo l’app

Finalmente, puoi accendere l’app e vedere una visualizzazione dal vivo del testo dalla vista della telecamera

E questo è tutto. Ora abbiamo una semplice applicazione OCR pronta con poche righe di codice!

Alla prossima volta 🙂 Buon Apprendimento e Felice Anno Nuovo a tutti.

Alla prossima volta 🙂