首页 > 解决方案 > 谷歌表格:自动获取图像分类标签的公式、脚本或扩展?

问题描述

我有一个包含图片 URL 列表的 Google 表格。

第一列:图片网址。第二列:描述图像的标签(例如:“风景、山、田、日落、湖”,用于带有山、田、日落等的风景图片……)

我想用“ImageTags(ImageUrl)”之类的公式自动填充我的第 2 列。

是否有任何公式、扩展名或脚本(已经可用:))?

谢谢 !

标签: google-sheetsgoogle-sheets-apigoogle-sheets-formulagoogle-appsgoogle-vision

解决方案


一种选择是使用Google Cloud Vision API来标记您的图像。您可以在这里测试 API 以确定它是否适合您的需要。

有两个教程使用 Google Apps 脚本调用 API,可以帮助您开发所需的确切代码:

  1. 使用服务帐户进行身份验证、检测标签并发送 GMail 消息

  2. 使用 oAuth2 对图像进行身份验证和标记

例如,使用下图:

在此处输入图像描述

并使用以下参数调用 API:

  • HTTP 请求

POST https://vision.googleapis.com/v1/images:annotate

  • 身体
{
  "requests": [
    {
      "image": {
        "source": {
          "imageUri": "https://i.stack.imgur.com/4vwKt.jpg"
        }
      },
      "features": [
        {
          "type": "LABEL_DETECTION"
        }
      ]
    }
  ]
}

您获得以下结果(2019 年 11 月 5 日):

{
  "responses": [
    {
      "labelAnnotations": [
        {
          "mid": "/m/09j06",
          "description": "Hot air balloon",
          "score": 0.9889263,
          "topicality": 0.9889263
        },
        {
          "mid": "/m/01j51",
          "description": "Balloon",
          "score": 0.95322704,
          "topicality": 0.95322704
        },
        {
          "mid": "/m/02p81ht",
          "description": "Hot air ballooning",
          "score": 0.9223063,
          "topicality": 0.9223063
        },
        {
          "mid": "/m/0cmqr_4",
          "description": "Party supply",
          "score": 0.9016293,
          "topicality": 0.9016293
        },
        {
          "mid": "/m/01d40f",
          "description": "Dress",
          "score": 0.86037284,
          "topicality": 0.86037284
        },
        {
          "mid": "/m/07yv9",
          "description": "Vehicle",
          "score": 0.7725018,
          "topicality": 0.7725018
        },
        {
          "mid": "/m/01bqvp",
          "description": "Sky",
          "score": 0.7326111,
          "topicality": 0.7326111
        },
        {
          "mid": "/m/0ds99lh",
          "description": "Fun",
          "score": 0.7039424,
          "topicality": 0.7039424
        },
        {
          "mid": "/m/016pp7",
          "description": "Happy",
          "score": 0.6789371,
          "topicality": 0.6789371
        },
        {
          "mid": "/m/06bm2",
          "description": "Recreation",
          "score": 0.6695586,
          "topicality": 0.6695586
        }
      ]
    }
  ]
}

推荐阅读