L’API Vision par Ordinateur d’Azure (Microsoft)

Introduction

            L’API Vision met à disposition des algorithmes de traitement ainsi que d’analyse d’images. Elle fait partie des « Microsoft Cognitive Services » c’est-à-dire : Vision, Connaissance, Langage, Speech et Recherche. Microsoft propose d’utiliser l’intelligence artificielle pour se dédouaner de certaines tâches longues et ingrates. Il suffira maintenant de vérifier le travail qu’à fait l’API mais surtout lui apprendre les tâches qu’elle devra réaliser.

Ce service « Vision » permet donc d’analyser une image mais surtout de renvoyer un certain nombre d’information comme le type d’image, si elle montre des personnes, leur humeur ou encore si le contenu est choquant.

Dans un premier temps, nous nous intéresserons donc à l’API, ce qu’elle propose et ses différentes utilisations possibles.

Enfin nous suivrons un guide pour réaliser un programme de détection d’objet qui montre bien la puissance de l’API Vision.

I – Qu’est-ce que l’API Vision par Ordinateur d’Azure (Microsoft) ?

 « Vision » est décrit avec la phrase suivante « From faces to feelings, allow yours apps to understand images and videos », « Des visages aux sentiments, autorisez vos applications à comprendre les images et vidéos ». Vision regroupe différentes utilisations que nous verrons par la suite, notamment la détection de visage, la vérification, la recherche de similarité ou encore l’identification de visage. Elle propose aussi d’autres possibilités comme l’indexation de vidéos que nous évoquerons rapidement.

Elle est disponible en utilisant les bibliothèques clients de Microsoft, le kit SDK étant disponible sur leur site et utilisable cependant grâce à une clé d’abonnement.

On peut aussi l’utilisation en faisant directement appel à l’API. Il suffira de charger l’image directement en utilisant une méthode « POST » en ayant au préalable obtenu les tags et descriptions de l’image. Grâce à cette méthode on pourra se focaliser uniquement sur ses propres besoins avec l’API, par exemple analyser et renvoyer uniquement l’âge des personnes ou dans l’exemple suivi la race de chien. Le deuxième paramètre est le score de confiance, compté entre 0 et 1 et qui indique la fiabilité de l’analyse.

Nous verrons que l’API est utilisée pour différentes analyses et utilisations. Elle peut effectivement être utilise dans la reconnaissance de visage, pour en comparer par exemple mais aussi pour en extraire du texte ou encore pour modérer des images et vidéos selon leur contenu.

Par ailleurs, l’API supporte les formats d’images les plus courants comme JPEG ou PNG. Elle s’utilisera avec les langages suivants : C#, Java, Node.js, Python et GO.

1 – Analyser

Nous l’avons rapidement compris, l’analyse est une partie importante de l’API si ce n’est ça capacité principale. Vision est capable de retourner un certain nombre d’information sur une image ou même une vidéo en temps réel. Ces informations sont stockées dans un fichier JSON avec chaque caractéristique suivie de sa valeur. On aura donc une description de tout ce qui est visible, que ce soit vivant ou objet, ainsi que certains mots clés que l’API a pu dégager.

On pourra donc connaître le type d’image en elle-même, si c’est un dessin ou une photo en noir et blanc par exemple. Mais aussi ce qu’elle contient afin de classe l’image dans une catégorie « homme faisant du sport » par exemple ou par l’image suivante « Gare de train ». Elle est aussi capable de donner les couleurs principales.

On aura aussi la possibilité de donner des paramètres pour retrouver certain contenu en particulier, comme dit précédemment ce sera très utile pour repérer des images choquantes ou du contenu adultes.

L’analyse va même plus loin et notamment au niveau du visage des personnes. Vision propose d’abord de détecter les visages même en temps réel, si le visage est déjà connu et enregistré, l’API pourra l’identifier en donnant son nom, son âge et même son humeur du moment. Si la personne est inconnue, elle estimera seulement son genre ainsi que son âge.

Vision pourra donc reconnaître une personne, vérifier si elle connait ce visage en l’identifiant ou non mais aussi trouver des visages similaires dans une base de données.

