Uso de la API de segmentos de Amazon Rekognition - 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.

Uso de la API de segmentos de Amazon Rekognition

La detección de segmentos de Amazon Rekognition Video en vídeos almacenados es una operación asíncrona de Amazon Rekognition Video. La API de Amazon Rekognition Segment es una API compuesta en la que se elige el tipo de análisis (indicaciones técnicas o detección de tomas) de una sola llamada a la API. Para obtener información acerca de cómo llamar a operaciones asíncronas, consulte Cómo llamar a las operaciones de Amazon Rekognition Video.

Inicio del análisis de segmentos

Para iniciar la detección de segmentos en una videollamada almacenada, llame a StartSegmentDetection. Los parámetros de entrada son los mismos que otras operaciones Amazon Rekognition Video con la adición de la selección de tipo de segmento y filtrado de resultados. Para obtener más información, consulte Comenzar el análisis de vídeo.

El siguiente es el ejemplo JSON que pasa StartSegmentDetection. La solicitud especifica que se detecten tanto los segmentos de detección de indicaciones técnicas como los de detección de tomas. Se solicitan diferentes filtros para la confianza mínima de detección de los segmentos de indicaciones técnicas (90 %) y segmentos de detección de tomas (80 %).

{ "Video": { "S3Object": { "Bucket": "test_files", "Name": "test_file.mp4" } "SegmentTypes":["TECHNICAL_CUES", "SHOT"] "Filters": { "TechnicalCueFilter": { "MinSegmentConfidence": 90, "BlackFrame" : { "MaxPixelThreshold": 0.1, "MinCoveragePercentage": 95 } }, "ShotFilter" : { "MinSegmentConfidence": 60 } } }

Selección de un tipo de segmento

Utilice el parámetro de entrada de matriz SegmentTypes para detectar segmentos de indicaciones técnicas o de tomas en el vídeo de entrada.

  • TECHNICAL_CUE: identifica las marcas de tiempo con precisión a nivel de fotograma para el inicio, el final y la duración de las señales técnicas (fotogramas negros, barras de colores, créditos iniciales, créditos finales, logotipos de estudio y contenido principal del programa) detectadas en un vídeo. Por ejemplo, puede utilizar indicaciones técnicas para encontrar el inicio de los créditos finales. Para obtener más información, consulte Tomas técnicas.

  • TOMA: identifica el inicio, el final y la duración de una toma. Por ejemplo, puede utilizar la detección de tomas para identificar las tomas candidatas para la edición final de un vídeo. Para obtener más información, consulte Detección de tomas.

Filtrado de los resultados del análisis

Puede utilizar el parámetro de entrada Filters (StartSegmentDetectionFilters) para especificar la confianza de detección mínima que se devuelve en la respuesta. En Filters, utilice ShotFilter (StartShotDetectionFilter) para filtrar las tomas detectadas. Utilice TechnicalCueFilter (StartTechnicalCueDetectionFilter) para filtrar las señales técnicas.

Para ver el código de ejemplo, consulte Ejemplo: Detección de segmentos en un vídeo almacenado.

Obtención de los resultados del análisis de segmentos

Amazon Rekognition Video publica el estado de finalización de una operación de análisis de vídeo en un tema de Amazon Simple Notification Service. Si el análisis de vídeo es correcto, puede llamar a GetSegmentDetection para obtener los resultados.

A continuación, se muestra un ejemplo de solicitud GetSegmentDetection. JobId es el identificador de trabajo que devuelve la llamada a StartSegmentDetection. Para obtener información acerca del resto de parámetros de entrada, consulte Obtención de los resultados del análisis de Amazon Rekognition Video.

{ "JobId": "270c1cc5e1d0ea2fbc59d97cb69a72a5495da75851976b14a1784ca90fc180e3", "MaxResults": 10, "NextToken": "XfXnZKiyMOGDhzBzYUhS5puM+g1IgezqFeYpv/H/+5noP/LmM57FitUAwSQ5D6G4AB/PNwolrw==" }

GetSegmentDetection devuelve los resultados del análisis solicitado e información general sobre el vídeo almacenado.

Información general

GetSegmentDection devuelve la siguiente información general.

  • Información de audio: la respuesta incluye metadatos de audio en una matriz, AudioMetadata, de objetos de AudioMetadata. Puede haber varias secuencias de audio. Cada objeto AudioMetadata contiene metadatos para una sola secuencia de audio. La información de audio de un objeto AudioMetadata incluye el códec de audio, el número de canales de audio, la duración de la transmisión de audio y la frecuencia de muestreo. Los metadatos de audio se devuelven en cada página de información devuelta por GetSegmentDetection.

  • Información de vídeo: actualmente, Amazon Rekognition Video devuelve un único objeto VideoMetadata en la matriz VideoMetadata. El objeto contiene información sobre la secuencia de vídeo en el archivo de entrada que Amazon Rekognition Video ha elegido para analizar. El objeto VideoMetadata incluye el códec de vídeo, el formato de vídeo y otra información. Los metadatos de vídeo se devuelven en cada página de información devuelta por GetSegmentDetection.

  • Información de paginación: el ejemplo muestra una página de información de segmentación. Puede especificar la cantidad de elementos que se van a devolver en el parámetro de entrada MaxResults para GetSegmentDetection. Si existen más resultados que MaxResults, GetSegmentDetection devuelve un token (NextToken) que se utiliza para obtener la siguiente página de resultados. Para obtener más información, consulte Obtención de los resultados del análisis de Amazon Rekognition Video.

  • Solicitar información: el tipo de análisis solicitado en la llamada a StartSegmentDetection se devuelve en el campo SelectedSegmentTypes.

Segmentos

La información de indicaciones técnicas y de tomas detectadas en un vídeo se devuelven en una matriz, Segments, de objetos SegmentDetection. La matriz se ordena por los tipos de segmento (TECHNICAL_CUE o SHOT) especificados en el parámetro de entrada SegmentTypes de StartSegmentDetection. En cada tipo de segmento, la matriz se ordena por valores de marca temporal. Cada objeto SegmentDetection incluye información sobre el tipo de segmento detectado (indicación técnica o detección de toma) e información general, como el tiempo de inicio, el tiempo de finalización y la duración del segmento.

La información de tiempo se devuelve en tres formatos.

  • Milisegundos

    El número de milisegundos desde el inicio del vídeo. Los campos DurationMillis, StartTimestampMillis y EndTimestampMillis están en formato de milisegundos.

  • Código temporal

    Los códigos temporales de Amazon Rekognition Video están en formato SMPTE donde cada fotograma de vídeo tiene un valor de código temporal único. El formato es hh:mm:ss:fotograma. Por ejemplo, un valor de código temporal de 01:05:40:07 se leería como una hora, cinco minutos, cuarenta segundos y siete fotogramas. Amazon Rekognition Video admite casos de uso de reducción de la velocidad de fotogramas. El formato de código temporal de velocidad de pérdida es hh:mm:ss;fotograma. Los campos DurationSMPTE, StartTimecodeSMPTE y EndTimecodeSMPTE están en formato de código temporal.

  • Contadores de fotogramas

    La duración de cada segmento de vídeo también se expresa con el número de fotogramas. El campo StartFrameNumber proporciona el número de fotograma al principio de un segmento de vídeo y EndFrameNumber el número de fotograma al final de un segmento de vídeo. DurationFrames indica el número total de fotogramas de un segmento de vídeo. Estos valores se calculan mediante un índice de fotogramas que comienza por 0.

Puede utilizar el campo SegmentType para determinar el tipo de segmento que devuelve Amazon Rekognition Video.

  • Indicaciones técnicas: el campo TechnicalCueSegment es un objeto TechnicalCueSegment que contiene la confianza de la detección y el tipo de señal técnica. Los tipos de señales técnicas son ColorBars, EndCredits, BlackFrames, OpeningCredits, StudioLogo, Slate y Content.

  • Toma: el campo ShotSegment es un objeto ShotSegment que contiene la confianza de detección y un identificador del segmento de la toma dentro del vídeo.

El siguiente ejemplo es la respuesta JSON de GetSegmentDetection.

{ "SelectedSegmentTypes": [ { "ModelVersion": "2.0", "Type": "SHOT" }, { "ModelVersion": "2.0", "Type": "TECHNICAL_CUE" } ], "Segments": [ { "DurationFrames": 299, "DurationSMPTE": "00:00:09;29", "StartFrameNumber": 0, "EndFrameNumber": 299, "EndTimecodeSMPTE": "00:00:09;29", "EndTimestampMillis": 9976, "StartTimestampMillis": 0, "DurationMillis": 9976, "StartTimecodeSMPTE": "00:00:00;00", "Type": "TECHNICAL_CUE", "TechnicalCueSegment": { "Confidence": 90.45006561279297, "Type": "BlackFrames" } }, { "DurationFrames": 150, "DurationSMPTE": "00:00:05;00", "StartFrameNumber": 299, "EndFrameNumber": 449, "EndTimecodeSMPTE": "00:00:14;29", "EndTimestampMillis": 14981, "StartTimestampMillis": 9976, "DurationMillis": 5005, "StartTimecodeSMPTE": "00:00:09;29", "Type": "TECHNICAL_CUE", "TechnicalCueSegment": { "Confidence": 100.0, "Type": "Content" } }, { "DurationFrames": 299, "ShotSegment": { "Index": 0, "Confidence": 99.9982681274414 }, "DurationSMPTE": "00:00:09;29", "StartFrameNumber": 0, "EndFrameNumber": 299, "EndTimecodeSMPTE": "00:00:09;29", "EndTimestampMillis": 9976, "StartTimestampMillis": 0, "DurationMillis": 9976, "StartTimecodeSMPTE": "00:00:00;00", "Type": "SHOT" }, { "DurationFrames": 149, "ShotSegment": { "Index": 1, "Confidence": 99.9982681274414 }, "DurationSMPTE": "00:00:04;29", "StartFrameNumber": 300, "EndFrameNumber": 449, "EndTimecodeSMPTE": "00:00:14;29", "EndTimestampMillis": 14981, "StartTimestampMillis": 10010, "DurationMillis": 4971, "StartTimecodeSMPTE": "00:00:10;00", "Type": "SHOT" } ], "JobStatus": "SUCCEEDED", "VideoMetadata": [ { "Format": "QuickTime / MOV", "FrameRate": 29.970029830932617, "Codec": "h264", "DurationMillis": 15015, "FrameHeight": 1080, "FrameWidth": 1920, "ColorRange": "LIMITED" } ], "AudioMetadata": [ { "NumberOfChannels": 1, "SampleRate": 48000, "Codec": "aac", "DurationMillis": 15007 } ] }

Para ver el código de ejemplo, consulte Ejemplo: Detección de segmentos en un vídeo almacenado.