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;
        }
  • 相关阅读:
    SpringRMI解析3-RmiServiceExporter逻辑细节
    SpringRMI解析2-RmiServiceExporter逻辑脉络
    SpringRMI解析1-使用示例
    SpringMVC解析5-DispatcherServlet逻辑细节
    SpringMVC解析4-DispatcherServlet逻辑脉络
    SpringMVC解析3-DispatcherServlet组件初始化
    SpringMVC解析2-ContextLoaderListener
    算法笔记_074:子集和问题(Java)
    算法笔记_073:哈密顿回路问题(Java)
    算法笔记_072:N皇后问题(Java)
  • 原文地址:https://www.cnblogs.com/hankuikui/p/10394613.html
Copyright © 2011-2022 走看看