基于BP神经网络的人脸识别
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于BP神经网络的人脸识别
学生:林仙土学号:S071954
摘要:人脸自动识别技术有着广阔的应用领域,本文提出用主成分分析和BP神经网络进行人脸识别。人脸识别包括两个部分:第一,特征提取;第二,神经网络进行识别。
关键词:BP神经网络人脸识别主成分分析
本系统采用20幅图像(4个人每人5幅)作为训练图像,应用主成分分析对训练图像进行二阶相关和降维,提取训练图像的独立基成分构造人脸子空间,并将训练集中的人脸图像向独立基上投影得到的系数输入改进的BP神经网络进行训练。然后将待识别的人脸图像向独立基上投影得到投影系数,再将其输入已训练过的BP神经网络进行识别。此方法对人脸库图像进行测试,识别率达到90%以上。本系统采用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_OutputFcn',@BP_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{:}); else
gui_mainfcn(gui_State,varargin{:});
end
function BP_OpeningFcn(hObject,eventdata,handles,varargin) 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 returning 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 structure varargout{1}=handles.output;
%---Executes on button press in 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 TestDatabasePath
TestDatabasePath=uigetdir('D:\','Select test database path'); 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 future version of MATLAB %handles structure with handles and user data(see GUIDATA) TrainDatabasePath=uigetdir('D:\','Select training database path');
global TestDatabasePath
value=bpnet(TestDatabasePath,TrainDatabasePath) set(handles.text2,'string',value)
载入选择图像路径
载入图像