文档下载 文档下载导航
设为首页 | 加入收藏
搜索 请输入内容:  
 导航当前位置: 文档下载 > 所有分类 > IT/计算机 > 电脑基础知识 > KPCA人脸识别
侵权投诉

KPCA人脸识别

自己平时写的KPCA人脸识别代码,可以运行,有必要的注释

%用KPCA进行人脸识别的Matlab代码

clear
clc
allsamples=[];%所有训练图像
for i=1:40
for j=6:10
a=imread(strcat('E:\MATLAB\MATLAB\work\Data\s',num2str(i),'\',num2str(j),'.pgm'));
b=a(1:112*92); % b是行矢量 1×N,其中N=10304,提取顺序是先列后行,即从上到下,从左到右
b=double(b);
allsamples=[allsamples; b]; % allsamples 是一个200 * 10304 矩阵,allsamples 中每一行数据代表一张图片。
end
end

cov_size=size(allsamples,1); %求allsamples的一个行数
train_num=cov_size;
patterns=allsamples; %
for i=1:cov_size
for j=i:cov_size
K(i,j) =(patterns(i,:)*patterns(j,:)'+1)^0.7; %求K矩阵,K矩阵为一个对称矩阵
K(j,i) = K(i,j);
end
end
unit = ones(cov_size, cov_size)/cov_size;
K_n = K - unit*K - K*unit + unit*K*unit; %中心化K矩阵得到K_n

[evecs,evals] = eig(K_n); %求K_n矩阵的特征值与特征向量
evals = real(diag(evals)); %diag()函数得到的为一个列向量,real()函数取实数
[l1,l2]=sort(-1*evals'); %得到的l2实际为降序的index
evals=l1*(-1);
evecs=evecs(:,l2);
for i=1:cov_size,
evecs(:,i) = evecs(:,i)/(sqrt(evals(i)));%单位化
end


%90%的贡献率
dsum = sum(evals);
dsum_extract = 0;
p = 0;
while( dsum_extract/dsum < 0.9)
p = p + 1;
dsum_extract = sum(evals(1:p));
end
max_ev=p;

%进行特征提取
features = zeros(train_num, max_ev);
features = K_n * evecs(:,1:max_ev);
allcoor = features;

accu=0;
% 测试过程
for i=1:40
for j=1:5 %读入40 x 5 副测试图像
a=imread(strcat('E:\MATLAB\MATLAB\work\Data\s',num2str(i),'\',num2str(j),'.pgm'));
b=a(1:10304);
b=double(b);
unit_test = ones(1,cov_size)/cov_size;
K_test = zeros(1,cov_size);
for j=1:cov_size,
K_test(j) = (b*patterns(j,:)'+1)^0.7; %对测试样本中的第一幅图像进行求K_test
end

K_test_n = K_test - unit_test*K - K_test*unit + unit_test*K*unit; %中心化
test_features = zeros(1, max_ev);
test_features = K_test_n * evecs(:,1:max_ev); %求这一幅测试图像的特征


tcoor=test_features; %tcoor是1×p阶矩阵
for k=1:200
mdist(k)=norm(tcoor-allcoor(k,:)); %求欧式距离,最近距离分类
end;
[dist,index2]=sort(mdist); %对距离进行排序,得到一个最近的距离
class=ceil( index2(1)/5 );
if class==i
accu=accu+1;
end;
end;
end;
accuracy=accu/200 %输出识别率
p

第1页

你可能喜欢

  • matlab人脸识别
  • PCA人脸识别
  • 汉王人脸识别
  • 毕业设计人脸识别
  • 神经网络人脸识别

热门文档

相关文档

  • 基于LMP和KPCA的人脸识别

    【Key words】Laplacian Matrix Projection(LMP); Kernel Principal Components Analysis(KPCA); face recognition 1 人脸识别是当前模式识别领域内的一个活跃课题,应用...

  • 【论文】基于KPCA和FMSD的人脸识别

    基于KPCA和FMSD的人脸识别_专业资料。针对核最大散度差(KMSD)方法在人脸识别中存在边缘类和次优性问题,提出一种基于核主成分分析(KPCA)与模糊最大散度差(FMSD)...

  • 基于Gabor滤波和KPCA的人脸识别方法

    基于Gabor滤波和KPCA的人脸识别方法_专业资料。是第2 卷第40期 21 4月 0 0年 计算机技术与发展 ODMPUTER TB口 Ol 0GY AND DEVELOPMENT 基于Gbrao 滤波和 KP...

  • 【论文】利用小波变换提高基于KPCA方法的人脸识别性能

    利用小波变换提高基于KPCA方法的人脸识别性能_专业资料。基于核主成分分析(KPCA)的人脸识别算法能够提取非线性图像特征,在小样本训练条件下有较好性能.然而并非所有...

  • 基于LMP和KPCA的人脸识别

    基于LMP和KPCA的人脸识别 提出一种基于托普拉斯矩阵投影变换和核主成分分析的人脸图像识别方法。对人脸图像做拉普拉斯矩阵变换,通过核主成分分析提取特征,再利用最近...

  • 一种融合KPCA和KDA的人脸识别新方法

    第28卷第5期2008年5月 文章编号:1001—9081(2008)05—1263—04 计算机应用ComputerApplications V01.28No.5May2008 一种融合KPCA和KDA的人脸识别新方法周晓彦1...

  • 基于小波分析和KPCA的人脸识别

    模式识别与仿真 Patlern Recognition and Simulation 自动化技术与应用 2003 年第 22 卷第 9 期 基于小波分析和 KPCA 的人脸识别杨国亮, 任金霞, 刘细平 ( ...

  • 基于小波变换与KPCA人脸识别技术研究

    基于小波变换与KPCA人脸识别技术研究基于小波变换与KPCA人脸识别技术研究隐藏>> 厦门大学 硕士学位论文 基于小波变换与KPCA人脸识别技术研究 姓名:陈松 申请学位级别:...

  • 【论文】结合DCT与KPCA的人脸识别

    结合DCT与KPCA的人脸识别 核主成分分析是主成分分析在核空间中的非线性推广,能有效应用于人脸识别,但是识别过程时间开销过大仍是待解决的问题。提出了一种结合离散...

  • 【论文】一种基于KPCA与LDA的人脸识别改进算法

    一种基于KPCA与LDA的人脸识别改进算法_机械/仪表_工程科技_专业资料 暂无评价

站点地图 | 文档上传 | 侵权投诉 | 手机版
本站所有资源均来自互联网,本站只负责收集和整理,均不承担任何法律责任,如有侵权等其它行为请联系我们.
文档下载 Copyright 2013 doc.guandang.net All Rights Reserved.  -  email