LVQ神经网络在人脸朝向识别中的应用毕业论文.doc
《LVQ神经网络在人脸朝向识别中的应用毕业论文.doc》由会员分享,可在线阅读,更多相关《LVQ神经网络在人脸朝向识别中的应用毕业论文.doc(50页珍藏版)》请在冰点文库上搜索。
华北科技学院毕业论文
2012届
华北科技学院
本科毕业论文
论文题目:
LVQ神经网络在人脸朝向识别中的应用
学生姓名:
丁佳学号:
200809014125
系(部、院):
基础部
专业:
信息与计算科学班级:
计算B081
指导教师:
李强丽
2012年06月15日
III
目录
摘要 III
Abstract IV
第1章绪论 1
1.1人脸朝向识别的研究意义 1
1.1.1现实意义 1
1.1.2学术价值 2
1.2国内外研究现状 2
1.2.1国外研究现状 2
1.2.2国内研究现状 3
第2章LVQ神经网络与MATLAB工具箱简介 5
2.1LVQ神经网络模型与学习方法 5
2.1.1LVQ神经网络结构 5
2.1.2LVQ神经网络的学习算法 6
2.2 MATLAB神经网络工具箱简介 7
2.2.1LVQ神经网络学习算法的MATLAB实现 7
2.2.2BP神经网络学习算法的MATLAB实现 8
2.3 MATLAB图像处理工具箱简介 8
第3章LVQ神经网络在人脸朝向识别中的应用 11
3.1问题描述 11
3.2设计思路与步骤 11
3.3人脸特征向量的提取 11
3.4训练集/测试集产生 14
3.5创建LVQ网络 15
3.6训练LVQ网络 16
3.7人脸识别仿真测试 16
3.8结果显示与分析 16
第4章LVQ神经网络与BP神经网络在人脸朝向识别中的对比分析 18
4.1BP神经网络简介 18
4.2BP神经网络在人脸朝向识别中的应用 19
第5章结论 22
参考文献 23
附录A人脸图像 24
附录B程序源代码 29
附录C程序运行结果 35
LVQ神经网路在人脸朝向中的应用
摘要:
人脸识别技术(FRT)是当今模式识别和人工智能领域的一个重要研究方向。
虽然人脸识别的研究已有很长的历史,各种人脸的识别技术也很多,但由于人脸属于复杂模式而且容易受表情、肤色和衣着的影响,目前还没有一种人脸识别技术是公认快速有效的。
人脸朝向识别是一个复杂的模式识别问题,当人脸朝向不同的方向时,眼睛在图像中的位置差别较大。
本文将图片中描述眼睛位置的特征信息通过Sobel边缘算子提取出来作为LVQ神经网络的输入,人脸朝向作为神经网络的输出,利用Matlab工具箱通过对训练集的图片进行训练,得到具有预测识别功能的网络,从而可以对任意给出的人脸图像进行判断和识别。
同时,本文还采用了BP神经网络与LVQ神经网络对人脸朝向识别进行了对比分析,得出LVQ神经网络相对于BP神经网络在人脸识别和图像处理方面具有一定的优势。
关键字:
人脸朝向识别;LVQ神经网络;BP神经网络;Matlab工具箱
LVQneuralnetworkapplicationinthefacialorientation
Abstract:
Thefacerecognitiontechnology(FRT)isanimportantresearchdirectioninthefieldofpatternrecognitionandartificialintelligencetoday.Althoughtheresearchofhumanfacerecognitionhasalonghistory,avarietyoffacerecognitiontechnologyhasalot,butduetofaceisacomplexpatternandvulnerabletotheimpactoffacialexpressions,skincolorandclothing.Thereisstillnotafacerecognitiontechnologywhichisrecognizedasquicklyandefficiently.Therecognitionofhumanfaceisacomplexpatternofrecognition.Whentheorientationoffaceisdifferent,thepositionoftheeyesinthedifferentimagedifferquiteabit.ThispaperwilldescribethecharacteristicsofeyepositioninthepicturebySobeledgeoperatorwhichisextractedastheinputoftheLVQneuralnetwork.Therecognitionofhumanfaceisextractedastheoutputoftheneuralnetwork.UsingtheMatlabtoolboxtrainingthroughthetrainingsetofthepictures,wecanobtainthenetworkwithpredictedrecognitionfunctionwhichcanbeforanygivenfaceimageextractionandrecognition.ThepaperalsousestheBPneuralnetworkwiththeLVQneuralnetworktoacomparativeanalysistowardstheidentificationoftheface.ComparedtheLVQnetworktotheBPnetwork,thereiscertainadvantagesinfacerecognitionandimageprocessing.
Keywords:
facetowardstheidentification;LVQneuralnetwork;BPneuralnetwork;Matlabtoolbox
华北科技学院毕业论文
第1章绪论
人脸识别作为一个复杂的模式识别问题,近年来受到广泛的关注,识别领域的各种方法在这个问题上各显所长,而且发展出了许多新方法,大大丰富和拓展了模式识别的方向。
人脸识别、检测、跟踪、特征定位等技术近年来一直是研究的热点。
人脸识别是人脸应用研究中重要的第一步,目的是从图像中分割出不包括背景的人脸区域。
由于人脸形状的不规则性以及光线和背景条件多样性,现有的人脸研究算法都是在试图解决某些特定实验环境下的一些具体问题,对人脸位置和状态都有一定的要求。
而在实际应用中,大量图像和视频中人脸的位置、朝向和旋转角度都不是固定的,这就大大增加了人脸识别的难度。
在人脸识别领域的众多研究方向中,人脸朝向分析一直是一个少有人涉及的领域。
在以往的研究成果中,一些研究者谈及了人脸朝向问题,但其中绝大多数都是希望在人脸识别过程中去除人脸水平旋转对识别过程的不良影响。
但是,实际问题要复杂得多,人脸朝向是一个无法避免的问题。
因此,对于人脸朝向的判断和识别,将会是一件非常有意义的工作。
1.1人脸朝向识别的研究意义
1.1.1现实意义
研究人脸识别在理论和技术上都有重要的意义:
一是可以推进对人类视觉系统本身的认识;二是可以满足人工智能应用的需要。
采用人脸识别技术,建立自动人脸识别系统,用计算机实现对人脸图像的自动识别有着广阔的应用领域和诱人的应用前景。
同时人脸识别作为一种生物体征识别与其它较成熟的识别方法(如指纹、虹膜、DAN检测等)相比有以下几个优点:
(1)无侵犯性。
人脸图像的获取不需要被检测人发生身体接触,可以在不惊动被检测人的情况下进行。
(2)低成本、易安装。
人脸识别系统只需要采用普通的摄像头、数码摄像机或手机上的嵌入式摄像头等被广泛使用的摄像设备即可,对用户来说也没有特别的安装要求。
(3)无人工参与。
整个人脸识别过程不需要用户或被检测人的主动参与,计算机可以根据用户预先的设置自动进行。
由于具有以上优点,近几年来,人脸识别技术引起了越来越多科研人员的关注。
1.1.2学术价值
人脸检测研究具有重要的学术价值。
人脸是一类具有相当复杂的细节变化的自然结构目标,此类目标的检测问题的挑战性在于:
(1)人脸由于外貌、表情、肤色等不同,具有模式的可变性;
(2)一般可能存在眼镜、胡须等附属物;
(3)作为三维物体的人脸的影像不可避免地受由光照产生的阴影的影响。
因此,如果能够找到解决这些问题的方法,成功构造出人脸检测与跟踪系统,将为解决其它类似的复杂模式检测问题提供重要的启示。
1.2国内外研究现状
1.2.1国外研究现状
当前很多国家展开了有关人脸识别的研究,主要有美国、欧洲国家、日本等著名的研究机构,如:
美国MIT的Medialab,AIlab,CMU的Human-ComputerInterfaceInstitute,MicrosoftResearch,英国的DepartmentofEngineeringinUniversityofCambridge等。
20世纪90年代以来,随着高速高性能计算机的出现,人脸识别方法有了重大突破,进入了真正的机器自动识别阶段。
国外有许多大学在此方面取得了很大进展,他们研究涉及的领域很广,其中有从感知和心理学角度探索人脸识别。
美国TexasatDallas大学的Abdi和Toole小组,主要研究人脸感知机理的规律;由Stirling大学的Bruce教授和Glasgow大学的Burton教授合作领导的小组,主要是研究人类大脑在人脸认知中的作用,并在此基础上建立了人脸认知的两大功能模型,他们对熟悉和陌生人脸的识别规律以及图像序列的人脸识别规律也进行了研究;英国Aberdeen大学的Craw小组,主要研究人脸视觉表征方法,他们对空间频率在人脸识别中的作用也进行了分析;荷兰Groningen大学的Petkov小组,在此基础上发展了并行模式识别方法。
更多的学者则从事利用输入图像进行计算机人脸识别的研究工作。
在人脸识别的领域中,国际上逐步形成了以下几个研究方向:
(1)基于几何特征的人脸识别方法,主要代表是MIT的Brunelli和Poggio小组,他们采用改进的积分投影法提取出用欧氏距离表征的35维人脸特征矢量用于模式分类;
(2)基于模板匹配的人脸识别方法,主要代表是Harvard大学Smith-Kettlewell他采用弹性模板来提取眼睛和嘴巴的轮廓,Chen和Huang研究中心的Yuille,则进一步提出用活动轮廓模板提取眉毛、下巴和鼻孔等不确定形状;
(3)基于K-L变换的特征脸的方法,主要研究者是MIT媒体实验室的Pentland;
(4)基于隐马尔可夫模型的方法,主要代表有Cambridge大学的Samaria小组和Georgia技术研究所的Nefian小组;
(5)基于神经网络识别的方法,如Poggio小组提出的HyperBF神经网络识别方法,英国Sussex大学的Buxton和Howell小组提出的RBF网络识别方法等;
(6)基于动态链接结构的弹性图匹配方法,主要研究者是由C.VonderMalsburg领导的德国Bochum大学和美国SouthernCalifornia大学的联合小组;
(7)利用运动和颜色信息对动态图像序列进行人脸识别的方法,主要代表是QueenMary和Westfield大学的ShaogangGong小组[1]。
1.2.2国内研究现状
国内关于人脸自动识别的研究始于二十世纪80年代,主要的研究单位有清华大学,哈尔滨工业大学,中科院计算所,中科院自动化所,复旦大学,北京科技大学等,并都取得了一定的成果。
国内的研究工作主要是集中在三大类方法的研究:
基于几何特征的人脸正面自动识别方法、基于代数特征的人脸正面自动识别方法和基于连接机制的人脸正面自动识别方法。
四川大学的周激流教授实现了具有反馈机制的人脸正面识别系统,运用积分投影法提取面部特征的关键点并用于识别,获得了比较满意的效果[2]。
他同时也尝试了“稳定视点”特征提取方法,即为使识别系统中包含3D信息,他对人脸侧面剪影识别做了一定的研究,并实现了正侧面互相参照的识别系统[3]。
中国科技大学杨光正等提出一种基于镶嵌图的人脸自动识别方法,采用基于知识的三级金字塔结构对人脸进行基本定位,前两级建立在不同分辨率的镶嵌图基础上,第三级用一种改进的边缘检测方法进一步检测眼睛和嘴巴[4]。
清华大学彭辉、张长水等对特征脸的方法做了进一步的发展,提出采用类间散布矩阵作为产生矩阵,进一步降低了产生矩阵的维数,在保持识别率的情况下,大大降低了运算量[5]。
南京理工大学杨静宇等主要是采用奇异值分解方法进行人脸识别研究,如用Daubechies正交小波变换对人脸图像作预处理,得到不同频带上的4个子图像,对它们分别提取奇异值,然后用最近邻方法进行分类,同时设计一种适用于多分类结果融合的群体决策算法,并且对分类结果有选择的进行融合[6]。
张辉,周宏祥,何振亚采用对称主元分析神经网络,用去冗余和权值正交相结合的方法对人脸进行特征提取和识别。
该方法所用特征数据量小,特征提取运算量也较小,比较好地实现了大量人脸样本的存储和人脸的快速识别[7]。
北京科技大学的王志良教授主要研究人工心理,建立了以数学公式为基础的心理学模型[8]。
中科院计算所与成都银晨网讯于2000年5月联合创立了国内首家专门从事面像识别核心技术研究与开发的实验室,主要研究领域涉及计算机视觉、模式识别、机器学习等,尤其关注于人脸识别以及多模式人机交互技术。
他们关注的核心技术主要包括:
实时精确的人脸检测与跟踪,快速精确的面部特征定位,准确快速的人脸识别/确认方法等,尤其关注复杂环境下(光照、姿态、表情、老化等)的人脸识别问题[9]。
第2章LVQ神经网络与MATLAB工具箱简介
2.1LVQ神经网络模型与学习方法
2.1.1LVQ神经网络结构
学习向量量化LVQ(LearningVectorQuantization)神经网络,属于前向神经网络类型,在模式识别和优化领域有着广泛的的应用,其网络结构图如图2-1所示。
图2-1LVQ网络结构图
输入向量
输入层
隐含层
输出层
参考向量
LVQ神经网络由三层组成,即输入层、隐含层和输出层,网络在输入层与隐含层间为完全连接,而在隐含层与输出层间为部分连接,每个输出层神经元与隐含层神经元的不同组相连接。
隐含层和输出层神经元之间的连接权值固定为1。
输入层和隐含层神经元间连接的权值建立参考矢量的分量(对每个隐含神经元指定一个参考矢量)。
在网络训练过程中,这些权值被修改。
隐含层神经元(又称为Kohnen神经元)和输出神经元都具有二进制输出值。
当某个输入模式被送至网络时,参考矢量最接近输入模式的隐含神经元因获得激发而赢得竞争,因而允许它产生一个“1”,而其它隐含层神经元都被迫产生“0”。
与包含获胜神经元的隐含层神经元组相连接的输出神经元也发出“1”,而其它输出神经元均发出“0”。
产生“1”的输出神经元给出输入模式的类,由此可见,每个输出神经元被用于表示不同的类。
2.1.2LVQ神经网络的学习算法
LVQ神经网络算法是有教师状态下对隐含层进行训练的一种学习算法,是从Kohonen竞争算法演化而来的。
向量量化的思想是将几个数据归到一起,进行模式分类,因此LVQ算法可以认为把自组织特征映射算法改良成有教师学习的算法。
LVQ神经网络算法可分为LVQ1算法和LVQ2算法两种。
1.LVQ1算法
LVQ网络与自组织特征映射网络相同,为双层网络结构。
因为LVQ网络是以模式分类为目的,一般第2层比第1层的神经元个数少,同一层的神经元之间没有结合。
在LVQ中,第2层各个神经元有各自的领域。
根据第1层和第2层之间的权值,输入向量可以被分到任意一个领域。
Kohonen把自组织特征映射法改良成有教师学习算法,首先设计了LVQ1算法。
LVQ1算法具体步骤如下:
(1)网络初始化用较小的随机数设定输入层和隐含层之间的权值初始值。
(2)输入向量的输入将输入向量送入到输入层。
(3)计算输出层与输入层向量的距离输出层第个神经元和输入向量的距离,与自组织化映射的情况相同,由下式给出:
(2-1)
式中——输入层的神经元相映射层的神经元之间的权值。
(4)选择与权值向量的距离最小的神经元计算并选择使输入向量和权值向量的距离最小的神经元,如为最小,则把其称为胜出神经元并标记为。
(2-2)
更新连接权值时,正确分类和不正确分类的权值调整更新公式是不同的,公式如下:
(2-3)
式中——学习系数。
如果是正确分类时,权值调整量采用式(2-2)。
否则权值调整量采用式(2-3)。
(5)是否满足预先设定的精度要求,满足时算法结束,否则返回
(2),进入下一轮学习。
2.LVQ2算法
当LVQ1出现识别错误时,即当不应该胜出的神经元以微小的差别成为胜出神经元时,用LVQ2对其加以改良。
这相当于输入向量恰好临近到两个神经元的领域的交界附近,以微小的差别进入到错误一方。
具体算法中,
(1)~(4)与LVQ1算法相同。
(1)更新链接权值网络在正确识别时与LVQ1的情况相同,根据式(2-2)进行权值的更新,当不应该胜出的神经元1以微小的差别成为胜出神经元2,且满足以下条件时:
①神经元2是正确的。
②神经元2与胜出神经元的差很小。
对胜出神经元1和因微小差别而没有胜出的神经元2,根据式(2-3)进行权值的更新。
(2)是否满足预先设定的精度要求,满足时算法结束,否则返回
(2),进入下一轮学习[10]。
2.2MATLAB神经网络工具箱简介
Matlab是美国MathWorks公司开发的用于教育、工程与科学计算的软件产品,它向用户提供从概念设计、算法开发、建模仿真到实时实现的理想集成环境。
无论是进行科学研究、产品开发,还是从事教育事业,Matlab产品都是非常有效的工具。
神经网络工具箱是在Matlab环境下开发出来的许多工具箱之一。
它以人工神经网络理论为基础,利用Matlab编程语言构造出许多典型神经网络激活函数,如S型、线性、竞争层、饱和线性等激活函数,使设计者对所选定网络输出的计算转变为对激活函数的调用。
另外,可以根据各种典型的修正网络权值的规则,加上网络的训练过程,利用Matlab语言编写各种网络权值训练的子程序。
2.2.1LVQ神经网络学习算法的MATLAB实现
MATLAB神经工具箱中提供的与算法相关的LVQ神经网络工具函数和基本功能如表2-2所示。
在MATLAB的命令行窗口中输入“helplvq”,便可得到与LVQ神经网络相关的函数,进一步利用help命令又能得到相关函数的详细介绍。
表2-1LVQ神经网络的重要函数和基本功能
函数名
功能
函数名
功能
newlvq()
建立一个LVQ神经网路函数
ind2vec()
将单值矢量组变换成下标矢量
learnlv1()
LVQ1权值学习函数
plotvec()
用不同的颜色画矢量函数
2.2.2BP神经网络学习算法的MATLAB实现
MATLAB神经工具箱提供的与算法相关的BP神经网络工具函数和基本功能如表2-3所示。
在MATLAB的命令行窗口中输入“helpbackprop”,便可得到与BP神经网络相关的函数,进一步利用help命令又能得到相关函数的详细介绍。
表2-2BP神经网络的重要函数和基本功能
函数名
功能
函数名
功能
newff()
生成一个前馈BP网路
logsig()
对数S型(Log-Sigmoid)传输函数
tansig()
双曲正切S型(Tan-Sigmoid)传输函数
traingd()
梯度下降BP训练函数
2.3MATLAB图像处理工具箱简介
图像处理工具箱(ImageProcessingToolbox)提供一套全方位的参照标准算法和图形工具,用于进行图像增强、图像去模糊、特征检测、降噪、图像分割、空间转换和图像配准。
该工具箱中的许多功能支持多线程,可发挥多核和多处理器计算机的性能。
图像处理工具箱支持多种多样的图像类型,包括高动态范围、千兆像素分辨率、ICC兼容色彩和断层扫描图像。
图形工具可用于探索图像、检查像素区域、调节对比度、创建轮廓或柱形图以及操作感兴趣区域(ROI)。
工具箱算法可用于还原退化的图像、检查和测量特征、分析形状和纹理并调节图像的色彩平衡[11]。
1.图像采集与导出
图像采集工具箱提供了大量的函数用于采集图像和视频信号。
该工具箱支持的硬件设备包括工业标准的PC图像采集卡和相应的设备。
Matlab的ImageProcessingToolbox支持多种图像数据格式,这些图像文件格式主要有JPEG、TIFF、HDF、HDF.EOS和DICOM。
同时,Matlab中还可以导入/导出AVI格式的数据文件,支持其他工业标准的数据文件格式。
2.图像分析与增强
Matlab的ImageProcessingToolbox提供了大量的用于图像处理的函数,利用这些函数,可以分析图像数据,获取图像细节信息,并且设计相应的滤波算子,滤除图像数据所包含的噪声。
图像处理工具箱还提供了Radon变换(来重构图像,而离散余弦变换(JPEG图像压缩核心算法)可以作为实现新的压缩算法的核心。
在图像处理工具箱中还包含了众多数学形态学函数,这些函数可以用于处理灰度图像或者二值图像,可以快速实现边缘检测、图像去噪、骨架提取和粒度测定等算法。
此外还包含一些专用的数学形态学函数,例如填充处理、峰值检测、分水岭分割等,且所有的数学形态学函数都可以处理多维图像数据。
3.图像处理
图像处理工具箱提供了很多高层次的图像处理函数,这些函数包括排列、变换和锐化等操作。
同样,利用这些函数能够完成裁减图像和尺寸变换等操作。
4.数据可视化
Matlab本身就是功能强大的数据可视化工具,可以通过各种形式显示分析数据,例如灰度直方图、等高线、蒙太奇混合、像素分析、图层变换及材质贴图等。
利用可视化的图形,不仅能够评估图形图像的特性,还能够分析图像中的色彩分布情况。
5.算法开发与发布
Matlab允许用户自己开发算法,并且将其封装起来,不断扩展到工具箱函数中。
此外,也可以在支持Matlab的平台上共享用户所开发的算法,并将算法同已有的C代码结合在一起,完成算法的发布工作。
除此之外,Matlab还可以将用户开发的GUI、图像处理算法等应用程序发布为C或者C++源代码,进而编译生产COM组件或者Java接口,将Matlab开发的算法同其他开发工具结合起来。
Matlab为用户提供了特殊的函数