基于MATLAB地人脸识别.doc

上传人:小** 文档编号:641758 上传时间:2019-04-27 格式:DOC 页数:18 大小:241.50KB
返回 下载 相关 举报
基于MATLAB地人脸识别.doc_第1页
第1页 / 共18页
基于MATLAB地人脸识别.doc_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《基于MATLAB地人脸识别.doc》由会员分享,可在线阅读,更多相关《基于MATLAB地人脸识别.doc(18页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、#*燕山大学课程设计(论文)任务书院(系): 基层教学单位: 学 号学生姓名专业(班级)设计题目 基于 MATLAB 的人脸识别设 计 技 术 参 数测试数据库图片 10 张训练数据库图片 20 张图片大小 1024768特征向量提取阈值 1设 计 要 求综合运用本课程的理论知识,并利用 MATLAB 作为工具实现对人脸图片 的预处理,运用 PCA 算法进行人脸特征提取,进而进行人脸匹配识别。工 作 量一周的课程设计时间,完成一份课程设计报告书,包括设计的任务书、基 本原理、设计思路与设计的基本思想、设计体会以及相关的程序代码;熟练掌握 Matlab 的使用。 工 作 计 划第 1 天 按要求

2、查阅相关资料文献,确定人脸识别的总体设计思路; 第 2 天 分析设计题目,理解人脸识别的原理同时寻求相关的实现算法; 第 3 天 编写程序代码,创建图片数据库,运用 PCA 算法进行特征提取并编写 特征脸,上机进行调试; 第 4 天 编写人脸识别程序,实现总体功能; 第 5 天 整理思路,书写课程设计报告书,完成答辩。参 考 资 料1 谢平,林洪彬,王娜.信号处理原理及应用.机械工业出版社,2004 2 刘敏,魏玲Matlab.通信仿真与应用.国防工业出版社,2005 3 楼顺天.基于Matlab7.x 的系统分析与设计.西安电子科技大学,2002指导教师签字基层教学单位主任签字#*说明:此表

3、一式四份,学生、指导教师、基层教学单位、系部各一份。目录目录引言.1 1 人脸识别技术.2 1.1 人脸识别的研究内容.2 1.1.1 人脸检测(Face Detection).2 1.1.2 人脸表征(Face Representation) .2 1.2 几种典型的人脸识别方法.3 1.2.1 基于几何特征的人脸识别方法.3 1.2.2 基于 K-L 变换的特征脸方法.4 1.2.3 神经网络方法.5 1.2.4 基于小波包的识别方法.6 1.2.5 支持向量机的识别方法.6 2 人脸特征提取与识别.6 2.1 利用 PCA 进行特征提取的经典算法Eigenface 算法.7 2.2 PC

4、A 人脸识别流程.7 2.3 特征向量选取.9 2.4 距离函数的选择.10 2.5 基于 PCA 的人脸识别.11 MATLAB 人脸识别程序.12 3 MATLAB 软件程序编写.13 3.1.创建图片数据库.13 3.2 主程序.13 3.3 最终程序结果.14 4 心得与体会.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)。所谓人 脸检测,就是给定任意图像,确定其中是否存在人脸,如果有,给出人脸的位置、大小 等状态信息。人脸跟踪指在一纽连续静态图像所构成的动态视频中实时地检测人脸。人 脸检测主要受到光照、噪声、姿念以及遮挡等因素的影响,人脸检测的结果直

10、接关系到 后面两个过程的准确性。近年来,人脸检测和跟踪开始成为独立的研究课题受到关注。1.1.2 人脸表征人脸表征(Face Representation)人脸表征就是提取人脸的特征,是将现实空间的图像映射到机器空间的过程。人脸 的表示具有多样性和唯一性,这其实就是人脸共性和特性之间的关系问题:只有保持这 种多样性和唯一性,才能保证人脸图像的准确描述和识别。人脸图像信息数据量巨大,为提高检测和识别的运算速度以及提高图像传输和匹配#*检索速度,必须对图像进行数据压缩,降低向量维数,即用尽可能少的数据表示尽可能 多的信息。人脸的表征在提取人脸特征的同时,也实现了对原始图像数据的降维。1.2 几种典

