• 百度人脸识别SDK


    调用百度sdk进行人脸的录入,识别等操作。

    使用的是java SDK ,这里给出说明文档地址:http://ai.baidu.com/docs#/BodyAnalysis-Java-SDK/top

    这里贴出部分代码,参数参考说明文档即可,所有增删改查大多相同的做法。

    复制代码
    //网络申请调用函数进行人脸识别
    new Thread(new Runnable() {
      public void run() {
        // 初始化一个AipFace
        AipFace client=new AipFace("申请后分配的的APPID","申请后分配的Api key","申请后分配的Secret key");
    
        // 传入可选参数调用接口
        HashMap<String, String> options = new HashMap<String, String>();
        options.put("user_info", user_info);
        options.put("quality_control", "NORMAL");
        options.put("liveness_control", "LOW");
        //image取决于image_type参数,传入BASE64字符串或URL字符串或FACE_TOKEN字符串,我这里传入BASE64字符串
        String image = result;
        String imageType = "BASE64";
        String groupId = groupid;
        String userId = id;
    
        /*  检测人脸是否存在
        * 存在,返回该人脸已经存在
        * 不存在,即插入*/
        // 传入可选参数调用接口
        HashMap<String, String> options1 = new HashMap<String, String>();
        options1.put("quality_control", "NORMAL");
        options1.put("liveness_control", "LOW");
        options1.put("max_user_num", "1");
    
        //从指定的group中进行查找 用逗号分隔,上限20个
        String groupIdList = groupid;
        //这里对人脸先检索,是否已经录入,设置判定条件为返回score大于80即代表同一个人
        res1 = client.search(result, imageType, groupIdList, options);
         if(getScore(res1)>80) {
             Looper.prepare();
             Toast.makeText(InputActivity.this, "该人脸已存在!", Toast.LENGTH_SHORT).show();
             Looper.loop();
         }else{
        // 人脸注册,返回代码0,即为录入成功
        JSONObject res = client.addUser(image, imageType, groupId, userId, options);
        if(getCode(res).equals("0")){
            Looper.prepare();
            Toast.makeText(InputActivity.this, "录入成功!", Toast.LENGTH_SHORT).show();
            Looper.loop();
        } else {
            Looper.prepare();
            Toast.makeText(InputActivity.this, "换个姿势,再试试吧", Toast.LENGTH_SHORT).show();
            Looper.loop();
        }
    
    }}).start();
    复制代码
    复制代码
    //解析返回的人脸识别结果,返回识别分数,识别大于80则能录入
    public float getScore(JSONObject res){
    
        try{
            JSONObject js = new JSONObject(res.optString("result"));
    
            JSONArray rs = new JSONArray(js.optString("user_list"));
    
            score =(float) rs.optJSONObject(0).optDouble("score");
    
        }catch (Exception e){
            e.printStackTrace();
        }
        return score;
    }
     
  • 相关阅读:
    spring源码学习(一) 小小少年
    mysql索引 小小少年
    Java集合框架个人学习笔记 小小少年
    记录一些自己百度到的问题解决方法
    基于内容的医学图像总结
    黑客与画家 第一章
    问题,不是逃避的
    黑客与画家 第二章
    记录最近一周的感受
    暗时间之体会
  • 原文地址:https://www.cnblogs.com/ljincheng/p/12309385.html
Copyright © 2020-2023  润新知