matlab eigenface显示,EigenFace算法详解及Matlab代码20140103.docx

EigenFace算法详解及Matlab代码20140103

PAGE \* MERGEFORMAT 16

EigenFace算法回顾及Matlab代码 基于PCA的EigenFace算法发表自1987年,是第一种可行的人脸辨识算法。虽然已有20余年历史,但仍是人脸辨识算法研究中的经典,新算法都要与之作比较。EigenFace是2D辨识算法,但为了进行3D表情辨识的研究,有必要对这一经典算法进行回顾,SIGGRAPH13的文献Online?Modeling?For?Realtime?Facial?Animation实现表情3D重构的基础是SIGGRAPH99中A?Morphable?Model?for?the?Synthesis?of?3D?Faces提出的Morphable?Facial?Model,而建立这一模型的基础思想仍是PCA,与Eigenface有着天然联系。学习EigenFace应该是研究生时代的事儿了,旧编重拾、开卷有益,并写了Matlab代码附录于后。网上许多实例代码只实现了辨识,略去了一个重要环节:通过分解-重构,将一幅输入人脸照片表示为EigenFace基底的组合,这对于表情辨识及3D人脸模型分析都是很有用的(Online?Modeling?For?Realtime?Facial?Animation中就利用了此思想),附录的Matlab代码做了这一步。

???????????????????????????????????????????训练集合包含20幅图片

?????????????????????????????????????????????????生成20-1=19个特征脸

?????????????? ??最近欧式距离法得出的前三位匹配????????????????????????? ?利用特征脸空间进行人脸重构/~sis26/Eigenface?Tutorial.htm中给出了EigenFace算法Matlab?代码,含有重构过程与比较,但其代码中有一个错误,训练集合照片未减去平均脸,就计算协方差矩阵了具体算法文献教材上都有,捡要点写几句:(1)?将训练集合中的每幅图像拉伸为列向量,并减去所有图像的均值(称之为平均脸),形成N*M矩阵A,其中N为单幅图像像素数,M为图像数目(训练集合容量)。(2)?求协方差矩阵AA'的特征向量,作为正交基底张成人脸空间,好是好但运算量过大,转而求替代矩阵(surrogate)A'A的特征向量,减少计算量(3)?矩阵A'A的秩等于M-1,这是由于减去平均脸所致,故有M-1个非零特征值(正),去除属于0的特征向量,将M-1个属于非零特征值得特征向量(记住须作左乘A的修正)作为EigenFace基底(特征脸),张成人脸空间。(4)?EigenFace基底由M-1个相互正交的向量构成,它们是协方差矩阵AA'的前M-1个最显著的特征向量方向,能量主要集中在这些向量方向上,但要记住虽正交但不完备,故存在重构误差。(5)?为了用EigenFace基底对人脸照片进行正确的分解-重构,需要对所得的基底向量进行规一化修正,因为A'A的特征向量左乘A之后,虽成为AA'的特征向量,但模不为1,需除以自身的模,修正为标准正交向量集合,才能进行投影分解-重构。(6)?训练集合及测试集合中的人脸照片都能利用EigenFace基底较好地实现分解-重构,但训练集合之外的人脸,重构误差变大(7)?EigenFace缺点:1拍摄时光照环境对识别效果(EigenFace基底)影响大??????????????????????????????????2训练集合扩容时,需重构EigenFace基底(8)?为了有效显示EigenFace基底图像(特征脸)需要用imagesc函数

Eigenface算法识别人脸的步骤:This section gives step-by-step instructions along with photos and formulas on how to recognize faces and implemented into Matlab. All the necessary files to complete this tutorial would be provided.StepsThe first step is to obtain a set S with M face images. In our example M = 25 as shown at the beginning of the tutorial. Each image is transformed into a vector of size N and placed

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值