人脸识别主要算法原理

 

【嵌牛导读】:人脸识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术。用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部的一系列相关技术,通常也叫做人像识别、面部识别。

【嵌牛鼻子】:人脸识别/算法

【嵌牛提问】:主流的人脸识别技术有哪些?人脸识别的算法原理是什么?

【嵌牛正文】:

主流的人脸识别技术基本上可以归结为三类,即:基于几何特征的方法、基于模板的方法和基于模型的方法。

1.基于几何特征的方法是最早、最传统的方法,通常需要和其他算法结合才能有比较好的效果;2.基于模板的方法可以分为基于相关匹配的方法、特征脸方法、线性判别分析方法、奇异值分解方法、神经网络方法、动态连接匹配方法等。3.基于模型的方法则有基于隐马尔柯夫模型,主动形状模型和主动外观模型的方法等。

1. 基于几何特征的方法

人脸由眼睛、鼻子、嘴巴、下巴等部件构成,正因为这些部件的形状、大小和结构上的各种差异才使得世界上每个人脸千差万别,因此对这些部件的形状和结构关系的几何描述,可以做为人脸识别的重要特征。几何特征最早是用于人脸侧面轮廓的描述与识别,首先根据侧面轮廓曲线确定若干显著点,并由这些显著点导出一组用于识别的特征度量如距离、角度等。Jia等由正面灰度图中线附近的积分投影模拟侧面轮廓图是一种很有新意的方法。

采用几何特征进行正面人脸识别一般是通过提取人眼、口、鼻等重要特征点的位置和眼睛等重要器官的几何形状作为分类特征,但Roder对几何特征提取的精确性进行了实验性的研究,结果不容乐观。

可变形模板法可以视为几何特征方法的一种改进,其基本思想是:设计一个参数可调的器官模型(即可变形模板),定义一个能量函数,通过调整模型参数使能量函数最小化,此时的模型参数即做为该器官的几何特征。

这种方法思想很好,但是存在两个问题,一是能量函数中各种代价的加权系数只能由经验确定,难以推广,二是能量函数优化过程十分耗时,难以实际应用。 基于参数的人脸表示可以实现对人脸显著特征的一个高效描述,但它需要大量的前处理和精细的参数选择。同时,采用一般几何特征只描述了部件的基本形状与结构关系,忽略了局部细微特征,造成部分信息的丢失,更适合于做粗分类,而且目前已有的特征点检测技术在精确率上还远不能满足要求,计算量也较大。

2. 局部特征分析方法(Local Face Analysis)

主元子空间的表示是紧凑的,特征维数大大降低,但它是非局部化的,其核函数的支集扩展在整个坐标空间中,同时它是非拓扑的,某个轴投影后临近的点与原图像空间中点的临近性没有任何关系,而局部性和拓扑性对模式分析和分割是理想的特性,似乎这更符合神经信息处理的机制,因此寻找具有这种特性的表达十分重要。基于这种考虑,Atick提出基于局部特征的人脸特征提取与识别方法。这种方法在实际应用取得了很好的效果,它构成了FaceIt人脸识别软件的基础。

3. 特征脸方法(Eigenface或PCA)

特征脸方法是90年代初期由Turk和Pentland提出的目前最流行的算法之一,具有简单有效的特点,也称为基于主成分分析(principal component analysis,简称PCA)的人脸识别方法。特征子脸技术的基本思想是:从统计的观点,寻找人脸图像分布的基本元素,即人脸图像样本集协方差矩阵的特征向量,以此近似地表征人脸图像。这些特征向量称为特征脸(Eigenface)。

