关于python:保姆级大佬手把手教你pythonOpencv完成人脸解锁

4次阅读

共计 1885 个字符,预计需要花费 5 分钟才能阅读完成。

好吧,伙计们,我回来了。说我拖更不写文章的能够过去用你的小拳拳狠命地捶我胸口 ….

那么明天咱们来讲对于应用 python+opencv+face++ 来实现人脸验证及人脸解锁。代码量同样不多,你能够将这些代码使用在其它一些智能畛域,如智能家居,进门的时候判断你是谁,也能够退出机器学习判断来的人是客人还是熟人。在讲之前咱们会先适当的拓扑一下对于人脸识别的知识点。OK 废话少说上面开始正是话题。

解锁原理:

原理呢,其实很简略,没有那么简单难懂(当然除了官方语言之外)。咱们先来艰深的说一下利用 Face++ 实现人脸匹配的原理。给大家举荐一个学习交换的中央:719+139+688,当初你关上了摄像头,而后恰好你按下了抓取。抓取之后,你的脸部图片会上传到近程服务器,而后服务端会提取你的面部状况生成一个惟一的指纹(标识码),这个指纹在 Face++ 外面叫做 face\_token 这个咱们前面会持续讲到,这个指纹就代表你目前的身份。

上传完通过服务端剖析收录之后,服务端会通过 json 发送给你一个数据包,这个数据包外面有你面部全副特色。

当你拿到服务端返回过去的 json 之后,将 face\_token 提取进去(这很重要,face\_token 相当于一把钥匙)而后你把拿到的 face\_token 放到 python 的 if 外面去判断如果 face\_token 相符就验证胜利,如果不相符那么解锁失败。

环境拓扑:

操作系统:windows7

Python 版本:python2.7

OpenCV 版本:2.x

Face++ 接口

实现计划:

1. 上传脸孔(这个上篇文章咱们曾经实现摄像头抓取,这篇文章咱们不做啰嗦,间接用一张面部图片代替)上传后 json 会返回面部指纹(face\_token)

2. 创建人脸汇合,并将步骤 1 返回的 face\_token 退出到汇合中去

3. 通过 python 的 if 判断是否收录以后脸孔

代码局部:

1. 获取脸孔 face\_token:

这里重点说一下 request 外面的内容:

api 规定是要 post 提交,所以这里用了 request.post()

传输的内容为申请的 URL,图片门路(必填!能够是本地绝对路径,也能够是网络图片别离为 image\_file、image\_url)data 数据也就是 payload 外面的参数:

apikey/apisecret 必填 没有的自行申请

return\_attributes 选填 外面有返回的数据 有年龄性别等等

return\_landmark 选填 是否检测返回人脸关键点 0 为不返回 1 为检测 83 个关键点 2 为检测 106 个关键点

运行成果:

咱们轻易找一张照片(对像素有要求的 切记 不然有的可能报错)

咱们能够看到这个返回的 json 包里有很多的值,咱们这里最重要的就是拿到这张脸的 face\_toen,而后保存起来,收录到服务端的时候须要。

注:这里可能有些敌人在网上轻易找的照片可能报错,这很可能是图片像素的问题,尽量找高清的,运行后,人脸局部会被绿框标识。

2. 创建人脸汇合,并退出 face\_token

face\_tokens 外面填的就是方才奥巴马图片返回的 face\_token,不要填错哦~

面部汇合的名字也要记住,待会查问的时候也会用到的。

将上一部分获取到的 face\_token 退出到一个新建的人脸汇合中。

下次人脸比照将间接跟服务端收录的做指纹比照。这里再简略的点一下 payload 外面的几个参数:

display\_name:人脸汇合的名字

outer\_id:FaceSet 全局自定义标识

force\_merge:

0:不将 face\_tokens 退出已存在的 FaceSet 中,间接返回 FACESET\_EXIST 谬误

1:将 face\_tokens 退出已存在的 FaceSet 中

face\_tokens:传入的人脸标识

运行成果:

运行结束后,会返回一个 faceset\_token,这个中央咱们要记录下来,因为咱们曾经把咱们的奥巴马的 facetoken 上传到服务端的咱们创立的汇合里了,这个 faceset token 就是咱们的面部汇合 id 或者说是一个相册都能够。

3. 判断是否为管理员:

咱们将奥巴马的面部值(face token)放入 python 的 if 外面,将要去查问的面部汇合(相册)设置为咱们后面获取的 faceset tokens,而后咱们轻易照一张照片匹配一下。

笔记本摄像头太 low,很难辨认,对付看下成果吧,间接辨认人脸还行。

实现~

当然,按理说到当初应该开始有喷子来喷,用图片解锁不平安了吧,没关系,如果你想做的更高级,齐全能够加上一些点头 眨眼等等乌七八糟的验证,安全性是能够做到的。

正文完
 0