人脸识别简介

人脸识别.gif

随着Iphone X发布,革命性的取消了TouchID(指纹识别),而添加了更酷的 FaceID(人脸识别) 模块,FaceID 不仅仅简单的运用在解锁上,还可以在支付,表情等场景中应用,给开发者带来更酷更丰富的应用。

下面将带着大家揭秘下这项黑科技的原理。

一、如何识别出来人脸?

人脸配准用到的 68点

为了达到定位五官关键点的目的,我们将使用一种面部特征点估计(face landmark estimation)的算法,这一算法的基本思路是找到68个人脸上普遍存在的点(称为特征点, landmark)。

下巴轮廓17个点 [0-16]
左眉毛5个点 [17-21]
右眉毛5个点 [22-26]
鼻梁4个点 [27-30]
鼻尖5个点 [31-35]
左眼6个点 [36-41]
右眼6个点 [42-47]
外嘴唇12个点 [48-59]
内嘴唇8个点 [60-67]

有了这68个点,我们就可以轻松的知道眼睛和嘴巴在哪儿了,后续我们将图片进行旋转,缩放和错切,使得眼睛和嘴巴尽可能的靠近中心。现在人脸基本上对齐了,这使得下一步更加准确。

最常见的人脸配准的应用就是人脸贴图了。


人脸贴图

二、人脸识别流程

人脸识别是由一系列的几个相关问题组成的:

  • 首先找到一张图片中的所有人脸。
  • 对于每一张脸来说,无论光线明暗或面朝别处,它依旧能够识别出是同一个人的脸。
  • 能够在每一张脸上找出可用于他人区分的独特之处,比如眼睛多大,脸有多长等等。
  • 最后将这张脸的特点与已知所有人脸进行比较,以确定这个人是谁。
第一步:找出所有的面孔

很显然在人脸识别的流程中,得首先找到图片中的人脸。我们在使用手机或相机拍照时都会有人像模式,它能轻松的检测出人脸的位置,帮助相机快速对焦。

当前一种主流的人脸检测方法就是HOG(Histogram of Oriented Gradients)方向梯度直方图,一种能够检测物体轮廓的算法。

首先我们把图片灰度化,因为颜色信息对于人脸检测而言没什么用。

我们分析每个像素以及其周围的像素,根据明暗度画一个箭头,箭头的指向代表了像素逐渐变暗的方向,如果我们重复操作每一个像素,最终像素会被箭头取代。这些箭头被称为梯度(gradients),它们能显示出图像从明亮到黑暗流动的过程。

如果分析每个像素就太过于繁琐与细节化了,为此我们将图像分割成16x16像素的小方块。在每个小方块中,计算出每个主方向有多少个剃度(有多少指向上,指向右上,指向右等)。然后用指向性最强的那个方向箭头来代替原来那个小方块。

HOG图像

最终结果,我们把原始图像转换成一个非常简单的HOG表达形式,它可以很轻松的捕获面部的基本结构。

为了在HOG图像中找到脸部,我们需要做的是,与已知的一些HOG图案比较,找出看起来最相似的部分。这些HOG图案都是从其他面部训练数据中提取出来的。

第二步:脸部的不同姿势

我们已经找出了图片中的人脸,那么如何鉴别面朝不同方向的人脸呢?
对于电脑来说朝向不同的人脸是不同的东西,为此我们得适当的调整扭曲图片中的人脸,使得眼睛和嘴总是与被检测者重叠。

第三步:给脸部编码

我们还有个核心的问题没有解决, 那就是如何区分不同的人脸。

最简单的方法就是把我们第二步中发现的未知人脸与我们已知的人脸作对比。当我们发现未知的面孔与一个以前标注过的面孔看起来相似的时候,就可以认定他们是同一个人。

对于计算机分别不同的人,实际上最准确的方法是让计算机自己找出他要收集的测量值。深度学习比人类更懂得哪些面部测量值比较重要。

所以,解决方案是训练一个深度卷积神经网络,训练让它为脸部生成128个测量值。

每次训练要观察三个不同的脸部图像:

  • 加载一张已知的人的面部训练图像
  • 加载同一个人的另一张照片
  • 加载另外一个人的照片

然后,算法查看它自己为这三个图片生成的测量值。再然后,稍微调整神经网络,以确保第一张和第二张生成的测量值接近,而第二张和第三张生成的测量值略有不同。

