盐城建站,wordpress怎么添加论坛,营销案例分析,wordpress降版本最近好多人找我要关于人脸识别活体检测的案例#xff0c;今天正好有空我就更新一下#xff0c;先解释一下活体#xff0c;顾名思义就是看看是否是活人在测检#xff08;大白话解说#xff09;#xff0c;用技术上的话也就是看看当前操作者是否是在用照片或者其他方法来操…最近好多人找我要关于人脸识别活体检测的案例今天正好有空我就更新一下先解释一下活体顾名思义就是看看是否是活人在测检大白话解说用技术上的话也就是看看当前操作者是否是在用照片或者其他方法来操作比如我们的人脸识别人脸登陆想要了解的可以点击这里存在一个最大的问题就是当张三来登陆的时候如果张三本人登陆成功没有问题要是张三拿着李四的照片来进行登陆这也能登陆成功的话就是个最大的bug了为此我们来解决一下这个问题。 项目运行的截图大家先看看吧 1.两张真人同一个人图片上传 第一张
第二张
然后结果运行结果
2.两张真人不是同一个人图片上传 第一张 第二张
可以看出来很明显不是同一个人一个男的一个女的运行结果
3.第一张假的第二张真的同一个人图片上传 第一张 这张照片是我手机第二次进行拍照所得的
第二张
运行结果为
4.第一张真的第二张假的同一个人图片上传 第一张 第二张
运行结果为 5.第一张假的第二张真的不同人图片上传 第一张 第二张
运行结果为
6.第一张真的第二张假的不同人图片上传 第一张
第二张
运行结果为
相信大家都理解了那么我们来做一下吧!!
我们现在myeclipse里面创建个项目普通的项目就OK啦。 喏如图所示项目名称我们就随便起个就叫它face_Live_test
然后点击finish就完成了项目创建的第一步了。 我们在项目下面新建个目录名字是lib用来放我们的jar包吧如图所示
jar包地址点击下载 没有积分的可以联系我进行下载。 现在把jar导入到我们项目下面的lib目录中接着新建个class,类名随便起我这边的类名起的是TestMain.java。 创建好类之后就可以编码啦~ 我们先要去百度云中创建个人脸识别的应用我已经创建好了
//百度云接口信息public static final String APP_ID ********;public static final String API_KEY ******;public static final String SECRET_KEY *********;public static AipFace client new AipFace(APP_ID, API_KEY, SECRET_KEY);把代码中的*换成你自己的信息即可这里不再多做解释。 然后我们重新创建个方法 此方法代码如下
/*** * Description: 该方法的主要作用人脸比对* Title: match* param param client 设定文件 * return 返回类型void * throws* 个人博客https://blog.csdn.net/qq_34137397*/public static void match(AipFace client){// 传入可选参数调用接口HashMapString, String options new HashMapString, String();//返回的活体信息“faceliveness,faceliveness” 表示对比对的两张图片都做活体检测//“,faceliveness” 表示对第一张图片不做活体检测、第二张图做活体检测//“faceliveness,” 表示对第一张图片做活体检测、第二张图不做活体检测options.put(image_liveness, faceliveness,faceliveness);//参数为本地图片路径列表String path1 I:\\test\\picture\\1111.png;String path2 I:\\test\\picture\\psb.jpg;ArrayListString images new ArrayListString();images.add(path1);images.add(path2);org.json.JSONObject res client.match(images, options);//解析jsonJSONObject jsonObject JSONObject.fromObject(res.toString(2));String ext_info jsonObject.getString(ext_info); // 找到ext_info节点JSONObject josnObject_ext_info JSONObject.fromObject(ext_info);String faceliveness josnObject_ext_info.getString(faceliveness).toString();//根据,截取两个活体值分别进行判断逗号前面的代表第一章图片后面的代表第二章图片int index_douhao faceliveness.indexOf(,);Double first Double.parseDouble(faceliveness.substring(0,index_douhao));Double secord Double.parseDouble(faceliveness.substring(index_douhao1));// 活体分数如0.49999。单帧活体检测参考阈值0.393241大于该值就是活体否则就是翻拍的if(first0.393241){System.out.println(第一张是真人);if(secord0.393241){System.out.println(第二张时真人);//继续判断是否是同一个人JSONArray jsonArray jsonObject.getJSONArray(result); //找到result节点String json_result jsonArray.get(0).toString();JSONObject jsonObject_result JSONObject.fromObject(json_result);Double score Double.parseDouble(jsonObject_result.get(score).toString());//分数大于80算同一个人System.out.println(一般分数大于80证明是同一个人否则不是同一个人当前比对分数为score);if(score80){System.out.println(比对结果是同一个人);}else{System.out.println(比对结果不是同一个人);}}else{System.out.println(第二张是假的);}}else{System.out.println(第一张是假的);}}到此为止就可以了本代码的原理我先说下 先上传两张一次拍照的照片然后实现比对功能上传照片完成之后会进行对每张照片活体检测检测完成第一张照片之后继续检测第二张如果照片不是活体这里指的是照片进行二次翻拍那么久不进行下面的比对否则进行比对当然比对的时候在判断是否比对成功。