腾讯云人脸识别接口的使用

文档地址:

https://cloud.tencent.com/document/product/867/32800

1.在文档中找到 [API 3.0 Explorer]点击进入

2.填写个人密钥,以及根据需要填写选填参数

3.右边选择Node.js后复制代码

4.在小程序项目中创建云函数

粘贴代码,并修改

// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init()

const tencentcloud = require("tencentcloud-sdk-nodejs");//修改路径,然后上传

function syncFaceDetect(imgBase64) {
  const IaiClient = tencentcloud.iai.v20180301.Client;
  const models = tencentcloud.iai.v20180301.Models;

  const Credential = tencentcloud.common.Credential;
  const ClientProfile = tencentcloud.common.ClientProfile;
  const HttpProfile = tencentcloud.common.HttpProfile;

  let cred = new Credential("AKID26wX0FwzsfasdfP", "Xpredfdfdfdfdfdfdfdfd");
  let httpProfile = new HttpProfile();
  httpProfile.endpoint = "iai.tencentcloudapi.com";
  let clientProfile = new ClientProfile();
  clientProfile.httpProfile = httpProfile;
  let client = new IaiClient(cred, "ap-guangzhou", clientProfile);

  let req = new models.DetectFaceRequest();

  let params = '{"Image":"' + imgBase64 + '","NeedFaceAttributes":1,"NeedQualityDetection":1}' //上传的图片类型和地址
  req.from_json_string(params);

// promise封装结果
  return new Promise((resolve, reject) => {
    client.DetectFace(req, function (errMsg, response) {

      if (errMsg) {
        reject(errMsg);
        return;
      }

      resolve();
    });
  })
}

// 云函数入口函数
exports.main = async (event, context) => {
  // event事件对象,返回调用云函数后的所有数据,解构赋值给imgBase64
  let { imgBase64 } = event;
  let res = await syncFaceDetect(imgBase64);
  return res;
}
5.右键上传云函数,并在云函数目录下手动安装依赖
  • 安装后在命令行中执行 node.js index,若提示安装依赖,根据提示安装即可,若返回接口的参数则成功
npm install tencentcloud-sdk-nodejs --save
6.在需要使用人脸检测的页面调用人脸检测云函数
  • 封装将上传的图片转为base64格式
  • 封装云函数
    //转换base64
    base64(imgPath) {
        const fs = wx.getFileSystemManager();
        return new Promise((resolve, reject) => {
            fs.readFile({
                filePath: imgPath,
                encoding: 'base64',
                success(res) {
                    resolve(res.data)
                },
                fail(err) {
                    reject(res);
                }
            })
        })
    },

    //调用人脸检测
    faceDetectAPI(imgBase64) {
        return new Promise((resolve, reject) => {
            wx.cloud.callFunction({
                name: "faceDetect",
                data: {
                    //传参给云函数
                    imgBase64
                },
                success: (res) => {
                    resolve(res);
                },
                fail(err) {
                    reject(err)
                }
            })
        })
    },
        detect(){
              this.base64(this.data.previewImg).then(res => {
                return this.faceDetectAPI(res)
               }).then(res => {  
                   console.log(res)  
               }
        }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容