MATLAB实现2DPCA人脸识别算法
"该资源是一个MATLAB实现的2维主元分析(2DPCA)程序,用于人脸识别。程序按照Turk-Pentland的Eigenfaces方法执行,最终将所有图像投影到由PCA找到的subDim维子空间,并保存PCA投影矩阵到磁盘。" 2维主元分析(2DPCA)是一种统计学方法,常用于数据分析和降维,尤其在图像处理领域如人脸识别中。PCA的主要目标是找出数据集中的主要变化方向,即主元,通过这些主元可以有效地表示原始数据。在人脸识别中,2DPCA可以提取人脸图像的关键特征,减少数据的复杂性,同时保持足够的识别能力。 在MATLAB程序`function pca`中,输入参数包括: 1. `path`:存放归一化图像的完整路径,这些图像通常来自FERET数据库,一个广泛用于人脸识别研究的数据集。 2. `trainList`:训练用图像列表,应为不带扩展名的图像名称,`.pgm`会自动添加。 3. `subDim`:保留的维度数量,即期望的子空间维度。如果未提供此参数,程序将保留最大非零维度,即(训练图像数量)-1。 程序的执行流程大致如下: 1. 加载训练图像列表,并对图像进行预处理,如归一化,以消除光照、角度等因素的影响。 2. 使用PCA算法计算训练图像的协方差矩阵,找到特征值和特征向量。 3. 根据`subDim`选择最大的几个特征值对应的特征向量,这些特征向量构成新的基,即PCA投影矩阵。 4. 将所有训练图像投影到这个低维子空间,生成新的特征向量表示。 5. 将PCA投影矩阵和投影后的图像保存到磁盘,以便后续的人脸识别过程使用。 引用的文献来自M.Turk和A.Pentland,他们提出的Eigenfaces方法是人脸识别领域的经典工作。Eigenfaces是一种基于PCA的视觉特征表示,它通过将人脸图像视为高维空间中的点,并找到该空间的主要成分来实现人脸识别。 通过这个MATLAB程序,用户可以自定义训练图像、保留的维度,从而定制适合特定应用的人脸识别模型。然而,实际应用时还需要结合分类器(如支持向量机SVM)和其他后处理步骤来完成完整的识别过程。
%
% PROTOTYPE
% function pca (path, trainList, subDim)
%
% USAGE EXAMPLE(S)
% pca ('C:/FERET_Normalised/', trainList500Imgs, 200);
%
% GENERAL DESCRIPTION
% Implements the standard Turk-Pentland Eigenfaces method. As a final
% result, this function saves pcaProj matrix to the disk with all images
% projected onto the subDim-dimensional subspace found by PCA.
%
% REFERENCES
% M. Turk, A. Pentland, Eigenfaces for Recognition, Journal of Cognitive
% Neurosicence, Vol. 3, No. 1, 1991, pp. 71-86
%
% M.A. Turk, A.P. Pentland, Face Recognition Using Eigenfaces, Proceedings
% of the IEEE Conference on Computer Vision and Pattern Recognition,
% 3-6 June 1991, Maui, Hawaii, USA, pp. 586-591
%
%
% INPUTS:
% path - full path to the normalised images from FERET database
% trainList - list of images to be used for training. names should be
% without extension and .pgm will be added automatically
% subDim - Numer of dimensions to be retained (the desired subspace
% dimensionality). if this argument is ommited, maximum
% non-zero dimensions will be retained, i.e. (number of training images) - 1
%
% Function will generate and save to the disk the following outputs:
% DATA - matrix where each column is one image reshaped into a vector
% - this matrix size is (number of pixels) x (number of images), uint8
% imSpace - same as DATA but only images in the training set
% psi - mean face (of training images)
% zeroMeanSpace - mean face subtracted from each row in imSpace
% pcaEigVals - eigenvalues
% w - lower dimensional PCA subspace
% pcaProj - all images projected onto a subDim-dimensional space
%
% NOTES / COMMENTS
% * The following files must either be in the same path as this function
% or somewhere in Matlab's path:
% 1. listAll.mat - containing the list of all 3816 FERET images
%
% ** Each dimension of the resulting subspace is normalised to unit length
%
% *** Developed using Matlab 7
%
%
% REVISION HISTORY
% -
%
% RELATED FUNCTIONS (SEE ALSO)
% createDistMat, feret
%
% ABOUT
% Created: 03 Sep 2005
% Last Update: -
剩余6页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- ExtJS 2.0 入门教程与开发指南
- 基于TMS320F2812的能量回馈调速系统设计
- SIP协议详解:RFC3261与即时消息RFC3428
- DM642与CMOS图像传感器接口设计与实现
- Windows Embedded CE6.0安装与开发环境搭建指南
- Eclipse插件开发入门与实践指南
- IEEE 802.16-2004标准详解:固定无线宽带WiMax技术
- AIX平台上的数据库性能优化实战
- ESXi 4.1全面配置教程:从网络到安全与实用工具详解
- VMware ESXi Installable与vCenter Server 4.1 安装步骤详解
- TI MSP430超低功耗单片机选型与应用指南
- DOS环境下的DEBUG调试工具详细指南
- VMware vCenter Converter 4.2 安装与管理实战指南
- HP QTP与QC结合构建业务组件自动化测试框架
- JsEclipse安装配置全攻略
- Daubechies小波构造及MATLAB实现