Reconnaissance de texte pour Android en utilisant Google Mobile Vision

Pour la rédaction de cette semaine, nous allons créer une application Android simple qui utilise les API de Google Mobile Vision pour la reconnaissance optique de caractères(OCR). L’API Mobile Vision Text donne aux développeurs Android une capacité d’OCR puissante et fiable qui fonctionne avec la plupart des appareils Android.

C’est une API très puissante qui peut également être utilisée pour la détection de visage en direct et le suivi de visage ainsi que des capacités de lecture de codes à barres.Pour en savoir plus sur cette merveilleuse bibliothèque, suivez le lien ci-dessous

Comme toujours, le projet d’exemple est disponible ici

Démarrons en créant d’abord un nouveau projet dans Android Studio.

  1. Allez dans Fichier ⇒ Nouveau projet. Lorsqu’il vous invite à sélectionner l’activité par défaut, sélectionnez Empty Activity et procédez.
  2. Ouvrez build.gradle dans (Module:app) et ajoutez les dépendances Mobile Vision comme ceci.

3. Pour utiliser cette bibliothèque, vous devrez peut-être mettre à jour votre version installée de Google Repository dans SDK tools.Assurez-vous que votre version de Google Repository est à jour. Il devrait être au moins la version 26.

4. N’oubliez pas d’ajouter des permissions pour accéder à CAMERA et aussi des méta-données pour utiliser OCR dans le fichier AndroidManifest.xml comme ceci

5. Ensuite, nous allons créer une mise en page simple pour notre activité qui ressemblera à ceci

Dans la méthode onCreate() de la MainActivity.java, nous allons appeler une méthode startCameraSource().

Alors, que se passe-t-il dans le code ci-dessus ? Voici les parties importantes.

TextRecognizer : Cet objet traite les images et détermine le texte qui y apparaît. Une fois qu’il est initialisé, il peut être utilisé pour détecter du texte dans tous les types d’images. Notez qu’avant de commencer à l’utiliser pour reconnaître du texte, nous devons vérifier qu’il est prêt. Ceci est fait en utilisant la méthode textRecognizer.isOperational().

CameraSource : Il s’agit d’un gestionnaire de caméra préconfiguré pour le traitement Vision. Ici, nous allons définir la résolution à 1280*1024 et activer l’auto-focus, car cela aidera à reconnaître les petits textes beaucoup plus rapidement. De plus, nous définissons la cameraSource pour utiliser la caméra arrière par défaut.

Detector.Processor<TextBlock> : Pour que TextRecognizer puisse lire le texte directement depuis la caméra, nous devons implémenter un Detector Processor, qui traitera les détections aussi souvent qu’elles seront disponibles.

Il y a deux méthodes à implémenter ici. La première, receiveDetections(), recevra les TextBlock du Détecteur au fur et à mesure qu’ils deviennent disponibles. La seconde, release(), peut être utilisée pour se débarrasser proprement des ressources.

7. étape finale

Nous prenons les valeurs de TextBlock et créons un objet StringBuilder et ajoutons les valeurs au textView, qui sera mis à jour chaque fois qu’il y a un texte dans la vue de la caméra.

Démarrer l’application

Enfin, vous pouvez démarrer l’application et voir une vue en direct du texte depuis la vue caméra

Et c’est tout. Nous avons maintenant une simple application OCR prête avec quelques lignes de code!

À la prochaine fois :). Bon apprentissage et bonne année à tous.