人脸识别课程设计报告材料.docx

上传人:b****1 文档编号:319398 上传时间:2023-04-28 格式:DOCX 页数:9 大小:164.97KB
下载 相关 举报
人脸识别课程设计报告材料.docx_第1页
第1页 / 共9页
人脸识别课程设计报告材料.docx_第2页
第2页 / 共9页
人脸识别课程设计报告材料.docx_第3页
第3页 / 共9页
人脸识别课程设计报告材料.docx_第4页
第4页 / 共9页
人脸识别课程设计报告材料.docx_第5页
第5页 / 共9页
人脸识别课程设计报告材料.docx_第6页
第6页 / 共9页
人脸识别课程设计报告材料.docx_第7页
第7页 / 共9页
人脸识别课程设计报告材料.docx_第8页
第8页 / 共9页
人脸识别课程设计报告材料.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

人脸识别课程设计报告材料.docx

《人脸识别课程设计报告材料.docx》由会员分享,可在线阅读,更多相关《人脸识别课程设计报告材料.docx(9页珍藏版)》请在冰点文库上搜索。

人脸识别课程设计报告材料.docx

人脸识别课程设计报告材料

 

用Matlab实现人脸识别

 

学院:

信息工程学院

班级:

计科软件普131

成员:

 

一、问题描述

在一个人脸库中,有15个人,每人有11幅图像。

要求选定每一个人的若干幅图像组成样本库,由样本库得到特征库。

再任取图像库的一张图片,识别它的身份。

对于一幅图像可以看作一个由像素值组成的矩阵,也可以扩展开,看成一个矢量。

如一幅N*N象素的图像可以视为长度为N2的矢量,这样就认为这幅图像是位于N2维空间中的一个点,这种图像的矢量表示就是原始的图像空间,但是这个空间仅是可以表示或者检测图像的许多个空间中的一个。

不管子空间的具体形式如何,这种方法用于图像识别的基本思想都是一样的,首先选择一个合适的子空间,图像将被投影到这个子空间上,然后利用对图像的这种投影间的某种度量来确定图像间的相似度,最常见的就是各种距离度量。

因此,本次采用PCA算法确定一个子空间,最后使用最小距离法进行识别,并用matlab实现。

二、PCA原理和人脸识别方法

1)K-L变换

K-L变换以原始数据的协方差矩阵的归一化正交特征矢量构成的正交矩阵作为变换矩阵,对原始数据进行正交变换,在变换域上实现数据压缩。

它具有去相关性、能量集中等特性,属于均方误差测度下,失真最小的一种变换,是最能去除原始数据之间相关性的一种变换。

PCA则是选取协方差矩阵前k个最大的特征值的特征向量构成K-L变换矩阵。

2)主成分的数目的选取

保留多少个主成分取决于保留部分的累积方差在方差总和中所占百分比(即累计贡献率),它标志着前几个主成分概括信息之多寡。

实践中,粗略规定一个百分比便可决定保留几个主成分;如果多留一个主成分,累积方差增加无几,便不再多留。

3)人脸空间建立

假设一幅人脸图像包含N个像素点,它可以用一个N维向量Γ表示。

这样,训练样本库就可以用Γi(i=1,...,M)表示。

协方差矩阵C的正交特征向量就是组成人脸空间的基向量,即特征脸。

将特征值由大到小排列:

λ1≥λ2≥...≥λr,其对应的特征向量为μk。

这样每一幅人脸图像都可以投影到由u1,u2,...,ur张成的子空间中。

因此,每一幅人脸图像对应于子空间中的一点。

同样,子空间的任意一点也对应于一幅图像。

4)人脸识别

有了这样一个由"特征脸"张成的降维子空间,任何一幅人脸图像都可以向其投影得到一组坐标系数,这组系数表明了该图像在子空间中的位置,从而可以作为人脸识别的依据。

计算数据库中每张图片在子空间中的坐标,得到一组坐标,作为下一步识别匹配的搜索空间。