2 – Extraire

Tout comme l’analyse, il en est de même pour extraire le texte d’une image. Vision propose de lire du texte et, tout comme une image, générer un fichier JSON avec la position de chaque mot et ce qui est dit.

Il est même possible de retranscrire du texte manuscrit en numérique. Ceci pourrait être pratique pour transposer des notes prisent à la main ou des formulaires par exemple, ce qui réduirait les possibilités d’erreurs lorsqu’une personne tierce enregistre un formulaire ou éviterait les erreurs de relecture.

On pourrait donc tendre vers le tout numérique et faire une économie de papier pour aller vers du stockage uniquement numérique. A voir évidemment si le stockage numérique est réellement aussi écologique que l’on pense.

3 – Modérer

L’Api permet donc de modérer le contenu que vous jugerez inapproprié grâce aux analyses précédentes.

Cependant il faut bien penser que la modération grave à une API peut détecter à tort une image comme offensante. Pour les photographies ou dessins, elle ne pourra pas prendre en compte l’aspect artistique et classera un nu artistique comme inapproprié par exemple et non comme une œuvre.

Elle est aussi capable de détecter du contenu adulte dans une vidéo, ce qui est utilisé des plateformes vidéo grand public comme Youtube.

Il faudra donc programmer l’API pour qu’elle analyse et mettre de côté certains contenus que vous ne voulez pas voir sur votre site par exemple.

4 – Optimiser

De fait, Vision permet l’indexation de vidéo. Grâce au « video indexer », vous pourrez repérer les personnes présentent sur une vidéo mais aussi un certain nombre d’informations sur eux comme leur biographie et des liens permettant de les retrouver. On aura aussi des mots clés en relation avec la vidéo ainsi que des annotations pertinentes, si l’API est bien programmée.

Aussi chose très intéressante, on peut retrouver une retranscription de tout ce qui est dit et écrit dans ladite vidéo.

Vision fonctionne sur la base de l’active learning c’est-à-dire que l’utilisation aura la possibilité d’entraîner l’API à reconnaître un certain type d’image ou de contenu pour une utilisation plus spécifique et personnelle. En uploadant ses propres images ou celles qui nous correspondent au mieux, en ajoutant des labels correspondant aux images, l’API va apprendre peu à peu.

II – L’utilisation

Concernant un exemple d’utilisation plus concret, nous nous intéresseront aux différentes options que proposent l’API notamment l’analyse d’image qui reste son but principal. L’exemple sera présenté en Python, l’API étant assez simple d’accès avec ce langage. Il faudra cependant s’assurer d’avoir une version de Python 2.7+ ou 3.5+ ainsi que pip dans la version qu’il conviendra.

Ce tutoriel consiste à réaliser un programme de détection d’objet en utilisant l’API et le SDK fournit par Microsoft. Après avoir créé le projet, il sera nécessaire d’ajouter de nombreux autres exemples, charger d’autres images, ajouter des régions balisées toujours dans l’optique d’active learning.

1 – Le tutoriel

Dans le répertoire du projet, il faudra créer un fichier « sample.py » en ajoutant le code suivant :

Ce sont les clés d’abonnement qui permettent d’utiliser l’API Vision ainsi que la création de détection d’objet et le classement d’images.

On créé ensuite les balises dans un projet à la fin du fichier « sample.py ».

Pour utiliser l’API correctement, il faudra les charger les images et appliquer les balises dans un projet de détection d’objet.

On peut préciser les régions de l’objet avec des coordonnées codés en dur ou non et qui spécifient le niveau du bit dans des coordonnées normalisées.

Cette carte de coordonnées sera utile pour charger chaque exemple d’image.

Comme nous l’avons vu plus tôt, il faut entrainer l’API pour qu’elle soit de plus en plus performante mais aussi adaptée à l’utilisation de chacun.

Le code suivant créer la première itération du projet, ce sera l’itération par défaut.

Pour envoyer une image au point de terminaison de prédiction et récupérer la prédiction, ajoutez le code suivant à la fin du fichier :

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *