Operaciones de detección de etiquetas para eventos de transmisión de vídeo - 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.

Operaciones de detección de etiquetas para eventos de transmisión de vídeo

Amazon Rekognition Video puede detectar personas u objetos relevantes en una transmisión de vídeo y notificarle cuando los detecte. Cuando cree un procesador de transmisión de detección de etiquetas, elija qué etiquetas quiere que Amazon Rekognition Video detecte. Pueden ser personas, paquetes y mascotas, o personas, paquetes, mascotas. Elija solo las etiquetas específicas que desee detectar. De esta forma, las únicas etiquetas relevantes crean notificaciones. Puede configurar las opciones para determinar cuándo almacenar la información de vídeo y, a continuación, realizar un procesamiento adicional en función de las etiquetas que se detecten en el fotograma.

Tras configurar los recursos, el proceso para detectar etiquetas en una transmisión de vídeo es el siguiente:

  1. Creación del procesador de streaming

  2. Iniciar el procesador de streaming

  3. Si se detecta un objeto de interés, recibirá una notificación de Amazon SNS la primera vez que aparezca cada objeto de interés.

  4. El procesador de transmisiones se detiene cuando finaliza el tiempo especificado en MaxDurationInSeconds.

  5. Recibirá una notificación final de Amazon SNS con un resumen del evento.

  6. Amazon Rekognition Video publica un resumen detallado de la sesión en su bucket de S3.

Creación del procesador de flujo de detección de etiquetas de Amazon Rekognition Video

Antes de poder analizar un vídeo en streaming, cree un procesador de streaming de Amazon Rekognition Video (CreateStreamProcessor).

Si desea crear un procesador de transmisiones para detectar etiquetas de interés y personas, proporcione como entrada una transmisión de vídeo de Kinesis (Input), información sobre el bucket de Amazon S3 (Output) y un ARN de tema de Amazon SNS (StreamProcessorNotificationChannel). También puede proporcionar un ID de clave de KMS para cifrar los datos que se envían al bucket de S3. Especifica lo quiere detectar en Settings, como personas, paquetes y personas, o mascotas, personas y paquetes. También puede especificar en qué parte del fotograma quiere que Amazon Rekognition supervise con RegionsOfInterest. A continuación, se muestra un ejemplo de JSON para la solicitud 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 } ] } ] }

Tenga en cuenta que puede cambiar el valor MinConfidence cuando especifique el valor ConnectedHomeSettings para el procesador de transmisiones. MinConfidence es un valor numérico que va de 0 a 100 y que indica la certeza del algoritmo con respecto a sus predicciones. Por ejemplo, una notificación para person con un valor de confianza de 90 significa que el algoritmo está absolutamente seguro de que la persona está presente en el vídeo. Un valor de confianza de 10 indica que puede haber una persona. Puede establecer MinConfidence en el valor que desee entre 0 y 100, en función de la frecuencia con la que desee recibir notificaciones. Por ejemplo, si quiere recibir notificaciones solo cuando Rekognition esté absolutamente seguro de que hay un paquete en el fotograma del vídeo, puede configurar MinConfidence en 90.

De forma predeterminada, MinConfidence está establecido en 50. Si quiere optimizar el algoritmo para obtener una mayor precisión, puede configurar MinConfidence para que sea superior a 50. De este modo, recibirá menos notificaciones, pero cada notificación será más fiable. Si quiere optimizar el algoritmo para que sea más exhaustivo, puede configurar MinConfidence para que sea inferior a 50 para recibir más notificaciones.

Iniciar el procesador de flujo de detección de etiquetas de Amazon Rekognition Video

Se comienza a analizar el vídeo en streaming llamando a StartStreamProcessor con el nombre del procesador de streaming que especificó en CreateStreamProcessor. Cuando ejecuta la operación StartStreamProcessor en un procesador de flujo de detección de etiquetas, ingresa la información de inicio y finalización para determinar el tiempo de procesamiento.

Al iniciar el procesador de flujo, el estado del procesador de flujo de detección de etiquetas cambia de las siguientes maneras:

  1. Cuando llama a StartStreamProcessor, el estado del procesador de flujo de detección de etiquetas pasa de STOPPED o FAILED a STARTING.

  2. Mientras el procesador de flujo de detección de etiquetas está en funcionamiento, permanece en STARTING.

  3. Cuando el procesador de flujo de detección de etiquetas termina de funcionar, el estado pasa a ser STOPPED o FAILED.

StartSelector especifica el punto de partida de la transmisión de Kinesis para iniciar el procesamiento. Puede utilizar la marca de tiempo del productor de KVS o el número de fragmento de KVS. Para obtener más información, consulte Fragment.

nota

Si utiliza la marca de tiempo de KVS Producer, debe introducir la hora en milisegundos.

StopSelector especifica cuándo dejar de procesar la transmisión. Puede especificar una cantidad máxima de tiempo para procesar el video. El valor predeterminado es una duración máxima de 10 segundos. Tenga en cuenta que el tiempo de procesamiento real puede ser un poco más largo que la duración máxima, en función del tamaño de los fragmentos de KVS individuales. Si se alcanza o se supera la duración máxima al final de un fragmento, el tiempo de procesamiento se detiene.

A continuación, se muestra un ejemplo de JSON para la solicitud StartStreamProcessor.

{ "Name": "string", "StartSelector": { "KVSStreamStartSelector": { "KVSProducerTimestamp": 1655930623123 }, "StopSelector": { "MaxDurationInSeconds": 11 } } }

Si el procesador de streaming comienza correctamente, se devuelve una respuesta HTTP 200. Se incluye un cuerpo JSON vacío.

Analizar los resultados de la detección de etiquetas

Amazon Rekognition Video publica las notificaciones de un procesador de flujos de detección de etiquetas de tres maneras: notificaciones de Amazon SNS para eventos de detección de objetos, una notificación de Amazon SNS para un resumen del final de sesión y un informe detallado de bucket de Amazon S3.

  • Notificaciones de Amazon SNS para eventos de detección de objetos.

    Si se detectan etiquetas en la transmisión de vídeo, recibirá notificaciones de Amazon SNS sobre eventos de detección de objetos. Amazon Rekognition publica una notificación la primera vez que se detecta un objeto de interés en la secuencia de video. Las notificaciones incluyen información como el tipo de etiqueta detectada, la confianza y un enlace a la imagen principal. También incluyen una imagen recortada de la persona o el objeto detectado y una marca de tiempo de detección. La notificación de SNS tiene el siguiente formato:

    {"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 } }
  • Resumen de final de sesión de para Amazon SNS.

    También recibirá una notificación de Amazon SNS cuando finaliza la sesión de procesamiento de secuencias. En esta notificación se muestran los metadatos de la sesión. Esto incluye detalles como la duración de la transmisión que se procesó. La notificación de SNS tiene el siguiente formato:

    {"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 } }
  • Informe de bucket de Amazon S3.

    Amazon Rekognition Video publica los resultados de inferencia detallados de una operación de análisis de video en el bucket de Amazon S3 que se proporciona en la operación CreateStreamProcessor. Estos resultados incluyen fotogramas de imágenes en los que se detectó por primera vez un objeto de interés o una persona.

    Los fotogramas están disponibles en S3 en la siguiente ruta: ObjectKeyPrefix/StreamProcessorName/SessionId/ruta_única_determinada_según_el_servicio. En esta ruta, labelKeyPrefix es un argumento opcional proporcionado por el cliente, StreamProcessorName es el nombre del recurso del procesador de transmisión y SessionID es un ID único para la sesión de procesamiento de transmisión. Sustitúyalos según su situación.