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

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

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

准备工作

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.
  3. To initialize the gcloud CLI, run the following command:

    gcloud init
  4. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Enable the Vision API:

    gcloud services enable vision.googleapis.com
  7. Grant roles to your user account. Run the following command once for each of the following IAM roles: roles/storage.objectViewer

    gcloud projects add-iam-policy-binding PROJECT_ID --member="USER_IDENTIFIER" --role=ROLE
    • Replace PROJECT_ID with your project ID.
    • Replace USER_IDENTIFIER with the identifier for your user account. For example, user:myemail@example.com.

    • Replace ROLE with each individual role.
  8. Install the Google Cloud CLI.
  9. To initialize the gcloud CLI, run the following command:

    gcloud init
  10. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  11. Make sure that billing is enabled for your Google Cloud project.

  12. Enable the Vision API:

    gcloud services enable vision.googleapis.com
  13. Grant roles to your user account. Run the following command once for each of the following IAM roles: roles/storage.objectViewer

    gcloud projects add-iam-policy-binding PROJECT_ID --member="USER_IDENTIFIER" --role=ROLE
    • Replace PROJECT_ID with your project ID.
    • Replace USER_IDENTIFIER with the identifier for your user account. For example, user:myemail@example.com.

    • Replace ROLE with each individual 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 项目。

Optional: Revoke credentials from the gcloud CLI.

gcloud auth revoke

后续步骤