收藏 分销(赏)

第三篇第章基于PCA方法的人脸识别系统建模与实现.doc

上传人:精**** 文档编号:2467907 上传时间:2024-05-30 格式:DOC 页数:21 大小:1.04MB
下载 相关 举报
第三篇第章基于PCA方法的人脸识别系统建模与实现.doc_第1页
第1页 / 共21页
第三篇第章基于PCA方法的人脸识别系统建模与实现.doc_第2页
第2页 / 共21页
第三篇第章基于PCA方法的人脸识别系统建模与实现.doc_第3页
第3页 / 共21页
第三篇第章基于PCA方法的人脸识别系统建模与实现.doc_第4页
第4页 / 共21页
第三篇第章基于PCA方法的人脸识别系统建模与实现.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、个人收集整理 勿做商业用途第3章基于PCA方法的人脸识别系统建模与实现1项目概述人脸识别系统以人脸识别技术为核心,是一项新兴的生物识别技术,是当今国际科技领域攻关的高精尖技术.它广泛采用区域特征分析算法,融合了计算机图像处理技术与生物统计学原理于一体,利用图像处理技术从人脸图像中提取人像特征点,利用生物统计学的原理进行分析建立数学模型,具有广阔的发展前景。本项目通过一个简单的实例和主成分分析(principal components analysis,PCA)技术来理解人脸识别的整个流程,逐步掌握化复杂问题为简单的模块来解决实际问题,并深入浅出的领会PCA原理。2人脸识别系统2.1系统框图本项

2、目设计一套实时人脸识别的系统,其中包括人脸提取和人脸识别两个子系统,如图31所示。图31 人脸识别系统人脸提取子系统(如图32所示)是利用肤色识别分割找出可能的肤色区域,然后进行感兴趣区域标定初步定位人脸,再以阈值控制得到人脸的主要部分,最后将提取的人脸经过统一处理后传给人脸识别部分和构建特征库.人脸识别子系统使用改进的PCA方法,在提高识别效率的基础上,求出一个特征脸空间后,将整张人脸投影到特征脸空间中,然后通过降维,秩的求取等运算构建出人脸重向量特征库,再以欧氏距离的结果对人脸进行判断、识别.图32 人脸提取子系统2.2PCA理论主成分分析(principal components ana

3、lysis,PCA)又称主分量分析,它是一种对数据进行分析的技术,最重要的应用是对原有数据进行简化。正如它的名字:主元分析,这种方法可以有效的找出数据中最“主要”的元素和结构,去除噪音和冗余,将原有的复杂数据降维,揭示隐藏在复杂数据背后的简单结构。它的优点是简单,而且无参数限制,可以方便的应用与各个场合。因此应用极其广泛,从神经科学到计算机图形学都有它的用武之地。被誉为应用线形代数最具价值的结果之一。2。2.1弹簧振子模型我们将从一个简单的例子来说明PCA应用的场合以及想法的由来,从而进行一个比较直观的解释,然后加入数学的严格推导,引入线形代数,进行问题的求解。随后将揭示PCA与SVD(Sin

4、gular Value Decomposition)之间的联系以及如何将之应用于真实世界,分析PCA理论模型的假设条件以及针对这些条件可能进行的改进,最后将之应用于人脸识别中。在实验科学中我们常遇到的情况是,使用大量的变量代表可能变化的因素,例如频率、电压、速度等等。但是由于实验环境和观测手段的限制,实验数据往往变得极其的复杂、混乱和冗余的。如何对数据进行分析,取得隐藏在数据背后的变量关系,是一个很困难的问题.在神经科学、电子信息学科中,假设的变量个数可能非常之多,但是真正的影响因素以及它们之间的关系可能又是非常之简单。实验科学的精髓就是从大量混杂的实验数据中统计挖掘出隐藏在背后的理论规律,再

