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
Establezca el parámetro de entrada
FragmentTimeCodeType
de la operación PutMedia enRELATIVE
.Llamada
PutMedia
para enviar medios en directo a la transmisión de vídeo de Kinesis.Cuando reciba un registro del reconocimiento facial de Kinesis de la transmisión de datos de Kinesis, almacene los valores de
ProducerTimestamp
yFrameOffsetInSeconds
desde lasKinesisVideo.Calcule la marca temporal correspondiente al fotograma de streaming de vídeo de Kinesis añadiendo la
ProducerTimestamp
yFrameOffsetInSeconds
valores 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
LlamadaPutMediapara enviar medios archivados a la transmisión de vídeo de Kinesis.
Cuando reciba un objeto
Acknowledgement
de la respuesta de la operaciónPutMedia
, almacene el valor del campoFragmentNumber
del campo Payload.FragmentNumber
es el número de fragmento del clúster de MKV.Cuando reciba un registro del reconocimiento facial de Kinesis de la transmisión de datos de Kinesis, almacene el
FrameOffsetInSeconds
valor de campo de laKinesisVideo.Calcule la asignación mediante el
FrameOffsetInSeconds
yFragmentNumber
valores almacenados en los pasos 2 y 3.FrameOffsetInSeconds
es la diferencia del fragmento con elFragmentNumber
que 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.