PCA的人脸特点提取和识别.docx

上传人:牧羊曲112 文档编号:4197171 上传时间:2023-04-09 格式:DOCX 页数:15 大小:285.44KB
返回 下载 相关 举报
PCA的人脸特点提取和识别.docx_第1页
第1页 / 共15页
PCA的人脸特点提取和识别.docx_第2页
第2页 / 共15页
PCA的人脸特点提取和识别.docx_第3页
第3页 / 共15页
PCA的人脸特点提取和识别.docx_第4页
第4页 / 共15页
PCA的人脸特点提取和识别.docx_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《PCA的人脸特点提取和识别.docx》由会员分享,可在线阅读,更多相关《PCA的人脸特点提取和识别.docx(15页珍藏版)》请在三一办公上搜索。

1、工程设计报告设计题目:基于PCA的人脸特征抽取及识别学院:电子工程学院专业:智能科学与技术姓名:钟佩学号:02085156时间:20门年门月指导教师:纟侯水平目录摘要31. PCA进行特征抽取和识别的方法及理论基础31.1 K-L 变换 31.2利用PCA进行人脸识别41.3 PCA的理论基础413.1投影41.3.2 PCA的作用及其统计特性51.3.3特征脸61.3.4图片重建71.3.5奇异值分解(SVD) 713.6利用小矩阵计算大矩阵特征向量81.3.7图片归一化82. 结果91. 识别率92. 特征脸93. 人脸重构103 .参考文献104附录matlab源码114.1人脸识别:U

2、4.2特征人脸124.3人脸重建14摘要对于一幅图像可以看作一个由像素值组成的矩阵,也可以扩展开,看成一个矢量,如一 幅N*N象素的图像可以视为长度为N2的矢量,这样就认为这幅图像是位于N2维空间中的 一个点,这种图像的矢量表示就是原始的图像空间,但是这个空间仅是可以表示或者检测图 像的许多个空间中的一个。不管子空间的具体形式如何,这种方法用于图像识別的基本思想 都是一样的,首先选择一个合适的子空间,图像将被投影到这个子空间上,然后利用对图像 的这种投影间的某种度量来确左图像间的相似度,最常见的就是各种距离度量。在本文中, 我们将讨论PVA算法来对人脸进行特征抽取和识别。1. PCA进行特征抽

3、取和识别的方法及理论基础1.1 K-L变换PCA方法是由Turk和Pcntlad提出来的,它的基础就是Karhunen-Loeve变换(简称KL变换),是一种常用的正交变换。下面我们首先对IGL变换作一个简单介绍:假设X为n维的随机变量,X可以用n个基向量的加权和来表示:X = 如/-I式中:M是加权系数,b是基向量,此式还可以用矩阵的形式表示:X 二(必.02,.0”)(勺4.oj 二a取基向量为正交向量,即1 . - /r0. =,=/J l0 i-J J则系数向量为:a=综上所述,K-L展开式的系数可用下列步骤求出:步骤一求随即向量x的口相关矩阵R =,由于没有类别信息的样本集的均值向量

4、,常常没有意义,所以也可以把数据的协方差矩阵)(/作为 K丄坐标系的产生矩阵,这里a是总体均值向量。步骤二求出口相关矩阵或协方差矩阵R的本征值人和本征向量必,=(处如妙)步骤三展开式系数即为rXK_L变换的实质是建立了一个新的坐标系,将一个物体主轴沿特征矢量对齐的旋转变换,这个变换解除了原有数据向量的各个分量之间相关性,从而有可能去掉那些带 有较少信息的坐标系以达到降低特征空间维数的目的。1.2利用PCA进行人脸识别完整的PCA人脸识别的应用包括几个步骤:人脸图像预处理;读入人脸库,训练形成 特征子空间:把训练图像和测试图像投影到上一步骤中得到的子空间上;选择一泄 的距离函数进行识别。下而详细

5、描述整个过程(源码见faceRec.in)。1. 读入人脸库归一化人脸库后,将库中的每人选择一泄数量的图像构成训练集,其余构成测试集。设 归一化后的图像是m,按列相连就构成N=n*m维矢虽,可视为N维空间中的一个点,可 以通过K-L变换用一个低维子空间描述这个图像。2. 计算K-L变换的生成矩阵所有训练样本的协方差矩阵为(以下三个等价):】 二(工耳屮qk=l2. CA是平均人脸,m训练人脸数,协方差矩阵G是一个N左N的矩阵,N是如的维数。为了方便计算特征值和特征向量,一般选用第2个公式。根据K-L变换原理,我们所求 的新坐标系即由矩阵4如的非零特征值所对应的特征向量组成。直接求N*N大小矩阵

6、G的 特征值和正交归一特征向量是很困难的,根据奇异值分解原理(见段落125和1.2.6),可以 通过求解川A的特征值和特征向量来获得AM的特征值和特征向量。在计算得到G的所有非零特征值闪*人(从大到小排序,1 WYM )及英对应的单位正交特征向量:I后,可以得到特征空间乙。丹坷w护,从而可以计算一张图片X在特征空间上的投影系数(也可以理解为X在空间U中的坐标):Y = UtX 凸L(2)3.识别利用公式(2),首先把所有训练图片进行投影,然后对于测试图片也进行同样的投影, 采用判别函数对投影系数进行识别01.3 PCA的理论基础13.1投影设d维样本X2,Xrv以及一个d维基W ,那么标量:y

7、/=WT X/是相当于XZ在基上的坐标值。如果w=i,M就是把,X向方向为W的直线进行投影的结果,可以从图I看到。推广之,如果有一组基(m个)组成的空间W = bvi w2.,那么可图I投影图以得到)0在空间W上的坐标为:Y = wTxe证明:w=|w|-H-co$Xv |x|-cos = y, M=1= wrx, = y进一步,表达= m+ ae表示w是一条通过点m,方向为e的直线。13.2 PCA的作用及其统计特性采用PCA对原始数据的处理,通常有三个方而的作用一降维、相关性去除、槪率估计。下 面分别进行介绍:去除原始数据相关性从统计学上讲,ex -E(x)r-E(r)(称为随机变量x与Y

8、协方差,记为Cov(X.Y).令- 济阿,称为随机变量X与Y的相关系数。P=1KIJX与Y是相关的,pxv=o,则X与Y是不相关的。命题1对于矩阵A来说,如果AA是一个对角阵,那么A中的向量是非相关的。由PCA处理的人脸库数据的非相关性可以从两点进行说明。(1)基底的非相关性特征空间基心05是非相关的,即UU=I o(2)投影系数的非相关性由SVD可知卫=妙你血 = UA巴 其中0二兀一也是平均人脸。根据公式(2)可以把A映射到特征空间上,得到:B=XA,其中B是非相关的,可 由下而得到证明:Y的协方差矩阵为:万曲=m,v由命题1可知,B是非相关的。统讣参数(均值及方差)均值即观L平均人脸。命

9、题2随机变虽:方差越大,包含的信息越多,当一个变屋方差为0时,该变虽:为常数,不 含任何信息。用PCA讣算主分量,就是寻找一组向钛 使得原始数据4 = 4,(|2,4肘在这组 向量上的投影值的方差尽可能大。最大方差对应的向量就是第一主成份,以后递推就是 第二主成份,第三主成份。用pca计算主分量就是求原始数購4 = 442,4耐(其中4严矿他)协方差矩阵的特征向量 = 05,由公式(3)可知,1心=(巩心.7是A在上的投影值,英中P的方差就对应的特征值入i,可以理解为:命题3所有原始数据在主分虽山上的投影值方差为儿。降维如果在原始空间表示一幅Mm大小的图片X,那么需要一个N=n*m维矢量,但是

10、当用公 式(2)把它映射到特征空间后,只需要一个r*l维的向量就可。另外,由命题2可知,可以根据方差的大小来判断特征向量的重要性。由ORL图片库的 200个人脸计算得到的特征值呈图2分布,可知特征向量重要性呈指数下降,据此可以只选 用前而几个重要的特征向量来构建特征空间。通过计算,前71个特征值占了90.17%,因此r可以取71而非200,从而达到进一 步降维的作用。133特征脸U = 心“T1中的每一个单位向量都构成一个特征脸,如图3所示。由这些特征脸所张成的空间称为特征脸子空间,需要注意对于正交基的选择的不同考虑,对应较大特征值的 特征向疑(正交基)也称主分量,用于表示人脸的大体形状,而对

11、应于较小特征值的特征向量 则用于描述人脸的具体细廿,或者从频域来看,主分量表示了人脸的低频部分,而此分量则 描述了人脸的髙频部分(源码见TigenFace.nf)。1 2105070 平均脸图3特征脸,分别是第1, 2, 10, 50, 70分虽,最后一张是平均脸。13.4图片重建要进行图丿,x的重建,首先对x投影到特征空间上,得到系数卩二刃-心),然后选用一 部分系数与特征向量进行原始图片的重建:厂二+口(1:/)样(1:为其中1表示取前t个 元素 o ( J4l,reconstnict.m,)在图4中,其中前两张图片来自训练样本,第3张来自测试样本,可以看到对于训练样本,PCA系数可以对图

12、片实现很好重建,而对于训练样本以外的图片重建效果很差。巳原始图像 t=5t 二 50t=199t=100t=150图4人脸图像重建。第1列图片是输入原始图,其它列图片是重建结果,数字表示t的数目。13.5奇异值分解(SVD)设A是秩为r的m*n (mn)维矩阵,则存在两个正交矩阵和一个对角阵:A 二%:存二 UW其中二oM,一i,?二卜0*,A 二加g(心必必且UU、= I , W=/,八呈降序排列。其中宀为44吒加宀和AS昌严的非零特征值,他和刃分別是川V和加 对应于入;的特征向量。可得一个推论:U = A KA-1可以计算AS的特征值廿及相应的正交归一特征向量八,后,可由推论知人如的正交归

13、一特 征向量叮朴注意,协方差矩阵才)M的特征值为:儿2/M。13.6利用小矩阵计算大矩阵特征向;高阶矩阵的特征向量可以转化为求低阶矩阵的特征向量:设:A是秩为r的m*n (mn)维矩阵,5孑凸严,是一个矩阵,现在要求g的 特征值及特征向量,可通过先求小矩阵川少曰L的特征向量卜。亠和特征值 心心不,两者之间有以下关系:ATA 、二占 vr左私AAT(A vi) = Ai(A V,)显然,OAA7的特征向量是A(注意没有单位化),R人虫亦为其特征值。结论:1.2.5与1.2.6的方法计算协方差矩阵的特征向量,特征值的结果是一致的,只是要 注意1.2.5中的特征值要除以M, 1.2.6中的特征向呈要

14、单位化。13.7图片归一化图片标准化通常是一个整体概念,要求把图片归一到均值为0,方差为1下情况下。这个槪念类似于一般正态分布向标准正态分布的转化:Z=.V(0.1)命题4若XNd贝IJb所以要对一组图片中的一张X进行归一化(标准化),只需要减去均值,除以方差就可以了。 /均值呛=?A;r 方差好可(吆)(屏2.结果1识别率accuracy =0. 88002 特征脸B B fi n S i B 1 i3人脸重构3参考文献1数字图像处理与机器视觉一一Visual C+与Matlab实现张铮 王艳平 薛桂香箸4附录一matlab源码4.1人脸识别% FaceRec m% PCA人脸识别修订版,识

15、别率88$% calc :meanz sigma and its eigen decompositionallsamples= 。%所有训练图像for i=l:40for j=l:5a=imread(strcat(D:ORLs*,num2str(i), *,num2str(j)z * pgm)o% imshow(a)。b=a(l:112*92)o咎b是行矢量N,其中N=10304,提取顺是先列后行,即从上 到下,从左到右b=double(b)。allsamples= allsamplesc b %allsamplcs 是个M*N 矩阵,allsamplcs 中每行 数据代表一张图片,其中M =

16、 200endendsamplemean=mean (allsamples) o % Y均I冬l丿1 X Nfor i=l: 200 xmean (ir : ) =allsamples (ir : ) -samplemeano % XOlcan 丿E一 彳、M XN 矩阵,xmean每一行保存的数据是“每个图片数据平均图片”endo%获取特征值及特征向量s i gma=xme an* :me a n 1。% M *M阶矩阵v d=eig(sigma)dl=diag(d)o%按特征值大小以降序排列dsort = flipud(dl)ovsort = fliplr(v)o%以下选择90%的能量ds

17、um = sum(dsort)odsum_extract = 0。p = 0owhile ( dsum_extract/dsum 09)p = p +dsumextract = sum(dsort(1:p)oendi=lo賓训练阶段川算特征脸形成的坐标系base = xmean * * vsort(:,1:p) * diag(dsort(1:p)A(-1/2)o%base是NXp阶矩阵,除以dsort人(1/2)是对人脸图像的标准化(使其方差为1)% xmean* * vsort(:,i)是小矩阵的特征向量向大矩阵特征向疑转换的过程% while (i0)%base(:J) = dsort(i

18、)A(-l/2) * xmean* vsort(:,i)o % base 是NXp 阶矩阵,除以dsort(i)A(l/2) 是对人脸图像的标准化(使其方差为1)% i = i + lo%xmean * vsort(:,i)是小矩阵的特征向虽:向大矩阵特征向疑转换的过程%end%以下两行add by gongxun将训练样本对坐标系上进行投影,得到一个M*p阶矩阵allcoor allcoor = allsamples * base。% allcoor里而是每张训练人脸图片在M*p子空间中 的一个点,即在子空间中的组合系数accu = 0. $下而的人脸识别过程中就是利用这些组合系数來进行识别

19、%测试过程for i=l:40for j=6:10务读入40X5副测试图像a=imread(strcat(* D:ORLs *,num2str(i), *,num2str(j)z * pgm)o b=a(l:10304)ob=doublm(b)otcoor= b * baseo算坐标,是1 Xp阶矩阵for k=l:200mdist(k)=norm(tcoor-allcoor(k, : ) ) oendo务三阶近邻dist,index2=sort(mdist)。classl = f loor ( (inde:2 (1) -1) /5 ) +1 cclass2=floor(index2(2)-1

20、)/5)+1。class3=floor ( (inde:2 (3) -1) /5) +1 oif classl=class2 & class2-=class3class=classloelseif classl=class2class=classloelseif class2=class3class=class2oendoif class=iaccu=accu+loendoendoendoaccuracy=accu/200毛输出识别率4.2特征人脸% eigface m function = eigface()% calc :meanz sigma and its eigen decompos

21、itionclose alloclcoclear alloallsamples= 。%,听仃训练图像for i=l:40for j=l:5a=imread(strcat(* D:ORLs1,num2str(i), 1*,num2str(j)z * pgm*)o% imshow(a)b=a (1:112*92) % b是行矢量IXN,其中N =10304,提取顺序是先列后行,即从上 到下,从左到右b=doublm(b)oallsamples= allsamplesc b %allsaniples 是一个M * N 矩阵,allsamplcs 中每一仃 数据代表一张图片,英中M = 200ende

22、ndsamplemean=mean (allsamples) o % T均图片 9 1 X Nfor i=l:200 xmean(i, :)=allsamples(i, :)-samplemeano % xmcan 是 个M XN 矩阵,xmean每一行保存的数据是“每个图片数据平均图片”endo%获取特征值及特征向疑s i gma=xme an* xme a n1。% M *M阶矩阵v d=eig(sigma)odl=diag(d)。$按特征值大小以降序排列dsort = flipud(dl)ovsort = fliplr(v)o$以下选择90%的能量dsum = sum(dsort)ods

23、umextract = 0cp = 0owhile( dsum_extract/dsum 09)p = p + lcdsum_extract = sum(dsort(1:p)oendp = 199o% (训练阶段川算特征脸形成的坐标系% while (i0)% base(:J) = dsort(i)A(-l/2) * xmean * vsort(:,i)o % base 是NXp 阶矩阵,除以 dsort(i)M/2)是对人脸图像的标准化% i = i + U % xmean1 * vsoil(:j)是小矩阵的特征向量向大矩阵特征向量转换的过程%endbase = xmean * * vsor

24、t(:,1:p) * diag(dsort(1:p)A(-1/2)o%生成特征脸,并显示出来for (k=l:p)ztemp = reshape (base (:, k) , 112,92)o if(k21)figure (1)osubplot(4z 5,k),imshow(mac2gray(temp)。elseif(k41)figure (2)。subplot (4,5, (k-20) ) , imshow (mat;2gray (temp)。elseif(k61)figure (3)osubplot (4,5, (k-40) ) , imshow (ma*t2gray (temp) ) e

25、lseif(k81)figure (4 ) subplot(4,5, elseif(k101) figure(5)。subplot(4,5, elseif(k121)(k-60),imshow(mat2gray(temp)。(k-80),imshow(mat2gray(temp)。figure (6)。subplot (4,5,(k-100),imshow(mat2gray(temp)。figure (7)。subplot (4,5, (k-120) ) , imshow (ma*t2gray (temp)。elseif(k161)figure (8)。sub plot (4,5, (k-14

26、0) ) , imshow (mat;2gray (temp)。elseif(k181)figure (9)。subplot (4,5, (k-160),imshow(mat2gray(temp)o else(k200)figure (10)。subplot (4,5,(k-180),imshow(mat2gray(temp)o endendavg = reshape(samplemean, 112,92)osubplot(4,5,20),imshow(mat2gray(avg),title( T於J脸 1 ) $将模型保存save(1D:ORLmodel.mat *,1base *,samp

27、lemean)。4.3人脸重建% Reconstruct mfunction = reconstruct()close alloclear alloclc load D:ORLmodelmat。%汁算新图片在特征子空间中的系数img = 1D:0RLs23pgm*a=imread(img)b=a(l:112*92)o %1)是行矢量1XN,其中N=10304,提取顺序是先列后行,即从上到 卜,从左到右b=double (b) b=b-samplemeanoc = b * base. %C是图片a在子空间中的系数,是Fp行矢肚%根据特征系数及特征脸重建图figure (1)subplot(1,6

28、,1),imshow(img)%前15个t = 15 o temp = base ( :z1:t) * c (1:t) 1o temp = temp + samplemean * oH2z92)osubplot(1,6,2),imshow(mat2gray(reshape(temp,%前50个t = 50otemp = base(:,1:t) * c (1:t) 1otemp = temp + samplemean * osubplot(1,6,3),imshow(mat2gray(reshape(temp, 112,92)o %前100个t = 100otemp = base ( :,1:t

29、) * c (1:t) 1otemp = temp + samplemean * osubplot (1,6,4), imshow (ma,t2gray (reshape (temp, 112, 92) ) ) o %前150个t = 150otemp = base (:,1:t) * c (1:t) f otemp = temp + samplemeanosubplot(1,6,5),imshow(mat2gray(reshape(temp, 112,92)o %前199个t = 199o temp = base (:,1:t) * c (1:t) 1otemp = temp + samplemean * osubplot (1,6,6), imshow (ma*t2gray (reshape (temp, 112, 92) ) ) o

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号