參考圖片包含產品的各種視角。請遵守下列建議:
- 確認檔案大小未超過上限 (20 MB)。
- 請考慮能以邏輯方式凸顯產品,並包含相關視覺資訊的觀點。
- 建立參考圖片,補足缺少的視角。舉例來說,如果只有一雙鞋的右腳圖片,請提供這些檔案的鏡像版本做為左腳圖片。
- 上傳解析度最高的圖片。
- 在白色背景上展示產品。
- 將透明背景的 PNG 轉換為實心背景。
圖片必須儲存在 Cloud Storage 值區。如果您使用 API 金鑰驗證圖片建立呼叫,儲存空間必須為公開。如要使用服務帳戶進行驗證,該服務帳戶必須具備值區的讀取權限。
建立單一參考圖片
你可以為現有產品新增參考圖片。接著就能透過圖片搜尋產品。
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 值區中有效圖片檔案的路徑。您必須至少擁有檔案的讀取權限。
範例:
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 值區中。
如果您使用 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
欄位。