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

人脸识别PCA算法matlab实现及详细步骤讲解
人脸识别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;%下面的人脸识别过程中就是利用这些组合系数来进行识别

for i=1:40

for j=6:10%读入40x5副测试图像

a=imread(strcat('e:\ORL\s',num2str(i),'\',num2str(j),'.jpg'));

b=a(1:10304);

b=double(b);

tcoor=b*base;%计算坐标,是1×p阶矩阵

for k=1:200

mdist(k)=norm(tcoor-allcoor(k,:));

end;

%三阶近邻

[dist,index2]=sort(mdist);

class1=floor((index2(1)-1)/5)+1;

class2=floor((index2(2)-1)/5)+1;

class3=floor((index2(3)-1)/5)+1;

if class1~=class2&&class2~=class3

class=class1;

elseif class1==class2

class=class1;

elseif class2==class3

class=class2;

end;

if class==i

accu=accu+1;

end;

end;

end;

accuracy=accu/200%输出识别率

特征人脸

%eigface.m

function[]=eigface()

%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

p=199;

%(训练阶段)计算特征脸形成的坐标系

%while(i<=p&&dsort(i)>0)

%base(:,i)=dsort(i)^(-1/2)*xmean'*vsort(:,i);%base是N×p阶矩阵,除以

dsort(i)^(1/2)是对人脸图像的标准化,详见《基于PCA的人脸识别算法研究》p31

%i=i+1;%xmean'*vsort(:,i)是小矩阵的特征向量向大矩

阵特征向量转换的过程

%end

base=xmean'*vsort(:,1:p)*diag(dsort(1:p).^(-1/2));

%生成特征脸

for(k=1:p),

temp=reshape(base(:,k),112,92);

newpath=['d:\test\'int2str(k)'.jpg'];

imwrite(mat2gray(temp),newpath);

end

avg=reshape(samplemean,112,92);

imwrite(mat2gray(avg),'d:\test\average.jpg');

%将模型保存

save('e:\ORL\model.mat','base','samplemean');

人脸重建

%Reconstruct.m

function[]=reconstruct()

load e:\ORL\model.mat;

%计算新图片在特征子空间中的系数

img='D:\test2\10.jpg'

a=imread(img);

b=a(1:112*92);%b是行矢量1×N,其中N=10304,提取顺序是先列后行,即从上到下,从左到右

b=double(b);

b=b-samplemean;

c=b*base;%c是图片a在子空间中的系数,是1*p行矢量

%根据特征系数及特征脸重建图

%前15个

t=15;

temp=base(:,1:t)*c(1:t)';

temp=temp+samplemean';

imwrite(mat2gray(reshape(temp,112,92)),'d:\test2\t1.jpg');

%前50个

t=50;

temp=base(:,1:t)*c(1:t)';

temp=temp+samplemean';

imwrite(mat2gray(reshape(temp,112,92)),'d:\test2\t2.jpg');

%前100个

t=100;

temp=base(:,1:t)*c(1:t)';

temp=temp+samplemean';

imwrite(mat2gray(reshape(temp,112,92)),'d:\test2\t3.jpg'); %前150个

t=150;

temp=base(:,1:t)*c(1:t)';

temp=temp+samplemean';

imwrite(mat2gray(reshape(temp,112,92)),'d:\test2\t4.jpg'); %前199个

t=199;

temp=base(:,1:t)*c(1:t)';

temp=temp+samplemean';

imwrite(mat2gray(reshape(temp,112,92)),'d:\test2\t5.jpg');

基于2DPCA与(2D)2PCA的人脸识别(第二

版)

基于matlab的人脸识别源代码

function varargout = FR_Processed_histogram(varargin) %这种算法是基于直方图处理的方法 %The histogram of image is calculated and then bin formation is done on the %basis of mean of successive graylevels frequencies. The training is done on odd images of 40 subjects (200 images out of 400 images) %The results of the implemented algorithm is 99.75 (recognition fails on image number 4 of subject 17) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @FR_Processed_histogram_OpeningFcn.,.. 'gui_OutputFcn', @FR_Processed_histogram_OutputFcn.,.. 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

基于matlab程序实现人脸识别

基于m a t l a b程序实现 人脸识别 TYYGROUP system office room 【TYYUA16H-TYY-TYYYUA8Q8-

基于m a t l a b程序实现人脸识别 1.人脸识别流程 基于YCbCr颜色空间的肤色模型进行肤色分割。在YCbCr色彩空间内对肤色进行了建模发现,肤色聚类区域在Cb—Cr子平面上的投影将缩减,与中心区域显着不同。采用这种方法的图像分割已经能够较为精确的将人脸和非人脸分割开来。 人脸识别流程图 2.人脸识别程序 (1)人脸和非人脸区域分割程序 function result = skin(Y,Cb,Cr) %SKIN Summary of this function goes here % Detailed explanation goes here a=; b=; ecx=; ecy=; sita=; cx=; cy=; xishu=[cos(sita) sin(sita);-sin(sita) cos(sita)]; %如果亮度大于230,则将长短轴同时扩大为原来的倍 if(Y>230) a=*a; b=*b; end %根据公式进行计算 Cb=double(Cb); Cr=double(Cr);

t=[(Cb-cx);(Cr-cy)]; temp=xishu*t; value=(temp(1)-ecx)^2/a^2+(temp(2)-ecy)^2/b^2; %大于1则不是肤色,返回0;否则为肤色,返回1 if value>1 result=0; else result=1; end end (2)人脸的确认程序 function eye = findeye(bImage,x,y,w,h) %FINDEYE Summary of this function goes here % Detailed explanation goes here part=zeros(h,w); %二值化 for i=y:(y+h) for j=x:(x+w) if bImage(i,j)==0 part(i-y+1,j-x+1)=255; else part(i-y+1,j-x+1)=0; end end end [L,num]=bwlabel(part,8); %如果区域中有两个以上的矩形则认为有眼睛 if num<2 eye=0;

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

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

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

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

人脸识别系统设计与仿真 基于matlab的(含matlab源程序)版权不归自己 交流使用

人脸识别系统设计与仿真基于matlab的(含matlab源程序) 交流使用参考后自行那个删除后果自负 目录 第一章绪论 (2) 1.1 研究背景 (2) 1.2 人脸图像识别的应用前景 (3) 1.3 本文研究的问题 (4) 1.4 识别系统构成 (5) 1.5 论文的内容及组织 (7) 第二章图像处理的Matlab实现 (8) 2.1 Matlab简介 (8) 2.2 数字图像处理及过程 (8) 2.2.1图像处理的基本操作 (8) 2.2.2图像类型的转换 (9) 2.2.3图像增强 (9) 2.2.4边缘检测 (10) 2.3图像处理功能的Matlab实现实例 (11) 2.4 本章小结 (15) 第三章人脸图像识别计算机系统 (16) 3.1 引言 (16) 3.2系统基本机构 (17)

3.3 人脸检测定位算法 (18) 3.4 人脸图像的预处理 (25) 3.4.1 仿真系统中实现的人脸图像预处理方法 (26) 第四章基于直方图的人脸识别实现 (29) 4.1识别理论 (29) 4.2 人脸识别的matlab实现 (29) 4.3 本章小结 (30) 第五章总结 (31) 致谢 (32) 参考文献 (33) 附录 (35)

第一章绪论 本章提出了本文的研究背景及应用前景。首先阐述了人脸图像识别意义;然后介绍了人脸图像识别研究中存在的问题;接着介绍了自动人脸识别系统的一般框架构成;最后简要地介绍了本文的主要工作和章节结构。 1.1 研究背景 自70年代以来.随着人工智能技术的兴起.以及人类视觉研究的进展.人们逐渐对人脸图像的机器识别投入很大的热情,并形成了一个人脸图像识别研究领域,.这一领域除了它的重大理论价值外,也极具实用价值。 在进行人工智能的研究中,人们一直想做的事情就是让机器具有像人类一样的思考能力,以及识别事物、处理事物的能力,因此从解剖学、心理学、行为感知学等各个角度来探求人类的思维机制、以及感知事物、处理事物的机制,并努力将这些机制用于实践,如各种智能机器人的研制。人脸图像的机器识别研究就是在这种背景下兴起的,因为人们发现许多对于人类而言可以轻易做到的事情,而让机器来实现却很难,如人脸图像的识别,语音识别,自然语言理解等。如果能够开发出具有像人类一样的机器识别机制,就能够逐步地了解人类是如何存储信息,并进行处理的,从而最终了解人类的思维机制。 同时,进行人脸图像识别研究也具有很大的使用价依。如同人的指纹一样,人脸也具有唯一性,也可用来鉴别一个人的身份。现在己

(完整word版)基于MATLAB的人脸识别

图像识别 题目:基于MATLAB的人脸识别 院系:计算机科学与应用系 班级: 姓名: 学号: 日期:

目录 引言 (1) 1 人脸识别技术 (2) 1.1人脸识别的研究内容 (2) 1.1.1人脸检测(Face Detection) (2)

1.1.2人脸表征(Face Representation) (2) 1.2几种典型的人脸识别方法 (3) 1.2.1基于几何特征的人脸识别方法 (3) 1.2.2基于K-L变换的特征脸方法 (4) 1.2.3神经网络方法 (4) 1.2.4基于小波包的识别方法 (5) 1.2.5支持向量机的识别方法 (5) 2 人脸特征提取与识别 (5) 2.1利用PCA进行特征提取的经典算法——Eigenface算法 (6) 2.2 PCA人脸识别流程 (6) 2.3特征向量选取 (8) 2.4距离函数的选择 (9) 2.5 基于PCA的人脸识别 (9) MATLAB人脸识别程序 (10) 3 MATLAB软件程序编写 (10) 3.1.创建图片数据库 (10) 3.2 主程序 (11) 3.3最终程序结果 (12) 4 心得与体会 (12) 参考文献 (13)

引言 随着社会的发展及技术的进步,社会各方面对快速高效的自动身份验证的需求可以说无处不在,并与日俱增。例如,某人是否是我国的居民,是否有权进入某安全系统,是否有权进行特定的交易等。尤其是自2001年美国“9.1l”恐怖袭击发生以来,如何在车站、机场等公共场所利用高科技手段,迅速而准确地发现并确认可疑分子成了目前世界各国在反恐斗争中普遍关注的问题。为此,各国都投入大量人力、物力研究发展各类识别技术,使得生物特征识别技术得到了极大的发展。生物特征识别技术主要包括:人脸识别、虹膜识别、指纹识别、步态识别、语音识别、笔迹识别、掌纹识别以及多生物特征融合识别等。人类通过视觉识别文字,感知外界信息。在客观世界中,有75%的信息量都来自视觉,因此让计算机或机器人具有视觉,是人工智能的重要环节。由于生物特征是人的内在属性,具有很强的稳定性和个体差异性,因此是身份验证最理想的依据。与虹膜、指纹、基因、掌纹等其他人体生物特征识别系统相比,人脸识别系统更加直接、方便、友好,易于为用户所接受,并且通过人脸的表情、姿态分析,还能获得其它识别系统难以得到的一些信息。 人脸识别技术在国家重要机关及社会安防领域具有广泛用途。例如:公安系统的罪犯识别、信用卡验证、医学、档案管理、视频会议、人机交互系统等身份识别和各类卡持有人的身份验证。同其他人体生物特征(如:指纹、掌纹、虹膜、语音等)识别技术相比,人脸识别技术的隐性最好,人脸识别系统更直接、友好,是当今国际反恐和安防最重视的科技手段和攻关标志之一。虽然人类能毫不费力地识别出人脸及表情,但对人脸的机器自动识别确实一个难度极大的课题,它涉及到模式识别、图像处理及生理、心理学等诸多方面的知识。人脸识别技术的研究虽然己经取得了一定的可喜成果,但在实际应用中仍存在着许多严峻的问题。人脸的非刚体性、姿态、表情、发型以及化妆的多样性都给正确识别带来了困难,要让计算机像人一样方便地识别出大量的人脸,尚需不同科学研究领域的科学家共同不懈的努力。

基于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

人脸识别MATLAB代码

1.色彩空间转换 function [r,g]=rgb_RGB(Ori_Face) R=Ori_Face(:,:,1); G=Ori_Face(:,:,2); B=Ori_Face(:,:,3); R1=im2double(R); % 将uint8型转换成double型G1=im2double(G); B1=im2double(B); RGB=R1+G1+B1; row=size(Ori_Face,1); % 行像素 column=size(Ori_Face,2); % 列像素 for i=1:row for j=1:column rr(i,j)=R1(i,j)/RGB(i,j); gg(i,j)=G1(i,j)/RGB(i,j); end end rrr=mean(rr); r=mean(rrr); ggg=mean(gg); g=mean(ggg); 2.均值和协方差 t1=imread('D:\matlab\皮肤库\1.jpg');[r1,g1]=rgb_RGB(t1); t2=imread('D:\matlab\皮肤库\2.jpg');[r2,g2]=rgb_RGB(t2); t3=imread('D:\matlab\皮肤库\3.jpg');[r3,g3]=rgb_RGB(t3); t4=imread('D:\matlab\皮肤库\4.jpg');[r4,g4]=rgb_RGB(t4); t5=imread('D:\matlab\皮肤库\5.jpg');[r5,g5]=rgb_RGB(t5); t6=imread('D:\matlab\皮肤库\6.jpg');[r6,g6]=rgb_RGB(t6); t7=imread('D:\matlab\皮肤库\7.jpg');[r7,g7]=rgb_RGB(t7); t8=imread('D:\matlab\皮肤库\8.jpg');[r8,g8]=rgb_RGB(t8);

基于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的人脸识别算法实现毕业论文

基于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)

人脸识别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

基于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]。 人脸识别是生物特征识别技术的一种,它也是人们生活中最常用的一种身份认证手段,同时它也是当前最热门的模式识别研究课题之一。通过人脸我们可以判定许多信息:性别、种族、大致年龄及表情等。与其它的生物特征识别技术相比,人脸识别在采

基于matlab的人脸识别技术

基于matlab 的人脸识别技术 论文 摘要:随着计算机技术的飞速发展,人脸识别技术逐渐发展壮大起来,并应用到众多领域。 人脸识别是指在人脸检测的基础上针对输入的人脸图像,通过特征提取与特征匹配,找出与人脸库中匹配的人脸图像,从而达到识别效果。当前主要采取的人脸识别方法有:基于几何特征的方法 ,基于模板的方法和基于模型的方法。 这些方法较适合于人脸信息的验证,即待识别者是否为预先指定的对象。不足之处在于,需要建立一个拥有庞大人脸信息的训练样本库,因此就降低了输出结果的时效性和准确性。在应用领域中存在局限性,不适于具有庞大人脸样本训练库的身份鉴别领域。鉴于种种不足,本文提出了一种基于可变人脸库的快速人脸识别方法,使人脸识别技术适用于更多的行业。网络信息化时代的一大特征就是身份的数字化和隐性化,如何准确鉴定一个人的身份,保护信息安全是当今信息化时代必须解决的一个关键社会问题。正在悄然兴起的人脸识别技术正好可以解决这一问题。 关键词:模式识别,K-L 变换,人脸识别,图像处理,matlab,图像增强,边缘检测,图像预处理,灰度直方图,特征提取 1.1识别系统构成 自动人脸识别系统具有如图所示的一半框架并完成相应功能的任务。 (1)人脸图像的获取:一般来说,图像的获取都是通过摄像头摄取,氮摄取的图像可以是真人,也可以是人脸的图片或者为了相对简单,可以不考虑通过摄像头来摄取头像,而是直接给定要识别的图像。 (2)人脸的检测:人脸检测的任务是判断静态图像中是否存在人脸。若存在人脸,给出其在图像中的坐标位置,人脸区域大小等信息。而人脸跟踪需要进一步输出所检测到的人脸位置,大小等状态随时间的连续变化情况。 (3)特征提取通过人脸特征点的检测与标定可以确定人脸图像中显著特征点的位置(如眼睛,眉毛,鼻子,嘴巴等器官),同时还可以得到这些器官及其面部轮廓的形状信息的描述。 1.人脸特征提取的算法:K-L 变换是图像压缩中的一种最优正交变换,通过它可以把人脸样本从高维空间表示转换到低维空间表示,且由低维空恢复的人脸样本和原人脸样本具有最小的均方误差,从而可用人脸样本在低维空间的变换系数作为对人脸特征的描述。其中主元分析法(PCA )就是基于K-L 变换的一种比较流行的算法,它是统计学中分析数据的一种有效的方法,其目的是在数据间中找到一组向量以尽可能地解释数据的方差,将数据从原来的R 维空间将维投影到M 维空间(R>>M)并保存数据的主要信息,从而使数据更易于处理.按照K-L 变换识别算法流程.从人脸样本中提取面部特征.是人脸识别中重要步骤.其实质是一个从高维图像空间到低维数字空间的转换过程,可表示为:Y=T{x} 式中:x 表示原始数据,Y 表示为特征信息,T 表示映射 人脸样本特征提取算法如下:首先计算该库中所有样本的平均值(平均脸): ∑==p i n f P f 1 1 式中;P 表示照片数.f 表示每张照片的线性表示然后构建协方差矩阵: T T i p i i A A f f P C ?==∑=)'('11 式中:f f f i -='表示每张照片与样本平均值的差。A 表示差值形成的矩阵 接着,进行特征的提取:由于此协方差矩阵进行求解特征值和特征向量比较困难的,因此采用奇异值分解的方法得到特征矩阵。 i T i f U Y '=

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

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

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