计算新输入图片在子空间中的坐标,采用最小距离法,遍历搜索空间,得到与其距离最小的坐标向量,该向量对应的人脸图像即为识别匹配的结果。

三、实验步骤

1)每人选取4幅共60幅作为训练样本,将每一幅图像(128*128)写成列向量形式排列成矩阵

2)求协方差矩阵

3)求协方差矩阵特征值—求特征向量(特征脸)—将特征向量排列成变换矩阵

4)计算每幅图像的投影

5)计算待识别人脸的投影

6)遍历搜索进行匹配

四、实验结果与分析

matlab界面效果如下所示

图1用户使用界面

图2选择图片

图3图片选择后

图4识别后

由于利用了标准库,并且识别的人数不是很多,也没有选择有大块左阴影和右阴影的人作为训练集以及测试,所以最终的结果还是非常不错的,识别率可达100%。

但是选择有较大阴影的人做测试,则会出现识别错误,所以PCA算法还是存在一定的局限性。

图5识别错误

主要代码展示

functionpushbutton1_Callback(hObject,eventdata,handles)

%hObjecthandletopushbutton1(seeGCBO)

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesstructurewithhandlesanduserdata(seeGUIDATA)

%readimagetoberecognize

%读取图片

globalim;

[filename,pathname]=uigetfile({'*.bmp'},'choosephoto');

str=[pathname,filename];

im=imread(str);

axes(handles.axes1);

imshow(im);

%---Executesonbuttonpressinpushbutton2.

functionpushbutton2_Callback(hObject,eventdata,handles)

%hObjecthandletopushbutton2(seeGCBO)

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesstructurewithhandlesanduserdata(seeGUIDATA)

globalim

globalreference

globalW%均值向量按列排成的变换矩阵

globalimgmean%均值向量

globalcol_of_dataglobalpathname

globalimg_path_list

%预处理新数据

im=double(im(:

));

objectone=W'*(im-imgmean);%计算每幅图像的投影

distance=100000000;

%最小距离法,寻找和待识别图片最为接近的训练图片

fork=1:

col_of_data

temp=norm(objectone-reference(:

k));

if(distance>temp)

aimone=k;

distance=temp;

aimpath=strcat(pathname,'/',img_path_list(aimone).name);

axes(handles.axes2)

imshow(aimpath)

end

end

%显示测试结果

%aimpath=strcat(pathname,'/',img_path_list(aimone).name);

%axes(handles.axes2)

%imshow(aimpath)

%---Executesonbuttonpressinpushbutton3.

functionpushbutton3_Callback(hObject,eventdata,handles)

%hObjecthandletopushbutton3(seeGCBO)

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesstructurewithhandlesanduserdata(seeGUIDATA)

globalreference

globalW

globalimgmean

globalcol_of_data

globalpathname

globalimg_path_list

%批量读取指定文件夹下的图片128*128

pathname=uigetdir;

img_path_list=dir(strcat(pathname,'\*.bmp'));

img_num=length(img_path_list);

imagedata=[];ifimg_num>0

forj=1:

img_num

img_name=img_path_list(j).name;

temp=imread(strcat(pathname,'/',img_name));

temp=double(temp(:

));

imagedata=[imagedata,temp];

end

end

col_of_data=size(imagedata,2);

%中心化&计算协方差矩阵

imgmean=mean(imagedata,2);

fori=1:

col_of_data

imagedata(:

i)=imagedata(:

i)-imgmean;

end

covMat=imagedata'*imagedata;

[COEFF,latent,explained]=pcacov(covMat);

%选择构成95%能量的特征值

i=1;

proportion=0;

while(proportion<95)

proportion=proportion+explained(i);

i=i+1;

end

p=i-1;

%特征脸

W=imagedata*COEFF;%N*M阶

W=W(:

1:

p);%N*p阶

%训练样本在新座标基下的表达矩阵p*M

reference=W'*imagedata;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2