Audience
L'objectif de ce tutoriel est de vous aider à développer des applications à l'aide de la détection de documents texte de l'API Cloud Vision de Google Cloud. Il y est supposé que vous maîtrisez les concepts et les techniques de base de la programmation. Mais même si vous êtes un programmemeur débutant, vous devriez pouvoir suivre et exécuter ce tutoriel sans difficulté, puis utiliser la documentation de référence de l'API Vision pour créer des applications de base.
Prérequis
- Configurez un projet d'API Vision dans la Google Cloud console.
Configurez votre environnement pour utiliser les identifiants par défaut de l'application.
Python
- Installez Python.
- Installez pip.
- Installez la bibliothèque cliente Google Cloud et la bibliothèque de traitement d'images Python Imaging Library.
Annoter une image à l'aide de la reconnaissance optique des caractères d'un document texte
Ce tutoriel vous présente une application de base de l'API Cloud Vision qui envoie une
DOCUMENT_TEXT_DETECTION requête, puis traite la fullTextAnnotation
réponse.
Une fullTextAnnotation est une réponse hiérarchique structurée pour le texte UTF-8 extrait de l'image. Elle est organisée sous la forme Pages → Blocks → Paragraphs → Words → Symbols (Pages → Blocs → Paragraphes → Mots → Symboles) :
Pageest un ensemble de blocs, plus des méta-informations sur la page: tailles, résolutions (la résolution X et la résolution Y peuvent varier).Blockreprésente un élément "logique" de la page (par exemple, une zone couverte de texte, ou une image ou un séparateur situé entre des colonnes). Les blocs de texte et de tableau contiennent les principales informations nécessaires à l'extraction du texte.Paragraphest une unité structurelle de texte représentant une séquence ordonnée de mots. Par défaut, les mots sont considérés comme séparés par des sauts de mot.Wordest la plus petite unité de texte. Elle est représentée sous la forme d'un tableau de symboles.Symbolreprésente un caractère ou un signe de ponctuation.
fullTextAnnotation peut également fournir les URL d'images Web correspondant partiellement ou parfaitement à l'image de la requête.
Intégralité du code
Lorsque vous lisez le code, nous vous recommandons de vous reporter à la documentation de référence de l'API Cloud Vision pour Python.
Cette application effectue les opérations suivantes :
- Elle importe les bibliothèques nécessaires pour exécuter l'application.
- Elle utilise trois arguments qu'elle transmet à la fonction
main():image_file: le fichier image d'entrée à annoter.output_file: le nom du fichier de sortie dans lequel Cloud Vision générera une image de sortie sur laquelle seront tracés des polygones
- Elle crée une instance
ImageAnnotatorClientpour interagir avec le service. - Elle envoie la requête et retourne une réponse.
- Elle crée une image de sortie sur laquelle des cadres sont tracés autour du texte.
En détail
Les sections suivantes examinent en détail les composants clés de l'exemple d'application.
Importer des bibliothèques
Nous importons des bibliothèques standards :
argparsepour permettre à l'application d'accepter les noms de fichiers d'entrée en tant qu'arguments.enumpour l'énumérationFeatureTypeiopour les E/S des fichiers.
Autres importations :
- La classe
ImageAnnotatorClientde la bibliothèquegoogle.cloud.visionpour l'accès à l'API Cloud Vision. - Le module
typesde la bibliothèquegoogle.cloud.visionpour la création des requêtes. - Les bibliothèques
ImageetImageDrawde la bibliothèquePILpermettent de créer l'image de sortie (image d'entrée sur laquelle ont été tracés des cadres).
Exécuter l'application
Ici, nous analysons les arguments transmis, et nous les transmettons à la fonction render_doc_text().
S'authentifier dans l'API
Avant de communiquer avec le service de l'API Cloud Vision, vous devez authentifier votre service avec les identifiants précédemment acquis. Dans une
application, le moyen le plus simple d'obtenir des identifiants est d'utiliser
le service identifiants par défaut de l'application
(ADC). Par défaut, les bibliothèques clientes Cloud tentent d'obtenir les identifiants de la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS
laquelle doit être définie de manière à pointer sur le fichier de clé JSON de votre compte de service (consultez la section Configurer un compte de service pour en savoir plus).
Envoyer la requête API et lire les limites du texte à partir de la réponse
Maintenant que notre service d'API Cloud Vision est prêt, nous pouvons accéder au service en appelant la méthode document_text_detection de l'instance ImageAnnotatorClient.
La bibliothèque cliente encapsule les informations sur les requêtes adressées à l'API et sur les réponses obtenues. Voir la documentation de référence de l'API Cloud Vision pour obtenir des informations complètes sur la structure d'une requête
Une fois la requête traitée par la bibliothèque cliente, la réponse contient une AnnotateImageResponse, qui consiste en une liste de résultats d'annotation d'image (un par image envoyée dans la requête). Étant donné que nous n'avons envoyé qu'une seule image dans la requête, nous parcourons la fullTextAnnotation, et nous collectons les limites pour la caractéristique de document spécifiée.
Exécuter l'application
Pour exécuter l'application, vous pouvez
télécharger ce receipt.jpg fichier
(vous devrez peut-être effectuer un clic droit sur le lien),
puis transmettre l'emplacement du fichier téléchargé sur votre machine locale
à l'application du tutoriel (doctext.py).

Voici la commande Python, suivie de l'image de sortie de l'annotation textuelle.
$ python doctext.py receipt.jpg -out_file out.jpg
Sur l'image ci-dessous, les mots sont dans des cadres jaunes et les phrases dans des cadres rouges.

Félicitations ! Vous avez effectué une détection de texte à l'aide des annotations de texte complètes de Cloud Vision.