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.
Amazon Rekognition Video kann Personen oder relevante Objekte in einem Streaming-Video erkennen und Sie benachrichtigen, wenn sie erkannt werden. Wenn Sie einen Stromprozessor zur Labelerkennung erstellen, wählen Sie aus, welche Labels Amazon Rekognition Video erkennen soll. Das können Personen, Pakete und Haustiere sein, oder Personen, Pakete und Haustiere. Wählen Sie nur die spezifischen Label aus, die Sie erkennen möchten. Auf diese Weise erstellen nur die relevanten Label Benachrichtigungen. Sie können Optionen konfigurieren, um festzulegen, wann Videoinformationen gespeichert werden sollen, und dann weitere Verarbeitungsschritte auf der Grundlage der im Frame erkannten Label durchführen.
Nachdem Sie Ihre Ressourcen eingerichtet haben, gehen Sie wie folgt vor, um Label in einem Streaming-Video zu erkennen:
Erstellen Sie den Stromprozessor
Starten Sie den Stromprozessor
Wenn ein Objekt von Interesse erkannt wird, erhalten Sie eine Amazon-SNS-Benachrichtigung für das erste Auftreten jedes Objekts von Interesse.
Der Stromprozessor stoppt, wenn die unter
MaxDurationInSeconds
angegebene Zeit abgelaufen ist.Sie erhalten eine abschließende Amazon-SNS-Benachrichtigung mit einer Zusammenfassung des Ereignisses.
Amazon Rekognition Video veröffentlicht eine detaillierte Sitzungszusammenfassung in Ihrem S3-Bucket.
Themen
Erstellen des Amazon-Rekognition-Video-Stromprozessors zur Labelerkennung
Bevor Sie ein Streaming-Video analysieren können, erstellen Sie einen Amazon Rekognition Video Video-Stream-Prozessor () CreateStreamProcessor.
Wenn Sie einen Stromprozessor erstellen möchten, der Labels von Interesse und Personen erkennt, geben Sie als Eingabe einen Kinesis-Videostrom (Input
), Amazon-S3-Bucket-Informationen (Output
) und einen Amazon-SNS-Themen-ARN (StreamProcessorNotificationChannel
) ein. Sie können auch eine KMS-Schlüssel-ID angeben, um die an Ihren S3-Bucket gesendeten Daten zu verschlüsseln. Sie geben an, was Sie in Settings
erkennen möchten, z. B. Personen, Pakete und Personen oder Haustiere, Personen und Pakete. Sie können auch angeben, wo im Frame Amazon Rekognition mit RegionsOfInterest
überwachen soll. Im Folgenden sehen Sie ein JSON-Beispiel für die Anforderung von CreateStreamProcessor
.
{
"DataSharingPreference": { "OptIn":TRUE
},
"Input": {
"KinesisVideoStream": {
"Arn": "arn:aws:kinesisvideo:us-east-1:nnnnnnnnnnnn:stream/muh_video_stream/nnnnnnnnnnnnn"
}
},
"KmsKeyId": "muhkey",
"Name": "muh-default_stream_processor",
"Output": {
"S3Destination": {
"Bucket": "s3bucket",
"KeyPrefix": "s3prefix"
}
},
"NotificationChannel": {
"SNSTopicArn": "arn:aws:sns:us-east-2:nnnnnnnnnnnn:MyTopic"
},
"RoleArn": "arn:aws:iam::nnnnnnnnn:role/Admin",
"Settings": {
"ConnectedHome": {
"Labels": [
"PET"
]
"MinConfidence": 80
}
},
"RegionsOfInterest": [
{
"BoundingBox": {
"Top": 0.11,
"Left": 0.22,
"Width": 0.33,
"Height": 0.44
}
},
{
"Polygon": [
{
"X": 0.11,
"Y": 0.11
},
{
"X": 0.22,
"Y": 0.22
},
{
"X": 0.33,
"Y": 0.33
}
]
}
]
}
Beachten Sie, dass Sie den MinConfidence
-Wert ändern können, wenn Sie den ConnectedHomeSettings
für den Stromprozessor angeben. MinConfidence
ist ein numerischer Wert im Bereich von 0 bis 100, der angibt, wie sicher der Algorithmus in Bezug auf seine Vorhersagen ist. Beispielsweise bedeutet eine Benachrichtigung für person
mit einem Zuverlässigkeitswert von 90, dass der Algorithmus absolut sicher ist, dass die Person im Video anwesend ist. Ein Zuverlässigkeitswert von 10 gibt an, dass es sich möglicherweise um eine Person handelt. Sie können MinConfidence
auf einen gewünschten Wert Ihrer Wahl zwischen 0 und 100 festlegen, je nachdem, wie oft Sie benachrichtigt werden möchten. Wenn Sie beispielsweise nur benachrichtigt werden möchten, wenn Rekognition absolut sicher ist, dass sich ein Paket im Videoframe befindet, können Sie MinConfidence
auf 90 setzen.
Standardmäßig ist MinConfidence
auf „50“ gesetzt. Wenn Sie den Algorithmus für eine höhere Genauigkeit optimieren möchten, können Sie MinConfidence
auf einen Wert über 50 einstellen. Sie erhalten dann weniger Benachrichtigungen, aber jede Benachrichtigung ist zuverlässiger. Wenn Sie den Algorithmus für einen höheren Erinnerungswert optimieren möchten, können Sie MinConfidence
auf einen Wert unter 50 einstellen, um mehr Benachrichtigungen zu erhalten.
Starten des Amazon-Rekognition-Video-Stromprozessors zur Labelerkennung
Sie beginnen die Analyse des Streaming-Videos, indem Sie StartStreamProcessor mit dem Streaming-Prozessor-Namen aufrufen, den Sie in CreateStreamProcessor
festgelegt haben. Wenn Sie die StartStreamProcessor
-Operation auf einem Stromprozessor zur Labelerkennung ausführen, geben Sie Start- und Stoppinformationen ein, um die Verarbeitungszeit zu bestimmen.
Wenn Sie den Stromprozessor starten, ändert sich der Status des Label-Erkennungs-Stromprozessors auf folgende Weise:
Wenn Sie
StartStreamProcessor
aufrufen, wechselt der Status des Stromprozessors für die Labelerkennung vonSTOPPED
oderFAILED
zuSTARTING
.Solange der Stromprozessor für die Labelerkennung läuft, bleibt er in
STARTING
aktiviert.Wenn der Labelerkennungs-Stromprozessor nicht mehr läuft, wird der Status entweder
STOPPED
oderFAILED
.
Der StartSelector
gibt den Startpunkt im Kinesis-Stream an, an dem die Verarbeitung gestartet werden soll. Sie können den KVS-Producer-Zeitstempel oder die KVS-Fragmentnummer verwenden. Weitere Informationen finden Sie unter Fragment.
Anmerkung
Wenn Sie den KVS-Producer-Zeitstempel verwenden, müssen Sie die Zeit in Millisekunden eingeben.
Der StopSelector
gibt an, wann die Verarbeitung des Streams beendet werden soll. Sie können eine Höchstdauer für die Verarbeitung des Videos angeben. Standardmäßig ist eine Höchstdauer von 10 Sekunden angegeben. Beachten Sie, dass die tatsächliche Verarbeitungszeit je nach Größe der einzelnen KVS-Fragmente etwas länger als die maximale Dauer sein kann. Wenn die maximale Dauer am Ende eines Fragments erreicht oder überschritten wurde, stoppt die Verarbeitungszeit.
Im Folgenden sehen Sie ein JSON-Beispiel für die Anforderung von StartStreamProcessor
.
{
"Name": "string",
"StartSelector": {
"KVSStreamStartSelector": {
"KVSProducerTimestamp": 1655930623123
},
"StopSelector": {
"MaxDurationInSeconds": 11
}
}
}
Wenn der Stromprozessor erfolgreich startet, wird eine HTTP-200-Antwort zurückgegeben. Ein leerer JSON-Text ist enthalten.
Analysieren der Ergebnisse der Labelerkennung
Es gibt drei Möglichkeiten, wie Amazon Rekognition Video Benachrichtigungen von einem Stream-Prozessor zur Etikettenerkennung veröffentlicht: Amazon SNS SNS-Benachrichtigungen für Objekterkennungsereignisse, eine Amazon SNS-Benachrichtigung für eine end-of-session Zusammenfassung und einen detaillierten Amazon S3-Bucket-Bericht.
Amazon-SNS-Benachrichtigungen für Objekterkennungsereignisse.
Wenn Label im Videostrom erkannt werden, erhalten Sie Amazon-SNS-Benachrichtigungen für Objekterkennungsereignisse. Amazon Rekognition veröffentlicht eine Benachrichtigung, wenn ein Objekt oder eine Person von Interesse zum ersten Mal im Videostrom entdeckt wird. Benachrichtigungen enthalten Informationen wie die Art des erkannten Labels, die Zuverlässigkeit und einen Link zum Hero-Bild. Sie enthalten auch ein zugeschnittenes Bild der erkannten Person oder des Objekts und einen Erkennungszeitstempel. Die Benachrichtigung hat das folgende Format:
{"Subject": "Rekognition Stream Processing Event", "Message": { "inputInformation": { "kinesisVideo": { "streamArn": string } }, "eventNamespace": { "type": "LABEL_DETECTED" }, "labels": [{ "id": string, "name": "PERSON" | "PET" | "PACKAGE", "frameImageUri": string, "croppedImageUri": string, "videoMapping": { "kinesisVideoMapping": { "fragmentNumber": string, "serverTimestamp": number, "producerTimestamp": number, "frameOffsetMillis": number } }, "boundingBox": { "left": number, "top": number, "height": number, "width": number } }], "eventId": string, "tags": { [string]: string }, "sessionId": string, "startStreamProcessorRequest": object } }
end-of-sessionZusammenfassung von Amazon SNS.
Sie erhalten auch eine Amazon-SNS-Benachrichtigung, wenn die Stream-Verarbeitungssitzung abgeschlossen ist. In dieser Benachrichtigung sind die Metadaten für die Sitzung aufgeführt. Dazu gehören Details wie die Dauer des Streams, der verarbeitet wurde. Die Benachrichtigung hat das folgende Format:
{"Subject": "Rekognition Stream Processing Event", "Message": { "inputInformation": { "kinesisVideo": { "streamArn": string, "processedVideoDurationMillis": number } }, "eventNamespace": { "type": "STREAM_PROCESSING_COMPLETE" }, "streamProcessingResults": { "message": string }, "eventId": string, "tags": { [string]: string }, "sessionId": string, "startStreamProcessorRequest": object } }
Amazon-S3-Bucket-Bericht.
Amazon Rekognition Video veröffentlicht die detaillierten Schlussfolgerungsergebnisse eines Videoanalysevorgangs in dem Amazon-S3-Bucket, der in der
CreateStreamProcessor
-Operation angegeben wird. Zu diesen Ergebnissen gehören auch Bildrahmen, in denen ein Objekt von Interesse oder eine Person zum ersten Mal erkannt wurde.Die Frames sind in S3 im folgenden Pfad verfügbar: ObjectKeyPrefix//StreamProcessorNameSessionId/
service_determined_unique_path
. In diesem Pfad LabelKeyPrefixbefindet sich ein vom Kunden bereitgestelltes optionales Argument, StreamProcessorNamedas der Name der Stream-Prozessor-Ressource und eine eindeutige ID für die Stream-Verarbeitungssitzung SessionIdist. Ersetzen Sie diese entsprechend Ihrer Situation.