人工智能如何实现人脸识别,你不知道的奥秘

01

在人工智能领域,人脸识别技术是核心发展技术,也是最近几年人工智能应用最广泛的技术,目前支付宝已经实现了刷脸登陆账户,未来几年支付软件还会实现刷脸支付等技术。

今天给大家分享一些人脸识别技术的基本概念

1. 人脸检测

“人脸检测(Face Detection)”是检测出图像中人脸所在位置的一项技术。

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

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

人脸检测结果举例(绿色框为人脸检测结果)

2. 人脸配准

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

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

当前效果的较好的一些人脸配准技术,基本通过深度学习框架实现,这些方法都是基于人脸检测的坐标框,按某种事先设定规则将人脸区域扣取出来,缩放的固定尺寸,然后进行关键点位置的计算。因此,若不计入图像缩放过程的耗时,人脸配准算法是可以计算量固定的过程。另外,相对于人脸检测,或者是后面将提到的人脸提特征过程,人脸配准算法的计算耗时都要少很多。

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

3. 人脸属性识别

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

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

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

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

4. 人脸提特征

“人脸提特征(Face Feature Extraction)”是将一张人脸图像转化为一串固定长度的数值的过程。这个数值串被称为“人脸特征(Face Feature)”,具有表征这个人脸特点的能力。

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

近几年来,深度学习方法基本统治了人脸提特征算法,这些算法都是固定时长的算法。早前的人脸提特征模型都较大,速度慢,仅使用于后台服务。但最新的一些研究,可以电脑开机密码忘记了怎么办:方法一:在开机时,按下F8进入找到自己银行卡,通过银行卡上面账号信息进行查询并找到银行卡号,在银行柜台帮忙调取自己账号上面最近的消费记录,然后通过消费记录上面可以查看到自己的银行卡卡号。【带命令提示符的安全】模式,输入【NET USER+用户名+123456/ADD】可把某用户的密码强行设置为【123456】。如果忘记了开机密码,如何快速解决呢。方法二:到了输入密码的界面,首先按键盘中的【ctrl+alt+U】,运用两只手协调同时按这三个按键,可以清掉输入密码的过程,密码不用填,直接按回车键执行确定就行了。每次开机都这样操作太麻烦,我们点击左下角【开始】,点击【控制面板】。找到【用户账户】这个按钮,用鼠标左键单击打开用户账户。运用超级管理员重设一个密码,这个可以不用输原来的密码,所以不必担心忘记原来密码。输入自己想好的新密码,要记牢哦!还可以在提示内容处输入提示自己的关键字词。点击【创建密码】。一个新的密码就创建完成了,原来的密码已经被换成这个新的了,账户密码保护中。在基本保证算法效果的前提下,将模型大小和运算速度优化到移动端可用的状态。

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

5. 人脸比对(人脸验证、人脸识别、人脸检索、人脸聚类)

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

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

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

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

6. 人脸验证

“人脸验证(Face Verification)”是判定两个人脸图是否为同一人的算法。

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

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

7. 人脸识别

“人脸识别(Face Recognition)”是识别出输入人脸图对应身份的算法。

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

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

8. 人脸检索

“人脸检索”是查找和输入人脸相似的人脸序列的算法。

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

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

9. 人脸聚类

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

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

在没有进行人工身份标注前,只知道分到一个组的人脸是属于同一个身份,但不知道确切身份。另外假设集合中有N个人脸,那么人脸聚类的算法复杂度为O(N2)

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

10. 人脸活体

“人脸活体(FaceLiveness)”是判断人脸图像是来自真人还是来自攻击假体(照片、视频等)的方法。

和前面所提到的人脸技术相比,人脸活体不是一个单纯算法,而是一个问题的解法。这个解法将用户交互和算法紧密结合,不同的交互方式对应于完全不同的算法。鉴于方法的种类过于繁多,这里只介绍“人脸活体”的概念,不再展开。