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.
Anmerkung
Hinweis zum Ende des Supports: Am 31. Oktober 2025 wird AWS den Support für Amazon Rekognition People Pathing einstellen. Nach dem 31. Oktober 2025 können Sie die Funktion Rekognition People Pathing nicht mehr nutzen. Weitere Informationen finden Sie in diesem Blogbeitrag.
Amazon Rekognition Video kann den Pfad von Personen in Videos nachverfolgen und Informationen bereitstellen wie:
Die Position von Personen im Videobild zu dem Zeitpunkt, an dem ihr Pfad nachverfolgt wird.
Gesichtsmarken wie z. B. die Position des linken Auges, wenn sie entdeckt werden.
Der Amazon-Rekognition-Video-Personen-Pfad in gespeicherten Videos ist eine asynchrone Operation. Rufen StartPersonTrackingSie an, um die Pfadverfolgung von Personen in Videos zu starten. Das Amazon-Simple-Notification-Service-Thema, zu dem Amazon Rekognition Video die Ergebnisse der Objekterkennung und den Abschlussstatus einer Videoanalyse-Operation veröffentlicht. Wenn die Videoanalyse erfolgreich ist, rufen Sie an, GetPersonTrackingum die Ergebnisse der Videoanalyse zu erhalten. Weitere Informationen zum Aufrufen von Amazon-Rekognition-Video-API-Operationen finden Sie unter Amazon-Rekognition-Video-Operationen aufrufen.
Die folgende Prozedur zeigt, wie man den Pfad von Personen durch ein Video, das in einem Amazon-S3-Bucket gespeichert ist, verfolgen kann. Das Beispiel erweitert den Code in Analysieren eines in einem Amazon S3-Bucket gespeicherten Videos mit Java oder Python (SDK), der eine Amazon-Simple-Queue-Service-Warteschlange verwendet, um den Abschlussstatus einer Videoanalyseanforderung zu erhalten.
So erkennen Sie Personen in einem Video, das in einem Amazon-S3-Bucket gespeichert ist (SDK)
Führen Sie Analysieren eines in einem Amazon S3-Bucket gespeicherten Videos mit Java oder Python (SDK) aus.
Fügen Sie den folgenden Code in der Klasse
VideoDetect
ein, die Sie in Schritt 1 erstellt haben.//Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. //PDX-License-Identifier: MIT-0 (For details, see https://github.com/awsdocs/amazon-rekognition-developer-guide/blob/master/LICENSE-SAMPLECODE.) //Persons======================================================================== private static void StartPersonDetection(String bucket, String video) throws Exception{ NotificationChannel channel= new NotificationChannel() .withSNSTopicArn(snsTopicArn) .withRoleArn(roleArn); StartPersonTrackingRequest req = new StartPersonTrackingRequest() .withVideo(new Video() .withS3Object(new S3Object() .withBucket(bucket) .withName(video))) .withNotificationChannel(channel); StartPersonTrackingResult startPersonDetectionResult = rek.startPersonTracking(req); startJobId=startPersonDetectionResult.getJobId(); } private static void GetPersonDetectionResults() throws Exception{ int maxResults=10; String paginationToken=null; GetPersonTrackingResult personTrackingResult=null; do{ if (personTrackingResult !=null){ paginationToken = personTrackingResult.getNextToken(); } personTrackingResult = rek.getPersonTracking(new GetPersonTrackingRequest() .withJobId(startJobId) .withNextToken(paginationToken) .withSortBy(PersonTrackingSortBy.TIMESTAMP) .withMaxResults(maxResults)); VideoMetadata videoMetaData=personTrackingResult.getVideoMetadata(); System.out.println("Format: " + videoMetaData.getFormat()); System.out.println("Codec: " + videoMetaData.getCodec()); System.out.println("Duration: " + videoMetaData.getDurationMillis()); System.out.println("FrameRate: " + videoMetaData.getFrameRate()); //Show persons, confidence and detection times List<PersonDetection> detectedPersons= personTrackingResult.getPersons(); for (PersonDetection detectedPerson: detectedPersons) { long seconds=detectedPerson.getTimestamp()/1000; System.out.print("Sec: " + Long.toString(seconds) + " "); System.out.println("Person Identifier: " + detectedPerson.getPerson().getIndex()); System.out.println(); } } while (personTrackingResult !=null && personTrackingResult.getNextToken() != null); }
Ersetzen Sie in der Funktion
main
die folgenden Zeilen:StartLabelDetection(amzn-s3-demo-bucket, video); if (GetSQSMessageSuccess()==true) GetLabelDetectionResults();
mit:
StartPersonDetection(amzn-s3-demo-bucket, video); if (GetSQSMessageSuccess()==true) GetPersonDetectionResults();
Anmerkung
Wenn Sie zusätzlich zu Analysieren eines in einem Amazon S3-Bucket gespeicherten Videos mit Java oder Python (SDK) bereits ein anderes Videobeispiel ausgeführt haben, ist der zu ersetzende Code möglicherweise anders.
Führen Sie den Code aus. Die eindeutigen Kennungen für getrackte Personen werden zusammen mit der Zeit angezeigt, in Sekunden, in denen der Pfad der Personen getrackt wurde.
GetPersonTracking Reaktion auf den Vorgang
GetPersonTracking
gibt ein Array, Persons
, von PersonDetection-Objekten zurück, die Details über die im Video erkannten Personen und den Zeitpunkt der Verfolgung der Pfade enthalten.
Sie können Persons
mithilfe der SortBy
-Eingabeparameter sortieren. Legen Sie TIMESTAMP
fest, um die Elemente nach dem Zeitpunkt zu sortieren, zu dem die Pfade der Personen im Video nachverfolgt werden. Geben Sie INDEX
an, um nach den Personen zu sortieren, die im Video getrackt werden. Innerhalb jeder Gruppe von Ergebnissen für eine Person werden die Elemente nach absteigender Zuverlässigkeit der Pfaderkennung sortiert. Standardmäßig wird das zurückgegebene Array Persons
nach TIMESTAMP
sortiert. Nachfolgend finden Sie ein Beispiel einer JSON-Antwort von GetPersonDetection
. Nach der Zeit sortierte Ergebnisse erfolgen in Millisekunden ab dem Beginn des Videos, in dem die Pfade der Personen aufgespürt werden. In der Antwort ist Folgendes zu beachten:
-
Personeninformationen – Das
PersonDetection
-Arrayelement enthält Informationen über die entdeckte Person. Zum Beispiel die Zeit, zu der die Person erkannt wurde (Timestamp
), die Position der Person im Videobild zum Zeitpunkt der Erkennung (BoundingBox
) und wie zuversichtlich Amazon Rekognition Video ist, dass die Person korrekt erkannt wurde (Confidence
).Gesichtsmerkmale werden nicht bei jedem Zeitstempel zurückgegeben, wenn der Pfad der Person getrackt wird. Außerdem kann es unter Umständen vorkommen, dass der Körper einer getrackten Person nicht sichtbar ist, so dass nur ihre Gesichtsposition zurückgegeben wird.
-
Seiteninformationen – Das Beispiel zeigt eine Seite mit Informationen der Personenerkennung. Sie können festlegen, wie viele Personenelemente zurückgegeben werden sollen, durch den Eingabeparameter
MaxResults
vonGetPersonTracking
. Wenn mehr Ergebnisse alsMaxResults
vorhanden sind, gibtGetPersonTracking
einen Token zurück (NextToken
), der dazu verwendet wird, die nächste Seite mit Ergebnissen zu erhalten. Weitere Informationen finden Sie unter Analyseergebnisse von Amazon Rekognition Video abrufen. -
Index – Eine eindeutige Kennung für die Erkennung der Person im gesamten Video.
-
Video-Informationen – Die Antwort enthält Informationen über das Videoformat (
VideoMetadata
) in jeder Seite mit Informationen, die vonGetPersonDetection
zurückgegeben werden.
{
"JobStatus": "SUCCEEDED",
"NextToken": "AcDymG0fSSoaI6+BBYpka5wVlqttysSPP8VvWcujMDluj1QpFo/vf+mrMoqBGk8eUEiFlllR6g==",
"Persons": [
{
"Person": {
"BoundingBox": {
"Height": 0.8787037134170532,
"Left": 0.00572916679084301,
"Top": 0.12129629403352737,
"Width": 0.21666666865348816
},
"Face": {
"BoundingBox": {
"Height": 0.20000000298023224,
"Left": 0.029999999329447746,
"Top": 0.2199999988079071,
"Width": 0.11249999701976776
},
"Confidence": 99.85971069335938,
"Landmarks": [
{
"Type": "eyeLeft",
"X": 0.06842322647571564,
"Y": 0.3010137975215912
},
{
"Type": "eyeRight",
"X": 0.10543643683195114,
"Y": 0.29697132110595703
},
{
"Type": "nose",
"X": 0.09569807350635529,
"Y": 0.33701086044311523
},
{
"Type": "mouthLeft",
"X": 0.0732642263174057,
"Y": 0.3757539987564087
},
{
"Type": "mouthRight",
"X": 0.10589495301246643,
"Y": 0.3722417950630188
}
],
"Pose": {
"Pitch": -0.5589138865470886,
"Roll": -5.1093974113464355,
"Yaw": 18.69594955444336
},
"Quality": {
"Brightness": 43.052337646484375,
"Sharpness": 99.68138885498047
}
},
"Index": 0
},
"Timestamp": 0
},
{
"Person": {
"BoundingBox": {
"Height": 0.9074074029922485,
"Left": 0.24791666865348816,
"Top": 0.09259258955717087,
"Width": 0.375
},
"Face": {
"BoundingBox": {
"Height": 0.23000000417232513,
"Left": 0.42500001192092896,
"Top": 0.16333332657814026,
"Width": 0.12937499582767487
},
"Confidence": 99.97504425048828,
"Landmarks": [
{
"Type": "eyeLeft",
"X": 0.46415066719055176,
"Y": 0.2572723925113678
},
{
"Type": "eyeRight",
"X": 0.5068183541297913,
"Y": 0.23705792427062988
},
{
"Type": "nose",
"X": 0.49765899777412415,
"Y": 0.28383663296699524
},
{
"Type": "mouthLeft",
"X": 0.487221896648407,
"Y": 0.3452930748462677
},
{
"Type": "mouthRight",
"X": 0.5142884850502014,
"Y": 0.33167609572410583
}
],
"Pose": {
"Pitch": 15.966927528381348,
"Roll": -15.547388076782227,
"Yaw": 11.34195613861084
},
"Quality": {
"Brightness": 44.80223083496094,
"Sharpness": 99.95819854736328
}
},
"Index": 1
},
"Timestamp": 0
}.....
],
"VideoMetadata": {
"Codec": "h264",
"DurationMillis": 67301,
"FileExtension": "mp4",
"Format": "QuickTime / MOV",
"FrameHeight": 1080,
"FrameRate": 29.970029830932617,
"FrameWidth": 1920
}
}