5. Vision API ?
• Analyse le contenu d’images et fournit des données conxtuelles.
• Expose des modèles de machine learning déjà entrainés.
• Une API donnant accès à plusieurs fonctionnalités.
• Plusieurs de ces fonctionnalités sont déjà utilisées par Google.
6. Google Knowledge Graph
• Base de connaissance
• Organisée sous forme de graph
• Utilisable via une API
19. Question de l’utilisation des données
• Les images envoyées ne sont pas réutilisées par Google.
• L’image envoyé est stocké pour le traitement puis détruite quelques
heures après.
• Actuellement Google n’utilise pas le contenu envoyé à l’API pour
entrainé l’API Vision.
21. Qui l’utilise ?
Détection de label pour une campagne marketing.
OCR pour filtrer des documents juridiques.
OCR pour fournir des informations pertinentes à sa clientèle.
23. Utiliser l’API Vision
• Quickstart :
• Drag and drop.
• Embedded API Explorer.
• Librairies clientes.
• Endpoint REST et RPC.
• SDK cloud
24. Librairies clientes (beta)
• Etape 1 : installation de la
librairie via un manager de
package (composer, nuget, npm,
…).
• Etape 2 : référencement de la
librairie puis utilisation.
25. REST
• Discovery service utilisable avec Google API Discovery Service.
• Une seul méthode :
• Corps de la requêtes :
27. SDK Cloud
• CLI pour les produits et services Cloud Platform.
• Différents outils : gCloud, bq, gsutil,…
• Commande Vision API :
28. Conslusion
• Les plus :
• Très liée au Google Knowledge Graph.
• Beaucoup de possibilité pour l’utiliser.
• Les moins :
• Manque d’entrainement sur certaines fonctionnalités.
• Manque des modèles à entrainer.
• Alternative : Amazon Rekognition, IBM Watson Visual Recognition, Service
Cognitifs Vision d’Azure (Face API, Content Moderator, Custom Vision
Service, …)
Notes de l'éditeur
Analyse Video autre API.
Pas de modèle vierge.
But primaire : fournir des information rapide sans avoir besoin de naviguer sur un site
Source wikipédia, wikidata, World Factbook (publication annuel de la CIA sur les pays)
Contient des objet ou entité (point d’entré du graph), puis fait et relation entre ces différent éléments.
Utilisé par le moteur de recherche pour filtrer ses résultats.
Objet, lieux, activité, espèce animal, produit,…
Les labels sont seulement en anglais (peuvent être traduit avec google translate API)
Retourne l’ID de l’element pour interroger le Google Knowledge Graph.
Indice de confiance
Retourne une liste d’entité lié au contenu de l’image (utilise google search image).
Retourne l’id (utilisable dans le Google Knowledge Graph), url de pages web qui contiennent cette image, url des image qui match ou match partiellement (image retoucher) et url des images qui sont visuellement similaire.
Retourne un classement des couleur dominantes au sein de l’image (en RGB et en % des pixel total).
Détecte les visages et fournit les coordonnées clé d’un visage (position du nez, des yeux, bouche, tête penché, …)
Prédiction des emotions : joie, colère, surprise, … et couvre-chef.
Détection de produite populaire ou logo corporate. Nom du logo + id pour chercher au sein du Google Knowledge Graph
Identifie des lieux connue : retourne un ID (pour Google Graph Knowledge API), le nom et la localisation et la bounding box qui encadre le point de repère. Latitude et longitude.
OCR : optical character recognition
Reconnais et extrait le text, pour chaque text précise : la langue, le texte et les coordonées du polygone pour situer le texte détecté (bounding box)
languageHints : possibilité de dire le language auquel s’attendre, best practice le laisser vide (reconnaissance auto)
Plus de 50 langue.
Comme la détection de texte mais avec des infos supplémentaire : page, block, paragraphe, mot, …
Obligé de préciser la langue, pas de reconnaissance auto.
Proposition de découpage d’une image.
Retourne les coordonnées d’une bounding box qui entoure l’objet ou le visage dominant dans l’image.
Adult : 18ans et plus, nudité, activité sexuel et pornographie (inclus cartoon et animé).
Spoof : parodie, contenue modifié de l’original.
Medical : chirurgie ou IRM
Violent : présence de sang, image de guerre, armes, blessure, accident de voiture,…
Chaque feature appliquées à une image est facturable.
Sont susceptible de changer.
Les limites de requêtes s’applique à chaque project Google Cloud Platform Console et sont partager par toutes les applications et adresses IP au sein de ce projets.
Pour les 20millions il est possible d’augmenter le quotas en faisant une demande directement à Google.
Des logs concernant la requête persistent (heure de réception de la requête et la taille).
Type : jpeg, png, gif et gif animé (first frame), bmp, raw, ico.
Dépendants des feature car FACE_DETECTION analyse seulement les visage alors que labels analyse toute l’image.
Des images plus petite peuvent fonctionné mais on aura – de précision sur la feature (exemple moins de labels trouvé, …)
Les tailles plus grandes peuvent augmenter le temps de traitement et l'utilisation de la bande passante sans offrir des avantages comparables en termes de précision.
Disney : campagne marketin, Jeux de chasse Eliote dragon, au trésor exemple, trouver un canapé, trouver un lapin, …
Platinium IDS : filtrage de document juridique (identification et suppression de contenu non pertinent au format papier ou numérique), assistance juriduqe, e-discovery
Realtor, sign snap : prendre en photo dans le voisignage un panneau de vente et avoir des informations pertinente sur la maison (extraction de texte du panneau de vente)
Petite demo NodeJS
Avantage :
Google API Discovery Service : utiliser pour librairie cliente, IDE plugin, autre outil devant interagir avec l’API.
Petit speech discovery service.
Possibilité de streamer la réponse du serveur, possibilité de streamer la requête du client, double streaming, …
Une methode BatchAnnotateImages.
gCloud : Google Cloud Platform (Google cloud compute engine, Google Cloud SQL instances, Google Container Engine clusters,…)
bq : Google BigQuery
gsutil : Google Cloud Storage
kubectl : Kubernetes
Dispo pour powershell
Disponible sur Windows, Mac et plusieurs distribution linux (redhat, centos, unbuntu et debian).
Plutôt utiliser TensorFlow pour les modèles à entrainer