资讯专栏INFORMATION COLUMN

AI新时代-大牛教你使用python+Opencv完成人脸解锁(附源码)

LinkedME2016 / 2969人阅读

摘要:创建人脸集合,并加入里面填的就是刚才奥巴马图片返回的,不要填错哦面部集合的名字也要记住,待会查询的时候也会用到的。判断是否为管理员我们将奥巴马的面部值放入的里面,将要去查询的面部集合相册设置为我们前面获取的,然后我们随便照一张照片匹配一下。

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

那么今天我们来讲关于使用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,很难识别,凑合看下效果吧,直接识别人脸还行。

完成~

当然,按理说到现在应该开始有喷子来喷,用图片解锁不安全了吧,没关系,如果你想做的更高级,完全可以加上一些摇头 眨眼等

本文作者:雁横

原文链接

本文为云栖社区原创内容,未经允许不得转载。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/10702.html

相关文章

  • 手把手教你opencv人脸识别(源码+文档)

    摘要:文章目录一环境二使用级联进行人脸检测三级联结合摄像头四使用的人脸检测五结合摄像头人脸检测六结语一环境人狠话不多,直接上代码,注释在代码里面,不说废话。 文章目录 ...

    yacheng 评论0 收藏0
  • 首次公开,整理12年积累的博客收藏夹,零距离展示《收藏夹吃灰》系列博客

    摘要:时间永远都过得那么快,一晃从年注册,到现在已经过去了年那些被我藏在收藏夹吃灰的文章,已经太多了,是时候把他们整理一下了。那是因为收藏夹太乱,橡皮擦给设置私密了,不收拾不好看呀。 ...

    Harriet666 评论0 收藏0
  • 使用OpenCV与Face++实现人脸解锁

    摘要:本文讲解了如何使用,基于与实现人脸解锁的功能。上接上一段程序读取使用创建获取进度确认到目前为止,你应该已经可以就给定的两张图片比对是否是同一个人了。 近几天微软的发布会上讲到了不少认脸解锁的内容,经过探索,其实利用手头的资源我们完全自己也可以完成这样一个过程。 本文讲解了如何使用Python,基于OpenCV与Face++实现人脸解锁的功能。 本文基于Python 2.7.11,Win...

    cc17 评论0 收藏0
  • 分享AI有道干货 | 126 篇 AI 原创文章精选(ML、DL、资源、教程)

    摘要:值得一提的是每篇文章都是我用心整理的,编者一贯坚持使用通俗形象的语言给我的读者朋友们讲解机器学习深度学习的各个知识点。今天,红色石头特此将以前所有的原创文章整理出来,组成一个比较合理完整的机器学习深度学习的学习路线图,希望能够帮助到大家。 一年多来,公众号【AI有道】已经发布了 140+ 的原创文章了。内容涉及林轩田机器学习课程笔记、吴恩达 deeplearning.ai 课程笔记、机...

    jimhs 评论0 收藏0
  • 第八课 Python Web企业门户网站-人工智能拓展

    摘要:时至今日,人工智能依然是最热门的研究领域之一。众多巨头企业初创企业等纷纷入局人工智能领域,尝试寻找全新突破口。从开发之日起就得到了迅猛发展,获得了众多企业和业界学者的鼎力支持与贡献。 目录 8.1 人工智能概述 8.2 搭建人工智能开放平台 8.2.1 人脸检测后台搭建 8.2.2 本地脚本...

    szysky 评论0 收藏0

发表评论

0条评论

LinkedME2016

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<