參考圖片包含產品的各種視角。請遵守下列建議:
- 確認檔案大小未超過上限 (20 MB)。
- 請考慮從邏輯上突顯產品的觀點,並加入相關視覺資訊。
- 建立參考圖片,補足缺少的視角。舉例來說,如果只有一雙鞋的右腳圖片,請提供這些檔案的鏡像版本做為左腳圖片。
- 上傳解析度最高的圖片。
- 以白色背景顯示產品。
- 將透明背景的 PNG 轉換為實心背景。
圖片必須儲存在 Cloud Storage 值區中。如果您使用 API 金鑰驗證圖片建立呼叫,bucket 必須為公開。如果使用服務帳戶進行驗證,該服務帳戶必須具備值區的讀取權限。
建立單一參考圖片
你可以為現有產品新增參考圖片。接著就能透過圖片搜尋產品。
REST
使用任何要求資料之前,請先修改下列項目的值:
- PROJECT_ID: Google Cloud 專案 ID。
- LOCATION_ID:有效的商家 ID。有效的位置識別碼包括:
us-west1、us-east1、europe-west1和asia-east1。 - PRODUCT_ID:與參考圖片相關聯的產品 ID。這個 ID 是隨機設定,或由使用者在建立產品時指定。
- CLOUD_STORAGE_IMAGE_URI:Cloud Storage bucket 中有效圖片檔案的路徑。您至少必須具備檔案的讀取權限。
範例:
gs://storage-bucket/filename.jpg
HTTP 方法和網址:
POST https://vision.googleapis.com/v1/projects/project-id/locations/location-id/products/product-id/referenceImages
JSON 要求內文:
{
"uri": "cloud-storage-image-uri",
"boundingPolys": [
{
"vertices": [
{
"x": X_MIN,
"y": Y_MIN
},
{
"x": X_MAX,
"y": Y_MIN
},
{
"x": X_MAX,
"y": Y_MAX
},
{
"x": X_MIN,
"y": Y_MAX
}
]
}
]
}
如要傳送要求,請選擇以下其中一個選項:
curl
將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://vision.googleapis.com/v1/projects/project-id/locations/location-id/products/product-id/referenceImages"
PowerShell
將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://vision.googleapis.com/v1/projects/project-id/locations/location-id/products/product-id/referenceImages" | Select-Object -Expand Content
如果要求成功,伺服器會傳回 200 OK HTTP 狀態碼與 JSON 格式的回應。
畫面會顯示類似以下的輸出。範例要求在圖片中指定了單一 boundingPoly。定界框的頂點不會經過正規化;頂點值是實際的像素值,不會與原始圖片相關,也不會按比例縮放為 0 到 1。這些頂點的值如下:[(33,22),(282,22),(282,278),(33,278)]。
{
"name": "projects/project-id/locations/location-id/products/product-id/referenceImages/image-id",
"uri": "gs://storage-bucket/filename.jpg",
"boundingPolys": [
{
"vertices": [
{
"x": 33,
"y": 22
},
{
"x": 282,
"y": 22
},
{
"x": 282,
"y": 278
},
{
"x": 33,
"y": 278
}
]
}
]
}
Go
如要瞭解如何安裝及使用 Vision API Product Search 的用戶端程式庫,請參閱 Vision API Product Search 用戶端程式庫。 詳情請參閱 Vision API Product Search Go API 參考文件。
如要向 Vision API Product Search 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要瞭解如何安裝及使用 Vision API Product Search 的用戶端程式庫,請參閱 Vision API Product Search 用戶端程式庫。 詳情請參閱 Vision API Product Search Java API 參考文件。
如要向 Vision API Product Search 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要瞭解如何安裝及使用 Vision API Product Search 的用戶端程式庫,請參閱 Vision API Product Search 用戶端程式庫。 詳情請參閱 Vision API Product Search Node.js API 參考文件。
如要向 Vision API Product Search 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 Vision API Product Search 的用戶端程式庫,請參閱 Vision API Product Search 用戶端程式庫。 詳情請參閱 Vision API Product Search Python API 參考文件。
如要向 Vision API Product Search 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
其他語言
C#:請按照用戶端程式庫頁面上的 C# 設定操作說明完成相關步驟,然後參閱「.NET 適用的 Vision API Product Search 參考文件」。
PHP:請按照用戶端程式庫頁面上的 PHP 設定操作說明完成相關步驟,然後參閱「PHP 適用的 Vision API 產品搜尋參考文件」。
Ruby:請按照用戶端程式庫頁面上的 Ruby 設定操作說明完成相關步驟,然後參閱「Ruby 適用的 Vision API Product Search 參考文件」。
使用大量匯入功能建立多張參考圖片
建立產品組合和多項產品時,也可以同時建立參考圖像。
將 CSV 檔案的 Cloud Storage 位置傳遞至 import 方法,即可大量建立參考圖片。因此,CSV 檔案和指向的圖片都必須位於 Cloud Storage bucket 中。
如果您使用 API 金鑰驗證大量匯入呼叫,這個 CSV 來源檔案必須設為公開。
如果您使用服務帳戶進行驗證,該服務帳戶必須具備 CSV 來源檔案的讀取權限。
CSV 格式
image-uri,[image-id],product-set-id,product-id,product-category,[product-display-name],[label(s)],[bounding-poly]
如要進一步瞭解如何設定 CSV 格式,請參閱「CSV 格式」操作說明主題。
大量建立要求
REST
使用任何要求資料之前,請先修改下列項目的值:
- PROJECT_ID: Google Cloud 專案 ID。
- LOCATION_ID:有效的商家 ID。有效的位置識別碼包括:
us-west1、us-east1、europe-west1和asia-east1。 - STORAGE_PATH:儲存輸入 CSV 檔案的 Cloud Storage 值區/目錄。要求存取的使用者必須至少具備值區的讀取權限。
HTTP 方法和網址:
POST https://vision.googleapis.com/v1/projects/project-id/locations/location-id/productSets:import
JSON 要求內文:
{
"inputConfig": {
"gcsSource": {
"csvFileUri": "storage-path"
}
}
}
如要傳送要求,請選擇以下其中一個選項:
curl
將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://vision.googleapis.com/v1/projects/project-id/locations/location-id/productSets:import"
PowerShell
將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://vision.googleapis.com/v1/projects/project-id/locations/location-id/productSets:import" | Select-Object -Expand Content
畫面會顯示類似以下的輸出。您可以使用作業 ID (在本例中為 f10f34e32c40a710) 取得工作狀態。如需範例,請參閱「取得作業的狀態」:
{
"name": "projects/project-id/locations/location-id/operations/f10f34e32c40a710"
}長時間執行的作業完成後,您就能取得匯入作業的詳細資料。 回覆內容大致如下:
{
"name": "locations/location-id/operations/f10f34e32c40a710",
"metadata": {
"@type": "type.googleapis.com/google.cloud.vision.v1.BatchOperationMetadata",
"state": "SUCCESSFUL",
"submitTime": "2019-12-06T21:16:04.476466873Z",
"endTime": "2019-12-06T21:16:40.594258084Z"
},
"done": true,
"response": {
"@type": "type.googleapis.com/google.cloud.vision.v1.ImportProductSetsResponse",
"referenceImages": [
{
"name": "projects/project-id/locations/location-id/products/product_id0/referenceImages/image0",
"uri": "gs://my-storage-bucket/img_039.jpg"
},
{
"name": "projects/project-id/locations/location-id/products/product_id1/referenceImages/image1",
"uri": "gs://my-storage-bucket/img_105.jpg"
},
{
"name": "projects/project-id/locations/location-id/products/product_id2/referenceImages/image2",
"uri": "gs://my-storage-bucket/img_224.jpg"
},
{
"name": "projects/project-id/locations/location-id/products/product_id3/referenceImages/image3",
"uri": "gs://my-storage-bucket/img_385.jpg"
}
],
"statuses": [
{},
{},
{},
{}
]
}
}
Go
如要瞭解如何安裝及使用 Vision API Product Search 的用戶端程式庫,請參閱 Vision API Product Search 用戶端程式庫。 詳情請參閱 Vision API Product Search Go API 參考文件。
如要向 Vision API Product Search 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
如要瞭解如何安裝及使用 Vision API Product Search 的用戶端程式庫,請參閱 Vision API Product Search 用戶端程式庫。 詳情請參閱 Vision API Product Search Java API 參考文件。
如要向 Vision API Product Search 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
如要瞭解如何安裝及使用 Vision API Product Search 的用戶端程式庫,請參閱 Vision API Product Search 用戶端程式庫。 詳情請參閱 Vision API Product Search Node.js API 參考文件。
如要向 Vision API Product Search 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
如要瞭解如何安裝及使用 Vision API Product Search 的用戶端程式庫,請參閱 Vision API Product Search 用戶端程式庫。 詳情請參閱 Vision API Product Search Python API 參考文件。
如要向 Vision API Product Search 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
其他語言
C#:請按照用戶端程式庫頁面上的 C# 設定操作說明完成相關步驟,然後參閱「.NET 適用的 Vision API Product Search 參考文件」。
PHP:請按照用戶端程式庫頁面上的 PHP 設定操作說明完成相關步驟,然後參閱「PHP 適用的 Vision API 產品搜尋參考文件」。
Ruby:請按照用戶端程式庫頁面上的 Ruby 設定操作說明完成相關步驟,然後參閱「Ruby 適用的 Vision API Product Search 參考文件」。
建立索引
產品的 Product Search 索引大約每 30 分鐘會更新一次。新增或刪除圖片後,這些變更會在下次更新索引時,才反映在 Product Search 回應中。
如要確認索引編製作業是否已順利完成,請檢查產品組合的 indexTime 欄位。