早在40年前,图像识别领域就有很多关于人脸识别的研究。但是在当时,
传统算法在普通图像识别中已经很难取得良好的识别效果,更何况还要从人脸
中提取更加细微的特征。在很长一段时间里,人脸识别主要存在过拟合与欠拟
合两个问题。
一方面是因为不同的人脸之间的差别只有五官上细微的差异,这要比区分
飞机、桌子的照片更难。因为后者的特征差异明显,比较容易判断,而模型容
易将长得很像的两个人误判为同一个人;另一方面是同一个人在不同时间拍摄
的两张照片可能由于光照、角度、年纪、表情、化妆等不同的原因,导致同一
个人的脸在计算机看来有很大的差异。因为过拟合与欠拟合这两个问题的限
制,人脸识别技术一直发展得非常缓慢。
直到深度神经网络出现以后,人脸识别技术才有了真正的可用性。自从
2014年来自香港中文大学的团队开发的模型,使得计算机在人脸识别任务上的
表现第一次超越人类,人脸识别开始从电影银幕进入人们的日常生活。现在我
们开通金融账户,不必再跑到营业点,直接就能通过手机刷脸验证;在火车
站、出入境等地方使用人脸识别技术搜索犯罪嫌疑人,成了案件侦破的利器。
11.3.1 人脸检测
人脸识别是一个从一幅数字图像或一帧动态视频中,“找到人脸”和“认
出人脸”的过程。这两个环节也称为“人脸检测”与“人脸识别”。之所以设
置人脸检测,不仅是为了检测出照片上人脸的位置,更重要的是去掉照片中与
人脸无关的噪声信息,加快识别速度。否则将整张照片的所有像素点都输入模
型中会影响模型的判断,也会增加计算复杂度。
目前主流的人脸检测是用方向梯度直方图,这个方法主要是将图像灰度化
后,分析某片像素区域,根据明暗度生成一个箭头,箭头的指向代表了像素逐
渐变暗的方向。如果我们重复操作每一个区域,最终图像会被很多箭头取代。
这些箭头称为梯度(gradients),它们能显示出图像从明亮到黑暗流动的过
程,这样做可以将人脸的结构用梯度大致表示出来,如图11-18所示。最后再
与已知的人脸梯度库对比,即可找出新图像的人脸位置。

对于人脸检测的这个环节不一定要使用深度学习技术,因为这个环节的要
求相对低一些,只需要识别照片中有没有人脸以及人脸在照片中的大致位置即
可。
11.3.2 人脸识别
找到人脸以后,接?来我们要区分不同的人脸。人脸识别是一个图像分类
任务,整个识别过程通常包含以?几个步骤:人脸检测、特征提取、人脸对比
分析与分类。人脸检测是对包含用户脸部的图像进行提取,找到人脸的五官、
角度等信息,完成让计算机“看得见”的任务。特征提取则是让计算机“看得
懂”,对于计算机来说朝向不同的人脸是不同的东西,为此我们得适当地调整
扭曲图像中的人脸,使得眼睛和嘴总是与被检测者重叠。
有一种方法叫面部特征点估计法,可以帮助我们解决上面的问题。该算法
的基本思路是找到人脸普遍存在的68个点,这些点被称为特征点,如图11-19
所示。

