基于BP神经网络的人脸识别

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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)

载入选择图像路径

载入图像

相关文档
最新文档