11、型的人脸识别方法几种典型的人脸识别方法对人脸识别方法的研究主要有两大方向:一是基于人脸图像局部特征的识别方法; 二是基于人脸图像整体特征的识别方法。基于人脸图像局部特征的识别通常抽取人脸器 官如眼睛、眉毛、鼻子和嘴等器官的位置,尺度以及彼此间的比率作为特征。进一步地 可以用几何形状拟合人脸器官,从而以几何参数作为描述人脸的特征。由于此类方法通 常要精确地抽取出位置、尺度、比率或几何参数作为描述人脸的特征,因此对人脸图像 的表情变化比较敏感。同时,人脸器官分割的精确度也对人脸特征的提取有一定的影响。 另外,该类方法并没有充分利用到人脸图像本身具有的获度信息,该方向已经不是人脸 识别技术发展的主流

12、方向。基于人脸图像整体特征的人脸识别方法由于不需要精确提取 人脸图像中部件的具体信息,而且可以充分利用到人脸图像本身具有的灰度信息,因此 可获得更好的识别性能。目前,绝大部分关于人脸识别方法的文章都是基于人脸图像整 体特征的,主要有特征脸法、最佳鉴别向量集法,贝叶斯法,基予傅立叶不变特征法, 弹性图匹配法,其他相关方法有线性子空间法,可变形模型法和神经网络法。这些方法 中有的侧重于表述人脸图像的特征提取,如弹性图匹配法和傅立叶不变特征法;有的则 侧重于分类,如最佳鉴别向量集法、贝叶斯法和神经网络法;而有的则侧重于人脸图像 重构,如特征脸法和线性子空间法。所有这些基于人脸图像整体特征的人脸识别方

13、法均 取得了一定的识别性能。1.2.1 基于几何特征的人脸识别方法基于几何特征的人脸识别方法基于几何特征的人脸识别方法主要源于人脸识别的初期研究阶段。这种方法是以人 脸各个器官和几何关系为基础进行算法设计。对于不同人来说,脸上的各个器官,如眼 睛、鼻子、嘴巴以及整个脸部的轮廓具有不同的形状、大小、相对位置和分布情况。在基于几何特征的人脸识别方法中,可以用一个矢量来表示提取出来的几何参数。 如果要获得一个准确、稳定和可靠的识别结果,就要求这些被选出的几何特征参数包含 足够丰富的辨识人脸的信息,且能反映不同人脸之间的差别。也就是说对这些矢量要求 具有较高的模式分类能力,同时还要有一定的稳健性,能够

14、消除由于时间变迁、光照变 化等其他干扰因素所带来的影响。具体来沈,这些几何参数一般包括人脸上两个指定特 征点之间的欧式距离、边缘曲率、角度等等。在实际应用过程中,基于几何特征的人脸识别方法存在着两个方面的问题:(1)如何快速、准确地检测出入脸的重要标志点依然是一个没有很好解决的问题。脸 上的重要标志点,如瞳孔、嘴巴和鼻子,它们在脸上的位置是进行脸部几何参数计算和 测量的基准。(2)脸部几何特征在人脸辨识中的有效性问题,即脸部几何特征能够提供多少可供识#*别的信息量。虽然各人脸的器官在形状、大小及分布上各不相同,但是这种器官上的差异性更多 是体现在某些细微的感觉意义上。例如眼睛显得比较小、鼻子显

15、得比较宽,以及皮肤的 纹理、颜色上的差异等等。显然,这些特征中的一部分是难以精确测量出来或者是不能 用几何参数准确描述的。所以仅靠增加脸上几何参数的数目来提高人脸识别率是不太现 实的。由于进一步改善测量精度是十分困难的,因而通过增加脸部几何参数的数量来改 善识别率结果,其影响是极小的。因此,基于少量人脸几何特征进行大规模人脸辨识的 可靠性是不容乐观的。1.2.2 基于基于 K-L 变换的特征脸方法变换的特征脸方法K-L 变换是图像压缩的一种最优正交变换,人们将它应用于特征提取,形成了子空 间法模式识别的基础。将 K-L 变换用于人脸识别,需要假设人脸处于低维的线性空间, 不同人脸具有可分性。高

