当前位置:文档之家› PCA人脸算法 (2)

PCA人脸算法 (2)

PCA人脸算法 (2)
PCA人脸算法 (2)

1.数据准备

function T = CreateDatabase(TrainDatabasePath)

% Align a set of face images (the training set T1, T2, ... , TM )

%

% Description: This function reshapes all 2D images of the training database % into 1D column vectors. Then, it puts these 1D column vectors in a row to % construct 2D matrix 'T'.

%

%

% Argument: TrainDatabasePath - Path of the training database

%

% Returns: T - A 2D matrix, containing all 1D imag e vectors.

% Suppose all P images in the trainin g database

% have the same size of MxN. So the l ength of 1D

% column vectors is MN and 'T' will b e a MNxP 2D matrix.

%

% See also: STRCMP, STRCAT, RESHAPE

% Original version by Amir Hossein Omidvarnia, October 2007

% Email: aomidvar@ece.ut.ac.ir

%%%%%%%%%%%%%%%%%%%%%%%% File management

TrainFiles = dir(TrainDatabasePath);

Train_Number = 0;

for i = 1:size(TrainFiles,1)

if not(strcmp(TrainFiles(i).name,'.')|strcmp(TrainFiles(i).name,'..')|st rcmp(TrainFiles(i).name,'Thumbs.db'))

Train_Number = Train_Number + 1; % Number of all images in the train ing database

end

end

%%%%%%%%%%%%%%%%%%%%%%%% Construction of 2D matrix from 1D image vectors

T = [];

for i = 1 : Train_Number

% I have chosen the name of each image in databases as a corresponding % number. However, it is not mandatory!

str = int2str(i);

