Présentation et exemples de mise en oeuvre de l’API Rekognition

Auteur/Traducteur : FROMY ANTHONY

 

CB32 Présentation et exemples de mise en oeuvre de l'API Rekognition (Amazon)

 

Introduction:

Bonjour à tous et bienvenue dans un nouveau tutoriel. Aujourd’hui nous allons parler des images, plus précisément de la reconnaissance des images par la web api d'Amazon: l'API Rekognition. Asseyez-vous, prenez un café ou un thé, on commence.

Au cours des dernières années, les images sont devenues un type de fichier de plus en plus important dans l'entreprise. Partager les derniers progrès d'un projet de construction à la capture de la scène d'un accident de voiture pour l'assurance, capturer et partager des images est devenue une partie intégrante de tout processus d'affaires numérique. Pendant ce temps, les progrès de la technologie d'analyse d'images ont ouvert de nouvelles voies aux développeurs pour construire des applications plus intelligentes avec des images, tirant parti des services cloud pour analyser et étiqueter automatiquement les objets dans une image.

 

1. Qu'est-ce qu'une Web API ?

Une API Web est une interface de programmation d'application pour un serveur Web ou un navigateur Web. C'est un développement web concept, généralement limitée à une application Web côté client (y compris les cadres Web étant utilisés). Donc, généralement ne comprend pas les détails de mise en œuvre du serveur ou d'un navigateur Web tel que SAPI ou API à moins qu'elles soient accessibles au public par une application d'accès à distance.

Résultat de recherche d'images pour "web api"

2. Amazon = boutique en ligne, alors pourquoi une API:

Ce qu'il faut savoir sur Amazon c'est qu'ils ont un pôle informatique redoutable qui crée des fonctionnalités pour api et d'autres composantes informatique révolutionnaires. Oui, nous sommes bien loin du temps ou ils ne vendaient que des livres. Depuis quelques années, Amazon débloque des fonds extraordinaires dans la R&D informatique. Et nous allons apprendre à en utiliser un : la reconnaissance des images, Amazon Rekognition.

3. Présentation

Amazon Rekognition a été construit par l'équipe Computer Vision au cours de nombreuses années, ce service analyse des milliards d'images par jour. Il a été formé sur des milliers d'objets et de scènes et vous pouvez désormais l'utiliser dans vos propres applications. Vous pouvez utiliser les démos Rekognition pour mettre le service à l'épreuve avant de plonger et commencer à écrire du code qui utilise l'API Rekognition.

Rekognition a été conçu dès le départ pour fonctionner à l'échelle. Il comprend des scènes, des objets et des visages. Étant donné une image, il renverra une liste d'étiquettes. Par exemple, pour une image avec un ou plusieurs visages, elle renvoie des cadres de délimitation pour chaque visage, ainsi que des attributs. Voyons ce qu'il en dit sur la photo d'un chien :

Comme vous pouvez le voir, Rekognition a étiqueté le chien comme un animal, un chien, un animal de compagnie, et comme un golden retriever avec un degré élevé de confiance. Il est important de noter que ces étiquettes sont indépendantes, dans le sens où il ne comprend pas explicitement la relation entre, par exemple, les chiens et les animaux. Il se trouve que ces deux étiquettes étaient présentes simultanément sur le matériel d'entraînement centré sur le chien présenté à Rekognition. Vous comprendrez mieux en suivant ce tutoriel, assez discuté, lançons-nous !

 

Présentation des différents support que nous allons utiliser :

1. Box:

Résultat de recherche d'images pour "Box"

Box est une plateforme de gestion de contenu d'entreprise capable de relever des défis simples ou complexes : partage de contenu et accès aux fichiers sur des appareils mobiles ou encore processus métier avancés comme la gouvernance et la conservation des données.

2. ASW

Résultat de recherche d'images pour "AWS amazon"

Amazon Web Services (AWS) est une division du groupe américain de commerce électronique Amazon.com, dédiée aux services de cloud computing pour les entreprises et particuliers. En 2015, AWS génère 7 % du chiffre d'affaires d'Amazon et représente la première source de profit de l'entreprise.

3. Webhooks V2:

Résultat de recherche d'images pour "Webhooks"

