人脸识别登录:加强系统认证
先看下效果图吧,满足你们的好奇心,哈哈哈
一、创作动机
早在很久之前,公司同事已经实现了在网站的登陆模块加上人脸识别认证登陆功能,自己也就萌生了动手在自己的系统中加上这样的功能,通过不断的学习和搜所资料,发现百度已经提供了这样一个接口供我们去调用,帮助我们快速在自己的系统中集成人脸识别的功能,而且这个接口可以无限次调用。
二、需求介绍
在系统中,我们不用输入任何账号和密码,直接通过人脸识别,实现登陆。
三、使用的接口介绍
在本次演示中,主要涉及到人脸识别模块的两个接口(人脸注册,人脸搜索)
人脸注册接口说明:
用于从人脸库中新增用户,可以设定多个用户所在组,及组内用户的人脸图片,
典型应用场景:构建您的人脸库,如会员人脸注册,已有用户补全人脸信息等。用于从人脸库中新增用户,可以设定多个用户所在组,及组内用户的人脸图片,
典型应用场景:构建您的人脸库,如会员人脸注册,已有用户补全人脸信息等。
官网请求实例demo
参数解释:image:这个和imagetype是对应的,如果imagetype是url,则image就是url路径,如果是base64,那image是base64字节码,groupid就是人脸库里创建的组id,userid就当前注册人脸的标识,该userid适合你系统的用户关联的,options是可选的,具体配置请参看官网介绍。
人脸搜索接口说明:
由于我这里使用的是v3版本的,v3版本已经将人脸认证移到人脸搜索中,人脸搜索有两种模式:一是通过userid去人脸库中查找人脸和当前人脸进行对比,二是直接通过人脸去人脸库对比,具体使用哪一种请根据场景而定,我这里采用的是后者,是为了更加简单的实现人脸识别认证,无需输入任何字符。
官网demo
参数介绍:options:这里面重要讲下user_id这个选项,如果不加这个参数,则使用上面提到的第二种方式认证,如果加上则使用第一种方式认证;gropidlist:在指定的人脸库中查找比对,其他参数和人脸注册类似。
四、开始coding前的准备
获取APP_ID 、API_KEY、API_KEY,SECRET_KEY
具体步骤如下:
点击链接https://login.bce.baidu.com/,进入官网,使用百度云账号登陆(没有则先注册)
登录之后按箭头提示进入控制台,创建应用
创建好之后我们就可以获取我们需要的信息了
五、准备工作介绍完毕,开始coding吧
首先准备前端,打开电脑摄像头,我们在进行人脸注册和登录时,都需要带上摄像头拍下的图片,使用base64进行编码,传到后台,人脸注册还需要额外传入用户的ID,用来表示当前用户,当用户登录成功后会返回这个ID,
后台处理
引入必要的依赖,根据你申请 人脸识别不同的版本有关,v2就使用v2版的,我这里使用v3版的依赖
我是基于springboot框架进行开发的,所以起初准备使用controller进行处理人脸登陆和注册的请求,可是在调试过程中一直报错,d to instantiate [com.baidu.aip.face.AipFace]: No default constructor found; nested exception is java.lang.NoSuchMethodException: com.baidu.aip.face.AipFace.(),运行说是找不到这个,上网查阅还是没能解决,这时候看到介绍百度云人脸识别的博客,采用servlet去处理请求,发现问题没有出现了,现在我来详细说下具体步骤,不会出现过多代码,都是自己的理解。
人脸登录:
查阅文档发现在登录和注册之都会使用到AipFace,通过这个配置初始化的以下参数,参数分别是在编码之前我们准备的三个参数
获取APP_ID 、API_KEY、API_KEY,SECRET_KEY
一行代码就可配置
AipFace client =new AipFace(APP_ID, API_KEY, SECRET_KEY);
登录时后台接受到一个参数 String img(base64编码的)
拿到image后我们就可以进行身份的验证,代码如下:这里调用了apiface的search方法,使用人脸搜索的第二种方式,
参数解释:
image:后台接受到的img(base64)
imageType:base64(和上面对应)
groupidlist:(在指定的人脸库组中查找,这是我们手动在后台新建的)
返回结果:是一个json对象,我这里使用阿里的fastjson进行了转换成实体,
主要参数解释:
result:如果为空,则说明为检测到人脸
user_list:返回的用户列表,取决你设置max_user_num参数
score:我们判断是否认证成功的依据,一般匹配度在90以上基本是从人脸库中找到相似度非常高的,也就是认证成功,
人脸注册
后端处理:接受的参数
userid:用户输入的登录账号
img:摄像头提取的照片 base64
人脸注册使用的是apiface的adduser方法,很简单,传入相应参数,直接调用
其中参数options是可选项,其他的参数和人脸登录是一样的,只是多了一个userid,用来标识当前注册的用户。
返回结果解释:判断是否注册成功,直接拿到error_msg去和SUCCESS匹配,相等则注册成功,否则注册失败。
到这里,整个集成工作已完成,谢谢大家能够看到这,给个小心吧。
欢迎关注我的公众号:乐哉码农
人脸识别登录:加强系统认证相关推荐
- 基于Matlab的人脸识别登录系统
基于Matlab的人脸识别登录系统 摘 要:人脸识别系统以人脸识别技术为核心,是一项新兴的生物识别技术,是当今比较热门的一项安全认证技术.它涉及人脸图像采集.人脸定位.人脸识别预处理.身份确认以及身份 ...
- 人脸识别学生考勤系统【2】--登录
人脸识别学生考勤系统的登录界面设计如上图所示,关键部分为圈红色的位置. 用户名,密码-登录 登录成功目前没有写跳转页面,只是在终端输出"success",登录失败会在忘记密码按钮的 ...
- Java人脸识别登录Demo(人脸考勤系统)
最近好多小伙伴在做毕设,有人脸识别登录.人脸识别考勤系统.人脸支付(本文代码可以实现,但只限于识别逻辑,并不安全)等,跟人脸识别有关的项目.由于上一篇文章写了关于人脸识别登录的代码有很多小伙伴找我要源 ...
- 专业人脸识别研究计算机的配置,联想电脑win10系统人脸识别登录的设置方法
科技的发达让我们的生活越来越方便.大家都知道手机里的支付宝可以刷人脸登录,无需输密码.这波操作真是高效又安全.最近一位联想电脑的win10纯净版系统用户,就问小编Win10怎么刷脸登陆呢?如果你的电脑 ...
- Android在线人脸识别登录系统
Android在线人脸识别登录系统 前言 最近需要做一个Android的在线人脸识别项目,需求是能够在线人脸识别登录,找了很多资料都是价格很高或者是离线保存样本的,最后选择免费的虹软人脸识别,经过查询 ...
- 基于javaweb的人脸识别登录系统(java+springboot+mysql)
基于javaweb的人脸识别登录系统(java+springboot+mysql) 运行环境 Java≥8.MySQL≥5.7 开发工具 eclipse/idea/myeclipse/sts等均可配置 ...
- Java_百度人脸识别登录
1.引入pom文件 这里去除了百度自带的slf4j-simple日志文件 <dependency><groupId>com.baidu.aip</groupId>& ...
- python带界面的人脸识别_PyQt5+Caffe+Opencv搭建人脸识别登录界面
最近开始学习Qt,结合之前学习过的caffe一起搭建了一个人脸识别登录系统的程序,新手可能有理解不到位的情况,还请大家多多指教. 我的想法是用opencv自带的人脸检测算法检测出面部,利用caffe训 ...
- 用PyQt5+Caffe+Opencv搭建一个人脸识别登录界面
最近开始学习Qt,结合之前学习过的caffe一起搭建了一个人脸识别登录系统的程序,新手可能有理解不到位的情况,还请大家多多指教. 我的想法是用opencv自带的人脸检测算法检测出面部,利用caffe训 ...
最新文章
- python全栈开发基础【第十七篇】面向对象反射和内置方法
- 微软IE8浏览器个性化设置技巧
- 计算机基础1模拟题,计算机基础模拟题1(有答案).doc
- C#反编译工具Reflector使用方法
- Tex2Word vs Word2Tex
- 5月 PC 浏览器市场份额:Chrome 即将突破 60%
- 784. Letter Case Permutation
- 如何在QQ浏览器查看默认搜索引擎
- es6 WeakSet
- js中的总结汇总(以后的都收集到这篇)
- 周志华-机器学习西瓜书-第三章习题3.3 编程实现对率回归
- linux之抓包神器tcpdump
- pandas.series.tolist()函数结构及用法
- BZOJ 5336: [TJOI2018]party Dp套Dp
- 边框检测原理与Tensorflow代码
- angular仿微信图片放大功能
- Chosen by god【组合数打表】
- Orcale语句大全
- Ubuntu16.04 GT730 显卡驱动安装
- Python打包成exe,文件太大问题解决办法
热门文章
- Android面试必问!记录下我磕磕碰碰的三个月找工作经历,面试心得体会
- 使用c++开发excel插件 (第3章动态链接库(dynamic-link library))
- git did not exit cleanly (exit code 128)我个人解决方案
- c语言stl用法,C STL快速入门!学习使我快乐
- 【区块链基础】5——ETH协议
- 上机练习(2019.11.19)
- 数学归纳法产生的历史背景
- HDLBits练习(三)多路复用器,算术电路,卡诺图电路
- 电子邮件地址怎么写,国内电子邮件服务商有哪些,怎么申请注册邮件地址大全账号?
- Android各个版本特性简介