基于BP神经网络的人脸识别
- 格式:pdf
- 大小:314.80 KB
- 文档页数:8
利用神经网络进行人脸识别技术研究一、背景介绍近年来,随着信息技术的迅速发展,人工智能开始崭露头角,人脸识别技术应运而生。
人脸识别技术是一种以数字图像的处理和模式识别为基础的高科技技术,其应用领域非常广泛,例如安防监控、门禁管理、身份认证等。
其中,利用神经网络进行的人脸识别技术更是成为当前领域的研究热点。
二、神经网络及其应用神经网络是一种模拟人类神经系统的计算模型,其拥有自我训练的能力,能够从大量的数据中学习并进行预测。
近年来,神经网络的应用得到了广泛关注,已经成为了许多领域中不可或缺的工具。
在人脸识别技术中,神经网络常被用来构建特征提取模型和分类模型。
特征提取模型的目的是提取人脸图像中的关键特征,例如面部特征、眼睛、嘴巴等。
分类模型的目的是将提取的特征归类为某个人,从而实现人脸识别的功能。
三、基于神经网络的人脸识别技术研究基于神经网络的人脸识别技术已经得到了广泛的研究和应用。
这里我们将介绍其中几种重要的技术。
1、卷积神经网络卷积神经网络是一种特殊的神经网络,其能够有效地提取图像特征。
在人脸识别中,卷积神经网络可以用于对人脸图像进行特征提取,从而得到更好的分类结果。
2、深度学习深度学习是对神经网络模型的高度抽象和优化,通过构建深层次的网络结构进行特征提取。
在人脸识别中,深度学习能够更加准确地提取人脸图像中的特征,从而得到更好的分类结果。
3、多模态融合多模态融合是指利用多种不同类型的信息进行分类。
在人脸识别中,可以利用图像、音频和视频等多种不同类型的信息进行分类,从而提高人脸识别的准确度和稳定性。
四、研究进展及应用前景基于神经网络的人脸识别技术在近年来有了很大的进展,其研究已经深入到特征提取、分类模型和多模态融合等不同方面。
随着技术的不断发展,其应用前景也将逐渐扩展到更多的领域,例如智能家居、自动售货机、自助服务等。
总的来说,基于神经网络的人脸识别技术极大地提高了人们对安全性和隐私的保护。
我们可以期待这项技术在未来的应用中发挥更多的作用。
基于BP神经网络的人脸识别系统研究
陈翔;白创;黄跃俊
【期刊名称】《智能计算机与应用》
【年(卷),期】2018(008)003
【摘要】本文设计了一种基于BP神经网络的人脸识别系统,并对其进行了性能分析.该系统首先利用离散小波变换获取包含人脸图像大部分原始信息的低频分量,对图像数据进行降维;再由PCA算法对人脸图像进行主成分特征提取,进一步降低图像数据的处理量;最后使用经过训练后的BP神经网络对待测人脸进行分类识别.详细介绍了离散小波变换、PCA特征提取以及BP神经网络分类设计.通过系统仿真实验与分析发现:人脸特征的提取是该系统的关键;同时,由于人脸灰度信息的统计特征与有监督训练BP神经网络分类器,使该系统只在固定类别,并且光照均匀的人脸识别应用场景中具有较高的识别准确率.因此,很难在复杂环境中应用.
【总页数】4页(P57-60)
【作者】陈翔;白创;黄跃俊
【作者单位】长沙理工大学物理与电子科学学院,长沙410114;长沙理工大学物理与电子科学学院,长沙410114;长沙理工大学物理与电子科学学院,长沙410114【正文语种】中文
【中图分类】TP391
【相关文献】
1.基于BP神经网络的人脸识别系统 [J], 安大海;蒋砚军
2.基于BP神经网络的人脸识别系统的研究与实现 [J], 黄丽韶;朱喜基
3.基于BP神经网络的人脸识别系统的研究与实现 [J], 黄丽韶;朱喜基
4.基于BP神经网络人脸识别系统的研究与设计 [J], 张玉萍
5.基于BP神经网络的人脸识别系统研究 [J], 陈翔;白创;黄跃俊;
因版权原因,仅展示原文概要,查看原文内容请购买。
基于GA-BP神经网络的人脸检测算法1.被控对象的特性人脸是一个极为普通、重要而又十分复杂的模式,其中蕴含的信息量非常丰富,本来在复杂的背景图像中区别人脸和其它物体就是一个比较困难的同题。
并且由于以下原因使得人脸检测的困难加大。
(1)姿势;(2)脸部的相关结构化的部件;(3)脸部表情;(4)图像的定位;(5)图像的自身条件。
因此,如能够找到解决以上问题的方法,成功地构造出人脸检测系统,将为解决其它类似的复杂模式检测问题提供重要的启示。
因而人脸检测技术的研究具有重要的学术价值。
2.控制目标人脸检测的确切定义为:任意给出一幅图像,系统能够准确分析图像中的信息,判断出图像中是否存在人脸;如果存在,则返回人脸在图像中的确切位置和范围。
所以它研究的主要问题是判断静态图像或动态影像中是否存在人脸,如果存在则对人脸进行定位。
而我们控制的目标就是更加准确地判断图像中人脸的存在性和定位人脸,这个过程中又涉及到一些系统控制指标,如精度、自适应性、容错性、分类能力和检测时间等。
我们设计的控制系统应该尽量的提高系统控制指标。
3.控制方案的选定卷积神经网络擅于提取具有类别分辨能力的隐式特征,在人脸检测等领域获得巨大成功。
然而典型的卷积神经网络的固定结构又使得网络规模初始设定只能是经验性的,难以实现后继的再学习。
BP神经网络是一种多层前向网络,由输入层、输出层、隐含层(可以是一层或多层)构成,是一种典型的三层BP神经网络模型。
BP神经网络具有较强的容错性和自适应学习能力,但同时传统的BP如学习算法的收敛速度慢、局部极小问题和网络的初始的权值、阈值以及隐层的单元数根据经验选取等,这些都大大地影响其工作性能。
GA-BP神经网络是将遗传学习算法和误差反向传播算法相结合的混合算法来训练前馈人工神经网络,使网络收敛速度加快和避免局部极小,该网络不仅收敛速度快,而且易达到最优解,后继的再学习能力强,可以较好地解决人脸检测中往往存在的噪声、残缺和戴眼睛的人脸图像等。
⼈脸识别算法基于⼈⼯神经⽹络的⼈脸识别系统童志军090739第⼀部分:引⾔在计算机控制上可靠的个⼈⾝份识别的需求引发了⽤⽣物特征替代密码和⾝份证进⾏识别的趋势。
由于密码会被泄露给不合法的⽤户并且⾝份证会被骗⼦盗取所以密码和⾝份证会被轻易的破坏,⽣物特征识别的出现能够很好的解决传统分类⽅法的问题。
⽣物特征包括⼈的虹膜、视⽹膜、⾯部轮廓、指纹、签名⼒度变化和语⾳等特征,这些特征可以⽤于⼈物识别。
由于⽣物特征不能被轻易的盗取和分享,所以⽣物特征识别相⽐于传统安全措施有很⼤的优势,⼈脸识别系统积极稳固的特点使它在⼈物识别中脱颖⽽出。
⼈脸识别系统包括⼈脸核实和⼈脸识别两个阶段。
在核实阶段,系统根据⼈物特征的先验知识进⾏核实,这就是说,系统要判断当前待识别⼈物是否为骗⼦。
在⼈脸识别阶段,先验特征并不知道,系统只能根据最⼤似然准则进⾏识别。
这篇⽂章的最初⽬的是对使⽤⼈⼯神经⽹络来⼈脸检测和识别的性能进⾏评价,⽂章的剩余部分就是这样组织的:第⼆部分描述了系统的过程图和⼈脸识别系统的各个模块;第三部分详尽说明了预处理、特征提取和⽬标系统的分类的⽅法;第四部分展⽰了和讨论了实验结果,第五部分得出结论。
第⼆部分:系统综述正如图1所⽰,推荐的⼈脸识别算法包含⼊学和识别/分类两个阶段,它包含图像获取,⼈脸检测、学习、识别和核实。
图1 ⼈脸识别系统结构图A ⼊学阶段使⽤⽹络照相机获得图⽚并储存在数据库中,然后对图⽚进⾏检测和训练。
训练时,使⽤⼏何学和光学标准化⽅法对脸部图⽚进⾏预处理,采⽤⼏种特征提取的⽅法提取脸部图⽚特征,然后把这些特征数据存在数据库中作为⽤户标识。
B 识别/实验证明阶段再次获得⽤户脸部⽣理数据,此系统使⽤数据辨别⽤户或者分类⽤户标识。
虽然⾝份鉴定需要把获得的⽣物特征信息与数据库中所有⽤户的数据进⾏模板匹配,⾝份核实仅需要把⽣物特征信息与主要特性进⾏模板匹配,所以⾝份识别与实验证明在内在复杂性上截然不同。
基于神经网络的人脸识实验报告别一、 实验要求采用三层前馈BP 神经网络实现标准人脸YALE 数据库的识别。
二、BP 神经网络的结构和学习算法实验中建议采用如下最简单的三层BP 神经网络,输入层为],,,[21n x x x X =,有n 个神经元节点,输出层具有m 个神经元,网络输出为],,,[21m y y y Y =,隐含层具有k 个神经元,采用BP 学习算法训练神经网络。
BP 神经网络的结构BP 网络在本质上是一种输入到输出的映射,它能够学习大量的输入与输出之间的映射关系,而不需要任何输入和输出之间的精确的数学表达式,只要用已知的模式对BP 网络加以训练,网络就具有输入输出对之间的映射能力。
BP 网络执行的是有教师训练,其样本集是由形如(输入向量,期望输出向量)的向量对构成的。
在开始训练前,所有的权值和阈值都应该用一些不同的小随机数进行初始化。
BP 算法主要包括两个阶段: (1) 向前传播阶段①从样本集中取一个样本(X p ,Y p ),将X p 输入网络,其中X p 为输入向量,Y p 为期望输出向量。
②计算相应的实际输出O p 。
在此阶段,信息从输入层经过逐级的变换,传送到输出层。
这个过程也是网络在完成训练后正常运行时执行的过程。
在此过程中,网络执行的是下列运算: (1)(2)()21(...((())...))n p n p O F F F X W W W =(2) 向后传播阶段①计算实际输出O p 与相应的理想输出Y p 的差; ②按极小化误差的方法调整权矩阵。
这两个阶段的工作一般应受到精度要求的控制,定义211()2mp pj pj j E y o ==-∑ (1)作为网络关于第p 个样本的误差测度(误差函数)。
而将网络关于整个样本集的误差测度定义为p E E =∑ (2)如前所述,将此阶段称为向后传播阶段,也称之为误差传播阶段。
为了更清楚地说明本文所使用的BP 网络的训练过程,首先假设输入层、中间层和输出层的单元数分别是N 、L 和M 。
基于BP神经网络和k-近邻综合决策法的人脸识别matlab实现高海南31100380111 人脸识别原理人脸识别是目前模式识别领域中被广泛研究的热门课题,它在安全领域以及经济领域都有极其广泛的应用前景。
人脸识别就是采集人脸图像进行分析和处理, 从人脸图像中获取有效的识别信息, 用来进行人脸及身份鉴别的一门技术。
本文在MATLAB环境下,取ORL人脸数据库的部分人脸样本集,基于PCA方法提取人脸特征,形成特征脸空间,然后将每个人脸样本投影到该空间得到一投影系数向量,该投影系数向量在一个低维空间表述了一个人脸样本,这样就得到了训练样本集。
同时将另一部分ORL人脸数据库的人脸作同样处理得到测试样本集。
然后基于BP 神经网络算法和k-近邻算法进行综合决策对待识别的人脸进行分类。
该方法的识别率比单独的BP神经网络算法和k-近邻法有一定的提高。
1.1 ORL人脸数据库简介实验时人脸图像取自英国剑桥大学的ORL人脸数据库,ORL数据库由40个人组成,每个人有10幅不同的图像,每幅图像是一个92×112像素、256级的灰度图,他们是在不同时间、光照略有变化、不同表情以及不同脸部细节下获取的。
如图1所示。
图1 ORL人脸数据库1.2 基于PCA 的人脸图像的特征提取PCA 法是模式识别中的一种行之有效的特征提取方法。
在人脸识别研究中, 可以将该方法用于人脸图像的特征提取。
一个m ×n 的二维脸部图片将其按列首位相连,可以看成是m ×n 的一个一维向量。
ORL 人脸数据库中每张人脸图片大小是92×112,它可以看成是一个10304维的向量,也可以看成是一个10304维空间中一点。
图片映射到这个巨大的空间后,由于人脸的构造相对来说比较接近,因此可以用一个相应的低维子空间来表示。
我们把这个子空间叫做“脸空间”。
PCA 的主要思想就是找到能够最好地说明图片在图片空间中的分布情况的那些向量,这些向量能够定义“脸空间”。
基于局部特征Gabor小波的BP神经网络的人脸识别摘要人脸识别是自动识别领域的一个研究重点。
本文提出了基于gabor小波局部特征的bp神经网络的人脸识别算法。
该方法在保留了gabor小波符合人眼的生物特征性的基础上,融合了神经网络的强大学习能力。
该方法采用局部gabor小波特征作为神经网络输入,最后采用改进的bp神经网络对样本分类,用orl标准人脸库进行实验,结果数据表明,该算法在提高准确率和减少计算时间方面具有实用价值。
关键词人脸识别;gabor小波;小波网络;神经网络;特征抽取中图分类号tp39 文献标识码a 文章编号 1674-6708(2012)58-0183-020 引言随着信息技术的发展,人脸识别因在公安、身份验证、安全验证系统、医学、考勤系统等各方面的巨大应用前景而成为当前人工智能和模式识别领域的研究热点。
人脸识别是指利用摄像头捕捉人的面部图片,利用计算机分析比较人脸的生物特征来进行身份识别。
虽然人类能够轻易识别出人脸和表情,但是人脸机器识别却是一个难度极大的课题[1]。
基于gabor小波弹性图匹配算法作为一种有效的人脸识别方法,虽然方法简单,但是实现复杂、计算量大、耗时多,本文提出了一种改进的基于局部特征gabor小波的bp神经网络方法,此方法避免了弹性如匹配算法的高计算量,神经网络由于学习和记忆能力,提高了算法容错性。
本文采用gabor小波特征空间作为神经网络输入空间,然后使用神经网络作为分类器。
1 基于局部特征的gabor小波1.1 gabor滤波器数组二维图像的离散gabor 变换的定义见文献[4],对特征点图像模板进行离散gabor 变换的gabor核函数如下:式中参数描述三角函数的波长,参数描述小波的方向性。
依david s. bolme 的取值对人脸图像的处理间隔4 个像素,即分别取{4 , ,8, , 16};对的取值从0到π的区间分别取{0 ,π/ 8 ,2π/ 8 ,3π/ 8 ,4π/ 8 ,5π/ 8 ,6π/ 8 ,7π/ 8}共8个方向,π到2π区间的方向性由于小波的奇偶对称性而省去。
基于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});endif nargout[varargout{1:nargout}]=gui_mainfcn(gui_State,varargin{:}); elsegui_mainfcn(gui_State,varargin{:});endfunction 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 TestDatabasePathTestDatabasePath=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 TestDatabasePathvalue=bpnet(TestDatabasePath,TrainDatabasePath) set(handles.text2,'string',value)载入选择图像路径载入图像特征提取程序:function[icaproject,wica]=bpFeatureExtract(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)x1matrixS=[S temp];%S is a N1*N2xM matrixendsig=double(S');%sig是MxN1*N2matrix%对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%将特征值由大到小排序,特征值对应的特征向量也作相应的排序Dccol=d;Vc=v;%从小到大排序[Dcsort Dcindex]=sort(Dccol);%Vc的列数DcCols=size(Vc,2);%反序for i=1:DcColsVcsort(:,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/Dcsum<0.95)k=k+1;Dcsum_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是8x10304[vectorsize,numsamples]=size(X);B=zeros(vectorsize);%B是8x8numofic=vectorsize;%numofic是8for r=1:numofici=1;maxnumiterations=50;%设置最大的迭代次数w=rand(vectorsize,1)-.5;%随机设置初始值w=w/norm(w);%初始化w(0),令其模为1while i<=maxnumiterations+1w=w-B*B'*w;w=w/norm(w);w=(X*((X'*w).^3))/numsamples-3*w;w=w/norm(w);i=i+1;endW(r,:)=w'*whiteningmatrix;%W(r,:)是1x20B(:,r)=w;end%求原信号icaproject=W*sig*sig';%独立成分,W是8x40,icaproject是8x40,icaproject的每一列表示一幅图像的特征值wica=W*sig;%投影空间BP神经网络程序:function res=bpnet(TestDatabasePath,TrainDatabasePath)%先设置人脸图片库所在的路径,调用特征提取函数bpFeatureExtract,将所有人脸在特征脸上的投影p提取出来imagepath=strcat(TrainDatabasePath,'\');[p,wica]=bpFeatureExtract(imagepath);%把p归一化到[-1+1],然后作为神经网络的输入p=premnmx(p')';t=[1000;1000;1000;1000;1000;0100;0100;0100;0100;0100;0010;0010;0010;0010;0010;0001;0001;0001;0001;0001]';%神经网络的理论输出值%设计神经网路[prow pcol]=size(p);num=prow*pcol;%提取p中元素个数作为神经网络的输入层神经元个数net=newff(minmax(p),[num,10,4],{'tansig','tansig','purelin'},'traingda');%隐层神经元个数为10,输出层神经元个数为4,4表示识别出两个人net.trainParam.show=200;%显示速率为200net.trainParam.lr=0.01;%学习率为0.01net.trainParam.epochs=5000;%迭代次数不超过5000net.trainParam.goal=0.001;%训练误差为0.001[net,tr]=train(net,p,t);%用神经网络识别imgtest=imread(strcat(TestDatabasePath,'\test.jpg'));[row col]=size(imgtest);%获得行数和列数imgtest=reshape(imgtest,1,row*col);sig=double(imgtest);imgtest=sig;%把待测试图像imgtest在子空间上投影projectcoeftest=wica*(imgtest)';%projectcoeftest是8x1ptest=premnmx(projectcoeftest);%把投影值projectcoeftest归一化到[-1+1],然后作为神经网络的输入%仿真result=sim(net,ptest)%显示识别出的人名信息if result(1,1)>0.9res='This is Edward';elseif result(2,1)>0.9res='This is George';elseif result(3,1)>0.9res='This is Frank';elseif result(4,1)>0.9res='This is Henry';else res='This is strange';end选择训练图像库的路径训练图像训练结果这是图像训练库外的人。