Vision Warehouse API を使用すると、コマンドラインで Vision Warehouse リソースを管理できます。
データスキーマを作成する
画像コーパスでは、アセットレベルの粒度データ スキーマのみを作成できます。ストリーミング動画コーパスは、アセットレベルの粒度データ スキーマとパーティション レベルの粒度データ スキーマの両方を作成できます。バッチ動画コーパスでは、アセット レベルの粒度データスキーマとパーティション レベルの粒度データスキーマの両方を作成できます。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- REGIONALIZED_ENDPOINT: エンドポイントには、
LOCATION_ID
に一致する接頭辞(europe-west4-
など)が含まれる場合があります。 リージョン化されたエンドポイントの詳細をご覧ください。 - PROJECT_NUMBER: 実際の Google Cloud プロジェクト番号。
- LOCATION_ID: Vertex AI Vision を使用するリージョン。たとえば、
us-central1
、europe-west4
などです。利用可能なリージョンをご覧ください。 - CORPUS_ID: ターゲット コーパスの ID。
- DATASCHEMA_KEY: このキーは、ユーザー指定のアノテーションのキーと一致し、
corpus
内で一意である必要があります。例:data-key
- ANNOTATION_DATA_TYPE: アノテーションのデータ型。使用可能な値は次のとおりです。
DATA_TYPE_UNSPECIFIED
INTEGER
FLOAT
STRING
DATETIME
GEO_COORDINATE
PROTO_ANY
BOOLEAN
詳細については、API リファレンス ドキュメントをご覧ください。
- ANNOTATION_GRANULARITY: この
dataSchema
のアノテーションの粒度。使用可能な値は次のとおりです。GRANULARITY_UNSPECIFIED
- 粒度が指定されていません。GRANULARITY_ASSET_LEVEL
- アセットレベルの粒度(アノテーションにメディア アセットの時間パーティション情報を含めることはできません)。GRANULARITY_PARTITION_LEVEL
- パーティション レベルの粒度(アノテーションにはメディア アセットの時間パーティション情報を含める必要があります)。
- SEARCH_STRATEGY: 使用可能な列挙値のいずれか。アノテーション キーに適用する検索戦略のタイプ。使用可能な値は次のとおりです。
NO_SEARCH
EXACT_SEARCH
SMART_SEARCH
HTTP メソッドと URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas
リクエストの本文(JSON):
{ "key": "DATASCHEMA_KEY", "schema_details": { "type": "ANNOTATION_DATA_TYPE", "granularity": "ANNOTATION_GRANULARITY", "search_strategy": { "search_strategy_type": "SEARCH_STRATEGY" } } }
リクエストを送信するには、次のいずれかのオプションを選択します。
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/corpora/CORPUS_ID/dataSchemas"
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/corpora/CORPUS_ID/dataSchemas" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID", "key": "data-key", "schemaDetails": { "type": "BOOLEAN", "granularity": "GRANULARITY_ASSET_LEVEL", "searchStrategy": { "search_strategy_type": "EXACT_SEARCH" } } }
カスタム構造化データ スキーマを追加する
カスタム構造体を使用すると、値を保持して検索機能を提供する、より複雑なコンテナを定義できます。この機能を使用するには、次のようにデータスキーマを定義する必要があります。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- REGIONALIZED_ENDPOINT: エンドポイントには、
LOCATION_ID
に一致する接頭辞(europe-west4-
など)が含まれる場合があります。 リージョン化されたエンドポイントの詳細をご覧ください。 - PROJECT_NUMBER: 実際の Google Cloud プロジェクト番号。
- LOCATION_ID: Vertex AI Vision を使用しているリージョン。たとえば、
us-central1
、europe-west4
などです。利用可能なリージョンをご覧ください。 - CORPUS_ID: ターゲット コーパスの ID。
HTTP メソッドと URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas
リクエストの本文(JSON):
{ "key": "person", "schema_details" : { "type":"CUSTOMIZED_STRUCT", "granularity":"GRANULARITY_ASSET_LEVEL", "customized_struct_config": { "field_schemas": { "name": { "type":"STRING", "granularity":"GRANULARITY_ASSET_LEVEL", "search_strategy": { "search_strategy_type":"EXACT_SEARCH" } }, "age": { "type":"FLOAT", "granularity":"GRANULARITY_ASSET_LEVEL", "search_strategy": { "search_strategy_type":"EXACT_SEARCH" } } } } } }
リクエストを送信するには、次のいずれかのオプションを選択します。
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/corpora/CORPUS_ID/dataSchemas"
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/corpora/CORPUS_ID/dataSchemas" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID", "key": "person", "schemaDetails" : { "type":"CUSTOMIZED_STRUCT", "granularity":"GRANULARITY_ASSET_LEVEL", "customized_struct_config": { "field_schemas": { "name": { "type":"STRING", "granularity":"GRANULARITY_ASSET_LEVEL", "search_strategy": { "search_strategy_type":"EXACT_SEARCH" } }, "age": { "type":"FLOAT", "granularity":"GRANULARITY_ASSET_LEVEL", "search_strategy": { "search_strategy_type":"EXACT_SEARCH" } } } } } }
その後、アノテーションを挿入できます。
リクエストのデータを使用する前に、次のように置き換えます。
- REGIONALIZED_ENDPOINT: エンドポイントには、
LOCATION_ID
に一致する接頭辞(europe-west4-
など)が含まれる場合があります。 リージョン化されたエンドポイントの詳細をご覧ください。 - PROJECT_NUMBER: 実際の Google Cloud プロジェクト番号。
- LOCATION_ID: Vertex AI Vision を使用しているリージョン。たとえば、
us-central1
、europe-west4
などです。利用可能なリージョンをご覧ください。 - CORPUS_ID: ターゲット コーパスの ID。
- ASSET_ID: ターゲット アセットの ID。
HTTP メソッドと URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations
リクエストの本文(JSON):
{ "user_specified_annotation" : { "key": "person", "value": { "customized_struct_value":{ "elements" : { "name": { "str_value":"John" }, "age": { "float_value":10.5 } } } } } }
リクエストを送信するには、次のいずれかのオプションを選択します。
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/corpora/CORPUS_ID/assets/ASSET_ID/annotations"
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/corpora/CORPUS_ID/assets/ASSET_ID/annotations" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations/ANNOTATION_ID", "userSpecifiedAnnotation": { "key": "person", "value": { "customized_struct_value":{ "elements" : { "name": { "str_value":"John" }, "age": { "float_value":10.5 } } } } } }
アノテーションがインデックスに登録されると、次のように検索リクエストを発行できます。
リクエストのデータを使用する前に、次のように置き換えます。
- REGIONALIZED_ENDPOINT: エンドポイントには、
LOCATION_ID
に一致する接頭辞(europe-west4-
など)が含まれる場合があります。 リージョン化されたエンドポイントの詳細をご覧ください。 - PROJECT_NUMBER: 実際の Google Cloud プロジェクト番号。
- LOCATION_ID: Vertex AI Vision を使用するリージョン。たとえば、
us-central1
、europe-west4
などです。利用可能なリージョンをご覧ください。 - CORPUS_ID: ターゲット コーパスの ID。
HTTP メソッドと URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets
リクエストの本文(JSON):
{ "page_size": 10, "criteria": { "field": "person.name", "text_array": { "txt_values": "John" }, }, }
リクエストを送信するには、次のいずれかのオプションを選択します。
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/corpora/CORPUS_ID:searchAssets"
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/corpora/CORPUS_ID:searchAssets" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
データ スキーマを更新する
REST とコマンドライン
次のコードは、projects.locations.corpora.dataSchemas.patch
メソッドを使用して dataSchema
を更新します。
このサンプルでは、リクエスト URL で ?updateMask=schemaDetails.type,schemaDetails.granularity
を使用しています。リクエストの本文に schemaDetails.type
と schemaDetails.granularity
の値を含めて、データスキーマを更新します。
リクエストのデータを使用する前に、次のように置き換えます。
- REGIONALIZED_ENDPOINT: エンドポイントには、
LOCATION_ID
に一致する接頭辞(europe-west4-
など)が含まれる場合があります。 リージョン化されたエンドポイントの詳細をご覧ください。 - PROJECT_NUMBER: 実際の Google Cloud プロジェクト番号。
- LOCATION_ID: Vertex AI Vision を使用しているリージョン。たとえば、
us-central1
、europe-west4
などです。利用可能なリージョンをご覧ください。 - CORPUS_ID: ターゲット コーパスの ID。
- DATASCHEMA_ID: ターゲット データスキーマの ID。
?updateMask=fieldToUpdate
:updateMask
を適用できる使用可能なフィールドの 1 つ。リクエストの本文で、対応する新しいフィールド値を指定します。この新しい値は、既存のフィールド値を置き換えます。使用可能なフィールド:- キー:
?updateMask=key
- スキーマタイプ:
?updateMask=schemaDetails.type
- スキーマの粒度:
?updateMask=schemaDetails.granularity
- スキーマ検索戦略のタイプ:
?updateMask=schemaDetails.searchStrategy.searchStrategyType
- すべてのフィールドを更新する:
?updateMask=*
- キー:
HTTP メソッドと URL:
PATCH https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID?updateMask=schemaDetails.type,schemaDetails.granularity
リクエストの本文(JSON):
{ "key": "original-data-key", "schemaDetails": { "type":"INTEGER", "granularity":"GRANULARITY_PARTITION_LEVEL" "searchStrategy": { "searchStrategyType": "NO_SEARCH" } } }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X PATCH \
-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/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID?updateMask=schemaDetails.type,schemaDetails.granularity"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID?updateMask=schemaDetails.type,schemaDetails.granularity" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID", "key": "original-data-key", "schemaDetails": { "type": "INTEGER", "granularity": "GRANULARITY_PARTITION_LEVEL", "searchStrategy": { "searchStrategyType": "NO_SEARCH" } } }
コーパス内のデータスキーマを一覧表示する
特定のコーパスのすべての DataSchema
を一覧表示します。レスポンスにはすべての DataSchema
リソースが含まれます。各リソースには、特定の DataSchema
の取得に使用できる DataSchema
リソース名が含まれます。
REST
データスキーマを一覧表示するには、projects.locations.corpora.dataSchemas.list メソッドを使用して GET リクエストを送信します。
リクエストのデータを使用する前に、次のように置き換えます。
- REGIONALIZED_ENDPOINT: エンドポイントには、
LOCATION_ID
に一致する接頭辞(europe-west4-
など)が含まれる場合があります。 リージョン化されたエンドポイントの詳細をご覧ください。 - PROJECT_NUMBER: 実際の Google Cloud プロジェクト番号。
- LOCATION_ID: Vertex AI Vision を使用しているリージョン。たとえば、
us-central1
、europe-west4
などです。利用可能なリージョンをご覧ください。 - CORPUS_ID: ターゲット コーパスの ID。
HTTP メソッドと URL:
GET https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas"
PowerShell
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "dataSchemas": [ { "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/KEY_STRING1", "key": "KEY_STRING1", "schemaDetails": { "type": "STRING", "granularity": "GRANULARITY_ASSET_LEVEL", "searchStrategy": { "searchStrategyType": "EXACT_SEARCH" } } }, { "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/KEY_STRING2", "key": "KEY_STRING2", "schemaDetails": { "type": "PROTO_ANY", "granularity": "GRANULARITY_PARTITION_LEVEL", "protoAnyConfig": { "typeUri": "type.googleapis.com/google.cloud.visionai.v1.VideoActionRecognitionPredictionResult" }, "searchStrategy": { "searchStrategyType": "SMART_SEARCH" } } } ] }
データスキーマを取得する
特定のリソース名 DataSchema
の DataSchema
を取得します。
REST
特定のデータスキーマの詳細を取得するには、projects.locations.corpora.dataSchemas.get メソッドを使用して GET リクエストを送信します。
リクエストのデータを使用する前に、次のように置き換えます。
- REGIONALIZED_ENDPOINT: エンドポイントには、
LOCATION_ID
に一致する接頭辞(europe-west4-
など)が含まれる場合があります。 リージョン化されたエンドポイントの詳細をご覧ください。 - PROJECT_NUMBER: 実際の Google Cloud プロジェクト番号。
- LOCATION_ID: Vertex AI Vision を使用しているリージョン。たとえば、
us-central1
、europe-west4
などです。利用可能なリージョンをご覧ください。 - CORPUS_ID: ターゲット コーパスの ID。
- DATASCHEMA_ID: ターゲット データスキーマの ID。
HTTP メソッドと URL:
GET https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID"
PowerShell
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/KEY_STRING", "key": "KEY_STRING", "schemaDetails": { "type": "STRING", "granularity": "GRANULARITY_ASSET_LEVEL", "searchStrategy": { "searchStrategyType": "EXACT_SEARCH" } } }
データスキーマを削除する
REST とコマンドライン
次のコードサンプルは、projects.locations.corpora.dataSchemas.delete
メソッドを使用してウェアハウス dataSchema
を削除します。
リクエストのデータを使用する前に、次のように置き換えます。
- REGIONALIZED_ENDPOINT: エンドポイントには、
LOCATION_ID
に一致する接頭辞(europe-west4-
など)が含まれる場合があります。 リージョン化されたエンドポイントの詳細をご覧ください。 - PROJECT_NUMBER: 実際の Google Cloud プロジェクト番号。
- LOCATION_ID: Vertex AI Vision を使用するリージョン。たとえば、
us-central1
、europe-west4
などです。利用可能なリージョンをご覧ください。 - CORPUS_ID: ターゲット コーパスの ID。
- DATASCHEMA_ID: ターゲット データスキーマの ID。
HTTP メソッドと URL:
DELETE https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID"
PowerShell
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{}
ウェアハウス スキーマの詳細を変更する(コンソール)
スキーマ フィールドは、アプリケーションを介してモデルから生成されます。カスタム フィールドを追加することもできます。
ファセット可能なフィールドを変更すると、それらを使用してウェアハウスを検索できます。
コンソール
Vertex AI Vision ダッシュボードの [ウェアハウス] タブを開きます。
ウェアハウス コーパスを見つけて、その名前を選択します。[Warehouse の詳細] ページが表示されます。
検索で有効にするフィールドを選択します。