As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
nota
Aviso de fim do suporte: em 31 de outubro de 2025, a AWS interromperá o suporte para Trajetória de pessoas do Amazon Rekognition. Após 31 de outubro de 2025, você não poderá mais usar o recurso Trajetória de pessoas do Rekognition. Veja esta postagem em blog
O Amazon Rekognition Video pode criar um rastreamento do caminho que as pessoas percorrem nos vídeos e fornecer informações como:
A localização da pessoa no quadro do vídeo na hora em que o caminho foi rastreado.
Pontos de referência faciais, como a posição do olho esquerdo, quando detectados.
O caminho das pessoas do Amazon Rekognition Video nos vídeos armazenados é uma operação assíncrona. Para iniciar a trajetória das pessoas em videochamadas StartPersonTracking. O Amazon Rekognition Video publica o status de conclusão da análise de vídeo em um tópico do Amazon Simple Notification Service. Se a análise do vídeo for bem-sucedida, ligue GetPersonTrackingpara obter os resultados da análise do vídeo. Para obter mais informações sobre como chamar as operações da API Amazon Rekognition Video, consulte Chamando as operações de vídeo do Amazon Rekognition Video.
O procedimento a seguir mostra como rastrear o caminho das pessoas por meio de um vídeo armazenado em um bucket do Amazon S3. O exemplo expande o código em Análise de um vídeo armazenado em um bucket do Amazon S3 com Java ou Python (SDK) no qual usa uma fila do Amazon Simple Queue Service para obter o status de conclusão de uma solicitação de análise de vídeo.
Para detectar pessoas em um vídeo armazenado em um bucket (SDK) do Amazon S3
Execute Análise de um vídeo armazenado em um bucket do Amazon S3 com Java ou Python (SDK).
Adicione o código a seguir à classe
VideoDetect
criada por você na etapa 1.//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); }
Na função
main
, substitua as linhas:StartLabelDetection(amzn-s3-demo-bucket, video); if (GetSQSMessageSuccess()==true) GetLabelDetectionResults();
por:
StartPersonDetection(amzn-s3-demo-bucket, video); if (GetSQSMessageSuccess()==true) GetPersonDetectionResults();
nota
Se você já tiver executado um exemplo de vídeo diferente de Análise de um vídeo armazenado em um bucket do Amazon S3 com Java ou Python (SDK), o código a ser substituído poderá ser diferente.
Execute o código. Os identificadores exclusivos para pessoas rastreadas são mostrados ao longo do tempo, em segundos, em que os caminhos das pessoas foram rastreadas.
GetPersonTracking resposta da operação
GetPersonTracking
retorna uma matriz, Persons
, de objetos PersonDetection que contêm detalhes sobre essas pessoas detectadas em vídeo e quando seus caminhos foram rastreados.
Você pode classificar Persons
usando o parâmetro de entrada SortBy
. Especifique TIMESTAMP
para classificar os elementos pela hora em que os caminhos das pessoas são rastreados no vídeo. Especifique INDEX
para classificar por pessoas rastreadas no vídeo. Em cada conjunto de resultados de uma pessoa, os elementos são classificados por confiança decrescente da precisão de rastreamento de caminho. Por padrão, Persons
é retornado classificado por TIMESTAMP
. O exemplo a seguir é a resposta do JSON em GetPersonDetection
. Os resultados são classificados pelo tempo, em milissegundos desde o início do vídeo, em que os caminhos das pessoas foram rastreadas no vídeo. Na resposta, observe o seguinte:
-
Informações da pessoa: o elemento da matriz
PersonDetection
contém informações sobre a pessoa detectada. Por exemplo, a hora em que a pessoa foi detectada (Timestamp
), a posição da pessoa no quadro do vídeo no momento em que ela foi detectada (BoundingBox
) e a confiança do Amazon Rekognition Video de que a pessoa foi detectada corretamente (Confidence
).Os traços faciais não são retornados em cada data e hora nos quais o caminho da pessoa é rastreado. Além disso, em algumas circunstâncias, o corpo de uma pessoa rastreada pode não estar visível, em cujo caso apenas o local de sua face é retornado.
-
Informações de paginação: o exemplo mostra uma página de informações de detecção de pessoas. Você pode especificar quantos elementos de pessoas retornar no parâmetro de entrada
MaxResults
paraGetPersonTracking
. Se existirem mais resultados além deMaxResults
, oGetPersonTracking
retornará um token (NextToken
) usado para obter a próxima página de resultados. Para obter mais informações, consulte Obter os resultados da análise do Amazon Rekognition Video. -
Índice — Um identificador exclusivo para identificar a pessoa em todo o vídeo.
-
Informações de vídeo – a resposta inclui informações sobre o formato do vídeo (
VideoMetadata
) em cada página de informações retornada peloGetPersonDetection
.
{
"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
}
}