zoukankan      html  css  js  c++  java
  • 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(22, 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(2));
    
            Map map = JSON.parseObject(res.toString());
            return map;
        }
  • 相关阅读:
    memcache详解
    redis详解
    laravel5表单验证
    MySQL添加字段和修改字段
    delete和truncate区别
    IOC 和DI(转载)
    JPA和SpringData知识梳理
    spring和springmvc配置分离
    springboot 整合 mybatis
    mongodb安装及配置
  • 原文地址:https://www.cnblogs.com/hankuikui/p/10394613.html
Copyright © 2011-2022 走看看