KL变换应用于人脸识别
实验2_KL变换实验
实验二:KL 变换实验学时:4学时实验目的:1. 掌握特征提取的基本方法。
2. 掌握基于KL 变换的特征提取的方法。
3. 培养学生灵活使用KL 变换进行模式识别的能力。
实验内容:给出ORL 人脸数据库,共有400幅人脸图像(40人,每人10幅,大小为92*112象素)。
其中第一个人的图像如下图:选取数据库中的部分样本(每个人的前5张图片)作为训练样本,其余作为未知的测试样本。
从训练样本中得到KL 变换矩阵,然后对训练样本和测试样本都进行变换,用变换后的数据作最近邻识别,距离可以为对应灰度值之差的平方和,统计识别率。
KL 变换方法简介:设图像数据库图像大小为Width ⨯Height ,令d = Width ⨯Height ,则每幅图像可以用按行或者按列堆成一个d 维向量表示。
令111()()N T T t i i t t i S x m x m N N==--=ΦΦ∑,其中1(,,)t N x m x m Φ=-- 。
特征脸方法(KL 变换方法)是从PCA 方法导出的。
PCA 方法就是要寻找正交归一的变换矩阵12(,,,)d L L W u u u R ⨯=∈ ,1T WW =,使得判别准则()()T t J W tr W S W =达到最大,即arg max ()T t WW tr W S W =。
也就是在T y W x =的正交变换后使得总体散度矩阵y T t t S W S W =的迹最大,即各个样本分离得尽量远,将样本的方差尽量的保留下来,和原样本的均方误差尽量小。
可以证明求得12(,,,)L W u u u = 就是对应于矩阵t S 的前L 个最大的特征值的特征向量。
即12(,,,)L W u u u = 的各列向量是下面特征方程的解:t i i i S u u λ=显然,变换后的y T t t S W S W =是一个对角阵,对角线上的元素为相应的特征值,即1()dt i i tr S λ==∑,也就是说每个特征值都代表了相应的特征向量保留总体散度(方差)的能力。
人脸识别主要算法原理
人脸识别主要算法原理主流的人脸识别技术基本上可以归结为三类,即:基于几何特征的方法、基于模板的方法和基于模型的方法。
1. 基于几何特征的方法是最早、最传统的方法,通常需要和其他算法结合才能有比较好的效果;2. 基于模板的方法可以分为基于相关匹配的方法、特征脸方法、线性判别分析方法、奇异值分解方法、神经网络方法、动态连接匹配方法等。
3. 基于模型的方法则有基于隐马尔柯夫模型,主动形状模型和主动外观模型的方法等。
1. 基于几何特征的方法人脸由眼睛、鼻子、嘴巴、下巴等部件构成,正因为这些部件的形状、大小和结构上的各种差异才使得世界上每个人脸千差万别,因此对这些部件的形状和结构关系的几何描述,可以做为人脸识别的重要特征。
几何特征最早是用于人脸侧面轮廓的描述与识别,首先根据侧面轮廓曲线确定若干显著点,并由这些显著点导出一组用于识别的特征度量如距离、角度等。
Jia 等由正面灰度图中线附近的积分投影模拟侧面轮廓图是一种很有新意的方法。
采用几何特征进行正面人脸识别一般是通过提取人眼、口、鼻等重要特征点的位置和眼睛等重要器官的几何形状作为分类特征,但Roder对几何特征提取的精确性进行了实验性的研究,结果不容乐观。
可变形模板法可以视为几何特征方法的一种改进,其基本思想是:设计一个参数可调的器官模型(即可变形模板),定义一个能量函数,通过调整模型参数使能量函数最小化,此时的模型参数即做为该器官的几何特征。
这种方法思想很好,但是存在两个问题,一是能量函数中各种代价的加权系数只能由经验确定,难以推广,二是能量函数优化过程十分耗时,难以实际应用。
基于参数的人脸表示可以实现对人脸显著特征的一个高效描述,但它需要大量的前处理和精细的参数选择。
同时,采用一般几何特征只描述了部件的基本形状与结构关系,忽略了局部细微特征,造成部分信息的丢失,更适合于做粗分类,而且目前已有的特征点检测技术在精确率上还远不能满足要求,计算量也较大。
2. 局部特征分析方法(Local Face Analysis)主元子空间的表示是紧凑的,特征维数大大降低,但它是非局部化的,其核函数的支集扩展在整个坐标空间中,同时它是非拓扑的,某个轴投影后临近的点与原图像空间中点的临近性没有任何关系,而局部性和拓扑性对模式分析和分割是理想的特性,似乎这更符合神经信息处理的机制,因此寻找具有这种特性的表达十分重要。
K-L变换的一些典型应用
K-L变换的性质。
归结起来,它消除了各分量之间的相关性,因而用它来描述事物时,可以减少描述量的冗余性,做到用最经济有效的方法描述事物。
下面结合一些应用实例来说明如何运用K-L变换的这一性质。
1.降维与压缩以人脸图象这个例子看,K-L变换的降维效果是十分明显的。
对一幅人脸图象,如果它由M行与N到象素组成,则原始的特征空间维数就应为M×N。
而如果在K-L变换以及只用到30个基,那么维数就降至30,由此可见降维的效果是极其明显的。
另一方面降维与数据压缩又是紧密联系在一起的。
譬如原训练样本集的数量为V,而现采用30个基,每个基实质上是一幅图象,再加上每幅图象的描述参数(式(补4-3)中的C),数据量是大大降低,尤其是图象数很大时,压缩量是十分明显的。
2.构造参数模型使用K-L变换不仅仅起到降维与压缩数据的作用,更重要的是每个描述量都有明确的意义,因而改变某一个参数就可让图象按所需要的方向变化。
在没有使用K-L变换的原数据集中对图象的描述量是每个象素的灰度值,而弧立地改变某个象素的灰度值是没有意义的。
而在使用K-L变换后,每个描述量都有其各自的作用。
因此通过改变这些参数的值就可实现对模型的有效描述,这在图象生成中是很有用的。
因此利用K-L变换构造出可控制的,连续可调的参数模型在人脸识别与人脸图象重构采方面的应用是十分有效的。
3.人脸识别利用K-L变换进行人脸图象识别是一个著名的方法。
其原理十分简单,首先搜集要识别的人的人脸图象,建立人脸图象库,然后利用K-L变换确定相应的人脸基图象,再反过来用这些基图象对人脸图象库中的有人脸图象进行K-L变换,从而得到每幅图象的参数向量(试问用哪个公式?)并将每幅图的参数向量存起来。
在识别时,先对一张所输入的脸图象进行必要的规范化,再进行K-L变换分析,得到其参数向量。
将这个参数向量与库中每幅图的参数向量进行比较,找到最相似的参数向量,也就等于找到最相似的人脸,从而认为所输入的人脸图象就是库内该人的一张人脸, 完成了识别过程。
人脸识别发展史
1 人脸识别研究的发展状况1.1 发展历史早在1888年和1920年Galton就在《Nature》上发表过两篇关于利用人脸进行身份识别的论文。
真正意义上的自动人脸识别的研究开始于二十世纪六十年代中后期 1965年Chen 和Bledsoe的报告是最早的关于自动人脸识别的文献。
1965到1990年之间是人脸识别研究的初级阶段 这一阶段的研究主要集中在基于几何结构特征的人脸识别方法 Geometric feature based 。
该阶段的研究基本没有得到实际的应用。
1991年到1997年间是人脸识别研究非常活跃的重要时期。
出现了著名的特征脸方法Eigenface 该方法由麻省理工学院的Turk和Pentland提出 之后有许多基于该方法的研究。
Brunelli和Poggio在1992年对基于结构特征的方法和基于模板匹配的方法进行了实验对比 并给出了后者优于前者的明确结论。
该时期内 美国国防部资助的FERET FacE Recognition technology Test 项目资助多项人脸识别研究 创建了著名的FERET人脸图像数据库。
该项目极大地促进了人脸识别算法的改进以及算法的实用化。
1998年至今 研究者开始针对非理想条件下的人脸识别进行研究。
光照、姿势等问题成为研究热点。
出现了基于3D模型的人脸建模与识别方法。
在商业化的应用方面 美国国防部在2000年和2002年组织了针对人脸识别商业系统的评测FRVT Face Recognition Vendor Test) 比较领先的系统提供商有Cognitec, Identix和Eyematic。
1.2 主要公共数据库人脸数据库对于人脸识别算法的研究是不可缺少的 而公共人脸图像数据库的建立方便不同研究者之间的交流学习 并有助于不同算法的比较 下面列举常用的人脸图像数据库。
FERET人脸数据库 是FERET项目创建的人脸数据库 该库包含14,051幅多姿态、不同光照条件的灰度人脸图像 是人脸识别领域应用最广泛的人脸数据库之一。
人脸识别主要算法原理
人脸识别主要算法原理主流的人脸识别技术基本上可以归结为三类,即:基于几何特征的方法、基于模板的方法和基于模型的方法。
1.基于几何特征的方法是最早、最传统的方法,通常需要和其他算法结合才能有比较好的效果;2.基于模板的方法可以分为基于相关匹配的方法、特征脸方法、线性判别分析方法、奇异值分解方法、神经网络方法、动态连接匹配方法等。
3.基于模型的方法则有基于隐马尔柯夫模型,主动形状模型和主动外观模型的方法等。
1.基于几何特征的方法人脸由眼睛、鼻子、嘴巴、下巴等部件构成,正因为这些部件的形状、大小和结构上的各种差异才使得世界上每个人脸千差万别,因此对这些部件的形状和结构关系的几何描述,可以做为人脸识别的重要特征。
几何特征最早是用于人脸侧面轮廓的描述与识别,首先根据侧面轮廓曲线确定若干显著点,并由这些显著点导出一组用于识别的特征度量如距离、角度等。
Jia等由正面灰度图中线附近的积分投影模拟侧面轮廓图是一种很有新意的方法。
采用几何特征进行正面人脸识别一般是通过提取人眼、口、鼻等重要特征点的位置和眼睛等重要器官的几何形状作为分类特征,但Roder对几何特征提取的精确性进行了实验性的研究,结果不容乐观。
可变形模板法可以视为几何特征方法的一种改进,其基本思想是:设计一个参数可调的器官模型(即可变形模板),定义一个能量函数,通过调整模型参数使能量函数最小化,此时的模型参数即做为该器官的几何特征。
这种方法思想很好,但是存在两个问题,一是能量函数中各种代价的加权系数只能由经验确定,难以推广,二是能量函数优化过程十分耗时,难以实际应用。
基于参数的人脸表示可以实现对人脸显著特征的一个高效描述,但它需要大量的前处理和精细的参数选择。
同时,采用一般几何特征只描述了部件的基本形状与结构关系,忽略了局部细微特征,造成部分信息的丢失,更适合于做粗分类,而且目前已有的特征点检测技术在精确率上还远不能满足要求,计算量也较大。
2.局部特征分析方法(Local Face Analysis)主元子空间的表示是紧凑的,特征维数大大降低,但它是非局部化的,其核函数的支集扩展在整个坐标空间中,同时它是非拓扑的,某个轴投影后临近的点与原图像空间中点的临近性没有任何关系,而局部性和拓扑性对模式分析和分割是理想的特性,似乎这更符合神经信息处理的机制,因此寻找具有这种特性的表达十分重要。
《模式识别》课程教学大纲(本科)
《模式识别》课程教学大纲课程编号:04226课程名称:模式识别英文名称:Pattern Recognition课程类型:专业课课程要求:选修学时/学分:32/2 (讲课学时:28 实验学时:4)适用专业:智能科学与技术一、课程性质与任务模式识别课程是智能科学与技术专业的•门选修课,是研究计算机模式识别的基本理论和方法、应用。
模式识别就是利用计算机对某些物理现象进行分类,在错误概率最小的条件下,使识别的结果尽量与事物相符。
这门课的教学目的是让学生掌握统计模式识别和结构模式识别基本原理和方法。
本课程的主要任务是通过对模式识别的基本理论和方法、运用实例的学习,使学生掌握模式识别的基本理论与方法,培养学生利用模式识别方法、运用技能解决本专业及相关领域实际问题的能力,为将来继续深入学习或进行科学研究打下坚实的基础。
本课程的教学目的是为了使学生能应用模式识别处理计算机自动识别事物,机器学习数据分析中有关的技术问题。
由于本课程的目标是侧重在应用模式识别技术,因此在学习内容上侧重基本概念的讲解,辅以必要的数学推导,使学生能掌握模式识别技术中最基本的概念,以及最基本的处理问题方法。
学生在学习过程中还会用到一些概率论的最基本知识,线性代数中的部分知识,对学生在数学课中学到知识的进一步理解与巩固起到温故而知新的作用。
(该门课程支撑毕业要求中1.1, 2.1, 3.1, 3.3, 4.1, 6.1, 10.1和12.1)二、课程与其他课程的联系先修课程:概率论与数理统计、线性代数、机器学习后续课程:智能感知综合实践先修课程概率论与数理统计和线性代数为学生学习模式识别技术中最基本的概念,必要的数学推导打下基础,机器学习可以使学生建立整体思考问题的方法,并具有系统性能优化的概念。
本课程为后续智能优化方法打下理论基础。
三、课程教学目标1. 学习模式识别基本理论知识,理解参数估计的基本思想,掌握最大似然和贝叶斯儿种典型算法,理解聚类分析的的基本思想,掌握聚类分析的几种典型算法:(支撑毕业要求1.1,2.1)2. 具有数学分析和识别的基本能力;(支撑毕业要求1.1)3. 掌握基本的识别优化创新方法,培养学生追求创新的态度和意识;(支撑毕业要求3.1)4. 培养学生树立正确的分析和识别思想,了解设计过程中国家有关的经济、环境、法律、安全、健康、伦理等政策和制约因素;(支撑毕业要求3.3)5. 培养学生的工程实践学习能力,使学生具有运用标准、规范、手册、图册和查阅有关技术资料的能力;(支撑毕业要求4.1, 6.1)6, 了解模式识别方法前沿和新发展动向;(支撑毕业要求10.1, 12.1)四、教学内容、基本要求与学时分配五、其他教学环节(课外教学环节、要求、目标)无六、教学方法本课程以课堂教学为主,结合作业、自学及洲验等教学手段和形式完成课程教学任务。
人脸识别的基本方法
人脸识别的基本方法人脸识别的基本方法人脸识别的基本方法人脸识别的方法很多,以下介绍一些主要的人脸识别方法。
(1)几何特征的人脸识别方法几何特征可以是眼、鼻、嘴等的形状和它们之间的几何关系(如相互之间的距离)。
这些算法识别速度快,需要的内存小,但识别率较低。
(2)基于特征脸(PCA)的人脸识别方法特征脸方法是基于KL变换的人脸识别方法,KL变换是图像压缩的一种最优正交变换。
高维的图像空间经过KL变换后得到一组新的正交基,保留其中重要的正交基,由这些基可以张成低维线性空间。
如果假设人脸在这些低维线性空间的投影具有可分性,就可以将这些投影用作识别的特征矢量,这就是特征脸方法的基本思想。
这些方法需要较多的训练样本,而且完全是基于图像灰度的统计特性的。
目前有一些改进型的特征脸方法。
(3)神经网络的人脸识别方法神经网络的输入可以是降低分辨率的人脸图像、局部区域的自相关函数、局部纹理的二阶矩等。
这类方法同样需要较多的样本进行训练,而在许多应用中,样本数量是很有限的。
(4)弹性图匹配的人脸识别方法弹性图匹配法在二维的空间中定义了一种对于通常的人脸变形具有一定的不变性的距离,并采用属性拓扑图来代表人脸,拓扑图的任一顶点均包含一特征向量,用来记录人脸在该顶点位置附近的信息。
该方法结合了灰度特性和几何因素,在比对时可以允许图像存在弹性形变,在克服表情变化对识别的影响方面收到了较好的效果,同时对于单个人也不再需要多个样本进行训练。
(5)线段Hausdorff 距离(LHD) 的人脸识别方法心理学的研究表明,人类在识别轮廓图(比如漫画)的速度和准确度上丝毫不比识别灰度图差。
LHD是基于从人脸灰度图像中提取出来的线段图的,它定义的是两个线段集之间的距离,与众不同的是,LHD并不建立不同线段集之间线段的一一对应关系,因此它更能适应线段图之间的微小变化。
实验结果表明,LHD在不同光照条件下和不同姿态情况下都有非常出色的表现,但是它在大表情的情况下识别效果不好。
基于KL变换和PCA人脸识别方法[方案]
目录基于KL变换和PCA人脸识别方法 (2)摘要 (2)KL变换和PCA人脸识别方法.......... 错误!未定义书签。
1 简介 (3)2 KL变换和PCA分析 (3)2.1 KL变换原理............................................... 错误!未定义书签。
2.2 主成分分析法(PCA)............................. 错误!未定义书签。
2.3 人脸识别中PCA算法步骤及流程............... 错误!未定义书签。
3 实验及结果分析............................................ 错误!未定义书签。
4 总结 ............................................................. 错误!未定义书签。
5 展望 ............................................................. 错误!未定义书签。
参考文献 .......................... 错误!未定义书签。
基于KL变换和PCA人脸识别方法作者:摘要生物特征识别技术使用了人体本身所固有的生物特征,与传统的身份识别方法完全不同,具有更高的安全性、可靠性、和有效性,越来越受到人们的重视。
人脸识别技术作为生物特征识别技术的重要组成部分,在近三十年里得到了广泛的关注和研究,已经成为计算机视觉、模式识别领域的研究热点。
人脸识别在公共安全、证件验证、门禁系统、视频监视等领域中都有着广泛的应用前景。
本文是在人脸数据库的基础上做人脸特征提取和识别研究,主要内容如下:(1)介绍主成分分析法(PCA)、K-L变换,并利用特征脸方法实现了人脸识别。
(2)给出了基于matlab环境的编程及实验结果,并对结果进行分析。
关键词:人脸识别,特征脸,K-L变换,主成分分析1 简介我们希望将图像原特征做某种正交变换,获得的数据都是原数据的线性组合,从新数据中选出少数几个,使其尽可能多地反映各类模式之间的差异,又尽可能相互独立,一个常用的方法就是主成分分析(PCA)。
基于KL变换的人脸识别报告
模式识别大作业班级:09030901题目:基于KL变换的人脸识别姓名:黎照学号:2009302320姓名:陈升富学号:2009302313姓名:益琛学号:2009302311日期:2012/4/25【摘要】本次实验论述了K_L变换在人脸识别中的应用,主要介绍人脸识别过程中的每个环节,整个过程包括人脸图像的采集、预处理、特征提取到训练和识别。
一、基本要求从网上下载人脸图像,构建人脸训练数据库和测试数据库,采用K-L变换进行特征脸提取,并实现人脸识别。
通过K-L变换在人脸识别中的应用,加深对所学内容的理解和感性认识。
二、主要思想基于特征脸的人脸识别方法是基于K-L变换的人脸识别方法,K-L变换是图像压缩的一种最优正交变换。
高维的图像空间经过K-L变换后得到一组新的正交基,保留其中重要的正交基,由这些基可以转成低维线性空间。
如果假设人脸在这些低维线性空间的投影具有可分性,就可以将这些投影用作识别的特征矢量,这就是特征脸方法的基本思想三、 实验原理1、K-L 变换设n 维随机向量()12,,...,Tnx x x x =其均值向量E x u ⎡⎤=⎢⎥⎣⎦,相关矩阵xTE R xx =⎡⎤⎣⎦,协方差矩阵()()Tx E C x u x u →→→→→=--⎡⎤⎢⎥⎣⎦,x 经正交变换后产生向量()12,,...,T ny y y y =。
设有标准正交变换矩阵T ,(即 T'T=I )1212'()'(,)'n n y T x t t t x y y y ===,'i i y t x = (1,2,)i n =11(')ni i i x T y T y y t -====∑ (称为x 的K-L 展开式)取前m项为x 的估计值1ˆmi i i x y t ==∑ 1m n ≤<其均方误差为2T ˆˆ()()()m E x x x x ε⎡⎤=--⎣⎦2'11[][]n ni i i i m i m E y E y y =+=+==∑∑ 2()m ε211[][]nn ii ii m i m E yE y y =+=+'==∑∑11()nniiix ii m i m t E xx tt R t =+=+'''==∑∑在T‘T=I 的约束条件下,要使均方误差21ˆˆ()[()'()]'min nix ii m m E x xx x t R tε=+=--=→∑为此设定准则函数11'('1)n ni x i i i i i m i m J t R t t t λ=+=+=--∑∑由 0iJt ∂=∂得()0x i i R I t λ-= 1,...,i m n =+,即x i i i R t t λ= 1,...,i m n =+表明: λi 是x R 的特征值,而i t 是相应的特征向量。
人脸算法公式
人脸算法公式
人脸识别算法涉及多个步骤和公式,但具体公式取决于所使用的算法。
以下是其中两种常用的人脸识别算法及其相关公式:
1. 主成分分析(PCA,也被称为特征脸方法):
PCA是一种以较少数量的特征对样本进行描述以达到降低特征空间维数的
方法,其基础是Karhunen-Loeve展开式,简称KL展开式。
具体来说,对于一个输入的测试样本x,可以求出它与平均脸之间的偏差y = x - x’,y在特征脸空间的投影可以表示为系数向量z = W(T)y,z就是KL变换的展开系数向量。
2. Gabor小波变换+图形匹配:
Gabor滤波器将Gaussian网络函数限制为一个平面波的形状,并且在滤波器设计中有优先方位和频率的选择,表现为对线条边缘反应敏感。
这种方法精确抽取面部特征点以及基于Gabor引擎的匹配算法,具有较好的准确性,能够排除由于面部姿态、表情、发型、眼镜、照明环境等带来的变化。
请注意,以上仅为简要介绍,并无法涵盖所有的人脸识别算法公式。
在实际应用中,建议根据具体需求和场景选择适合的算法,并深入学习相关算法和公式。
科技文献作业
关于“人脸识别”的科技文献检索人脸是人体最重要的生物表征之一,具有很强的独立性和差异性,人们往往通过面容来识别被观察者的身份。
因此,如何有效地实现计算机的自动人脸检测与识别,成为现代科技发展的一项重要研究课题,其在视频监控、身份验证、门禁系统、人机交互等领域都有着广泛的应用前景。
本文针对人脸检测与识别问题,基于OpenCV运用VC++2008设计了人脸检测与识别系统。
该系统在实现过程中,综合运用了色彩平衡、光照补偿、肤色检测、Adaboost算法、膨胀、腐蚀、平滑和PCA算法,可以有效地进行人脸检测与识别,并且能够动态维护人脸数据库,以供人脸识别之用。
实验结果表明,该系统识别速度较快,人脸检测与识别率较高。
本系统实现人脸检测与识别主要分为四个过程:(1)进行图像预处理。
针对图像可能出现过亮或者过暗问题,先后运用色彩平衡和光照补偿消除色彩偏差的影响;(2)基于肤色进行人脸粗检测。
根据人脸肤色在YCbCr色彩空间呈现的聚类特性,在YCbCr色彩空间内建立了肤色模型并以此对图像进行肤色分割,提取出候选人脸区域。
对得到的粗检图像进行膨胀腐蚀和平滑操作,消除图像中的毛刺和噪声点;(3)基于Adaboost算法进行人脸细检测。
加载OpenCV 中基于特征积分图的分类器构造级联分类器,对肤色分割后的候选人脸区域运用Adaboost算法进行人脸的细检测,分离出各个图像中的人脸区域;(4)根据系统中维护的人脸数据库,运用一维PCA算法实现人脸样本的分类识别。
实际测试结果表明,对于正面人脸,在光照变化的情况下,在进行人脸检测及识别的时候,能够取得较理想的结果。
【Abstract】 With the development of computer science, as a kind of biometric technology, face detection and recognition gets more and more attentions. Face detection and recognition has become one of the most active topics for computer vision and pattern recognition.In this thesis, a face detection and recognition system is developed under OpenCV with VC++2008 concerning face detection and recognition problems.According to the process of face detection and recognition, a series of techniques are involved which include color balance, light compensation, skin detection, Adaboost algorithm, dilation, erosion, smoothing algorithm and PCA algorithm.In this system, in order to assist face recognition, a method of updating the face database dynamically is adopted. The final test results turn out that the system can detect and recognize faces fast and precisely.The system is mainly composed of four parts:The first part is image preprocessing, considering that the image could be too bright or too dark and the iamges may be influenced by color deviation, color balance and light compensation are used to deal with the two problems respectively.The second part is skin detection, the picture processed is transformed into YCbCr color space due to the clustering features of skin under it, and by doing so,the skin area is separated while the rest pixels filled with green which could reduce the computing pressure in the following steps.In addition, dilation and erosion are used to erase the burrs and noises in the images.The third step is to detect faces in the image which is got from the procedures of the two steps above and the transition from YCbCr to gray with Adaboost algorithm.The final step is to recognize the test face with one-dimension PCA algorithm with the assistance of dynamical face database maintained by the system.After examined by the practical pictures,the system has shown satisfying results while detecting and recognizing frontal faces.摘要本文综述了人脸识别理论的研究现状,根据人脸自动识别技术发展的时间进行了分类,分析和比较各种识别方法优缺点,讨论了其中的关键技术及发展前景。
人脸识别可能用到的代码
人脸识别可能用到的代码:1.色彩空间转换function [r,g]=rgb_RGB(Ori_Face)R=Ori_Face(:,:,1);G=Ori_Face(:,:,2);B=Ori_Face(:,:,3);R1=im2double(R); % 将uint8型转换成double型G1=im2double(G);B1=im2double(B);RGB=R1+G1+B1;row=size(Ori_Face,1); % 行像素column=size(Ori_Face,2); % 列像素for i=1:rowfor j=1:columnrr(i,j)=R1(i,j)/RGB(i,j);gg(i,j)=G1(i,j)/RGB(i,j);endendrrr=mean(rr);r=mean(rrr);ggg=mean(gg);g=mean(ggg);2.均值和协方差t1=imread('D:\matlab\皮肤库\1.jpg');[r1,g1]=rgb_RGB(t1); t2=imread('D:\matlab\皮肤库\2.jpg');[r2,g2]=rgb_RGB(t2); t3=imread('D:\matlab\皮肤库\3.jpg');[r3,g3]=rgb_RGB(t3); t4=imread('D:\matlab\皮肤库\4.jpg');[r4,g4]=rgb_RGB(t4); t5=imread('D:\matlab\皮肤库\5.jpg');[r5,g5]=rgb_RGB(t5); t6=imread('D:\matlab\皮肤库\6.jpg');[r6,g6]=rgb_RGB(t6);t7=imread('D:\matlab\皮肤库\7.jpg');[r7,g7]=rgb_RGB(t7);t8=imread('D:\matlab\皮肤库\8.jpg');[r8,g8]=rgb_RGB(t8);t9=imread('D:\matlab\皮肤库\9.jpg');[r9,g9]=rgb_RGB(t9);t10=imread('D:\matlab\皮肤库\10.jpg');[r10,g10]=rgb_RGB(t10);t11=imread('D:\matlab\皮肤库\11.jpg');[r11,g11]=rgb_RGB(t11);t12=imread('D:\matlab\皮肤库\12.jpg');[r12,g12]=rgb_RGB(t12);t13=imread('D:\matlab\皮肤库\13.jpg');[r13,g13]=rgb_RGB(t13);t14=imread('D:\matlab\皮肤库\14.jpg');[r14,g14]=rgb_RGB(t14);t15=imread('D:\matlab\皮肤库\15.jpg');[r15,g15]=rgb_RGB(t15);t16=imread('D:\matlab\皮肤库\16.jpg');[r16,g16]=rgb_RGB(t16);t17=imread('D:\matlab\皮肤库\17.jpg');[r17,g17]=rgb_RGB(t17);t18=imread('D:\matlab\皮肤库\18.jpg');[r18,g18]=rgb_RGB(t18);t19=imread('D:\matlab\皮肤库\19.jpg');[r19,g19]=rgb_RGB(t19);t20=imread('D:\matlab\皮肤库\20.jpg');[r20,g20]=rgb_RGB(t20);t21=imread('D:\matlab\皮肤库\21.jpg');[r21,g21]=rgb_RGB(t21);t22=imread('D:\matlab\皮肤库\22.jpg');[r22,g22]=rgb_RGB(t22);t23=imread('D:\matlab\皮肤库\23.jpg');[r23,g23]=rgb_RGB(t23);t24=imread('D:\matlab\皮肤库\24.jpg');[r24,g24]=rgb_RGB(t24);t25=imread('D:\matlab\皮肤库\25.jpg');[r25,g25]=rgb_RGB(t25);t26=imread('D:\matlab\皮肤库\26.jpg');[r26,g26]=rgb_RGB(t26);t27=imread('D:\matlab\皮肤库\27.jpg');[r27,g27]=rgb_RGB(t27);r=cat(1,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15,r16,r17,r18,r19,r20,r21,r22,r23,r24,r25,r 26,r27);g=cat(1,g1,g2,g3,g4,g5,g6,g7,g8,g9,g10,g11,g12,g13,g14,g15,g16,g17,g18,g19,g20,g21,g22,g2 3,g24,g25,g26,g27);m=mean([r,g])n=cov([r,g])3.求质心function [xmean, ymean] = center(bw)bw=bwfill(bw,'holes');area = bwarea(bw);[m n] =size(bw);bw=double(bw);xmean =0; ymean = 0;for i=1:m,for j=1:n,xmean = xmean + j*bw(i,j);ymean = ymean + i*bw(i,j);end;end;if(area==0)xmean=0;ymean=0;elsexmean = xmean/area;ymean = ymean/area;xmean = round(xmean);ymean = round(ymean);end4. 求偏转角度function [theta] = orient(bw,xmean,ymean) [m n] =size(bw);bw=double(bw);a = 0;b = 0;c = 0;for i=1:m,for j=1:n,a = a + (j - xmean)^2 * bw(i,j);b = b + (j - xmean) * (i - ymean) * bw(i,j);c = c + (i - ymean)^2 * bw(i,j);end;b = 2 * b;theta = atan(b/(a-c))/2;theta = theta*(180/pi); % 从幅度转换到角度5. 找区域边界function [left, right, up, down] = bianjie(A) [m n] = size(A);left = -1;right = -1;up = -1;down = -1;for j=1:n,for i=1:m,if (A(i,j) ~= 0)left = j;break;end;end;if (left ~= -1) break;end;end;for j=n:-1:1,for i=1:m,if (A(i,j) ~= 0)right = j;break;end;end;if (right ~= -1) break;end;for i=1:m,for j=1:n,if (A(i,j) ~= 0)up = i;break;end;end;if (up ~= -1)break;end;end;for i=m:-1:1,for j=1:n,if (A(i,j) ~= 0)down = i;break;end;end;if (down ~= -1)break;end;end;6. 求起始坐标function newcoord = checklimit(coord,maxval) newcoord = coord;if (newcoord<1)newcoord=1;end;if (newcoord>maxval)newcoord=maxval;7.模板匹配function [ccorr, mfit, RectCoord] = mobanpipei(mult, frontalmodel,ly,wx,cx, cy, angle) frontalmodel=rgb2gray(frontalmodel);model_rot = imresize(frontalmodel,[ly wx],'bilinear'); % 调整模板大小model_rot = imrotate(model_rot,angle,'bilinear'); % 旋转模板[l,r,u,d] = bianjie(model_rot); % 求边界坐标bwmodel_rot=imcrop(model_rot,[l u (r-l) (d-u)]); % 选择模板人脸区域[modx,mody] =center(bwmodel_rot); % 求质心[morig, norig] = size(bwmodel_rot);% 产生一个覆盖了人脸模板的灰度图像mfit = zeros(size(mult));mfitbw = zeros(size(mult));[limy, limx] = size(mfit);% 计算原图像中人脸模板的坐标startx = cx-modx;starty = cy-mody;endx = startx + norig-1;endy = starty + morig-1;startx = checklimit(startx,limx);starty = checklimit(starty,limy);endx = checklimit(endx,limx);endy = checklimit(endy,limy);for i=starty:endy,for j=startx:endx,mfit(i,j) = model_rot(i-starty+1,j-startx+1);end;end;ccorr = corr2(mfit,mult) % 计算相关度[l,r,u,d] = bianjie(bwmodel_rot);sx = startx+l;sy = starty+u;RectCoord = [sx sy (r-1) (d-u)]; % 产生矩形坐标8.主程序clear;[fname,pname]=uigetfile({'*.jpg';'*.bmp';'*.tif';'*.gif'},'Please choose a color picture...');% 返回打开的图片名与图片路径名[u,v]=size(fname);y=fname(v); % 图片格式代表值switch ycase 0errordlg('You Should Load Image File First...','Warning...');case{'g';'G';'p';'P';'f';'F'}; % 图片格式若是JPG/jpg、BMP/bmp、TIF/tif或者GIF/gif,才打开I=cat(2,pname,fname);Ori_Face=imread(I);subplot(2,3,1),imshow(Ori_Face);otherwiseerrordlg('You Should Load Image File First...','Warning...');endR=Ori_Face(:,:,1);G=Ori_Face(:,:,2);B=Ori_Face(:,:,3);R1=im2double(R); % 将uint8型转换成double型处理G1=im2double(G);B1=im2double(B);RGB=R1+G1+B1;m=[ 0.4144,0.3174]; % 均值n=[0.0031,-0.0004;-0.0004,0.0003]; % 方差row=size(Ori_Face,1); % 行像素数column=size(Ori_Face,2); % 列像素数for i=1:rowfor j=1:columnif RGB(i,j)==0rr(i,j)=0;gg(i,j)=0;elserr(i,j)=R1(i,j)/RGB(i,j); % rgb归一化gg(i,j)=G1(i,j)/RGB(i,j);x=[rr(i,j),gg(i,j)];p(i,j)=exp((-0.5)*(x-m)*inv(n)*(x-m)'); % 皮肤概率服从高斯分布 endendendsubplot(2,3,2);imshow(p); % 显示皮肤灰度图像low_pass=1/9*ones(3);image_low=filter2(low_pass, p); % 低通滤波去噪声subplot(2,3,3);imshow(image_low);% 自适应阀值程序previousSkin2 = zeros(i,j);changelist = [];for threshold = 0.55:-0.1:0.05two_value = zeros(i,j);two_value(find(image_low>threshold)) = 1;change = sum(sum(two_value - previousSkin2));changelist = [changelist change];previousSkin2 = two_value;end[C, I] = min(changelist);optimalThreshold = (7-I)*0.1two_value = zeros(i,j);two_value(find(image_low>optimalThreshold)) = 1; % 二值化subplot(2,3,4);imshow(two_value); % 显示二值图像frontalmodel=imread('E:\我的照片\人脸模板.jpg'); % 读入人脸模板照片FaceCoord=[];imsourcegray=rgb2gray(Ori_Face); % 将原照片转换为灰度图像[L,N]=bwlabel(two_value,8); % 标注二值图像中连接的部分,L为数据矩阵,N为颗粒的个数for i=1:N,[x,y]=find(bwlabel(two_value)==i); % 寻找矩阵中标号为i的行和列的下标bwsegment = bwselect(two_value,y,x,8); % 选择出第i个颗粒numholes = 1-bweuler(bwsegment,4); % 计算此区域的空洞数if (numholes >= 1) % 若此区域至少包含一个洞,则将其选出进行下一步运算RectCoord = -1;[m n] = size(bwsegment);[cx,cy]=center(bwsegment); % 求此区域的质心bwnohole=bwfill(bwsegment,'holes'); % 将洞封住(将灰度值赋为1)justface = uint8(double(bwnohole) .* double(imsourcegray));% 只在原照片的灰度图像中保留该候选区域angle = orient(bwsegment,cx,cy); % 求此区域的偏转角度bw = imrotate(bwsegment, angle, 'bilinear');bw = bwfill(bw,'holes');[l,r,u,d] =bianjie(bw);wx = (r - l +1); % 宽度ly = (d - u + 1); % 高度wratio = ly/wx % 高宽比if ((0.8<=wratio)&(wratio<=2))% 如果目标区域的高度/宽度比例大于0.8且小于2.0,则将其选出进行下一步运算 S=ly*wx; % 计算包含此区域矩形的面积A=bwarea(bwsegment); % 计算此区域面积if (A/S>0.35)[ccorr,mfit, RectCoord] = mobanpipei(justface,frontalmodel,ly,wx, cx,cy, angle);endif (ccorr>=0.6)mfitbw=(mfit>=1);invbw = xor(mfitbw,ones(size(mfitbw)));source_with_hole = uint8(double(invbw) .* double(imsourcegray));final_image = uint8(double(source_with_hole) + double(mfit));subplot(2,3,5);imshow(final_image); % 显示覆盖了模板脸的灰度图像imsourcegray = final_image;subplot(2,3,6);imshow(Ori_Face); % 显示检测效果图end;if (RectCoord ~= -1)FaceCoord = [FaceCoord; RectCoord];endendendend% 在认为是人脸的区域画矩形[numfaces x] = size(FaceCoord);for i=1:numfaces,hd = rectangle('Position',FaceCoord(i,:));set(hd, 'edgecolor', 'y');end部分检测原理一、基于肤色模型的人脸检测对于一个成功的人脸识别系统,人脸检测是极其重要和关键的一步,它直接影响人脸特征的提取,识别等后续工作。
kl变换与主成分分析
主成分分析(PCA)是多元统计分析中用来分析数据的一种方法,它是用一种较少数量的特征对样本进行描述以达到降低特征空间维数的方法,它的本质实际上是K・L变换。
PCA方法最著名的应用应该是在人脸识别中特征提取及数据维,我们知道输入200*20o大小的人脸图像,单单提取它的灰度值作为原始特征,则这个原始特征将达到40000维,这给后面分类器的处理将带来极大的难度。
著名的人脸识别Eigenface算法就是釆用PCA 算法,用一个低维子空间描述人脸图像, 同时用保存了识别所需要的信息。
下面先介绍下PCA算法的本质K-L 变换。
1、K・L变换(卡洛南-洛伊(KmrhunemLoeve)变换):最优正交变换・一种常用的特征提取方法;• 最小均方误差意义下的最优正交变换;・在消除模式特征之间的相关性、突出差异性方面有最优的效果。
离散K-L变换:对向量x(可以想象成M维=width*heiglit的人脸图像原始特征)用确定的完备正交归一向量系Uj展开:OP兀=y丿・叮・Uj =叮• eu j\ J=l丿=U / • X这个公式由来我想应该是任一11维欧式空间V均存在正交基,利用施密特正交化过程即可构建这个正交基。
现在我们希望用d个有限项来估计向量x,公式如下:7=1计算该估计的均方误差如下:要使用均方误差最小,我们釆用Langrange乘子法进行求解:^(u i)=S [u i7'Ru i]-S2j (u f u i - 0“+I”+1对Uj,丿=〃十1,…,8求导数,得R,u rA,u i因此,当满足上式时,z£[uj7・R・叮J+I取得最小值。
即相关矩阵R的d个特征向量(对应d个特征值从大到小排列)为基向量来展开向量x时,其均方误差最小,为:d+1因此,K・L变换定义:当取矩阵R的d个最大特征值对应的特征向量来展开x时,其截断均方误差最小。
这d个特征向量组成的正交坐标系称作x所在的D维空间的d维K・L变换坐标系,x在K・L坐标系上的展开系数向量y称作x的K-L变换。
人脸识别综述与展望-最新范文
人脸识别综述与展望1人脸识别技术概述近年来,随着计算机技术的迅速发展,人脸自动识别技术得到广泛研究与开发,人脸识别成为近30年里模式识别和图像处理中最热门的研究主题之一。
人脸识别的目的是从人脸图像中抽取人的个性化特征,并以此来识别人的身份。
一个简单的自动人脸识别系统,包括以下4个方面的内容:(1)人脸检测(Detection):即从各种不同的场景中检测出人脸的存在并确定其位置。
(2)人脸的规范化(Normalization):校正人脸在尺度、光照和旋转等方面的变化。
(3)人脸表征(FaceRepresentation):采取某种方式表示检测出人脸和数据库中的已知人脸。
(4)人脸识别(Recognition):将待识别的人脸与数据库中的已知人脸比较,得出相关信息。
2人脸识别算法的框架人脸识别算法描述属于典型的模式识别问题,主要有在线匹配和离线学习两个过程组成,如图1所示。
图1一般人脸识别算法框架在人脸识别中,特征的分类能力、算法复杂度和可实现性是确定特征提取法需要考虑的因素。
所提取特征对最终分类结果有着决定性的影响。
分类器所能实现的分辨率上限就是各类特征间最大可区分度。
因此,人脸识别的实现需要综合考虑特征选择、特征提取和分类器设计。
3人脸识别的发展历史及分类人脸识别的研究已经有相当长的历史,它的发展大致可以分为四个阶段:第一阶段:人类最早的研究工作至少可追朔到二十世纪五十年代在心理学方面的研究和六十年代在工程学方面的研究。
J.S.Bruner于1954年写下了关于心理学的Theperceptionofpeople,Bledsoe在1964年就工程学写了FacialRecognitionProjectReport,国外有许多学校在研究人脸识别技术[1],其中有从感知和心理学角度探索人类识别人脸机理的,如美国TexasatDallas大学的Abdi和Tool小组[2、3],由Stirling大学的Bruce教授和Glasgow大学的Burton教授合作领导的小组等[3];也有从视觉机理角度进行研究的,如英国的Graw小组[4、5]和荷兰Groningen大学的Petkov小组[6]等。
常用故障特征提取方法综述
常用故障特征提取方法综述摘要:随着现代工业及科学技术的迅速发展,生产设备日趋大型化、集成化、高速化、自动化和智能化,设备在生产中的地位越来越重要,对设备的管理也提出了更高的要求,能否保证一些关键设备的正常运行,直接关系到一个行业发展的各个层面。
机械故障诊断的基本任务是监视机械设备的运行状态,诊断和判断机械设备的故障并提供有效的排故措施,指导设备管理和维修。
在机械故障诊断的发展过程中,人们发现最重要、最关键而且也是最困难的问题之一是故障信号的特征提取。
本文就故障诊断的两大类常用方式做了比较说明,并结合实例说明各类方法的优缺点,给读者在实际应用中提供了选择余地。
关键词:故障诊断特征提取1、故障特征提取方法研究的目的与意义随着现代工业及科学技术的迅速发展,生产设备日趋大型化、集成化、高速化、自动化和智能化,设备在生产中的地位越来越重要,对设备的管理也提出了更高的要求,能否保证一些关键设备的正常运行,直接关系到一个行业发展的各个层面[1,2]。
现代化工业生产,一旦发生故障,损失将十分巨大,因此,为尽最大可能地避免事故的发生,机械设备状态监测与故障诊断技术近年来得到了极为广泛的重视,其应用所达到的深入程度十分令人鼓舞。
目前,机械设备状态监测与故障诊断已基本上形成了一门既有理论基础、又有实际应用背景的交叉性学科[1-3]。
机械故障诊断的基本任务是监视机械设备的运行状态,诊断和判断机械设备的故障并提供有效的排故措施,指导设备管理和维修。
机械故障诊断主要包括四个步骤[4,5],即信号测取、特征提取、状态诊断和状态分析。
在机械故障诊断的发展过程中,人们发现最重要、最关键而且也是最困难的问题之一是故障信号的特征提取。
在某种意义上,特征提取可以说是当前机械故障诊断研究中的瓶颈问题,它直接关系到故障诊断的准确性和故障早期预报的可靠性[3,5]。
在实际应用中,故障与征兆之间往往并不存在简单的一一对应的关系,一种故障可能对应若多种征兆,反之一种征兆也可能由于多种故障所致,这些给故障特征提取带来了困难,为了从根本上解决特征提取这个关键问题,通常我们必须要借助信号处理,特别是现代信号处理的理论、方法和技术手段,从采集的原始数据中寻找出特征信息,提取特征值,从而保证有效、准确地进行故障诊断,也就是说,信号处理与故障诊断有着极为密切的联系,信号处理、特征提取是故障诊断中必不可少的一个重要环节[3]。
人脸识别的主要算法以及原理
⼈脸识别的主要算法以及原理⼈脸识别的主要算法以及原理主流的技术基本上可以归结为三类,即:基于⼏何特征的⽅法、基于模板的⽅法和基于模型的⽅法。
1. 基于⼏何特征的⽅法是最早、最传统的⽅法,通常需要和其他结合才能有⽐较好的效果;2. 基于模板的⽅法可以分为基于相关匹配的⽅法、特征脸⽅法、线性判别分析⽅法、奇异值分解⽅法、神经⽹络⽅法、动态连接匹配⽅法等。
3. 基于模型的⽅法则有基于隐马尔柯夫模型,主动形状模型和主动外观模型的⽅法等。
1. 基于⼏何特征的⽅法⼈脸由眼睛、⿐⼦、嘴巴、下巴等部件构成,正因为这些部件的形状、⼤⼩和结构上的各种差异才使得世界上每个⼈脸千差万别,因此对这些部件的形状和结构关系的⼏何描述,可以做为⼈脸识别的重要特征。
⼏何特征最早是⽤于⼈脸侧⾯轮廓的描述与识别,⾸先根据侧⾯轮廓曲线确定若⼲显著点,并由这些显著点导出⼀组⽤于识别的特征度量如距离、⾓度等。
Jia 等由正⾯灰度图中线附近的积分投影模拟侧⾯轮廓图是⼀种很有新意的⽅法。
采⽤⼏何特征进⾏正⾯⼈脸识别⼀般是通过提取⼈眼、⼝、⿐等重要特征点的位置和眼睛等重要器官的⼏何形状作为分类特征,但Roder对⼏何特征提取的精确性进⾏了实验性的研究,结果不容乐观。
可变形模板法可以视为⼏何特征⽅法的⼀种改进,其基本思想是 :设计⼀个参数可调的器官模型 (即可变形模板),定义⼀个能量函数,通过调整模型参数使能量函数最⼩化,此时的模型参数即做为该器官的⼏何特征。
这种⽅法思想很好,但是存在两个问题,⼀是能量函数中各种代价的加权系数只能由经验确定,难以推⼴,⼆是能量函数优化过程⼗分耗时,难以实际应⽤。
基于参数的⼈脸表⽰可以实现对⼈脸显著特征的⼀个⾼效描述,但它需要⼤量的前处理和精细的参数选择。
同时,采⽤⼀般⼏何特征只描述了部件的基本形状与结构关系,忽略了局部细微特征,造成部分信息的丢失,更适合于做粗分类,⽽且⽬前已有的特征点检测技术在精确率上还远不能满⾜要求,计算量也较⼤。
现代数字信号处理及其应用论文――KL变换的应用.
Karhunen-Loeve变换的应用摘要:本文对Karhunen-Loeve变换的原理进行了说明,重点分析了K-L变换的性质,结合K-L变换的性质,对K-L变换的具体应用进行了展示。
利用K-L变换在人脸识别、遥感图像特征提取、地震波噪声抑制、数字图像压缩、语音信号增强中的具体利用,深入总结了K-L变换在模式识别、噪声抑制和数据压缩领域的重要性。
关键字: Karhunen-Loeve变换 K-L变换 K-L展开1、Karhunen-Loeve变换定义1.1Karhunen-Loeve变换的提出在模式识别和图像处理等现实问题中,需要解决的一个主要的问题就是降维,通常我们选择的特征彼此相关,而在识别这些特征时,数据量大且效率低下。
如果我们能减少特征的数量,即减少特征空间的维数,那么我们将以更少的存储和计算复杂度获得更好的准确性。
于是我们需要一种合理的综合性方法,使得原本相关的特征转化为彼此不相关,并在特征量的个数减少的同时,尽量不损失或者稍损失原特征中所包含的信息。
Karhunen-Loeve变换也常称为主成分变换(PCA或霍特林变换,就可以简化大维数的数据集合,而且它的协方差矩阵除对角线以外的元素都是零,消除了数据之间的相关性。
所以可以用于信息压缩、图像处理、模式识别等应用中。
Karhunen-Loeve变换,是以矢量信号X的协方差矩阵Ф的归一化正交特征矢量q 所构成的正交矩阵Q,来对该矢量信号X做正交变换Y=QX,则称此变换为K-L 变换(K-LT或KLT),K-LT是Karhuner-Loeve Transform的简称,有的文献资料也写作KLT。
可见,要实现KLT,首先要从信号求出其协方差矩阵Ф,再由Ф求出正交矩阵Q。
Ф的求法与自相关矩阵求法类似。
1.2Karhunen-Loeve展开及其性质设零均值平稳随机过程u(n构成的M维随机向量为u(n,相应的相关矩阵为R,则向量u(n可以表示为R的归一化特征向量的线性组合,即,此式称为u(n的Karhunen-Loeve展开式,展开式的系数是由内积定义的随机变量,且有,。
人脸识别的主要方法
1.1 人脸识别的主要方法目前,国内外人脸识别的方法很多,并且不断有新的研究成果出现。
人脸识别的方法根据研究角度的不同,有不同的分类方法。
根据输入图像中人脸的角度不同,可以分为正面,侧面,倾斜的人脸图像的识别;根据图像来源的不同,可分为静态和动态的人脸识别;根据输入图像的特点,又可分为灰度图像和彩色图像的人脸识别等等。
本文重点研究基于正面的、静态的灰度图像的识别方法。
对于静态的人脸识别方法从总体上看可以分为三大类:一是基于统计的识别方法,主要包括特征脸(Eigenface)方法和隐马尔科夫模型(Hidden Markov Model 简称HMM)方法等;二是基于连接机制的识别方法,包括人工神经网路(Artifical Neural Network 简称ANN)方法和弹性图匹配(Elastic Bunch Graph Matching 简称EBGM)方法等;三是一些其他的综合方法及处理非二维灰度图像的方法。
下面分别进行介绍。
1.1.1 基于特征脸的方法特征脸方法[5],又称为主成份分析法(Principal Component Analysis 简称PCA),它是20 世纪90 年代初期由Turk 和Pentland 提出的,是一种经典的算法。
它根据图像的统计特征进行正交变换(即K-L 变换),以消除原有向量各个分量之间的相关性。
变换得到对应特征值依次递减的特征向量,即特征脸。
特征脸方法的基本思想是将图像经过K-L 变换后由高维向量转换为低维向量,并形成低维线性向量空间,利用人脸投影到这个低维空间所得到的投影系数作为识别的特征矢量。
这样,就产生了一个由“特征脸”矢量张成的子空间,称为“人脸子空间”或“特征子空间”,每一幅人脸图像向其投影都可以获得一组坐标系数,这组坐标系数表明了人脸在子空间中的位置,因此利用特征脸方法可以重建和识别人脸。
通过人脸向量向特征子空间作投影得到的向量称之为主分量或特征主分量。
基于遗传算法的支持向量机人脸识别技术
构风险最小原理基础上的,结构简 单、学习性能优越 ,可防止过学习现象和 陷入局部最小 问题,这些特
点是传统神经 网络学习算法所 不及 的,它 已经成 为机器学 习领域 的研 究热 点.人脸识别过程如图 1所 示 ,它有两个关键环节:特征提取和 识别,人脸检测与归一化主要是在含有人脸 的图像 中准确找到人
愉
测
‘ 』
l
— — ●
化
象 素的灰度值 ,而孤立地 改变某 个象素的灰度值是没 有意义的.而使用 K L变换后 ,每个描述量都有其各 自的作用 ,因此通过改变这些参数的值就可实现对 -
模型的有效描述.首先在 已建立的人脸 图像库中,利用 K L变换确定相应的人脸基图像,再用这些基 图 .
人脸 识别方法的实验结果表 明,该方法所 得参数 确定的 S M 具有较优 的识别率 ,其整体性 能优 良. V
关 键 词 :支 持向量机 ;核 函数 ;遗传算法 ;人脸识别 中图分类号 :T 3 1 P9 . 4
收 稿 日 期 :2 0 —1 —1 05 2 2
文献标识码 :A
文章编号 : 17 "2 5 2 0 )0 一O 3 —0 6 1 2 0( 0 6 5 O 0 3
脸 ,并将人脸进行预处理转化成适合计算机处理 的格式 ;特征提取是对 归一化 后的人脸提 取出主要特
征 ,本文利用 KL变换法提取出 效的人脸 像特征,最后用基 于遗传算法的 S M 方法对人脸的特征差 . V
_
另 进行 识 另 . 0 0
^ 、
腑
1 基于 KL变换 的有效特征提取 -
2 基于
目前应用于人脸识别的方法主要有:R we ol y等人提出的基于神经 网络的方法、Fse 判别法和基于 i r h
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于K-L 变换的人脸识别一、基本要求从网上下载人脸图像,构建人脸训练数据库和测试数据库,采用K-L 变换进行特征脸提取,并实现人脸识别。
通过K-L 变换在人脸识别中的应用,加深对所学内容的理解和感性认识。
1、或者从网上下载其它数据库,编程实现K-L 变换。
2、课堂报告、并提交实验报告及相应程序。
二、实验原理1、K-L 变换:就是以样本特征向量在特征空间分布为原始数据,通过变换,找 到维数较少的组合特征,达到降维的目的。
K-L 变换是一种正交变换,即将一个向量X ,在某一种坐标系统中的描述,转换成用另一种基向量组成的坐标系表示。
这组基向量是正交的,其中每个坐标基向量用j u 表示,∞=,2,1 ,j ,因此,一个向量X 可表示成 ∑∞==1j jjuc X如果我们将由上式表示的无限多维基向量坐标系统改成有限维坐 标系近似,即∑=∧=dj j j u c X 1表示X 的近似值或估计量,我们希望在同样维数条件下,使向量X 的估计量误差最小。
确切地说是使所引起的均方误差:)]ˆ()ˆ[(X X XX E T --=ξ 为最小。
K-L 变换可以实现这个目的。
因为⎩⎨⎧≠==ij ij u u i Tj 01将 ∑∞+=∧=-1d j jjuc X X 带入到)]ˆ()ˆ[(X X XX E T --=ξ中可得到 ][12∑∞==j jcE ξ容易看到 Xu c Tj j =因此 ][1∑∞+=d j TT j u XX u E ξ 由于j u 是确定性向量,因此上式可改写为 []∑∞+==1d j j TT j u XX E u ξ 令 []TXX E =ψ则 ∑∞+==1d j j T j u u ψξ用拉格朗日乘子法,可以求出在满足正交条件下,ξ取极值的坐标系统,即用函数∑∑∞+=∞+=--=11]1[d j j Tj j d j j Tjj u u u u u g λψ)( 对j u ,∞+=,,1 d j 求导数,因此有∞+==,,1,0- d j u I j j )(λψ 我们令0=d ,从而可得到以下的结论:以矩阵ψ的本征向量座位坐标轴来展开X 时,其截断均方误差具有极值性质,且当取d 个d j u j ,,2,1 =,来逼近X 时,其均方误差 ∑∞+==1d j jλξ式中j λ是矩阵ψ的相应本征值。
可以证明,当取d 个与矩阵ψ的d 个最大本征值对应的本征向量来展开X时,其截断均方误差和在所有其他正交坐标系情况下用d 个坐标展开X 时所引起的均方误差相比为最小。
这d 个本征向量所组成的正交坐标系称作X 所在的D 维空间的d 维K-L 变换坐标系,在坐标系上的展开系数向量称为X 的变换。
本实验所采用的人物脸部灰度图像默认已经过归一化,所以对于图像的归一化,我们不予处理。
可以以样本集的总体散布矩阵为产生矩阵,即:∑-=--=∑10))((1M i T i ix xMμμ其中:i x 表示第i 个训练样本图像 ,μ表示训练样本集的平均图像向量,M 为训练样本的总数。
2、奇异值分解:为了求22*N N 维∑矩阵的特征值和正交归一的特征向量,直接计算是困难的。
为此引入了SVD 定理:设A 是一秩为r 的n*r 维矩阵,则存在两个正交矩阵: I U U u u u U T rn r =ℜ∈=-*110],,,[I V V v v v V T rr r =ℜ∈=-*110],,,[以及对角阵rr r diag *110],,,[ℜ∈=Λ-λλλ ,且 110-≥≥≥r λλλ满足 TV U A 21Λ=其中:)1,,1,0(-=r i i λ为矩阵T AA 和A A T 的非零特征值,i u 和i v 分别为T AA 和 A A T 对应于i λ的特征向量。
上述分解称为矩阵的奇异值分解,简称SVD ,iλ为A 的奇异值。
又有推论 21Λ=AV U 易知1,,2,1,01-==M i Xv u iii λ这就是图像的特征向量。
它是通过计算较低为矩阵R 的特征值与特征向量而间接求出的。
3、特征向量的选取:我们总共的得到M 个特征向量。
虽然 M 比 2N 小很多。
但通常情况下,仍然会很大。
而事实上,根据应用的需要,并非所有的都有很大的保留意义。
考虑到使用变换作为对人脸图像的压缩手段,可以选取最大的前k 个特征向量,使得αλλ≥∑∑-==100M i iki i上式中,可以选取%99=α。
这说明样本及在前个轴上能量占整个能量的99%以上。
4、产生矩阵的选取: 在考虑到训练样本的类别信息,对人脸识别会有更大意义,以及节省计算量的前提下,我们采用训练样本集的类间散布矩阵作为K-L 变换的产生矩阵,即: ∑-=--=1))()((P i T i iib P S μμμμω其中:i μ为训练样本集中第i 个人的平均图像向量,P 为训练样本集中的总人数,本实验()i P ω不予考虑。
显然,与总体散布矩阵∑相比,特征脸的个数由M 降低到P ,因而在计算量上要减少很多。
对于每个人的训练样本的平均图像向量)1,,1,0(-==P i i μ,向由“特征脸”图像向量所展成的P 子空间上投影,其坐标系数向量就是其K-L 变换的展开系数向量,即: 1,,1,0,-==P i U c i T i μ可知T TV X U C 21∑== 其中:],,,[110-=P c c c C ,i c 为训练样本集中第i 个人的特征系数向量。
三、实验过程1、对于选取每个人n 幅脸图像作为训练样本集的正确率第一步: 搜集人脸图像,建立人脸库。
共40个人,每人9幅。
第二步:选定产生矩阵∑=--=70))()((i T i i i b P S μμμμω,分别选取每个人n(n=1,2,...,7)幅脸图像作为训练样本集,进行K-L 变换,利用奇异值 分解计算出相应的特征向量。
确定%99=α,计算选取出“特征脸” 向量并计算出每个人训练样本的平均图像向量)7,,1,0( =i iμ在由“特征脸”图像向量所张成的子空间上坐标系数向量。
第三步:选取所有人第8、9两张脸图像进行测试,分别计算出它们在特征脸 空间中的坐标系数向量,即特征系数向量。
第四步:分别计算测试样本特征系数向量与每个人训练样本特征系数向量的欧氏 距离,选取距离最小的样本类别作为识别结果,并与测试样本本身所属 于的类别比较,判断识别的正误。
第五步:统计正确的次数,计算正确率。
2、选取不同的α值计算测试样本的识别正确率第一步:产生矩阵依旧为 ∑=--=70))()((i T i i i b P S μμμμω。
确定训练样本集为所有人第1至7幅脸图像,测试样本集还是所有人第8、9张脸图像。
第二步:利用上面实验的部分结果,分别取α为不同值,计算并选取出对应的“特 征脸”向量。
第三步:对于不同的α值,计算出测试样本集的特征系数向量。
第四步:计算测试样本集特征系数向量与样本集中每个人的特征系数向量的欧 氏距离,选取距离最小的样本类别作为识别结果,并与测试样本本身所 属于的类别比较,判断识别的正误。
第五步:统计α取不同值的识别正确率,比较。
3、显示识别图像和特征脸图像选取训练样本集为所有人第1至7幅脸图像,测试样本集为随机选取的5个不同人脸图像,取%99=α,利用上面两个实验部分结果进行识别,并显示结果和部分特征脸图像。
四、实验结果:表1 以类间散布矩阵为产生矩阵的K-L 变换进行人脸识别正确率(%99=α) 训练集中每个人图片数 1 2 3 4 5 6 7 识别正确率 67.5% 78.75% 76.25% 80% 86.25% 90% 90%表2 不同的α值对人脸识别正确率的影响(训练集中每个人图片数为7)α值对识别正确率的影响α值50% 55% 65% 70% 75% 80% 85% 95% 99% 识别正确率 47.5% 62.5% 63.75% 70% 78.75% 88.75% 88.75% 90%90%部分识别人脸图像部分特征脸图像四、实验结论1、由表1可知测试样本集的识别正确率随着训练样本中的每个人的人脸图片数 的增加而增大(%99=α)。
2、由表2可知测试样本集的识别正确率在一定范围内随着α值的增大而增大(训 练集中每个人图片数为7)五、实验心得这个实验比较有意思,与生活中的某些应用也有联系,通过做这个作业,更加认识到理论应用于实际的作用,同时对课本这部分内容也有了更全面的了解。
六、附录(实验代码)clcclear all for i=1:40for j=1:9 %一共有40人的人脸图片,每人读取9张 if i<10strname=strcat('C:\Users\yeqi\Desktop\1\orl_00',num2str(i),'_00',num2str(j),'.bmp');%生成图片文件的路径 elsestrname=strcat('C:\Users\yeqi\Desktop\1\orl_0',num2str(i),'_00',n um2str(j),'.bmp');%生成图片文件的路径 endfid=imread(strname); [row,clo]=size(fid);face(:,9*(i-1)+j)=reshape(fid,[row*clo,1]); end endfu1=7; %训练样本选取每个人fu1张图像Total=40; %定义变量,标定了待识别的人数 X=zeros(row*clo,Total);%初始化变量X ,训练样本中元素由每个人的平均图像向量组成for i=1:TotalYangben=face(:,9*(i-1)+1: 9*(i-1)+fu1);%把样本集face 中的每个人的前fu 张图片组成训练集X(:,i)=mean(Yangben,2);%求得每个人的平均图像向量 endmeanvetor=mean(X,2);%求得总体的平均图像向量 X1=X;for i=1:TotalX(:,i)=X(:,i)-meanvetor;%求得训练集,由每个人平均图像向量减去总体平均图像向量得到endpmetrix=X'*X; %求X'*X,应用的原理是奇异值分解的推论[vet vetvalue]=eig(pmetrix);%求特征值和特征向量vet=fliplr(vet); %对特征值由大到小vetvalue=fliplr(vetvalue);%对特征值由大到小排列,相应的特征向量也进行变换for jj1=1:40U(:,jj1)=(1/sqrt(vetvalue(41-jj1,jj1)))*X*vet(:,jj1);%应用奇异值分解的推论得到正交化的特征脸endCvetvalue=sum(vetvalue);Ctotal=sum(Cvetvalue,2);a=0.99; %选取能量比for i=1:Totalparttotal=sum(Cvetvalue(1,1:i));ratio=parttotal/Ctotal;if ratio>a %选择最大的前i个特征值,由这些值的和在总特征值中占得比例大于a break;endendA= U(:,1:i)';%选择前i个特征值对应的特征向量组成特征脸y= A*X1;%求训练集中各图像在特征脸空间中的坐标bianshi=zeros(6,Total);for i=1:Totalface=double(face);for j=8:9 %每个人图像第8、9张做为待识别的图像ceshi=face(:,(i-1)*9+j);zbceshi=A*ceshi; %求得其在特征脸空间的坐标for k=1:Totalwucha=zbceshi-y(:,k);wuchametrix(:,k)=wucha'*wucha; %计算该坐标与训练集中各图像坐标之间的距离end[h,I]=min(wuchametrix); %最近邻法进行人脸识别if I==i %统计每个待辨识图像是否成功识别,成功为1,失败为0bianshi(j-7,i)=1;elsebianshi(j-7,i)=0;endendendgg=sum(bianshi);gg=sum(gg,2);chenggongratio=gg/(2*Total) %用识别正确的图像个数除以总图像个数得到识别正确率for n1=1:20 %显示前20张特征脸A1=U(1:row*clo/3,n1);[min1,num1]=min(A1);[max1,num2]=max(A1);A1=(1/(max1-min1))*A1;B=reshape(A1,row,clo/3);B1=mat2gray(B);subplot(4,5,n1),imshow(B)hold onend。