人脸识别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; % 下面的人脸识别过程中就是利用这些组合系数来进行识别

基于matlab程序实现人脸识别

1.人脸识别流程 基本原理 基于YCbCr颜色空间的肤色模型进行肤色分割。在YCbCr色彩空间内对肤色进行了建模发现,肤色聚类区域在Cb—Cr子平面上的投影将缩减,与中心区域显著不同。采用这种方法的图像分割已经能够较为精确的将人脸和非人脸分割开来。 流程图 人脸识别流程图 读入原始图像 将图像转化为YCbCr颜色空 间 利用肤色模型二值化图像并 作形态学处理 选取出二值图像中的白色区 域,度量区域属性,筛选后 得到所有矩形块 否 筛选特定区域(高度和宽度的比率 在(0.6~2)之间,眼睛特征) 是 存储人脸的矩形区域 特殊区域根据其他信息筛 选,标记最终的人脸区域

2.人脸识别程序 (1)人脸和非人脸区域分割程序 function result = skin(Y,Cb,Cr) %SKIN Summary of this function goes here % Detailed explanation goes here a=; b=; ecx=; ecy=; sita=; cx=; cy=; xishu=[cos(sita) sin(sita);-sin(sita) cos(sita)]; %如果亮度大于230,则将长短轴同时扩大为原来的倍 if(Y>230) a=*a; b=*b; end %根据公式进行计算

Cb=double(Cb); Cr=double(Cr); t=[(Cb-cx);(Cr-cy)]; temp=xishu*t; value=(temp(1)-ecx)^2/a^2+(temp(2)-ecy)^2/b^2; %大于1则不是肤色,返回0;否则为肤色,返回1 if value>1 result=0; else result=1; end end (2)人脸的确认程序 function eye = findeye(bImage,x,y,w,h) %FINDEYE Summary of this function goes here % Detailed explanation goes here part=zeros(h,w); %二值化

人脸识别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;%下面的人脸识别过程中就是利用这些组合系数来进行识别

相关文档
最新文档