人脸识别.docx

上传人:b****7 文档编号:9796650 上传时间:2023-02-06 格式:DOCX 页数:17 大小:957.91KB
下载 相关 举报
人脸识别.docx_第1页
第1页 / 共17页
人脸识别.docx_第2页
第2页 / 共17页
人脸识别.docx_第3页
第3页 / 共17页
人脸识别.docx_第4页
第4页 / 共17页
人脸识别.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

人脸识别.docx

《人脸识别.docx》由会员分享,可在线阅读,更多相关《人脸识别.docx(17页珍藏版)》请在冰豆网上搜索。

人脸识别.docx

人脸识别

1PCA原理2

2分析3

3实验分析8

3.1LFW人脸数据库实验分析8

3.1.1LFW人脸数据库数据描述8

3.1.2实验方法9

3.1.3实验结果10

3.2Extended_YalefacedatabaseB数据库实验分析10

3.2.1数据库数据描述10

3.2.2实验结果12

3.3SCface人脸数据库实验分析12

3.3.1数据库数据描述12

3.3.2实验结果14

3.4CMUPIE人脸数据库实验分析15

3.4.1数据库数据描述15

3.4.2实验结果16

4结论17

 

1PCA原理

主成分分析(PrincipalComponentAnalysis,简称PCA)是一种常用的基于变量协方差矩阵对信息进行处理、压缩和抽提的有效方法。

PCA方法由于其在降维和特征提取方面的有效性,在人脸识别领域得到了广泛的应用。

PCA方法的基本原理是:

利用K-L变换抽取人脸的主要成分,构成特征脸空间,识别时将测试图像投影到此空间,得到一组投影系数,通过与各个人脸图像比较进行识别。

测试阶段的具体步骤如下:

●第一步:

假设训练集有200个样本,由灰度图组成,每个样本大小为M*N。

写出训练样本矩阵:

其中向量xi为由第i个图像的每一列向量堆叠成一列的MN维列向量,即把矩阵向量化。

●第二步:

计算平均脸。

计算训练图片的平均脸:

(公式1)

●第三步:

计算差值脸。

计算每一张人脸与平均脸的差值:

(公式2)

●第四步:

构建协方差矩阵:

(公式3)

●第五步:

求协方差矩阵的特征值和特征向量,构造特征脸空间的协方差矩阵的维数为MN*MN,考虑其维数较大,计算量比较大,所以采用奇异值分解(SingularValueDecomposition,SVD)定理,通过求解

的特征值和特征向量来获得

的特征值和特征向量。

求出

的特征值

及其正交归一化特征向量

根据特征值的贡献率选取前p个最大特征向量及其对应的特征向量。

●测试阶段:

●一般取

即使训练样本在前p个特征向量集上的投影有99%的能量。

求出原协方差矩阵的特征向量:

(公式4)

⏹则“特征脸”空间为:

2分析

经过了解了PCA的工作原理以后,先写一个代码实现PCA,然后对这个结果进行分析。

首先从Yaleb光照变化下人脸识别的图片库中随机的抽取9个图片。

Figure1

首先读入9张图片为96*84,然后转成8064*1的一列作为一个样本。

使用PCA降维,选择的主成份的阀值是0.9。

figure2是特征值由大到小的排列,表明了各个特征向量的贡献率。

figure3是累计贡献率。

Figure2

Figure3

调用calve.m绘图

可以看到这个特征值的增加的趋势。

得到阀值内的特征值后,U矩阵就是特征值所对应的特征向量所构成的矩阵。

也就是方差变化最大的量,含有最多信息的量。

然后根据公式

计算第i个样本的特征脸。

如果不对数据库进行PCA降维,而直接使用最近邻来进行识别,会不会因为使用的信息更多而得到的正确率更高?

感觉会因为维数降低的太多而导致准确度的降低,但实际上这些特征值保留了最大的信息(定义的阀值相关),同时去掉了噪音维度,或者是一些相关的冗余的维度,而不会造成准确度的降低,反而突出了特征值,特征向量,构造了特征图片,对分类更加有益处。

上面9张图片所对应的特征图为:

使用good.m绘制。

figure4是normal后的9张图片的展示,figure5是PCA降维后,得到的特征脸。

就是把原图像投影到主成份所定义的新的子空间中,得到一个较原图更粗糙的图像,但同时也更具有代表性。

Figure4

计算特征脸

Figure5

如果矩阵

中,每个列向量是一个图片,求每一行的平均值,得到M*1的平均脸。

figure6是上面9幅图的平均脸。

Figure6

在通过这9张图片的训练以后,我们得到了主成份矩阵,平均脸,和训练样本集中每个样本的特征脸,也就是主成份下的每个脸的一个自脸,理论下应该是表示了这个脸的主要特征,对分类识别起最大的作用。

