バッチ動画 ウェアハウスのデータの検索

前提条件: デプロイされたインデックスを含むバッチ動画ウェアハウスを作成します。

コンソールでバッチ動画倉庫のデータを検索する

Console

  1. Vertex AI Vision ダッシュボードの [倉庫] タブを開きます。

    [倉庫] タブに移動

  2. 検索するインデックス エンドポイントを見つけて、[アセットを検索] をクリックします。

  3. 動画のリスト(それぞれアセットに対応)と、上部に検索バーが表示されます。動画をクリックして表示するか、動画の検索を開始します。

  4. 検索を開始するには、テキスト クエリを入力するか、検索クエリとして画像をアップロードします。検索結果ページの右側に動画クリップのリストが表示されます。各クリップは、アセット内の連続した動画クリップに対応しています。動画クリップは、入力されたクエリとの関連性に基づいてランク付けされます。

  5. 検索結果ページの左側にある Filters セクションを使用して、検索を絞り込むことができます。各フィルタ条件は、データスキーマキーと検索するアノテーション値で構成されます。フィルタ条件を指定した後、[検索] をクリックして検索を実行します。

コマンドラインを使用してバッチ動画倉庫データを検索する

コーパス(corpus)内の動画(assets)を検索するには、検索するコンテンツを searchIndexEndpoint リクエスト本文に入力します。コンテンツは次の形式で提供されます。

  1. text_query または image_query: 検索に使用するクエリ。
  2. 省略可 criteria: ユーザー提供のアノテーションのフィルタ条件。

次の例では、自然の風景の動画を含むコーパスについて考えてみましょう。「ビーチで夕日」に関連し、アノテーション "state": "California" でタグ付けされたすべてのアセットを取得するには、次のリクエストを送信します。

REST とコマンドライン

リクエストのデータを使用する前に、次のように置き換えます。

HTTP メソッドと URL:

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints/INDEX_ENDPOINT_ID:searchIndexEndpoint

リクエストの本文(JSON):

{
  "text_query": "sunset at beach",
  "criteria": [
    {
      "field": "state",
      "text_array": {
          "txt_values": [
            "California"
          ]
      }
    }
  ]
}

リクエストを送信するには、次のいずれかのオプションを選択します。

curl

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints/INDEX_ENDPOINT_ID:searchIndexEndpoint"

PowerShell

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints/INDEX_ENDPOINT_ID:searchIndexEndpoint" | Select-Object -Expand Content

次のような JSON レスポンスが返されます。

{
  "searchResultItems": [
    {
      "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_1"
    },
    {
      "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_2"
    }
  ]
}

ビーチで夕日を撮影した画像がある場合は、次のリクエストを送信して、その画像を検索クエリとして使用することもできます(入力画像は base64 エンコード形式です)。

REST とコマンドライン

リクエストのデータを使用する前に、次のように置き換えます。

HTTP メソッドと URL:

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints/INDEX_ENDPOINT_ID:searchIndexEndpoint

リクエストの本文(JSON):

{
  "image_query": {
    "input_image": "IMAGE_BYTES"
  },
  "criteria": [
    {
      "field": "state",
      "text_array": {
          "txt_values": [
            "California"
          ]
      }
    }
  ]
}

リクエストを送信するには、次のいずれかのオプションを選択します。

curl

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints/INDEX_ENDPOINT_ID:searchIndexEndpoint"

PowerShell

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints/INDEX_ENDPOINT_ID:searchIndexEndpoint" | Select-Object -Expand Content

次のような JSON レスポンスが返されます。

{
  "searchResultItems": [
    {
      "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_1"
    },
    {
      "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_2"
    }
  ]
}