人脸识别系统的设计与实现
来源:小侦探旅游网
上海师范大学学位论文原创性声明本人郑重声明:我恪守学术道德,崇尚严谨学风。所呈交的学位论文,是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已明确注明和引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的作品及成果的内容。论文为本人亲自撰写,我对所写的内容负责,并完全意识到本声明的法律结果由本人承担。论文作者签名沙烨年1-月≥矿曰————————————————————————————————————————————~一上海师范大学学位论文版权使用授权书学位沦文作者完伞了解学校有关保留、使用学位论文的规定,I司意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅或借阅。本人授权上海师范大学可以将本学位论文的全保密口,在一年解密后适用本版权书。本学位论文属于不保校内导师论文作者矾l牛年妨拥部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复¥lJ-T-段保存和汇编本学位论文。摘要通过研究目前比较成熟的人脸检测以及人脸识别算法的基础.卜,建立了一套基于PC端的兼有人脸检测以及人脸识别的人脸识别系统。首先介绍了一种叫做Viola.一jones的人脸检测算法,它是皋于Haar特征加上Adaboost的人脸检测算法,属于基于统计的人脸检测方法范围中的技术。稍微改进了下Adaboost使得它可以根据性能整合若干个弱分类器形成一个强分类器,从而提高性能。其次,介绍了图像光照以及尺度大小给人脸识别带来的影响以及消除这些影响的一些方法,即在检测和识别前对图像做预处理。然后,钏1对人脸识别技术做了详细的剖析,介绍了一种基于统计分析的一种算法PeA(主成分分析),并且详细叙述了该算法的核心算法思想,简单介绍_r协方差、特征值、特征向量的计算机公式。最后一章,本文给出了人脸识别系统的框架流程图,简单介绍了实现该系统的软件环境,实现语言以及开源库。接下来通过一张流程图介绍r人脸识别系统的流程,并且详细概括了每个步骤的内容。最后叙述了每个步骤的核心代码,有界面的系统软件结果展示。关键字:人脸检测,人脸识别,PCA,分类器AbstractBystudyingthealgoritlnnwhichiscurrentlymaturehumanfacerecognition,asetoffacerecognitionsystemswhichincludefacedetectionandrecognitionwasproposedinthispaper,basedonPCPrimarily,Afacedetectionalgorithmnamedviola-joneshasbeenintroduced.ThealgorithmisbasedonHaarandfacedetectionalgorithmofAdaboost,whichattributestotherealmofmeansoffacedetection.WithslimmodificationfofAdaboost,itcanformapowerfuldeviceforqualificationbycompoundsortsoflesspowerfulonesaccordingtofunction.Inthisway,functionshavebeenimprovedSecondly,thethesisintroducestheinfluencesthathavebeenbroughtbyimageilluminationanddimensiontofacerecognition,andihavetakenmeasuretoeliminatetheseinfluences,thatbeforedetectionandrecognitionweshoulddosomepretreatmentsfortheimageAlso,analysedcomprehensivelyonthistechnique,introducedPCA,whichisbasedonstatisticanalysis,andillustratedthecorethoughtofthealgorithmandbriefexplanationsoncovarianceeigenvalueandeigenvectorFinally,thethesisproposesaframeworkflowchartforfacerecognitionsystem,introducesthesoftwareenvironmentwhichisusedtoimplementthesysytem,implementationlanguageandopensourcelibraries.Then,thethesisindroducestheprocessofthefacerecognitionsystemthroughaflowchartandsummarizethecontentsofeachstepdetailedly.Atlast,itdescribesthecorecodeofeachstepandattachesthesystemsoftwareresults’demontrationsoftheoperatinginterfaceKeywords:FaceDetection,FaceRecognition,PCA,Classifier目录摘要}…………………………………………………………………………………………………………………………….IAbstract..................,....,,..........................................................,...........,.....11目录…………………………………………………………………………….…第一章概述……………………………………………………………………………………11.1研究背景…………………………………………………………………………11.2应用前景…………………………………………………………………….21.3国内外旬|=究现:状…………………………………………………………………………….31.3.I国内研究现状…………………………………………………………31.3.2国外研究现状…………………………………………………………一41.4项目的开发环境………………………………………………………………一51.5论文的主要内容以及架构………………………………………………………5第二章人脸检测……………………………………………………………………62.I系统框架………………………………………………………………………….72.2人脸柃测的几种方法…………………………………………………………72.2.1基于面部重要特征的人脸检测方法……………………………………….82.2.2基于彩色信息的人脸检测方法…………………………………………82.2.3基丁二统计的人脸检测方泫…………………………………………………92.3violajones人脸检测算法……………………………………………….iO2.4Adaboost分类器介绍…………………………………………………………122.4.1级联Adaboosc(cascadeofclassifieTS)…………………………122.5实验结果…………………………………………………………………………13第三章人脸图像预处理………………………………………………………143.1几何归一化…………………………………………………………………………143.2光照一体化…………………………………………………………………153.3实验………………………………………………………………………………….163.4小结…………………………………………………………………………17第四章人脸识别………………………………………………………………………一184.1人脸识别算法概述……………………………………………………………….184.2,IPCA的原理介绍…………4.2.2PCA算法…………………4.3LDA算法………~…………4.4DCT算法………………………..第五章系统的设计与实现……………5.1人脸识别系统的软件框架…….5.2实验环境……………………….5.3人脸识别系统的总体结构……5.4稃序算法的实现……………..5.1.1光照一体化………….5.4.2Oabor特征提取……….5.4.:{Fisherface降维子窄nlJ5.5人脸识别系统………….j.6系统功能的腱不…………~5.6.1系统1二界嘶…………5.7几种识别算法实验结果比较5.7.1数据库介绍……5.7.2实验设计……………5.7.3实验结果…………5.7.4结果分析…………第六章总结与展望………………6.1本文工作总结…………….6.2对未来工作的展望………致谢……………………………………参考文献……………………….V第章慨述上ig-Ni范人学影!十学位沦文第一章概述1.1研究背景刈‘于人脸识别来说,大部分人不会太陌生,美国电影人片中经常有这样的一个镜头:警察通过城市里的任何一个摄像头划’路人进行人脸扫描了i:扫描出这个人是否为指定的犯罪人,从而可以判断他的位置。叫i物识别技术领域,在人脸识别出现之前,指纹识别相对于米晚比较流行而目.技术层面上来说发展的比较好。相对指纹依靠手,那么人脸识别就是依靠脸部信息来识别的技术。技术流程上也是大致相通的。主要有以F几个主要步骤:通过摄像头采集视频流图像,通过其中的信息在图像中进行自动检测或者跟踪,从而可以进一步的提取到人脸的细节信息。然后通过分类器作用和库存中的人脸相比。从而可以知道每张脸对应的人。图1显示的是对人脸进行特征扫描的图片【引。图1一个人脸识别系统设计到很多的学科比如人工智能,统计学,图像处理等等,可以说包含非常多的技术。一般来说,主要的步骤如下:首先是通过摄像头对人脸的扫描,然后截取整张图像,过后通过检测进行人脸定位,由于外在环境的干扰进行图像预处理会使得检测效果更好,这些步骤做好便可以进行人脸识别以及人脸比对了。人们可以通过肉眼判断一个人是不是我们认识的某一个人,说的简单点,人脸识别系统就是机器再帮我们走这件事,判断一个人的身份。在研究人脸之前,其他的基于生物题特征的识别研究比较成熟的包括虹膜、卢音、以及前段时间比较火的后来被苹果公司力¨入到iphone5S手机里的指纹识别技术。因此现有成熟的相应的识别技术主要包括以下儿种:人腧识别、指纹识上洵.师范大学硕十学位论文第章概述别、视网膜识别、语音识别(目前同内做的最好的公司有科大讯飞等等一些代表性公司。进入二十一世纪以米,随着人类科学技术的迅速发展,伴随着计算机和网络技术的曰渐发达,解决信息安全方面的问题也显得迫在眉睫。当今世界频繁的恐怖袭击使得各国越来越重视公共社会安全,从何使得信息检测与信息识别变得前所未有的重要。不仪仅只是应用于防范恐怖分了进行恐怖袭击活动,生物识别技术体现在我们的牛活的各个领域。如今生活中非常普遍的主要是使用号码、带磁卡等识别方法,然而,这些都存存着丢失、伪造、遗忘等诸多安全问题。随着技术的不断发展和人们对生活质量的不断提高,那些传统的身份识别方法已经收到挑战已经越来越多,人们已经渐渐的开始摒弃这些[211。因此,人们渐渐地把目光转向了生物体特征识别,那些都是由特殊人体遗传的DNA所决定的,并且每人都拥有独一无二的生物体特征,这大大的提高了可靠性。在生物体特征识别技术领域中,我们可以将它分为一下两个大类。一类称为生物体体征,例如虹膜技术、指纹技术、人脸技术等。而另一类称为行为体征,例如人们手写字的字迹以及走路的频率等,现在的计算机图像处理技术都可以对其进行识别。1.2应用前景21世纪是人类全面信息化互联网时代,人们的生活和网络息息相关,越来越多的人通过网络来完成自己的口常生活交易,凶此存付款的时候如何保障付款人身份安全的问题便成了信息化时代的一个至关重要的难题。除此之外,几乎每天都会发生抢劫、入室行窃等案件的不断的发生。因此加强身份识别势在必行。在人脸识别技术之前有很多其他的基于生物体识别的技术研究的相对成熟,指纹识别、虹膜等等。但这些技术最大的缺点就是可以轻易的被仿照。并且/fi太友好,相比之下,人脸识别就存存一些比较突出的优点。在采集的时候比较容易而且不需要像指纹识别一样要接触机器。因此,由于具有这些直接,友好,方便等一些特点,人脸识别对于使用者来说没自‘任何的心理障碍,容易于被广大用户所接受,因此在过去以及将来得到了更多的广泛的应用和研究。生物识别技术已经被广泛用大众生活中,比如银行取钱的密码,人脸识别防盗门等等。举个例子来说,当第章概述上海帅范人学fl!;!十学似论文一位银行储户走进了银行,她随身既没带银行卡,』司时密码也忘记J,就卣接玄提款,此时在提款机上她准备提款时,ATM柜台卜有~台摄像机刈她的眼睛进行扣描,这样该用户身份便被迅速而准确地完成进行了鉴定,从而顺利结束办理完业务。或许大家在电影中经常看到类似的镜头,但是这是英国某个银行的一台特殊的ATM中发生的真实一4幕。使用此技术的营业部当时使用的正是现代生物识别技术中非常流行的“虹膜识别系统”。除此之外,美国恐怖袭击事件发生之后,各国政府意识到反恐活动的蕈要性,它已成为各国政府的共识。世界恐怖袭击事件L卜I机场袭击事件最为多见,美国维萨格公司的人脸识别技术在美同的儿家机场发挥了极大作用,它可以在人群中定位每个人的人脸并且对其进行细致的扫描,将此特征与数据库中的人脸特征进行比对从而判断他是不是通缉犯。伴随着技术的一步步逐渐的走向成熟,未来我们将会看到人脸识别运用的领域将会越来越多。同时此外,除了判定某个人的身份作用外,在进行进一步的分析后还可以获得更多的信息,比如可以判断关人的性别,表情,年龄等其他丰富信息。所以人脸识别的前景被普遍看好,相信在不久的将来更多的附加应用也将会公众于世。到当前为止人脸识别技术主要应用方向有以下几个方向:l、替代钥匙的人脸识别防盗门等一系列的安全识别。2、电子护照及身份证,这也许是将来范围最广的运用了。3、在全国范围内运用人脸识别系统进行缉捕犯罪逃犯4、如上述实例所述的银行服务,当储户的银行卡和密码被窃取了,除了本人之外的人取小出来。5、网络信息安全领域内,如今在电子商务中买卖全数在刚上完成,很多政府部门的办公也放在网卜进行,如果密码被盗会给被害人带来很多的损失,利用了生物识别特征使得身份真实,这样一来可以很好的增加网上购物以及各机构的可靠性。1.3国内外研究现状1.3.1国内研究现状关于人脸自动识别的研究,我们国内的起步比国外晚,专项研究从上世纪八十年代便开始了。国内的主要机构有包括清华大学,中科院研究所内的许多知名机构,』iI且都专研出一定的学术成果。就研究方向而言我们国内主要研究火方向上海师范人学颂十学化沦义第一章概述行以卜‘二个作为代表:(1)基于几俐特相:的人脸止面白动识别方法(2)基于代数特征的人脸止断自动识别方法(3)基于连接机制的人脸正面自动识别方法在正面的人脸识别系统实现方面,剧激流老先生首先发明了一种运用积分运算并将其投影的方法提取面部特征并且可以获得反馈信息的方法,这种方法问世之后得到普遍的运用并且得到专家一致认可。同时,除了正面人腧之外,周老先生对人脸侧面剪影识别方面也有一定的研究。通过艰辛的科研努力,最终实现了在正面以及侧面多次类比的互相参照的人脸识别系统。可以说周老先生算是人脸识别领域的先驱者,与其同样取得成功的还有彭辉、张艮水等提出J,一种改进算法,通过采用类问散布矩阵作为产生矩阵,以达到降低产生矩阵的维数的效果,这种算法不仅保持了原有的识别成功率并且还减少了计算量,可以说是全面的改善。1.3.2国外研究现状在国外最先起头设计人脸识别的研究是1966年PRI的Bledsoe的相关二[作。日本在卜^世纪九十年代研制出的人像识别机,可以在1秒钟之内通过它从几千人中寻找到你所要寻找的目标。1993年,美国罔防部高级研究项目署(AdvancedResearchProjectsAgency)和美国陆军研究实验室(ArmyResearchLaboratory)成立J,Feret(FaceRecognitionTechnology)项目组,通过长时问的图像采集之后成立了该领域知名的人脸数据库feret,用于评测人脸识别算法的性能。以此同时,他们为了加强本国的信息安全,利用vc++技术在美国陆军实验室内由专家开发并实现出了该软件,经过测试此软件的FAR可以达到百分之五十。在美国国内的进行的公开测试中,FAR的百分比还之前得到了稳步的提升。在完成该项目之后,美国的另外一个机构美国国防部高级研究中心运用了半自动和全自动算法进行改进(这种算法必须要通过人T或者自动的方式标记处图像中人的双眼的中心位置,然后才能进行识别)。通过在机场开展的实验测试中,该系统没有达到预期的效果,系统发出的误报的频率比较甜引。除了政府机构投入人力和资金进行研究之外,困外的一些知名高校(卡内基梅隆大学(CarnegieMelionUniversity)为首,麻省理工大学以及英囡的雷丁4第卓概述上海』J|1J范人学坝十学位论文人学)在埘该领域的推进起到相划‘大的作用。目自,J.主要市¨火的工程研究上作也人多是在公安、刑事领域。在其他领域,比如考试验证系统的实现以及运用深入研究的倒不是很多。1.4项目的开发环境本项目是基于VS2008开发工具,使用了OPENCV开源代码,语言是C/C++。1.5论文的主要内容以及架构本论文主要的工作是研究了人脸系统的所有流程:人脸提取、图像预处理、人脸检测、样本训练、人脸识别以及人脸比对一系列流程。使用了每个步骤当今人脸识别领域效果最佳的算法,利用C++开发语言和OpenCV框架实现一整套人脸识别系统的设计与实现。由于该系统采用的是面向对象的语言C++,使得该系统相比起来未来的可扩展性更佳。论文包括四个方面的内容:(1)人脸检测研究了ViolaJones算法,并且在此基础卜提出了一些改进,便是使弱分类器串联起来成一个强分类器,使得计算量以及人脸检测效果更佳。(2)图像预处理由于光照,环境以及人为影响,大多数情况下,系统采集的原始照片来自不同背景,不同条件,受到随机的干扰,这些图片一般不能够直接被利用在检测或者识别中。因此我们需要对原始图片进行修改,本文采用了光照以及大小归一化的方式使得人脸检测以及识别几乎不受这些外在干扰的影响。(3)人脸识别第四章介绍了目前人脸识别研究的主要算法包括PCA、LDA、DCT。由于采集的图像矩阵信息维数过大,造成计算机量以及复杂度提升,冈此采用子空间降维的方式对其进行简化。本文采用了Fisherface降维的方式来实现。(,1)人脸识别系统的实现第五章介绍了人脸识别系统的软件框架、开发环境、核心函数代码,并且比较了三种人脸识别算法的实验效果,以及最后展示了系统的操作界面以及实验结果。上海州i范人学硕+学位沧文第二章人腧检测第二章人脸检测人脸榆测是人脸识别人系统中笑键的一部分。它的概念最丌始的时候是在为人脸识别走前期定位/j‘被提出米的。由于最近几年它在视频监控,安全访问控制,新一代人机界面等重要领域的应用越来越为广泛,研究者们对这个单独领域进行,研究,从而涌现'r许许多多的人脸检测算法。被研究者广泛使用的有两大类。一种是基于统计学方向的基统计特征,另外一种是基于知识特征。d,J-者是一种比较流行的被称为Adaboost的人脸检测算法。对于后者来说,比较普遍流行的算法是一种基于肤色的人腧检测算法。将在论文的后续部分简单介绍这两种算法的实现。Freund和Schaprie在1995年提出米了Adaboost算法,它是以在线分配算法为基础上,进行改进然后提出的。在这种方法中可以让系统没计者们不停的加入新的弱分类器从而形成一个相对的强分类器,可以让它达到某个设定的足够小的误差。众所周知,Boosting这种算法可以提高任意算法准确度。它的思路来自于Valiant的PAC算法学习模型。存1990年的时候由它被Schapire提出,是通过他构造的一项多项式算法所证明出来的。学习过PAC模型后发现,PAC模型证明丫其涮时弱学习算法和强学习算法的特性。这里提到的弱学习算法则是高于随机猜测,而强学习算法指的是在一种学习算法中对一组实验具有极其高的识别率。通过实验订F明只要数据足够的多,通过不停的改变训练样本的分布,训练的中心放在比较难归类的样本中,不断的训练弱分类器,再把这些弱分类器进行叠加,这就是一个基本的Boosting算法的思路。经由一个例子来诠释Boosting算法的原理。假设从一个总数为N的样本X中抽取出n1个样本来组成一个子样本xl。用本子集x1训练出的分类器正确率比随机猜测概率的分类器Cl要高出许多,这样一个分类器被称之为弱分类器。下一步是对总体样本X的剩余的样本用C1弱分类器进行过滤一直到遇到一个被错误分类的样本,把它加入至rlx2中接着继续分类,一直到检测出第一个被正确分类的样本,然后把它也加入x2lI],直到那些所有被正确分类和被错误分类的样本数达到相同为止。设两个样本总数为n2,这样释x2样本集中被Cl正确分类的概率可以达到ri分之50。紧接着我们要利用x2训练出第一?个弱分类器C2,仍然利用成第二章人喻检测F海!jjIj范人学颐十学位论文功的分类器刈剩余的样本集进行筛选,实验证实了这种算法存洲练过程中,实验的侧重点在很难被选出的样本卜‘。但是这样一来,就需要大量的lJ】J练样本,这也是这一方法比较大的不足之处。2.1系统框架通过上述的叙述可以很清楚的了解到人脸检测涉及的一些基本的算法,下图2.1是人脸检测系统框架图。图2.1人脸检测系统框架图2.2人脸检测的几种方法把人脸从图像中标记出来是人脸检测的主要目标。它的基本思想是运用学习特征和统计特征的方法中的一种对入脸区域进行建模,然后把所有可能的待检测的区域的特征与人脸模型库进行比较,这样可以获得潜在的人腧区域。在人脸榆测方法tII,当今普遍被广泛使用的可以分为:(1)基于特征的人脸检测算法(2)基于彩色信息的人脸检测算法卜海师范大学硕卜学位沦文第二章人腧检测(3)基’:r特征统计的人脸检测算法(4)基于模板的人脸检测算法2.2.1基于面部重要特征的人脸检测方法对于每张脸来说,其特征分布是按一定的规律性存在的,基于特征的人脸检测方法就是利用了这种人类与生俱来的特定性质进行检测。举个例子来说明,我们正常人类的眼睛是以鼻子为中心均匀分布在人脸的左右两边,而且鼻子和嘴唇之间的连线大致可以与两眼之问的连线相互垂直,而且嘴巴的嘴角‘般都不会超过眼睛两个边角。那么某个人的双眼巾心的距离是X厘米的话,那么双眼到嘴的垂直间隔的话一般在两倍x左右,就是有很多类似于这样的人脸特征。一旦你满足这些条件,相关区域便可以识别出一张人脸。2.2.2基于彩色信息的人脸检测方法顾名思义,这种方法只考虑图像的灰度信息并且充分利用了可以提供更多特征的彩色图像【12】。皮肤的颜色、头发的颜色等等都属于彩色特征范畴之内。对于构建快速类型的人脸检测和跟踪算法中,这种皮肤的颜色和发色特征的方法会更适合。另外,不同于灰度图这种算法力u入了颜色因素的的考虑,这便使得皮肤的颜色成为了人脸表面的‘种莺要信息,肤色小依赖于面部的任何细节特征,这样,人脸旋转以及表情等各种变化都不能对其造成干扰。因为大部分肤色很容易的和背景颜色进行区分。肤色的模型用来描述这些皮肤颜色的特征,最为被大家广泛使用的包括高斯模型、混合高斯模型和直方图模型。当然除了以卜.三种肤色模型之外,还有以下几种模型:(1)利用集合参数描述肤色区域分布范围的模型等。(2)基于神经网的皮肤颜色模型等。(3)基于贝叶斯方法的模型等。另一方面,不论是基于面部特征还是彩色图像信息的人脸检测方法米说,两者彳『个共同点就是利用了人脸的先验知识来检测人脸,而且这类的方法都存在人脸检测率错误率方面会比较高。首先对于基于面部特征的方法的人脸检测来说,如果一张图像中存在与人脸相似区域的话,必然会导致不正确的检测,这样一米对于那些不是正脸的人因为某些人脸特征无法使用,而导致这种方法检测不能被使用。并且制定这些用米描述人脸特征的规则也是相当不容易的。因为不论是按怎么样的标准或多或少都会带来错误的检测。另一方面,对于基于彩色图像信息的方法来说,如果背景的颜色和人脸皮肤色彩非常接近的话,区分人脸和背景会第一章人腧愉测上海师范人学坝卜学ft论文显得比较不容易。斟此这两种算法独自对的做人脸检测算浊都不适合。所以一般为了改善它,研究者经常会把它在检测前期就就行各种预处理(接卜来一章我fJ、J会详细的介绍)、后期的验证以及把不同检测方法相结合来处理。2.2.3基于统计的人脸检测方法这‘节本文要介绍的这种算法将是本论文在稍后实验rfl实现的’种算法。它不单单只是考虑人脸的某一局部区域的特征,而是一个人整张脸的特征。在这个算法中,运用了统计学的原理,通过对大量的人脸图像进行分类洲练成一定的规律,之后便可以利用这样的规律来检测人脸。该算法的实验效果相对于其他的算法有显著的优势,由于人脸图像的复杂性,人脸特征被描述的显著是具有一定困难的。因此这种相对成功率稍高的基于统计的方法越来越被研究学者看重[14l。在该类方法中,可以将人脸区域看作一种特定的模式,研究者通过使用大量的正样本和相同数量的负样本放入样本库中,然后将它们进行训练形成训练分类器。通过区别人脸图像中的每个区域所属的入脸检测方法。这样,人脸检测在此算法中即变成了一种统计学模式中分类问题。主要包括以下两种方法:1.基于特征空间的方法使用特征空间方法的主要目的是把一张二维图像通过一系列的变化然后映射到其他的空问。这里检测出入脸和非人脸就显得尤其的简单。对于此种方法来说,最简单的莫过于一种叫做PCA的主成分分析的算法,通过K_L变换可以得到相关图像特征的特征向量。2.基于神经网络的方法人工神经网络(ANN)具有相当高的自适应性特征,对于通过平移、变形、噪声以及局部缺失的图像基本上都可以维持在一定的水平线上的识别率。在做实验的过程中,有些传统的方法所呈现出来的结果有时候是不如人意的,人工神经网络方法t要把特征统计隐含在人工神经网络的结构与参数之中,那么,基于神经网络(ANN)的方法用于人脸这般非常复杂的模式之中具有相当特别的优势。人T神经网络(ANN)算法虽然拥有有它的优势,但没有一种算法是完美的,也有其比较明显的缺点,首先需要非常大量的训练样本,其高维数据使得计算变得非常复杂。不仅如此,搜索过程的速率比较慢,经常容易达到延迟,使得在某些场合下小适用。山于训练还需要大昂的负样本,搜集这些样本本身就是一件极大的上海师范人学硕+学位沦文第二壹人腧检测工作量,好在现在一些同外的人脸库能够直接找到,但是能够适用于每种情移‘卜的图片集也就变得更加难找丁,。基于统计模型的人脸检测算法是目i,J-比较广泛为人所运用的算法。2.3violaPauljones人脸检测算法viola和MichaelJJones一起提出了一种人脸检测的算法,该算法由他们俩的名字来命名称为ViolaJones人脸检测算法[21】。ViolaJones算法对人脸检测研究领域的贡献起到推进性作用,它的出现使得人脸检测的速率以及准确率得到很大的提升。对于速度方面,之所以如此的快,是因为ViolaJones算法利用了积分图像的方法米获取图像特征值。另一方面,由于adaboost分类器的特征具有筛选的特质,剔除了没有价值的特征,筛选了有价值的特征,这一步骤人人的降低了检测时的计算复杂度,大大的节省了时问。准确率之所以得到了提升,是囚为adaboost分类器经过了改进,由原来的单级分类器,通过串联彤成了级联adaboost分类器,通过层层分类提高J,人脸检测的准确率。算法原理具体如下:1.特征提取算法中总共设计了以下四种特征,称之为haar-1ike特征,如图【2312.2所示,绎过衍生发展,学术研究者由提出了更加丰富的四种特征,如图【1112.3A转D图2.2haar—like特征10第一章人舱检删上淘圳J范人学坝十学{盘沦文嘎i巴◇◇明日◇◇目◇◇回图2.3这些特征原理都非常的简单,就是将白色区域中的所有像素相加减去黑色区域中的所有像素之和。图1中的其中一种特征A所示,首先通过计算分别得到两个区域内像素5FNSum(白色区域),Sum(黑色区域),两个Sum相减得到一个特征值。但是实际上要被检测的人脸的图像尺寸大小不同,因此我们需要对图像的大小特征进行统一的归一化处理。所以最终的特征表示为:特征~=特征/pixelntlln(其中pixel—Bum是黑色/白色区域像素点的数量)。如此,不用考虑检测窗u的大小尺寸,获取的特征在都是在相应的区域内的。另外,说明一下haar—like名字的来源。由于在haar—wavelet中,haar基函数的表达式如下图[712.4:婚净{。|02.4l4Q萎基《iomer瓣haar基函数表达式÷《xs12.4Adaboost分类器介绍由于特征提取后的特征维数都相当的大,但是真正有用的部分确非常的少,因此研究的重点便落在如何提取有用部分的特征。大多数训练出来的训练器都是弱分类器,因此我们需要一个强大的分类器,Adaboost分类器正好拥有这个可以满足需求的能力。Adaboost是一个由若干个弱分类器组合而成的强分类器。每一个弱分类根据各自的分类率与权值做乘泫,然后再把每个结果相加而成,这样就上海州J范人学坝十学位沦文第二尊人腧检测组成一个由若干弱分类器并联成的强分类器。虽然每个单独的弱分类器独自分类的命-I,率不高,但是强分类器叠力¨了它们作用,检测结果非常的不错。2.4.1级联Adaboost(cascadeofclassifiers)虽然强分类器的效果很好,但是假如只是使用比较常用的Adaboost的话,这样上程太大,消耗的时间太长。举个例子,如果我们每次只需要提取几百维最为可用的脸部特征。虽然这样和之前的高维数相比,减少了不少工作量,但是那么当我们检测的时候窗口移动到每个部分的时候,都必须要提取以上相同维数的特征向量。然后再用Adaboost分类器来计算这几百维特征,并且需要再每个检测的位置并且图像的大小不同,同时每个部分都需要做几百次的乘加法,如此一来总计算量也相当的大,这会造成高延迟使得在某些领域很难运用。不过好在这类的问题已经得到很好的解决,那就是将‘些比较小但是准确率比较高的Adaboost分类器串联起来用,经有效的实验结果显示99.999%30≈98.9%误检率仅仅有:0.530≈9-3×lO一9实验结果显示这样的一个组成使得检测器的准确率提到J,一个相对高的阶段,由于这个分类器是由若干个小的分类器串联组成的,所以在我们检测的时候有一阶段检测不出来人脸的话,剩余的步骤便可不用再继续了。在一张含有人脸的背景巾,人脸的LL侈tJ不同,不过大多数的情况下都是非常小,小到每个分类仅仅包含几十维的特征,因此当检测的时候窗口经过位置比较大的地方检测会立刻的结束。相比之下,这样的一种方案相比之前提到的几百个维数特征的方案要快出许多。2.5实验结果由于自己训练的分类器由于图片数量有限,所以出来的效果没有OpenCV自带的分类器效果好,所以本实验将用开源库OpenCV来实现最基本的人脸检测试验。主要步骤为:1.加载分类器首先需要安装0PENCV2.3.1,下载haarcascade—frontaIface_atl.x和haarcascade—fron七aIface—atl2.xml分类器,然后用OPENCV自带函数12第一章人腧检测上海!JI|j范人学fi!;{十学何论文cvLoad谈入xml格式的义什。义件在OpenCV安装目录卜‘的“…/data/haarcascades/”路径卜.。2.读入待榆测的图片或者也可以采集视频流3.进行检测人脸上海师范大学颂十学位沦文第t章人脸图像预处工晕第三章人脸图像预处理人多数情况卜.,系统采集的原始照片来白不同背景,不I列条件,受到随机的干扰,这些图片一般4i能够离接被利用存检测或者识别中.,囚此在采集得到这些原始样本之后以及做识别之前,我们需要对原始图片进行统一的归一化修改,当前最常用的人脸图像预处理的方法有:人脸图像的灰度化、人脸图像的几何归‘化、图像滤波、锐化以及根据直方图修正技术等等。其中图片的大小,以及灰度进行归一化显得尤为重要。归一化主要有两个步骤:几何归一化和灰度归~化。其中灰度归一化可以通过图像直方图规则化实现,丽几何归一化大多数是通过调整人眼的两个瞳孔之间的连线使其保持水平来调整人脸的。所以对于图像大小和拍摄角度的不同带米的影响,通过归一化可以很好的消除。首先要先做几何归。化,在此基础之上需要做灰度拉伸,利用直方图归一化技术以及光照一体化技术修正图片。下面几个小节将要介绍这几种方法的简介以及具体防范。3.1几何归一化人脸图像的标准化不论对于何种识别方法来说都是相当的重要,因为直接影响着最终的人脸识别效果。计算得到最佳的旋转估算值之后,通过对人脸的图像进行旋转,使得在图像上的人脸的两只眼睛联系保持水平,按照统一的标准得到不同于原始图像的人脸图。因此,几何校正的效果便是为j,让/1i同尺度下的图像按照相同的效果进行规划,这样一来用于进行识别的人脸位置也相应的在同一块区域内。下面来简单概述下几何归一化的内容:(a)通过人眼的坐标把原始图像中的人脸经过校正之后变为统一的尺寸。(b)将图像上所有的像素点按照已经规定好的平移量全方位的移动,这样可以大量的减少人脸偏移对人脸识别的影响。(c)除了位移之外,我们还可以将平面内的图像进行一定量的旋转以及翻转,以达到图像上的两眼之问的连线保持在水平位置。经试验证明以卜-三种方法可以很好的实现对人脸图像的几何校止,我们可以将上诉方法分为两种分别为曹接和间接几何校正法[25l。(a)直接几何校正法:按照一定的行列顺序对图像偏移位置的部分内的特征数组进行逐个的举标校正,通过校正之后的点坐标将通过重新采样的方式变成了整体规则的排列灰度数组。具体公式鲥1I"-:14第。章人腧图像颅处理上i每E),lJ范人学坝十学似论文x7=C(x,Y)(3.1)Y’=f.(x,Y)该式中F是直接校正函数。(b)间接几何校正法:大致的方法和直接几何校正法相同,只是处弭的图像位置4i同而已。间接几何校正法的出发点是把空白的图像数组上的每个像素点也同样按照从行到列依次处理,但是是和直接几何校正法相反的过程,求每个校正像素点在偏移坐标系上的坐标位置。x=q(x’,y’)(3.2)】,=G,-(x7,Y’)其中G为间接变换函数。经过变换之后人脸得到了校正。最后要做的是对人脸样本进行剪裁,按照人脸的比例对人脸实现剪裁,从而使得每张脸大小比例相同。3.2光照一体化除了图像大小的不一致造成的干扰之外,图像背景颜色的不同带来干扰也是相当的大。采集图像时的背景光照对识别成功率的影响也是不容小视的,在不同的光照背景下,不同的光照拍出来的效果相差太多,对人脸的特征影响也是显而易见的。如图13213.1所示,虽然是同一个人,但是在不同的光照条件下,肉眼都很难辨别是同一个人更何况是机器系统。因此为了减少识别的成功率,在今后的研究者们势必会把重点放在如何减少光照对人脸识别率的影Ⅱ向上。图3.1不同光照条件下同一张脸的图像研究学者们在处理光照上做J,很多的研究,为,避免光照对人脸识别的影响,一种普遍的方法经常被我们使用:直方图均衡化法。上海帅范人学硕十学何沦文第j章人腧图像预处理直方图均衡化是最简单且有效的一种处理光照的方法,它土要的作用就是使得不I司光照所带来的影响,通过刈。图像进行这种处理,效果非常好。每个像素的像素值可以提现在直方图上,血¨果局部的增强使得整体不受影响。首先把图像上的所有像素点按照灰度级大小以及出现的概率在灰度直方图上标记出来。然后通过变换将袁术的某‘狄度级上的像素点覆盖到新图上,使得新图的该区域获得和原图相同的灰度级。图[10]3.2显示直方图均衡化后的效果。(a)原灰反图像(b)直方图均衡化后的灰度图像图3.23.3实验按照上述的方法对图像进行操作,在人脸检测后将原图图像进行裁剪。每张图像的尺度大小不一定都统一,但归一化后应将每张图像放大或缩小成宽80长120的尺寸。图3.3为人脸样本原图,图3.4为剪裁后的图。图3.3人脸样本图3.4裁剪结果图16笫:章人怜l割像颅处珲上海帅范人学帧十学位沦文3.4小结光照和图像尺寸人小的不同直接影响榆测以及识别的效率,所以在识别之自玎都会对图像进行预处理。直方图均衡化只是光照预处理中的其中一种比较流行的方法,有瑕疵的图像经过光照预处理、大小归一化后的检测成功率明显得到了很大的提升。17上海师范人学硕十学位沦文第四章人脸识别4.1人脸识别算法概述最原始的人脸识别即是用我们的眼睛去分辨某人是某人,机器人脸识别就是机器智能的去解析一张张人脸,然后获取有用的信息来判别一个人的身份。作为当下一个非常热点的研究技术,人脸识别作为一门模式识别与图形图像处理交叉的学科,已经被广泛的虚用在像身份认证、智能识别、医学图像等领域。相对于其他的生物特征识别技术来说,除,它采集更加方便之外,最重要的是它使得这项技术不侵犯人权,显得更加的友好。在卜世纪六十年代,人脸识别技术便在先进发达的国家开始了早期的研究。随着各个国家的学者这几十年的内的不断努力研究,使得这项技术在上世纪末的时候便由理论进入了真正的应用阶段。目前这项技术研究最好的主要是以美国和德国为代表的欧美发达国家以及亚洲的日本。中国也拥有大量的研究者,但出于起步的晚,算法的整体识别率要比那些国家低十个百分点左右。目前人脸识别研究的土要算法包括PCA、LDA、DCT。在研究的最初阶段,比较有代表性的是一种叫做Eigenface的人脸识别算法。这是一种针对规模不大的人脸库识别的算法,基本原理便是基于特征(Feature—basedrecognitionalgorithms)。还有一种可以通过人的面部几何结构来判别的算法,其主要实现原理是基于模板匹配(Appearance—based是神经网络(Recognitionrecognitionalgorithms)。还有一种network)方法。上述三algorithmsusingneural种之外,还有最后一种便是我在搭建系统的时候用到的Fisherface人脸识别算法。它的工作原理是利用通过PCA(主成分分析)署HLDA(线性判别分析)先后对图像特征进行降维处理,以减少图像特征维数太大计算量太大的缺点,而且可以提高分类的精确度。可以保存了原始图像的大部分特征信息。这种算法的实际试验效果相比之下比前--种Eigenface算法效果要好的多。这种对图像特征进行降维的方法是当今比较主流的一种算法。多数算法训练出的都是弱人工智能分类器,如今由若干个弱人一【一智能分类器组成强人1i智能分类器将会是未来的核心技术方向。人脸识别包括两个过程:(1)图像特征提取;(2)进行分类。第一步特征提取的记过至关重要,假如对一张特征脸提取的信息_ⅡJ‘以全面的体现它所属类特征的时候。这样一来,第二步的分类第凹章人胎识别上海帅范人学髟!十学1t沦文器设计可以I大l此向变得方便向高效许多。所以,人脸识别领域的研究L卜『心』越该是在如何提高人脸图像信息特征提取的准确性卜。4.24.2.1PCAPCA的原理介绍componentPCA(principalanalysis)翻译成小文是丰成成分分析,顾名思义其作用便是对人脸进行特征提取。它属于暴于统计分析的‘种算法,传统的人脸特征提取算法女aDCT、ICA对图像提取的数据维数都十分的大,增加了计算的难度。PCA的出现恰恰改善了这一点,在描述提取的指定位置的特征时,通过使用比较少的特征数量来描述特征信息,采取降维的方法,从而降低了维数。该算法的基础是一个称为KL的算法,基本原理是将提取到的向量经过一个变换,然后把数据映射到一个比它低维数的向量空间上,这样会变化使得一个低维数的向量代替高维数的向量,并且让它保留j,大多数对图像有用的信息,摒弃了一些没有用的信息。这就是PCA的优势,即对数据进行了压缩,把高维数的压缩成了低维数,而且信息还几乎不受损失。并且还能进行反过程,利用低维数向量通过特制向量矩阵还原成原始的高维向量。这两者之问通过向量矩阵构建了一种特定关系,就像方程y=x一样,存在着某种相互映射的关系。下面算法描述中将会提到协方差矩阵、特征值与特征矢量的概念,F面先介绍一F这几项在降维中至关重要的公式。l、协方差矩阵协方差大多数计算都是在在两维数据之间进行的。我们具有超过两维的数据,将会有多于两个的协方差。例如对于三维数据(x,Y,z维),需要计算COV(X,Y),COV(y,Z)和cov(Z,x)。获得所有维数之间协方差的方法是计算协方差矩阵。具体定义为公式(4.1)C……=(cJ∥q,,2cov(Dimf,Dimj))f4.1)2、特征值和特征矢量只要矩阵大小合适,就可以进行两矩阵相乘,特征矢量就是其中的一个特例。考虑图,1.1中两个矩阵和矢量乘法。E海师范人学硕士学f江论文第四章人脸识刖旺l、二1j5(i3二2他8、/二叫图4.1一个非特征矢量和一个特征矢量的例子算法描述PCA(principalcomponentanalysis)属于一种线性映射方法,该种方法出自模式识别中的一种叫做判别分析的方法。其具体实现可以用个例了来描述:在已经一张图像的高维分布的数组时,其巾任意一点的样本点的最大方差的方向来作为低维度的计算空间的基,接着,将这些高维窄问点投影映射到对于的子空间中。这样一米,对特征数据的压缩便可以得以实现。统计学中一个随机变量的方差的大小和该变量所涵盖的信息量成正比。把原始数据按照方差最人的方向进行投影后所得到的就是主成分分量,这些成分之间的关系是正交关系。计算每个成分的方差值,然后根据方差值得人小进行主成分的排序,其贡献率具体的表达式如下:碾2五/(丑+五+y+乙)(4.2)其中主成分方差较小的话有可能是因为噪声造成的。这些分量在计算中一般不会被使用,从而实现了降维。人脸识别系统中的PCA算法1)对于一个训练集,100个sample(i=l,2,3….,100),特征Xi是20维.[xil,Xi2,Xi3….xij….,Xi20](j-1,2…,20),那么它可以建立一个20"100的样本矩阵M。2)紧接着我们开始求这个样本的协方差矩阵,得到一个20*20的协方差矩阵,计算过程如下:·先求解出Xi的平均Xav--(∑xi)/20:·对每一个xi,计算XiXav,即Mi(第i行)变为Mi—Xav,记为Mn:·则容易得到协方筹矩阵z为Mn*kln’(’表示转置)。3)然后求出行和列都是20的协方差矩阵的特征值和特征向量,‘股情况卜第叫章人岭识别上海帅范人学帧十学f讧沦文心该仃20个特征值利特征向量,现在根据特征值的大小,取m较人的特征值以及其所刈.J啦的特”向量,(假设提取的特征值为较火的5个特千l|:值),那么这5个特征向蜀:就会构成一个20*5的矩阵V,这个矩阵就是我们要求的特征矩阵。4)用Mn’去乘以V,得到一个base矩阵(宰),人小为lOOx5。5)任取‘个样本lxl00,乘上这个100"5的特征矩阵,就得到r一个1.5的新的样本,显然每个sample的维数下降了,然后再用这个lx5向量去比较相似性。描述如下:一个有N张人脸图像的样本集,每张图像大小为历×门,我们用一个mX甩=d维向量来表示每张图像,则该样本集可以表示为d维空问(图像空问)中的向量集:髟x”=‰*吒](4.3)(4.4)(4.5)y=[Yl,跏儿]-w7xw1W=1脚善(乃一一y)22专军MYⅣ_vⅣ(4.6)厂2善(只一y)+五(wwt-1)=跏w‰(ww一)S=(X一Ⅳ)(X—X)rw为投影向量,S为散步矩阵公式。一2(4.7)(4.8)i=专善誓4.2.2(4.9)PCA算法上一节简单PCA的原理,接下来介绍具体实现流程,主要包括以下几种:把采集到的人脸图像进行预处理后放入自己建市的库巾,再把每个库巾的人脸训练成特征子空间,之后便把训练所用的人脸图像投影到该子窄问上,最后是选择适当的函数进行区别。下面详细描述整个过程:(1)读入人脸库存将人脸图像进行归一化处理后放入指定的库--l_I,然后从人脸库f1,选出‘部上海师范人学硕士学位论文分作为训练另外剩余的一部分用来测试。假设以卜得到的归一化后的图像的是X乘以Y,构成x乘以二维向量,利用KL变换之后,被描述成了一个低维了宇问图像。(2)通过K—L计算后的矩阵以及相关的特征值和特征向量从人脸库FERET中下载一些人脸图像,建立的一个人脸库-|{M张人脸幽像。分别用薯来表示,并且其中L表示为向量维数。所以人脸图像如F所示x:上争xM智4(4.10)这样便可以得到图像的均差值和协方差矩阵,表达方式如下:鼍,=x=一X(4.11)门一,一ⅣⅣ∑瑚厂(4.t2)即便如此实际过程中对于尺寸大小相对比较小的图像计算量还是非常的大。于是将每一张图像的均差用一个矩阵来表示从而可以减少计算量,如式(4.13)所示:X7=【爿,x■,x知】(4.13)利用SVB定理可以求关于矩阵的协方差矩阵和均差值,这里不做详细描述。4.3LDA算法在用统计方法解决人脸识别问题时,碰到的问题就是维数问题。通常将一幅包含nxlll像素的图像看作是nXl]l维空问里的一个点。但是,nxln维这样的高维窄问划十快速而且鲁捧的识别方法是不太可行的。在低维空间里解析上或名‘计算上行得通的方法,在高维空间里往往行不通。因此,降低维数就成为处理实际问题的上海帅范人学h负十学他沦文火键。线。陀判别分析,或者称为Fishel’准则函数就是为了发现这样的投影方向,使得样本类叫离散度利样木类内离散度的比值最人。换言之,就是在这样的投影方向,同一个类的样本聚集在一起,而不通类的样本相对比较分散。度与‘个K(K>2))类问题,Fisher准则函数定义的样本类问离散度并不是最优的。这是囚为该定义过分强度了那些具有较大类闫距离的类别,从而使得最后的投影力‘向较好的愤慨这些类,但是却造成了其他类别的较大重叠。LDA的目的是从高位特征空间里提取出最具有判别能力的低维特征,这些特征能帮助将吲一个类别的所有样本聚集在一起,不同类别的样本尽量的分开,即选择食的样本类问离散度和样本类内离散度的比值最大的特征.设有一个含N个样本的集合F,F中每一样本x为n维向量,设模式类别有c个:fii,每类有样本豫个,它们的总体散度矩阵S,类内散度矩阵瓦和类问散度矩阵S..分别定义如下:&=∑P(矾)(聊。一mo)(豫一mo)(4.14)S萨∑P(q)E{(肌,『-I聊。)/万,)(4.15)rS=&+s。=£{(x—mo)(X—m。)}(/1.16)其中,尸(矾)=,2,/Ⅳ为第i类训练样本的先验概率,m,=E{X/w,}为第i类{J练样本的均值,%=以x)=∑P(矾切,为全体训练样本的均值。Fisher鉴别准则函数定义为(4.17)式,另一等价的Fisher鉴别准则函数由(4.18)式[8]给出:伽)=寒地)=舞其中,口为任一n维非零列矢量。(4.17)(4.18)上海帅范入学硕士学化沦文我们希望投影后在低维字问里刁i矧类别的样本怂可能分得丌些,同时希望每个类别内部样本尽量密集。也就是说,样本类问离散度越人越好,向样本类内离散度越小越好。NI-I,如果s。是非奇异矩阵,最优的投影方向睨。就是使得样本类问离散度矩阵和样本类内离散度矩阵的行列式比值最大的那些正交特征向量。因此,Fisher准则函数定义为%,2argmax网WTSbW^%…,、钏(4.19)根据线性代数理论,我们知道甜么,就是满足如下等式的解S彬=AS。彬(f_1,2,..,m)(4.20)也就是对应用矩阵西1&较入的特征值五的特征向量,该矩阵最多只有C一1个非零特征值,C是类别数目。4.4DCT算法给定长度为N的输入序列u(n)它的DCT变换可由以下式子得到1341V(五)=口(尼)薹“(行)c。s(‘圣!学)量v(k),即v:CuO<k<N-I(4.21)式中可以把u(n)序列视为一个向量,把DCT看作一个变换矩阵,得到输出向(4.22)式中:C为DCT变换矩阵—≠一其中尼=0,0≤,?≤N一1,c(k,船)=√专c。s(!兰学),-≤尼≤Ⅳ一·,o≤聆≤Ⅳ一-(4.24)世(4.23)式中,k,n为变换矩阵的行和列。得到的vll为所需要的特征向量,还可以利用DCT的逆变换,将原图像进行复原蹦=C~1,C‘1为C的逆矩阵。24笫凹章人脸识别上海师范人学硕+学化论文仃以]-.DCT的理论基础,可以看至JDCT在以卜几点优十特{1IjJJ佥方泄::1)每一幅图像矢卢阵看成一个向量,DcT可以划‘每个向量进行单独处理,提取ftl特征向量,放入特征库里面,用于后面的识别;2)当新的图像需加入库L}I,经过预处理之后,可以对该图像进行Dcr变换,无需考虑其他的图像。这样即使库中人脸图像很多时,计算量也/1i大。而特征脸方法当有新的图像加入时,必须重新计算新图像与原库中所有图像的协方差矩阵,以求出新的特征空问。卜海帅范大学硕十学位论文筇而章系统的设训与实现第五章系统的设计与实现通过以卜.几章的介绍,可以很清晰的清楚要构建一个人脸识别系统的整个流程,其中流程如下:图像采集、图像预处理、特征提取、训练分类器、人脸检测、人脸识别。这。‘章将主要介绍人脸识别系统的实现框架,Opencv中的各算法主要代码,到最后的软什实现部分,到最后的整个系统实现以及测试实验结果。5.1人脸识别系统的软件框架剥^于本次试验来说涉及到了计算机视觉处理中比较出色的一个开源工具,它就是OpenCV。OpenCV的全称是:OpenSourceComputerVisionLibrary。它是一个开放源代码的软件包,其被研究者广泛追崇的是它是可以夸平台操作的,可以运行在各大主要操作系统上,比如:Linux、Windows并gMacOS。它赢得全球很多追随者的主要原始是其轻量便捷,大多数代码都是由C函数以及‘些少量C+十类组成而成的。除此之外一些主流语言)HPython、Ruby、MATLAB的API借口都有一定量的丌放,研究者可以自行卜载,并且可以对源代码进行修改。其实现了图像处理和计算机视觉方面的很多通用算法,为开发者提供了不少的便捷。根据Opencv开放的API来搭建平台,这样一来建寺人脸检测以及人脸识别两大流程的人脸识别系统就显得方便多了。设计好的框架如图5.1所示:视频读写图像读写工O光照一体化大小一体化图像预处理人脸检测人脸识别人脸比对人脸识别图5.1人脸识别系统的框架5.2实验环境1.硬件环境客户端:PC机,CPU:Intel酷睿P61002核,内存:4G,硬盘:3006B2.软件环境客户端:Windows726第五章系统的设引与实现卜海帅范夫学坝十学f寸沦文木实验是基于PC端上实现的,Windows7系统,Visualstudio2008为、I‘台的丌发工具,采用了丌源下台0pencv2.3l版本中的开放API接U,编程语言是C}一。5.3人脸识别系统的总体结构以上介绍了人脸识别系统每个步骤的基本算法,接下来本节将介绍系统的总体结构。总体设计流程如下图5.2所示。羞餮鹫图5.2人脸识别的总体结构(1)获取人脸图像这一步骤主要是通过摄像头动态图中截取所需要的人脸图像,或者是从指定目录下加载静态图片也同样可以。(2)截取人脸区域在本系统里主要通过皮肤的颜色来截取人脸区域,并且经过肤色非线形分段色彩变换来实现。选择好一种合适的色彩空问之后经过该技术进行变换处理后得到的肤色模型是‘种聚类模型。(3)图像预处理:对获得的图像进行在刁i改变原始图像人脸特征信息的处理便是所渭的图像预处理。进行预处理的目的主要是为了使原始图像避免受到环境侧素的影响,使上海师范人学坝十学位论文第五堂系统的设计与实现得图像-I-的人脸特征能够更好的湿现出来。这1步骤具仃:①光线补偿;在提取后的图片中,尽管不少图像中的特征可以很好的被表现出来,但是不少图片会因为不同的光线照成光照小够从而影响到对有用部分的人脸提耿从而影响到表现效果。除此之外,又因为同时系统中要采用色彩空间的方法,因此对图像进行光照补偿是非常有必要的一步。YcrCB是广泛被使用的一种色彩空间是YcrCl3,通常情况下它在动态视频系统L卜『被委以重用。该方法YcrCB名字是由每个字母拼凑而成。一共有三个部分.首先Y代表像素的亮度,然后Cr代表红色,最后CB代表蓝色,大多数情况下会把Cr并IlCb统称为色度。②灰度变化从字面的表达就很好理解,这个过程就是把彩色图像通过转换变成只有黑色和白色的灰度图像,这一过程主要目的是为了更好的把图像中的有用信息表现出来,这样做的优点显而易见,只不过提取出的信息会失真。所以我们在用简单的表达方式来实现复杂的图像信息。③高斯平滑处理上面已经说过在图像获取的过程中,由于受不同冈素的影响,将会导致图像中出现不同的干扰噪声,在对这些图像以及噪声的压缩处理过程中,有可能会使得一些数据失真,从而影响到原始图像的真实性。一般我竹J将处理这些噪声的过程成为平滑处理,它可以去除图像张的高频信号,保存低频信号。因此我们在提取低频信号时会变得更加的简单。除此之外,我们还会把卷积半滑后的信息进行投影,使得黑白二值化后的图像效果更佳。④剥‘比度增强增强对比度就是通过进一步的图像处理对图像上的每个像素进行对比度拉伸,变换之后用每个像素新的灰度级别来取代原始的灰度级。要得希望得到不同的增强效果可以通过改变函数解析式来达到效果。⑤二值化如图灰度化一样,二值化的目的是将获取的图像上的每个像素点通过设定一个阈值使其只有黑白两个灰度级别。这样做的好处便于研究者更好的理解和识别。通过没定阑值,原值大于该阈值的全部为l,小于该阂债的全部为0,所以经过二二值第瓦章系统|1i勺漫if与文现卜海帅范人学硕+学化论文化处王早_后整张图只有O利1两个灰度级别,即图像卜的像素点的颜色非黑即是白。⑥直方图均衡该归一化方法的主要目的便是使得原始图像上的某一块区域内的灰度级别按照某‘标准进行转换。它的核心思想就是把图像比较集中的某个狄度区间均分分布,避免某块像素过高某块区域像素狄度级别过低。起到均衡化的作用,使得在后期的特征提取中受影响较少。虽然有很多优点,但是经过变换后的图像显得太均衡化,使得原本那些高灰度级的区域消失。(4)人脸检测在人脸识别之前人脸定位这一过程显得尤其重要,它是将典型的五官特征通过坐标图标记出来,在本论文中,我们只对眼睛,鼻子以及嘴巴进行特征定位。因为人脸器官是左右两边对称的,所以只要标记处一面,另一半便会简单快速的标记出来。(5)人脸识别特征提取主要有以下几个步骤:①提取曲只眼睛的距离②眼睛的倾角度③眼睛、嘴巴的重心④用矩阵标记特征在特征提取完之后将会得到相应的特征值以便存入后台数据库。(6)人脸比对在这一步骤中,获取图像的特征向量后,用它来与人脸库中的相近参数进行相比以及分析,经过分析后,如果与库中比对有相近的,那么便可以找到这个人,从而在显示界面上显示这个人的信息。5.4程序算法的实现5.4.1光照一体化对图像进行预处理,这里用到了同态滤波和直方图规定化的方法,主要函数代码如‘卜.:voidInitFilterKemelfCvSizeimgSz);上海帅范大学倾十学位沦文筇兀章系统的设计与文现boollnitMask(CvSizeimgSz,booluseMask);bool】nitHistNonllfCvSizeimgSz);boolInit(CvSizeimgSz,booluseMask);voidRunLightPrep(CvMat4facehn98);voidHomographicFilter(CvMat8img);voidHistNorm(CvArr+sre);voidMaskFace(CvArr4src);5.4.2Gabor特征提取提取Gabor特征,并进行均匀抽样,利用空域卷积进行计算voidInitGaborKernel0;imlnitSamplePoints(CvMat4mask,CvSizeimgSize);intInit(CvSizeimgSize,CvMat。mask);voidOetFeature(CvArr8facelm932,CvMat+ft32);voidShowGaborKernel0;voidOaborConv(CvArr+src,CvMat4dst,intscale,intangle);voidRelease();5.4.3Fisherface降维子空间Gabor提取的特征向量维数相对的大,为了降低计算的计算量,采取了降维子空间的方法。具体代码如下:/对inputs计算土分量,结果存入mutotal和W_pcaT。inputs:特征向量按列排列成的矩阵postPcaDimCoef:如果是整数,则直接指示PCA后的维度;如果是。l的小数,则按特征值所占LtI歹I]保留子空间维度voidPca(CvMat*inputs,doublepostPcaDimCoef):inputs:类{以Pca,但每行均值应是(即应事先减去均值向量),inputs会被改变。trainIds:训练样本的类NIJID,数组K度应与inputs的列数相l—J。postLdaDim:LDA后的维度。如果取,则自动选为类别数一l;此时如果类别数一l<3,为防止维数过小,维数取为rain(训练样木数,3)。笫五章系统的设计与实现上海川J范人学坝十学{一论文Sw,Sb与Matlab基木一致,clapacktl‘算的广义特征值、向量,可能与Mat有区别。调用CalcSwSb和CalcLdaSpace,训练结果保存到W_fldT。voidlabFisherLda(CvMat*inputs,int*tra.inlds,intpostLdaDim=0):pcafldT调用PcaIHFishel’Lda,参数类,fNFisherLda,训练结果保存到WVOidTrain(CvMat*inputS,int*trainIds):inputs可以是一个向量或列向量排列成的矩阵voidProject(CvMat*inputs,CvMat*results):返回子空间维度intGetSubspaceDiⅢ0:如果特征维数大十,采用余弦距离的相反数(距离越小越相似);否则采用欧氏距离。doubleCalcVectorDist(CvMat*target,CvMat*query):以字符串和二进制混合的方式,导入/导出:矩阵精度,原始特征维度,降维后维度,mu_total,W_pcafldTboolWriteDataToFiboolle(ofstream&os):ReadDataFromFile(ifstream&is):5.5人脸识别系统人脸识别系统主要分为以下几个部分流程图如图5.3:(1)人员注册;即对将要拿来比对的人员的人脸信息进行入库注册,一股每个人需要一组照片,并标上姓名。以便ktx,]-的时候可以反馈出系统库是否有此人。一般情况下,人脸库分为两类,一类是单人脸库,另一类是多人脸库。上海川l范人学坝十学化沦文第五章系统的设计与实现鏊ii熬豢謦謦曩襄ji。;ii辩、糍,∞《i,》“;j启鬻l熬囊ii溺拱i…誊!…¨i赫j。黧。篓{。一飘∞_|篓;鏊爨_|||i薹慧鎏ii誊墓蠢誊蠢ii薹薹鏊薹鬟意;麓鑫。蠹;蠹i蠹巍蠹;≤溢ii蠢谶蠢i溢图5.3人脸识别模块识别图(2)用户识别;第一步已经将将要比对的人员人脸信息输入到库中,这一步即是将通过摄像头或者镜头图片进行人脸特征提取。(3)特征比对;第二步对人脸特征进行提取后,把得到的信息矩阵与人脸库中的对比,便可以显示是否为人脸库中的某一个人。一般,人脸识别系统最后比对有两种功能,第一就是判断这个人是否为人脸,第二判断这个人是否为系统库中的人脸。5.6系统功能的展示经过上面介绍的软件设计流程以及各个核心算法的代码,基于PC端的人脸识别系统便完成了,本节将展示人脸识别系统的识别过程。5.6.1系统主界面系统主界面如图5.4所示。第瓦章系统的设训与实现上海帅范人学坝十学化沦文…入库;_圭艘i调l练样本。…。。,jl一』塑鳖羔~jf…一…一…一~~.I;...............................一,.,….一j遢出图5.4系统主界面第一步是训练分类器。操作界面如图5.6和图5.7图5.6训练界面图5.7训练成功界面上海帅范人学坝十学位沦文第7i章系统的设计与实现接卜-来进行汴册入库。图5.8中方框L卜f即使经过了归一化后的图像检测以及样本截取。…三种注瓣方法:………………………………………j…………Io=一=:=z===#====i:#:F黾蕊一图5.8检测界面截取的六个样本如下图5.9:一■一■曩■弧三0一i0;差三殴so囊三0—5—1羧三os2强三os一3i交三疋§』图5.9识别样本导入静态图片或者摄像头截取一张,进行人脸比对,与样本库中的“张三0j一0”最为相似,效果如图5.10。第,i章系统的设训与实现上海i|llj范人学坝十学似沦文您迹可以:-葛X爵喾鬟慕3辫,匹酉潴果:强三0,相似度(·l一1):o.8879t7匹酉e图片路径:face崩Cs帕ces毽长三0一l_o.bmp图5.10人脸比对5.7几种识别算法实验结果比较上一节已经展示了系统的整体流程,包括图像采集,人脸检测,人脸识别,人脸比对。本节本文将通过变换算法组合,分别用这几种算法做实验,比较它们的各自实验数据。本实验主要进行基于PCA,LDA并NLPP算法的人脸识别,并对三种方法的实验结果进行分析比较。5.7.1数据库介绍数据库包含了i00个人的人脸图像,每人5张图像,前2张基本是正面,后面3张有姿态变化,最后一张姿态变化最大。图像的光照也有较为明显的强弱不均,且各张图像大小不一样。5.7.2实验设计本实验主要可分为如下几个步骤:1)图像预处理2)特征提取,分别通过PCA,PCA+LDA和PCA+LPP算法进行降维。其中,PCA降维保持90%M‘匕。量。3)存新特征空间进行人脸识别由于数据库的非标准化,图像预处理是必要且复杂的:1)对每张图像进行J,人脸剪切:首先将图像从RGB窄问转换flJLab窄问,再去均值,最后通过边缘检测来检测人脸区域,将不必要的背景区域剪切掉。上海!Ji|J范人学坝十学位沦文第7i章系统的设计与实现2)将所有图像统一缩放为64X/18人小。在图像剪切过程。卜』,有小部分图像的边缘检测效果不是很理想,需要手动剪切。实验选用了前50个人的500张图像。每人共10张图像,从第l张至第5张,分别被选做测试样本,剩余5张作为训练样本,进行实验,抽取了其巾‘组样本,如图5.11所示。图5.11实验样本5.7.3实验结果本实验分别用TPCA,LDA矛HDCT算法进行特征提取,均采用最近邻分类器进行分类。每组算法测试样本为5张不同照片,分别进行人脸比对,能够识别比对出来的比例如下图5.12所示:图5.12三种算法的人脸识别成功率36第五章系统的发计与实现上海帅范人学坝+学何沦文5.7.4结果分析如卜图5.12所示,当今比较流行的二种算法的识别成功率几乎筹不多,但LDA会稍微好些,这卞要是因为LDA算法是一种监督的学习方法,它运用1r样本的类别信息,而PCA与DCT算法都是非监督的学习方法。另外,每个人5张图像作为测试样本的时候,得到的识别率非常低,这是由于姿念的变化太大,影响了识别率。37上海!JiIj范大学硕十学位论文第六章总结与展望第六章总结与展望6.1本文工作总结本文始终罔绕着人脸检测与人脸识别,对它们效果最好的算法进行研究,然后编写相关的代码,实现了一个基于PC端的人脸识别系统。利用的算法主要包括:基于Harr的AdaBoost、PCA特征采集、LDA、DCT、降维子空问Fisherface。对Viola—Jones方法进行了稍微的改进,实现了基于类Haar的多级AdaBoost的人脸检测功能,改进之后的算法提高了成功率,并且在相关的检测速度上也有相当的提高;利用Gabor对人脸图像的特征进行提取,并且在本系统中得以实现。特征提取后的子空间降维Fisherface的研究以及实现,从而使得减少了系统的运算时间,减少了时间复杂度;构造了一个基于计算机视觉的应用系统软件框架,并在此框架上实现了集人脸图像采集、归‘化处理、人脸检测、人脸识别比对的系统。6.2对未来工作的展望在完成本论文之后,虽然系统框架都俱全,但是看着软件设计流程以及算法的改进都还很不完善,有待于进一步的研究工作,包括:(1)为了完善成一个完美的系统,后期针对除了环境因素干扰的情况之外,比如像人脸上的遮挡物、眼镜之类的对人脸检测带来的影响还有待进一步的研究和解决。(2)人脸检测这块的人脸定位可以更精确…‘些,目前实现的方法准确度没有达到理想的效果。(3)应用光照补偿技术进行光照预处理,克服光照对人脸识别的影响;(,1)在特征的提取上,可以尝试不同的方法,结合各种算法的优势处;增加该系统的分布式/并行计算能力。38参考文献上海帅范人学f(!j!十沦文致谢木论文在我的导师陈老师的细心指导卜,终于完成。在论文完成之际,我由衷的感谢我的导帅陈老师。在本篇文论中,无论是对理论知识的学习,还是论文的设计研究,都给予1r悉心的指导。陈老师丰富的知识、严谨的态度和创造性的思维,都使我受益匪浅,不仅对我研究生期间的学习有莫大的帮助,而且对我之后的人生道路给r了重要的启迪。在此,对陈老师表示深深的敬意和感谢。此外在这两年的研究生学习期间,非常幸运能够跟随陈老师的门下,学到了不光是专业技能,更多的是学会如何做人,在此深表感谢。另外还要感谢我的父母和我的同伴们,是他们一直以来的无私陪伴以及照顾让我这些年非常的愉快,为了不辜负他们的期待,我会努力进步,为社会做出贡献。最后祝愿所有的老师和同学身体健康,前程似锦。卜海帅范人学珂!十学位沦文参考文献参考文献[I]崔晓坤,尚韬等,‘种人脸定位的几何匹州算法设计与实现:jj,科学技术与_L程,2005,t3(5):906909.[2]李十迸等,一种稳健的人脸检测方法[J],小型微型计算机系统,2000,2l(j):719—721.[3]林维训,潘纲,吴朝晖,潘云鹤等,脸部特征定位方法[J],中国图像图形学报,2003,8(8):849—859.[4]李传林,鲁秀青等,人脸照片的特征提取与查询[J],计算机应用研究,2002,19(7):¨0111.[5]吕辉军,基于数据场的人脸识别研究[硕士毕业论文],南京:解放军理工大学,2002.[6]朱夏军,人脸识别的研究及眼睛定位算法[硕士毕业论文],浙江:浙江工业大学,2003.[7]陈丽华,龚雯,沈建国等,基于人脸结构特征的眼睛定位算法[J],2005,3l(9):34~36.[8]于威威,滕晓龙,刘重庆等,复杂背景下人眼定位及人脸检测!J],2004,21(12):185—188.[9j章毓晋,图像工程(上、下册)[M],北京:清华大学出版社,2003.[10]贺瑞宏,简单背景下的人脸检测[硕士毕业论义],国防科学技术大学电子科学与工程学院,2004.[I1]李刚,高政、人脸自动识别方法综述、计算机应用研究、2003,Vol8:49[12]宋春雷,王龙等、学习理论与鲁棒控制、控制理论与应用、Vol17(5),633636[13]闫宏,张兴周,刘晓瑞.基于特征脸的人腧识别系统,应用科技,VoL34,No.4,2007.4.[14]高守传,姚领田.Visualc++实践与提高一一数字图像处理与工程应用篇.2006.1:67—69153—155164~165149—150158f15]章柏幸,苏光大.人脸成像特性研究及人脸归一化的目标[J].光电子,V01.14,No.4.2003:406—410.[16]徐仲,张凯院,陆全,冷国伟.矩阵论简明教程.北京,科学出版社.2004:儿8—123138一140[17]赵静,夏良正.基于连续小波变换的神经网络人脸识别研究.光子学报,V()1.34,No.9,2005.9【18]LeungT.K,BurtMC,PeronaEFindingfacesinclutteredscenesusingrandomlabeledgraphicmatching[J],Fifth]ntlConf,onComp.Vision,CambridgeM.A.。hmel995.40釜兰奎鳖兰塑业蔓查兰竺±堕茎【191YangMing.Hsuan,DavidJ.K.,NarendraA.、DetectingFacesinhnagcs:ASutvey、IEEETransactionsonPatternAnalysisandMachineIntelligence、Vol24(1):34—58,2002/0I[20lHjelmSsE.,LowBK.、FaceDetection:ASurvey、ComputerVisionandhnageUnderstandnig83,236~274(2001)[211TKohonen,Self-OrganizationandAssociativeMemory,Springer1989[221BelhumeurPN,HespanhaJ.P,KriegmanD.J、EigenfacesVS.Fisherface:RecognitionUsingClassSpecificLinearProjection、1EEETrans.PattemAnalysisandMachineIntelligence,v01.19(7),7l1—720,July199/1231K.KSung,T.Poggio、Example-BasedLearningforView‘BasedHumanFaceDetection、TechnicalReport魁Memo1521、MassachusettsInst.OfTechnologyAILab,t994【24】E.Osuna,R.Fretmd,andF.Girosi、TrainingSupportVectorMachines:AnApplicationtoFaceDetection、Proc.IEEEConf.ComputerVisionandPatternRecognition,130—136,1997[251B.Heiselet,TSerre,MPontiletal、Component—basedFaceDetection、ProcIEEEComputerSocietyConferenceonComputerVisionandPatternRecognition,2001,1:1657一1662【26】NefianA,HayesM.、HiddenMarkovModelsforFaceRecognition、IEEEInternationalConferenceonAcoustics,SpeechandSignalsProcessings,Seattle,Washington,1998:2721_2724[27]FreundY,SchapireRE.ADecision—TheoreticGeneralizationofOn。LineLeamingandanApplicationtoBoostingJournalofComputerandSystemSciences,1997,55(1):119_1392000110[28]ValiantL.G.、ATheoryoftheLearnable、CommunicationsoftheACM、Vol27(11),1134一1142,1984/11[29]KeamsM、TheComputationalComplexityofMachineLearning、Cambridge:MlTPress,1990[301KearnsM,ValiantL.G.、CryptographicLimitationsonLearningBooleanFormulaeandFiniteAutomata、JournaloftheACM,41(1):67—95,1994/01[311SchapireR.E.、TheStrengthofWeakLearnability、MachineLearning,1990,5(2):197—227[32],ZhangDYr,HanS.Z.,ZhaoJH.,Zhangz.,QuC.z.,KeYW.,Chenx:ImageBasedForestFireDetectionUsingDynamicCharacteristicsWithArtificialNeuralNegvorksInternationalJointConferenceonArtificialIntelligence,PP.290—293.{2009)[33]BoWu,XiangyangJi,DebinZhao,WenGao.WaveletBasedDistributedVideoCodingwithSpatialScalability.2008IEEEInternationalSymposiumOnCircuitsandSystems,d1上海1JJ|l范人学硕+学位论文参考文献ISCAS2008,Seatle,Washington,USA,Mayl8—2I,2008[34】GrossmannA.Wavelettransfonnandedgedetection.Instochasticprocessesinphysicsandengineering,Dodrecht:Reigdel,1986.[35]MallatS,HwangWL.Singularitydetectionandprocessingwithwavelets.IEEETranshfformationTheory,1992,38(2):617—643[361MallatS,ZhongS.Wavelettransformmaximaandmultiscaleendges.WaveletandflleirApplications,Boston:JonesandBartlettPublication,1992[37]MTurk,APentland.FacerecognitionusingEigenfaces[C].In:ProclEEEConfonComputerVisiouandPatternRecognition,1991:586—591.[38]PentlandA,MoghaddamB,StamerT.View—basedmadmododulareigenspacesforfacerecognition[C】.In:ProcIEEEConfonComputerVisionandPatternRecognition,1994:84—9[39]WuX.ZhouZ.H.Facerecognitionwithonetrainingimageperperson.PatternRecognitionLetters.2002,23(14、:1711-1719P[40]ChertSongcan,ZhangDaoqiang,ZhouZhi—Hua.Enhanced(PC)2Aforthcerecognitionwithouetrainingimageperperson.PaRemRecoglfitionLetters.2004,25(2):1173—1181P[41]L-FChen,H·YM.Liao,M-TKo,JCLinandG—JYn.AnewLDA--basedfacerecognitionsystemwhichcansolvethesmMlsamplesizeproblem.PatternRecognition.2000,33(5):1713—1726P【42]HongZandYangJ.OptimaldiscriminantplaneforasmallnumberofsamplesanddesignmethodofclassifieronWeplane.PaRernRecognition【43]DValentin.HAbdiConnectionistmodelsoffaceprocessing:asurvey1994(09)【44]RChellappa.CWilson.SSiroheyHnmanandmachinerecognition:asurvey1995(05)【45].WZhao.RChellappaFacerecognition:aliteraturesurvey,TechnicalReport,CFAR—TR00-9482000[46]DaugmanFaceandgesturerecognition:overview1997(07)【471李刚.高政人脸识别理论研究进展[期刊论文卜汁算机与现代化2003(3)【481N激流.张晔人脸识别理论研究进展【期刊论文】一计算机辅助设计‘与图形学学报1999(2)42