接着我们仍从Yaleb光照变化下人脸识别的图片库随机的抽取一张图片。

首先这个图片从96*84维的矩阵变为8064*1的一个列向量,然后用这个列向量和平均脸相减,从新构造矩阵。

然后根据主成份分量矩阵U,求出测试样本的特征脸

然后我们还可以重构这个人脸:

Figure7

接着就可以计算这个图片和每个训练样本的欧式距离,一次来进行分类。

Figure8

3实验分析

3.1LFW人脸数据库实验分析

3.1.1LFW人脸数据库数据描述

本次试验我们只在LFW原有人脸数据库中随机选取来自86个个体的1251张人脸图像用做实验,每个个体选取有11-20张不同个数的人脸图像,并且已经将彩色图像转换为灰度图像进行试验,每张图像已经将其转换为32*32大小的人脸图像。

在使用PCA降维后,根据curve.m画出特征值的累计的结果,这个结果就是每个特征值对人脸识别的贡献的累计,可以看到曲线的趋势,从而证明PCA的可行性。

Figure9

根据下面的代码得到LFW人脸数据库的平均脸(figure10),其中m是PCA函数返回的平均脸,然后使用reshape函数进行变型,这里要注意的是,在readdata.m中所有的列向量都是归一化的,而这个维度为1024,所以每个量都是很小的,最后得到的平均脸的重构效果很差,所以在观察这个图的时候,我使用的是没有归一化的数据,否则看不到平均脸。

L=m;

L=reshape(L,32,32);

%L=uint8(L);

imshow(L)

Figure10

3.1.2实验方法

对于LFW人脸数据库,开始的时候,没有使用readData.m,直接load了LFW.mat文件,然后写了一个读文件完成对数据的处理,这个过程在run.m文件中实现。

但后来使用了readData.m文件后,就不在用这个run.m文件,而使用的是run2.m。

这个人脸数据库中只含有86个人,所以首先对训练样本进行PCA降维处理,得到平均脸和主成份矩阵。

接着对每个测试样本计算他的特征脸,和训练样本的特征脸进行对比。

但是从最开始的LFW.mat的数据中看到了2个比较特别的矩阵:

●num表示每一个体所包含的图像数,如:

第1个个体到第16个个体包含有11个图像样本

●trainIdx给定随机取训练样本的标号

根据这两个矩阵,可以让同一个人的脸

是属于第一个人的所有的图片求平均,得到在计算一遍特征脸。

当train_num=8,训练样本数量是688个,测试样本数量是563个。

那这563个测试样本就只需和86个特征脸进行对比,不需要和688个进行对比。

实际上的结果差别不大,而且效果时好时坏。

但是PCA降维后,使用最近邻的方法来进行人脸识别的分类正确率很低,所以在观察数据后,因为数据量不大,所以直接计算每个测试样本和训练样本的距离,来进行人脸识别,没想到结果比使用了PCA后的好。

当train_num=8时,直接使用最近邻的时候是0.2114。

3.1.3实验结果

LFW人脸数据库:

分别选取每个个体的前5,6,7,8,9个人脸图像作为训练数据,剩下的所有的人脸图像为测试数据,实验结果如Table1所示:

Table1.使用PCA降维后,使用最近邻方法在LFW人脸数据库上的识别正确率。

训练样本个数

5

6

7

8

9

识别正确率

0.1803

0.1946

0.2080

0.2096

0.2201

Table1

3.2Extended_YalefacedatabaseB数据库实验分析

3.2.1数据库数据描述

本次试验使用的数据包含了来自yaleB和ExtendedyaleB人脸数据库的在不同光照条件下的人脸图像。

这个数据库包括有来自YaleB数据库的10个个体和来自ExtendedYaleB的28个个体,并且每一个个体都有64张在不同光照条件下采集的人脸图像组合在一起。

这样就组成了来自38个个体在64种不同光照条件下采集的2432张人脸图像。

每张图像已经被转换成84*96大小。

图figure11,是在每个个体选择10个训练样本时,得到的平均脸,这里注意的地方,和在前面的是一样的。

figure12是特征向量累计贡献率的曲线,对比figure9和figure12,可以看到figure12,表明在变化的更剧烈,也就是特征向量的贡献的幅度很大,含有更多的信息。

猜测这样的数据结构,是不是对识别更有益处,也就是这个库中的样本更适合PCA降维的方法。

Figure11

Figure12

3.2.2实验结果

分别选取每个个体的前5,10,20,30个人脸图像作为训练数据,剩下的所有的人脸图像为测试数据,实验结果如Table2所示:

训练样本个数

5

10

20

30

识别正确率

0.3747

0.3796

0.3810

0.4033

Table2