5、用建立起来的理论模型去指导生产实践从而大大提高生产效率.下面的模型取自一个物理学中的实验.它看上去比较简单,但足以说明问题。如图33所示,这是一个理想弹簧运动规律的测定实验。假设一根无质量无摩擦的弹簧上连接一个球并水平放置于光滑平面上,从平衡位置沿轴拉开一定的距离然后释放。图33简谐运动模型对一个具有先验知识的实验者来说,实验结果完全预知且实验也非常容易的执行。球的运动只会在轴向上发生,只需要记录下轴上的运动序列并加以分析即可。但是,在真实世界中,对于第一次实验的探索者来说(这也是实验科学中最常遇到的一种情况),是不可能进行这样的假设。那么,一般来说,必须记录球的三维位置。这一点可以通过在不同

6、角度放置三个摄像机实现(如图1所示),假设以200Hz的频率拍摄画面,就可以得到球在空间中的运动序列。但是,由于实验的限制,这三台摄像机的角度可能比较任意,并不是正交的。事实上,在真实世界中也并没有所谓的轴,每个摄像机都记录下有自己空间坐标系的一幅二维图像,因此球的空间位置是由一组二维坐标记录.经过实验,系统产生了球的位置序列.怎样从这些数据中得到球是沿着某个轴运动的且符合简谐运动规律呢?怎样将实验数据中的冗余变量剔除,化归到这个潜在的轴上呢?这是一个真实的实验场景,收集数据时引入的噪音是必须面对的因素.在这个实验中噪音可能来自空气、摩擦、摄像机的误差以及非理想化的弹簧等等。噪音使数据变得混乱

7、,掩盖了变量间的真实关系。如何去除噪音是实验者每天所要面对的巨大考验。上面提出的两个问题就是PCA方法的目标。PCA方法是解决此类问题的一个有力的武器。下文将结合以上的例子提出解决方案,逐步叙述PCA方法的思想和求解过程。2.2。2线形代数从线形代数的角度来看,PCA的目标就是使用另一组基去重新描述得到的数据空间。而新的基要能尽量揭示原数据间的关系。在这个例子中,沿着轴上的运动是最重要的.这个维度即最重要的“主元”.PCA的目标就是找到这样的“主元”,最大程度的去除冗余和噪音的干扰。2。2。3标准正交基为了引入推导,需要将上文的数据进行明确的定义。在上面描述的实验过程中,在每一个采样时间点上,

8、每个摄像机记录了一组二维坐标,综合三台摄像机数据,在每一个时间点上得到的位置数据对应于一个六维列向量。如果以的频率拍摄10分钟,将得到个这样的向量数据。请注意,每个摄像机的值的参考点是不同的,如与不表示他们在沿x轴上在同一位置。抽象一点来说,每一个采样点数据都是在维向量空间(此例中)内的一个向量,这里的是牵涉的变量个数.由线形代数知识可知在维向量空间中的每一个向量都是一组正交基的线形组合。最普通的一组正交基是标准正交基,实验采样的结果通常可以看作是在标准正交基下表示的。举例来说,上例中每个摄像机记录的二维数据坐标为,这样的基便是。那为什么不取正交基或是其他任意的正交基呢?原因是这样的标准正交基

9、反映了人们常用的一种数据采集方式。假设采集数据点是(在基下),一般并不会记录(在基下),因为一般的观测者都是习惯于取摄像机的屏幕坐标,即向上和向右的方向作为观测的基准.也就是说,标准正交基表现了人们对数据观测的一般方式。在线形代数中,这组标准正交基表示为行列向量线形无关的单位矩阵.2。2.4基变换从更严格的数学定义上来说,PCA回答的问题是:如何寻找到另一组正交基,它们是标准正交基的线性组合,但能最好的表示数据集?这里提到了PCA方法的一个最关键的假设:线性。这是一个非常强的假设条件。它使问题得到了很大程度的简化:1)数据被限制在一个向量空间中,能被一组正交基表示;2)隐含的假设了数据的连续性