实际上,特征脸反映了隐含在人脸样本集合内部的信息和人脸的结构关系。将眼睛、面颊、下颌的样本集协方差矩阵的特征向量称为特征眼、特征颌和特征唇,统称特征子脸。特征子脸在相应的图像空间中生成子空间,称为子脸空间。计算出测试图像窗口在子脸空间的投影距离,若窗口图像满足阈值比较条件,则判断其为人脸。基于特征分析的方法,也就是将人脸基准点的相对比率和其它描述人脸脸部特征的形状参数或类别参数等一起构成识别特征向量,这种基于整体脸的识别不仅保留了人脸部件之间的拓扑关系,而且也保留了各部件本身的信息,而基于部件的识别则是通过提取出局部轮廓信息及灰度信息来设计具体识别算法。现在Eigenface(PCA)算法已经与经典的模板匹配算法一起成为测试人脸识别系统性能的基准算法;而自1991年特征脸技术诞生以来,研究者对其进行了各种各样的实验和理论分析,FERET'96测试结果也表明,改进的特征脸算法是主流的人脸识别技术,也是具有最好性能的识别方法之一。该方法是先确定眼虹膜、鼻翼、嘴角等面像五官轮廓的大小、位置、距离等属性,然后再计算出它们的几何特征量,而这些特征量形成一描述该面像的特征向量。其技术的核心实际为“局部人体特征分析”和“图形/神经识别算法。”这种算法是利用人体面部各器官及特征部位的方法。如对应几何关系多数据形成识别参数与数据库中所有的原始参数进行比较、判断与确认。Turk和Pentland提出特征脸的方法,它根据一组人脸训练图像构造主元子空间,由于主元具有脸的形状,也称为特征脸,识别时将测试  图像投影到主元子空间上,得到一组投影系数,和各个已知人的人脸图像比较进行识别。Pentland等报告了相当好的结果,在200个人的3000幅图像中得到95%的正确识别率,在FERET数据库上对150幅正面人脸象只有一个误识别。但系统在进行特征脸方法之前需要作大量预处理工作如归一化等。在传统特征脸的基础上,研究者注意到特征值大的特征向量(即特征脸)并不一定是分类性能好的方向,据此发展了多种特征(子空间)选择方法,如Peng的双子空间方法、Weng的线性歧义分析方法、Belhumeur的FisherFace方法等。事实上,特征脸方法是一种显式主元分析人脸建模,一些线性自联想、线性压缩型BP网则为隐式的主元分析方法,它们都是把人脸表示为一些向量的加权和,这些向量是训练集叉积阵的主特征向量,Valentin对此作了详细讨论。总之,特征脸方法是一种简单、快速、实用的基于变换系数特征的算法,但由于它在本质上依赖于训练集和测试集图像的灰度相关性,而且要求测试图像与训练集比较像,所以它有着很大的局限性。

基于KL变换的特征人脸识别方法基本原理:KL变换是图象压缩中的一种最优正交变换,人们将它用于统计特征提取,从而形成了子空间法模式识别的基础,若将KL变换用于人脸识别,则需假设人脸处于低维线性空间,且不同人脸具有可分性,由于高维图象空间KL变换后可得到一组新的正交基,因此可通过保留部分正交基,以生成低维人脸空间,而低维空间的基则是通过分析人脸训练样本集的统计特性来获得,KL变换的生成矩阵可以是训练样本集的总体散布矩阵,也可以是训练样本集的类间散布矩阵,即可采用同一人的数张图象的平均来进行训练,这样可在一定程度上消除光线等的干扰,且计算量也得到减少,而识别率不会下降。

4. 基于弹性模型的方法

Lades等人针对畸变不变性的物体识别提出了动态链接模型(DLA),将物体用稀疏图形来描述(见下图),其顶点用局部能量谱的多尺度描述来标记,边则表示拓扑连接关系并用几何距离来标记,然后应用塑性图形匹配技术来寻找最近的已知图形。Wiscott等人在此基础上作了改进,用FERET图像库做实验,用300幅人脸图像和另外300幅图像作比较,准确率达到97.3%。此方法的缺点是计算量非常巨大 。Nastar将人脸图像(Ⅰ) (x,y)建模为可变形的3D网格表面(x,y,I(x,y) ) (如下图所示),从而将人脸匹配问题转化为可变形曲面的弹性匹配问题。利用有限元分析的方法进行曲面变形,并根据变形的情况判断两张图片是否为同一个人。这种方法的特点在于将空间(x,y)和灰度I(x,y)放在了一个3D空间中同时考虑,实验表明识别结果明显优于特征脸方法。Lanitis等提出灵活表现模型方法,通过自动定位人脸的显著特征点将人脸编码为83个模型参数,并利用辨别分析的方法进行基于形状信息的人脸识别。弹性图匹配技术是一种基于几何特征和对灰度分布信息进行小波纹理分析相结合的识别算法,由于该算法较好的利用了人脸的结构和灰度分布信息,而且还具有自动精确定位面部特征点的功能,因而具有良好的识别效果,适应性强识别率较高,该技术在FERET测试中若干指标名列前茅,其缺点是时间复杂度高,速度较慢,实现复杂。

5. 神经网络方法(Neural Networks)

