十五、人脸识别算法初次了解 前言
在写此文之前,先扯点东西。我一直在找一个东西,让我思考,让我久久的深陷其中,永久的,不断的思考。如今,我意识到,这个东西即是算法。我一直在找一家合适的公司,能让我的兴趣无比放肆的,自由驰骋。
ok,因为在一家公司的面试过程中,面试官提到过这个人脸识别算法,由于在此之前,未曾有过了解,所以,特作此番学习与研究(前十四个算法请参考这,十四个经典算法研究与总结、目录+索引)。有任何问题,欢迎不吝指正。谢谢。
第一部分、人脸识别算法综述人脸识别,特指利用分析比较人脸视觉特征信息进行身份鉴别的计算机技术。
概述
广义的人脸识别实际包括构建人脸识别系统的一系列相关技术,包括人脸图像采集、人脸定位、人脸识别预处理、身份确认以及身份查找等;而狭义的人脸识别特指通过人脸进行身份确认或者身份查找的技术或系统。
人脸识别是一项热门的计算机技术研究领域,它属于生物特征识别技术,是对生物体(一般特指人)本身的生物特征来区分生物体个体。生物特征识别技术所研究的生物特征包括脸、指纹、手掌纹、虹膜、视网膜、声音(语音)、体形、个人习惯(例如敲击键盘的力度和频率、签字)等,相应的识别技术就有人脸识别、指纹识别、掌纹识别、虹膜识别、视网膜识别、语音识别(用语音识别可以进行身份识别,也可以进行语音内容的识别,只有前者属于生物特征识别技术)、体形识别、键盘敲击识别、签字识别等。
人脸识别的优势在于其自然性和不被被测个体察觉的特点。
所谓自然性,是指该识别方式同人类(甚至其他生物)进行个体识别时所利用的生物特征相同。例如人脸识别,人类也是通过观察比较人脸区分和确认身份的,另外具有自然性的识别还有语音识别、体形识别等,而指纹识别、虹膜识别等都不具有自然性,因为人类或者其他生物并不通过此类生物特征区别个体。
不被察觉的特点对于一种识别方法也很重要,这会使该识别方法不令人反感,并且因为不容易引起人的注意而不容易被欺骗。人脸识别具有这方面的特点,它完全利用可见光获取人脸图像信息,而不同于指纹识别或者虹膜识别,需要利用电子压力传感器采集指纹,或者利用红外线采集虹膜图像,这些特殊的采集方式很容易被人察觉,从而更有可能被伪装欺骗。
困难
虽然人脸识别有很多其他识别无法比拟的优点,但是它本身也存在许多困难。人脸识别被认为是生物特征识别领域甚至人工智能领域最困难的研究课题之一。人脸识别的困难主要是人脸作为生物特征的特点所带来的。人脸在视觉上的特点是:
在人脸识别中,第一类的变化是应该放大而作为区分个体的标准的,而第二类的变化应该消除,因为它们可以代表同一个个体。通常称第一类变化为类间变化(inter-class difference),而称第二类变化为类内变化(intra-class difference)。对于人脸,类内变化往往大于类间变化,从而使在受类内变化干扰的情况下利用类间变化区分个体变得异常困难。
技术细节
一般来说,人脸识别系统包括图像摄取、人脸定位、图像预处理、以及人脸识别(身份确认或者身份查找)。系统输入一般是一张或者一系列含有未确定身份的人脸图像,以及人脸数据库中的若干已知身份的人脸图象或者相应的编码,而其输出则是一系列相似度得分,表明待识别的人脸的身份。
目前人脸识别的算法可以分类为:
应用
人脸识别的应用主要有:
第二部分、自动人脸识别基本原理人脸识别经过经过这么多年来的发展,取得了很大的发展,涌现出了大量的识别算法。这些算法的涉及面非常广泛,包括模式识别、图像处理、计算机视觉、人工智能、统计学习、神经网络、小波分析、子空间理论和流形学习等众多学科。所以很难用一个统一的标准对这些算法进行分类。根据输入数据形式的不同可分为基于静态图像的人脸识别和基于视频图像的人脸识别。因为基于静态图像的人脸识别算法同样适用于基于视频图像的人脸识别,所以只有那些使用了时间信息的识别算法才属于基于视频图像的人脸识别算法。接下来分别介绍两类人脸识别算法中的一些重要的算法。
特征脸
特征脸方法利用主分量分析进行降维和提取特征。主分量分析是一种应用十分广泛的数据降维技术,该方法选择与原数据协方差矩阵前几个最大特征值对应的特征向量构成一组基,以达到最佳表征原数据的目的。因为由主分量分析提取的特征向量返回成图像时,看上去仍像人脸,所以这些特征向量被称为“特征脸”。
在人脸识别中,由一组特征脸基图象张成一个特征脸子空间,任何一幅人脸图象(减去平均人脸后)都可投影到该子空间,得到一个权值向量。计算此向量和训练集中每个人的权值向量之间的欧式距离,取最小距离所对应的人脸图像的身份作为测试人脸图像的身份。
下图给出了主分量分析的应用例子。图中最左边的为平均脸,其他的为对应 7 个最大特征值的特征向量。
主分量分析是一种无监督学习方法,主分量是指向数据能量分布最大的轴线方向,因此可以从最小均方误差意义下对数据进行最优的表达。但是就分类任务而言,由主分量分析得到的特征却不能保证可以将各个类别最好地区分开来。
线性鉴别分析是一种著名的模式识别方法,通过将样本线性变换到一个新的空间,使样本的类内散布程度达到最小,同时类间散布程度达到最大,即著名的 Fisher 准则。
标准特征脸
同一个人不同图像之间的的特征脸
不同人的图像之间的特征脸
Lades 等人针对畸变不变性的物体识别问题提出了一种基于动态连接结构的弹性图匹配方法,并将其应用于人脸识别。所有人脸图像都有相似的拓扑结构。人脸都可表示成图,图中的节点是一些基准点(如眼睛,鼻尖等),图中的边是这些基准点之间的连线。
每个节点包含 40 个 Gabor 小波(一种数字信号变换方法)系数,包括相位和幅度,这些系数合起来称为一个 Jet ,这些小波系数是原始图像和一组具有 5 个频率、 8 个方向的 Gabor 小波卷积(一种数字信号处理算子)得到的。这样每幅图就像被贴了标签一样,其中的点被 Jets 标定,边被点之间的距离标定。所以一张人脸的几何形状就被编码为图中的边,而灰度值的分布被编码为图中的节点。如下图所示:
弹性图匹配方法中人脸的弹性束图表示
为了识别一张新的人脸,需要从该人脸中找到基准点,提取出一个人脸图,这可用弹性图匹配得到。弹性图匹配的目的是在新的人脸中找到基准点,并且提取出一幅图,这幅图和现有的人脸束图之间的相似度最大。经过弹性图匹配后,新的人脸的图就被提取出来了,此图就表征了新的人脸,用它作为特征进行识别。进行识别时,计算测试人脸和现有人脸束图中的所有人脸之间的相似度,相似度最大的人脸的身份即为测试人脸的身份。
由于该方法利用 Gabor 小波变换来描述面部特征点的局部信息,因此受光照影响较小。此外,在弹性匹配的过程中,网格的形状随着特征点的搜索而不断变化,因此对姿态的变化也具有一定的自适应性。该方法的主要缺点是搜索过程中代价函数优化的计算量巨大,因而造成识别速度较慢,导致该方法的实用性不强。
3D 形态模型
人脸本质上是 3D 空间中的一个表面,所以原则上用 3D 模型能更好地表征人脸,特别是处理人脸的各种变化,如姿势、光照等。 Blanz 等人提出了一种基于 3D 形态模型的方法,该方法将形状和纹理用模型参数编码,同时提出了一个能从单张人脸图像还原模型参数的算法。形状和纹理参数可用来进行人脸的识别。为了处理由于这些参数导致的图像之间差异的极端情形,通常是预先产生一个通用的模型。而进行图像分析时,给定一张新的图像,一般的做法是用通用模型去拟合新的图像,从而根据模型来参数化新的图像。
基于视频图像的识别算法
一个典型的基于视频图像的人脸识别系统一般都是自动检测人脸区域,从视频中提取特征,最后如果人脸存在则识别出人脸的身份。在视频监控、信息安全和出入控制等应用中,基于视频的人脸识别是一个非常重要的问题,也是目前人脸识别的一个热点和难点。基于视频比基于静态图像更具优越性,因为 Bruce 等人和 Knight 等人已证明,当人脸被求反或倒转时,运动信息有助于(熟悉的)人脸的识别。虽然视频人脸识别是基于静态图像的人脸识别的直接扩展,但一般认为视频人脸识别算法需要同时用到空间和时间信息,这类方法直到近几年才开始受到重视并需要进一步的研究和发展。目前视频人脸识别还有很多困难和挑战,具体来说有以下几种:
视频图像质量比较差:视频图像一般是在户外(或室内,但是采集条件比较差)获取的,通常没有用户的配合,所以视频人脸图像经常会有很大的光照和姿态变化。另外还可能会有遮挡和伪装。
人脸图像比较小:同样,由于采集条件比较差,视频人脸图像一般会比基于静态图像的人脸识别系统的预设尺寸小。小尺寸的图像不但会影响识别算法的性能,而且还会影响人脸检测,分割和关键点定位的精度,这必然会导致整个人脸识别系统性能的下降。
视频人脸识别起源于基于静态图像的人脸识别,即识别系统自动的检测和分割出人脸,然后用基于静态图像的识别方法进行识别。对这类方法的一个提高是加入了人脸跟踪。在这类系统中,通过利用姿态和从视频中估计到的深度信息合成一个虚拟的正面人脸。这个阶段的另外一个能提高识别率的方法是利用视频中充裕的帧图像,基于每帧图像的识别结果,使用 ” 投票 ” 机制。投票方法可以是确定的,但是概率投票方法一般来说更好。投票机制的一个缺点是计算结果的代价比较昂贵。
谢谢浏览,完。