Video Intelligence API は、動画コンテンツ内の 100,000 を超え����������やロゴの存在を検出、追跡、認識します。
このページでは、Video Intelligence API を使用して動画内のロゴを認識する方法について説明します。
Cloud Storage の動画にアノテーションを付ける
次のコードサンプルは、Cloud Storage で動画内のロゴを検出する方法を示しています。
REST
プロセス リクエストを送信する
ローカル動画ファイルに対してアノテーションを付けるには、動画ファイルの内容を Base64 形式でエンコードします。リクエストの inputContent
フィールドに Base64 形式でエンコードされたコンテンツを格納します。動画ファイルのコンテンツを Base64 形式でエンコードする方法については、Base64 エンコードをご覧ください。
POST
リクエストを videos:annotate
メソッドに送信する方法を以下に示します。この例では、Google Cloud CLI を使用するプロジェクト用に設定されたサービス アカウントのアクセス トークンを使用します。Google Cloud CLI のインストール、サービス アカウントでのプロジェクトの設定、アクセス トークンの取得を行う手順については、Video Intelligence のクイックスタートをご覧ください。
リクエストのデータを使用する前に、次のように置き換えます。
- INPUT_URI: アノテーションを付けるファイルを含む Cloud Storage バケット(ファイル名を含む)。
gs://
で始まる必要があります。
次に例を示します。
"inputUri": "gs://cloud-videointelligence-demo/assistant.mp4",
- PROJECT_NUMBER: Google Cloud プロジェクトの数値識別子。
HTTP メソッドと URL:
POST https://videointelligence.googleapis.com/v1/videos:annotate
JSON 本文のリクエスト:
{ "inputUri":"INPUT_URI", "features": ["LOGO_RECOGNITION"] }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID" }
レスポンスが成功すると、Video Intelligence API はオペレーションの name
を返します。上記はこのようなレスポンスの例です。project-number
はプロジェクトの番号、operation-id
はリクエストに対して作成された長時間実行オペレーションの ID です。
- PROJECT_NUMBER: プロジェクトの数
- LOCATION_ID: アノテーションを実行する Cloud リージョン。サポート対象のクラウド リージョンは
us-east1
、us-west1
、europe-west1
、asia-east1
です。リージョンを指定しないと、動画ファイルの場所に基づいてリージョンが決まります。 - OPERATION_ID: リクエストに対して作成され、��ペレーション開始時にレスポンスで指定された長時間実行オペレーションの ID(例:
12345...
)
結果を取得する
リクエストの結果を取得するには、以下の例に示すように、videos:annotate
の呼び出しで返されたオペレーション名を使用して GET
リクエストを送信します。
リクエストのデータを使用する前に、次のように置き換えます。
- 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
Video Intelligence への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証を設定するをご覧ください。
Java
Video Intelligence への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証を設定するをご覧ください。
Node.js
Video Intelligence への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証を設定するをご覧ください。
Python
Video Intelligence への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証を設定するをご覧ください。
その他の言語
C#: クライアント ライブラリ ページの C# の設定手順を実行してから、.NET の Video Intelligence のリファレンス ドキュメントをご覧ください。
PHP: クライアント ライブラリ ページの PHP の設定手順を実行してから、PHP の Video Intelligence のリファレンス ドキュメントをご覧ください。
Ruby: クライアント ライブラリ ページの Ruby の設定手順を実行してから、Ruby の Video Intelligence のリファレンス ドキュメントをご覧ください。
ローカル動画にアノテーションを付ける
次のコードサンプルは、ローカル動画ファイル内のロゴを検出する方法を示しています。
REST
動画アノテーションリクエストを送信する
ローカル動画ファイルにアノテーションを付けるには、動画ファイルの内容を Base64 形式でエンコードします。
リクエストの inputContent
フィールドに Base64 形式でエンコードされたコンテンツを格納します。
動画ファイルのコンテンツを Base64 形式でエンコードする方法については、Base64 エンコードをご覧ください。
POST リクエストをvideos:annotate
メソッドに送信する方法を��下に示します。この例では、Google Cloud CLI を使用するプロジェクト用に設定されたサービス アカウントのアクセス トークンを使用します。Google Cloud CLI のインストール、サービス アカウントでのプロジェクトの設定、アクセス トークンの取得を行う手順については、Video Intelligence API のクイックスタートをご覧ください。
リクエストのデータを使用する前に、次のように置き換えます。
- "inputContent": BASE64_ENCODED_CONTENT
以下に例を示します。
"UklGRg41AwBBVkkgTElTVAwBAABoZHJsYXZpaDgAAAA1ggAAxPMBAAAAAAAQCAA..."
- LANGUAGE_CODE: [オプション] サポートされている言語をご覧ください。
- PROJECT_NUMBER: Google Cloud プロジェクトの数値識別子。
HTTP メソッドと URL:
POST https://videointelligence.googleapis.com/v1/videos:annotate
JSON 本文のリクエスト:
{ "inputContent": "BASE64_ENCODED_CONTENT", "features": ["LOGO_RECOGNITION"], "videoContext": { } }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID" }
レスポンスが成功すると、Video Intelligence API はオペレーションの name
を返します。上記はこのようなレスポンスの例です。project-number
はプロジェクトの名前、operation-id
はリクエストに対して作成された長時間実行オペレーションの ID です。
- OPERATION_ID: オペレーションの開始時にレスポンスで提供されます(例:
12345...
)。
アノテーション結果を取得する
オペレーションの結果を取得するには、次の例のように、動画アノテーションの呼び出しから返されたオペレーション名を使用して GET リクエストを行います。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_NUMBER: Google Cloud プロジェクトの数値識別子。
HTTP メソッドと URL:
GET https://videointelligence.googleapis.com/v1/OPERATION_NAME
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
テキスト検出アノテーションは、textAnnotations
リストとして返されます。注: done フィールドは、値が True の場合にのみ返されます。オペレーションが完了していない場合、レスポンスには含まれません。
Go
Video Intelligence への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証を設定するをご覧ください。
Java
Video Intelligence への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証を設定するをご覧ください。
Node.js
Video Intelligence への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証を設定するをご覧ください。
Python
Video Intelligence への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証を設定するをご覧ください。
その他の言語
C#: クライアント ライブラリ ページの C# の設定手順を実行してから、.NET の Video Intelligence のリファレンス ドキュメントをご覧ください。
PHP: クライアント ライブラリ ページの PHP の設定手順を実行してから、PHP の Video Intelligence のリファレンス ドキュメントをご覧ください。
Ruby: クライアント ライブラリ ページの Ruby の設定手順を実行してから、Ruby の Video Intelligence のリファレンス ドキュメントをご覧ください。