商品セットが作成されて、そのインデックスが作成されたら、Cloud Vision API を使用して商品セットをクエリできます。
一致する商品の検索
指定された画像に類似する商品を検索するには、画像の Google Cloud Storage URI、ウェブ URL または base64 でエンコードされた文字列を Vision API Product Search に渡します。リクエストの最大サイズと割り当ての情報については、使用制限をご覧ください。
1 つの画像で 1 つの商品が検出された場合と複数の商品が検出された場合の例については、検索レスポンスと複数検出についてをご覧ください。
ローカル画像を使用して検索する
以下のサンプルは、リクエストに RAW 画像バイト(base64 でエンコードされた画像)をインラインで挿入することで、ローカル ファイルを読み取り、API にクエリを送信します。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- BASE64_ENCODED_IMAGE: バイナリ画像データの base64 表現(ASCII 文字列)。これは次のような文字列になります。
/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
- PROJECT_ID: Google Cloud プロジェクト ID。
- LOCATION_ID: 有効なロケーション ID。有効なロケーション ID は
us-west1
、us-east1
、europe-west1
、asia-east1
です。 - PRODUCT_SET_ID: 操作を実行する商品セットの ID。
フィールド固有の考慮事項:
features.maxResults
- 返される結果の最大件数です。imageContext.productCategories
- 検索を実行する商品カテゴリです。現在、商品カテゴリは、ホームグッズ、アパレル、玩具、グッズ、総合から 1 つのみ指定できます。imageContext.filter
- (省略可)商品ラベルに対する Key-Value の単一または複数のフィルタリング式です。フォーマット: 「key
=value
」。フィルタリングする Key-Value ペアは、次のように AND 式または OR 式を使ってリンクできます。「color
=blue
ANDstyle
=mens
」、または「color
=blue
ORcolor
=black
」。OR 式を使用する場合、式の鍵がすべて同じである必要があります。
HTTP メソッドと URL:
POST https://vision.googleapis.com/v1/images:annotate
リクエストの本文(JSON):
{ "requests": [ { "image": { "content": base64-encoded-image }, "features": [ { "type": "PRODUCT_SEARCH", "maxResults": 5 } ], "imageContext": { "productSearchParams": { "productSet": "projects/project-id/locations/location-id/productSets/product-set-id", "productCategories": [ "apparel" ], "filter": "style = womens" } } } ] }
リクエストを送信するには、次のいずれかのオプションを選択します。
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/images:annotate"
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/images:annotate" | Select-Object -Expand Content
リクエストが成功すると、サーバーは 200 OK
HTTP ステータス コードと JSON 形式のレスポンスを返します。
レスポンスの JSON は次のようになります。
productSearchResults
- 画像全体に一致する商品のリストが含まれます。サンプルのレスポンスで、一致する商品は product_id65、product_id35、product_id34、product_id62、product_id32 です。productGroupedResults
- 境界ボックスの座標と、画像で識別されたそれぞれの商品に一致するアイテムが含まれます。次のレスポンスでは、識別された商品は 1 つのみで、続いてサンプルの商品セットと一致する商品(product_id65、product_id35、product_id34、product_id93、product_id62)が表示されます。
2 つの結果のデータの種類には重複がありますが、レスポンスが異なる(たとえば product_id32 や product_id93 など)場合もあります。
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 Product Search リファレンス ドキュメントをご覧ください。
Ruby: クライアント ライブラリ ページの Ruby の設定手順を行ってから、Ruby 用の Vision API Product Search リファレンス ドキュメントをご覧ください。
リモート画像を使用して検索する
画像の Cloud Storage URI を指定することで、特定の画像に類似する商品を検出することもできます。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- CLOUD_STORAGE_IMAGE_URI: Cloud Storage バケット内の有効な画像ファイルへのパス。少なくとも、ファイルに対する読み取り権限が必要です。例:
gs://storage-bucket/filename.jpg
- PROJECT_ID: Google Cloud プロジェクト ID。
- LOCATION_ID: 有効なロケーション ID。有効なロケーション ID は
us-west1
、us-east1
、europe-west1
、asia-east1
です。 - PRODUCT_SET_ID: 操作を実行する商品セットの ID。
フィールド固有の考慮事項:
features.maxResults
- 返される結果の最大件数です。imageContext.productCategories
- 検索を実行する商品カテゴリです。現在、商品カテゴリは、ホームグッズ、アパレル、玩具、グッズ、総合から 1 つのみ指定できます。imageContext.filter
- (省略可)商品ラベルに対する Key-Value の単一または複数のフィルタリング式です。フォーマット: 「key
=value
」。フィルタリングする Key-Value ペアは、次のように AND 式または OR 式を使ってリンクできます。「color
=blue
ANDstyle
=mens
」、または「color
=blue
ORcolor
=black
」。OR 式を使用する場合、式の鍵がすべて同じである必要があります。
HTTP メソッドと URL:
POST https://vision.googleapis.com/v1/images:annotate
リクエストの本文(JSON):
{ "requests": [ { "image": { "source": { "gcsImageUri": "cloud-storage-image-uri" } }, "features": [ { "type": "PRODUCT_SEARCH", "maxResults": 5 } ], "imageContext": { "productSearchParams": { "productSet": "projects/project-id/locations/location-id/productSets/product-set-id", "productCategories": [ "apparel" ], "filter": "style = womens" } } } ] }
リクエストを送信するには、次のいずれかのオプションを選択します。
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/images:annotate"
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/images:annotate" | Select-Object -Expand Content
リクエストが成功すると、サーバーは 200 OK
HTTP ステータス コードと JSON 形式のレスポンスを返します。
レスポンスの JSON は次のようになります。
productSearchResults
- 画像全体に一致する商品のリストが含まれます。サンプルのレスポンスで、一致する商品は product_id65、product_id35、product_id34、product_id62、product_id32 です。productGroupedResults
- 境界ボックスの座標と、画像で識別されたそれぞれの商品に一致するアイテムが含まれます。次のレスポンスでは、識別された商品は 1 つのみで、続いてサンプルの商品セットと一致する商品(product_id65、product_id35、product_id34、product_id93、product_id62)が表示されます。
2 つの結果のデータの種類には重複がありますが、レスポンスが異なる(たとえば product_id32 や product_id93 など)場合もあります。
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 Product Search リファレンス ドキュメントをご覧ください。
Ruby: クライアント ライブラリ ページの Ruby の設定手順を行ってから、Ruby 用の Vision API Product Search リファレンス ドキュメントをご覧ください。