基于BP神经网络的人脸识别_第1页
基于BP神经网络的人脸识别_第2页
基于BP神经网络的人脸识别_第3页
基于BP神经网络的人脸识别_第4页
基于BP神经网络的人脸识别_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于BP神经网络的人脸识别学生:林仙土 学号:S 摘要:人脸自动识别技术有着广阔的应用领域,本文提出用主成分分析和BP神经网络进行人脸识别。人脸识别包括两个部分:第一,特征提取;第二,神经网络进行识别。 关键词:BP神经网络 人脸识别 主成分分析 本系统采用20幅图像(4个人每人5幅)作为训练图像,应用主成分分析对训练图像进行二阶相关和降维,提取训练图像的独立基成分构造人脸子空间,并将训练集中的人脸图像向独立基上投影得到的系数输入改进的BP神经网络进行训练。然后将待识别的人脸图像向独立基上投影得到投影系数,再将其输入已训练过的BP神经网络进行识别。此方法对人脸库图像进行测试,识别率达到90%以

2、上。本系统采用MATLAB编程,并运用了其中的GUI编程实现人机交互。 为在不同机子下顺利运行,本系统用uigetdir函数让用户选择训练图像库和待识别图像,使得待识别图像可在不同位置皆可让软件识别。 注意:待识别图像的名字必须是test.jpg。系统界面:程序:function varargout = BP(varargin)gui_Singleton = 1;gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, BP_OpeningFcn, . gui_Output

3、Fcn, BP_OutputFcn, . gui_LayoutFcn, , . gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);end if nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);endfunction BP_OpeningFcn(hObject, eventdata, handles, varar

4、gin)handles.output = hObject; guidata(hObject, handles); % UIWAIT makes BP wait for user response (see UIRESUME)% uiwait(handles.figure1);% - Outputs from this function are returned to the command line.function varargout = BP_OutputFcn(hObject, eventdata, handles) % varargout cell array for returnin

5、g output args (see VARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structurevarargout1 = handles.output; % - Executes on button press in

6、input.function input_Callback(hObject, eventdata, handles)% hObject handle to input (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global TestDatabasePathTestDatabasePath=uigetdir(D:, Select test database path);

7、axes(handles.axes1);a=imread(strcat(TestDatabasePath,test.jpg);imshow(a)set(handles.text1,string,image for recognition) % - Executes on button press in recognise.function recognise_Callback(hObject, eventdata, handles)% hObject handle to recognise (see GCBO)% eventdata reserved - to be defined in a

8、future version of MATLAB% handles structure with handles and user data (see GUIDATA)TrainDatabasePath=uigetdir(D:, Select training database path);global TestDatabasePathvalue=bpnet(TestDatabasePath,TrainDatabasePath)set(handles.text2,string,value)载入选择图像路径载入图像特征提取程序:function icaproject,wica=bpFeature

9、Extract(imagepath)% 用于训练的图片数量Count=20;%图像格式为.jpg;S=; %用于存储20幅图像的矩阵for i=1:Countstr=strcat(imagepath,int2str(i),.jpg); %把两个字符串连接起来组成图像名eval(img=imread(str););row col=size(img); % 获得一幅图像的行数N1和列数N2temp=reshape(img,row*col,1); %产生一个(N1*N2)x1 matrixS=S temp; %S is a N1*N2xM matrixendsig=double(S);%sig是Mx

10、N1*N2 matrix%对sig矩阵去均值处理sigmean=mean(sig);%对每一列取均值,imgsig是20x10304for i=1:size(sig)imgsig(i,:)=sig(i,:)-sigmean;end%对去均值的数据进行白化处理covariancematrix=cov(imgsig,1);%covariancematrix是20x20矩阵E,D=eig(covariancematrix);%E和D是20x20矩阵% 去掉值为0的特征值v=;d=;for i=1:size(E,2)if(D(i,i)0)v=v E(:,i);d=d D(i,i);endend%将特征

11、值由大到小排序,特征值对应的特征向量也作相应的排序Dccol=d;Vc=v;%从小到大排序Dcsort Dcindex=sort(Dccol);%Vc的列数DcCols=size(Vc,2);%反序for i=1:DcCols Vcsort(:,i)=Vc(:,Dcindex(DcCols-i+1); Dcsort(i)=Dccol(Dcindex(DcCols-i+1);end%取前k个最大特征值对应的特征向量,保留95的能量,此时k=8Dcsum=sum(Dcsort);Dcsum_extract=0;k=0;while(Dcsum_extract/Dcsum0.95) k=k+1; Dc

12、sum_extract=sum(Dcsort(1:k);end%temp是由前k个最大的非0特征值对应的特征向量组成的i=1;temp=;while(i=k) temp(:,i)=Dcsort(i)(-1/2)*Vcsort(:,i); i=i+1;endwhiteningmatrix=temp;%用于白化数据的白化矩阵,whiteningmatrix是8x20%用快速ICA算法求分离矩阵w(迭代50次)whitesig=whiteningmatrix*imgsig;X=whitesig;%X是8x10304vectorsize,numsamples=size(X);B=zeros(vectorsize);%B是8x8numofic=vectorsize;%numofic是8for r=1:numofic i=1; maxnumiterations=50;%设置最大的迭代次数w=rand(vectorsize,1)-.5;%随机设置初始值w=w/norm(w);%初始化w(0),令其模为1while i0.9

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论