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_UNSPECIFIEDINTEGERFLOATSTRINGDATETIMEGEO_COORDINATEPROTO_ANYBOOLEAN
詳細については、API リファレンス ドキュメントをご覧ください。
- ANNOTATION_GRANULARITY: この
dataSchemaのアノテーションの粒度。使用可能な値は次のとおりです。GRANULARITY_UNSPECIFIED- 粒度が指定されていません。GRANULARITY_ASSET_LEVEL- アセットレベルの粒度(アノテーションにメディア アセットの時間パーティション情報を含めることはできません)。GRANULARITY_PARTITION_LEVEL- パーティション レベルの粒度(アノテーションにはメディア アセットの時間パーティション情報を含める必要があります)。
- SEARCH_STRATEGY: 使用可能な列挙値のいずれか。アノテーション キーに適用する検索戦略のタイプ。使用可能な値は次のとおりです。
NO_SEARCHEXACT_SEARCHSMART_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 の詳細] ページが表示されます。
検索で有効にするフィールドを選択します。