庆幸的是 OpenFace 上面的大神已经做完了这些,并且他们发布了几个训练过可以直接使用的网络,感谢开源精神。

这128个测量值是什么鬼?

其实我们不用关心,这对我们也不重要。我们关心的是,当看到同一个人的两张不同照片时,我们的计算机能得到几乎相同的数值。

第四步:从编码中找出人的名字

最后一步实际上是最简单的一步,我们需要做的是找到数据库中与我们的测试图像的测量值最接近的那个人。

如何做呢,我们利用一些现成的数学公式,计算两个128数值的欧氏距离。

人脸识别-8.png

这样我们得到一个欧式距离值,系统将给它一个认为是同一个人欧氏距离的阀值,即超过这个阀值我们就认定他们是 同 (失) 一 (散) 个 (兄) 人 (弟)。

三、人脸识别涉及的十个关键技术

1、人脸检测(Face Detection):是检测出图像中人脸所在位置的一项技术

人脸检测算法的输入是一张图片,输出是人脸框坐标序列(0个人脸框或1个人脸框或多个人脸框)。一般情况下,输出的人脸坐标框为一个正朝上的正方形,但也有一些人脸检测技术输出的是正朝上的矩形,或者是带旋转方向的矩形。

常见的人脸检测算法基本是一个“扫描”加“判别”的过程,即算法在图像范围内扫描,再逐个判定候选区域是否是人脸的过程。因此人脸检测算法的计算速度会跟图像尺寸、图像内容相关。开发过程中,我们可以通过设置“输入图像尺寸”、或“最小脸尺寸限制”、或“人脸数量上限”的方式来加速算法。

人脸检测

2、人脸配准(Face Alignment):是定位出人脸上五官关键点坐标的一项技术

人脸配准算法的输入是“一张人脸图片”加“人脸坐标框”,输出五官关键点的坐标序列。五官关键点的数量是预先设定好的一个固定数值,可以根据不同的语义来定义(常见的有5点、68点、90点等等)。

人脸配准

人脸配准结果举例(右图中的绿色点位人脸配准结果)

3、人脸属性识别(Face Attribute):是识别出人脸的性别、年龄、姿态、表情等属性值的一项技术

一般的人脸属性识别算法的输入是“一张人脸图”和“人脸五官关键点坐标”,输出是人脸相应的属性值。人脸属性识别算法一般会根据人脸五官关键点坐标将人脸对齐(旋转、缩放、扣取等操作后,将人脸调整到预定的大小和形态),然后进行属性分析。

常规的人脸属性识别算法识别每一个人脸属性时都是一个独立的过程,即人脸属性识别只是对一类算法的统称,性别识别、年龄估计、姿态估计、表情识别都是相互独立的算法。但最新的一些基于深度学习的人脸属性识别也具有一个算法同时输入性别、年龄、姿态等属性值的能力。

人脸属性识别

人脸属性识别过程(最右侧文字为属性识别结果)

4、人脸提特征(Face Feature Extraction):是将一张人脸图像转化为一串固定长度的数值的过程

这个数值串被称为“人脸特征(Face Feature)”,具有表征这个人脸特点的能力。

人脸提特征过程的输入也是 “一张人脸图”和“人脸五官关键点坐标”,输出是人脸相应的一个数值串(特征)。人脸提特征算法都会根据人脸五官关键点坐标将人脸对齐预定模式,然后计算特征。

近几年来,深度学习方法基本统治了人脸提特征算法,这些算法都是固定时长的算法。早前的人脸提特征模型都较大,速度慢,仅使用于后台服务。但最新的一些研究,可以在基本保证算法效果的前提下,将模型大小和运算速度优化到移动端可用的状态。

人脸提特征

人脸提特征过程(最右侧数值串为“人脸特征”)

5、人脸比对(Face Compare):是衡量两个人脸之间相似度的算法

人脸比对算法的输入是两个人脸特征(注:人脸特征由前面的人脸提特征算法获得),输出是两个特征之间的相似度。人脸验证、人脸识别、人脸检索都是在人脸比对的基础上加一些策略来实现。相对人脸提特征过程,单次的人脸比对耗时极短,几乎可以忽略。