str = strcat('\',str,'.jpg');

str = strcat(TrainDatabasePath,str);

img = imread(str);

img = rgb2gray(img);

[irow icol] = size(img);

temp = reshape(img',irow*icol,1); % Reshaping 2D images into 1D imag

e vectors

T = [T temp]; % 'T' grows after each turn

end

2, 样本训练

function [m, A, Eigenfaces] = EigenfaceCore(T)

% Use Principle Component Analysis (PCA) to determine the most

% discriminating features between images of faces.

%

% Description: This function gets a 2D matrix, containing all training imag e vectors

% and returns 3 outputs which are extracted from training database.

%

% Argument: T - A 2D matrix, containing all 1D ima ge vectors.

% Suppose all P images in the traini ng database

% have the same size of MxN. So th

e length o

f 1D

% column vectors is M*N and 'T' wil l be a MNxP 2D matrix.

%

% Returns: m - (M*Nx1) Mean of the training datab ase

% Eigenfaces - (M*Nx(P-1)) Eigen vectors of the c ovariance matrix of the training database

% A - (M*NxP) Matrix of centered image v ectors

% See also: EIG

% Original version by Amir Hossein Omidvarnia, October 2007

% Email: aomidvar@ece.ut.ac.ir

%%%%%%%%%%%%%%%%%%%%%%%% Calculating the mean image

m = mean(T,2); % Computing the average face image m = (1/P)*sum(Tj'

s) (j = 1 : P)

Train_Number = size(T,2);

%%%%%%%%%%%%%%%%%%%%%%%% Calculating the deviation of each image from mean i mage

A = [];

for i = 1 : Train_Number

temp = double(T(:,i)) - m; % Computing the difference image for each ima ge in the training set Ai = Ti - m

A = [A temp]; % Merging all centered images

end

%%%%%%%%%%%%%%%%%%%%%%%% Snapshot method of Eigenface methos

% We know from linear algebra theory that for a PxQ matrix, the maximum

% number of non-zero eigenvalues that the matrix can have is min(P-1,Q-1).

% Since the number of training images (P) is usually less than the number

% of pixels (M*N), the most non-zero eigenvalues that can be found are equal % to P-1. So we can calculate eigenvalues of A'*A (a PxP matrix) instead of % A*A' (a M*NxM*N matrix). It is clear that the dimensions of A*A' is much

% larger that A'*A. So the dimensionality will decrease.

L = A'*A; % L is the surrogate of covariance matrix C=A*A'.

[V D] = eig(L); % Diagonal elements of D are the eigenvalues for both L=A'*

A and C=A*A'.

%%%%%%%%%%%%%%%%%%%%%%%% Sorting and eliminating eigenvalues

% All eigenvalues of matrix L are sorted and those who are less than a

% specified threshold, are eliminated. So the number of non-zero

% eigenvectors may be less than (P-1).

L_eig_vec = [];

for i = 1 : size(V,2)

if( D(i,i)>1 )

L_eig_vec = [L_eig_vec V(:,i)];

end

end

%%%%%%%%%%%%%%%%%%%%%%%% Calculating the eigenvectors of covariance matrix ' C'

% Eigenvectors of covariance matrix C (or so-called "Eigenfaces")

% can be recovered from L's eiegnvectors.

Eigenfaces = A * L_eig_vec; % A: centered image vectors

3. 图像识别

function OutputName = Recognition(TestImage, m, A, Eigenfaces)

% Recognizing step....

%

% Description: This function compares two faces by projecting the images int o facespace and

% measuring the Euclidean distance between them.

%

% Argument: TestImage - Path of the input test image

%

% m - (M*Nx1) Mean of the training

% database, which is output of 'Eige nfaceCore' function.

%

% Eigenfaces - (M*Nx(P-1)) Eigen vectors of the % covariance matrix of the training % database, which is output of 'Eige nfaceCore' function.

%

% A - (M*NxP) Matrix of centered image % vectors, which is output of 'Eigen faceCore' function.

%

% Returns: OutputName - Name of the recognized image in th e training database.

%

% See also: RESHAPE, STRCAT

% Original version by Amir Hossein Omidvarnia, October 2007

% Email: aomidvar@ece.ut.ac.ir %%%%%%%%%%%%%%%%%%%%%%%% Projecting centered image vectors into facespace

% All centered images are projected into facespace by multiplying in

% Eigenface basis's. Projected vector of each face will be its corresponding % feature vector.

ProjectedImages = [];

Train_Number = size(Eigenfaces,2);

for i = 1 : Train_Number

temp = Eigenfaces'*A(:,i); % Projection of centered images into facespac e

ProjectedImages = [ProjectedImages temp];

end

%%%%%%%%%%%%%%%%%%%%%%%% Extracting the PCA features from test image InputImage = imread(TestImage);

temp = InputImage(:,:,1);

[irow icol] = size(temp);

InImage = reshape(temp',irow*icol,1);

Difference = double(InImage)-m; % Centered test image

ProjectedTestImage = Eigenfaces'*Difference; % Test image feature vector

%%%%%%%%%%%%%%%%%%%%%%%% Calculating Euclidean distances

% Euclidean distances between the projected test image and the projection

% of all centered training images are calculated. Test image is

% supposed to have minimum distance with its corresponding image in the

% training database.

Euc_dist = [];

for i = 1 : Train_Number

q = ProjectedImages(:,i);

temp = ( norm( ProjectedTestImage - q ) )^2;

Euc_dist = [Euc_dist temp];

end

[Euc_dist_min , Recognized_index] = min(Euc_dist);

OutputName = strcat(int2str(Recognized_index),'.jpg');

PCA主成分分析计算步骤

主成分分析( Principal Component Analysis , PCA )是一种掌握事物主要矛盾的统计分析方法,它可以从多元事物中解析出主要影响因素,揭示事物的本质,简化复杂的问题。计算主成分的目的是将高维数据投影到较低维空间。给定 n 个变量的 m 个观察值,形成一个 n*m 的数据矩阵, n 通常比较大。对于一个由多个变量描述的复杂事物,人们难以认识,那么是否可以抓住事物主要方面进行重点分析呢?如果事物的主要方面刚好体现在几个主要变量上,我们只需要将这几个变量分离出来,进行详细分析。但是,在一般情况下,并不能直接找出这样的关键变量。这时我们可以用原有变量的线性组合来表示事物的主要方面, PCA 就是这样一种分析方法。 PCA 的目标是寻找 r ( r

基于PCA算法的人脸识别毕业设计论文

太原科技大学 毕业设计(论文) 设计(论文)题目:基于PCA算法的人脸识别

毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名:日期: 指导教师签名:日期: 使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:日期: Ⅰ

学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名:日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名:日期:年月日 导师签名:日期:年月日 Ⅰ

PCA算法详解

主成分分析法 主成分分析(Principal Component Analysis,简称PCA)方法是目前应用很广泛的一种代数特征提取方法,可以说是常用的一种基于变量协方差矩阵对样本中的信息进行处理、压缩和抽提的有效方法,主要通过K-L(Karhunen-Loeve)变换展开式从人脸数据库中提取人脸的主要特征[i],构成特征脸空间,在识别时将待测试的人脸图像投影到特征脸空间,得到一组投影系数,与数据库中各个人脸图像进行比对识别。这种方法保留了原向量在与其协方差矩阵最大特征值相对应的特征向量方向上的投影,即主分量(Principal Components),因此被称为主成分分析。由于PCA方法在进行降维处理和人脸特征提取方面的有效性,在人脸识别领域得到了广泛的应用。它的核心思想是:利用较少数据的特征对样本进行描述以达到降低特征空间维数的目的,根据样本点在多维空间的位置分布,以样本点在空间中变化最大方向,即方差最大方向,作为差别矢量来实现数据的特征提取。利用K-L变换抽取人脸的主要成分,利用特征脸法进行人脸识别的过程由训练阶段和识别阶段两个阶段组成。 3.1.1 K-L变换概述 K-L变换是Karhunen-Loeve变换的简称,是一种特殊的正交变换。它是建立在统计特性基础上的一种变换,它的突出优点是它能去相关性,而且是均方误差(Mean Square Error,MSE)意义下的最佳变换。 K-L变换的基本思想是在一个新的特征空间中将样本数据沿其特征矢量用对齐的方式进行旋转变换。这个变换有效地克服了样本数据向量间的相关性,从而去除那些只带有较少信息的数据以达到降低特征空间维数的目的。经过以上K-L 变换得到的特征是原图像向量的正交分解,其图像信息的总能量不变,不损失任何信息。在这个互相正交、可测量的特征空间中进行图像的特征提取可以有效地利用图像之间的差异,提取有效信息。K-L特征空间中,较大特征值所对应的特征向量体现原图像的总体趋势以及低频分量,较小特征值所对应特征向量体现原图像的细节变化以及高频分量所以人们用PCA法提取图像总体特征,其目的是用较少数量的特征对样本进行描述,同时又能保留所需要的识别信息。在人脸图像

基于PCA的人脸识别系统设计

1 HUNAN UNIVERSITY 毕业设计(论文) 设计论文题目基于PCA的人脸 识别系统 学生姓名李涛 学生学号20080810410 专业班级08级计科四班 学院名称信息科学与工程学院 指导老师潘华伟 学院院长章兢 20012 年 5 月18 日

摘要 随着计算机视觉技术的发展,以及社会的各个领域的需要,根据人固有的生物特征对人进行身份验证的课题吸引了一批研究人员,比较常见的有语音识别,指纹识别,人脸识别等技术。其中人脸识别因为识别率高、主动性强、使用方便等因素,在身份验证的各类方法中有独特的优势及相关的应用,成为了人体特征识别中的比较热门的研究课题。 本文首先阐述了人脸识别研究的历史,现状以及发展趋势,并说明了人脸识别的优势和难点。然后详细地说明人脸识别的两个部分:人脸检测和人脸识别。在人脸检测部分,本文主要介绍了基于haar分类器的检测方法,并详细说明了haar分类器的训练过程,讲述了分类器检测人脸的原理。在人脸识别部分,首先获取人的个人信息的,对人脸图像的采集并进行灰度化、归一化等预处理,然后采用PCA(主成分分析法)对采集到的图像进行特征提取,并存储相关的特征信息,最后对待识别的图像进行特征提取和分析,与训练的人脸图像数据计算欧式距离,最终识别出人的身份。在本文的最后,对实现的系统各项功能进行实验,对影响识别率的维数、采集图像数因素进行实验分析,并提出了主成分分析法人脸识别的优点和缺点。最后总结毕业设计中的不足,自己的心得体会,并对未来学习进行展望。 关键词:人脸检测,haar分类器,PCA,人脸识别

Abstract With the development of computer vision technology, and social needs in many areas, the subject of authentication according to the inherent biological characteristics attracted a group of researchers ,Voice recognition, fingerprint recognition, face recognition technology are common。Face recognition with the recognition rate, motivated, easy to use and other factors,has unique advantages in all kinds of authentication methods and related applications,has become a popular research topic in the human feature recognition。 This paper first describes the history, current situation and development trend of face recognition research, and describes the advantages and difficulties of face recognition。And then detail the recognition of two parts: face detection and face recognition。In the face detection part, the paper mainly describes the detection method based on haar classifier, and details of haar classifier training process, about the principle of the classification of the detected face。In face recognition part, it first obtains personal information the acquisition of face images and graying, owned by a pretreatment。And then using PCA (Principal Component Analysis) collected image feature extraction, and storage characteristics of information,int the last ,identifiable image feature extraction and analysis, and training of the face image data to calculate the Euclidean distance, and ultimately identify the identity of the person。In the last experiment, the dimension of the recognition rate, number of images collected factors experimental analysis, and the advantages and disadvantages of the principal component analysis for face recognition system implemented various functions. The final summary of graduate design deficiencies, and their own feelings and experiences and future learning prospects。 Keywords: face detection, Haar classifier, PCA, face recognition

python实验报告(经过pca算法)

#-*-coding:utf-8-*- """ Created on Fri923:15:472017 @author """ #-*-coding:utf-8-*- """ Created on Tue May3020:31:022017 @author: """ import pandas as pd import numpy as np from sklearn.preprocessing import Imputer from sklearn.cross_validation import train_test_split from sklearn import svm from sklearn import cross_validation from sklearn.decomposition import PCA from sklearn.lda import LDA def loadData(filePath): fr=open(filePath,'r+') lines=fr.readlines() Data=[] label=[] for line in lines: items=line.strip().split(",") label.append(items[0]) Data.append([float(items[i])for i in range(1,len(items))]) return Data,label if__name__=='__main__': x1_train,y1_train=loadData('C:\Users\Administrator\SPECTF.train') x_test,y_test=loadData('C:\Users\Administrator\SPECTF.test') x_train=[] y_train=[] for i in range(23,37): x_train.append(x1_train[i]) y_train.append(y1_train[i]) for i in range(173,187): x_train.append(x1_train[i]) y_train.append(y1_train[i])

基于matlab的人脸识别算法(PCA)

3.基于matlab的人脸识别算法 3.1 问题描述 对于一幅图像可以看作一个由像素值组成的矩阵,也可以扩展开,看成一个矢量,如一幅 N*N 象素的图像可以视为长度为N2 的矢量,这样就认为这幅图像是位于N2 维空间中的一个点,这种图像的矢量表示就是原始的图像空间,但是这个空间仅是可以表示或者检测图像的许多个空间中的一个。不管子空间的具体形式如何,这种方法用于图像识别的基本思想都是一样的,首先选择一个合适的子空间,图像将被投影到这个子空间上,然后利用对图像的这种投影间的某种度量来确定图像间的相似度,最常见的就是各种距离度量。因此,本次试题采用PCA算法并利用GUI实现。 对同一个体进行多项观察时,必定涉及多个随机变量X1,X2,…,Xp,它们都是的相关性, 一时难以综合。这时就需要借助主成分分析来概括诸多信息的主要方面。我们希望有一个或几个较好的综合指标来概括信息,而且希望综合指标互相独立地各代表某一方面的性质。 任何一个度量指标的好坏除了可靠、真实之外,还必须能充分反映个体间的变异。如果有一项指标,不同个体的取值都大同小异,那么该指标不能用来区分不同的个体。由这一点来看,一项指标在个体间的变异越大越好。因此我们把“变异大”作为“好”的标准来寻求综合指标。3.1.1 主成分的一般定义 设有随机变量X1,X2,…,Xp,其样本均数记为,,…,,样本标准差记为S1,S2,…,Sp。首先作标准化变换,我们有如下的定义: (1) 若C1=a11x1+a12x2+ … +a1pxp,…,且使 Var(C1)最大,则称C1为第一主成分; (2) 若C2=a21x1+a22x2+…+a2pxp,…,(a21,a22,…,a2p)垂直于(a11,a12,…,a1p),且使Var(C2)最大,则称C2为第二主成分; (3) 类似地,可有第三、四、五…主成分,至多有p个。 3.1.2 主成分的性质 主成分C1,C2,…,Cp具有如下几个性质: (1) 主成分间互不相关,即对任意i和j,Ci 和Cj的相关系数 Corr(Ci,Cj)=0 i j (2) 组合系数(ai1,ai2,…,aip)构成的向量为单位向量, (3) 各主成分的方差是依次递减的,即 Var(C1)≥Var(C2)≥…≥Var(Cp)

人脸识别PCA算法matlab实现及详细步骤讲解

%FaceRec.m %PCA人脸识别修订版,识别率88% %calc xmean,sigma and its eigen decomposition allsamples=[];%所有训练图像 for i=1:40 for j=1:5 a=imread(strcat('e:\ORL\s',num2str(i),'\',num2str(j),'.jpg')); %imshow(a); b=a(1:112*92);%b是行矢量1×N,其中N=10304,提取顺序是先列后行,即从上 到下,从左到右 b=double(b); allsamples=[allsamples;b];%allsamples是一个M*N矩阵,allsamples中每一行数 据代表一张图片,其中M=200 end end samplemean=mean(allsamples);%平均图片,1×N for i=1:200xmean(i,:)=allsamples(i,:)-samplemean;%xmean是一个M×N矩阵,xmean 每一行保存的数据是“每个图片数据-平均图片” end; %获取特征值及特征向量 sigma=xmean*xmean';%M*M阶矩阵 [v d]=eig(sigma); d1=diag(d); %按特征值大小以降序排列 dsort=flipud(d1); vsort=fliplr(v); %以下选择90%的能量 dsum=sum(dsort); dsum_extract=0; p=0; while(dsum_extract/dsum<0.9) p=p+1; dsum_extract=sum(dsort(1:p)); end i=1; %(训练阶段)计算特征脸形成的坐标系 base=xmean'*vsort(:,1:p)*diag(dsort(1:p).^(-1/2)); %base是N×p阶矩阵,除以dsort(i)^(1/2)是对人脸图像的标准化(使其方差为1) %详见《基于PCA的人脸识别算法研究》p31 %xmean'*vsort(:,i)是小矩阵的特征向量向大矩阵特征向量转换的过程 %while(i<=p&&dsort(i)>0) %base(:,i)=dsort(i)^(-1/2)*xmean'*vsort(:,i);%base是N×p阶矩阵,除以dsort(i)^(1/2)是对人脸图像的标准化(使其方差为1) %详见《基于PCA的人脸识别算法研究》p31 %i=i+1;%xmean'*vsort(:,i)是小矩阵的特征向量向大矩阵特 征向量转换的过程 %end %以下两行add by gongxun将训练样本对坐标系上进行投影,得到一个M*p阶矩阵allcoor allcoor=allsamples*base;%allcoor里面是每张训练人脸图片在M*p子空间中的一个点,即在子空间中的组合系数, accu=0;%下面的人脸识别过程中就是利用这些组合系数来进行识别

基于PCA的人脸识别算法实现毕业论文

基于PCA的人脸识别算法实现毕业论文 目录 前言 (1) 第一章人脸识别系统概述 (2) 第一节人脸识别的研究概况 (2) 第二节人脸识别的发展趋势 (3) 一、多数据融合与方法综合 (4) 二、动态跟踪人脸识别系统 (4) 三、基于小波神经网络的人脸识别 (4) 四、三维人脸识别 (4) 五、适应各种复杂背景的人脸分割技术 (4) 六、全自动人脸识别技术 (4) 第三节人脸识别技术的主要难点 (4) 一、复杂条件下人脸的检测和关键点定位 (5) 二、光照问题 (5) 三、资态问题 (5) 四、表情问题 (5) 五、遮挡问题 (5) 第四节人脸识别流程 (5) 一、人脸图像采集 (6) 二、预处理 (6) 三、特征提取 (6) 第五节本章小结 (7) 第二章人脸图像的获取 (9) 第一节人脸图像获取 (9) 第二节人脸分割 (9) 第三节人脸数据库 (10) 第四节本章小结 (11) 第三章人脸图像的预处理 (12)

第一节人脸图像格式 (12) 一、JPEG格式 (12) 二、JPEG2000格式 (12) 三、BMP格式 (13) 四、GIF格式 (13) 五、PNG格式 (13) 第二节人脸图像常用预处理方法 (14) 一、灰度变化 (14) 二、二值化 (15) 三、直方图均衡 (15) 四、图像滤波 (15) 五、图像锐化 (17) 六、图像归一化 (18) 第三节本章小结 (19) 第四章人脸识别 (20) 第一节主成分分析基本理论 (20) 一、什么是主成分分析? (20) 二、例子 (20) 三、基变换 (21) 四、方差 (23) 五、PCA求解:特征根分解 (27) 六、PCA的假设 (28) 七、总结: (28) 八、在计算机视觉领域的应用 (30) 第二节基于PCA人脸识别算法的实现 (31) 一、创建数据库 (32) 二、计算特征脸 (32) 三、人脸识别 (34) 第三节本章小结 (36) 结论 (37) 致谢 (38) 参考文献 (39) 附录 (40) 一、英文原文 (40) 二、英文翻译 (53)

人脸识别PCA算法matlab实现及详细步骤讲解

% FaceRec.m % PCA 人脸识别修订版,识别率88% % calc xmean,sigma and its eigen decomposition allsamples=[];%所有训练图像 for i=1:40 for j=1:5 a=imread(strcat('e:\ORL\s',num2str(i),'\',num2str(j),'.jpg')); % imshow(a); b=a(1:112*92); % b 是行矢量1×N,其中N=10304,提取顺序是先列后行,即从上 到下,从左到右 b=double(b); allsamples=[allsamples; b]; % allsamples 是一个M * N 矩阵,allsamples 中每一行数 据代表一张图片,其中M=200 end end samplemean=mean(allsamples); % 平均图片,1 × N for i=1:200 xmean(i,:)=allsamples(i,:)-samplemean; % xmean 是一个M × N 矩阵,xmean 每一行保存的数据是“每个图片数据-平均图片” end; % 获取特征值及特征向量 sigma=xmean*xmean'; % M * M 阶矩阵 [v d]=eig(sigma); d1=diag(d); % 按特征值大小以降序排列 dsort = flipud(d1); vsort = fliplr(v); %以下选择90%的能量 dsum = sum(dsort); dsum_extract = 0; p = 0; while( dsum_extract/dsum < 0.9) p = p + 1; dsum_extract = sum(dsort(1:p)); end i=1; % (训练阶段)计算特征脸形成的坐标系 base = xmean' * vsort(:,1:p) * diag(dsort(1:p).^(-1/2)); % base 是N×p 阶矩阵,除以dsort(i)^(1/2)是对人脸图像的标准化(使其方差为1) % 详见《基于PCA 的人脸识别算法研究》p31 % xmean' * vsort(:,i)是小矩阵的特征向量向大矩阵特征向量转换的过程 %while (i<=p && dsort(i)>0) % base(:,i) = dsort(i)^(-1/2) * xmean' * vsort(:,i); % base 是N×p 阶矩阵,除以dsort(i)^(1/2) 是对人脸图像的标准化(使其方差为1) % 详见《基于PCA 的人脸识别算法研究》p31 % i = i + 1; % xmean' * vsort(:,i)是小矩阵的特征向量向大矩阵特 征向量转换的过程 %end % 以下两行add by gongxun 将训练样本对坐标系上进行投影,得到一个M*p 阶矩阵allcoor allcoor = allsamples * base; % allcoor 里面是每张训练人脸图片在M*p 子空间中的一个点,即在子空间中的组合系数, accu = 0; % 下面的人脸识别过程中就是利用这些组合系数来进行识别

基于PCA的人脸识别

基于PCA的人脸识别 哲盼 (华北电力大学自动化系, 071003) 摘要:人脸识别技术,作为目前模式识别领域研究的热点也是难点之一,其最早提出可以追溯到1888年[1]。然而,到目前为止,由于人脸识别问题自身的复杂性,使得虽然有众多科学研究人员潜心研究多年,也做出了许多的成果,但离彻底解决并达到实用,仍旧有很多关键性的问题需要解决。本文结合研究生阶段参与教研室的科研项目,对人脸识别做了一定的研究。论文首先介绍了人脸识别的背景、研究围以及方法,对人脸识别领域的一些理论方法作了总体的介绍。本文中所采用的人脸识别方法是比较经典的PCA(Principle Component Analysis,主成分分析)[2-6]。 关键词:人脸识别,主成分分析,PCA,特征脸 PCA-based face recognition CHEN Zhe-pan (Department of Automation North China Electric Power University, Baoding 071003 China) Abstract:Techniques for face recognition were proposed by Francis Galton as early as 1888[1]In recent years considerable progress has been made in the area of face recognition:Through the development of techniques like Eigenfaces computers can now outperform humans in many face recognition tasks,particularly those in which large databases of faces must be searched.Whilst these methods performs extremely well under constrained conditions,the problem of face recognition under gross variations remains largely unsolved.This thesis details the PCA(Principle Component Analysis)algorithm and the development of a real-time face recognition system aimed to operate in constrained environments Keywords:face recognition,principle component analysis,PCA, Eigenfaces 0 引言 随着社会的不断发展进步以及各方面对快速有效的身份识别技术的迫切需求,生物特征识别技术在最近十年中得到了很快的发展。生物特征识别技术是为了验证身份而采用自动测量技术对身体的特征或个人行为特点进行采集处理,并将采集的特征或特点与模板进行比较,从而完成身份验证的一种解决方案。由于生物特征识别技术利用人本身所具有的特征(如指纹、虹膜、人脸等)进行身份认证,因而它比传统的根据人所携带物品(如)和你所记忆的容(如账号和密码)更加安全和可靠。我们有理由相信生物特征识别技术将使人们的生活方式产生重大的变化[7]。 人脸识别是生物特征识别技术的一种,它也是人们生活中最常用的一种身份认证手段,同时它也是当前最热门的模式识别研究课题之一。通过人脸我们可以判定许多信息:性别、种族、大致年龄及表情等。与其它的生物特征识别技术相比,人脸识别在采

PCA算法的数学知识---特征值分解和奇异值分解

PCA算法的数学知识---特征值分解和奇异值分解: 1)特征值: 如果说一个向量v是方阵X的特征向量,将一定可以表示成下面的形式: = Xv vλ 这时候λ就被称为特征向量v对应的特征值,一个矩阵的一组特征向量是一组正交向量。特征值分解是将一个矩阵分解成下面的形式: 1 =∑ X Q Q- 其中Q是这个矩阵X的特征向量组成的矩阵,Σ是一个对角阵,每一个对角线上的元素就是一个特征值。 首先,要明确的是,乘以一个矩阵其实就是一个线性变换,而且将一个矩阵乘以一个向量后得到的向量,其实就相当于对这个向量进行了线性变换。如果我们想要描述好一个变换,那我们就描述好这个变换主要的变化方向就好了。分解得到的Σ矩阵是一个对角阵,里面的特征值是由大到小排列的,这些特征值所对应的特征向量就是描述这个矩阵变化方向(从主要的变化到次要的变化排列)。通过特征值分解得到的前N个特征向量,就对应了这个矩阵最主要的N个变化方向。我们利用这前N个变化方向,就可以近似这个矩阵(变换)。也就是:提取这个矩阵最重要的特征。 总结一下,特征值分解可以得到特征值与特征向量,特征值表示的是这个特征到底有多重要,而特征向量表示这个特征是什么,可

少特别的快,在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上了。也就是说,我们也可以用前r 大的奇异值来近似描述矩阵,这里定义一下部分奇异值分解: ****T n p n r r r r p X U V ≈∑ r 是一个远小于n 、p 的数,右边的三个矩阵相乘的结果将会是一个接近于X 的矩阵,在这儿,r 越接近于p ,则相乘的结果越接近于X 。而这三个矩阵的面积之和(在存储观点来说,矩阵面积越小,存储量就越小)要远远小于原始的矩阵X ,我们如果想要压缩空间来表示原矩阵X ,我们存下这里的三个矩阵:U 、Σ、V 就好了。 奇异值与主成分分析(PCA ): PCA 的全部工作简单点说,就是对原始的空间中顺序地找一组相互正交的坐标轴,第一个轴是使得方差最大的,第二个轴是在与第一个轴正交的平面中使得方差最大的,第三个轴是在与第1、2个轴正交的平面中方差最大的,这样假设在N 维空间中,我们可以找到N 个这样的坐标轴,我们取前r 个去近似这个空间,这样就从一个N 维的空间压缩到r 维的空间了,但是我们选择的r 个坐标轴能够使得空间的压缩使得数据的损失最小。 假设矩阵每一行表示一个样本,每一列表示一个特征,用矩阵的语言来表示,对一个n* p 的矩阵X 进行坐标轴的变化,P 就是一个变换的矩阵,从一个p 维的空间变换到另一个p 维的空间,在空间中就会进行一些类似于旋转、拉伸的变化。

基于PCA的人脸识别研究报告

项目名称:基于PCA的人脸识别算法研究

摘要 随着人类社会的进步,以及科技水平的提高,一些传统的身份认证的方法逐渐暴露出各种问题,因此人们需要采用一种更加可靠安全的身份认证方法。毫无疑问人体的生物特征的独一无二的,特别是其不容易丢失及复制的特性很好满足了身份识别的需要。并且随着计算机科学技术和生物医学的发展使得利用生物特征识别成为了可能。因此基于指纹、人脸、视网膜等生物特征的识别方法也越来越多。由于人脸识别的操作快速简单,结果直观,准确可靠,不需要人的配合等优点已成为人们关注的焦点。主成分分析(PCA)法通过提取高维度的人脸图像的主元,使得图像在低维度空间中被处理来降低了图像处理的难度。由于其有效的解决了图像空间维数过高的问题,已经成为人脸识别领域非常重要的理论。此次研究的就是基于PCA的人脸识别算法的实现。 本文按照完整人脸识别流程来分析基于PCA的人脸识别算法实现的性能。首先使用常用的人脸图像的获取方法获取人脸图像。本文为了更好的分析基于PCA人脸识别系统的性能分别选用了Essex人脸数据库和ORL人脸库,并在后期采用了自建的人脸库。接下来是人脸图像预处理方法。由于采用的人脸图像质量较好,而且已经做过相应的预处理,所以本文试验中只使用灰度处理。接着使用PCA提取人脸特征,使用奇异值分解定理计算协方差矩阵的特征值和特征向量以及使用最近邻法分类器欧几里得距离来进行人脸判别分类。在实验中我们发现基于PCA的人脸识别系统的识别率很高,而且具有一定鲁棒性,所以基于PCA的人脸识别算法的实现的研究还是有意义。 【关键词】人脸识别 PCA算法奇异值分解定理欧几里得距离

经典的PCA和LDA算法介绍

LDA: LDA的全称是Linear Discriminant Analysis(线性判别分析),是一种supervised learning。有些资料上也称为是Fisher’s Linear Discriminant,因为它被Ronald Fisher发明自1936年,Discriminant这次词我个人的理解是,一个模型,不需要去通过概率的方法来训练、预测数据,比如说各种贝叶斯方法,就需要获取数据的先验、后验概率等等。LDA 是在目前机器学习、数据挖掘领域经典且热门的一个算法,据我所知,百度的商务搜索部里面就用了不少这方面的算法。 LDA的原理是,将带上标签的数据(点),通过投影的方法,投影到维度更低的空间中,使得投影后的点,会形成按类别区分,一簇一簇的情况,相同类别的点,将会在投影后的空间中更接近。要说明白LDA,首先得弄明白线性分类器(Linear Classifier):因为LDA是一种线性分类器。对于K-分类的一个分类问题,会有K个线性函数: 当满足条件:对于所有的j,都有Yk > Yj,的时候,我们就说x属于类别k。对于每一个分类,都有一个公式去算一个分值,在所有的公式得到的分值中,找一个最大的,就是所属的分类了。 上式实际上就是一种投影,是将一个高维的点投影到一条高维的直线上,LDA最求的目标是,给出一个标注了类别的数据集,投影到了一条直线之后,能够使得点尽量的按类别区分开,当k=2即二分类问题的时候,如下图所示: 红色的方形的点为0类的原始点、蓝色的方形点为1类的原始点,经过原点的那条线就是投影的直线,从图上可以清楚的看到,红色的点和蓝色的点被原点明显的分开了,这个数

matlab PCA算法程序

%calc xmean,sigma and its eigen decomposition allsamples=[];%所有训练图像 for i=1:40 for j=1:5 a=imread(strcat('D:\rawdata\ORL\s',num2str(i),'\',num2str(j),'.pgm')); %imshow(a); b=a(1:112*92);%b是行矢量1×N,其中N=10304,提取顺序是先列后行,即从上到下,从左到右 b=double(b); allsamples=[allsamples;b];%allsamples是一个M*N矩阵,allsamples中每一行数据代表一张图片,其中M=200 end end samplemean=mean(allsamples);%平均图片,1×N for i=1:200xmean(i,:)=allsamples(i,:)-samplemean;%xmean是一个M×N矩阵,xmean每一行保存的数据是“每个图片数据-平均图片” end; sigma=xmean*xmean';%M*M阶矩阵 [v d]=eig(sigma); d1=diag(d); [d2index]=sort(d1);%以升序排序 cols=size(v,2);%特征向量矩阵的列数 for i=1:cols vsort(:,i)=v(:,index(cols-i+1));%vsort是一个M*col(注:col一般等于M) 阶矩阵,保存的是按降序排列的特征向量,每一列构成一个特征向量dsort(i)=d1(index(cols-i+1));%dsort保存的是按降序排列的特征值,是一维行向量 end%完成降序排列 %以下选择90%的能量 dsum=sum(dsort); dsum_extract=0; p=0; while(dsum_extract/dsum<0.9) p=p+1; dsum_extract=sum(dsort(1:p)); end

基于PCA和SVM的人脸识别方法

基于PCA 和SVM 的人脸识别方法 一、PCA 算法 1 计算特征脸 设人脸图像f(x,y)为二维m n ?灰度图像,用nm 维向量R 表示。人脸图像训练集为 {}p i R i ,,2,1 =,其中p 为训练集中图像总数。这p 幅图像的平均向量为: ∑==p i i R p R 1 1 对训练样本规范化,即每个人脸i R 与平均人脸R 的差值向量: R R A i i -= p i ,,2,1 = 其中列向量i A 表示一个训练样本。 训练图像由协方差矩阵可表示为: T AA C = 其中训练样本p nm ?维矩阵],,,[21p A A A A = 特征脸由协方差矩阵C 的正交特征向量组成。对于nm 维人脸图像,协方差矩阵C 的大小为nm ×nm ,对它求解特征值和特征向量是很困难的,由此引入奇异值分解定理来解决维数过高的问题。 2 奇异值分解定理 奇异值分解定理( Singular Value Decomposition 简称SVD 定理)原理表述如下: 其中A 是一个秩为r 的r n ?维矩阵,则存在两个正交矩阵: r n r R u u u U ?-∈=],,,[110 I U U T = r r r R v v v V ?-∈=],,,[110 I V V T = 以及对角矩阵 r r r R diag ?-∈=Λ],,,[110λλλ 且110-≥≥≥r λλλ 满足下试: T V U A 2 1Λ= 其中: )1,,1,0(-=r i i λ为矩阵T AA 和A A T 的非零特征值, i u 与i v 分别为T AA 和A A T

对应于i λ的特征向量。上述分解称为矩阵A 的奇异值分解(简称SVD ),i λ为A 的奇异值。 由上述定理可以得到一个推论: 1 Λ=AV U 由于协方差矩阵T AA C =,故构造矩阵: p p T R A A L ?∈= ,容易求出其特征值i λ及相应的 正交归一特征向量),,2,1(p i v i =。有上述推论可知,C 的正交归一特征向量i u 为: i i i Av u λ1 = p i ,,2,1 = 这就是图像的特征向量,它是计算p p ?低维矩阵L 的特征值和特征向量而间接求出来的。实际上l )(p l <个特征值足够用于人脸识别。因此仅取L 的前l 个最大特征值的特征向量计算特征脸。 3 特征向量的选取 我们总共得到了p (训练样本数目)个特征向量。虽然p 比nm 小很多。但通常情况下,p 仍然会太大。根据应用的要求,并不是所有的i u 都有很大的保留意义。 考虑到使用L K -变换做为对人脸图像的压缩手段,可以选取最大的前l 个特征向量,使得: αλ λ≥∑∑==p i i l i i 11 在实际中,可以选择90.0=α,或者自定义的其他值。这说明样本集在前l 个轴上的能量占到整个能量的90%以上。 4 基于特征脸的人脸识别 基于特征脸的人脸识别过程由训练阶段和识别阶段两个阶段组成。在训练阶段,每个已知规范化后的人脸i A 映射到由特征脸张成的子空间上,得到l 维向量: i T i A U C = p i ,,2,1 = 其中T l i c c c C ],,,[21 =,],,,[21l u u u U =,p 为人脸数目。 在识别阶段,首先把待识别的图像规范化后的人脸R R A i -'='映射到特征脸空间,得到

【免费下载】PCA算法的原理及其示例

PCA 算法的原理及其示例郑琛(北京师范大学,北京 100875)摘要:主成分分析是一种掌握事物主要矛盾的统计分析方法,它可以从多元事物中解析出主要影响因素,揭示事物的本质,简化复杂的问题,对于某些复杂数据就可应用主成分分析法对其进行简化。计算主成分的目的是将高维数据投影到较低维空间。文中介绍了PCA 算法的基本概念和基本原理,利用算法在降维和特征提取方面的有效性,结合人脸识别的实例进行详细的阐述。关键字:主成分分析;数据降维;特征提取1、PCA 算法的基本概念 PCA 是Principal component analysis 的缩写,中文翻译为主成分分析。主成分又称主分量、主元素。它是研究如何通过原来变量的少数几个线性组合来解释随机向量的方差-协方差结构,是数据压缩和特征提取中一种多维向量的统计分析方法[1]。这种方法可以有效的找出数据中最“主要”的元素和结构,去除噪音[2]和冗余,将原有的复杂数据降维,揭示隐藏在复杂数据背后的简单结构。它的优点是简单, 而且无参数限制,可以方便的应用与各个场合。因此应用极其广泛,从神经科学到计算机图形学都有它的用武之地。被誉为应用线形代数 最有价值的结果之一。2、PCA 算法的原理与基本思想 PCA 算法的原理是设法将原来变量重新组合成一组新的互相无关的几个综合变量,同时根据实际需要从中可以取出几个较少的总和变量尽可能多地反映原来变量的信息的统计的方法,也是数学上、管路敷设技术通过管线敷设技术,不仅可以解决吊顶层配置不规范问题,而且可保障各类管路习题到位。在管路敷设过程中,要加强看护关于管路高中资料试卷连接管口处理高中资料试卷弯扁度固定盒位置保护层防腐跨接地线弯曲半径标高等,要求技术交底。管线敷设技术中包含线槽、管架等多项方式,为解决高中语文电气课件中管壁薄、接口不严等问题,合理利用管线敷设技术。线缆敷设原则:在分线盒处,当不同电压回路交叉时,应采用金属隔板进行隔开处理;同一线槽内,强电回路须同时切断习题电源,线缆敷设完毕,要进行检查和检测处理。、电气课件中调试对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料试卷相互作用与相互关系,根据生产工艺高中资料试卷要求,对电气设备进行空载与带负荷下高中资料试卷调控试验;对设备进行调整使其在正常工况下与过度工作下都可以正常工作;对于继电保护进行整核对定值,审核与校对图纸,编写复杂设备与装置高中资料试卷调试方案,编写重要设备高中资料试卷试验方案以及系统启动方案;对整套启动过程中高中资料试卷电气设备进行调试工作并且进行过关运行高中资料试卷技术指导。对于调试过程中高中资料试卷技术问题,作为调试人员,需要在事前掌握图纸资料、设备制造厂家出具高中资料试卷试验报告与相关技术资料,并且了解现场设备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。 、电气设备调试高中资料试卷技术电力保护装置调试技术,电力保护高中资料试卷配置技术是指机组在进行继电保护高中资料试卷总体配置时,需要在最大限度内来确保机组高中资料试卷安全,并且尽可能地缩小故障高中资料试卷破坏范围,或者对某些异常高中资料试卷工况进行自动处理,尤其要避免错误高中资料试卷保护装置动作,并且拒绝动作,来避免不必要高中资料试卷突然停机。因此,电力高中资料试卷保护装置调试技术,要求电力保护装置做到准确灵活。对于差动保护装置高中资料试卷调试技术是指发电机一变压器组在发生内部故障时,需要进行外部电源高中资料试卷切除从而采用高中资料试卷主要保护装置。

相关主题
文本预览
相关文档 最新文档