-Utiliser Amazon Rekognition (Image Analysis AI) Et créez une API d'identification des célébrités.
――Par exemple, préparez une image du célèbre acteur "Ken Watanabe" qui est fier du Japon dans le monde, et chargez-la dans l'IA créée cette fois.
«Nous présenterons brièvement les trois services utilisés cette fois. «Continuons avec l'idée de« s'y habituer plutôt que d'apprendre ».
—— Services et architectures dont les utilisateurs n'ont pas besoin de connaître le serveur. --Remarque: cela ne signifie pas que le serveur n'existe pas du tout. Le serveur est géré par AWS.
C'est un service qu'AWS prend en charge (en partie) de la gestion des opérations. ―― Le contenu et l'étendue de la gestion des opérations que vous prenez en charge varient en fonction du service, mais dans de nombreux cas, nous fournissons non seulement des «sauvegardes régulières», mais aussi «une mise à l'échelle automatique lorsque l'accès augmente». .. ――Lorsque le périmètre de la gestion des opérations est large et que les utilisateurs ne font presque aucun effort, on parle souvent de «service entièrement géré». ――Même s'il est "géré", il n'est pas toujours "sans serveur".
Accédez à AWS Management Console et connectez-vous avec vos informations utilisateur IAM.
https://console.aws.amazon.com/
** Informations supplémentaires de connexion ** This Dans cette pratique, nous partons du principe que la politique IAM de ** "AdministratorAccess" est donnée à l'utilisateur IAM qui met en œuvre l'application pratique **.
Si l'autorisation «AdministratorAccess» n'est pas accordée, une erreur telle que l'impossibilité de créer une ressource peut se produire dans la procédure suivante.
Dans ce cas, joignez une politique appropriée et réessayez. De plus, les paramètres IAM décrits sur le site suivant ont été très utiles. --Il a été confirmé que toutes les procédures pratiques peuvent être effectuées.
--Confirmez que le coin supérieur droit de l'écran est "Tokyo (Région)" et que le coin inférieur gauche de l'écran est "Japonais". --Si vous devez le changer, reportez-vous à la page suivante et effectuez le travail de commutation.
--Appuyez sur le nom du lieu en haut à droite de l'écran et sélectionnez "Asie Pacifique (Tokyo) ap-nord-est-1".
--Sur l'écran de la console de gestion, entrez "Lambda" dans la fenêtre de recherche et sélectionnez le "Lambda" affiché.
--Lorsque l'écran Lambda s'ouvre, cliquez sur le bouton "Créer une fonction".
--Sur l'écran de création de fonction, sélectionnez et entrez ce qui suit. --Sélectionnez "Créer à partir de zéro" --Entrez "<< Nom >> -rekognition-handson" dans "Nom de la fonction"
Exemple: higuchi-rekognition-handson --Sélectionnez "Python 3.8" pour "Runtime" --Ouvrez "Autorisations" - "Modifier le rôle d'exécution par défaut" et sélectionnez "Créer un nouveau rôle avec des autorisations Lambda de base"
Après avoir terminé les paramètres ci-dessus, cliquez sur le bouton "Créer une fonction" en bas à droite de l'écran.
La fonction Lambda est créée.
«J'écrirai le code qui fonctionne désormais. --Faites défiler jusqu'à "Code de fonction". C'est l'éditeur qui décrit la logique.
―― Tout d'abord, écrivons du code Python simple pour apprendre comment fonctionne Lambda.
lambda_function.py
def lambda_handler(event, context):
a = 'Pen'
b = 'Pineapple'
c = 'Apple'
x = a + b + c + a
return {
'statusCode': 200,
'body': x
}
--L'écran "Paramètres des événements de test" s'affiche. Après avoir défini les paramètres suivants, cliquez sur le bouton "Créer". --Sélectionnez "Créer un nouvel événement de test". --Entrez "SimpleEvent" pour le nom de l'événement
--Cliquez sur "Test" en haut à droite.
--Lambda a été testé.
--Cliquez sur Détails pour développer les résultats de l'exécution de la fonction. ―― Ici, «body» est «PenPineappleApplePen», qui est le résultat attendu.
Les journaux détaillés lors de l'exécution de Lambda peuvent être trouvés dans "CloudWatch Logs". --Cliquez sur "Surveillance" -> "Afficher les journaux CloudWatch" pour passer à la page "CloudWatch Logs".
Vous pouvez vérifier le journal en sélectionnant "20xx / xx / xx [$ LATEST] xxxxxx" sur l'écran "Log Stream". Veuillez l'utiliser au moment du retour. --Si vous définissez Logger etc., le journal sera généré ici.
--Sélectionnez «Paramètres» en haut de l'écran Lambda
--Sélectionnez "Modifier" dans "Paramètres de base" au bas de l'écran "Paramètres".
Allez au bas de l'écran "Modifier les préférences" et cliquez sur "Afficher les rôles xxx dans la console IAM".
Dans un onglet séparé, l'écran du rôle IAM s'ouvre. --Cliquez sur le bouton "Joindre la politique".
--Entrez «Rekognition» dans la fenêtre de recherche, vérifiez la politique «Amazon RekognitionReadOnlyAccess» et cliquez sur le bouton «Joindre la politique».
--Sur l'écran de la console IAM, assurez-vous que «AmazonRekognitionReadOnlyAccess» est associé.
Vous avez maintenant autorisé Lambda à appeler Rekognition.
Retourne à l'écran Préférences de modification Lambda.
Modifiez le délai d'expiration à "10 secondes".
Après les paramètres ci-dessus, cliquez sur le bouton "Enregistrer".
lambda_function.py
import boto3
import base64
import logging
import traceback
#paramètres de l'enregistreur
logger = logging.getLogger()
logger.setLevel(logging.INFO)
#Créer une instance de reconnaissance
rekognition = boto3.client('rekognition')
# lambda_définition de la fonction de gestionnaire (logique principale)
def lambda_handler(event, context):
logger.info(f'Received event = {event}')
#Étant donné que les données binaires sont reçues au format codé Base64, elles sont décodées en octets de type.
received_body = base64.b64decode(event['body-json'])
#Exclut les informations de fichier fournies par AWS (chaîne de caractères d'octets)'\r\n'Informations sur le corps des fichiers téléchargés par le 4e et les suivants)
images = received_body.split(b'\r\n',4)
image = images[4]
#Transmettez les informations d'image au format Blob acquises à Rekognition pour identifier la célébrité
response = rekognition.recognize_celebrities(
Image={'Bytes': image}
)
logger.info(f'Rekognition response = {response}')
try:
#Extrayez la fiabilité du nom de la célébrité de la réponse Rekognition et répondez à l'appelant de l'API.
label = response['CelebrityFaces'][0]
name = label['Name']
conf = round(label['Face']['Confidence'])
output = f'He/She is {name} with {conf}% confidence.'
logger.info(f'API response = {output}')
return output
except IndexError as e:
#Si vous ne pouvez pas obtenir d'informations sur les célébrités grâce à la réponse de Rekognition, dites-leur d'utiliser une autre photo.
logger.info(f"Coudn't detect celebrities in the Photo. Exception = {e}")
logger.info(traceback.format_exc())
return "Couldn't detect celebrities in the uploaded photo. Please upload another photo."
--Première ligne ʻimport boto3`
response = rekognition.recognize_celebrities (Image = {'Bytes': image})
déclaration de retour
À partir de là, nous allons lier API Gateway et Lambda.
--Entrez "API" dans la fenêtre de recherche à partir de "Services" en haut de l'écran, et sélectionnez "API Gateway" comme candidat.
--Cliquez sur le bouton "Construire" de l'API REST.
--API sera développé par "ressources" x "méthodes".
Par exemple, "GET to / users" ou "POST to / users / 12345".
Tout d'abord, créez une ressource. Dans Actions, sélectionnez Créer une ressource.
--Entrez "Rekognition" dans le nom de la ressource et cliquez sur le bouton "Créer une ressource".
--Sélectionnez "POST" dans le menu déroulant et appuyez sur le bouton "Vérifier".
--Sélectionnez "Fonction Lambda" dans le type d'intégration, sélectionnez "<< Nom >> -rekognition-handson" créé précédemment dans la fonction Lambda, puis cliquez sur le bouton "Enregistrer".
--L'écran de confirmation "Ajout d'autorisations à la fonction Lambda" s'affiche. Cliquez sur le bouton "OK".
--Sélectionnez "Demande d'intégration".
--Dans l'élément "Content-Type", entrez multipart / form-data
et appuyez sur le bouton de contrôle.
--Sélectionnez "Paramètres" sur le côté gauche de l'écran, puis cliquez sur "Ajouter un type de média binaire" dans l'élément "Type de média Binyl" au bas de l'écran "Paramètres".
--Entrez multipart / form-data
et appuyez sur le bouton" Enregistrer les modifications ".
--Sélectionnez «Ressources» dans le volet gauche de l'écran, puis sélectionnez «Déployer l'API» dans «Actions» en haut de l'écran.
--Sur l'écran de déploiement de l'API, définissez les paramètres suivants et cliquez sur le bouton «Déployer».
--Dans le volet gauche de l'écran, sélectionnez "Stage" puis sélectionnez "dev" - "rekognition" - "POST". --L'URL de l'API créée comme "URL d'appel" s'affiche sur le côté droit de l'écran. Copiez-la.
**** API Gateway URL Paste ****
du code HTML ci-dessous, et enregistrez-la sous le nom de fichier "index.html".
--Un simple fichier HTML qui soumet simplement le fichier sélectionné à l'aide d'un formulaire.index.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Reconnaissance des célébrités IA pratique</title>
</head>
<body>
<p>La reconnaissance des célébrités est effectuée à l'aide d'Amazon Rekognition, une IA d'identification d'image!</p>
<form action="****Coller l'URL de la passerelle API****" enctype="multipart/form-data" method="POST">
<input type="file" name="Sélectionnez un fichier photo" />
<input type="submit" name="télécharger"/>
</form>
</body>
</html>
--Ouvrez le fichier Index.html créé dans votre navigateur. (Sélectionnez un fichier et faites-le glisser et déposez-le sur le navigateur pour l'ouvrir)
«Par exemple, essayons avec" Watabe of the World ", un comédien (?) Dont le Japon est fier dans le monde.
--Sélectionnez un fichier et appuyez sur le bouton "Envoyer" ... --` "Il / Elle est Ken Watabe avec une confiance à 100%." ʻEst affiché!
--Depuis l'écran API Gateway, sélectionnez le "<< Nom >> - api-handson" créé.
--Depuis l'écran API Gateway, sélectionnez le "<< Nom >> - api-handson" créé.
--Avec "Ressource" sélectionné dans le volet gauche de l'écran, sélectionnez "Supprimer l'API" dans l'action.
--L'écran de confirmation avant la suppression s'affiche. Après avoir saisi le nom de l'API, cliquez sur "Supprimer l'API".
--Sur l'écran de liste, sélectionnez "<< Nom >> -rekognition-handson".
--Sélectionnez «Surveillance» en haut de l'écran et appuyez sur le bouton «Afficher le journal CloudWatch».
Transitions vers l'écran CloudWatch Logs. Sélectionnez Supprimer le groupe de journaux des actions.
Un écran de confirmation s'affiche, cliquez donc sur le bouton "Supprimer".
Revenez à l'écran Lambda et ouvrez "Paramètres".
Appuyez sur "Modifier" dans "Paramètres de base" au bas de l'écran Lambda.
Allez au bas de l'écran "Modifier les préférences" et sélectionnez "Afficher les rôles xxx dans la console IAM".
Transitions vers l'écran des rôles IAM. Sélectionnez "Supprimer le rôle" en haut à droite de l'écran.
Un écran de confirmation apparaîtra, alors cliquez sur "Oui, supprimer".
--Revenez à l'écran Lambda et sélectionnez «Supprimer la fonction» dans «Actions» en haut de l'écran.
--Le message "Il a été supprimé avec succès." S'affiche.
Classification des services | Classification | Frais | Supplément |
---|---|---|---|
Frais de communication de données | Inn à AWS | 0.000USD/GB | |
〃 | Hors d'AWS | 0.114USD/GB | Premier 1 Go à 10 To |
CloudWatch | Collecte de journaux | 0.760USD/GB | |
〃 | Enregistrer le journal | 0.033USD/GB | |
Lambda | Demander la facturation | 0.20USD/1 million | |
〃 | Facturation du temps d'exécution | 0.0000002083USD /128MB,100 millisecondes |
|
API Gateway | REST API | 4.25USD/1 million | 303 premiers,3 millions d'appels reçus |
Rekognition | Image | 0.0013USD/1 image | Premier 1 million |