百度智能云
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