Les Webhooks sont des déclencheurs que vous pouvez attacher aux fichiers et dossiers Box pour vous avertir lorsque ces objets sont accédés. Vous définissez les webhooks que vous souhaitez joindre à un fichier ou un dossier et l'URL que vous souhaitez notifier. Lorsque des événements identifiés par le webhook se produisent Box répond en envoyant des requêtes HTTP à l'URL définie.

Par exemple, vous pouvez configurer un webhook pour vous avertir chaque fois qu'un fichier particulier est mis à jour ou chaque fois que des fichiers sont téléchargés à partir d'un dossier particulier.

Les Webhooks vous permettent de surveiller automatiquement les activités qui affectent le contenu de votre Box.

 

4. Mise en place:

Avant d'écrire un code, vous devez configurer quelques éléments.

Pour construire l'intégration, vous aurez besoin:

  1. D'un compte AWS
  2. D'un compte de développeur Box

Étape 1: Créer une application Box

D'abord, vous devrez créer une application Box. Vous pouvez également modifier la configuration de votre application existante. Votre application devra être autorisée dans votre compte Box et avoir les portées appropriées et les fonctionnalités avancées activées.

Vous pouvez voir les étapes exactes sur le site de box.

Étape 2: Créer une API dans Amazon API Gateway

Ensuite, vous devrez configurer une passerelle API qui servira de point de terminaison pour les événements du webhook que vous créerez plus tard.

Pour configurer une passerelle API:

  1. Connectez-vous à AWS Management Console et accédez à la console API Gateway.
  2. Cliquez sur "Créer une API"
  3. Cliquez sur "Nouvelle API"
  4. Donnez le nom de l'API en tant que "box-node-rekognition-lambdas-sample" et complétez la description
  5. Appuyez sur "Créer une API"

Une fois que vous avez configuré votre API Gateway, vous devez saisir l'URL dans l'onglet "Triggers" pour l'utiliser comme adresse cible pour votre webhook.

Étape 3: Créer une instance de base de données Dynamo

Ensuite, vous devrez créer une petite instance de base de données Dynamo pour stocker les événements de Box.

Pour configurer une instance de base de données Dynamo:

  1. Connectez-vous à AWS Management Console et accédez à la console DynamoDB
  2. Cliquez sur "Créer une table"
  3. Nommez votre table "box_file_uploaded"
  4. Définissez la clé primaire comme "file_id". L'exemple de code attend le nom exact
  5. Laissez les paramètres Table par défaut
  6. Cliquez sur "Créer"

Étape 4: Créer un rôle AWS Identity and Access Management (IAM)

  1. Aller à l' IAM
  2. Appuyez sur "Créer un nouveau rôle"
  3. Donnez le nom de rôle "box-node-rekognition-metadata-sample-role". Cliquez sur "Next Step"
  4. Sélectionnez "AWS Lambda".
  5. Sélectionnez les politiques
  6. AmazonDynamoDBFullAccess
  7. CloudWatchLogsFullAccess
  8. AmazonRekognitionFullAccess
  9. Passez en revue et appuyez sur "Créer un rôle".

Construire l'intégration

Ensuite, vous allez créer deux fonctions Lambda et un webhook dans votre dossier Box.

Étape 5: Créer une fonction Lambda pour gérer un webhook Box

Ensuite, vous devrez créer une fonction Lambda qui se déclenche lorsqu'un événement FILE.UPLOADED est envoyé à l'aide d'un webhook Box. Dans ce didacticiel, nous utiliserons le SDK Nœud Box et le SDK AWS Node pour l'intégration.

  1. Connectez-vous à AWS Management Console et accédez à la console de gestion Lambda
  2. Appuyez sur "Créer une fonction Lambda"
  • Choisissez le plan "Blank Function"

3. Configurez un déclencheur pour la fonction Lambda en cliquant dans la zone grisée

  • Choisissez API Gateway
  • Laissez le nom de l'API et l'étape de déploiement avec les valeurs par défaut
  • Choisissez "Ouvrir" pour la sécurité. Cela permet au webhook Box d'appeler l'API en externe
  • Appuyez sur Suivant

4. Créez le package de déploiement pour la fonction Lambda

  • Exécutez l'installation npm pour installer le SDK de nœud de boîte et le SDK AWS Node.
  • Exécutez npm exécutez zip pour créer box-node-rekognition-webhook-lambda-sample.zip
  • Le fichier zip contient l'exemple de code dans index.js, Box Node SDK et AWS Node SDK.