16、维的图像空间经过 K-L 变换后得到一组新的正交基,保留其中 重要的正交基从而形成了低维的人脸空间。若将所有子空间的正交基排列成图像阵列,则正交基呈现人脸的形状,因此这些正 交基也被称为特征脸。选择那些正交基形成的子空间则有不同的考虑,与较大特征值对 应的一些正交基(也称主分量)能够表达人脸的大体形状,而具体细节需要那些小特征值 对应的特征向量(也称次分量)来加以补充描述,因此低频成分用主分量表示,高频分量 用次分量表示。采用主分量作为新的正交空间的正交基的方法称为主分量(Principal Component Analysis,简称 PCA)方法。K-L 变换在 90 年代初受到了很大的重视

17、,实际用于人脸识别取得了很好的效果, 一般库德大小为 100 幅左右,识别率在 70-100之间不等,这主要取决于人脸库图像 的质量。从压缩能量的角度来看,K-L 变换是最优的,变换后的低维空间对于人脸有很好的 表达能力,然而这并不等同于对不同人脸具有较好的判别能力。选择训练样本的散布矩 阵作为 K-L 变换的生成矩阵,其最大特征向量反映了该样本集合的最大分布的方向,但 这是图像统计方法,而不是人脸统计方法。它查找的是图像之间所有的差异,并根据这 些差异来确定不同人脸间的距离,而不管这些差异是由于光线、发型或背景的改变引起 的,还是属于人脸本身的内在差异,因此特征脸的方法用于人脸识别存在理论的

18、缺陷。 研究表明,特征连的方法随着光线、角度以及人脸的尺寸的引入而识别率急剧下降。主 分量的方法使得变换后的表达能力最佳,次分量的方法考虑了高频的人脸区分能力,但 是由于外在因素带来图像差异和人脸本身带来的差异对 K-L 变换而言是不加任何区分的, 因此,如何选择正交基并不根本解决问题。改进的一个思路是针对干扰所在,对输入图 像作规范化处理,包括输入图像的均值方差归一化,人脸尺寸归一化。另一种改进是考 虑到局部人脸图像受到外在干扰相对较小的情况,除了计算特征脸之外,还利用 KL 变换计算出特征眼、特征嘴等。将局部特征向量加权进行匹配得到一些好的效果。总之,特征脸方法是一种简单、快速、使用的基于

19、变换系数的算法,但由于它在本#*质上依赖于训练集合测试集图像的灰度相关性,而且要求测试图像与训练集比较接近, 所以存在着很大局限。1.2.3 神经网络方法神经网络方法人工神经网络是一种以大量的处理单元(神经元)为节点,处理单元之间实现加权值 互连的拓扑结构。人工神经网络中的处理单元是人类大脑神经单元的简化。处理单元之 间的互连则是轴突、树突这些信息传递路径的简化。根据不同的应用场合,现已研究出 较多的神经元网络模型及其动态过程的算法。人工神经元通常采用非线性的作用函数,当大量神经元连接成一个网络并动态运行 时,则构成了一个非线性动力学系统。人工神经网络具有自组织性、高维性、模糊性、 分布性和冗

20、余性等等特点,较冯诺依曼体系的计算机更适合模拟人类大脑的思维机理。 但总的来说,由于人类对自身思维机理认识的不足,所以对人工神经元作了极度的简化, 这种模拟表现为极其肤浅和简单。很多脸部识别系统都采用了多层感知机作为人工神经网络的基本结构。多层感知机 由几层全互连的非线性神经组成。神经元之间有权值连接,权值包含了训练模式空间的 特征。训练过程就是调整权值的过程,最常用的算法就是 BP 法则。多层感知机的输入形式有很多种,最简单的就是将整个人脸图像作为输入层,也可 以对人脸图像进行采样,然后用低分辨率图像作为输入层。由此可以看出,人工神经网络有着与 Eigenface 方法非常相似的表达方法。一

21、般来说,BP 算法的收敛速度非常缓慢,学习过程可能需要对整个训练集进行上 千次反复迭代运算,这是神经网络实际应用的一个问题。此外,BP 算法以误差梯度下 降的方式达到极小值,但在实际应用中,容易陷入到局部极小中,无法得到全局最优解, 这也是有待解决的一个问题。1.2.4 基于小波包的识别方法基于小波包的识别方法基于小波包的面部识别方法首先对一幅人脸图像进行小波包分解。因为小波包分解 得到的不同频带包含有不同的人脸信息,所以从每一个小波包中可以提取出不同的面部 特征。对于小波包分解得到的离散逼近稀疏,Garcai 进一步将它分解成三个部分,分别 是边界区、上半部分和下半部分,然后就可以分别计算这