人工神经网络是一种非线性动力学系统,具有良好的自组织、自适应能力。目前神经网络方法在人脸识别中的研究方兴未艾。Valentin提出一种方法,首先提取人脸的50个主元,然后用自相关神经网络将它映射到5维空间中,再用一个普通的多层感知器进行判别,对一些简单的测试图像效果较好;Intrator等提出了一种混合型神经网络来进行人脸识别,其中非监督神经网络用于特征提取,而监督神经网络用于分类。Lee等将人脸的特点用六条规则描述,然后根据这六条规则进行五官的定位,将五官之间的几何距离输入模糊神经网络进行识别,效果较一般的基于欧氏距离的方法有较大改善,Laurence等采用卷积神经网络方法进行人脸识别,由于卷积神经网络中集成了相邻像素之间的相关性知识,从而在一定程度上获得了对图像平移、旋转和局部变形的不变性,因此得到非常理想的识别结果,Lin等提出了基于概率决策的神经网络方法(PDBNN),其主要思想是采用虚拟(正反例)样本进行强化和反强化学习,从而得到较为理想的概率估计结果,并采用模块化的网络结构(OCON)加快网络的学习。这种方法在人脸检测、人脸定位和人脸识别的各个步骤上都得到了较好的应用,其它研究还有:Dai等提出用Hopfield网络进行低分辨率人脸联想与识别,Gutta等提出将RBF与树型分类器结合起来进行人脸识别的混合分类器模型,Phillips等人将MatchingPursuit滤波器用于人脸识别,国内则采用统计学习理论中的支撑向量机进行人脸分类。神经网络方法在人脸识别上的应用比起前述几类方法来有一定的优势,因为对人脸识别的许多规律或规则进行显性的描述是相当困难的,而神经网络方法则可以通过学习的过程获得对这些规律和规则的隐性表达,它的适应性更强,一般也比较容易实现。因此人工神经网络识别速度快,但识别率低 。而神经网络方法通常需要将人脸作为一个一维向量输入,因此输入节点庞大,其识别重要的一个目标就是降维处理。PCA的算法描述:利用主元分析法(即Principle Component Analysis,简称PCA)进行识别是由Anderson和Kohonen提出的。由于PCA在将高维向量向低维向量转化时,使低维向量各分量的方差最大,且各分量互不相关,因此可以达到最优的特征抽取。

6. 其它方法:

除了以上几种方法,人脸识别还有其它若干思路和方法,包括一下一些:1) 隐马尔可夫模型方法(Hidden Markov Model)2)Gabor小波变换+图形匹配(1)精确抽取面部特征点以及基于Gabor引擎的匹配算法,具有较好的准确性,能够排除由于面部姿态、表情、发型、眼镜、照明环境等带来的变化。(2)Gabor滤波器将Gaussian网络函数限制为一个平面波的形状,并且在滤波器设计中有优先方位和频率的选择,表现为对线条边缘反应敏感。(3)但该算法的识别速度很慢,只适合于录象资料的回放识别,对于现场的适应性很差。

3) 人脸等密度线分析匹配方法(1) 多重模板匹配方法该方法是在库中存贮若干标准面像模板或面像器官模板,在进行比对时,将采样面像所有象素与库中所有模板采用归一化相关量度量进行匹配。(2) 线性判别分析方法(Linear Discriminant Analysis,LDA)(3)本征脸法本征脸法将图像看做矩阵,计算本征值和对应的本征向量作为代数特征进行识别,具有无需提取眼嘴鼻等几何特征的优点,但在单样本时识别率不高,且在人脸模式数较大时计算量大(4) 特定人脸子空间(FSS)算法该技术来源于但在本质上区别于传统的"特征脸"人脸识别方法。"特征脸"方法中所有人共有一个人脸子空间,而该方法则为每一个体人脸建立一个该个体对象所私有的人脸子空间,从而不但能够更好的描述不同个体人脸之间的差异性,而且最大可能地摈弃了对识别不利的类内差异性和噪声,因而比传统的"特征脸算法"具有更好的判别能力。另外,针对每个待识别个体只有单一训练样本的人脸识别问题,提出了一种基于单一样本生成多个训练样本的技术,从而使得需要多个训练样本的个体人脸子空间方法可以适用于单训练样本人脸识别问题。(5)奇异值分解(singular value decomposition,简称SVD)是一种有效的代数特征提取方法.由于奇异值特征在描述图像时是稳定的,且具有转置不变性、旋转不变性、位移不变性、镜像变换不变性等重要性质,因此奇异值特征可以作为图像的一种有效的代数特征描述。奇异值分解技术已经在图像数据压缩、信号处理和模式分析中得到了广泛应用.

7. 面像识别的主要商业系统