有了这68个特征点,计算机就能够知道一张照片中眼睛、鼻子和嘴巴的位
置在哪里。因为每张照片的拍摄角度多少有些不同,因此我们需要再做一些人
脸位置的对齐、角度的调整工作,经过这道工序以后这才意味着完成了让计算
机“看得见”的任务。找准了脸的位置后,就进入了人脸识别技术的核心环
节,让计算机能够“看得懂”,看懂特征,区分不同的人脸。这个环节的核心
在于通过眼睛、眉毛、鼻子、嘴巴、脸颊轮廓特征关键点和面部表情网,找
出彼此之间的关联,最终判定这些图像是否为同一个人 。
因此接?来我们需要使用深度卷积神经网络模型来提取细微的脸部特征,
主要步骤是用卷积神经网络计算图像的特征,利用特征计算相似函数,最后为
人脸生成128个测量值。
为了让模型不会产生过拟合或者欠拟合的现象,同时能够获得比较好的识
别效果,我们采用一种定?三元函数的方法。这种方法需要我们在每次训练时
输入三张不同的脸部图像,即同一个人不同角度的两张照片以及另外一个人的
一张照片,三张照片分别代表目标、正例和反例。如果目标与正例是同一个
人,那么它们的测量值不会相差太多;如果目标与反例不是同一个人,那么它
们的测量值会相差比较多。神经网络不断调整参数,以确保第一张和第二张生
成的测量值接近,让第二张和第三张生成的测量值略有不同。经过百万次的训
练,模型可以用一种较为准确的方式为不同的人脸照片编码。
最后,若要判断一个人的图像在不在数据库里,只需要用这个人的人脸图
像与数据库里的图像比对即可。比对时,我们计算两张图片之间的编码距离,
然后与设定的阈值相比较。如果计算的结果高于阈值我们就认为相似度较高,
即两张照片为同一个人。通过这样的方式完成同一个人的匹配,也代表计算机
能够识别出这个人的身份。
实际上关于人脸识别技术,目前已经有许多成熟的算法都能够达到我们的
要求。尽管每个算法的步骤和计算方式不太一样,但核心都是人脸检测与人脸
识别,首先要让计算机能够找到脸,确定脸的位置,接?来才能够分析脸,识
别出不同的脸。
除了识别身份以外,人脸识别技术还有很多不同的应用。比如活体检测,
在很多风控场景?需要确认摄像头前是一个真实的用户还是一张虚假的照片;
比如人数计算,在出入境等关口可以通过摄像头实时计算过关人数。对于不同
的场景,产品经理关注的指标不同,因此指标的含?也是我们重点关注的事
情。
11.3.3 人脸识别的效果评价方法
在人脸识别领域,常用的评价指标为FAR与FRR。在前文中我们曾提到,在
进行人脸识别,判断测试照片与人脸数据库中某张照片是不是同一个人时,一
般会计算两张照片编码后的相似度或距离。在比较的过程中,我们会设定一个
相似度阈值。如果两张照片的相似度高于阈值则认为这两张照片是同一个人,
如果低于阈值就认为这两张照片不是同一个人。但是无论如何调整阈值的大
小,总是会有一定的错误率,这个错误率称为误识率,用FAR表示。关于FAR,
简单理解就是我们比较不同人的照片时,把两张不同的照片当成同一个人的照
片的概率。所以我们希望模型的 FAR越小越好。
参考以上对 FAR的解释,我们知道,当对同一个人的两张照片进行比较时
可能会出现相似度小于阈值的情况,这个错误率我们称之为错误拒绝率,用
FRR表示。简单理解FRR就是我们比较同一个人两张不同的照片时,错误识别为
两个人的概率。所以我们希望模型的FRR越小越好。
需要将FAR与FRR两个指标结合起来看才能够看出一个模型的效果。试想一
种极端的情况,如果我们把模型的相似度阈值设为1,即使是两张相同的照
片,模型也会判定为两个不同的人,因此模型的误识率为0%。如果单看这一个
指标会误以为模型的效果很好。但如果我们再看误拒率,会发现高达100%,那
么这样的模型对我们来说没有任何意?。
人脸识别技术如今已经融入我们生活的方方面面,我们可以真实地感知到
生活的变化。在购物支付时,不再需要一遍一遍输入密码,只需要刷脸就能迅
速完成支付;在进行出入境安检时,也不再需要人工审核我们的身份,通过人
脸识别已经能够高效、准确地判断;甚至我们上班打卡、计算机开机都能够用
人脸识别,每一个场景的原有流程都大大简化了。除了以上场景外,还有很多
应用场景待产品经理去一一探索,相信借助人脸识别这一有力的?器,未来能
够涌现出越来越多更智能、方便的产品。因此产品经理只有掌握了图像识别、
人脸识别的原理,才能够发现真正有价值的场景,设计出可行的方案。 

Logo

NVIDIA官方入驻,分享最新的官方资源以及活动/会议信息,精选收录AI相关技术内容,欢迎大家加入社区并参与讨论。

更多推荐