Analysieren eines Videos mit dem AWS Command Line Interface - Amazon Rekognition

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Analysieren eines Videos mit dem AWS Command Line Interface

Sie können die AWS Command Line Interface (AWS CLI) verwenden, um Amazon Rekognition Video Video-Operationen aufzurufen. Das Entwurfsmuster ist dasselbe wie bei der Verwendung von Amazon Rekognition Video API mit dem AWS SDK for Java oder anderen. AWS SDKs Weitere Informationen finden Sie unter Überblick über Amazon Rekognition Video API. Die folgenden Verfahren zeigen, wie Sie mit dem AWS CLI Labels in einem Video erkennen können.

Sie starten, Labels in einem Video zu erkennen, indem Sie start-label-detection aufrufen. Wenn Amazon Rekognition die Analyse des Videos abgeschlossen hat, wird der Abschlussstatus an das SNS Amazon-Thema gesendet, das im --notification-channel Parameter von angegeben ist. start-label-detection Sie können den Abschlussstatus abrufen, indem Sie eine Amazon Simple Queue Service (AmazonSQS) -Warteschlange für das SNS Amazon-Thema abonnieren. Anschließend fragen Sie die Empfangsnachricht ab, um den Abschlussstatus aus der SQS Amazon-Warteschlange abzurufen.

Beim Aufrufen von StartLabelDetection können Sie Ihre Ergebnisse filtern, indem Sie Filterargumente für die Argumente LabelsInclusionFilter und/oder LabelsExclusionFilter angeben. Weitere Informationen finden Sie unter Erkennen von Labels in einem Video.

Die Benachrichtigung über den Abschlussstatus ist eine JSON Struktur innerhalb der receive-message Antwort. Sie müssen das JSON aus der Antwort extrahieren. Informationen zum Abschlussstatus finden Sie JSON unterReferenz: Videoanalyse-Ergebnisbenachrichtigung. Wenn der Wert des Status Felds mit dem Status „Abgeschlossen“ JSON lautetSUCCEEDED, können Sie die Ergebnisse der Videoanalyseanfrage telefonisch abrufenget-label-detection. Beim Aufrufen von GetLabelDetection können Sie die zurückgegebenen Ergebnisse mithilfe der Argumente SortBy und AggregateBy sortieren und aggregieren.

Die folgenden Verfahren enthalten keinen Code zum Abfragen der SQS Amazon-Warteschlange. Außerdem enthalten sie keinen Code zum Analysieren der zurückgegebenen Daten aus der JSON SQS Amazon-Warteschlange. Ein Beispiel in Java finden Sie unter Analysieren eines in einem Amazon S3 S3-Bucket gespeicherten Videos mit Java oder Python (SDK).

Voraussetzungen

Um dieses Verfahren ausführen zu können, müssen Sie das AWS CLI installiert haben. Weitere Informationen finden Sie unter Erste Schritte mit Amazon Rekognition. Das AWS Konto, das Sie verwenden, muss über Zugriffsberechtigungen für Amazon Rekognition API verfügen. Weitere Informationen finden Sie unter Von Amazon Rekognition definierte Aktionen.

Um Amazon Rekognition Video zu konfigurieren und ein Video hochzuladen
  1. Konfigurieren Sie den Benutzerzugriff auf Amazon Rekognition Video und konfigurieren Sie den Amazon Rekognition Video Video-Zugriff auf Amazon. SNS Weitere Informationen finden Sie unter Amazon Rekognition Video konfigurieren.

  2. Laden Sie eine Videodatei im Format MOV oder MPEG -4 in Ihren S3-Bucket hoch. Bei der Entwicklung und beim Testen empfehlen wir, kurze Videos mit einer Länge von maximal 30 Sekunden zu verwenden.

    Weitere Anleitungen finden Sie unter Upload eines Objekts in Amazon S3 im Benutzerhandbuch für Amazon Simple Storage Service.

Um Labels in einem Video zu erkennen
  1. Führen Sie den folgenden AWS CLI Befehl aus, um mit der Erkennung von Labels in einem Video zu beginnen.

    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"]}}

    Aktualisieren Sie die folgenden Werte:

    • Ändern Sie bucketname und videofile in den Amazon-S3-Bucket-Namen und den Dateinamen, die Sie in Schritt 2 angegeben haben.

    • Wechseln Sie us-east-1 zu der AWS Region, die Sie verwenden.

    • Ersetzen Sie den Wert von profile_name in der Zeile, die die Rekognition-Sitzung erstellt, durch den Namen Ihres Entwicklerprofils.

    • Wechseln Sie TopicARN zu dem ARN SNS Amazon-Thema, das Sie in Schritt 3 von erstellt habenAmazon Rekognition Video konfigurieren.

    • Wechseln Sie RoleARN zu ARN der IAM Servicerolle, die Sie in Schritt 7 von erstellt habenAmazon Rekognition Video konfigurieren.

    • Falls erforderlich, können Sie die endpoint-url angeben. Der AWS CLI sollte anhand der angegebenen Region automatisch den richtigen Endpunkt URL ermitteln. Wenn Sie jedoch einen privaten Endpunkt verwendenVPC, müssen Sie möglicherweise den angebenendpoint-url. In der Ressource AWSService Endpoints sind die Syntax für die Angabe von Endpunkt-URLs sowie die Namen und Codes für jede Region aufgeführt.

    • Sie können auch Filterkriterien in den Einstellungsparameter aufnehmen. Sie können beispielsweise einen LabelsInclusionFilter oder einen LabelsExclusionFilter zusammen mit einer Liste gewünschter Werte verwenden.

    Wenn Sie CLI auf einem Windows-Gerät auf die zugreifen, verwenden Sie doppelte Anführungszeichen anstelle von einfachen Anführungszeichen und maskieren Sie die inneren doppelten Anführungszeichen durch einen umgekehrten Schrägstrich (d. h.\), um eventuell auftretende Parserfehler zu beheben. Ein Beispiel finden Sie unten:

    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. Notieren Sie den JobId-Wert in der Antwort. Die Antwort sieht dem folgenden Beispiel ähnlich. JSON

    { "JobId": "547089ce5b9a8a0e7831afa655f42e5d7b5c838553f1a584bf350ennnnnnnnnn" }
  3. Schreiben Sie Code, um die SQS Amazon-Warteschlange nach dem Abschlussstatus abzufragen JSON (mithilfe von receive-message).

  4. Schreiben Sie Code, um das Status Feld aus dem Abschlussstatus zu extrahieren. JSON

  5. Wenn der Wert von Status istSUCCEEDED, führen Sie den folgenden AWS CLI Befehl aus, um die Ergebnisse der Etikettenerkennung anzuzeigen.

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

    Aktualisieren Sie die folgenden Werte:

    • Ändern Sie JobId in die Auftrags-ID, die Sie in Schritt 2 notiert haben.

    • Wechseln Sie Endpoint us-east-1 zu dem AWS Endpunkt und der Region, die Sie verwenden.

    Die Ergebnisse sehen dem folgenden Beispiel ähnlichJSON:

    { "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" } }, .......