使用 Vision API Product Search 构建商品图片搜索后端

1. 准备工作

25939f5a13eeb3c3.png

在前面的商品图片搜索学习衔接课程中,您学习了如何调用使用 Vision API Product Search 构建的商品搜索后端,以便从商品清单中获得外观类似的商品。

在本 Codelab 中,您将学习如何使用您的商品清单构建类似的后端。

学习内容

  • 如何使用 Vision API Product Search 构建商品搜索后端
  • 如何设置 API 密钥以从移动应用访问 Vision API

所需条件

  • 启用了结算功能的 Google Cloud 帐号(可以是免费试用帐号)

2. Vision API Product Search 简介

Vision API Product Search 是 Google Cloud 中的一项功能,可让零售商创建商品,且创建的每个商品都包含从一组视角直观描述该商品的参考图片。然后,零售商可以将这些商品添加到商品集中。目前,Vision API Product Search 支持以下商品类别:家庭用品、服装、玩具、包装商品和一般商品。

当用户使用自己的图片查询商品集时,Vision API Product Search 会应用机器学习,以比较用户查询图片中的商品与零售商商品集中的图片,然后返回在视觉和语义上类似的结果排序列表。

3. 使用 Google Cloud 构建后端

前面的商品图片搜索学习衔接课程中,您使用了使用 Vision API Product Search 构建的演示版商品搜索后端。请按照此教程在您的 Google Cloud 帐号中构建同一后端:

转到 Vision API Product Search 快速入门教程

完成此教程后,请继续执行以下步骤,设置 API 密钥以从您的移动应用调用该后端。

4. 设置 API 密钥

在 Vision API Product Search 快速入门教程中,您已构建了一个商品搜索后端,它可以获取查询图片并返回外观类似的商品。如需从移动应用调用商品搜索 API,您需要设置 API 密钥,然后仅限您自己的移动应用访问该密钥,以避免未经授权的使用情形。

创建 API 密钥

  1. 依次转到 Cloud Console > API 和服务 > 凭据。您还可以点击此网址,然后选择您在 Product Search 快速入门教程中使用过的项目。
  2. 依次选择创建凭据 > API 密钥。成功创建 API 密钥后,您将看到以下对话框:

d0bc04782a41a698.png

请记下此 API 密钥。在本 Codelab 的后面部分,您将用到该密钥。

限制对 API 密钥的访问权限

看到上述提示时,请选择限制密钥

按照屏幕上的说明应用这些限制:

  • 应用限制 > Android 应用
  • API 限制 > 限制密钥 > Cloud Vision API

5. 下载并运行移动应用

您可以下载之前构建的使用演示版商品搜索后端的 Android 应用,然后将其更改为使用您刚刚构建的新后端。

下载代码

点击下面的链接可下载本 Codelab 的所有代码:

下载源代码

解压缩下载的 ZIP 文件。此操作会解压缩一个根文件夹 (odml-pathway-codelabs),其中包含您需要的所有资源。在本 Codelab 中,您只需要 product-search/codelab2/android/final 子目录中的源代码。

该应用会用到 ML Kit Object Detection and Tracking API,以及使用 Vision API Product Search 构建的演示版商品搜索后端,让用户能够拍照并在演示版商品清单中搜索外观类似的商品。

将应用导入 Android Studio

首先,将起始应用导入 Android Studio。

转到 Android Studio,选择 Import Project (Gradle, Eclipse ADT, etc.),然后从您之前下载的源代码中选择 product-search/codelab2/android/final 文件夹。

7c0f27882a2698ac.png

运行起始应用

现在,您已将项目导入 Android Studio,可以首次运行该应用了。

通过 USB 将 Android 设备连接到主机,或启动 Android Studio 模拟器,然后点击 Android Studio 工具栏中的 Run 图标 (execute.png)。

(如果此按钮已停用,请确保仅导入 final/app/build.gradle,而不是整个代码库。)

现在,该应用应该已经在您的 Android 设备上启动了。该应用已经正常运行,但使用的是 Google 已为您部署的演示版商品搜索后端。

接下来,您需要更新该应用,使用您之前在本 Codelab 中构建的后端。

6. 更新 API 端点

更改 API 配置

请转到 ProductSearchAPIClient 类,您将看到已定义的商品搜索后端的配置。请注释掉演示版后端的配置:

// Define the product search backend
// Option 1: Use the demo project that we have already deployed for you
// const val VISION_API_URL =
    "https://us-central1-odml-codelabs.cloudfunctions.net/productSearch"
// const val VISION_API_KEY = ""
// const val VISION_API_PROJECT_ID = "odml-codelabs"
// const val VISION_API_LOCATION_ID = "us-east1"
// const val VISION_API_PRODUCT_SET_ID = "product_set0"

然后,将这些配置替换为您的配置:

// Option 2: Go through the Vision API Product Search quickstart and deploy to your project.
// Fill in the const below with your project info.
const val VISION_API_URL = "https://vision.googleapis.com/v1"
const val VISION_API_KEY = "YOUR_API_KEY"
const val VISION_API_PROJECT_ID = "YOUR_PROJECT_ID"
const val VISION_API_LOCATION_ID = "YOUR_LOCATION_ID"
const val VISION_API_PRODUCT_SET_ID = "YOUR_PRODUCT_SET_ID"
  • VISION_API_URL 是 Cloud Vision API 的 API 端点。
  • VISION_API_KEY 是您之前在本 Codelab 中创建的 API 密钥。
  • VISION_API_PROJECT_IDVISION_API_LOCATION_IDVISION_API_PRODUCT_SET_ID 是您在本 Codelab 前面的 Vision API Product Search 快速入门教程中使用的值。

开始运行

现在,点击 Android Studio 工具栏中的 Run 图标 (execute.png)。应用加载后,点按任意预设图片,选择检测到的对象,然后点按搜索按钮以查看搜索结果。该应用现在使用的是您刚刚创建的商品搜索后端!

25939f5a13eeb3c3.png

7. 恭喜!

您已经学习了如何使用 Vision API Product Search 构建商品搜索后端。

它现在可以立即运行并使用了!

所学内容

  • 如何使用您的商品清单和 Vision API Product Search 创建商品搜索后端
  • 如何设置 API 密钥以从移动应用调用商品搜索后端
  • 如何从移动应用调用后端

后续步骤

  • 观看此视频,了解如何使用 Vision API Product Search 构建智能衣橱
  • 查看 Product Search 设备端机器学习衔接课程,了解构建商品搜索功能所需的所有步骤
  • 将所学的知识运用到您自己的应用中

了解详情