10、。这样一来数据就可以被表示为各种基的线性组合。令表示原数据集.是一个的矩阵,它的每一个列向量都表示一个时间采样点上的数据,在上面的例子中,。表示变换以后的新的数据集表示。是他们之间一个的线性转换方阵。(31)有如下定义:表示的行向量。表示的列向量(或者)。表示的列向量。公式(31)表示不同基之间的转换,在线性代数中,它有如下的含义:(1)是从到的转换矩阵,几何上来说,对进行旋转和拉伸得到;(2)的行向量是一组新的基,而是原数据在这组新的基表示下得到的重新表示。下面是对最后一个含义的显式说明:,(32)注意到的列向量:(33)可见向量中的每一元素是中的对应行与向量的点积,也就是相当于第时间点上数

11、据向量在对应向量上的投影,而在的所有行向量上的投影就构成新的数据向量,所以的行向量事实上就是一组新的基.它对原数据进行重新表示。在一些文献中,将数据成为“源”,而将变换后的称为“信号”。这是由于变换后的数据更能体现信号成分的原因。2.2.5问题在线性的假设条件下,问题转化为寻找一组变换后的基,也就是的行向量,这些向量就是PCA中所谓的“主元.问题转化为如下的形式:(1)怎样才能最好的表示原数据?(2)的基怎样选择才是最好的?解决问题的关键是如何体现数据的特征.那么什么是数据的特征,如何体现呢?2。2。6方差和目标“最好的表示”是什么意思呢?下面我们将给出一个较为直观的解释,并增加一些额外的假设

12、条件。在线性系统中,所谓的“混乱数据”通常包含以下三种成分:噪声、旋转(线性失真或扭曲)以及冗余.下面将对这三种成分做出数学上的描述并针对目标作出分析。2。2。7噪声与旋转噪声对数据的影响是巨大的,如果不能对噪声进行区分,就不可能抽取数据中有用的信息。噪声的度量有多种方式,最常见的定义是信噪比(signal-tonoise ratio)或方差:(34) 比较大的信噪比表示数据的准确度高,而信噪比低则说明数据中的噪声成分大。那么怎样区分混杂数据中哪些是信号,哪些是噪音呢?这里假设真正的信号总是变化较大,而噪声(由空气、摩擦、摄像机的误差以及非理想化的弹簧等引入的)的变化总是较小的。事实上这也是一

13、种标准的去噪准则。而变化的大小由方差来描述(这里的定义是个一致估计量)。(35)它表示了采样点在平均值两侧的分布,对应于图34(a)中采样点云的“胖瘦。显然方差较大的方向,也就是较“宽”(“胖”)的分布,表示采样点的主要分布趋势,是主信号或主要分量(如图34(a)中的长实线方向);而方差较小的分布则被认为是噪声或次要分量(如图35(a)中的短实线方向)。(a)摄像机的采样数据(黑线是任意一组正交基)(b)对的基向量进行旋转使SNR最大图35方差与SNR由于实验前对球的运动无任何先验知识,故对摄像机的摆放也无任何指导。图35(a)中只是摄像机采集数据时的所参考的标准正交基,而采集数据的真正分布由

14、于摄像机的摆放、摄像机的线性扭曲与拍摄时的抖动等引起了旋转.若要在坐标系下区分信号和噪声,则是非常的因难。在二维空间中,变换矩阵只有两个二维向量。通过旋转基向量P, 使得数据在沿P方向取得最大的方差,对上述实验来说沿P的正交方向上方差会最小,因为运动理论上是只存在于一条直线上,所以偏离直线的分布都属于噪声。在新的正交基(如图35(a)的长短黑实线,假设为)下,则认为采样点云在长线方向上分布的方差是,而在短线方向上分布的方差是,此时也达到最大.此时的描述的就是采样点云在某对正交方向上的概率分布的比值.那么,最大限度的揭示原数据的结构和关系,找出某条潜在的最优的轴等价于寻找一个正交基P,使得信噪比

