Audience
L'objectif de ce tutoriel est de vous aider à développer des applications en faisant appel à la fonctionnalité de détection Web de l'API Cloud Vision. Nous partons du principe que vous maîtrisez les concepts et les techniques de programmation de base. Toutefois, même si vous êtes un programmeur débutant, vous pouvez suivre et exécuter ce tutoriel sans difficulté, puis utiliser la documentation de référence de l'API Cloud Vision pour créer des applications de base.
Ce tutoriel décrit une application de l'API Vision en vous montrant comment appeler cette API pour en utiliser la fonctionnalité de détection sur le Web.
Prérequis
- Configurez un projet d'API Cloud Vision dans la console Google Cloud.
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.
Présentation
Ce tutoriel vous présente une application de base de l'API Cloud Vision, qui utilise une requête Web detection
. Une réponse Web detection
annote l'image envoyée dans la requête avec :
- des libellés obtenus à partir du Web ;
- les URL de sites comportant des images correspondantes ;
- les URL d'images du Web correspondant partiellement ou parfaitement à l'image de la requête ;
- les URL d'images visuellement similaires.
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 simple effectue les tâches suivantes :
- Elle importe les bibliothèques nécessaires pour exécuter l'application.
- Elle utilise un chemin d'accès d'image en tant qu'argument et le transmet à la fonction
main()
. - Elle utilise le client de l'API Google Cloud pour effectuer une détection sur le Web.
- Elle effectue une boucle sur la réponse et affiche les résultats.
- Elle affiche la liste des entités Web assorties d'une description et d'un score.
- Elle affiche la liste des pages correspondantes.
- Elle affiche la liste des images qui correspondent partiellement.
- Elle affiche la liste des images qui correspondent parfaitement.
En détail
Importer des bibliothèques
Nous importons des bibliothèques standards :
argparse
pour autoriser l'application à accepter les noms de fichiers d'entrée comme argumentsio
pour la lecture à partir des fichiers
Autres importations :
- La classe
ImageAnnotatorClient
de la bibliothèquegoogle.cloud.vision
pour l'accès à l'API Cloud Vision. - Le module
types
de la bibliothèquegoogle.cloud.vision
pour la création des requêtes.
Exécuter l'application
Ici, nous analysons simplement l'argument transmis, qui spécifie l'URL de l'image Web, et nous le transmettons à la fonction main()
.
S'authentifier dans l'API
Avant de communiquer avec le service de l'API 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 les identifiants par défaut de l'application. La bibliothèque cliente obtient les identifiants automatiquement. Par défaut, elle accède pour cela aux 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).
Construire la requête
Maintenant que le service de l'API Vision est prêt, nous pouvons créer une requête à lui envoyer.
Cet extrait de code effectue les tâches suivantes :
- Crée une instance
ImageAnnotatorClient
en tant que client. - Crée un objet
Image
à partir d'un fichier local ou d'un URI. - Transmet l'objet
Image
à la méthodeweb_detection
du client. - Il renvoie les annotations.
Afficher la réponse
Une fois l'opération terminée, nous parcourons WebDetection et nous affichons les entités et les URL contenues dans l'annotation (les deux premiers résultats de chaque type d'annotation sont présentés dans la section suivante).
Exécuter l'application
Pour exécuter l'application, nous transmettons l'URL Web (http://www.photos-public-domain.com/wp-content/uploads/2011/01/old-vw-bug-and-van.jpg) de l'image de voiture suivante.
Voici la commande Python avec l'URL Web de l'image de voiture transmise, suivie de la sortie de la console. Notez qu'un score de pertinence est ajouté après les entités répertoriées. Notez que les scores ne sont pas normalisés, ni comparables entre différentes requêtes d'image.
python web_detect.py "http://www.photos-public-domain.com/wp-content/uploads/2011/01/old-vw-bug-and-van.jpg"
5 Pages with matching images retrieved Url : http://www.photos-public-domain.com/2011/01/07/old-volkswagen-bug-and-van/ Url : http://pix-hd.com/old+volkswagen+van+for+sale ... 2 Full Matches found: Url : http://www.photos-public-domain.com/wp-content/uploads/2011/01/old-vw-bug-and-van.jpg Url : http://www.wbwagen.com/media/old-volkswagen-bug-and-van-picture-free-photograph-photos-public_s_66f487042adad5a6.jpg 4 Partial Matches found: Url : http://www.photos-public-domain.com/wp-content/uploads/2011/01/old-vw-bug-and-van.jpg Url : http://www.wbwagen.com/media/old-vw-bug-and-vanjpg_s_ac343d7f041b5f8d.jpg ... 5 Web entities found: Score : 5.35028934479 Description: Volkswagen Beetle Score : 1.43998003006 Description: Volkswagen Score : 0.828279972076 Description: Volkswagen Type 2 Score : 0.75271999836 Description: Van Score : 0.690039992332 Description: Car
Félicitations ! Vous avez effectué une détection Web à l'aide de l'API Cloud Vision.