图像标签
图像标签对云存储中存量数据的图片标签识别,返回图片中置信度较高的主题标签,帮助开发者分析图像。
功能特性
识别图片中的场景、物品、人物等信息,例如自然风光(山、海、天空、夕阳等)、人造环境(建筑、游乐场、会议室等)、人像(男性、女性、自拍、合照等)、物品(美食、穿着、日常用品等)、动物(猫、狗、鸟类、哺乳动物、海洋生物等各种宠物或野生动物)。
适用场景
可以用于相册分类、信息流内容推荐、广告推荐、图库分类检索、视频内容理解、拍照识图等各种场景。
!您不仅在云函数中可以使用该扩展能力,也可以在客户端使用,文件读写权限策略与云存储一致,减去您额外的权限管理工作。
前置要求
已经开通云开发。
扩展配置信息
您可以通过以下配置参数:
- 环境 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 描述: 数据万象全读写访问权限。
安装扩展
您可以通过 云开发控制台,来安装和管理扩展。
使用扩展
!如果您在 web 网站使用该扩展,请先在 云开发控制台 将网站域名添加为当前环境的安全域名。
1. 安装扩展 SDK 到项目
npm install --save @cloudbase/extension-ci@latest
2. 调用扩展 SDK
调用参数
名称 | 类型 | 是否必须 | 说明 |
---|---|---|---|
action | String | 是 | 操作类型,传:DetectLabel |
cloudPath | String | 是 | 文件的绝对路径,与 tcb.uploadFile 中一致 |
返回内容
参数名称 | 类型 | 描述 |
---|---|---|
RecognitionResult | Object | 图片标签识别结果 |
RecognitionResult 节点内容:
参数名称 | 类型 | 描述 |
---|---|---|
Labels | Object | 标签信息 |
标签信息中包含如下内容:
参数名称 | 类型 | 描述 |
---|---|---|
Confidence | Int | 该标签的置信度分数,分数越高则该标签准确度越高 |
Name | String | 识别出的图片标签 |
调用示例
客户端中使用:
const extCi = require("@cloudbase/extension-ci");
const tcb = require("@cloudbase/js-sdk");
云函数中使用:
const extCi = require("@cloudbase/extension-ci");
const tcb = require("@cloudbase/node-sdk");
您可以根据需要选择在【客户端】或【云函数】中使用,再按照如下代码调用:
const app = tcb.init({
env: "您的环境ID"
});
app.registerExtension(extCi);
async function demo() {
try {
const res = await app.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));
}
}