# AI 人脸检测与分析使用指引文档

# 登录

在使用服务之前,需要先登录到腾讯云-云开发控制台 (opens new window),小程序开发者在使用扩展能力之前请确保已经开通小程序云开发 (opens new window)环境,并选择小程序开发者登录方式。

# 开通

  1. 登录腾讯云-云开发控制台 (opens new window), 选择扩展能力解决方案标签
  2. 待开通选项中选择 AI 人脸特征检测与分析项,点击立即开通。等待开通完成。
  3. 开通完成后即可在已开通选项中找到开通的增值服务。

# 授权

为了更好的体验,需要授权云开发访问您的扩展能力权限。在已开通的 AI 人脸特征检测与分析选项卡中点击授权以部署按钮,即可开启授权流程。授权后即可享受免鉴权调用当前扩展功能的服务与能力。

# 部署

使用一键部署能力,即可立刻部署扩展能力云函数服务到所选择的环境下,部署完成后即可直接使用云函数调用服务,详细了解 一键部署 能力。

  • 一键部署 点击 AI 人脸特征检测与分析选项卡中立即部署按钮,可选择将系统内置的 Node.js 云函数 tcbService-ai-detectFace 部署到你的云开发环境中,若当前环境已存在同名函数,系统会在获得您的同意后使用当前系统内置的最新版本覆盖该函数。部署完成后,你可以在开发过程中调用该云函数获得 AI 人脸特征检测与分析的能力。

  • 手动部署 如果因为各种原因,你无法在腾讯云-云开发控制台 (opens new window)中部署 tcbService-ai-detectFace 云函数,你也可以选择手动部署。

  1. 访问该地址 (opens new window),获取最新的 tcbService-ai-detectFace 代码包。
  2. 对于小程序用户,将代码包解压至小程序项目 /cloud/function 目录下,在微信开发者工具中选择刚刚解压的目录,右键菜单中选择上传并部署:所有文件,将函数部署到云端环境中。 deploy in weixin IDE
  3. 对于云开发控制台用户,在腾讯云-云开发控制台 (opens new window)选择要部署的环境,在左侧导航中选择云函数,新建以 tcbService-ai-detectFace 为名,运行环境为 Nodejs 8.9 的空白云函数。在该函数详情页子 tab 中选择函数代码,提交方式选择为本地上传ZIP包,将 1 中下载到的代码包作为附件上传。 deploy in tcb-console

# 使用

  • 在小程序中使用,以下方案选择一种使用方式即可,推荐使用云函数直接调用。

    • 直接调用云函数使用 直接在小程序中调用云函数。在小程序中,wx.cloud init 完成后可以如下发起云函数调用:

      wx.cloud.callFunction({
        name: 'tcbService-ai-detectFace',
        data: {
          FileID: ''
          /* ...
           * other data
           **/
        }
      });
      
    • 使用扩展方案 SDK 调用

      使用 tcb-services-sdk 。在小程序项目中下载 tcb-services-sdk 包。

      npm install tcb-service-sdk
      

      将其中的 dist/tcb-service-mp-sdk/index.js 拷贝到小程序项目中,作为外部库,可以将其放置在小程序项目 /client/libs/tcb-service-mp-sdk/index.js。在项目中可以通过如下方式调用:

      import TcbService from '路径/tcb-service-sdk/index'; // sdk path
      const tcbService = new TcbService();
      
      tcbService.callService({
        service: 'ai',
        action: 'tcbService-ai-detectFace',
        data: {
          FileID: ''
          /* ...
           * other data
           **/
        }
      });
      

      这样就完成了一次人脸检测与分析调用,callService 返回为 Promise 对象,可以方便的进行异步操作处理。

  • 快速上手

    2 分钟完成颜值打分小程序

# 参数说明

# 请求参数

参数名 解释 类型 必选 默认值
MaxFaceNum 最多处理的人脸数目。默认值为 1(仅检测图片中面积最大的那张人脸),最大值为 120。
此参数用于控制处理待检测图片中的人脸个数,值越小,处理速度越快。
Number 1
MinFaceSize 人脸长和宽的最小尺寸,单位为像素。默认为 40,低于此尺寸的人脸不会被检测。 Number 40
FileID 云开发 uploadFile 得到的 fileID, 支持直接使用云端的图片进行分析 String
Url 图片的 Url,存储于腾讯云的 Url 可保障更高下载速度和稳定性,建议图片存储于腾讯云。
非腾讯云存储的 Url 速度和稳定性可能受一定影响。支持 PNG、JPG、JPEG、BMP,不支持 GIF 图片。
String
Image 图片 base64 数据。支持 PNG、JPG、JPEG、BMP,不支持 GIF 图片。
FileID、Url、Image 必须提供一个,生效优先级 FileID > Url > Image
String
NeedFaceAttributes 是否需要返回人脸属性信息(FaceAttributesInfo)。0 为不需要返回,1 为需要返回。 非 1 值均视为不需要返回,此时 FaceAttributesInfo 不具备参考意义。
最多返回面积最大的 5 张人脸属性信息,超过 5 张人脸(第 6 张及以后的人脸)的 FaceAttributesInfo 不具备参考意义。
提取人脸属性信息较为耗时,如不需要人脸属性信息,建议关闭此项功能,加快人脸检测速度。
Number 1
NeedQualityDetection 是否开启质量检测。0 为关闭,1 为开启。 非 1 值均视为不进行质量检测。 建议:人脸入库操作建议开启此功能。 Number 1

# 响应参数

参数 类型 说明
code Number 0 表示请求成功,相应内容见 data;非 0 表示请求失败,失败信息见 message
data DetectFactData 人脸检测与分析结果对象
message String 错误信息

# DetectFactData

参数 类型 说明
ImageWidth Number 请求的图片宽度。
ImageHeight DetectFactData 请求的图片高度。
FaceInfos Array of FaceInfo (opens new window) 人脸信息列表。
RequestId String 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。

# 错误码

错误码 说明
10001 外部资源加载失败
10002 外部资源太大, 超过 3.75M
10003 内部错误
10004 用户错误
10005 人脸分析逻辑错误