Analyse d'une vidéo à l'aide du AWS Command Line Interface - Amazon Rekognition

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Analyse d'une vidéo à l'aide du AWS Command Line Interface

Vous pouvez utiliser le AWS Command Line Interface (AWS CLI) pour appeler les opérations Amazon Rekognition Video. Le modèle de conception est identique à celui de l'utilisation de l'API Amazon Rekognition Video avec le AWS SDK for Java ou d'autres SDK AWS. Pour plus d’informations, consultez Présentation de l’API Vidéo Amazon Rekognition. Les procédures suivantes montrent comment utiliser le AWS CLI pour détecter des étiquettes dans une vidéo.

Vous commencez à détecter des étiquettes dans une vidéo en appelant start-label-detection. Lorsque Amazon Rekognition a terminé l’analyse de la vidéo, le statut d’achèvement est envoyé à la rubrique Amazon SNS spécifiée dans le paramètre --notification-channel de start-label-detection. Vous pouvez obtenir le statut d’achèvement en abonnant une file d’attente Amazon Simple Queue Service (Amazon SQS) à la rubrique Amazon SNS. Vous pouvez ensuite interroger receive-message pour obtenir le statut d’achèvement à partir de la file d’attente Amazon SQS.

Lorsque vous appelez StartLabelDetection, vous pouvez filtrer vos résultats en fournissant des arguments de filtration aux arguments LabelsInclusionFilter et/ou LabelsExclusionFilter. Pour plus d’informations, consultez Détection des étiquettes dans une vidéo.

La notification de statut d’achèvement est une structure JSON dans la réponse receive-message. Vous devez extraire le code JSON de la réponse. Pour plus d’informations sur le code JSON du statut d’achèvement, consultez Référence : Notification des résultats d’une analyse vidéo. Si la valeur du champ Status du code JSON du statut d’achèvement est SUCCEEDED, vous pouvez obtenir les résultats de la demande d’analyse vidéo en appelant get-label-detection. Lorsque vous appelez GetLabelDetection, vous pouvez trier et agréger les résultats renvoyés à l’aide SortBy et AggregateBy.

Les procédures suivantes n’incluent pas le code requis pour interroger la file d’attente Amazon SQS. Elles n’incluent également pas le code requis pour analyser le code JSON renvoyé à partir de la file d’attente Amazon SQS. Pour obtenir un exemple en Java, consultez Analyse d’une vidéo stockée dans un compartiment Amazon S3 avec Java or Python (SDK).

Prérequis

Pour exécuter cette procédure, vous devez avoir AWS CLI installé le. Pour plus d’informations, consultez Premiers pas avec Amazon Rekognition. Le compte AWS que vous utilisez doit avoir les autorisations d’accès à l’API Amazon Rekognition. Pour plus d’informations, Actions définies par Amazon Rekognition.

Pour configurer Vidéo Amazon Rekognition et télécharger une vidéo
  1. Configurez l’accès des utilisateurs à Vidéo Amazon Rekognition et configurez l’accès de Vidéo Amazon Rekognition à Amazon SNS. Pour plus d’informations, consultez Configuration de Vidéo Amazon Rekognition.

  2. Chargez un fichier vidéo au format MOV ou MPEG-4 dans votre compartiment S3. Pendant le développement et les tests, nous suggérons d’utiliser des vidéos courtes de moins de 30 secondes.

    Pour en savoir plus, consultez Chargement d’objets dans Amazon S3 dans le Guide de l’utilisateur Amazon Simple Storage Service.