15、尽可能最大。容易看出,本例中潜在的轴就是图上的较长黑线方向.那么怎样寻找这样一组方向呢?直接的想法是对基向量进行旋转。如图35(b)所示了随着这组基的转动以及方差的变化情况。对应于最大值的一组基,就是最优的“主元”方向。利用数学进行求取这组基的推导之前,再介绍另一个影响因素.本文为互联网收集,请勿用作商业用途文档为个人收集整理,来源于网络2。2。8冗余有时在实验中引入了一些不必要的变量.可能有两种情况:(1)该变量对结果没有影响,完全是多余的;(2)该变量可以用其它变量表示,从而造成数据冗余。下面对这样的冗余情况进行分析和分类.图36可能冗余数据的频谱图表示(最佳拟合线用虚线表示)如图36是观

16、测变量和的数据集的分布图,比如本案例中的变量,它揭示了这两个观测变量之间的关系。(a)图所示的情况是低冗余的,从统计学上说,这两个观测变量是相互独立的,它们之间的信息没有冗余.而相反的极端情况如(c),和是高度相关的(或线性相关的),完全可以用表示(如),也即已知后,就完全确定。一般来说,这种情况发生可能是因为摄像机A和摄像机B放置的位置太近或是数据被重复记录了,也可能是由于实验设计的不合理所造成的.那么对于观测者而言,这个变量的观测数据就是完全冗余的,应当去除,只用一个变量就可以表示了.这也就是PCA中“降维”思想的本源.2。2。9协方差矩阵对于上面二维的情况下可以通过简单的线性拟合的方法来

17、判断各观测变量之间是否出现冗余的情况。同理对三维变量,若记录的数据均匀分布在一个球体内,则也认为三个变量是完全独立的,若分布在一个曲面上,则有一个变量是冗余的(),若分布在一根直线上,则有两个变量是多余的。而对于更复杂的多变量(三维以上)情况,则需要借助协方差来进行衡量和判断,它的一致估计定义如下:(36),分别表示了两个观测变量的n个记录数据,,是每个观测变量的均值。在统计学中,由协方差的性质可以得到:(1),且当观测变量,不相关时,。(2)当=时,。协方差的向量表示:.那么,对于具有个观测变量,每个变量采样个时间点的数据矩阵来说,这个变量之间的互相关性可定义如下:将每个观测变量的个值写为行

18、向量,可以得到一个的矩阵。(37)则互相关矩阵如下:(请注意,互相关与协方差之间只相差一个常数,两者具有完全相同的物理意义:,协方差矩阵是除去均值的互相关矩阵,正因为如此,所以下文将两者的名字不加与区别)(38)容易发现协方差矩阵性质如下:(1)是一个的平方对称矩阵.(2)对角线上的元素是对应观测变量的方差,反映了该变量数据采样点的噪音程度。非对角线上的元素是对应的观测变量之间的协方差,反映了观测变量间的冗余程度。(39)协方差矩阵包含了所有观测变量之间的相关性度量,在对角线上的元素越大,表明信号越强,变量的重要性越高或主元,元素越小则表明可能是存在的噪音或是次要变量。一般情况下,初始数据的协

19、方差矩阵总是不太好的,表现为信噪比不高(由于实验中引入了噪声)且变量间相关度大(实验者对实际模型的未知性)。PCA的目标就是通过基变换对协方差矩阵进行优化2.2.10协方差矩阵的对角化协方差矩阵优化的原则是:(1)最小化变量冗余,对应于协方差矩阵的非对角元素要尽量小或为零;(2)最大化信号,对应于要使协方差矩阵的对角线上的元素尽可能的大。因为协方差矩阵的每一项都是正值,最小值为0,所以优化的目标矩阵的非对角元素应该都是0,对应于冗余最小,故目标矩阵应该是个对角阵,即只有对角线上的元素可能是非零值。同时,PCA假设所对应的一组变换基必须是标准正交的,而优化的目标矩阵对角线上的元素越大,就说明信号

20、的成分越大,换句话就是对应于越重要的“主元。对协方差矩阵进行对角化的方法有很多。根据上面的分析,最简单最直接的算法就是在多维空间内进行搜索,和图35(a)的例子中旋转的方法类似:(1)在维空间中进行遍历,搜索到一个向量,使得个观测向量在方向上方差最大。(2)在与垂直的向量空间中进行遍历,找出次大的方差对应的向量,记作。(3)对以上过程循环,直到找出全部的个向量。它们生成的顺序也就是“主元的排序。这个理论上成立的算法说明了PCA的主要思想和过程。在这中间,牵涉到两个重要的特性:(1)转换基是一组标准正交基。这给PCA的求解带来了巨大的好处,它可以运用线性代数的相关理论进行快速有效的分解。(2)在

