Amazon Rekognition セグメント API を利用する - Amazon Rekognition

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon Rekognition セグメント API を利用する

保存済み動画内の Amazon Rekognition Video セグメント検出は、Amazon Rekognition Video の非同期オペレーションです。Amazon Rekognition セグメント API は、単一の API コールから分析の種類 (テクニカルキューまたはショット検出) を選択する複合 API です。非同期オペレーションの呼び出しについては、「Amazon Rekognition Video オペレーションを呼び出す」を参照してください。

セグメント解析の開始

保存されたビデオ内のセグメントの検出を開始するには、 を呼び出しますStartSegmentDetection。入力パラメータは、他の Amazon Rekognition Video オペレーションと同じで、セグメントタイプの選択と結果のフィルタリングが追加されています。詳細については、「ビデオ分析のスタート」を参照してください。

以下は、StartSegmentDetection によって渡される JSON の例です。リクエストでは、テクニカルキューとショット検出セグメントの両方が検出されるように指定します。テクニカルキューセグメント (90%) とショット検出セグメント (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 } } }

セグメントタイプの選択

SegmentTypes 配列入力パラメータを使用して、入力ビデオ内のテクニカルキューやショット検出セグメントを検出します。

  • TECHNICAL_CUE ビデオで検出されたテクニカルキュー (ブラックフレーム、カラーバー、オープニングクレジット、エンドクレジット、スタジオロゴ、および主要な番組コンテンツ) の開始、終了、および長さの正確なフレームのタイムスタンプを識別します。たとえば、テクニカルキューを使用してエンドクレジットの開始位置を見つけることができます。詳細については、「テクニカルキュー」を参照してください。

  • SHOT ショットの開始、終了、および長さを指定します。たとえば、ショット検出を使用して、ビデオの最終編集の候補ショットを特定できます。詳細については、「ショット検出」を参照してください。

解析結果のフィルタリング

Filters (StartSegmentDetectionFilters) 入力パラメータを使用して、レスポンスで返される最小検出信頼度を指定できます。内でFiltersShotFilter (StartShotDetectionFilter) を使用して検出されたショットをフィルタリングします。テクニカルキューをフィルタリングするには、TechnicalCueFilter (StartTechnicalCueDetectionFilter) を使用します。

サンプルコードについては、「例: 保存されたビデオ内のセグメントの検出」を参照してください。

セグメント解析結果の取得

Amazon Rekognition Video は、ビデオ分析の完了ステータスを Amazon Simple Notification Service トピックに発行します。ビデオ分析が成功したら、 GetSegmentDetectionを呼び出してビデオ分析の結果を取得します。

GetSegmentDetection リクエストの例を次に示します。JobId は、StartSegmentDetection の呼び出しから返されるジョブ識別子です。他の入力パラメータについての詳細は、「Amazon Rekognition Video の分析結果を取得する」を参照してください。

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

GetSegmentDetection は、要求された分析の結果と、保存されたビデオに関する一般的な情報を返します。

一般情報

GetSegmentDection は、次の一般的な情報を返します。

  • オーディオ情報 — レスポンスには、AudioMetadataオブジェクトAudioMetadataの配列 にオーディオメタデータが含まれます。複数のオーディオストリームが存在する可能性があります。各 AudioMetadata オブジェクトには、単一のオーディオストリームのメタデータが含まれます。AudioMetadata オブジェクトのオーディオ情報には、オーディオコーデック、オーディオチャンネルの数、オーディオストリームの長さ、およびサンプルレートが含まれます。オーディオメタデータは、GetSegmentDetection によって返される情報の各ページに含まれます。

  • 動画情報 – 現在、Amazon Rekognition Video はVideoMetadata配列内の単一のVideoMetadataオブジェクトを返します。このオブジェクトには、Amazon Rekognition Video が分析のために選択した入力ファイル内のビデオストリームに関する情報が含まれます。VideoMetadata オブジェクトには、ビデオコーデック、ビデオ形式、およびその他の情報が含まれます。ビデオのメタデータは、GetSegmentDetection によって返される情報の各ページに含まれます。

  • ページング情報 この例では、セグメント情報の 1 ページを示します。要素を返す数は、GetSegmentDetectionMaxResults 入力パラメータで指定できます。結果が MaxResults を超える場合、GetSegmentDetection は次のページの結果を取得するためのトークン (NextToken) を返します。詳細については、「Amazon Rekognition Video の分析結果を取得する」を参照してください。

  • リクエスト情報 StartSegmentDetectionの呼び出しで要求される分析のタイプが SelectedSegmentTypes フィールドに返されます。

セグメント

ビデオで検出されたテクニカルキューとショット情報は、 SegmentDetection オブジェクトSegmentsの配列 で返されます。配列は、StartSegmentDetectionSegmentTypes 入力パラメータで指定されたセグメントタイプ (TECHNICAL_CUE または SHOT) でソートされます。各セグメントタイプ内で、配列はタイムスタンプ値でソートされます。各 SegmentDetection オブジェクトには、検出されたセグメントのタイプ (テクニカルキューまたはショット検出) に関する情報と、開始時間、終了時間、セグメントの長さなどの一般情報が含まれます。

時間情報は 3 つの形式で返されます。

  • ミリ秒

    ビデオ開始からのミリ秒数。フィールド DurationMillisStartTimestampMillis、および EndTimestampMillis はミリ秒形式です。

  • タイムコード

    Amazon Rekognition Video タイムコードは SMPTE 形式で、ビデオの各フレームに固有のタイムコード値を持っています。形式は hh:mm:ss:frame です。たとえば、01:05:40:07 というタイムコード値は、1 時間、5 分、40 秒、7 フレームとして読み取られます。ドロップフレーム レートのユースケースは、Amazon Rekognition Video でサポートされています。ドロップレートのタイムコード形式は hh:mm:ss;frame です。フィールド DurationSMPTEStartTimecodeSMPTE、および EndTimecodeSMPTE はタイムコード形式です。

  • フレームカウンタ

    各ビデオセグメントのデュレーションもフレーム数で表されます。フィールド StartFrameNumber は、ビデオセグメントの開始時のフレーム番号を指定し、EndFrameNumber は、ビデオセグメントの終了時のフレーム番号を指定します。DurationFrames は、ビデオセグメント内の総フレーム数を示します。これらの値は、0 から始まるフレームインデックスを使用して計算されます。

SegmentType フィールドを使用して、Amazon Rekognition Video によって返されるセグメントのタイプを決定できます。

  • Technical CuesTechnicalCueSegmentフィールドは、検出の信頼度とテクニカルキューのタイプを含むTechnicalCueSegmentオブジェクトです。テクニカルキューの種類は ColorBarsEndCreditsBlackFramesOpeningCreditsStudioLogoSlate、および Content です。

  • ショットShotSegmentフィールドは、ビデオ内のショットセグメントの検出信頼度と識別子を含むShotSegmentオブジェクトです。

GetSegmentDetection の JSON レスポンスの例を次に示します。

{ "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 } ] }

サンプルコードについては、「例: 保存されたビデオ内のセグメントの検出」を参照してください。