基于K-L变换的人脸识别的MATLAB实现
clear all;
%---------------------- 打开训练图像集 --------------------%
Files = dir(‘FREET\F1*.bmp’); %打开文件夹中所有图像
Dir = ‘FREET\F1’;
for k = 1:length(Files);
Filename = [Dir , Files(k).name]; Img = imread(Filename); x(:,k) = Img(:); % 把图像放在矩阵x的第k列
end;
nImages = k; % 图像个数
imsize = size(Img); % 图像维度
nPixels = imsize(1)*imsize(2); % 图像总像素数
x = double(x)/255; % 将x转换为double型
%----------- 计算每幅训练图像的与平均脸的差值 -------%
avrgx = mean(x’)’; %计算均值图像
for i=1:1:nImages
x(:,i) = x(:,i) - avrgx; % x每一列减去平均脸
end;
%-----奇异值分解方法计算协方差矩阵的特征值和特征向量----%
cov_mat = x’x; %协方差矩阵为xx’,这里用奇异值分解
[V,D] = eig(cov_mat); %V为以特征向量为列的矩阵,D为特征值组成的对角阵
V = xV(abs(D))^-0.5; %求协方差矩阵x*x’的特征向量
%------------------------计算特征脸个数--------------------------%
add = 0.0;
D=diag(D); %将对角阵D转换为矢量
sum = sum(D);
for k =nImages👎1 %由于在D按照从小到大排列,故逆序遍历
add = add + D(k); if add/sum > 0.95 %当差异信息比例达到95%时退出循环 break; end
end
%-------------测试样本在新空间上投影后的坐标-----------%
KLCoef = x’*V;
%---------------------- 打开待识别图像集 --------------------%
files = dir(‘FREET\F2*.bmp’); %打开文件夹中所有图像
dir = ‘FREET\F2’;
for k = 1:length(files);
filename = [dir , files(k).name]; img = imread(filename); y(:,k) = img(:);
end;
y = double(y)/255;
%----------- 计算每幅待识别图像的与平均脸的差值 -------%
for i=1:1:nImages
y(:,i) = y(:,i) - avrgx; % y每一列减去平均脸
end;
%-------------待识别样本在新空间上投影后的坐标-----------%
dKLCoef = y’*V;
%---------------------------按照最近邻法分类------------------------%
count = 0.0; %计数器,用于计算正确识别的人脸个数
for image_index = 1:1:nImages
for i=1:1:nImages
%计算待识别图像与每幅训练图像坐标间的欧氏距离,由特征脸的正交归一性,欧氏距离就是坐标点乘再开方
dist_comp(i) = sqrt(dot(dKLCoef(image_index,:)-KLCoef(i,:), dKLCoef(image_index,:)-KLCoef(i,:))); end min_index = find(dist_comp == min(dist_comp)); %找出欧氏距离最小的训练图像的下标 if min_index(1) == image_index %判断最近邻分类是否正确 count= count + 1; end
end
rate = count/nImages %输出识别正确率
- 基于K-L变换的人脸识别的MATLAB实现
- 基于PCA的人脸识别_Matlab实现(个人研读之后的一些总结)
- 基于PCA和SVM人脸识别之二.MATLAB实现
- 基于PCA的人脸识别的Matlab实现代码
- 基于MATLAB的PCA人脸识别实现
- 基于回归模型的人脸识别(matlab实现)
- 基于matlab的简单人脸识别实例
- 基于MATLAB的adaboost级联形式的人脸检测实现
- 基于Caffe的人脸识别实现
- 基于级联形状回归模型的世纪晟人脸识别实现
- 基于Matlab人脸识别的研究进行中~~
- 【Caffe实践】基于Caffe的人脸识别实现
- matlab实现人脸识别
- 基于Tensorflow的Facenet 人脸识别实现
- 基于OpenCV3实现人脸识别(实践篇)
- 【Caffe实践】基于Caffe的人脸识别实现
- 基于Hough 变换的直线检测(Matlab实现)
- 基于MATLAB,运用PCA+SVM的特征脸方法人脸识别
- 利用matlab实现最大连通域的人脸识别
- 基于BP人工神经网络的数字字符识别及MATLAB实现