spring boot2 基于百度云apiface实现人脸检测与认证2

接上一篇,上篇只实现了人脸的认证,接下来实现人脸的检测。

原理介绍:

把摄像头抓拍的图像上传到服务器,服务器把图像上传到百度云,百度云返回识别出的人脸的数量和位置,前端根据服务端的返回,在图像中画出人脸的位置。

主要代码:

前端:

function face_check(){
context.drawImage(video, 0, 0, 200, 150);
jQuery.post('faceCheck', { //指定发送图片到的servlet
snapData: canvas.toDataURL('image/jpg')
}).done(function(rs) {
//对结果集进行解析,判断是否存在人脸
console.log(JSON.stringify(rs));
if(rs.error_code == "222202"){
alert("没有人脸信息或人脸数量非1,请重新拍照!");
}else if(rs.error_code == "222207"){
alert("人脸库中没有您的注册信息,请先注册。");
}else if(rs.error_code == "223120"){
alert("请正确登录,不得伪造!");
}else if(rs.error_msg == "SUCCESS"){
context.strokeStyle = "#f00";
var face_list = rs.result.face_list;
console.dir(face_list);
face_list.forEach(function (item,index,array) {
var location = item.location;
console.dir(location);
context.strokeRect(location.left,location.top,location.width,location.height); //在图片中标识出人脸的位置
});
alert("检测成功!"); }
});
}

服务端:

    @ResponseBody
@RequestMapping(value = "faceCheck",method = RequestMethod.POST)
public Map faceCheck(@RequestParam("snapData") String data) throws Exception{
//使用Ajax提交base64字符串,需要经过去头转码
String img_data = data.substring(, data.length());
AipFace client = new AipFace(APP_ID_FACE, API_KEY_FACE, SECRET_KEY_FACE); JSONObject res = client.detect(img_data,"BASE64", new HashMap<String,String>()); //检测出人脸的位置
System.out.println(res.toString()); Map map = JSON.parseObject(res.toString());
return map;
}
上一篇:《Java I/O 从0到1》 - 第Ⅱ滴血 “流”


下一篇:每天一个linux命令--定时启动