您可以在圖像倉庫中儲存及管理圖像,以及圖像上的註解。
建立圖片倉儲
首先,您需要建立字詞庫。
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 方法和網址:
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"
}
}
}
}
建立資料結構定義
如要匯入註解,您必須先建立對應的資料結構定義,再呼叫匯入 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_UNSPECIFIEDINTEGERFLOATSTRINGDATETIMEGEO_COORDINATEPROTO_ANYBOOLEAN
詳情請參閱 API 參考說明文件。
- ANNOTATION_GRANULARITY:這個
dataSchema下方註解的精細程度。可用的值如下:GRANULARITY_UNSPECIFIED- 未指定精細程度。GRANULARITY_ASSET_LEVEL- 素材資源層級精細度 (註解不得包含媒體素材資源的時間區隔資訊)。GRANULARITY_PARTITION_LEVEL- 分區層級精細程度 (註解必須包含媒體資產的時間分區資訊)。
- SEARCH_STRATEGY:可用的列舉值之一。要套用至註解鍵的搜尋策略類型。可用的值如下:
NO_SEARCHEXACT_SEARCHSMART_SEARCH
HTTP 方法和網址:
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 格式。在檔案中,每列都對應至一個素材資源,並會轉換為 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 方法和網址:
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 方法和網址:
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 值。在這個要求中,值會以以下格式加入要求網址:
- https://REGIONALIZED_ENDPOINT/v1/[...]/corpora/CORPUS_ID/indexes?index_id=INDEX_ID
HTTP 方法和網址:
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 值。在這個要求中,值會以以下格式加入要求網址:
- https://REGIONALIZED_ENDPOINT/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints?index_endpoint_id=INDEX_ENDPOINT_ID
HTTP 方法和網址:
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 方法和網址:
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"
}
}