• 899.04 KB
  • 2022-04-22 13:32:06 发布

SVD与KFDA相结合人脸识别设计毕业论文.doc

  • 28页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'SVD与KFDA相结合人脸识别设计毕业论文目录摘要IAbstractII1绪论11.1人脸识别技术的历史发展11.2人脸识别的研究内容21.3人脸识别研究的意义31.4本文的主要研究内容和安排42.人脸识别算法原理52.1奇异值方法(SVD)52.2主分量分析(PCA)方法62.3Fihser线性鉴别分析72.4SVD与KFDA相结合人脸识别92.4.1核Fishe判别分析(KFDA)102.4.2SVD与KFDA的融合113实验结果与分析133.1ORL人脸库实验133.2CAS-PEAL人脸库实验153.3结果分析184.总结19参考文献20致谢22附录123 1绪论随着社会的发展以及技术的进步,尤其是最近十年内计算机的软硬件性能的飞速提升,以及社会各方面对快速高效的自动身份验证的要求日益迫切,生物识别技术在科研领域取得了极大的重视和发展。由于生物特征是人的内在属性,具有很强的自身稳定性和个体差异性,因此是身份验证的最理想依据。在人与人的接触中,人脸所包含的视觉信息占据了重要地位,它是区分人与人之间差异的最重要特征之一。而人脸识别就是利用计算机从图像或图像序列中检测出人脸,并判断其身份。而相对于指纹、虹膜、掌纹、步态、笔迹、声纹等生物特征,利用人脸来识别具有不可比拟的优势。1.1人脸识别技术的历史发展人脸识别的研究已经有很长的历史,早在19世纪后期法国人FrancisCalton就曾对此问题进行了研究,他用一组数字代表不同的人脸侧面特征来实现对人脸侧面图像(Profile)的识别。一直到20世纪90年代以前,典型的人脸识别技术始终是用人脸正面(Frontalside)或者侧面的特征点之间距离度量,而且早期的人脸识别多集中在对侧影图像的研究。计算机人脸识别技术是近20年才逐渐发展起来的。20世纪90年代更成为科研热点。仅1990年到1998年之间,EI可检索的相关文献就多达数千篇。Harmon等人利用与Galton类似的方法识别人脸,他采用9个基准点表征侧影在此基准点上导出一组特征,如基准点之间的距离和角度,由基准点形成的三角区域的面积等,然后利用特征之间的归一化欧式距离进行识别。其后期的工作又增加了两个基准点和一些新的特征,而且人脸侧影轮廓曲线可从侧影图像中的自动抽取得到。Kaufman和Breeding也设计了一个对人脸侧影进行识别的系统,他们采用基于特征的方法,其中特征为极坐标形式的自然相关函数的系数。同时对动量不变性特征也进行了实验。Baylou等人选择了10个特征点对人脸侧影进行识别。由于侧影识别对获取图像的约束较多,人们逐渐转向对正面人脸的识别研究最早的半自动正面人脸识别系统由Bledsoe于20世纪60年代提出。在该人脸识别系统中,首先由操作员定出面部特征点并将其位置输入计算机,这些特征点之间的距离,采用最近邻原则或者其他分类规则即可识别出待识别的人脸。由于特征提取是由人来完成的,该系统对人脸的旋转,倾斜等变太敏感。Kelly对Bledsoe的系统进行了改进。他采用了一种从上到下的分法从图像中自动抽取头部和身体的轮廓,然后应用一些启发式的方法搜索眼鼻子和嘴的位置。在这个人脸识别系统中主要用到的距离测度包括:头的宽两眼之间,头顶和眼睛之间,眼睛和鼻子之间,鼻子与嘴之间的距离。Kaya和Kobayashi25 采用统计的识别方法,用欧式距离来表征人脸特征,用人脸的著特征组成特征向量,包括内眼宽度,外眼宽度,鼻子宽度,嘴的宽度,处脸的宽度,鼻子与眼睛中间处脸的宽度,下唇与下巴之间的距离,上唇子的距离以及嘴唇的高度,然后根据这些特征值及其估计建立分类器,对特征根据其统计行为确定一个变化闭值,根据图像特征向量之间的绝对范行分类。Buhr采用32个原始特征和12个辅助特征进行识别,其中原始特个距离特征4个坐标差分特征,4个三角形面积特征,2个距离比例特征以个特殊特征(两眼的面积),然后利用线性判决树决定最佳匹配。其他采用非欧离表征人脸特征的还有:Campbell用最小二乘法实现最佳匹配,Ricca用聚术进行最佳匹配等。Kanade设计了一个高速的且有一定知识引导的识别系统,他创造性地积分投影法从单幅图像上计算出一组人脸几何特征参数,再利用模式匹配与标准人脸相比较。Kanade的特征点定位工作有两个阶段,首先利用粗分差分图像的积分投影确定眼睛鼻子和嘴的大致位置,然后再高分辨率图像人脸分为左眼,右眼,鼻子和嘴四个区域,从中抽取16个脸部特征组成特量。为消除尺度变化的影响,在识别前还对得到的特征向量进行了归一化处相比之下,Baron所做的工作较少为人知道,他先将图像灰度归一化,再四个掩模(眼,鼻子,嘴以及眉毛以下的整个脸部)表示人脸,然后分别计算出这掩模与数据库中的每幅标准图像的相应掩模之间的互相关系函数,以此作为总的来说,早期的人脸识别方法都需要某些先验知识,仍然摆脱不了干预。20世纪70年代中期,经典的模式分类方法都是采用正面图像或者侧脸图像中那些可计算的,比较精确的属性来识别人脸。80年代,人脸识别的研究基本上处于休眠状态。20世纪90年代以来随着高速度高性能的计算机的出现,人脸识别方法有了重大突破,进入了真正的计算机自动识别阶段,人脸识别的研究也得到了前所未有的重视。国外有很多大学在此方面取得了很大进展,研究设计的领域很广,其中有从感知和心里学角度探索人类识别人脸机理的,如美国TexasatDallas大学的Abdi和Toole小组,主要研究人类感知人脸的规律,如漫画效应,性别识别和人脸识别的关系,种族效应等。由Stirling大学的Bruce教授和Glasgow大学的Burton教授合作领导的小组,主要研究人类大脑在人脸认识中的作用,并在此基础上建立了人脸认识的两个功能模型,他们对熟悉和陌生的人脸的识别规律以及图像序列的人脸识别规律也进行了研究。也有从视觉机理的角度进行研究的,如英国Aberdeen大学的Craw小组,主要研究人脸视觉表征方法,他们对空间频率在人脸识别中的作用也进行了分析,荷兰Groningen大学的Petkov小组,主要研究人类视觉系统的神经生理学机理并在此基础上发展了并行模式识别方法。更多的学者则从事利用输入图像进行计算机人脸识别的研究工作。1.2人脸识别的研究内容简单地说,人脸识别就是给定一个静止的或者动态图像,利用己有的人脸数据库来确认图像中的一个或者多个人。它主要的研究内容包括一下5个方面[6]:(1)人脸检测(FaceDeteetion)如何从各种不同的背景中检测出人脸的存在并确定其位置。这一部分主要受到光照、噪声、头部倾斜度以及各种遮挡的影响。25 (2)人脸表征(FaeeRepresentation)确定表示检测出的人脸和数据库中的已知人脸的描述方式。通常的表示方法包括几何特征(如:欧式距离,曲率,角度等),代数特征(如矩阵特征矢量)固定特征模板,特征脸等。(3)人脸鉴别(FaeeIdentifieation)这一部分也就是通常所说的人脸识别,将待识别的人脸和数据库中的已知人脸相比较,得出相关信息,最终确定待识别的人脸是数据库中的哪个人。这里最主要的是选择合适的人脸表示方式和匹配策略。(4)表情分析(FacialExPressionAnalysis)对待识别的人脸的表情进行分析,并对其加以分类。(5)物理分类(physicalClassification)对待识别人脸的物理特征进行分类,得出其年龄、性别、种族等相关信息。到目前为止,大部分的研究工作主要集中在人脸检测与定位、特征提取以及分类识别这几部分,而且很多问题尚待解决,表情分析和物理分类的研究现在还处在初步阶段,相对比较少。因此,通常所说的人脸识别系统,包括人脸检测与定位、特征提取、分类识别这几个部分,不包括表情分析和物理分类这两部分值得一提的是近年来表情分析和物理分类越来越受到研究人员的重视。1.3人脸识别研究的意义人脸识别技术具有广泛的应用前景,在国家安全、军事安全和公共安全领域,智能门禁、智能视频监控、公安布控、海关身份验证、司机驾驶执照验证等有典型的应用;在民事和经济领域,各类银行卡、金融卡、信用卡、储蓄卡的持卡人的身份验证,社会保险人的身份验证等具有重要的应用价值;在家庭娱乐领域,人脸识别也具有一些有趣的应用,比如能够识别主人身份的智能玩具家政机器人具有真实面像的虚拟游戏玩家等等主要有一下几类应用[8]:(1)刑侦破案。当公安部门获得案犯的照片之后可以利用人脸识别技术在罪犯照片的数据库里找出最相象的人为嫌疑犯还有一种应用就是根据目击证的描述画出草图然后用这种图到库里去找嫌疑犯罪犯数据库往往很大由几千图像组成如果这项搜索工作由人工完成不仅效率低而且容易出错因为人在看上百幅人脸图像后记忆力会下降而由计算机来完成则不会出现此问题。(2)证件验证。身份证驾驶执照以及其他很多证件上都有照片现在这些证是人工验证的如果用人脸识别技术这项任务就可以交给机器完成从而实现自化智能管理当前普遍使用的另一项证件是用符号或者条形码标记的比如信用自动提款机等这类卡的安全系数比较低因为卡可能丢失密码也可能被遗忘或窃取如果在这类卡上加上人脸的特征信息则可大大改善其安全性能。25 (3)入口控制。入口控制的范围很广它可以是设在楼宇单位或私人住宅入安全检查也可以是计算机系统或者情报系统等的入口检查在楼宇或某些安全的入口处比较常用的检查手段是核查证件当人员出入频繁时要求保安人员再三检查证件是很麻烦的而且安全系数也不高在一些保密要求非常严格的部门了用证件还要用一些另外的识别手段如指纹识别手掌识别视网膜识别和语音别等人脸识别与之相比具有直接方便和友好的特点当前计算机系统的安全管也倍受重视通常使用由字符和数字组成的口令可能会被遗忘或者破解但是如把人脸当作口令则又方便又安全。(4)视频监视在许多银行公司公共场合等处都设有24小时的视频监控另外察员在破案时也要用摄像机对人进行跟踪在对图像进行集体分析时也要用到脸的检测跟踪和识别技术。除了这几部分的应用外人脸识别技术还可用于视频会议机器人的智能化究以及医学等方面。1.4本文的主要研究内容和安排特征提取是人脸识别中一个至关重要的环节,一个人脸识别系统的识别准确率在很大程度上取决于特征提取部分,本文对人脸识别中的特征提取进行研究,内容主要包括如下几个方面:(l)综述人脸识别技术,指出人脸识别技术的应用前景。(2)对当前人脸识别中存在的各种主要子空间特征提取算法进行了较为系统的介绍,并对各种算法的变种和发展做了总结。(3)Fisher准则是线性判别分析中常用的准则函数,此准则函数己被证明在低维模式识别中非常有效。但是,这种方法存在自身的局限性:基于线性提取特征。而人脸本身具有复杂的非线性特征。对此,我们介绍了核函数的基本理论,引入核Fisher判别分析方法。(4)理论上,当两种数据或分类器具有一定的独立性或互补性时,数据融合或分类器融合能改善识别率。SVD和KFDA之间有着明显的互补之处,本文提出SVD与KFDA相结合的识别方法,在ORL、cas-peal人脸库上进行实验,与子空间特征提取算法如SVD、LDA、PCA还与SVD与LDA相结合的方法及核线性鉴别方法(KFDA)相比表明,此方法有一定的合理性和优越性。论文组织如下:第一章主要介绍了人脸识别的发展概况,研究内容和实际应用。第二章介绍了几种线性子空间人脸识别方法,指出了各种方法的优缺点。介绍了核Fisher判别分析和核函数的基本理论,提出奇异值分解(SVD)与核Fisher判别分析(KFDA)相结合的方法。第三章通过在不同标准人脸库的实验,分析实验结果,对各种识别方法的性能进行比较。第四章对本文提出的方法作了总结,并提出了下一步的研究方向。25 2.人脸识别算法原理2.1奇异值方法(SVD)奇异值分解(SVD)是一种有效的代数特征提取方法[12]。基于SVD的人脸识别方法把图像看成一个矩阵。对任何一个矩阵都可以利用奇异值分解为对角阵。定理1[13]SVD对于任一个秩为r的矩阵,必有两个正交矩阵U、V使得(1)其中符号“T”表示矩阵转置;,。均为实数,即为A的奇异值;、分别称为矩阵A的属于的左、右奇异向量。将奇异值按从大到小的顺序排列,不妨设。由奇异值分解的性质可知,后面的大部分奇异值几乎为零。式(1)可以写为以下投影形式(2) 定理2[5]设矩阵,且A的秩为r。由定理1知,A有奇异值分解,其中。设k为一整数,。令,并设其中‖·‖为Frobenius范数。定理2表明,对于Frobenius范数,在线性空间中,矩阵是A的最优逼近。于是式(1)可近似表示为(3)该表示所产生的误差为i  文献[7]给出了用式(3)近似表示图像A所损失的能量为25 即后面的r-k个奇异值的平方和。这样,当奇异值按从大到小的顺序排列时,用式(3)近似表示图像A的所损失的能量是很小的。文献[10]中Hong首次将奇异值向量作为图像的一种代数特征,证明其具有稳定性、旋转、平移和镜像变换不变性等良好性质,并用于人脸识别中。基于此,大量的研究将奇异值向量作为图像的一种有效代数特征用于人脸识别。但是,文献[13]的研究表明,图像的奇异值向量并非包含了图像的足够信息,图像的大量信息主要体现在图像矩阵奇异值分解的两个正交矩阵中,并提出了一种基于投影系数向量的人脸识别方法。但是奇异值分解用于人脸识别有其不足之处:1.投影基空间不一致2.特征缺少类别信息这限制了识别率的进一步提高。2.2主分量分析(PCA)方法PCA算法(PrinciplecomponentAnalysis)是一种主成分分析的算法[14]。PCA方法是由Turk和Pentlad提出来的,它的基础就是Karhunen-Loeve变换(简称KL变换),是一种常用的正交变换。这种方法将包含人脸图像区域看作一种随机向量,因此可以采用KL变换得到正交变换基,对应其中较大的特征值的基底具有与人脸相似的形状。PCA算法利用这些基底的线性组合可以描述、表达人脸和逼近人脸,因此可以进行人脸的识别和重建。识别过程就是把待识别人脸映射到由特征脸张成的子空间中,与库中人脸的子空间位置进行比较。人脸的重建就是根据待识别人脸在子空间的位置,还原到人脸空间中。完整的PCA人脸识别的应用包括几个步骤[4]:人脸图像预处理;读入人脸库,训练形成特征子空间;把训练图像和测试图像投影到上一步骤中得到的子空间上;选择一定的距离函数进行识别。(1)读入人脸库归一化人脸库后,将库中的每人选择一定数量的图像构成训练集,其余构成测试集。设归一化后的图像是,按列相连就构成维矢量,可视为N维空间中的一个点,可以通过K-L变换用一个低维子空间描述这个图像。(2)计算K-L变换的生成矩阵所有训练样本的协方差矩阵为(以下三个等价):(4)(5)25 (6),,是平均人脸,M训练人脸数,协方差矩阵是一个的矩阵,N是的维数。为了方便计算特征值和特征向量,一般选用公式(5)。根据K-L变换原理,我们所求的新坐标系即由矩阵的非零特征值所对应的特征向量组成。直接求大小矩阵的特征值和正交归一特征向量是很困难的,根据奇异值分解原理,可以通过求解的特征值和特征向量来获得的特征值和特征向量。在计算得到的所有非零特征值(从大到小排序,)及其对应的单位正交特征向量后,可以得到特征空间从而可以计算一张图片X在特征空间上的投影系数(也可以理解为X在空间U中的坐标):(7)(3)识别利用公式(7),首先把所有训练图片进行投影,然后对于测试图片也进行同样的投影,采用判别函数对投影系数进行识别。2.3Fihser线性鉴别分析PCA以能够提取均方误差最小意义下最佳表达数据的特征,然而该特征并不是最有利于分类的特征。而判别分析的目的可以总结为:找到一个能够返回某种度量值的函数,而且该度量值能够成为区分样本不同类别的依据。这些依据可以用来训练分类器,或者提取特征。因此,判别分析可以理解为一种监督学习或者特征提取方式。在应用统计方法解决模式识别问题时,一再遇到的问题之一就是维数问题。在低维空间里解析上或计算上行的通的方法,在高维空间里往往行不通。因此,降低维数有时就成为处理实际问题的关键。我们可以考虑把d维空间的样本投影到一条直线上,形成一维空间,即把维数压缩到一维。这在数学上总是容易办到的。然而,即使样本在d维空间里形成若干紧凑的互相分得开得集群,若把它们投影到一条任意得直线上,也可能使几类样本混在一起而变得无法识别。但在一般情况下,总可以找到某个方向,使在这个方向的直线上,样本的投影能分开的最好。问题是如何根据实际情况找到这条最好的、最易于分类的投影线。这就是Fisher法要解决的基本问题。25 设d维空间内共有n个训练样本,,,为第i类的第j个样本,分为C类,n为第i类样本数目,X为第i类样本集。(l)第i类的样本均值向量:(8)(2)总体样本均值向量m:(9)(3)样本类内离散度矩阵又和总类内离散度矩阵,为:,(10)(11)反映了各分量到各类中心的平均平方距离,其秩不大于n-c。(4)样本的类间离散度矩:(12)反映了各类中心到总体中心的平均平方距离,其秩不大于c-1。(5)总的散度矩阵(协方差矩阵):(13)反映了各分量总的平均方差,其秩不大于n-1.Fisher判别的目的是找一个最优的鉴别向量集W,,它的每一个列向量就是一个鉴别方向。将样本数据投影到这些方向上,使得映射后的类间离散度矩阵和类内离散度矩阵的比值最大。25 Fisher准则函数定义为(14)其中,、分别是训练样本的总的类间散度矩阵和总的类内散度矩阵。式(14)中的是广义的Rayleigh熵,可以用Lagrange乘子法求解,令分母等于非零常数,即令,定义Lagrange函数为:(15)式中几的为Lagrange乘子。将式(15)对w求偏导,得:(16)令其偏导数为零,得:,即:(17)其中即为取得最大值时的w。在非奇异的时候,式16)两边乘以可得(18)求解式(14)卿为求解一般矩阵的特征值问题。综上所述,当非奇异时,在数学上,求解(14)式就等同于求解的特征值问题。对应矩阵的最大k个特征值的特征向量即为对应于Fisher线性判别准则的鉴别向量W。2.4SVD与KFDA相结合人脸识别现有的线性投影分析在人脸检测、人脸识别等问题中己得到成功的应用,但其缺点也很明显:首先,它们在表示模式特征时都是基于二阶统计量,对于图像而言,没有考虑多个像素的高阶统计相关性,而该相关性包含了对识别结果起着重要作用的在图像的边缘或曲线上多个像素点之间的非线性关系。另外,线性投影分析都是基于线性投影的特征抽取方法,抽取得到的都是线性特征,而在人脸识别过程中,由于光照、姿态、表情等不同引起人脸图像的差异造成人脸图像的分布是非线性的,结果通常不能令人满意。核方法[20]是一系列先进非线性数据处理技术的总称,它最早应用于支持向量机(SVM25 )中,在模式识别、回归估计等方面都有着成功的应用,其共同特征是在数据处理方法都应用了核映射。它在解决非线性问题时的基本思想是,首先通过适当的非线性映射函数将非线性可分的原始输入空间变换到某一线性可分的高维(甚至为无限维)特征空间,然后在高维特征空间中进行对应的线性操作。从本质上讲,核方法实现了数据空间、特征空间和类别空间之间的非线性变换。核方法区别于普通非线性方法的优势在于,它借助于核函数,不需要对输入空间进行任何直接的非线性映射,从而使数学上的处理变得相对容易。2.4.1核Fishe判别分析(KFDA)KFDA方法[16][17][18]就是将核方法应用到Fihser线性鉴别分析中,其基本思想是通过一个非线性映射函数把非线性可分的原始输入空间映射到一个线性可分的高维特征空间,然后在高维特征空间中进行Fisher线性鉴别分析。设原始输入空间有c个模式类,第i类中的样本数为N,总样本数为M。经过非线性映射,后,特征空间H上的训练样本的类内离散度矩阵,类间离散度矩阵分别定义为:(19)(20)其中,,为第i类样本的先验概率,表示第i类的第j个样本,是第i类样本的平均图像向量,是总样本的平均图像向量。在特征空间H上Fihser鉴别准则函数定义如下:(21)W为特征空间中任意非零矢量根据再生核理论[19],任何一个最优化准则函数式(21)的解矢量W一定位于由高维特征空间H中的所有训练样本张成的空间内,即:(22)其中,。不妨称式(22)中的a为对应于特征空间H中最优鉴别矢量W的最优核鉴别矢量。根据文献20]的推导,可得,(23)25 (24)式中,和分别称为核类间散布矩阵、核类内散布矩阵。将式(23)和式(24)带入式(21)中,可得到特征空间H上的Fihser。鉴别准则函数的等价形式为,(25)其中,a为特征空间中任意非零矢量,式(25)即为核Fisher线性鉴别准则函数。由广义Ryaleigh商的极值性质[2],得到准则极大化的最优解向量为广义特征方程,(26)前d个最大特征值所对应的特征向量.下面只需在高维特征空间H中进行Fihser线性鉴别分析,而相对于原空间来说,就是进行非线性的鉴别分析。2.4.2SVD与KFDA的融合尽管核方法在图像等模式识别领域取得成功的应用,但也存在如下一些问题:(1)构造特征空间H的核矩阵K所耗费的计算量非常大.例如特征空间中最简单的核矩阵,i,j=1,2,…,N,N为训练样本的总数.由于核函数需要计算两个向量间的内积,当向量的维数很高时(如人脸识别中训练样本的维数高达上万维),计算K所需的计算量为,而人脸等图像识别通常都是典型的小样本问题,训练样本的数目比它的维数小得多,即。(2)当训练样本数N很大时,一方面会使核矩阵的存储空间急剧增加,因为核矩阵的维数为N×N;另一方面会造成核矩阵的不可逆。SVD把图像看成一个矩阵,是一种代数特征提取方法。用奇异值描述的图像特征是稳定的,具有转置不变性、旋转不变性、平移不变性以及镜像不变性等优点。但是,仅用奇异值包含的信息不足以有效的识别人脸。本文提出SVD同KFDA相结合的方法,样本通过奇异值分解提取图像的代数特征然后利用KFDA算法对这些特征进行二次提取得到最终的识别特征。主要步骤如下:训练阶段:(1)求所有样本的平均图像,利用式(1)对其进行奇异值分解,得正交矩阵U和V;(2)利用式(2)把所有训练样本投影到U和V构成的基空间中,得到;25 (3)设定区域m,提取左上角区域的数据,并拉直成一维向量;(4)将构成的集作为KFDA的输入空间,利用核函数映射到特征空间H,,;(5)利用式(19)、(20)计算类内、类间散布矩阵,通过式(23)、(24)计算核类内、类间散布矩阵,利用式(26)得到投影矢量;(6)把所有的训练样本投影到,得到训练样本的识别特征;测试阶段:(1)利用式(2)把所有测试样本A投影到U和V构成的基空间中,得到D;(2)提取D左上角区域的数据,并拉直成一维向量X;(3)通过核函数把X映射到高维特征空间H,得到;(4)把测试样本本投影到,得到训练样本的识别特征Z;(5)采用最近邻法进行识别。25 3实验结果与分析在Pentium(R)DualE2160CPU1.8GHz,2G内存,WindowsXP操作系统,Matlab7.0环境下进行了仿真实验。采用最近邻分类,距离为欧氏距离。分别在ORL、CAS-PEAL人脸库上对SVD、LDA、PCA、KFDA以及SVD+LDA和SVD+KFDA方法进行测试。3.1ORL人脸库实验ORL人脸库包含了40个人,每人10幅,共400幅人脸图像,每幅大小为112*92,该库包含了不同时间,不同视角,不同表情(闭眼、睁眼、微笑、吃惊、生气、愤怒、高兴)和不同脸部细节(戴眼镜、没戴眼镜、有胡子、没胡子、不同发型)的条件下拍摄的。数据库部分人脸图像如图1所示图1ORL部分人脸图像表1ORL人脸库SVD测试结果(1)特征维数3681121169225400900识别率/%90.5091.0091.0090.5091.0092.0091.50识别时间/S3.0933.0153.1573.2663.2663.5314.156在ORL人脸库每类训练样本取5,对应的测试样本分别取5,利用SVD方法,在不同的特征维数下的识别率及识别时间如表1所示,SVD方法识别速度比较快,随着特征维数的增加,识别率有所提高但不显著,当抽取特征高达20*20=400时,识别率达到92%。当抽取的特征维数保持为400,随着训练样本个数的增加,识别率的改善较为明显,如表2所示。表2ORL人脸库SVD测试结果(2)训练样本数2345678识别率/%83.1385.0088.7592.0096.2596.6796.25识别时间/S3.2663.4693.5313.5313.5633.4683.328表3ORL人脸库LDA测试结果(1)特征维数10152025303539识别率/%79.5082.5083.0087.0085.0087.0088.00识别时间/S14.57818.36020.56323.48428.35929.48431.531在ORL人脸库每类训练样本取5,对应的测试样本分别取5,利用LDA方法进行识别。先通过PCA降维,降维后为110维,在不同的特征维数下的识别率如表3所示。相对于SVD,LDA的识别速度较低,由于类别数为40,所以LDA25 有效特征数为39,此时识别率最高达到88%。当在抽取的特征维数为39,PCA空间的投影维数为110的情况下,随着训练样本个数的增加,LDA的识别情况如表4所示表4ORL人脸库LDA测试结果(2)训练样本数345678识别率/%68.287.9288.0096.8895.8396.25识别时间/S52.35931.53130.96932.43733.57834.734在ORL人脸库每类训练样本取5,对应的测试样本分别取5,利用PCA方法进行识别。在不同的特征维数下的识别率如表5所示。在不同的训练样本数,取前90%的特征值的情况下,PCA的识别情况如表6所示表5ORL人脸库PCA测试结果(1)特征维数6917334771135识别率/%74.5084.0083.5088.5088.5088.5089.50识别时间/S9.5949.7979.57810.10910.09411.09411.890表6ORL人脸库PCA测试结果(2)训练样本数2345678识别率/%80.0084.6487.5088.5095.6396.6796.25识别时间/S3.5005.2357.51611.09413.90718.35922.438表7所示的数据是在ORL人脸库中每类训练样本取5,对应的测试样本分别取5,用SVD与LDA相结合的方法进行识别,识别过程中样本先通过奇异值分解,提取奇异值矩阵左上角m*m部分,实验中m=10,然后再经LDA进行二次特征提取进行识别。表8是在m=10,特征维数为39时,不同训练样本下的识别情况。表7ORL人脸库SVD+LDA测试结果(1)特征维数5101520253039识别率/%72.5081.5087.5090.5090.5092.0093.00识别时间/S3.0783.0783.1253.0623.1723.1413.157表8ORL人脸库SVD+LDA测试结果(2)训练样本数2345678识别率/%44.3753.5787.5093.0095.0095.8398.75识别时间/S3.5313.5163.1563.1103.1563.0783.078表9为ORL人脸库中,每类训练样本为5,KFDA方法的识别情况,实验中核函数选用高斯核函数,options.t=4500。表10是当特征维数为39不变时,不同训练样本下KFDA的识别情况。表9ORL人脸库KFDA测试结果(1)特征维数5101520253039识别率/%50.5065.0063.0063.5063.5063.5093.00识别时间/S4.0163.9533.9383.9224.0153.9844.76525 表10ORL人脸库KFDA测试结果(2)训练样本数2345678识别率/%86.8889.6492.9293.0095.6397.5098.75识别时间/S3.0003.1253.6253.9694.2824.5785.296表11是本文提出的SVD与KFDA相结合的方法在ORL人脸库上的实验结果,实验过程中,样本先经奇异值分解,提取奇异值矩阵左上角m*m区域的量作为KFDA的输入空间,m=10,KFDA提取最终判别特征,提取不同的特征个数时的识别情况如表11所示。表12是在提取的特征维数为39,m=10时,不同训练样本下和识别耳情况。表11ORL人脸库SVD+KFDA测试结果(1)特征维数5101520253039识别率/%66.5083.0091.0094.0096.0097.0096.00识别时间/S3.1873.1883.2343.2653.2343.2963.281表12ORL人脸库SVD+KFDA测试结果(2)训练样本数2345678识别率/%88.1291.7995.0096.0095.6395.8396.25识别时间/S3.1253.0933.2043.2813.2823.3593.4383.2CAS-PEAL人脸库实验CAS-PEAL人脸库是专门为研究亚洲人脸识别而设计的数据库,库中包含了1040名中国人共99450幅头肩部图像,所有图像在专门的采集环境中采集,涵盖了姿态、表情、饰物、和光照4种主要变化条件,部分人脸图具有背景、距离和时间跨度的变化,该库识别难度较大,现有方法在该库识别率均不理想。文中实验选取其中一个子库,由50个不同的中国人,每人9幅图像组成,光照的变化较大,每幅图像大小为120*96。实验数据库部分人脸图像如图2所示图2CAS-PEAL部分人脸图像表13CAS-PEAL人脸库SVD测试结果(1)特征维数3681121169225400900识别率/%38.5036.5040.5042.5043.0044.0047.00识别时间/S3.2663.4383.5313.5933.7034.9694.48325 表14CAS-PEAL人脸库SVD测试结果(2)训练样本数234567识别率/%37.7137.6743.2044.0049.3366.00识别时间/S3.7663.9223.9384.0153.9063.766表13和表14是SVD方法在CAS-PEAL库中的实验结果。表13是在每类训练样本数为5,测试样本为4,抽取不同特征维数时的识别结果。表14是在抽取的特征维数为400时,不同的训练样本下的结果。相对于ORL库,SVD在CAS-PEAL库的识别率不理想。表15CAS-PEAL人脸库LDA测试结果(1)特征维数10203035404549识别率/%50.0057.0065.0068.0067.5068.5067.00识别时间/S18.87526.14134.20336.51539.54777.12582.531表16CAS-PEAL人脸库LDA测试结果(2)训练样本数234567识别率/%29.4340.3355.6068.5070.0074.00识别时间/S66.29773.96975.70377.12578.45480.125表15和表16是LDA方法在CAS-PEAL库中的实验结果。样本先通过PCA降维,再进行LDA。实验中PCA降维后的维数为110。表15是在每类训练样本数为5,测试样本为4,抽取不同特征维数时的识别结果。表16是在抽取的特征维数为45时,不同的训练样本下的结果。表17CAS-PEAL人脸库PCA测试结果(1)特征维数102030405060191识别率/%28.5043.0047.0048.0050.0051.5055.50识别时间/S15.85915.81316.12516.17216.20316.61019.672表18CAS-PEAL人脸库PCA测试结果(2)训练样本数234567识别率/%45.4347.3349.6050.0057.3375.00识别时间/S5.2198.06211.93716.20322.84330.140表17和表18是PCA方法在CAS-PEAL库中的实验结果。表17是在每类训练样本数为5,测试样本为4,抽取不同特征维数时的识别结果。表18是在抽取的特征维数为60时,不同的训练样本下的结果。表19CAS-PEAL人脸库SVD+LDA测试结果(1)特征维数10203035404549识别率/%55.0072.0077.5081.5080.0079.580.00识别时间/S3.7193.7503.7653.7193.8603.7813.82825 表20CAS-PEAL人脸库SVD+LDA测试结果(2)训练样本数234567识别率/%18.8629.0070.0081.5084.0091.00识别时间/S4.2034.1883.7353.7193.7663.843表19和表20是SVD+LDA方法在CAS-PEAL库中的实验结果。每类训练样本数为5,测试样本为4,样本先通过奇异值分解,抽取奇异值矩阵左上角m*m区域的值构成LDA的输入空间,实验中m=10。改变LDA过程中提取的身影矢量个数,识别结果如表19所示抽取不同特征维数时的识别结果。表20是在抽取的特征维数为35时,不同的训练样本下的结果。表21CAS-PEAL人脸库KFDA测试结果(1)特征维数10203035404549识别率/%44.0066.0074.0074.0078.0083.0084.00识别时间/S5.1105.0785.2155.2195.1565.1575.141表22CAS-PEAL人脸库KFDA测试结果(2)训练样本数234567识别率/%58.0064.3383.2084.0084.0094.00识别时间/S3.7664.1414.6875.1415.7306.047表21和表22是KFDA方法在CAS-PEAL库中的实验结果。每类训练样本数为5,测试样本为4,核函数选用高斯核函数,参数options.t=8000。抽取不同的特征维数识别结果如表21所示。表22是在抽取的特征维数为49时,不同的训练样本下的结果。表23CAS-PEAL人脸库SVD+KFDA测试结果(1)特征维数10203035404549识别率/%40.5073.5079.079.5082.0085.0086.50识别时间/S4.0154.0944.0784.0944.1574.1094.203表24CAS-PEAL人脸库SVD+KFDA测试结果(2)训练样本数234567识别率/%56.2965.3382.8086.5088.6796.00识别时间/S3.7503.8443.9694.0234.1874.422表23和表24是SVD+KFDA方法在CAS-PEAL库中的实验结果。每类训练样本数为5,测试样本为4,核函数选用高斯核函数,参数options.t=8000,样本经奇异值分解后的维数为28*28构成KFDA的输入空间。抽取不同的特征维数识别结果如表23所示。表24是在抽取的特征维数为49时,不同的训练样本下的结果。25 3.3结果分析通过以上实验对比各种识别方法的性能如表25、表26所示在两个人脸库中SVD+KFDA的方法都能得到较高的识别率,在识别的速度上也较快,主要原因是样本经过SVD提取了代数特征,而KFDA提取了样本的非线性特征,由于引入了核矩阵,低维输入空间向高维特征空间映射后并不增加运算量,所以能够获得更高的识别率和识别速度。当特征维数不变时,在不同的样本数的情况下,由前面的实验可知SVD+KFDA方法相对于其它方法更加稳定。表25ORL人脸库中各方法性能比较识别方法SVDLDAPCASVD+LDAKFDASVD+KFDA最高识别率/%93.0088.0089.5093.0093.0097.00识别时间/S3.53131.53111.8903.1574.7653.296表26CAS-PEALL人脸库中各方法性能比较识别方法SVDLDAPCASVD+LDAKFDASVD+KFDA最高识别率/%47.0068.5055.5081.5084.0086.50识别时间/S4.48377.12519.6723.7195.1414.20325 4.总结本文首先总结了目前主要的人脸识别方法,奇异值分解是图像特征提取的重要方法,但由于其本身因有的缺陷,在人脸识别中识别率较低。而基于线性子空间的方法,提取的是样本的线性特征,在光照、姿态等变化的情况下结果常不能令人满意。然后对核Fisher判别方法进行了深入探讨。核函数方法是一项将标准的线性方法推广为非线性方法的强有力的技术,对实际应用具有极大的意义,是近年的一个研究热点,而且在支持向量机方面取得了极大的成功。目前,由于识别任务的复杂性并受应用环境的限制,对于人脸识别方法还没有一个统一的框架。每一种识别方法都有一定的适应范围,还没有一种通用性很强的方法能处理各种情况下的识别问题。人脸识别的各种方法各有优缺点,因些本文提出一种SVD与KFDA相结合的人脸识别方法。样本通过奇异值分解提取图像的代数特征然后利用KFDA算法对这些特征进行二次提取得到最终的识别特征。实验表明,SVD+KFDA方法的识别率高于SVD、LDA、PCA、KFDA及SVD+LDA的方法。25 参考文献[1]黄廷祝,钟守铭,李正良.矩阵理论[M].北京:高等教育出版社,2003.[2]程云鹏.矩阵论.西安:西北工业大学出版社,2003[3]MariaP,PanagiotaB.数字图像处理疑难解析[M].赖剑煌,冯国灿,等,译.北京:机械工业出版社,2005.[4]李丽,易从琴,孟传良.利用主元分析识别人脸.贵州工业大学学报,2003年,8月,第32卷第4期.[5]肖健华.人脸识别中的核方法.五邑大学学报(自然科学版),2005,19(2):712.[6]高秀梅,杨静宇.一种最的核Fihser鉴别分析与人脸识别.系统仿真学报,2004,169(12):2864-2868.[7]王正群,孙兴华等.基于Fisher准则的多特征融合.计算机工程,2002年,128(3),PP.41-42.[8]Johnshawe-Taylor,NelloCristianini.模式分析的核方法.北京,机械工业出版社,2006,pp.55-69.[9]李健,廖秋药.人脸识别的方法研究.微计算机信息(嵌入式与SOC),2006年,第22卷第4-2期.[10]HongZQ.Algebraicfeatureextractionofimageforrecognition[J].PatternRecognition,2004,24(3):211-219.[11]CristianiniSTN.Kernelmethodsforpatternanalysis[M].Cambridge:CambridgeUniversityPress,2004.[12]KlemaVC.Thesingularvaluedecomposition:itscomputationandsomeapplication[J].IEEETransonAutomaticControl,2003,25(2):164-176.[13]TianY,TanTN.Dosingularvaluescontainadequateinformationforfacerecognition[J].PatternRecognition,2003,36(3):649-655.[14]BianZhao2Qi,ZhangXue2Gong.PatternRecognition(2ndedition).Beijing:TsinghuaUniversityPress,2001.223-226(inChinese).[15]LiuKe,ChengYQ,YangJY,etal.AnefficientalgorithmforFoley-Sammonoptimalsetofdiscriminantvectorsbyalgebraicmethod[J].InternationalJournalofPatternRecognitionandArtificialIntelligence,2005,6(5):817-829.[16]YangJian,YangJing-Yu,JinZhong.Anapporachofoptimaldiscriminatoryfeatureextractionanditsapplicationinimagerecognition.JournalofComputerResearchandDevelopment,2001,38(11):1331-1336(inChinese).[17]BeastinaMika,GunnarRasteh,JasonWeston,etal.Fisherdiseriminantanalysiswithkmeels.PoreeedingsofIEEEInternationalWokrshoponNeuralNetworksforSingal25 Processing,Madison,Wiseonsin,August,2004,41-48.[18]GBsudat,FAnouar.Gneerallzeddiscriminantanalysisusingkernelapproach.NeuarlinformationPoreessingSystems12.Cambridge,MA:MITPress,2000,568-574.[19]VoklerRoht,VoklerSteinhage.Nolineardiscriminantanalysisusingkernelfuntions.InS.A.Solla,T.K.Lene,K.R.Muller,ediotrs.AdvanceinNeuarInformationProcessingSystmes12.Cambridge,MA:MTTPress,2000,568-574.[20]Mnig-HsunaYnag.KernelEigenfacesvs.kernelFisherface:facerecognitionusingkernelmethods.ProceedingsoftheFifthIEEEInternationalConferenceonAutomaticFaceandGestureRecognition.WashingtonD.C,2002,215-220.25 致谢时光如梭,大学的四年已经接近尾声,在完成毕业论文之际,谨向许多曾经关心、帮助和支持过我的所有人表达我最诚挚的谢意!首先感谢我的指导老师XXX老师。X老师学识渊博、思维敏捷、作风严谨,我能够顺利完成毕业论文,离不开X老师的悉心指导,使我深刻感受到导师在对学生的厚爱和希望。感谢一直以来关心我、爱护我的所有同学和朋友们,是他们的理解和帮助使我充满信心和动力。在此献上我最衷心的感激和祝福!XXX200x年x月x日25 附录1SVD+KFDA程序:tic;clearclcIv=zeros(120,96,9,50);fori=1:50forj=1:9a=imread(strcat("E:cas-peals",num2str(i),"",num2str(j),".bmp"));b=double(a);Iv(:,:,j,i)=b;endenddim1=size(Iv,1);dim2=size(Iv,2);%图像的维数tal=size(Iv,3);%每类样本的个数class=size(Iv,4);%类别数ell=5;%每类的训练样本数ellsample=9-ell;%每类的测试样本数NumTotal=ell*class;%训练样本总数bb=49;%装入训练样本Itr=zeros(dim1,dim2,ell,class);forclassnum=1:classfore=1:ellItr(:,:,e,classnum)=Iv(:,:,e,classnum);endend%装入测试样本It=zeros(dim1,dim2,ellsample,class);forclassnum=1:classfore=1:ellsampleIt(:,:,e,classnum)=Iv(:,:,e+ell,classnum);end25 end%计算所有训练样本的均值Imean=zeros(dim1,dim2);forclassnum=1:classfori=1:ellImean=Imean+Itr(:,:,i,classnum);endendImean=Imean/NumTotal;[USV]=svd(Imean);%所有训练样本投影到样本均值酉矩阵的基空间中m=28;n=m;Sfeature1=zeros(m,n);Sfeature=zeros(ell*class,m*n);forclassnum=1:classfore=1:ellS1=U"*Itr(:,:,e,classnum)*V;fori=1:mforj=1:nSfeature1(i,j)=S1(i,j);endendSfeature((classnum-1)*ell+e,:)=Sfeature1(1:end);endend%所有测试样本投影到样本均值酉矩阵的基空间中Tfeature1=zeros(m,n);Tfeature=zeros(class*ellsample,m*n);forclassnum=1:classfore=1:ellsampleS2=U"*It(:,:,e,classnum)*V;fori=1:mforj=1:nTfeature1(i,j)=S2(i,j);end25 endTfeature((classnum-1)*ellsample+e,:)=Tfeature1(1:end);endendgnd=[ones(ell,1);ones(ell,1)*2;ones(ell,1)*3;ones(ell,1)*4;ones(ell,1)*5;ones(ell,1)*6;ones(ell,1)*7;ones(ell,1)*8;ones(ell,1)*9;ones(ell,1)*10;ones(ell,1)*11;ones(ell,1)*12;ones(ell,1)*13;ones(ell,1)*14;ones(ell,1)*15;ones(ell,1)*16;ones(ell,1)*17;ones(ell,1)*18;ones(ell,1)*19;ones(ell,1)*20;ones(ell,1)*21;ones(ell,1)*22;ones(ell,1)*23;ones(ell,1)*24;ones(ell,1)*25;ones(ell,1)*26;ones(ell,1)*27;ones(ell,1)*28;ones(ell,1)*29;ones(ell,1)*30;ones(ell,1)*31;ones(ell,1)*32;ones(ell,1)*33;ones(ell,1)*34;ones(ell,1)*35;ones(ell,1)*36;ones(ell,1)*37;ones(ell,1)*38;ones(ell,1)*39;ones(ell,1)*40;ones(ell,1)*41;ones(ell,1)*42;ones(ell,1)*43;ones(ell,1)*44;ones(ell,1)*45;ones(ell,1)*46;ones(ell,1)*47;ones(ell,1)*48;ones(ell,1)*49;ones(ell,1)*50];options.KernelType="Gaussian";options.t=8000;[eigvector,eigvalue]=KDA(options,gnd,Sfeature);test=constructKernel(Tfeature,Sfeature,options);yy=test*eigvector;train=constructKernel(Sfeature,Sfeature,options);xx=train*eigvector;accu=0;train1=zeros(bb,ell,class);forclassnum=1:classfore=1:elltrain1(:,e,classnum)=xx((classnum-1)*ell+e,:);endendtest1=zeros(bb,ellsample,class);forclassnum=1:classfore=1:ellsampletest1(:,e,classnum)=yy((classnum-1)*ellsample+e,:);endendfori=1:classforj=1:ellsampleforp=1:classforq=1:ell25 mdist((p-1)*ell+q)=norm(test1(:,j,i)-train1(:,q,p));endend[dist,index2]=sort(mdist);class1=floor((index2(1)-1)/ell)+1;ifclass1==iaccu=accu+1;endendendtoc;accuracy=accu/(class*ellsample)%输出识别率附录225'