使用命令行检测图片中的标签

本页面展示如何使用 REST 接口curl 命令向 Vision API 发送三个特征检测和注释请求。

通过 Vision API,可将 Google 视觉识别技术轻松集成到开发者应用中。您可以将图片数据和所需的特征类型发送给 Vision API,后者会根据您感兴趣的图片特性返回相应的响应。如需详细了解 Vision API 提供的特征类型,请参阅所有 Vision API 特征列表

准备工作

  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 安装 Google Cloud CLI。
  3. 如需初始化 gcloud CLI,请运行以下命令:

    gcloud init
  4. 创建或选择 Google Cloud 项目

    • 创建 Google Cloud 项目:

      gcloud projects create PROJECT_ID

      PROJECT_ID 替换为您要创建的 Google Cloud 项目的名称。

    • 选择您创建的 Google Cloud 项目:

      gcloud config set project PROJECT_ID

      PROJECT_ID 替换为您的 Google Cloud 项目 名称。

  5. 确保您的 Google Cloud 项目已启用结算功能

  6. Enable the Vision API:

    gcloud services enable vision.googleapis.com
  7. 向您的 Google 账号授予角色。对以下每个 IAM 角色运行以下命令一次: roles/storage.objectViewer

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:EMAIL_ADDRESS" --role=ROLE
    • PROJECT_ID 替换为您的项目 ID。
    • EMAIL_ADDRESS 替换为您的电子邮件地址。
    • ROLE 替换为每个角色。
  8. 安装 Google Cloud CLI。
  9. 如需初始化 gcloud CLI,请运行以下命令:

    gcloud init
  10. 创建或选择 Google Cloud 项目

    • 创建 Google Cloud 项目:

      gcloud projects create PROJECT_ID

      PROJECT_ID 替换为您要创建的 Google Cloud 项目的名称。

    • 选择您创建的 Google Cloud 项目:

      gcloud config set project PROJECT_ID

      PROJECT_ID 替换为您的 Google Cloud 项目 名称。

  11. 确保您的 Google Cloud 项目已启用结算功能

  12. Enable the Vision API:

    gcloud services enable vision.googleapis.com
  13. 向您的 Google 账号授予角色。对以下每个 IAM 角色运行以下命令一次: roles/storage.objectViewer

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:EMAIL_ADDRESS" --role=ROLE
    • PROJECT_ID 替换为您的项目 ID。
    • EMAIL_ADDRESS 替换为您的电子邮件地址。
    • ROLE 替换为每个角色。

发出图片注释请求

完成准备工作步骤后,就可以使用 Vision API 对图片文件进行注释了。

在以下示例中,您将使用下面的图片,通过 curl 向 Vision API 发送请求:

Cloud Storage URI

gs://cloud-samples-data/vision/using_curl/shanghai.jpeg

HTTPS 网址

https://console.cloud.google.com/storage/browser/cloud-samples-data/vision/using_curl/shanghai.jpeg

上海街景图片。
图片来源:Steve Long (Unsplash)。

创建请求 JSON

以下 request.json 文件演示了如何请求三个 images:annotate 特征并限制响应中的结果。

创建包含以下文本的 JSON 请求文件,然后将其以 request.json 纯文本文件的格式保存在工作目录下:

request.json

{
  "requests": [
    {
      "image": {
        "source": {
          "imageUri": "gs://cloud-samples-data/vision/using_curl/shanghai.jpeg"
        }
      },
      "features": [
        {
          "type": "LABEL_DETECTION",
          "maxResults": 3
        },
        {
          "type": "OBJECT_LOCALIZATION",
          "maxResults": 1
        },
        {
          "type": "TEXT_DETECTION",
          "maxResults": 1,
          "model": "builtin/latest"
        }
      ]
    }
  ]
}

发送请求

您可以使用 request.json 中的正文内容和 curl 工具向 Vision API 发送请求。在命令行中输入以下内容:

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" \
    https://vision.googleapis.com/v1/images:annotate -d @request.json

解读响应

您应该看到和下方类似的 JSON 响应。

该 JSON 格式的请求正文为每种注释类型指定了 maxResults。 因此,您将在响应 JSON 中看到以下内容:

标签检测结果

  1. 说明:“人物”,得分:0.950
  2. 说明:“街道”,得分:0.891
  3. 说明:“交通方式”,得分:0.890
包含标签检测结果的上海街景图片。
图片来源:Steve Long (Unsplash)(已添加注释)。

文本检测结果

  • 文本:牛牛面馆\n
  • 顶点:(x: 159, y: 212)、(x: 947, y: 212)、(x: 947, y: 354)、(x: 159, y: 354)
包含文本检测结果的上海街景图片。
图片来源:Steve Long (Unsplash)(已添加注释)。

对象检测结果

  • 名称:“人”,得分:0.944
  • 归一化顶点:(x: 0.260, y: 0.468)、(x: 0.407, y: 0.468)、(x: 0.407, y: 0.895)、(x: 0.260, y: 0.895)
包含对象检测结果的上海街景图片。
图片来源:Steve Long (Unsplash)(已添加注释)。

恭喜!您已向 Vision API 发送了自己的第一个请求!

清理

为避免因本页面中使用的资源导致您的 Google Cloud 账号产生费用,请删除包含这些资源的 Google Cloud 项目。

可选:从 gcloud CLI 撤消凭据。

gcloud auth revoke

后续步骤