Video Intelligence API は、LABEL_DETECTION 機能を使用して動画映像に表示されるエンティティを識別できます。この機能は、物体、場所、活動、動物の種類、商品などを識別できます。
分析は以下のように区分化できます。
- フレームレベル:
各エンティティがフレーム内で識別され、ラベル付けされます(1 秒あたり 1 フレームのサンプリング)。 - ショットレベル:
ショットはすべてのセグメント(または動画)内で自動的に検出されます。その後、各ショット内でエンティティが識別され、ラベル付けされます。 - セグメント レベル:
ユーザーが選択した動画セグメントを分析用に指定できます。このためには、アノテーションのために開始と終了の時間オフセットを指定します(VideoSegment を参照)。その後、各セグメント内でエンティティが識別され、ラベル付けされます。セグメントが指定されていない場合は、動画全体が 1 つのセグメントとして扱われます。
ローカル ファイルにアノテーションを付ける
この例では、ローカル ファイルに対して動画分析を実行し、ラベルを検出します。
詳細については、Python のチュートリアルをご覧ください。
REST
プロセス リクエストを送信する
POST
リクエストを videos:annotate
メソッドに送信する方法を以下に示します。LabelDetectionMode
を構成して、ショットレベルのアノテーションやフレームレベルのアノテーションを構成できます。SHOT_AND_FRAME_MODE
を使用することをおすすめします。この例では、Google Cloud CLI を使用するプロジェクト用に設定されたサービス アカウントのアクセス トークンを使用します。Google Cloud CLI のインストール、サービス アカウントでのプロジェクトの設定、アクセス トークンの取得を行う手順については、Video Intelligence のクイックスタートをご覧ください。
リクエストのデータを使用する前に、次のように置き換えます。
- BASE64_ENCODED_CONTENT: 動画を Base64 エンコード データとして提供します。データを Base64 に変換する方法の手順をご覧ください。
- PROJECT_NUMBER: Google Cloud プロジェクトの数値識別子。
HTTP メソッドと URL:
POST https://videointelligence.googleapis.com/v1/videos:annotate
JSON 本文のリクエスト:
{ "inputContent": "BASE64_ENCODED_CONTENT", "features": ["LABEL_DETECTION"], }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID" }
リクエストが成功すると、Video Intelligence はオペレーションの名前を返します。
結果を取得する
リクエストの結果を取得するには、GET
リクエストを projects.locations.operations
リソースに送信します。このようなリクエストを送信する方法は次のとおりです。
リクエストのデータを使用する前に、次のように置き換えます。
- OPERATION_NAME: Video Intelligence API によって返されるオペレーションの名前。オペレーション名の形式は
projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID
です。 - PROJECT_NUMBER: Google Cloud プロジェクトの数値識別子。
HTTP メソッドと URL:
GET https://videointelligence.googleapis.com/v1/OPERATION_NAME
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
Go
Java
Node.js
Python
Python 用 Video Intelligence API クライアント ライブラリのインストールと使用方法の詳細については、Video Intelligence API クライアント ライブラリをご覧ください。その他の言語
C#: クライアント ライブラリ ページの C# の設定手順を実行してから、.NET の Video Intelligence のリファレンス ドキュメントをご覧ください。
PHP: クライアント ライブラリ ページの PHP の設定手順を実行してから、PHP の Video Intelligence のリファレンス ドキュメントをご覧ください。
Ruby: クライアント ライブラリ ページの Ruby の設定手順を実行してから、Ruby の Video Intelligence のリファレンス ドキュメントをご覧ください。
Cloud Storage 上のファイルにアノテーションを付ける
Cloud Storage にあるファイルのラベルに対して動画分析を実行する例を次に示します。
REST
Python 用 Video Intelligence API クライアント ライブラリのインストールと使用方法の詳細については、Video Intelligence API クライアント ライブラリをご覧ください。プロセス リクエストを送信する
POST
リクエストを annotate
メソッドに送信する方法を以下に示します。この例では、Google Cloud CLI を使用するプロジェクト用に設定されたサービス アカウントのアクセス トークンを使用します。Google Cloud CLI のインストール、サービス アカウントでのプロジェクトの設定、アクセス トークンの取得を行う手順については、Video Intelligence のクイックスタートをご覧ください。
リクエストのデータを使用する前に、次のように置き換えます。
- INPUT_URI: アノテーションを付けるファイルを含む Cloud Storage バケット(ファイル名を含む)。
gs://
で始まる必要があります。 - PROJECT_NUMBER: Google Cloud プロジェクトの数値識別子。
HTTP メソッドと URL:
POST https://videointelligence.googleapis.com/v1/videos:annotate
JSON 本文のリクエスト:
{ "inputUri": "INPUT_URI", "features": ["LABEL_DETECTION"], }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID" }
リクエストが成功すると、Video Intelligence はオペレーションの名前を返します。
結果を取得する
リクエストの結果を取得するには、GET
リクエストを projects.locations.operations
リソースに送信します。このようなリクエストを送信する方法は次のとおりです。
リクエストのデータを使用する前に、次のように置き換えます。
- OPERATION_NAME: Video Intelligence API によって返されるオペレーションの名前。オペレーション名の形式は
projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID
です。 - PROJECT_NUMBER: Google Cloud プロジェクトの数値識別子。
HTTP メソッドと URL:
GET https://videointelligence.googleapis.com/v1/OPERATION_NAME
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
アノテーションの結果をダウンロードする
アノテーションを、送信元バケットから送信先バケットにコピーします(ファイルとオブジェクトのコピーをご覧ください)。
gsutil cp gcs_uri gs://my-bucket
注: 出力 GCS URI がユーザーによって指定された場合、アノテーションはその GCS URI に格納されます。
Go
Java
Node.js
Python
その他の言語
C#: クライアント ライブラリ ページの C# の設定手順を実行してから、.NET の Video Intelligence のリファレンス ドキュメントをご覧ください。
PHP: クライアント ライブラリ ページの PHP の設定手順を実行してから、PHP の Video Intelligence のリファレンス ドキュメントをご覧ください。
Ruby: クライアント ライブラリ ページの Ruby の設定手順を実行してから、Ruby の Video Intelligence のリファレンス ドキュメントをご覧ください。