创建自己的商品集且将商品集编入索引后,可以使用 Cloud Vision API 查询商品集。
搜索匹配商品
您可以将图片的 Google Cloud Storage URI、网址或 base64 编码字符串传递给 Cloud Vision API Product Search,从而找到与指定图片类似的商品。如需了解请求大小上限和配额信息,请参阅使用量限制。
要查看有关检测单件商品以及检测图片中多件商品的示例,请参阅了解搜索响应和多件商品检测主题。
使用本地图片进行搜索
以下示例会读取一个本地文件,并通过在请求中内嵌原始图片字节(base64 编码图片)来查询 API。
REST
在使用任何请求数据之前,请先进行以下替换:
- BASE64_ENCODED_IMAGE:二进制图片数据的 base64 表示(ASCII 字符串)。此字符串应类似于以下字符串:
/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
- PROJECT_ID:您的 Google Cloud 项目 ID。
- LOCATION_ID:有效的位置标识符。有效的位置标识符包括
us-west1
、us-east1
、europe-west1
和asia-east1
。 - PRODUCT_SET_ID:您要对其执行操作的商品集的 ID。
特定于字段的注意事项:
features.maxResults
- 要返回的结果数的上限。imageContext.productCategories
- 要搜索的商品类别。目前,您只能指定一种商品类别(家庭用品、服装、玩具、包装商品和一般商品)。imageContext.filter
-(可选)用于商品标签的一个(或多个)键值对过滤表达式。格式:“key
=value
”。过滤键值对可以与 AND 或 OR 表达式搭配使用:“color
=blue
ANDstyle
=mens
”或“color
=blue
ORcolor
=black
”。如果使用 OR 表达式,则表达式中的所有键必须相同。
HTTP 方法和网址:
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
- 包含图片中识别的每个商品的边界框坐标和匹配项。在以下响应中,仅识别了一个商品,后跟示例商品集中的匹配商品:product_id65、product_id35、product_id34、product_id93 和 product_id62。
请注意,虽然这两种结果类型存在重叠,但也可能存在差异(例如,响应中的 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:有效的位置标识符。有效的位置标识符包括
us-west1
、us-east1
、europe-west1
和asia-east1
。 - PRODUCT_SET_ID:您要对其执行操作的商品集的 ID。
特定于字段的注意事项:
features.maxResults
- 要返回的结果数的上限。imageContext.productCategories
- 要搜索的商品类别。目前,您只能指定一种商品类别(家庭用品、服装、玩具、包装商品和一般商品)。imageContext.filter
-(可选)用于商品标签的一个(或多个)键值对过滤表达式。格式:“key
=value
”。过滤键值对可以与 AND 或 OR 表达式搭配使用:“color
=blue
ANDstyle
=mens
”或“color
=blue
ORcolor
=black
”。如果使用 OR 表达式,则表达式中的所有键必须相同。
HTTP 方法和网址:
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
- 包含图片中识别的每个商品的边界框坐标和匹配项。在以下响应中,仅识别了一个商品,后跟示例商品集中的匹配商品:product_id65、product_id35、product_id34、product_id93 和 product_id62。
请注意,虽然这两种结果类型存在重叠,但也可能存在差异(例如,响应中的 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 参考文档。