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 のリファレンス ドキュメントをご覧ください。