API VISION

API VISION par ordinateur de Microsoft

Yoann Basquin

Sommaire

 

1) Une API c’est quoi

1.1 ) API REST OU SOAP

2) L’API  Vision

2.1 ) Les spécificités de l’API

2.1.1 ) Dessin ou Photo

2.1.2 ) Reconnaissance de l’âge

2.1.3 ) Les couleurs dans l’image

2.1.4 ) La couleur la plus attirante

2.1.5 ) Image en noir et blanc ou non

2.1.6 ) Image à caractère sexuelle

2.2 )  Une description complète de l’image

2.3 ) Compatibilité de l’API

3 ) Présentation du code

4) Conclusion

1 ) Une API c’est quoi ?

 

API est un acronyme pour Applications Programming Interface. Une API est une interface de programmation qui permet de se « brancher » sur une application pour échanger des données.

1.1 ) API REST OU SOAP

 

SOAP est un protocole de communication standard qui permet d’echanger des données en XML et uniquement en XML .

REST  permet d’échanger des données sous plusieurs formes ( XML , JSON ) et surtout s’utilise avec des requêtes http comme GET  , DELETE , POST , HEAD

Pour l’API Vision , c’est du REST qui est utilisé

2) L’API VISION

 

L'API Vision renvoie des balises basées sur plus de 2 000 objets, êtres vivants, paysages et actions reconnaissables. Lorsque les balises sont ambiguës ou ne sont pas de notoriété publique, la réponse de l'API fournit des «conseils» pour clarifier la signification de la balise dans le contexte d'un paramètre connu.  Les résultat de l'image affichée sortent sous la forme d'un langage lisible par l'homme, formaté en phrases complètes qui est sous format JSON . Pour l’instant seulement la langue anglaise est compatible avec l’api

 

Après le téléchargement d’une image grâce à un programme, les algorithmes de l’API Vision affichent en format JSON les étiquettes basées sur les objets, êtres vivants et les actions se passant dans l’image. L’avantage c’et que ce n’est pas seulement le premier plan mais aussi tout ce qui se passe en arrière-plan comme les animaux, les décors ou tout ce qui est détectable par l’API.

L’API Vision peut également fonctionner avec les vidéos

2.1 ) Les spécificités de l’API

 

Quesque l’api est capable de reconnaitre ?

Il y a plusieurs catégories reconnaissables pour l’api avec des « mots » à l’intérieur des catégories comme cela est montré sur l’image

Exemple :

 

L’API va ressortir la catégorie People

 

L’API va ressortir la catégorie animal suivi de dog

 

On remarque quand même que sur la catégorie animal ou autres catégories, pour l’instant tout n’est pas encore reconnaissable

 

2.1.1 ) Dessin ou Photo

 

L’API est capable de savoir si l’image est un dessin ou non ( de type booléen)

Exemple :

 

L’API va ressortir un booléen qui est de type «  true »

L’API va ressortir un booléen qui est de type «  false  »

2.1.2 ) Reconnaissance de l’âge

L’API est aussi capable de déterminer un âge et le sexe de la personne grâce à un rectangle qui prends les dimensions du visage de la personne

C’est encore en expérimentation et surtout, une API totalement dédié à cette fonction existe, c’est l’API FACE

Exemple :

L’API va ressortir sous format JSON une réponse de ce type

[ { "age": 23, "gender": "Female", "faceRectangle": { "left": 1379, "top": 320, "width": 310, "height": 310 } } ]

2.1.3 ) Les couleurs dans l’image

 

L’Api détecte aussi les couleurs utilisés dans l’image

Il détecte le premier plan , l’arrière-plan et les couleurs principales dans l’image

Exemple :

L’API va ressortir comme information

Foreground :  White

Background : Black

Colors : White , Black ,Green

2.1.4 ) La couleur la plus attirante

 

L’API est capable de reconnaitre la couleur la plus attirante pour l’œil humain et la sortir en hexadécimal

Exemple :

La couleur la plus attirante selon l’API est #CAA501

Cette couleur correspond au jaune

2.1.5 ) Image en noir et blanc ou non

 

L’api est capable de reconnaitre si les image sont en couleur ou non , et cela sous forme de booléen