22、三个区域的均值和方差,加上 另外 15 个离散细节区域的方差,组成一个包含有 21 个分量的特征向量。小波包分解是 一种多分辨率分析方法,能够提供良好的面部纹理描述,所以有利于提取面部特征。1.2.5 支持向量机的识别方法支持向量机的识别方法支持向量机(SupportVectorMachine,SVM)起源于统计学习理论,它研究如何构造学 习机,实现模式分类问题。其基本思想是通过非线性变换将输入空间变换到一个高维空#*间,在高维空间求取最优线性分类面,以解决那些线性不可分的分类问题。而这种非线 性变换是通过定义适当的内积函数(即核函数)来实现的。SVM 技术中核函数及其参数的 选取难度较大。由

23、于它基于结构风险最小化原理,而不是传统统计学的经验风险最小化, 因而表现出很多优于已有方法的性能。由于 SVM 的训练需要大量的存储空间,非线性 SVM 分类器需要较多的支持向量,所以速度很慢。2 人脸特征提取与识别人脸特征提取与识别PCA 方法将包含人脸的图像区域看作随机向量,因此可采用 K-L 变换得到正交 K L 基,对应其中较大特征值的基具有与人脸相似的形状,因此又被称为特征脸。利用这 些基的线性组合可以描述、表达和逼近人脸图像,所以可进行人脸识别与合成。识别过 程就是将人脸图像映射到由特征脸组成的子空间上,并比较其在特征脸空间中的位置。 PCA 方法认为图像的全局结构信息对于识别最重

24、要,将图像看作一个矩阵,计算矩阵的 特征值和对应特征向量进行识别。这种方法利用图像的总体信息,不从图像中提取出眼、 嘴、鼻等几何特征,算法较简单且具有较高的识别率。主成分分析法(PCA)是模式识别判别分析中最常用的一种线性映射方法,该方法是 根据样本点在多维模式空间的位置分布,以样本点在空间中变化最大方向,即方差最大 的方向,作为判别矢量来实现数据的特征提取与数据压缩的。从概率统计观点可知,一 个随机变量的方差越大,该随机变量所包含的信息就越多,如当一个变量的方差为零时, 该变量为一常数,不含任何信息。2.1 利用利用 PCA 进行特征提取的经典算法进行特征提取的经典算法Eigenface 算

25、法算法在利用 PCA 进行特征提取的算法中,特征脸方法(Eigenface)是其中的一个经典算法。 特征脸方法是从主成分分析导出的一种人脸识别和描述技术。特征脸方法就是将包含人 脸的图像区域看作是一种随机向量,因此可以采用 K-L 变换获得其正交 K-L 基底。对应 其中较大特征值的基底具有与人脸相似的形状,因此又称为特征脸。利用这些基底的线 性组合可以描述、表达和逼近人脸图像,因此可以进行人脸识别与合成。识别过程就是 将人脸图像映射到由特征脸张成的子空间上,比较其与己知人脸在特征空间中的位置, 具体步骤如下:(1)初始化,获得人脸图像的训练集并计算特征脸,定义为人脸空间,存储在模板库 中,以

26、便系统进行识别;(2)输入新的人脸图像,将其映射到特征脸空间,得到一组关于该人脸的特征数据; (3)通过检查图像与人脸空间的距离判断它是否是人脸; (4)若为人脸,根据权值模式判断它是否为数据库中的某个人,并做出具体的操作。#*2.2 PCA 人脸识别流程人脸识别流程完整的 PCA 人脸识别应该包括以下四个步骤:人脸图像预处理;读入人脸库,训 练成特征子空间;把训练图像和测试图像投影到上一步骤得到的子空间上;选择一定的 距离函数进行识别。下面详细描述整个过程:(1)读入人脸库归一化人脸库后,将库中的每人选择一定数量的图像构成训练集,其余构成测试集。设归一化后的图像是 NN 的,按列相连就构成维