21、PCA的过程中,可以同时得到新的基向量所对应的“主元排序”,利用这个重要性排序可以方便的对数据进行取舍、简化处理或压缩。本文为互联网收集,请勿用作商业用途文档为个人收集整理,来源于网络2.2.11PCA的假设和局限性PCA模型中存在诸多的假设条件,决定了它存在一定的限制,在有些场合可能会不利或甚至失效。对于学习和掌握PCA来说,理解这些内容是非常重要的,同时也有利于理解基于改进这些限制条件的PCA的一些扩展算法.PCA的假设条件包括:(1)线形性假设。如同弹簧运动的例子,PCA的内部模型是连续的线性空间。这也就决定了它能进行的主元分析之间的关系也是线性的。现在比较流行的kernel-PCA的一

22、类方法就是使用非线性的权值对原有PCA技术的拓展.(2)使用均值和方差进行充分统计.使用均值和方差二阶统计量对概率分布模型进行充分的描述只限于指数型概率分布模型(例如高斯分布),也就是说,如果我们考察的数据的概率分布并不满足指数型概率分布,那么PCA将会失效。在这种模型下,不能使用方差和协方差来很好的描述噪音和冗余,对优化之后的协方差矩阵并不能得到很合适的结果。事实上,去除冗余最基础的方程是:,其中代表概率分布的密度函数。基于这个方程进行冗余去除的方法被称作独立分量分析方法(Independent Component Analysis,ICA)。不过,所幸的是,根据中央极限定理(大量起微小作用

23、的任意分布的独立随机变量之和的分布近似高斯分布),现实生活中所遇到的大部分采样数据的概率分布都是遵从高斯分布的。所以PCA仍然是一个使用于绝大部分领域的稳定且有效的算法。(3)大方差向量具有较大重要性。PCA方法隐含了这样的假设:数据本身具有较高的信噪比,所以具有最高方差的那个向量就可以被看作是主元,而方差较小的则被认为是噪音。(4)主元正交.PCA方法假设主元向量之间都是正交的,从而可以利用线形代数的一系列有效的数学工具进行求解,大大提高了效率和应用的范围。文档为个人收集整理,来源于网络文档为个人收集整理,来源于网络2.2。12PCA求解(特征根分解)在线形代数中,PCA问题可以描述成以下形

24、式:寻找一组正交基组成的矩阵,有,使得是对角阵。则P的行向量(也就是m个正交基)就是数据的主元向量。对进行数学推导:(310)定义,则是一个维的对称方阵。任意一个实对称阵都可以化成形式,其中是一个对角阵,而是个标准正交矩阵,并且是对称阵的特征根所对应的特征向量排成的矩阵(请注意:对角阵的第一个元素对应特征矩阵的第一列,第二个对角元素对应的特征向量构成的第二列,依次排列下去)。对称阵有个特征向量,其中是矩阵的秩.如果,则为退化阵。此时分解出的特征向量不能覆盖整个维空间,只需要在保证基的正交性的前提下,在剩余的空间中任意取得维正交向量填充的空格即可。它们将不对结果造成影响.因为此时对应于这些特征向

25、量的特征值,也就是方差值为零。求出特征向量矩阵后我们取,则,由线形代数可知标准正交矩阵有性质,从而有(311)可知此时的就是我们需要求得变换基,至此我们可以得到PCA的结果:(1)的主元即是的特征向量,也就是矩阵的行向量.(2)矩阵对角线上第i个元素是数据在方向的方差.我们可以得到PCA求解的一般步骤:(1)采集数据形成的矩阵。为观测变量个数,为采样点个数。(2)在每个观测变量(矩阵行向量)上减去该观测变量的平均值得到去均值的矩阵。(3)对进行特征分解,求取特征向量以及所对应的特征根并按其绝对值大到小排序。有了上述基础,我们再简约回顾一下前面的弹簧振子的实验数据处理问题:在对66维矩阵对角化后

