Leer resultados de análisis de vídeo en streaming - Amazon Rekognition

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Leer resultados de análisis de vídeo en streaming

Puede utilizar la biblioteca de clientes de Amazon Kinesis Data Streams para consumir los resultados de análisis que se envían a la transmisión de salida de Amazon Kinesis Data Streams. Para obtener más información, consulteLectura de datos de un flujo de datos de Kinesis. Amazon Rekognition Video coloca un registro de fotograma de JSON para cada fotograma analizado en la transmisión de salida de Kinesis. Amazon Rekognition Video no analiza cada fotograma que se le transfiere a través del streaming de vídeo de Kinesis.

Un registro de fotograma que se envía a una transmisión de datos de Kinesis contiene información acerca del fragmento de streaming de vídeo de Kinesis en el que está el fotograma, donde está el fotograma en el fragmento y los rostros reconocidos en el fotograma. También incluye información de estado para el procesador de streaming. Para obtener más información, consulte Referencia: Registro de reconocimiento facial de Kinesis.

La biblioteca de analizadores de Amazon Kinesis Video Streams contiene pruebas de ejemplo que consumen los resultados de Amazon Rekognition Video y los integra con el flujo de vídeo original de Kinesis. Para obtener más información, consulte Visualización de resultados Rekognition con Kinesis Video Streams localmente.

Amazon Rekognition Video transmite información de análisis de Amazon Rekognition Video al flujo de datos de Kinesis. A continuación, se muestra un ejemplo de JSON para un registro único.

{ "InputInformation": { "KinesisVideo": { "StreamArn": "arn:aws:kinesisvideo:us-west-2:nnnnnnnnnnnn:stream/stream-name", "FragmentNumber": "91343852333289682796718532614445757584843717598", "ServerTimestamp": 1510552593.455, "ProducerTimestamp": 1510552593.193, "FrameOffsetInSeconds": 2 } }, "StreamProcessorInformation": { "Status": "RUNNING" }, "FaceSearchResponse": [ { "DetectedFace": { "BoundingBox": { "Height": 0.075, "Width": 0.05625, "Left": 0.428125, "Top": 0.40833333 }, "Confidence": 99.975174, "Landmarks": [ { "X": 0.4452057, "Y": 0.4395594, "Type": "eyeLeft" }, { "X": 0.46340984, "Y": 0.43744427, "Type": "eyeRight" }, { "X": 0.45960626, "Y": 0.4526856, "Type": "nose" }, { "X": 0.44958648, "Y": 0.4696949, "Type": "mouthLeft" }, { "X": 0.46409217, "Y": 0.46704912, "Type": "mouthRight" } ], "Pose": { "Pitch": 2.9691637, "Roll": -6.8904796, "Yaw": 23.84388 }, "Quality": { "Brightness": 40.592964, "Sharpness": 96.09616 } }, "MatchedFaces": [ { "Similarity": 88.863960, "Face": { "BoundingBox": { "Height": 0.557692, "Width": 0.749838, "Left": 0.103426, "Top": 0.206731 }, "FaceId": "ed1b560f-d6af-5158-989a-ff586c931545", "Confidence": 99.999201, "ImageId": "70e09693-2114-57e1-807c-50b6d61fa4dc", "ExternalImageId": "matchedImage.jpeg" } } ] } ] }

En el ejemplo de JSON, observe lo siguiente:

  • InputInformation— Información acerca del streaming de vídeo de Kinesis que se utiliza para transmitir vídeo en Amazon Rekognition Video. Para obtener más información, consulte InputInformation.

  • StreamProcessorInformation— Información de estado para el procesador de streaming de Amazon Rekognition Video. El único valor posible para el campo Status es RUNNING. Para obtener más información, consulte StreamProcessorInformation.

  • FaceSearchResponse: contiene información sobre rostros en el vídeo en streaming que coincide con rostros en la colección de entrada.FaceSearchResponsecontiene unDetectedFaceobjeto, que es un rostro que se detectó en el fotograma de vídeo analizado. Para cada rostro detectado, la matriz MatchedFaces contiene un matriz de objetos de rostro coincidentes (MatchedFace) encontrados en la colección de entrada, junto con una puntuación de similitud.

Asignación de la secuencia de vídeo de Kinesis al flujo de datos de Kinesis

Es posible que desee asignar los fotogramas de streaming de vídeo de Kinesis a los fotogramas analizados que se envían a la transmisión de datos de Kinesis. Por ejemplo, durante la visualización de un vídeo de streaming, es posible que desee mostrar cuadros alrededor de los rostros de las personas reconocidas. Las coordenadas del cuadro delimitador se envían como parte del registro de reconocimiento facial de Kinesis a la transmisión de datos de Kinesis. Para mostrar el cuadro delimitador correctamente, debe asignar la información temporal que se envía con el registro de reconocimiento facial de Kinesis con los fotogramas correspondientes a la transmisión de vídeo de origen de Kinesis.

La técnica que utiliza para asignar la transmisión de vídeo de Kinesis a la transmisión de datos de Kinesis depende de si va a transmitir medios en directo (como un vídeo de streaming en directo) o si va a transmitir medios archivados (como un vídeo almacenado).

Mapeo cuando estás transmitiendo contenido multimedia en directo

Para asignar un fotograma de flujo de vídeo de Kinesis a un marco de flujo de datos de Kinesis

  1. Establezca el parámetro de entrada FragmentTimeCodeType de la operación PutMedia en RELATIVE.

  2. LlamadaPutMediapara enviar medios en directo a la transmisión de vídeo de Kinesis.

  3. Cuando reciba un registro del reconocimiento facial de Kinesis de la transmisión de datos de Kinesis, almacene los valores deProducerTimestampyFrameOffsetInSecondsdesde lasKinesisVideo.

  4. Calcule la marca temporal correspondiente al fotograma de streaming de vídeo de Kinesis añadiendo laProducerTimestampyFrameOffsetInSecondsvalores de campo juntos.

Mapeo cuando estás transmitiendo contenido multimedia archivado

Para asignar un fotograma de flujo de vídeo de Kinesis a un marco de flujo de datos de Kinesis

  1. LlamadaPutMediapara enviar medios archivados a la transmisión de vídeo de Kinesis.

  2. Cuando reciba un objeto Acknowledgement de la respuesta de la operación PutMedia, almacene el valor del campo FragmentNumber del campo Payload. FragmentNumber es el número de fragmento del clúster de MKV.

  3. Cuando reciba un registro del reconocimiento facial de Kinesis de la transmisión de datos de Kinesis, almacene elFrameOffsetInSecondsvalor de campo de laKinesisVideo.

  4. Calcule la asignación mediante elFrameOffsetInSecondsyFragmentNumbervalores almacenados en los pasos 2 y 3.FrameOffsetInSecondses la diferencia del fragmento con elFragmentNumberque se envía al flujo de datos de Amazon Kinesis. Para obtener más información sobre cómo obtener los fotogramas de vídeo para un número de fragmento determinado, consulteMedios archivados de Amazon Kinesis Video Streams.