PCA检测人脸的简单示例_matlab实现
来源:互联网 发布:单片机控制8个led灯 编辑:程序博客网 时间:2024/05/17 22:06
此文转载于mpbchina的博客,转载地址:
http://blog.csdn.net/mpbchina/article/details/7384425
- [plain] view plaincopy
- %训练
- %Lx=X'*X
- clear;
- clc;
- train_path='..\Data\TrainingSet\';
- phi=zeros(64*64,20);
- for i=1:20
- path=strcat(train_path,num2str(i),'.bmp');
- Image=imread(path);
- Image=imresize(Image,[64,64]);
- phi(:,i)=double(reshape(Image,1,[])');
- end;
- %mean
- mean_phi=mean(phi,2);
- mean_face=reshape(mean_phi,64,64);
- Image_mean=mat2gray(mean_face);
- imwrite(Image_mean,'meanface.bmp','bmp');
- %demean
- for i=1:19
- X(:,i)=phi(:,i)-mean_phi;
- end
- Lx=X'*X;
- tic;
- [eigenvector,eigenvalue]=eigs(Lx,19);
- toc;
- %normalization
- for i=1:19
- %K-L变换
- UL(:,i)=X*eigenvector(:,i)/sqrt(eigenvalue(i,i));
- end
- %display Eigenface
- for i=1:19
- Eigenface=reshape(UL(:,i),[64,64]);
- figure(i);
- imshow(mat2gray(Eigenface));
- end
得到的均值图像mean_face:
前19个最大主元对应的“特征脸”:
测试:
测试用样本:
- %使用测试样本进行测试
- clc;
- test_path='..\Data\TestingSet\';
- error=zeros([1,4]);
- for i=1:4
- path=strcat(test_path,num2str(i),'.bmp');
- Image=imread(path);
- Image=double(imresize(Image,[64,64]));
- phi_test=zeros(64*64,1);
- phi_test(:,1)=double(reshape(Image,1,[])');
- X_test=phi_test-mean_phi;
- Y_test=UL'*X_test;
- X_test_re=UL*Y_test;
- Face_re=X_test_re+mean_phi;
- calculate error rate
- e=Face_re-phi_test;
- %%display figure
- Face_re_2=reshape(Face_re(:,1),[64,64]);
- figure(i);
- imshow(mat2gray(Image));
- title('Original');
- figure(10+i);
- imshow(mat2gray(Face_re_2));
- title('Reconstruct');
- error(1,i)=norm(e);
- %dispaly error rate
- error_rate=error(1,i);
- display(error_rate);
- end
四副测试样本的重建误差分别为:
1.4195e+003
1.9564e+003
4.7337e+003
7.0103e+003
可见测试样本为人脸的样本的重建误差显然小于非人脸的重建误差。
- PCA检测人脸的简单示例_matlab实现
- PCA检测人脸的简单示例_matlab实现
- PCA检测人脸的简单示例_matlab实现
- 【模式识别】PCA检测人脸的简单示例MATLAB实现
- 基于PCA的人脸识别_Matlab实现(个人研读之后的一些总结)
- PCA应用---检测人脸的简单示例 (MATLAB版)
- 边缘检测算子_Matlab
- 基于PCA的人脸检测(Matlab版代码)
- PCA人脸识别的python实现
- 基于PCA简单的人脸识别opencv实现-图像处理学习笔记
- PCA的应用示例
- 简单理解基于PCA的人脸识别
- 【OpenCV】简单的Python实现人脸检测
- 神经网络_Matlab中BP神经网络算法的实现
- Yale人脸数据库、PCA算法实现Matlab中特征脸生成和简单的人脸识别
- PCA的简单理解
- PCA的简单理解
- 基于PCA的人脸识别的Matlab实现代码
- [sicily online]1028. Hanoi Tower Sequence
- 提几本Java书名
- SQL Server 2005安装后无服务器名称
- 11.26ADO练习
- 关于加班
- PCA检测人脸的简单示例_matlab实现
- 最近点对
- 光标 事件
- top命令的补充
- poj 2513 Colored Sticks (字典树+并查集+无向图的欧拉回路。)
- 算数右移和逻辑右移
- poj 1785
- 自己写的简易数据库类
- 函数popen()