java web完成人脸识别登陆

本文介绍了使用Java Web结合旷视Face++实现人脸识别登录的过程。首先在旷视官网创建API,接着理解人脸识别原理,包括检测人脸、分析人脸个数和搜索人脸匹配。在项目搭建中,创建Dynamic Web Project,引入封装好的jar包,编写Servlet处理请求。文章详细阐述了每个步骤,并提供了代码示例和资源下载链接。
摘要由CSDN通过智能技术生成




     一次偶然的机会接触到了开课吧的体验课,经过学习之后写一篇记录成长。

人脸识别实现的接口

  • 首先登陆 旷视Face++官网,点击技术–人脸检测–应用管理–创建API。
  • 由于金钱等因素的原因,我选择了体验版。创建完成后记得打开API文档,然后准备我们一步步实现项目。

对人脸识别登陆过程的理解

  先来介绍一下人脸识别的原理。通过连接旷视Face++人脸检测接口完成用户登陆,每次对人脸检测,一张人脸会返回一个face_token值,这个值对于相同的一张人脸每次也都是不一样的。对于旷视供的API中,search是每次登陆都需要使用的一个方法,它的原理是每次在FaceSet中寻找当前face_token值,在人脸集合中寻找,并返回请求值(下方有例子),在其中有一个名为 thresholds 的JSONObject它提供三个键值对(我个人这样理解了一下JSONObject), 他们的key值分别为(“1e-3”,“1e-4”,“1e-5”),然后我们获取其中1e-5的value,为什么要获取"1e-5"的值呢,这其实是一个精度,为了尽可能的减少出错的概率,所以选用这个值,同样的,在result数组中我们获得 confidence 的value(置信值),用这个置信值与1e-5进行比较,如果置信值比较大的话就可以确定在十万分之一出错的概率下,确保两个照片中的人脸是出自同一个人。(详情请参考Face++中search API,当然这些东西都在jar包中封装好了,你可以理解一下,直接引用。也可以理解一下,尝试自己重新封装这个jar包)。

{
    "request_id": "1470481443,0d749845-7153-4f5e-a996-ffc5a1ac0a79", 
    "time_used": 1126, 
    "thresholds": {
        "1e-3": 65.3, 
        "1e-5": 76.5, 
        "1e-4": 71.8
    }, 
    "results": [
        {
            "confidence": 96.46, 
            "user_id": "234723hgfd", 
            "face_token": "4dc8ba0650405fa7a4a5b0b5cb937f0b"
        }
    ]
}
  • 首先在搭建项目之前我们需要明白,通过人脸登陆需要有怎么样的一个过程。
  • 我们需要先进行用户注册,不然的话人脸集合中没有人脸信息。
  • 注册和登陆首先都是提供一张照片来检测照片中是否出现人脸。
  • 那么第一个条件出现了—— 检测人脸
  • 这个时候分为两种情况,即出现和不出现。
  • 对于不出现人脸的情况我们可以直接宣布,注册(登陆)失败。
  • 如果我们先不管登陆,对于检测出人脸的图片可以直接宣布注册成功吗?
  • 当然是不可以,我们还需要对图片进行分析,分析我们这个照片中的人脸个数。
  • 为什么要分析人脸个数呢?
  • 注册登陆这种事情,当然是不能两个人一起来啦!
  • 所以这个时候,第二个条件也出现了——检查人脸的个数
  • 如果人脸个数>1,那么就可以提醒操作失败了。
  • 如果人脸个数 == 1 ,继续下一步。 搜索此人的人脸是否在我们的人脸集合中。
  • 注册:查找为不在集合中,把人脸信息添加到集合中。在集合中就提示注册失败。
  • 登陆:查找为不在集合中,通知登陆失败。在集合中就提示登陆成功。
  • 由于服务器等异常,还需要增加条件提示服务器异常影响操作失败。

搭建项目步骤

  1. 打开Eclipse,创建一个 Dynamic web project ,命名FaceLoginByMyself。

  2. 创建项目完成后,在Src中创建一个包 com.zy.facelogin.Servlet,并在包中创建一个FaceControlServlet用来处理网页请求。

  3. 引用封装好的jar包,将其复制后,粘贴在如下位置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值