5. Configurez la fonction lambda

  • Name = "box-node-rekognition-webhook-lambda-échantillon"
  • Description = "Reçoit l'événement webHook FILE.UPLOADED et stocke l'événement dans DynamoDB"
  • Runtime = "Node.js"
  • Code entry type = "Télécharger un fichier .ZIP"
  • Function package = Parcourir et sélectionner box-node-rekognition-webhook-lambda-sample.zip
  • Variables d'environnement:
BOX_AWS_ACCESS_KEY_ID = <AWS_ACCESS_KEY_ID>
BOX_AWS_SECRET_ACCESS_KEY = <AWS_SECRET_ACCESS_KEY>
BOX_AWS_REGION = <AWS_REGION>
BOX_EVENT_TABLE_NAME = box_file_uploaded
BOX_WEBHOOK_PRIMARY_SIGNATURE_KEY = <VOTRE_WEBHOOK_PRIMARY_KEY>
BOX_WEBHOOK_SECONDARY_SIGNATURE_KEY = <VOTRE_WEBHOOK_SECONDARY_KEY>
  • Handler = "index.handler". Cela définit le point d'entrée à la fonction handler () du fichier index.js
  • Role = "Créer un nouveau rôle à partir du modèle"
  • Nom du rôle = "box-node-rekognition-webhook-lambda-sample-role"
  • Modèles de politique = laissez vide
  • Laissez tous les paramètres avancés avec les valeurs par défaut.
  • Appuyez sur Suivant

6. Appuyez sur "Créer une fonction"

Étape 6: Créer un webhook Box pour appeler la fonction Lambda

Ensuite, vous devrez créer un webhook sur votre dossier Box pour appeler la fonction Lambda.

Remarque: Voir Premiers pas avec Webhooks V2 et Présentation de Webhooks V2 pour plus d'informations.

  1. Créez un dossier dans votre compte via l'application Web Box et enregistrez l'ID du dossier. Vous pouvez le trouver dans l'URL lorsque vous consultez le dossier dans l'application Web Box.
  2. Créez un webhook en utilisant curl pour appeler l' API webhook Box en utilisant l'ID de dossier de l'étape 1:
curl https://api.box.com/2.0/webhooks \ 
-H "Autorisation: Porteur <DEVELOPER_TOKEN>" \ 
-d '{"target": {"id": "<FOLDER_ID>", "type": " dossier "}," adresse ":" <YOUR_GATEWAY_API_URL> "," triggers ": [" FILE.UPLOADED "]} '; écho
  • Remarque: Vous devez utiliser l'API pour créer des webhooks V2 - il n'y a pas d'interface Web

3. Vous devriez obtenir une réponse confirmant que le webhook a été créé:

{"Id": "<WEBHOOK_ID>", "type": "webhook", "target": {"id": "<FOLDER_ID>", "type": "dossier"}, "created_by": <YOUR_USER_INFO> , "Created_at": "2016-11-10T15: 00: 10-08: 00", "address": "<VOTRE_GATEWAY_API_URL>", "triggers": ["FILE.UPLOADED"]}
  • Notez le <WEBHOOK_ID> au cas où vous devriez modifier ou supprimer le webhook

4. Le webhook appelle la fonction Lambda chaque fois qu'un fichier est téléchargé dans le dossier

  • Voir ici pour plus de détails sur la façon dont les webhooks Box gèrent les timeouts, les tentatives et les backoffs exponentiels

Remarque: Avant d'appeler les fonctions Lambda réelles, assurez-vous de vérifier que le webhook était valide en appelant notre fonction validateWebhookMessage () pratique dans le SDK Box Node.

Étape 7: Créer la fonction Lambda de Rekognition

Ensuite, vous devez créer une fonction Lambda qui reçoit l'événement de flux de données Dynamo DB représentant l'événement webHook FILE.UPLOADED à partir de Box. Chaque fois qu'un événement se produit, utilisez le paramètre file_id dans le cas où le contenu du fichier image est lu dans Box. Ce contenu est donné en entrée au service AWS Rekognition. Le service Rekognition génère des étiquettes avec un pourcentage de confiance. Les étiquettes et les valeurs sont stockées en tant que métadonnées du fichier image dans Box.

  1. Connectez-vous à AWS Management Console et accédez à la console de gestion Lambda
  2. Appuyez sur "Créer une fonction Lambda"
  • Choisissez le plan "Blank Function"