90年代中后期以来,一些商业性的面像识别系统开始进入市场。目前,主要商业系统包括:●Visionics公司的FaceIt面像识别系统,该系统基于Rockefeller大学开发的局部特征分析(LFA)算法;●Lau Tech.公司的面像识别/确认系统,采用MIT技术;●Miros公司的Trueface及eTrue身份验证系统,其核心技术为神经网络;●C-VIS公司的面像识别/确认系统;●Banque-Tec.公司的身份验证系统;●Visage Gallery’s身份认证系统,基于MIT媒体实验室的Eigenface技术;●Plettac Electronic’s FaceVACS出入控制系统;●台湾的BioID系统,它基于人脸、唇动和语音三者信息融合的Biometrics系统。

其中,FaceIt系统是最具有代表性的商业产品,目前已在很多地方得到了应用。去年,它在英国用于被称为“Mandrake”的反罪犯系统中,该系统在144个监控摄像机采集的视频序列中搜索已知的罪犯或者嫌疑犯,如发现可能的罪犯,系统将通知中心控制室的警员。笔者曾使用过FaceIt系统,并对其进行了各项指标的评测。结果表明,该系统在控制光照、准正面(3坐标轴上的旋转不超过15度)、无饰物的情况下具有较好的识别性能。但在实用过程中也发现,只有训练集人脸图像的采集条件与测试集人脸图像的采集条件基本一致时才能具有良好的识别性能,否则,其性能将急剧下降,尤其光照变化、姿态变化、黑框眼镜、帽子、夸张的表情、胡须和长发等对其性能的影响更大。

面像识别系统的测试基于对面像识别技术在军事安全等领域重要性的考虑,美国国防部的ARPA资助建立了一个对现有面像识别技术进行评测的程序,并分别于1994年8月、1995年3月和1996年9月(截至1997年3月)组织了三次面像识别和人脸确认的性能评测,其目的是要展示面像识别研究的最新进展和最高学术水平,同时发现现有面像识别技术所面临的主要问题,为以后的研究提供方向性指南。尽管该测试只对美国研究机构开放,但它在事实上成为了该领域的公认测试标准,其测试结果已被认为反映了面像识别研究的最高学术水平。根据2000年公开发表的FERET’97测试报告,美国南加州大学(USC)、马里兰大学(UMD)、麻省理工学院(MIT)等研究机构的面像识别技术具有最好的识别性能。在训练集和测试集摄像条件相似的200人的识别测试中,几个系统都产生了接近100%的识别率。值得一提的是,即使是最简单的相关匹配算法也具有很高的识别性能。在更大对象集的FERET测试中(人数大于等于1166人),在同一摄像条件下采集的正面图像识别中,最高首选识别率为95%;而对用不同的摄像机和不同的光照条件采集的测试图像,最高首选识别率骤降为82%;对一年后采集的图像测试,最大的准确率仅仅接近51%。

该测试结果表明,目前的面像识别算法对于不同的摄像机、不同的光照条件和年龄变化的适应能力非常差,理应得到研究者的足够重视。而且值得注意的是,该测试中所用的人脸图像均为比较标准的正面人脸图像,姿态变化非常小,也没有夸张的表情和饰物,以及没有提及面部毛发改变的情况。所以,我们认为,除了FERET测试所揭示的上述面像识别研究需要面对的问题之外,还需要考虑诸如姿态、饰物(眼镜、帽子等)、面部表情、面部毛发等可变因素对面像识别性能的影响。这些因素也是开发实用的面像识别产品时必然会遇到的最关键的技术问题。为进一步测试商业面像识别系统的性能,并揭示2000年前后面像识别技术的最新进展,美国国防部的反毒品技术开发计划办公室于去年5月和6月对美国的主要商业面像识别系统进行了评测,称为FRVT’2000(Face Recognition Vender Test)评测。该计划邀请了美国所有面像识别系统厂商参加,共24家,但只有8家响应,最终有5家公司参加了评测,而只有3家的系统在规定时间内完成了全部对比实验。可以认为,这3家公司的产品是目前最具竞争力的商业识别系统,它们分别是FaceIt系统、Lau Tech.公司的系统和C-VIS公司的系统。FRVT’2000评估了这些系统对图像压缩、用户-摄像机距离、表情、光照、录制设备、姿态、分辨率和时间间隔等影响因素的识别性能。结果表明,面像识别系统的性能与1997年的测试相比有了一定的进步,但其识别性能对各种条件,如光照、老化、距离、姿态等,仍然离人们的期望值较远。