27、向量,可看作是维空间中的2N2N一个点,可以通过 K-L 变换用一个低维子空间描述这个图像。(2)计算 K-L 变换的生成矩阵,并求取图像的特征值和特征向量假设人脸图像库中有 N 幅人脸图像,用向量表示为(向量维数设为 L) ,NXXX, 21,其人脸平均图像如式(2-1)所示:(2-1) NiiaveXNX11由此可得到每幅图像的均差,如式(2-2)所示:aveiiXXX , (2-2)Ni, 2 , 1这样可计算协方差矩阵,如式(2-3)所示:(2-3)T iNiiXXNC)(11 计算矩阵 C 的特征值和对应特征向量。kk但是在实际计算中,矩阵 C 的大小是,即使对尺寸较小的图像计算量还

28、是22NN 很大。为了减小运算量,现将每幅图像的均差形成一个矩阵,如式(2-4)所示:(2-4), 2 1 NXXXX,则式(2-3)可以写成式(2-5):(2-5)TXXNC)(1因此,根据线性代数理论,将计算的特征值和对应特征向量的问题TXX)( jj转化为求的特征值和对应的特征向量的问题。的大小仅为)(XXT j j)(XXT#*NN 远远小于,故简化了计算。在求出后,可以通过式(2-6)得到:22NN jj(2-6) 1j jjX (3)把训练图像和测试图像投影到特征空间由特征向量所形成的向量空间可表示人脸图像的主要特征信息,将人脸图像库中所有 N 个图像的均差向此空间投影,得到各自的

29、投影向量,如式(2-7)和(2-NYYY,218)所示:(2-7)NiyyyYMiiiT i, 2 , 1,)(21(2-8)MjXyjT j, 2 , 1,)( 对于待识别人脸图像 I,计算其与 k 差的投影向量,如式(2-9)所示:(2-9)MjXIpaveiT jj,, 2 , 1)()(再与人脸图像库中 N 个人脸图像对应的投影向量比较,按照一定的距NYYY,21离准则完成识别。(4)比较测试图像和训练图像,确定待识别样本类别这里可以采用多种不同的分类器进行分类:范式、范式、最小距离、角度以1L2L及 Mahalanobis 距离等。MATLAB 特征脸程序实现特征脸程序实现 m =

30、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); % 求特征向量和特征值#*2.3 特征向量选取特征向量选取上面所创建的用于投影的特征脸子空间使用的是所有 r 个非零的特征值对应的特征 向量。虽然协方差矩阵 C 最多有对应于非零特征值的 N 个特征向量,且 rN

31、,但是通常情况下,r 仍然会太大,而根据应用的需求,并非所有的,都有保留意义。而特征i空间投影的计算速度是直接与创建子空间所用的特征向量的数目相关,若考虑到计算时 间等因素,可以适当减去一些信息量少的特征向量,且去掉这些特征向量之后不一定不 利于分类结果,有的情况下反而能够提高识别性能。下面将讨论几种不同的特征值选择 方法:(1)标准的特征空间投影:所有 r 个对应于非零特征值的特征向量均被用于创建特征 脸子空间。但是该方法在 r 值较大时,计算速度会较慢,且不利于分类。(2)为进一步压缩特征向量和减小运算量,将特征值按大小顺序排序,忽略小特征值所对应的特征向量,即由下式得到。设,r 为的秩,

32、rN,Ur21X,则压缩后的特征向量集如式(2-10)所示:T MuuuU,21,M1 来提取特征向量 L_eig_vec = ; for i = 1 : size(V,2) if( D(i,i)1 )L_eig_vec = L_eig_vec V(:,i);end end #*%计算协方差矩阵的特征向量 % 降维 Eigenfaces = A * L_eig_vec; % A: centered image vectors2.4 距离函数的选择距离函数的选择图像被投影到特征空间中,剩下的任务就是如何判别这些图像的相似性。通常有两 种方法来判别:一种是计算在 N 维空间中图像间的距离,另一种是

33、测量图像间的相似性。 当测量距离时,我们希望距离尽可能地小,一般选择与测试图像最近的训练图像作为它 的所属的类别。而测量相似性的时候,则希望图像尽可能地相似,也就是说具有最大的 相似性的训练图像类别是测试图像所属的类别。在此介绍几种计算方法:(1)范式1L将像素间的绝对值的差值相加,也称和范式。范式距离公式如式(2-12)所示:1L(2-12) kiiiyxyxL11),(2)范式2L将像素间的平方差异相加。也称为欧几里德距离。范式距离公式如式(2-13)所示:2L(2-13) kiiiyxyxL12 2)(),(3)最小距离首先计算各类训练样本的平均值,接下来的距离比较和上面的范式完全相同。

