- 46
- 0
- 约2.5千字
- 约 5页
- 2021-09-09 发布于四川
- 举报
PCA实现人脸识别实验报告
1实验内容
1) 实现PCA算法
2) 用PCA算法对一张照片进行降维重构
3)4)
3)
4)
用PCA算法对120张照片进行训练,然后用同样120个人的照片作为测试 集,计算误差
2实验流程及相关结果
2.1PCA算法的实现
算法的流程
数据集X -
数据集X -
中心化- 计算协方差矩阵
SVD分解- 返回U的前K列
实验代码
function [Z,U] = pea (X, K)
X=X;%X:1680*2000
mu = mean(X);
Xnorm = bsxfun(@minus, X, mu);%中心化处理
X=X norm;
[m, n] = size(X);
sigma=l/m*X*X;%计算协方差矩阵 [u,s,v]=svd(sigma);% 奇异值分解 ureduce=u(:,l:K);%ureduce:2000*K Xrec=X*ureduce*ureduce;%Xrec:1680*2000 Z=Xrec;%重构结果
U=ureduce;%特征向量
Endfunction
2.2用PCA实现一张照片降维重构
1)展示一张照片 代码:
pkg load image
pkg load statistics load AR;
AR=double(AR(:,:)); image=AR(:,l); image=reshape(image,50, 40); imshow(mat2gray(image));
结果:
C Figure 1 I。回 注
文件(F) 犒辑(E) 布助(H)
? Z+ Z?小插入又本 Q 轴网格自如融
(12.99, 50.448) /
2)对一张照片进行降维重构 展示重构后的结果 代码
pkg load image
pkg load statistics
load AR;
AR=double(AR(:,:));
[z,u]=pca(AR,50);
image=z(:,l);
image=reshape(image,50, 40);
imshow(mat2gray(image));
结果
2.3比照手动实现pea和调包实现pea的误差
1)计算重构误差
1)计算重构误差
:€1
公式:本次计算重构误差采用如下公式
代码:
pkg load image
pkg load statistics
load AR;
AR=double(AR(:,:));
[z,u]=pca(AR,50);
loss=comloss(AR,z)
function loss=comloss(X,Y)
X=X;
mu = mean(X);
Xnorm = bsxfun(@minus, X, mu);%归一化处理 X=Xnorm;
loss=sum(sum((X-Y).A2))/sum(sum(X.A2)); endfunction
结果:
loss = 0.12892
I
2)调用matlab包实现pea算法计算重构误差 代码:
load AR;
AR=double(AR(:,:));
[z,u]=pca(AR,50);
loss=comloss(AR,z) %手动实现pea算法的误差 [zl,u]=autopca(AR,50);
lossl=comloss(AR?zl) %调包实现pea算法的误差 function [z,u]=autopca(X,K)
[COEFF SCORE latent]=princomp(X); u=SCORE(:,l:K);
ureduce=COEFF(:,l:K);
x rec=u*ureduce;
z=xrec;
u=ureduce;
endfunction
结果:
loss =0.12892lossl =
loss =
0.12892
lossl =
0.12892
2.4用pea实现
读取120个人的不同照片作为训练集和测试集 代码
for i=2:14:1680
if i==2 train=AR(:,i);
else
train=[train AR(:,i)];
end;
endfor
for i=3:14:1680
if i==3 testdata=AR(:,i);
else
testdata=[testdata AR(:J)]; end;
endfor
用pea实现人脸识别过程
代码:
[z,ureduce]=pca(trainzk);%对 120 张人脸照片训练得到特征向量 ureduce 2000*K mu = mean(train);
traindata = bsxfun(@minus, train, mu);%中心化处理 train=traindata;%2000*120
mu = mean(testdata);
test = bsxfu
原创力文档

文档评论(0)