Image Warehouse は、画像と画像のアノテーションを保存して管理できる場所です。
イメージ ウェアハウスを作成する
まず、コーパスを作成する必要があります。
REST とコマンドライン
指定されたプロジェクトの下にコーパス リソースを作成し、Corpus
の表示名と説明を指定できます。
リクエストのデータを使用する前に、次のように置き換えます。
- REGIONALIZED_ENDPOINT: エンドポイントには、
LOCATION_ID
に一致する接頭辞(europe-west4-
など)が含まれている場合があります。 リージョン化されたエンドポイントの詳細をご覧ください。 - PROJECT_NUMBER: Google Cloud プロジェクト番号。
- LOCATION_ID: Vertex AI Vision を使用するリージョン。例:
us-central1
、europe-west4
。利用可能なリージョンをご覧ください。 - DISPLAY_NAME: 倉庫の表示名。
- WAREHOUSE_DESCRIPTION: ウェアハウスの説明(
corpus
)。
HTTP メソッドと URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora
リクエストの本文(JSON):
{ "display_name": "DISPLAY_NAME", "description": "WAREHOUSE_DESCRIPTION", "type": "IMAGE", "search_capability_setting": { "search_capabilities": { "type": "EMBEDDING_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"
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" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/warehouseoperations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.visionai.v1.CreateCorpusMetadata" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.visionai.v1.Corpus", "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID", "displayName": "DISPLAY_NAME", "description": "WAREHOUSE_DESCRIPTION", "type": "IMAGE", "search_capability_setting": { "search_capabilities": { "type": "EMBEDDING_SEARCH" } } } }
データスキーマの作成
アノテーションをインポートする場合は、Import API を呼び出す前に、対応するデータスキーマを作成する必要があります。
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" } } }
アセットを画像コーパスにインポートする
指定したプロジェクトの既存のコーパスにアセット(必要に応じてアノテーション)をインポートします。
ImportAsset リクエストの Cloud Storage ファイルは JSONL 形式である必要があります。ファイル内の各行は 1 つのアセットに対応し、InputImageAsset
proto に変換されます。次に例を示します。
{"gcsUri":"gs://test/test1.png","assetId":"asset1","annotations":[{"key":"title","value":{"strValue":"cat"}}]}
{"gcsUri":"gs://test/test2.png","assetId":"asset2","annotations":[{"key":"title","value":{"strValue":"dog"}}]}
{"gcsUri":"gs://test/test3.png","assetId":"asset3","annotations":[{"key":"title","value":{"strValue":"rabbit"}}]}
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/assets:import
リクエストの本文(JSON):
{ "parent": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID, "assets_gcs_uri": GCS_URI }
リクエストを送信するには、次のいずれかのオプションを選択します。
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:import"
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:import" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/operations/OPERATION_ID", }
コーパス内のアセットを分析する
画像検索の準備をするには、AnalyzeCorpus を実行して画像からエンベディング シグナルを生成する必要があります。
REST とコマンドライン
このサンプルでは、コーパス リソースで AnalyzeCorpus を実行する方法を示します。
リクエストのデータを使用する前に、次のように置き換えます。
- 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:analyze
リクエストの本文(JSON):
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID }
リクエストを送信するには、次のいずれかのオプションを選択します。
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:analyze"
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:analyze" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/operations/OPERATION_ID", }
インデックスを作成する
REST とコマンドライン
このサンプルは、コーパス リソースにインデックスを作成する方法を示しています。
リクエストのデータを使用する前に、次のように置き換えます。
- REGIONALIZED_ENDPOINT: エンドポイントには、
LOCATION_ID
に一致する接頭辞(europe-west4-
など)が含まれている場合があります。 リージョン化されたエンドポイントの詳細をご覧ください。 - PROJECT_NUMBER: Google Cloud プロジェクト番号。
- LOCATION_ID: Vertex AI Vision を使用するリージョン。例:
us-central1
、europe-west4
。利用可能なリージョンをご覧ください。 - CORPUS_ID: ターゲット コーパスの ID。
- INDEX_ID: (省略可)インデックス ID のユーザー指定値。このリクエストでは、値は次の形式でリクエスト URL に追加されます。
- https://REGIONALIZED_ENDPOINT/v1/[...]/corpora/CORPUS_ID/indexes?index_id=INDEX_ID
HTTP メソッドと URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes
リクエストの本文(JSON):
{ "display_name": "DISPLAY_NAME", "description": "INDEX_DESCRIPTION", }
リクエストを送信するには、次のいずれかのオプションを選択します。
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/indexes"
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/indexes" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.visionai.v1.CreateIndexMetadata" } }
インデックス エンドポイントを作成する
REST とコマンドライン
このサンプルは、インデックス エンドポイントを作成する方法を示しています。
リクエストのデータを使用する前に、次のように置き換えます。
- REGIONALIZED_ENDPOINT: エンドポイントには、
LOCATION_ID
に一致する接頭辞(europe-west4-
など)が含まれている場合があります。 リージョン化されたエンドポイントの詳細をご覧ください。 - PROJECT_NUMBER: Google Cloud プロジェクト番号。
- LOCATION_ID: Vertex AI Vision を使用するリージョン。例:
us-central1
、europe-west4
。利用可能なリージョンをご覧ください。 - INDEX_ENDPOINT_ID: (省略可)インデックス エンドポイント ID のユーザー指定値。このリクエストでは、値は次の形式でリクエスト URL に追加されます。
- https://REGIONALIZED_ENDPOINT/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints?index_endpoint_id=INDEX_ENDPOINT_ID
HTTP メソッドと URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints
リクエストの本文(JSON):
{ "display_name": "DISPLAY_NAME", "description": "DESCRIPTION", }
リクエストを送信するには、次のいずれかのオプションを選択します。
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"
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" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints/INDEX_ENDPOINT_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.visionai.v1.CreateIndexEndpointMetadata" } }
インデックスをインデックス エンドポイントにデプロイする
REST とコマンドライン
このサンプルでは、インデックス エンドポイント リソースにインデックスをデプロイする方法を示します。
リクエストのデータを使用する前に、次のように置き換えます。
- REGIONALIZED_ENDPOINT: エンドポイントには、
LOCATION_ID
に一致する接頭辞(europe-west4-
など)が含まれている場合があります。 リージョン化されたエンドポイントの詳細をご覧ください。 - PROJECT_NUMBER: Google Cloud プロジェクト番号。
- LOCATION_ID: Vertex AI Vision を使用するリージョン。例:
us-central1
、europe-west4
。利用可能なリージョンをご覧ください。 - INDEX_ENDPOINT_ID: ターゲット インデックス エンドポイントの ID。
- CORPUS_ID: ターゲット コーパスの ID。
- INDEX_ID: ターゲット インデックスの ID。
HTTP メソッドと URL:
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints/INDEX_ENDPOINT_ID:deployIndex
リクエストの本文(JSON):
{ "deployedIndex": { "index": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID" } }
リクエストを送信するには、次のいずれかのオプションを選択します。
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:deployIndex"
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:deployIndex" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints/INDEX_ENDPOINT_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.visionai.v1.DeployIndexMetadata", "deployedIndex": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID" } }