34、这2L样分类时每类只需要比较一次,减少了计算量。样本 x 与第 i 类的距离定义如式(2-14)所 示:(2-14)()()(iT iixxxd其中为第 i 类所有样本的平均值。i#*2.5 基于基于 PCA 的人脸识别的人脸识别基于 PCA 算法的人脸识别过程由训练阶段和识别阶段两个阶段组成。在训练阶段,每个已知人脸 X 映射到特征脸组成的子空间上,得到 N 维向量。), 2 , 1(NiYi距离阈值定义如式(2-15)所示:c(j,k=1,2,N) (2-15) max21,k kjjcYY 在识别的时候,首先把待识别的图像映射到特征脸空间,得出向量 P 及其与每个人脸集的距离(i=1,2

35、,3,N) ,采用欧式距离法进行人脸识别,分类规则为:ie(1)若,则输入图像不是人脸图像;iec(2)若,则输入图像包含未知人脸;ieciec(3)若,=min,则输入图像为库中第 k 个人的人脸。ieciecMATLAB 人脸识别程序人脸识别程序ProjectedImages = ; Train_Number = size(Eigenfaces,2); for i = 1 : Train_Numbertemp = Eigenfaces*A(:,i); % 将每个样本投影到特征空间ProjectedImages = ProjectedImages temp; end %从测试图片中提取 PC

36、A 特点 InputImage = imread(TestImage); temp = InputImage(:,:,1);irow icol = size(temp); InImage = reshape(temp,irow*icol,1); Difference = double(InImage)-m; ProjectedTestImage = Eigenfaces*Difference; % 将待测样本投影到特征空间 %按照欧式距离取最小的原则得出匹配的人脸 Euc_dist = ;#*for i = 1 : Train_Numberq = ProjectedImages(:,i);te

37、mp = ( norm( ProjectedTestImage - q ) )2;Euc_dist = Euc_dist temp; end Euc_dist_min , Recognized_index = min(Euc_dist); OutputName = strcat(int2str(Recognized_index),.jpg);3 MATLAB 软件程序编写软件程序编写3.1.创建图片数据库创建图片数据库function T = CreateDatabase(TrainDatabasePath) %读取训练库路径,并统计样本个数 TrainFiles = dir(TrainDat

38、abasePath); Train_Number = 0; for i = 1:size(TrainFiles,1)if not(strcmp(TrainFiles(i).name,.)|strcmp(TrainFiles(i).name,.)|strcmp(TrainFiles(i).name,Thu mbs.db)Train_Number = Train_Number + 1; % Number of all images in the training databaseend end %将 2 维图像转化为一维向量 T = ; for i = 1 : Train_Number % I h

39、ave chosen the name of each image in databases as a corresponding number. However, it is not mandatory!str = int2str(i);str = strcat(,str,.jpg);str = strcat(TrainDatabasePath,str); img = imread(str);img = rgb2gray(img); irow icol = size(img); temp = reshape(img,irow*icol,1); % Reshaping 2D images in

40、to 1D image vectorsT = T temp; % T grows after each turn #*end3.2 主程序主程序clear all clc close all % You can customize and fix initial directory paths TrainDatabasePath = uigetdir(strcat(matlabroot,work), Select training database path );%设置 训练集路径 TestDatabasePath = uigetdir(strcat(matlabroot,work), Sel

41、ect test database path); prompt = Enter test image name (a number between 1 to 10):; dlg_title = Input of PCA-Based Face Recognition System; num_lines= 1; def = 1;TestImage = inputdlg(prompt,dlg_title,num_lines,def); TestImage = strcat(TestDatabasePath,char(TestImage),.jpg); im = imread(TestImage);

42、T = CreateDatabase(TrainDatabasePath); m, A, Eigenfaces = EigenfaceCore(T); OutputName = Recognition(TestImage, m, A, Eigenfaces); SelectedImage = strcat(TrainDatabasePath,OutputName); SelectedImage = imread(SelectedImage); figure; subplot(1,2,1);imshow(im); title(Test Image); subplot(1,2,2);imshow(SelectedImage); title(Equivalent Image); str = strcat(

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com