基于人脸比对可衍生出人脸验证(Face Verification)、人脸识别(Face Recognition)、人脸检索(Face Retrieval)、人脸聚类(Face Cluster)等算法。

人脸比对

人脸对比过程(右侧的相似度为人脸比对输出的结果)

6、人脸验证(Face Verification):是判定两个人脸图是否为同一人的算法

它的输入是两个人脸特征,通过人脸比对获得两个人脸特征的相似度,通过与预设的阈值比较来验证这两个人脸特征是否属于同一人(即相似度大于阈值,为同一人;小于阈值为不同)。

人脸验证

人脸验证过程说明(最右侧“是同一人”为人脸验证的输出)

7、人脸识别(Face Recognition):是识别出输入人脸图对应身份的算法

它的输入一个人脸特征,通过和注册在库中N个身份对应的特征进行逐个比对,找出“一个”与输入特征相似度最高的特征。将这个最高相似度值和预设的阈值相比较,如果大于阈值,则返回该特征对应的身份,否则返回“不在库中”。

人脸识别

人脸识别过程(右侧身份“jason”为人脸识别结果)

8、人脸检索:是查找和输入人脸相似的人脸序列的算法

人脸检索通过将输入的人脸和一个集合中的所有人脸进行比对,根据比对后的相似度对集合中的人脸进行排序。根据相似度从高到低排序的人脸序列即使人脸检索的结果。

人脸检索

人脸检索过程(右侧绿框内排序序列为检索结果)

9、人脸聚类(Face Cluster):是将一个集合内的人脸根据身份进行分组的算法

人脸聚类也通过将集合内所有的人脸两两之间做人脸比对,再根据这些相似度值进行分析,将属于同一个身份的人划分到一个组里。

在没有进行人工身份标注前,只知道分到一个组的人脸是属于同一个身份,但不知道确切身份。

人脸聚类

人脸聚类过程(右侧绿框内按身份的分组结果为聚类结果)

10、人脸活体(Face Liveness):是判断人脸图像是来自真人还是来自攻击假体(照片、视频等)的方法

和前面所提到的人脸技术相比,人脸活体不是一个单纯算法,而是一个问题的解法。这个解法将用户交互和算法紧密结合,不同的交互方式对应于完全不同的算法。比如点头、摇头、眨眼等等。

人脸识别流程回顾:

  • 使用HOG找出图片中所有人脸的位置。
  • 计算出人脸的68个特征点并适当的调整人脸位置,对齐人脸。
  • 把上一步得到的面部图像放入神经网络,得到128个特征测量值,并保存它们。
  • 与我们以前保存过的测量值一并计算欧氏距离,得到欧氏距离值,比较数值大小,即可得到是否同一个人。

四、参考链接

https://blog.csdn.net/zhangbijun1230/article/details/81092223
http://www.code4app.com/thread-5983-2-1.html
https://blog.csdn.net/LEON1741/article/details/81358974
https://www.cnblogs.com/usa007lhy/p/3529563.html
https://www.cnblogs.com/zhehan54/p/6727590.html
https://www.cnblogs.com/zhehan54/p/6727606.html
https://blog.csdn.net/leon1741/article/details/81358466

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 197,737评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,103评论 2 375
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 144,710评论 0 326
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,909评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,794评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,557评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,939评论 3 388
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,572评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,852评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,871评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,692评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,490评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,939评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,114评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,409评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,971评论 2 343
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,176评论 2 339

推荐阅读更多精彩内容

  • 张凯 17021211151 转载至:https://mp.weixin.qq.com/s/Q9dV3esWIrQ...
    锅巴_ccf0阅读 1,622评论 0 1
  • 姓名:闫伟 学号:15020150038 转载自:https://zhuanlan.zhihu.com/p/364...
    莫斯科的雨夜阅读 973评论 0 0
  • 1. 概述   人脸核身指通过OCR等技术来构建包含用户真实身份信息的底库,通过指定方式获取用户真实照片,利...
    简单是美美阅读 3,326评论 0 53
  • 人脸识别概述:人脸识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术。人脸识别区别于其他生物特征识别方法的...
    天山老霸王阅读 1,380评论 1 2
  • 从我记事起,我就是大家口中的假小子,因为我小时候头发一直是短头发,所以,奶奶经常给我扎小辫,搞得我头发很炸。小时候...
    若彤李阅读 195评论 0 1