3. Configurez un déclencheur pour la fonction Lambda en cliquant dans la zone grisée

  • Choisissez DynamoDB comme déclencheur
  • Sélectionnez la table DynamoDB 'box_file_uploaded' dans la liste déroulante.
  • Taille du lot 1.
  • Position de départ comme dernière.
  • Cochez la case Activer le déclencheur.
  • Cliquez sur Suivant

4. Créez le package de déploiement pour la fonction Lambda

  • Exécutez l'installation npm pour installer le SDK de nœud de boîte et le SDK AWS Node.
  • Exécutez npm exécutez zip pour créer box-node-rekognition-metadata-sample.zip
  • Le fichier zip inclut l'exemple de code dans index.js, le SDK Box Node et le SDK AWS Node.

5. Configurez la fonction Lambda

  • Name = "box-node-rekognition-métadonnées-échantillon"
  • Description = "Démontre la connexion d'un webhook Box à une fonction AWS Lambda"
  • Runtime = "Node.js"
  • Code entry type = "Télécharger un fichier .ZIP"
  • Function package = Parcourir et sélectionner box-node-rekognition-metadata-sample.zip
  • Variables d'environnement:
BOX_AWS_ACCESS_KEY_ID = <AWS_ACCESS_KEY_ID> 
BOX_AWS_SECRET_ACCESS_KEY = <AWS_SECRET_ACCESS_KEY> 
BOX_AWS_REGION = <AWS_REGION> 
BOX_EVENT_TABLE_NAME = box_file_uploaded 
BOX_ENTERPRISE_ID = <YOUR_BOX_ENTERPRISE_ID> 
BOX_CLIENT_ID = <YOUR_APP_CLIENT_ID> 
BOX_CLIENT_SECRET = <YOUR_APP_CLIENT_SECRET> 
BOX_PUBLIC_KEY_ID = <YOUR_APP_PUBLIC_KEY_ID> 
BOX_PRIVATE_KEY_PASSPHRASE = <YOUR_APP_PRIVATE_KEY_PASSPHRASE>
  • Handler = "index.handler". Cela définit le point d'entrée à la fonction handler () du fichier index.js
  • Role = "Créer un nouveau rôle à partir du modèle"
  • Nom du rôle = "box-node-rekognition-metadata-sample-role"
  • Modèles de politique = laissez vide
  • Laissez tous les paramètres avancés avec les valeurs par défaut
  • Cliquez sur Suivant"

6. Cliquez sur "Créer une fonction"

Étape 8: Testez

  1. Connectez-vous à box.com en utilisant les informations d'identification que vous avez utilisées pour créer votre application Box.
  2. Télécharger un fichier image dans le dossier dans lequel le webhook est activé.
  3. La fonction Lambda webhook doit recevoir l'événement et stocker l'événement dans DynamoDB.
  • Un nouvel élément avec le nom de fichier est créé dans la table 'box_file_uploaded'.
  • Si des erreurs, les journaux fournira plus de détails.
  1. La fonction Rekognition Lambda est déclenchée si l'élément est ajouté à la table 'box_file_uploaded'.
  2. Une fois la fonction Lambda réussie, le fichier image dans Box est mis à jour avec les étiquettes générées en sortie de Rekognition et stockées en tant que métadonnées.
  • Cliquez sur le fichier image pour prévisualiser le fichier.
  • Cliquez sur "Info". La section "CUSTOM METADATA" est mise à jour avec les étiquettes identifiées et leur pourcentage de confiance correspondant.

Terminé! Maintenant, chaque image téléchargée dans votre dossier Box recevra le marquage automatique des images appliqué en tant que métadonnées de fichier. Vous pouvez ensuite utiliser ces métadonnées dans les résultats de recherche ou les afficher dans l'interface utilisateur de votre application.

Liens utiles:

Docs Amazon

Box

Webhookv2

Remerciements :

Je tiens à remercier Box pour son tutoriel dont je me suis inspiré pour vous permettre de connaître les bases de l'API Rekognition. Je vous conseille, si vous cherchez à approfondir vos connaissances sur le sujet, à suivre les différents tutoriels proposés par leur société et sur la doc Amazon.

Je tiens aussi à remercier Wikipédia qui m’a permis de vous définir précisément ce qu'est une API.

Laisser un commentaire

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