koa+vue+百度云实现人脸识别

本文介绍了如何结合Koa后端和Vue前端,利用百度智能云的人脸识别服务。首先,需要在百度智能云注册并创建人脸识别应用以获取API Key和Secret Key。在Koa后端配置跨域并实现获取Access Token及人脸比对的接口。前端部分则展示完整代码,包括页面逻辑、提示页面、axios请求封装以及接口调用,实现了人脸识别后的自动截图和关闭摄像头功能。
摘要由CSDN通过智能技术生成

百度智能云

1、先去百度智能云注册一个百度智能云账号

2、创建人脸识别应用

进入页面后,在侧边栏选择人脸识别,在应用列表中创建一个新的应用,填写【应用名称】和【应用描述】,其他的使用默认值就可以了

 

3、获取秘钥

应用创建成功后,记录下自己的API Key、Secret Key

koa 后端

1.app.ts配置跨域和引入koa

import Koa from 'koa';
import Cors from 'koa2-cors';
import { corsHandler } from './middleware/cors';
import koaBody from 'koa-body';
import router from './router/packaging/index';

const app = new Koa();

// 处理静态资源
// app.use(Static(path.join(__dirname,'./public/img')));

// 跨域请求
// console.log(router);
app.use(Cors(corsHandler));

app.use(koaBody());

// 传递到 中间件里面
app.use(router.routes()).use(router.allowedMethods());

const PORT = 4001;
app.listen(PORT,()=>{
  console.log(`http://localhost:${PORT},已启动`);
});

2.获取Access Token的接口

// 人脸识别 获取Acess Token
export const getToken = async (ctx: any) => {
  console.log('----我是人脸识别接口');
  const param = qs.stringify({
    'grant_type': 'client_credentials',
    'client_id': '百度云应用id',
    'client_secret': '百度云应用秘钥'
  });
  const axs = await axios.post('https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=iZnI34PU6myzxi1sDYQrI6Fp&client_secret=uWL8ufxX8bz2Zus2r60tlQUXBsu9PtdG&', param);
  // console.log(axs);
  ctx.body = axs.data;

};

3.人脸比对

export const checkFace = async (ctx: any) => {
  // console.log(ctx.request.body);
  // 请求接口
  const url = 'https://aip.baidubce.com/rest/2.0/face/v3/match?access_token=' + ctx.request.body.access_token;
  // 请求的图片数据
  console.log('woshi');
  // 请求数据
  // const data = {
  //   image_type: 'BASE64',
  //   image: ctx.request.body.img,
  //   // group_id_list: 'test_add', // 之前注册人脸管理库的名字
  //   // liveness_control: 'HIGH'     // 活体监测
  // };
  const dir = path.join(__dirname, ctx.request.body.urls[0].urls);
  console.log(dir);
  const base64 = fs.readFileSync(dir, 'base64'); // 文件流并转 base64
  console.log();
  const data = [
    {
      "image": ctx.request.body.img,
      "image_type": "BASE64",
      "face_type": "LIVE",
      "quality_control": "LOW",
      "liveness_control": "HIGH"
    },
    {
      "image": base64,//要比对的照片
      "image_type": "BASE64",
      "face_type": "LIVE",
      "quality_control": "LOW",
      "liveness_control": "HIGH"
    },
  ];

  const sxs = await axios({
    method: "POST",
    // headers: { "Content-Type": "a
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值