人脸识别(8)----人脸识别主要算法原理相关推荐

  1. 【老生谈算法】matlab实现车牌识别设计——车牌识别

    基于MATLAB车牌辨认研究 1.文档下载: 本算法已经整理成文档如下,有需要的朋友可以点击进行下载 说明 文档(点击下载) 本算法文档 [老生谈算法]matlab实现车牌识别设计.doc 更多mat ...

  2. 人脸识别主要机算法原理

    人脸识别主要算法原理 主流的人脸识别技术基本上可以归结为三类,即:基于几何特征的方法.基于模板的方法和基于模型的方法. 1. 基于几何特征的方法是最早.最传统的方法,通常需要和其他算法结合才能有比较好 ...

  3. 人脸识别主要算法原理和公司

    人脸识别主要算法原理和公司 机器视觉与识别|字号 订阅 主流的人脸识别技术基本上可以归结为三类,即:基于几何特征的方法.基于模板的方法和基于模型的方法. 1. 基于几何特征的方法是最早.最传统的方法, ...

  4. 人脸识别算法原理过程详解

    本文为转载内容,由于找不到源作者链接,故特此说明. 人脸识别各算法详解 最近,由于工作需要,为了找到一款高效的人脸识别算法,对各种人脸识别算法都研究了一番,以下记录的是各算法的理论基础. 一.MTCN ...

  5. 人脸识别系列算法原理

    目录 1.Eigenfaces(特征脸)算法 基本思想 Eigenfaces算法过程 2.FisherFace算法 基本思想 Fisherface算法流程 3.LBPH(Local Binary Pa ...

  6. 计算机视觉子方向,计算机视觉方向简介 | 人脸识别中的活体检测算法综述

    原标题:计算机视觉方向简介 | 人脸识别中的活体检测算法综述 本文转载自"SIGAI人工智能学习与实践平台"(ID:SIGAICN) 导言 1. 什么是活体检测? 判断捕捉到的人脸 ...

  7. 人脸识别中的活体检测算法综述

    其它机器学习.深度学习算法的全面系统讲解可以阅读<机器学习-原理.算法与应用>,清华大学出版社,雷明著,由SIGAI公众号作者倾力打造. 书的购买链接 书的勘误,优化,源代码资源 1. 什 ...

  8. 人脸识别中的活体检测算法

    人脸识别中的活体检测算法综述 1. 什么是活体检测? 判断捕捉到的人脸是真实人脸,还是伪造的人脸攻击(如:彩色纸张打印人脸图,电子设备屏幕中的人脸数字图像 以及 面具 等) 2. 为什么需要活体检测? ...

  9. 使用 OpenCV与 HAAR 级联算法进行人脸检测和人脸识别

    AI人脸识别是一种从数字图像或视频帧中识别或验证人脸的技术.人类可以毫不费力地快速识别面部.这对我们来说是一项轻松的任务,但对计算机来说却是一项艰巨的任务.因为存在各种复杂性,例如低分辨率.遮挡.光照 ...

最新文章

  1. activemq 开启监听_ActiveMQ 消息监听 MessageListener 的使用
  2. db2和mysql性能_关于DB2数据库的性能分析记录
  3. 每日两SQL(4),欢迎交流~
  4. 文献记录(part57)--半监督学习方法
  5. 深度学习 AI入门-1
  6. 华为Mate 30系列5G版屠榜双十一:当之无愧的5G爆品
  7. 7款应用最广泛的Linux桌面环境盘点
  8. C# SyncDictionary类
  9. Visio图片导入到Word里面的步骤
  10. Java面试题之分布式事务篇
  11. win7连接远程服务器特别慢,技术员告诉您win7远程桌面连接速度慢的具体解决法子...
  12. IIS发布网站后网页样式丢失
  13. GIS应用技巧之去除遥感影像黑边
  14. Idea报错: A JNI error has occurred
  15. cc2530自组网的网络结构是什么?在哪里可以修改
  16. java启动器_打造java启动器步骤三
  17. vscode 新建cpp文件_vscode怎样新建项目和文件 值得收藏
  18. csgo怎么修改服务器的tick,CSGO:关于tick,你真的知道吗?
  19. 亚马逊CEO贝佐斯:蓝色起源将登月“拯救”地球
  20. C语言实现链表与文件的存取

热门文章

  1. 【C语言】最大的两个数(指针专题)
  2. 数据结构与算法分析(四)——C++实现栈
  3. L2TP协议笔记2---L2TP主要协议报文分析
  4. Leetcode - 142. Linked List Cycle II
  5. 上海高考女生计算机专业,@2020高考:女生最多的15个专业,一辈子的好友就在这里...
  6. linux自动断开会话,linux – 从SSH会话断开连接是否会导致程序崩溃?
  7. 点赞时代,你为什么被人绝交?
  8. poj2176 Folding
  9. WPF RichTextBox自动调整高度
  10. [原创]css设置禁止中文换行