图像标签

最近更新时间:2020-05-28 15:23:10

图像标签对云存储中存量数据的图片标签识别,返回图片中置信度较高的主题标签,帮助开发者分析图像。

功能特性

识别图片中的场景、物品、人物等信息,例如自然风光(山、海、天空、夕阳等)、人造环境(建筑、游乐场、会议室等)、人像(男性、女性、自拍、合照等)、物品(美食、穿着、日常用品等)、动物(猫、狗、鸟类、哺乳动物、海洋生物等各种宠物或野生动物)。

适用场景

可以用于相册分类、信息流内容推荐、广告推荐、图库分类检索、视频内容理解、拍照识图等各种场景。

注意:

您不仅在云函数中可以使用该扩展能力,也可以在客户端(web、微信小程序、QQ小程序)使用,文件读写权限策略与云存储一致,减去您额外的权限管理工作。

前置要求

已经开通云开发。

扩展配置信息

您可以配置以下参数:

  • 环境 ID:选择要部署的环境,在哪个环境下使用。

计费

此扩展使用云开发或其他腾讯云服务,可能会产生相关费用:

当您使用云开发扩展时,只需要为您使用的云资源付费;云开发与云上其他资源分开计费,您可以在 费用中心 查看具体信息。

启用的API和创建的资源

  • Type: 数据万象
    Description: 为开发者提供图片、视频等多种数据的智能处理服务。
  • Type: Cloud Storage
    Description: 存储图片,并通过 CDN 提升图片加载速度。
  • Type: Cloud Function
    Description: 检测图像处理参数并为图像处理生成签名,保证操作的合法性。

权限授予

主账户

角色名称 授权策略名 角色类型 描述
CI_QCSRole QcloudAccessForCIRole、QcloudCOSDataFullControl 服务角色 数据万象(CI)会对您腾讯云资源进行访问操作,含对对象存储(COS)数据的读取、修改、删除、列出等
TCB_QcsRole QcloudCIFullAccess 服务角色 云开发(TCB)会对您的数据万象资源进行操作,方便您在扩展能力中使用该服务

子账户

如果想让子账户也能使用该扩展,需要为子账户授予如下权限才能使用:

  • 策略: QcloudAccessForTCBRole
    描述: 云开发(TCB)对云资源的访问权限。
  • 策略: QcloudCIFullAccess
    描述: 数据万象全读写访问权限。

安装扩展

注意:

微信小程序开发者请使用【其他登录方式】-【微信公众号登录】登录,再选择关联的小程序账户登录;QQ小程序开发者可直接通过QQ小程序开发者IDE【云开发】按钮登录,也可以通过关联的腾讯云账户登录。
您可以通过 云开发控制台,来安装和管理扩展。

使用扩展

注意:

如果您在 web 网站使用该扩展,请先在 云开发控制台 将网站域名添加为当前环境的安全域名。

1. 安装扩展 SDK 到项目

web端及云函数中使用:

npm install --save @cloudbase/extension-ci@latest

微信小程序中使用:

npm install --save @cloudbase/extension-ci-wxmp@latest

微信小程序中npm使用请参考 npm 支持

2. 调用扩展 SDK

调用参数

名称 类型 是否必须 说明
action String 操作类型,传:DetectLabel
cloudPath String 文件的绝对路径,与 tcb.uploadFile 中一致

返回内容

参数名称 类型 描述
RecognitionResult Object 图片标签识别结果

RecognitionResult 节点内容:

参数名称 类型 描述
Labels Object 标签信息

标签信息中包含如下内容:

参数名称 类型 描述
Confidence Int 该标签的置信度分数,分数越高则该标签准确度越高
Name String 识别出的图片标签

调用示例

web端中使用

const extCi = require("@cloudbase/extension-ci");
const tcb = require("tcb-js-sdk");

云函数中使用

const extCi = require("@cloudbase/extension-ci");
const tcb = require("tcb-admin-node");

您可以根据需要选择在【web端】或【云函数】中使用,再按照如下代码调用:

tcb.init({
  env: "您的环境ID"
});

tcb.registerExtension(extCi);

async function demo() {
  try {
    const res = await tcb.invokeExtension("CloudInfinite", {
      action: "DetectLabel",
      cloudPath: "demo.png" // 图像在云存储中的路径,与tcb.uploadFile中一致
    });
    console.log(JSON.stringify(res.data, null, 4));
  } catch (err) {
    console.log(JSON.stringify(err, null, 4));
  }
}

微信小程序客户端中使用

注意:

微信小程序中关联的云开发环境需要与扩展安装的环境一致;取值参数及返回与在云函数、web端使用一致。

const extCi = require("@cloudbase/extension-ci-wxmp");
async function demo() {
  extCi.invoke({
    action: "DetectLabel",
    cloudPath: "demo.png" // 图像在云存储中的路径,与tcb.uploadFile中一致
  }).then(res => {
      console.log(JSON.stringify(res.data, null, 4));
  }).catch(err => {
      console.log(JSON.stringify(err, null, 4));
  })
}

QQ小程序客户端中使用

请参考 QQ小程序扩展能力使用指引

目录