1、#*燕山大学课程设计(论文)任务书院(系): 基层教学单位: 学 号 学生姓名 专业(班级)设计题目 基于 MATLAB 的人脸识别设计技术参数测试数据库图片 10 张训练数据库图片 20 张图片大小 1024768特征向量提取阈值 1设计要求综合运用本课程的理论知识,并利用 MATLAB 作为工具实现对人脸图片的预处理,运用 PCA 算法进行人脸特征提取,进而进行人脸匹配识别。工作量一周的课程设计时间,完成一份课程设计报告书,包括设计的任务书、基本原理、设计思路与设计的基本思想、设计体会以及相关的程序代码;熟练掌握 Matlab 的使用。 工作计划第 1 天 按要求查阅相关资料文献,确定人脸
2、识别的总体设计思路;第 2 天 分析设计题目,理解人脸识别的原理同时寻求相关的实现算法;第 3 天 编写程序代码,创建图片数据库,运用 PCA 算法进行特征提取并编写特征脸,上机进行调试;第 4 天 编写人脸识别程序,实现总体功能;第 5 天 整理思路,书写课程设计报告书,完成答辩。参考资料1 谢平,林洪彬,王娜.信号处理原理及应用.机械工业出版社,20042 刘敏,魏玲Matlab.通信仿真与应用.国防工业出版社,20053 楼顺天.基于Matlab7.x 的系统分析与设计.西安电子科技大学,2002指导教师签字 基层教学单位主任签字#*说明:此表一式四份,学生、指导教师、基层教学单位、系部
3、各一份。目录引言 .11 人脸识别技术 .21.1 人脸识别的研究内容 .21.1.1 人脸检测(Face Detection) .21.1.2 人脸表征(Face Representation) .21.2 几种典型的人脸识别方法 .31.2.1 基于几何特征的人脸识别方法 .31.2.2 基于 K-L 变换的特征脸方法 .41.2.3 神经网络方法 .51.2.4 基于小波包的识别方法 .61.2.5 支持向量机的识别方法 .62 人脸特征提取与识别 .62.1 利用 PCA 进行特征提取的经典算法 Eigenface 算法 .72.2 PCA 人脸识别流程 .72.3 特征向量选取 .9
4、2.4 距离函数的选择 .102.5 基于 PCA 的人脸识别 .11MATLAB 人脸识别程序 .123 MATLAB 软件程序编写 .133.1.创建图片数据库 .133.2 主程序 .133.3 最终程序结果 .144 心得与体会 .16参考文献 .16#*引言随着社会的发展及技术的进步,社会各方面对快速高效的自动身份验证的需求可以说无处不在,并与日俱增。例如,某人是否是我国的居民,是否有权进入某安全系统,是否有权进行特定的交易等。尤其是自 2001 年美国“91l”恐怖袭击发生以来,如何在车站、机场等公共场所利用高科技手段,迅速而准确地发现并确认可疑分子成了目前世界各国在反恐斗争中普遍
5、关注的问题。为此,各国都投入大量人力、物力研究发展各类识别技术,使得生物特征识别技术得到了极大的发展。生物特征识别技术主要包括:人脸识别、虹膜识别、指纹识别、步态识别、语音识别、笔迹识别、掌纹识别以及多生物特征融合识别等。人类通过视觉识别文字,感知外界信息。在客观世界中,有 75的信息量都来自视觉,因此让计算机或机器人具有视觉,是人工智能的重要环节。由于生物特征是人的内在属性,具有很强的稳定性和个体差异性,因此是身份验证最理想的依据。与虹膜、指纹、基因、掌纹等其他人体生物特征识别系统相比,人脸识别系统更加直接、方便、友好,易于为用户所接受,并且通过人脸的表情、姿态分析,还能获得其它识别系统难以
6、得到的一些信息。人脸识别技术在国家重要机关及社会安防领域具有广泛用途。例如:公安系统的罪犯识别、信用卡验证、医学、档案管理、视频会议、人机交互系统等身份识别和各类卡持有人的身份验证。同其他人体生物特征(如:指纹、掌纹、虹膜、语音等) 识别技术相比,人脸识别技术的隐性最好,人脸识别系统更直接、友好,是当今国际反恐和安防最重视的科技手段和攻关标志之一。虽然人类能毫不费力地识别出人脸及表情,但对人脸的机器自动识别确实一个难度极大的课题,它涉及到模式识别、图像处理及生理、心理学等诸多方面的知识。人脸识别技术的研究虽然己经取得了一定的可喜成果,但在实际应用中仍存在着许多严峻的问题。人脸的非刚体性、姿态、
7、表情、发型以及化妆的多样性都给正确识别带来了困难,要让计算机像人一样方便地识别出大量的人脸,尚需不同科学研究领域的科学家共同不懈的努力。#*1 人脸识别技术人脸因人而异,绝无相同,即使一对双胞胎,其面部也一定存在着某方面的差异。虽然人类在表情、年龄或发型等发生巨大变化的情况下,可以毫不困难地由脸而识别出某一个人,但要建立一个能够完全自动进行人脸识别的系统却是非常困难的,它牵涉到模式识别、图像处理、计算机视觉、生理学、心理学以及认知科学等方面的诸多知识,并与基于其他生物特征的身份鉴别方法以及计算机人机感知交互领域都有密切联系。与指纹、视网膜、虹膜、基因、掌形等其他人体生物特征识别系统相比,人脸识
8、别系统更加直接、友好,使用者无任何心理障碍,并且通过人脸的表情和姿态分析,还能获得其他识别系统难以得到的一些信息。20 世纪 90 年代以来,随着需要的剧增,人脸识别技术成为一个热门的研究话题。1.1 人脸识别的研究内容人脸识别(Face Recognition)是利用计算机对人脸图像进行特征提取和识别的模式识别技术。在二十世纪七十年代初,对人脸识别的研究涉及心理学神经科学。其直接目的是要搞清楚人是如何对人脸进行识别的。七十年代中期以后,开展了用数学、物理和技术的方法对人脸自动识别的研究。人脸识别一般可描述为:给定静止图像或动态图像序列,利用已有的人脸图像数据库来确认图像中的一个或多个人。从广
9、义上来说,计算机人脸识别的研究内容大概可以分为以下五个方面。1.1.1 人脸检测(Face Detection)此过程包括人脸检测(Detection) 、人脸定位(Location)和人脸跟踪(Tracking)。所谓人脸检测,就是给定任意图像,确定其中是否存在人脸,如果有,给出人脸的位置、大小等状态信息。人脸跟踪指在一纽连续静态图像所构成的动态视频中实时地检测人脸。人脸检测主要受到光照、噪声、姿念以及遮挡等因素的影响,人脸检测的结果直接关系到后面两个过程的准确性。近年来,人脸检测和跟踪开始成为独立的研究课题受到关注。1.1.2 人脸表征(Face Representation)人脸表征就是
10、提取人脸的特征,是将现实空间的图像映射到机器空间的过程。人脸的表示具有多样性和唯一性,这其实就是人脸共性和特性之间的关系问题:只有保持这种多样性和唯一性,才能保证人脸图像的准确描述和识别。人脸图像信息数据量巨大,为提高检测和识别的运算速度以及提高图像传输和匹配#*检索速度,必须对图像进行数据压缩,降低向量维数,即用尽可能少的数据表示尽可能多的信息。人脸的表征在提取人脸特征的同时,也实现了对原始图像数据的降维。1.2 几种典型的人脸识别方法对人脸识别方法的研究主要有两大方向:一是基于人脸图像局部特征的识别方法;二是基于人脸图像整体特征的识别方法。基于人脸图像局部特征的识别通常抽取人脸器官如眼睛、
11、眉毛、鼻子和嘴等器官的位置,尺度以及彼此间的比率作为特征。进一步地可以用几何形状拟合人脸器官,从而以几何参数作为描述人脸的特征。由于此类方法通常要精确地抽取出位置、尺度、比率或几何参数作为描述人脸的特征,因此对人脸图像的表情变化比较敏感。同时,人脸器官分割的精确度也对人脸特征的提取有一定的影响。另外,该类方法并没有充分利用到人脸图像本身具有的获度信息,该方向已经不是人脸识别技术发展的主流方向。基于人脸图像整体特征的人脸识别方法由于不需要精确提取人脸图像中部件的具体信息,而且可以充分利用到人脸图像本身具有的灰度信息,因此可获得更好的识别性能。目前,绝大部分关于人脸识别方法的文章都是基于人脸图像整
12、体特征的,主要有特征脸法、最佳鉴别向量集法,贝叶斯法,基予傅立叶不变特征法,弹性图匹配法,其他相关方法有线性子空间法,可变形模型法和神经网络法。这些方法中有的侧重于表述人脸图像的特征提取,如弹性图匹配法和傅立叶不变特征法;有的则侧重于分类,如最佳鉴别向量集法、贝叶斯法和神经网络法;而有的则侧重于人脸图像重构,如特征脸法和线性子空间法。所有这些基于人脸图像整体特征的人脸识别方法均取得了一定的识别性能。1.2.1 基于几何特征的人脸识别方法基于几何特征的人脸识别方法主要源于人脸识别的初期研究阶段。这种方法是以人脸各个器官和几何关系为基础进行算法设计。对于不同人来说,脸上的各个器官,如眼睛、鼻子、嘴
13、巴以及整个脸部的轮廓具有不同的形状、大小、相对位置和分布情况。在基于几何特征的人脸识别方法中,可以用一个矢量来表示提取出来的几何参数。如果要获得一个准确、稳定和可靠的识别结果,就要求这些被选出的几何特征参数包含足够丰富的辨识人脸的信息,且能反映不同人脸之间的差别。也就是说对这些矢量要求具有较高的模式分类能力,同时还要有一定的稳健性,能够消除由于时间变迁、光照变化等其他干扰因素所带来的影响。具体来沈,这些几何参数一般包括人脸上两个指定特征点之间的欧式距离、边缘曲率、角度等等。在实际应用过程中,基于几何特征的人脸识别方法存在着两个方面的问题:(1)如何快速、准确地检测出入脸的重要标志点依然是一个没
14、有很好解决的问题。脸上的重要标志点,如瞳孔、嘴巴和鼻子,它们在脸上的位置是进行脸部几何参数计算和测量的基准。(2)脸部几何特征在人脸辨识中的有效性问题,即脸部几何特征能够提供多少可供识#*别的信息量。虽然各人脸的器官在形状、大小及分布上各不相同,但是这种器官上的差异性更多是体现在某些细微的感觉意义上。例如眼睛显得比较小、鼻子显得比较宽,以及皮肤的纹理、颜色上的差异等等。显然,这些特征中的一部分是难以精确测量出来或者是不能用几何参数准确描述的。所以仅靠增加脸上几何参数的数目来提高人脸识别率是不太现实的。由于进一步改善测量精度是十分困难的,因而通过增加脸部几何参数的数量来改善识别率结果,其影响是极
15、小的。因此,基于少量人脸几何特征进行大规模人脸辨识的可靠性是不容乐观的。1.2.2 基于 K-L 变换的特征脸方法K-L 变换是图像压缩的一种最优正交变换,人们将它应用于特征提取,形成了子空间法模式识别的基础。将 K-L 变换用于人脸识别,需要假设人脸处于低维的线性空间,不同人脸具有可分性。高维的图像空间经过 K-L 变换后得到一组新的正交基,保留其中重要的正交基从而形成了低维的人脸空间。若将所有子空间的正交基排列成图像阵列,则正交基呈现人脸的形状,因此这些正交基也被称为特征脸。选择那些正交基形成的子空间则有不同的考虑,与较大特征值对应的一些正交基(也称主分量 )能够表达人脸的大体形状,而具体
16、细节需要那些小特征值对应的特征向量(也称次分量 )来加以补充描述,因此低频成分用主分量表示,高频分量用次分量表示。采用主分量作为新的正交空间的正交基的方法称为主分量(Principal Component Analysis,简称 PCA)方法。K-L 变换在 90 年代初受到了很大的重视,实际用于人脸识别取得了很好的效果,一般库德大小为 100 幅左右,识别率在 70-100之间不等,这主要取决于人脸库图像的质量。从压缩能量的角度来看,K-L 变换是最优的,变换后的低维空间对于人脸有很好的表达能力,然而这并不等同于对不同人脸具有较好的判别能力。选择训练样本的散布矩阵作为 K-L 变换的生成矩阵
17、,其最大特征向量反映了该样本集合的最大分布的方向,但这是图像统计方法,而不是人脸统计方法。它查找的是图像之间所有的差异,并根据这些差异来确定不同人脸间的距离,而不管这些差异是由于光线、发型或背景的改变引起的,还是属于人脸本身的内在差异,因此特征脸的方法用于人脸识别存在理论的缺陷。研究表明,特征连的方法随着光线、角度以及人脸的尺寸的引入而识别率急剧下降。主分量的方法使得变换后的表达能力最佳,次分量的方法考虑了高频的人脸区分能力,但是由于外在因素带来图像差异和人脸本身带来的差异对 K-L 变换而言是不加任何区分的,因此,如何选择正交基并不根本解决问题。改进的一个思路是针对干扰所在,对输入图像作规范
18、化处理,包括输入图像的均值方差归一化,人脸尺寸归一化。另一种改进是考虑到局部人脸图像受到外在干扰相对较小的情况,除了计算特征脸之外,还利用 KL变换计算出特征眼、特征嘴等。将局部特征向量加权进行匹配得到一些好的效果。总之,特征脸方法是一种简单、快速、使用的基于变换系数的算法,但由于它在本#*质上依赖于训练集合测试集图像的灰度相关性,而且要求测试图像与训练集比较接近,所以存在着很大局限。1.2.3 神经网络方法人工神经网络是一种以大量的处理单元(神经元) 为节点,处理单元之间实现加权值互连的拓扑结构。人工神经网络中的处理单元是人类大脑神经单元的简化。处理单元之间的互连则是轴突、树突这些信息传递路
19、径的简化。根据不同的应用场合,现已研究出较多的神经元网络模型及其动态过程的算法。人工神经元通常采用非线性的作用函数,当大量神经元连接成一个网络并动态运行时,则构成了一个非线性动力学系统。人工神经网络具有自组织性、高维性、模糊性、分布性和冗余性等等特点,较冯诺依曼体系的计算机更适合模拟人类大脑的思维机理。但总的来说,由于人类对自身思维机理认识的不足,所以对人工神经元作了极度的简化,这种模拟表现为极其肤浅和简单。很多脸部识别系统都采用了多层感知机作为人工神经网络的基本结构。多层感知机由几层全互连的非线性神经组成。神经元之间有权值连接,权值包含了训练模式空间的特征。训练过程就是调整权值的过程,最常用
20、的算法就是 BP 法则。多层感知机的输入形式有很多种,最简单的就是将整个人脸图像作为输入层,也可以对人脸图像进行采样,然后用低分辨率图像作为输入层。由此可以看出,人工神经网络有着与 Eigenface 方法非常相似的表达方法。一般来说,BP 算法的收敛速度非常缓慢,学习过程可能需要对整个训练集进行上千次反复迭代运算,这是神经网络实际应用的一个问题。此外,BP 算法以误差梯度下降的方式达到极小值,但在实际应用中,容易陷入到局部极小中,无法得到全局最优解,这也是有待解决的一个问题。1.2.4 基于小波包的识别方法基于小波包的面部识别方法首先对一幅人脸图像进行小波包分解。因为小波包分解得到的不同频带
21、包含有不同的人脸信息,所以从每一个小波包中可以提取出不同的面部特征。对于小波包分解得到的离散逼近稀疏,Garcai 进一步将它分解成三个部分,分别是边界区、上半部分和下半部分,然后就可以分别计算这三个区域的均值和方差,加上另外 15 个离散细节区域的方差,组成一个包含有 21 个分量的特征向量。小波包分解是一种多分辨率分析方法,能够提供良好的面部纹理描述,所以有利于提取面部特征。1.2.5 支持向量机的识别方法支持向量机(SupportVectorMachine,SVM)起源于统计学习理论,它研究如何构造学习机,实现模式分类问题。其基本思想是通过非线性变换将输入空间变换到一个高维空#*间,在高
22、维空间求取最优线性分类面,以解决那些线性不可分的分类问题。而这种非线性变换是通过定义适当的内积函数(即核函数) 来实现的。 SVM 技术中核函数及其参数的选取难度较大。由于它基于结构风险最小化原理,而不是传统统计学的经验风险最小化,因而表现出很多优于已有方法的性能。由于 SVM 的训练需要大量的存储空间,非线性SVM 分类器需要较多的支持向量,所以速度很慢。2 人脸特征提取与识别PCA 方法将包含人脸的图像区域看作随机向量,因此可采用 K-L 变换得到正交 KL 基,对应其中较大特征值的基具有与人脸相似的形状,因此又被称为特征脸。利用这些基的线性组合可以描述、表达和逼近人脸图像,所以可进行人脸
23、识别与合成。识别过程就是将人脸图像映射到由特征脸组成的子空间上,并比较其在特征脸空间中的位置。PCA 方法认为图像的全局结构信息对于识别最重要,将图像看作一个矩阵,计算矩阵的特征值和对应特征向量进行识别。这种方法利用图像的总体信息,不从图像中提取出眼、嘴、鼻等几何特征,算法较简单且具有较高的识别率。主成分分析法(PCA)是模式识别判别分析中最常用的一种线性映射方法,该方法是根据样本点在多维模式空间的位置分布,以样本点在空间中变化最大方向,即方差最大的方向,作为判别矢量来实现数据的特征提取与数据压缩的。从概率统计观点可知,一个随机变量的方差越大,该随机变量所包含的信息就越多,如当一个变量的方差为
24、零时,该变量为一常数,不含任何信息。2.1 利用 PCA 进行特征提取的经典算法Eigenface 算法在利用 PCA 进行特征提取的算法中,特征脸方法(Eigenface)是其中的一个经典算法。特征脸方法是从主成分分析导出的一种人脸识别和描述技术。特征脸方法就是将包含人脸的图像区域看作是一种随机向量,因此可以采用 K-L 变换获得其正交 K-L 基底。对应其中较大特征值的基底具有与人脸相似的形状,因此又称为特征脸。利用这些基底的线性组合可以描述、表达和逼近人脸图像,因此可以进行人脸识别与合成。识别过程就是将人脸图像映射到由特征脸张成的子空间上,比较其与己知人脸在特征空间中的位置,具体步骤如下
25、:(1)初始化,获得人脸图像的训练集并计算特征脸,定义为人脸空间,存储在模板库中,以便系统进行识别;(2)输入新的人脸图像,将其映射到特征脸空间,得到一组关于该人脸的特征数据;(3)通过检查图像与人脸空间的距离判断它是否是人脸;(4)若为人脸,根据权值模式判断它是否为数据库中的某个人,并做出具体的操作。#*2.2 PCA 人脸识别流程完整的 PCA 人脸识别应该包括以下四个步骤:人脸图像预处理;读入人脸库,训练成特征子空间;把训练图像和测试图像投影到上一步骤得到的子空间上;选择一定的距离函数进行识别。下面详细描述整个过程:(1)读入人脸库归一化人脸库后,将库中的每人选择一定数量的图像构成训练集
26、,其余构成测试集。设归一化后的图像是 NN 的,按列相连就构成 维向量,可看作是 维空间中的2N2N一个点,可以通过 K-L 变换用一个低维子空间描述这个图像。(2)计算 K-L 变换的生成矩阵,并求取图像的特征值和特征向量假设人脸图像库中有 N 幅人脸图像,用向量表示为 (向量维数设为 L) ,NX,21其人脸平均图像如式(2-1)所示:(2-1)NiiaveX1由此可得到每幅图像的均差,如式(2-2)所示:aveii, (2-2)Ni,2这样可计算协方差矩阵,如式(2-3)所示:(2-3)TiNiXC)(1计算矩阵 C 的特征值 和对应特征向量 。k k但是在实际计算中,矩阵 C 的大小是
27、 ,即使对尺寸较小的图像计算量还是2很大。为了减小运算量,现将每幅图像的均差形成一个矩阵,如式(2-4)所示:(2-4),21 NXX,则式(2-3)可以写成式( 2-5):(2-5)TC)(因此,根据线性代数理论,将计算 的特征值 和对应特征向量 的问题 j j转化为求 的特征值 和对应的特征向量 的问题。 的大小仅为)(XTj j )(XT#*NN 远远小于 ,故简化了计算。在求出 后, 可以通过式(2-6)得到:2j j(2-6) 1jjjX (3)把训练图像和测试图像投影到特征空间由特征向量所形成的向量空间可表示人脸图像的主要特征信息,将人脸图像库中所有 N 个图像的均差向此空间投影,
28、得到各自的投影向量 ,如式(2-7)和(2-NY,218)所示:(2-7 )iyYMiTi ,)(21(2-8 )jXyj 对于待识别人脸图像 I,计算其与 k 差的投影向量,如式(2-9)所示:(2-9)jpaveiTjj , ,21)()再与人脸图像库中 N 个人脸图像对应的投影向量 比较,按照一定的距NY,离准则完成识别。(4)比较测试图像和训练图像,确定待识别样本类别这里可以采用多种不同的分类器进行分类: 范式、 范式、最小距离、角度以1L2及 Mahalanobis 距离等。MATLAB 特征脸程序实现m = mean(T,2); %求样本的平均向量Train_Number = size(T,2);%计算每个样本与平均向量的差向量A = ; for i = 1 : Train_Numbertemp = double(T(:,i) - m; %计算训练集中每幅图像的均差 Ai = Ti - mA = A temp; end L = A*A; %计算协方差矩阵V D = eig(L); % 求特征向量和特征值