Python实战 | 如何用人脸识别,证明这个杨幂是那个杨幂?(有福利哦)

人脸特征提取的步骤


真正的人脸识别需要很多的知识,大体上粗略的可以分为以下步骤:

  1.人脸检测(从图片中找到人脸):返回人脸位置和大小的参数。
  2.人脸特征定位:一般 69 点或者 106 个点对人脸的特征定位,技术上有 Adaboost&haar,以及 MSRA 的 alignment。
  3.人脸特征归一化(几何归一/灰度归一):前者对图像进行仿射变化使得不同的脸可以进行比对,后者则能使图像展现更多的细节以及减弱光线光照的应用。
  4.特征提取-特征后期融合。(基于特征近似度的多特征融合)
  5.特征距之间的距离来比对相似度、三氏距离。(马氏、欧氏 、巴氏)


操作过程中的注意事项

  1. 每张图片要先上传到 bucket 中才可以利用。

  2. API 对人脸匹配再返回很大程度依赖于用户的网络带宽。

  3. 当用户网络不好的情况下需要很久的时间才能得到返回结果。

  4. 要经过压缩处理,一般识别的较为准确最多可将图片压缩至 25 kb 左右。

我们要进行如下的步骤:

1)得到我们刚刚通过摄像头取得的人像
2)对我们的人像图片进行压缩
3)上传我们的人像图片到我们的 bucket 中
(这里要申明一点,七牛所有支持的 API 都要求文件在华东的 Bucket 下)
4)得到我们上传的图片的链接地址
5)对链接进行 urlbase64 加密(这里只要 import python 的 base64 库即可)
6)请求 API
7)得到网页的 JSON 格式数据
8)通过 JSON 库对数据进行分析
9)判断人脸的相似度是否符合,输出结果
10)删除 Bucket 中上传的临时图片

返回的 JSON 格式分析

 
 

我们可以看到返回的 JSON 信息很简单, status 的意思是成功和不成功,而 confidence 则是相似度,所以我们对返回的信息进行分析会很简单。 status 如若成功则为 ok,不成功则为 invalid。

人脸相似度的判断

640?wx_fmt=other

上表中所用的图片都来自己互联网,从表数据我们可以大致将本人的相似度以 0.7 为分界线。不过有趣的是,不知道为什么按杨幂进行整容的为什么相似度竟然低于杨幂和范冰冰的相似度(其他女星照的图片为范冰冰的人像),不同性别的相似度差异明显,所以就粗略的根据表格定为 >0.7 即可认为是本人。

安装所需的库

在 python 中,我分享的这个例子总共需要引入 6 个库

 
 

requests 库,json 库,PIL 库请自行安装;
base64 库和 OS 库为自带所以无需安装。


程序的实现

请见下方的代码,采集到的人脸为 face.jpg。 (这里用了杨幂的两张图片作为示例)


程序运行的截图:

640?wx_fmt=other

用到的杨幂的两张照片为:
(均来自百度图片)

640?wx_fmt=other

(用于比对的标准人像图片)
(已用 PIL 压缩 x0.3,y0.3)

640?wx_fmt=other

(用于比对的图片)


作者:七牛云

源自:

https://juejin.im/post/59719caef265da6c4741cdd7

转发此文到朋友圈并截图到后台,

获得20G

 python入门视频课

往期实战及福利



  1. 关注本公众号,牧原小主 送您

    1.  2.7G  380份最新数据分析报告

    2.  40G  人工智能算法课

    3.  已关注的小伙伴,直接回复数据分析报告、人工智能算法

  2. 关注后,回复 PM2.5 获得 Python分析北京PM2.5,原来每年的值都在变少...所有源代码

  3. 关注后,回复“python3.7”,获得python 3.7官方最新pdf 文档

  4. 关注后,回复 世界杯, 获得 2018世界杯来了,利用Python预测冠军(附全部代码和数据集)所有源代码

  5. 关注后,回复“豆瓣电影“,获得 Python实战 | 手把手教你爬取豆瓣电影 Top 250(附全部代码及福利哦)所有源代码

  6. 关注后,回复“python可视化”,获得 利用python“三步”实现数据可视化,炫的不要不要的!所有源代码


长按二维码,关注我们

640?wx_fmt=jpeg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值