Exemple :

L’API va ressortir ici « TRUE »

L’API va ressortir ici « FALSE »

2.1.6 ) Image à caractère sexuelle

 

L’API est capable de détecter les images à caractères sexuelles, et donc est capable de restreindre l’affichage de ce type d’image selon les préférences des utilisateurs

Je ne montrerais pas d’exemple ici, pour éviter de choquer les futurs lecteurs !

2.2 ) Une description complète de l’image

Les algorithmes L’API analysent le contenu d'une image. Cette analyse permet de faire une «description» affichée sous la forme de JSON avec des phrases complètes. La description résume ce que l'on trouve dans l'image. Les algorithmes  génèrent diverses descriptions basées sur les objets identifiés dans l'image. Les descriptions sont évaluées et un score est généré , ce score permet de donner un score de confiance , c’est-à-dire que l’algorithme va dire à l’utilisateur si il est sûr de lui ou non . Une liste est ensuite retournée, classée du score de confiance le plus élevé au plus bas.

Exemple :

 

Sur cette image le JSON retourné sera

 

'description':{

"captions":[

{

"type":"phrase",

'text':'a black and white photo of a large city',

'confidence':0.607638706850331

}

]

"captions":[

{

"type":"phrase",

'text':'a photo of a large city',

'confidence':0.577256764264197

}

]

"captions":[

{

"type":"phrase",

'text':'a black and white photo of a city',

'confidence':0.538493271791207

}

]

'description':[

"tags":{

"outdoor",

"city",

"building",

"photo",

"large",

}

]

}

On voit qu’il donne un score entre 0.00 et 1.00

On voit aussi qu’il sort une phrase avec quelques détails sur la photo

Et ensuite des tags de ce qu’il détecte dans l’image

 

2.3 ) Compatibilité de l’api

 

L’api est compatible avec plusieurs langages, comme le C# , cURL , Java, JavaScript , PHP , Python et Ruby ou tout autre langage tant qu’il est compatible avec une API REst

Pour pouvoir l’utiliser il faut avoir une clé que l’on peut obtenir avec un compte Microsoft

Lien : https://docs.microsoft.com/fr-fr/azure/cognitive-services/computer-vision/vision-api-how-to-topics/howtosubscribe

L’utilisation de cette Api est payante, mais il y a un essai d’une semaine offerte pour les développeurs

 

3) Présentation du code

 

Exemple de code en C#

La partie « Main » donc le programme principal

Méthode MakeAnalysisRequest

Méthode GetImageAsByteArray

Méthode JsonPrettyPrint

Voici l’image choisit pour l’exemple

Une jolie petite DS3 Racing de chez Citroën

Je rentre mon lien comme ceci dans le programme

Résultat :

 

Grâce à l’API nous obtenons comme information :

  • La catégorie est de type «  trans_car » , et son score est de 0.99 sur 1.00 donc l’API est quasiment sur
  • La description qui permet de  ressortir tout les tags  détecté sur l’image  , on voit bien qu’il ressort beaucoup d’informations sur la voiture et sur la route

 

  • Une phrase qui permet de donner une information sur l’action

 

  • Les couleurs dominantes et les couleurs détectés sur l’image

 

  • L’Id de la requête et les informations sur l'image

 

4) Conclusion

 

On peut voir que les entreprises qui travaillent dans la photographie et dans la vidéo ont à disposition une API puissante et capable de faire de grandes choses, elle permet surtout un gain de temps énorme lorsque on veut référencer des images pour un site web, pour pouvoir avoir des informations importantes pour un client  qui voudrait des détails sur certaines photos

L’API est capable d’apprendre petit à petit, et donc de donner à chaque fois de nouvelles informations

Par exemple si on lui donne des informations sur les noms des personnes, alors à la prochaine image qui s’affichera ,  il pourra détecter le visage de la personne et dire comment elle se nomme ( si cela ) était rentré par l’utilisateur )

Cela ressemble à du machine-learning , c’est-à-dire que la machine apprends les habitudes / connaissances de l’utilisateur pour mieux l’aider plus tard et pouvoir faire des tâches automatiquement pour lui faire gagner du temps

 

Pas de commentaire.

Ajouter un commentaire