Pour détecter des étiquettes dans une vidéo
  1. Exécutez la AWS CLI commande suivante pour commencer à détecter les étiquettes dans une vidéo.

    aws rekognition start-label-detection --video '{"S3Object":{"Bucket":"bucket-name","Name":"video-name"}}' \ --notification-channel '{"SNSTopicArn":"TopicARN","RoleArn":"RoleARN"}' \ --region region-name \ --features GENERAL_LABELS \ --profile profile-name \ --settings "{"GeneralLabels":{"LabelInclusionFilters":["Car"]}}

    Mettez à jour les valeurs suivantes :

    • Remplacez bucketname et videofile par le nom du compartiment Amazon S3 et le nom du fichier que vous avez spécifiés à l’étape 2.

    • Remplacez us-east-1 par la région AWS que vous utilisez.

    • Remplacez la valeur de profile_name dans la ligne qui crée la session de Rekognition par le nom de votre profil de développeur.

    • Remplacez TopicARN par l’ARN de la rubrique Amazon SNS que vous avez créée à l’étape 3 de Configuration de Vidéo Amazon Rekognition.

    • Remplacez RoleARN par l’ARN de la fonction du service que vous avez créé à l’étape 7 de Configuration de Vidéo Amazon Rekognition.

    • Si nécessaire, vous pouvez spécifier le endpoint-url. La CLI AWS doit déterminer automatiquement l’URL du point de terminaison approprié en fonction de la région fournie. Toutefois, si vous utilisez un point de terminaison de votre VPC privé, il peut être nécessaire de spécifier le endpoint-url. La ressource AWS Service Endpoints répertorie la syntaxe permettant de spécifier les URL des points de terminaison ainsi que les noms et codes de chaque région.

    • Vous pouvez également inclure des critères de filtrage dans le réglage des paramètres. Par exemple, vous pouvez utiliser un LabelsInclusionFilter ou un LabelsExclusionFilter à côté d’une liste de valeurs souhaitées.

    Si vous accédez à la CLI sur un périphérique Windows, utilisez des guillemets doubles au lieu de guillemets simples et évitez les guillemets doubles internes par une barre oblique inverse (c’est-à-dire \) pour corriger les erreurs d’analyse que vous pourriez rencontrer. Pour un exemple, voir ci-dessous :

    aws rekognition start-label-detection --video "{\"S3Object\":{\"Bucket\":\"bucket-name\",\"Name\":\"video-name\"}}" --notification-channel "{\"SNSTopicArn\":\"TopicARN\",\"RoleArn\":\"RoleARN\"}" \ --region us-east-1 --features GENERAL_LABELS --settings "{\"GeneralLabels\":{\"LabelInclusionFilters\":[\"Car\"]}}" --profile profile-name
  2. Notez la valeur de JobId dans la réponse. La réponse est semblable à l’exemple JSON suivant.

    { "JobId": "547089ce5b9a8a0e7831afa655f42e5d7b5c838553f1a584bf350ennnnnnnnnn" }
  3. Écrivez le code pour interroger la file d’attente Amazon SQS sur le statut d’achèvement JSON (à l’aide de receive-message).

  4. Écrivez le code pour extraire le champ Status du code JSON de statut d’achèvement.

  5. Si la valeur de Status estSUCCEEDED, exécutez la AWS CLI commande suivante pour afficher les résultats de détection des étiquettes.

    aws rekognition get-label-detection --job-id JobId \ --region us-east-1 --sort-by TIMESTAMP aggregate-by TIMESTAMPS

    Mettez à jour les valeurs suivantes :

    • Remplacez JobId par l’identifiant de tâche que vous avez noté à l’étape 2.

    • Remplacez Endpoint et us-east-1 par le point de terminaison et la région AWS que vous utilisez.

    Les résultats sont semblables à l’exemple JSON suivant :

    { "Labels": [ { "Timestamp": 0, "Label": { "Confidence": 99.03720092773438, "Name": "Speech" } }, { "Timestamp": 0, "Label": { "Confidence": 71.6698989868164, "Name": "Pumpkin" } }, { "Timestamp": 0, "Label": { "Confidence": 71.6698989868164, "Name": "Squash" } }, { "Timestamp": 0, "Label": { "Confidence": 71.6698989868164, "Name": "Vegetable" } }, .......