figure12是特征向量累计贡献率的曲线,对比figure9和figure12,可以看到figure12,表明在变化的更剧烈,也就是特征向量的贡献的幅度很大,含有更多的信息。

猜测这样的数据结构,是不是对识别更有益处,也就是这个库中的样本更适合PCA降维的方法。

最后的实验结果十分的不尽人意,但是总体来说是比LFW数据库要好了很多,也就是证明了,这样的数据分布,确实更适合使用PCA降维的方法来表征信息。

但我不明白的是,效果为什么这么差。

3.3SCface人脸数据库实验分析

3.3.1数据库数据描述

本次试验只选取使用了SCface人脸数据库的一个子集用于试验。

这个子集包含有130个个体的1170张彩色图像,每张人脸都包含了9张不同的离散角度,即正面frontal(标记为0度角),左侧L1(左转22.5度),左侧L2(左转45度),左侧L3(左转67.5度),左侧L4(左转90度),右侧R1(右转22.5度),右侧R2(右转45度),右侧R3(右转67.5度),右侧R4(右转90度)。

这样每个个体9张图片,分别从-90度到+90度转动姿态变化。

Figure13

观察这个数据库中的图像,可以发现,侧脸的图像和正脸的图像差别很大,如果做的是人脸测试,我感觉侧脸可能不会被评为人脸,而会被判为非人脸。

或者是在人脸的主成份的矩阵中当作噪音数据。

所以效果很差。

图figure14是特征向量的累计贡献的曲线。

开始在观察数据库的时候,我以为这个曲线会发生质的变化,但是没有,大致的走向没有发生改变。

表明还有有些列可以表示主要的信息。

但不知道这些列是不是人脸的对应的列,有可能是侧脸的边缘部分和背景的边缘部分,同样是方差很大,存储主要的信息。

Figure14

接着观察平均脸figure15,看到平均脸十分的模糊。

figure15是train_num=5的时候的平均脸。

L=m;

L=reshape(L,150,150);

L=uint8(L);

imshow(L)

Figure15

3.3.2实验结果

分别选取每个个体的前1,2,3,4,5个人脸图像作为训练数据,剩下的所有的人脸图像为测试数据,实验结果如Table3所示:

训练样本个数

1

2

3

4

5

识别正确率

0.0577

0.0769

0.0679

0.0523

0.0654

Table3

规范化后,当train_data=4的时候,正确率是0.0215。

当不进行规范化的时候,正确率是0.0523。

当直接使用最近邻的时候,正确率是0.0596。

Figure16

figure16分别是train_num=1,train_num=2,train_num=5的时候的平均脸。

Figure17

figure17分别是train_num=1,train_num=2,train_num=5的时候的特征向量的累计贡献曲线。

3.4CMUPIE人脸数据库实验分析

3.4.1数据库数据描述

本次实验只选取使用了PIE人脸数据库的一个子集用于实验,此子数据库包含来自68个个体的11554张多姿态,变化光照和表情的人脸面部图像,每个个体大约有170张左右人脸图像用于实验。

每个人脸图像都已经转换成32*32大小。

图figure18是PIE人脸数据库的平均脸。

figure19是特征向量的累计贡献曲线。

Figure18

Figure19

3.4.2实验结果

分别选取每个个体的前1,2,3,4,5个人脸图像作为训练数据,剩下的所有的人脸图像为测试数据,实验结果如Table4所示:

训练样本个数

5

10

20

30

识别正确率

0.1340

0.2983

0.3149

0.4303

Table4

当train_num=30的时候,不规范化列向量,得到的正确率是0.3860。

4结论

在对特征向量的累计贡献曲线中,对比figure9和figure12,可以看到figure12变化的更剧烈,也就是特征向量的贡献的幅度很大,含有更多的信息。

猜测这样的数据结构,对识别更有益处,也就是这个库中的样本更适合PCA降维的方法。

实验结果也确实证明了这个结论。

而针对SCface人脸数据库,观察这个数据库中的图像,可以发现,侧脸的图像和正脸的图像差别很大,如果做的是人脸测试,我感觉侧脸可能不会被评为人脸,而会被判为非人脸。

或者是在人脸的主成份的矩阵中当作噪音数据。

所以效果很差。

猜测SCface的特征向量的累计贡献的曲线会发生质的变化,但实验结果表明没有。

说明有些列仍可以表示主要的信息。

但不知道这些列是不是人脸的对应的列,有可能是侧脸的边缘部分和背景的边缘部分,同样是方差很大,存储主要的信息。

在SCface中虽然特征向量的累计贡献的曲线和常规的相同,但可以猜测这个贡献大的特征向量应该是非关键的,噪音的,例如侧面的人脸边缘和正面的人脸边缘是矛盾的。

这些边缘数据的方差最大,数据波动最大,所以的最富含信息的特征向量。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 卡通动漫

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1