26、,将会只有第一个特征根很大,其余特征根将很小或接近零(将6维降到1维,去除5个多余的冗余变量).在这个由新的正交基张成的空间坐标系中,最大特征根所对应的特征向量(即的第一列)将朝向小球真实运动的方向(在这个方向上数据有最大的方差和SNR,去除了实验噪声和系统线性扭曲的影响).2。3PCA在计算机视觉领域的应用PCA方法是一个具有很高普适性的方法,被广泛应用于多个领域。这里要特别介绍的是它在计算机视觉领域的应用,包括如何对图像进行处理以及在人脸识别方面的特别作用.2.3.1数据表示如果要将PCA方法应用于视觉领域,最基本的问题就是图像的表达。如果是一幅大小的图像,它的数据将被表达为一个维的向量:

27、,在这里图像的结构将被打乱,每一个像素点被看作是一维,最直接的方法就是将图像的像素一行一行的从头到尾相接成一个一维向量。2.3.2模式识别假设数据源是20幅的图像序列,每幅图像都是大小,那么它们都可以表示为一个维的向量.将它们排成一个矩阵:(312)然后对它们进行PCA处理,找出主元。为什么这样做呢?根据人脸识别的例子来说,数据源是20幅不同的人脸图像,PCA方法的实质是寻找这些图像中的相似的维度,因为人脸的结构有极大的相似性(特别是同一个人的人脸图像),则使用PCA方法就可以很容易的提取出人脸的内在结构,也及时所谓“模式”,如果有新的图像需要与原有图像比较,就可以在变换后的主元维度上进行比较

28、,则可衡量新图与原有数据集的相似度如何。对这样的一组人脸图像进行处理,提取其中最重要的主元,即可大致描述人脸的结构信息,称作“特征脸(EigenFace)。这就是人脸识别中的重要方法“特征脸方法”的理论根据.近些年来,基于对一般PCA方法的改进,结合ICA、kernelPCA等方法,在主元分析中加入关于人脸图像的先验知识,则能得到更好的效果。2.3。3图像信息压缩使用PCA方法进行图像压缩,又被称为Hotelling算法,或者Karhunen and Leove(KL)变换。这是视觉领域内图像处理的经典算法之一。具体算法与上述过程相同,使用PCA方法处理一个图像序列,提取其中的主元。然后根据主

29、元的排序去除其中次要的分量,然后变换回原空间,则图像序列因为维数降低得到很大的压缩。例如弹簧振子例中取出最主要的1个维度,则数据就压缩了5/6.但是这种有损的压缩方法同时又保持了其中最“重要的信息,是一种非常重要且有效的算法.3基于PCA的人脸识别方法所有模式识别的问题都分为两步:训练步(分类)和测试步(识别)。所谓训练就是从先验的大量实验数据中统计抽取出某类模式的特征,然后将该特征标注为该模式类,测试就是在实践中,已知一个样本,用相同或不同于训练步的方法抽取它的特征,再将该特征与模式类进行相似度度量并进行识别。特征脸法是一种基于人脸全局特征的识别方法。所谓人脸全局特征是指所提取的特征与整幅人

