Usar a API Amazon Rekognition Segment - Amazon Rekognition

Usar a API Amazon Rekognition Segment

A detecção de segmentos do Amazon Rekognition Video em vídeos armazenados é uma operação assíncrona do Amazon Rekognition Video. A API Amazon Rekognition Segment é uma API composta na qual você escolhe o tipo de análise (dicas técnicas ou detecção de disparos) em uma única chamada de API. Para obter informações sobre como chamar operações assíncronas, consulte Chamando as operações de vídeo do Amazon Rekognition Video.

Iniciando a análise do segmento

Para iniciar a detecção de segmentos em uma chamada de vídeo armazenada, inicie o SegmentDetection. Os parâmetros de entrada são os mesmos de outras operações de vídeo do Amazon Rekognition Video com a adição da seleção do tipo de segmento e da filtragem de resultados. Para obter mais informações, consulte Iniciar a análise de vídeo.

A seguir está um exemplo de JSON passado pela StartSegmentDetection. A solicitação especifica que os segmentos de detecção de tomada e sinais técnicos sejam detectados. Diferentes filtros para a confiança mínima de detecção são necessários para os segmentos de sinais técnicos (90%) e os segmentos de detecção de tomada (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 } } }

Escolher um tipo de segmento

Use o parâmetro de entrada da matriz SegmentTypes para detectar segmentos de sinais técnicos e/ou de detecção de tomada no vídeo de entrada.

  • TECHNICAL_CUE: identifica registros de data e hora com precisão de quadros para o início, o fim e a duração das dicas técnicas (molduras pretas, barras coloridas, créditos de abertura, créditos finais, logotipos de estúdio e conteúdo principal do programa) detectadas em um vídeo. Por exemplo, é possível usar sinais técnicos para encontrar o início dos créditos finais. Para obter mais informações, consulte Dicas técnicas.

  • SHOT: identifica o início, o fim e a duração de uma captura. Por exemplo, é possível usar a detecção de tomada para identificar tomadas candidatas para a edição final de um vídeo. Para obter mais informações, consulte Detecção de captura.

Filtrar os resultados da análise

Você pode usar o parâmetro de entrada Filters (StartSegmentDetectionFilters) para especificar a confiança mínima de detecção retornada na resposta. Dentro de Filters, use ShotFilter (StartShotDetectionFilter) para filtrar as fotos detectadas. Use TechnicalCueFilter (StartTechnicalCueDetectionFilter) para filtrar sinais técnicos.

Para obter um código de exemplo, consulte Exemplo: Detectando segmentos em um vídeo armazenado.

Obtendo resultados de análise de segmentos

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 de vídeo for bem-sucedida, chame GetSegmentDetection para obter os resultados da análise de vídeo.

Veja a seguir uma solicitação GetSegmentDetection de exemplo. O JobId é o identificador do trabalho retornado da chamada para StartSegmentDetection. Para obter informações sobre outros parâmetros de entrada, consulte Obter os resultados da análise do Amazon Rekognition Video.

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

GetSegmentDetection retorna os resultados da análise solicitada e informações gerais sobre o vídeo armazenado.

Informações gerais

GetSegmentDection retorna as seguintes informações gerais:

  • Informações de áudio — A resposta inclui metadados de áudio em uma matriz, AudioMetadata, de objetos AudioMetadata. Pode haver vários streams de áudio. Cada objeto AudioMetadata contém metadados para um único stream de áudio. As informações de áudio em um objeto AudioMetadata incluem o codec de áudio, o número de canais de áudio, a duração do stream de áudio e a taxa de amostragem. Metadados de áudio são retornados em cada página de informações retornadas por GetSegmentDetection.

  • Informações de vídeo — Atualmente, o Amazon Rekognition Video retorna um único objeto VideoMetadata na matriz VideoMetadata. O objeto contém informações sobre o stream de vídeo no arquivo de entrada que o Amazon Rekognition Video escolheu analisar. O objeto VideoMetadata inclui o codec de vídeo, o formato de vídeo e outras informações. Metadados de vídeo são retornados em cada página de informações retornadas por GetSegmentDetection.

  • Informações de paginação — O exemplo mostra uma página de informações do segmento. É possível especificar quantos elementos de texto a serem retornados no parâmetro de entrada MaxResults para GetSegmentDetection. Se existirem mais resultados além de MaxResults, o GetSegmentDetection 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.

  • Solicitar informações: o tipo de análise solicitado na chamada para StartSegmentDetection é retornado no campo SelectedSegmentTypes.

Segmentos

Dicas técnicas e informações de captura detectadas em um vídeo são retornadas em uma matriz, Segments, de objetos SegmentDetection . A matriz é classificada pelos tipos de segmento (TECHNICAL_CUE ou SHOT) especificados no parâmetro de entrada SegmentTypes de StartSegmentDetection. Em cada tipo de segmento, a matriz é classificada por valores de time stamp. Cada objeto SegmentDetection inclui informações sobre o tipo de segmento detectado (sinal técnico ou detecção de tomada) e informações gerais, como a hora de início, a hora de término e a duração do segmento.

As informações de horário são retornadas em três formatos.

  • Milissegundos

    O número de milissegundos desde o início do vídeo. Os campos DurationMillis, StartTimestampMillis, e EndTimestampMillis estão no formato de milissegundos.

  • Código de tempo

    Os timecodes do Amazon Rekognition Video estão no formato SMPTE, em que cada quadro de vídeo tem um valor de timecode exclusivo. O formato é hh:mm:ss:quadro. Por exemplo, um valor de código de tempo de 01:05:40:07, seria lido como uma hora, cinco minutos, quarenta segundos e sete quadros. Os casos de uso de taxa de quadros reduzida são compatíveis com o Amazon Rekognition Video. O formato do código de tempo com taxa de descarte de quadro é hh:mm:ss;quadro. Os campos DurationSMPTE, StartTimecodeSMPTE e EndTimecodeSMPTE estão no formato de código de tempo.

  • Contadores de quadros

    A duração de cada segmento de vídeo também é expressa com o número de quadros. O campo StartFrameNumber fornece o número do quadro no início de um segmento de vídeo e EndFrameNumber fornece o número do quadro no final de um segmento de vídeo. DurationFrames fornece o número total de quadros em um segmento de vídeo. Esses valores são calculados usando um índice de quadros que começa com 0.

Você pode usar o campo SegmentType para determinar o tipo de segmento retornado pelo Amazon Rekognition Video.

  • Dicas técnicas: o campo TechnicalCueSegment é um objeto TechnicalCueSegment que contém a confiança da detecção e o tipo de uma sugestão técnica. Os tipos de dicas técnicas são ColorBars, EndCredits, BlackFrames, OpeningCredits, StudioLogo, Slate e Content.

  • Captura: o campo ShotSegment é um objeto ShotSegment que contém a confiança de detecção e um identificador para o segmento capturado no vídeo.

O exemplo a seguir é a resposta do 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 obter um código de exemplo, consulte Exemplo: Detectando segmentos em um vídeo armazenado.