python opencv人脸解锁_教你使用python+Opencv完成人脸解锁
今天我们来讲关于使用python+opencv+face++来实现人脸验证及人脸解锁。代码量同样不多,你可以将这些代码运用在其它一些智能领域,如智能家居,进门的时候判断你是谁,也可以加入机器学习判断来的人是客人还是熟人。在讲之前我们会先适当的拓扑一下关于人脸识别的知识点。OK废话少说下面开始正是话题。
解锁原理:
原理呢,其实很简单,没有那么复杂难懂(当然除了官方语言之外)。我们先来通俗的说一下利用Face++实现人脸匹配的原理。给大家推荐一个学习交流的地方:923414804,现在你打开了摄像头,然后恰好你按下了抓取。抓取之后,你的脸部图片会上传到远程服务器,然后服务端会提取你的面部情况生成一个唯一的指纹(标识码),这个指纹在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,很难识别,凑合看下效果吧,直接识别人脸还行。
完成~
当然,按理说到现在应该开始有喷子来喷,用图片解锁不安全了吧,没关系,如果你想做的更高级,完全可以加上一些摇头 眨眼等等乱七八糟的验证,安全性是可以做到的。
python opencv人脸解锁_教你使用python+Opencv完成人脸解锁相关推荐
- opencv与python学哪一个好_教你如何用OpenCV、Python和深度学习技术对图像和实时视频进行神经风格迁移...
编者按:在这篇教程中,作者AdrianRosebrock将教你如何用OpenCV.Python和深度学习技术对图像和实时视频进行神经风格迁移. 2015年,Gatsys等人在论文ANeuralAlgo ...
- 孩子学python用的笔记本电脑_教孩子学Python 后的一点感受
先说一下孩子的情况.男孩儿,10岁,在学校上过scratch 的课:喜欢音乐和表演,是学校英文戏剧社成员:数学和语文成绩中等:贪玩儿,不会安排自己的事情.概括来说,就是一只普通孩子(和我小时候一样 L ...
- python爬表情包_教你用Python来爬取表情包网站的所有表情图片
教你用Python来爬取表情包网站的所有表情图片 配置环境 安装Python 开发环境 3X系列 win + R 打开运行,输入cmd,输入python,进行验证是否安装Python win + R ...
- python朋友圈图片_教你用python将图片变成九宫格,打造高逼格朋友圈九宫格图片...
python的出现,使很多困难的东西都简单化了,有时你在朋友圈看到朋友发的九宫格朋友圈,你会觉得很厉害,下面小编教你用python将一张图片变成九宫格,帮你打造高逼格朋友圈发文. 这个项目主要分为三个 ...
- python批量生成图表_教你用Python自动读取数据生成图表,产生的效益很可观
厌烦了每次都要在Excel里拖动数据来生成图形吧,这篇文章里,教你用Python自动读取Excel数据生成图表,然后Python 使用XlsxWriter模块在Excel工作表中绘制带有数据表的柱形图 ...
- python软件设计背景_教你用Python制作微信好友背景墙
目录: 0 引言 1 环境 2 代码实现 3 后记 0 引言 前段时间,微信朋友圈开始出现了一种晒照片新形式,微信好友墙,即在一张大图片中展示出自己的所有微信好友的头像. 效果如下图,出于隐私考虑,这 ...
- python拼图游戏编码_教你用Python自制拼图小游戏,轻松搞定熊孩子
摘要:本文主要为大家详细介绍了python实现拼图小游戏,文中还有示例代码介绍,感兴趣的小伙伴们可以参考一下. 开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Pyth ...
- python拼图游戏代码_教你用Python自制拼图小游戏,轻松搞定熊孩子
摘要:本文主要为大家详细介绍了python实现拼图小游戏,文中还有示例代码介绍,感兴趣的小伙伴们可以参考一下. 开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Pyth ...
- python自制小游戏_教你用Python自制拼图小游戏,一起来制作吧
摘要: 本文主要为大家详细介绍了python实现拼图小游戏,文中还有示例代码介绍,感兴趣的小伙伴们可以参考一下. 开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Pyt ...
- python画花女朋友_教你使用python画一朵花送女朋友
本文实例为大家分享了用python画一朵花的具体代码,供大家参考,具体内容如下 第一种,画法 from turtle import * import time setup(600,800,0,0) s ...
最新文章
- Hibernate中Session的清理与清空
- 使用numpy遇到ValueError: The truth value of an array with more than one element is ambiguous
- python操作数据库
- 5月7日MySQL 学习
- 9;XHTML 多媒体
- Atitit 泛型原理与理解attilax总结
- 怎么样使prestashop 运行速度更快
- windows优化大师怎么用_操作系统不仅有XP、win7和win10,这些更好用的系统你都用过吗...
- 支付宝转账到银行卡/隐藏部分卡号
- 为何软件需要数字签名
- 计算机语言phal语言,phalapi
- ASP.NET AJAX Control Toolkit 实现按拼音模糊检索下拉框
- 做新时代的忠诚爱国者写一篇议论文800字
- 区块链是什么?简单理解区块链
- SAP各种BOM详解(包含常用BAPI)
- laravel常见错误(一):The page has expired due to inactivity. Please refresh and try again.
- ROS系列教程三:roslaunch文件及参数服务器
- linux内核系统调用创建和删除文件
- JVM/JDK/JRE/IDE—区别
- The day that you see me old-当我日渐老去的时候
热门文章
- java hashtable 修改_Java Hashtable computeIfAbsent()用法及代码示例
- python opencv 识别角度_opencv python 角点检测/FAST算法
- 拓端tecdat|R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间
- 拓端tecdat|R语言分段回归数据分析案例报告
- Eureka/Zookeeper/Consul三种注册中心的区别
- c语言程序结课编程报告,C语言程序分析报告课程标准.doc
- opencv使用trackbar调控美颜程度
- Python中的盆地跳跃【Basin Hopping】优化
- python求解LeetCode习题Fraction to Recurring Decimal
- Linux常用知识与命令