30、脸图像甚至与整个训练样本集相关,这种特征未必具有明确的物理意义,但却适合于分类.在人脸识别中我们首先需要采集人脸样本库来训练得到人脸模式的特征,在获得人脸图像库的前提下,我们可以进行如下操作步骤.(1)将MN象素的人脸排成一列向量X:DMN, D行1列(用个像素点描述一张人脸存在大量的冗余像素点,这个正是需要降维的)。(2)将同一人脸的n个采样脸,即n个训练样本构成n个列向量(这n个采样脸数据都存在大量的噪声,我们需要去除噪声,从中抽取出真正的能代表人脸本质特征的主元分量,即特征脸),计算矢量均值和去中心化的矩阵。(3)构造协方差矩阵,注意到是个维的半正定实对称方阵,并且它的秩(或非零特征根的

31、个数),对进行对角化分解,根据上述原理,最大特征根对应的特征矢量,抽取了的最主要的成分(低频信号,包含了最主要的信息),依次类推,最小的特征根对应的特征矢量包含了的最不重要成分(高频信息)。需要指出的是特征矩阵是个Dr维的标准正交阵,中最大特征根所对应特征矢量的第一个分量是矩阵中第一行数据的共同特征(即第一个像素点在n次采样中的最主要成分),该特征矢量的第二个分量是矩阵中第二行数据的共同特征(即第二个像素点在n次采样中的最主要成分),依次类推。同理中第二大特征根所对应的特征向量的第一个分量代表了矩阵中第一行数据的第二重要成分(第二次要特征),该特征向量的第二个分量代表了矩阵中第二行数据的第二重

32、要成分(第二次要特征),依次类推。若取kr,即只取k个最大特征根所对应的特征向量(即主要分量)来描述方阵S。(4)再用这k个相互正交的维特征矢量(的前k列)作为一正交基张成一个大小为k的子空间,即=spanE1, E2, , Ek(请注意:空间T的维数仍然是D维,它是维空间中的一个子空间,因为它只有k(kD)个矢量的全部线性组合矢量集构成的空间,即T是一个Dk维的投影矩阵)。最后将每一张人脸D1维矢量投影到这个空间上去,得到一降维(从D维降到了k维)的特征脸 (k1维)。平均n张训练样本的特征脸库最终得到一类人脸的特征脸,存入特征脸样本库。(4)将测试人脸同样投影到空间T上,得到一测试脸的特征

33、,再和样本库中的模式类进行相似度量(如欧氏距离)找出最小距离的模式就是识别的人脸。4程序分析4.1人脸数据库的构建人脸库的采集参考代码如下filelist=dir(*.bmp);FileNum=length(filelist);for j=1:FileNum inFilename = filelist(j)。name; fa=imread(inFilename); fa=fa(:); i=ceil(j/2); if mod(j,2) = 1 k=1; else k=2; end StuFaceLab(:,k,i)=double(fa);endsave StuFaceLab; face lab

34、end, save to FaceLab。mat file4.2基于PCA的人脸识别load(ORLFace.mat); basic informationdim=size(Iv,1);tal=size(Iv,2);class=size(Iv,3);ell=5; ell training sample;ellsample=5; ellsample test sample;t=1e7; Similarity matrix 的参数order=1; dita=1e7; NumTotal=ellclass;lpp=NumTotal-class;lda=class-1;polynomial=1;pca=

35、30;- step 1 KPCA -%Itr=zeros(dim,ell,class); Training sample feature vectorfor classnum=1:class for e=1:ell Itr(:,e,classnum)=Iv(:,e,classnum); % end endIt=zeros(dim,ellsample,class);% Testing sample feature vectorfor classnum=1:class for e=1:ellsample It(:,e,classnum)=Iv(:,e+ell,classnum); end end%

36、 倒入向量 Iv(dim,ell)% 样本类数 classImean=zeros(dim,1);for classnum=1:class for i=1:ell Imean=Imean+Itr(:,i,classnum); endendImean=(1/(ellclass)Imean; 求平均向量Q=zeros(dim,ell*class);for classnum=1:class for num=1:ell Q(:,num+(classnum1)*ell)=Itr(:,num,classnum)Imean(:,1); endendR=zeros(ellclass,ellclass);R=QQ

37、; Rs size is ell * elld=rank(R);d=pca;U,L=eigs(R,d,LM); 求出 R 的eigenvector and eigenvalueWpca=zeros(dim,d);for p=1:d Wpca(:,p)=(1/(sqrt(L(p,p)*Q*U(:,p);end 程序至此得到了线形变换的矩阵 W .Iy=zeros(d,ell,class); % training feature vector % for classnum=1:class for num=1:ell Y=zeros(d,1); Iy(:,num,classnum)=WpcaItr(

38、:,num,classnum); endend -Tldalpp=zeros(d,ellsample,class);for classnum=1:class for num=1:ellsample Tldalpp(:,num,classnum)=Wpca*It(:,num,classnum); endend%-%dimension=size(Tldalpp,1); -算法性能测试-r=zeros(ellsample,ellsample); CorrectMatrix=zeros(1,class*ellsample);Glda=zeros(class,ellsample, class);for

39、cl=1:class for img=1:ellsample -循环体开始-% X=Tldalpp(:,img,cl); X input sample vector %以下为改进算法, 求每个类的 Z1 的平均值 Iymean=zeros(dimension,class); for classnum=1:class % Z1 : the mean of Z1 for i=1:ell Iymean(:,classnum)=Iymean(:,classnum)+Iy(:,i,classnum); end Iymean(:,classnum)=(1/ell)Iymean(:,classnum); e

40、nd -进行匹配% %-此处可以进行修改,利用其他simlarity measure- G2=zeros(1,class); for classnum=1:class G2(1,classnum)=(XIymean(:,classnum)/(norm(X)*norm(Iymean(:,classnum); end Glda(:,img,cl)=G2; Sclass=max(G2); %-得出最后的结果 for classnum=1:class if Sclass=G2(1,classnum) lastresult=classnum; end end lastresult -进行最后结果的评估

41、- if lastresult=cl CorrectMatrix(1,img+(cl1)ellsample)=1;% 如果正确,则置为 1;否则,保持不变为0; end rate=sum(CorrectMatrix)/(class*ellsample); endendrate5总结和讨论5.1PCA技术的降维PCA的一大好处是对数据进行降维的处理.我们可以对新求出的“主元”向量的重要性进行排序,根据需要取前面最重要的部分,将后面的维数省去,可以达到降维从而简化模型或是对数据进行压缩的效果。同时最大程度的保持了原有数据的信息。在弹簧振子的例子中,经过PCA处理后的数据只剩下了一维,也就是弹簧运动

42、的那一维,从而去除了冗余的变量,揭示了实验数据背后的物理原理。5。2无参数化PCA技术的另一个很大的优点是,它是完全无参数限制的。在PCA的计算过程中完全不需要人为的设定参数或是根据任何经验模型对计算过程进行干预,最后的结果只与数据相关,与用户是独立的。但是,这一点同时也可以看作是缺点。如果用户对观测对象有一定的先验知识,掌握了数据的一些特征,却无法通过参数化方法对处理过程进行干预,可能会得不到预期的效果,效率也不高。如图37所示,PCA找出的主元将是。但是这显然不是最优和最简化的主元.之间存在着非线性的关系。根据先验知识可知旋转角是最优的主元。则在这种情况下,PCA就会失效。但是,如果加入了

43、先验知识,对数据进行某种划归或变换(坐标变换),就可以将数据转化为以为线性的空间中。图37黑色点表示采样数据,排列成转盘的形状这类根据先验知识对数据预先进行非线性变换的方法就是kernelPCA,它扩展了PCA能够处理的问题范围,又可以结合一些先验约束,是比较流行的方法。5.3高斯分布限制有时数据的分布并不满足高斯分布。如图38(a)所示,呈明显的十字星状,这种情况下,方差最大的方向并不是最优主元方向。在这种非高斯分布的情况下,PCA方法得出的主元并不是最优的,在寻找主元时不能将方差作为衡量重要性的标准,要根据数据的分布情况选择合适的能描述真实分布的变量,然后根据概率分布式来计算两个向量上数据分布的相关性。等价的,保持主元间的正交假设,寻找的主元同样要使,这一类方法被称为独立主元分解(independent component analysis, ICA),如图38(b)所示。图38原始数据的分布5。4与SVD的联系PCA方法和线形代数中的奇异值分解(singular value decomposition, SVD)方法有内在的联系,一定意义上来说,PCA的解法是SVD的一种变形和弱化。对于的矩阵,通过奇异值分解可以直接得到如下形式:。其中是一个的矩阵,是一个的矩阵,而是的对角阵。形式如下:

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 研究报告 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服