人脸识别技术研究解读_第1页
人脸识别技术研究解读_第2页
人脸识别技术研究解读_第3页
人脸识别技术研究解读_第4页
人脸识别技术研究解读_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.1/48人脸识别技术研究1引言1.1选题背景目前,在个人身份鉴别中主要依靠ID卡和密码等传统手段,这些传统手段的安全性能较低,且都是基于,"WhatheDossesses"或"Whatheremembers"的简单身份鉴别,离真真意义上的身份鉴别"Whoheis"还相差甚远。依靠传统方法来确认个人身份越来越不适应现代科技的发展和社会的进步。生物特征识别技术给可靠的身份鉴定带来了可能。最近,国际生物特征组织<IBG>对生物特征识别技术做了较详细的市场分析和预测,其结果显示,全球生物特征识别技术20XX的产值约为69亿美元,预计到2016年将超过93亿美元,市场潜力非常巨大…。生物识别技术是指利用一个人特有的生理和行为特征进行自动的身份认证。只有满足以下几个条件的生理或行为特征才能被用做生物识别特征普遍性。即每个人都要具备这种特征。唯一性。即不同的人应该具备不同的这种特性。持久性。即这种特征不随时间地点的改变而变化。可采集性。即该特征可以被定量地测量。研究和经验表明,人脸、指纹、手型、掌纹、虹膜、视网膜、签名、声音等都满足这些条件,可以用于识别人的身份。基于这些特征,人们发展了人脸识别、指纹识别、语音识别、虹膜识别等多种生物识别技术。在所有的生物特征识别技术中,利用人脸特征进行身份识别是最自然、最直接和最友好的于段。与其它生物特征识别技术相比,人脸的获取非常容易,几乎可以在被采集对象无意识的状态下获取人脸图像,这样的取样方式没有"侵犯性"。人脸识别技术是种重要的生物特征识别技术,应用非常广泛。人脸是自然界存在的一种特殊的复杂视觉模式,它包含及其丰富的信息。首先,人脸具有一定的不变性和唯一性,人脸识别是人类在进行身份确认时使用最为普遍的一种方式,人脸图像还能够提供一个人的性别、年龄、种族等有关信息。其次,人脸也.具有多样的变化能力,从人脸的不同表情人们可以感知到一个人的情绪、感受、甚至秉性和气质。它无需特殊的采集设备,系统的成本低,而且自动人脸识别的使用非常自然,可以在被识别对象毫无察觉的情况下进行,是种非常受使用者欢迎的方式。虽然人类在表情、年龄或发型等发生巨大变化的情况下,可以毫不费力地以人脸来识别某人,但要建立一个能够完全自动进行人脸识别的系统却是非常困难的,诸多因素使得人脸识别研究成为一项极其挑战性的课题.它牵涉到模式识别、图像处理、计算机视觉、生理学、心理学、以及认知科学等方面的诸多知识,并与基于其它生物特征的身份鉴别方法以及计算机人机感知交互领域都有密切联系。与指纹、视网膜、虹膜、基因、掌形等其它生物特征识别系统相比,人脸识别具有直接、友好、方便和非接触等许多优点,多年来一直受到许多研究者的关注。人脸识别研究,起源于19世纪末法国人SirFranisGahon的工作。到20世纪90年代,开始作为一个独立学科快速发展起来。人脸识别研究的发展大致分成三个阶段第一阶段是以Allen和Parke为代表,主要研究人脸识别所需要的面部特征。研究者用计算机实现了较高质量的人脸灰度模型。这阶段的工作特点是识别过程全部依赖于操作人员。第二阶段是人机交互式识别阶段,其中用几何特征参数来表示人脸正面图像是以Harmon和Lesk为代表,将人脸面部特征用多维特征矢量表示出来,并设计了基于这一特征表示法的识别系统。而以Kaya和Kobayashi为代表,则采用了统计识别的方法、用欧氏距离来表示人脸特征,这两类方法都摆脱不了人的干预。第三阶段是真正的机器自动识别阶段,近十余年来,随着高速度高性能计算机的发展,人脸模式识别方法有了较大的突破,提出了多种机器全自动识别系统,人脸识别技术进人了实用化阶段。如Eyematic公司研发的人脸识别系统。我国清华大学的"十五"攻关项目《人脸识别系统》也通过了由公安部主持的专家鉴定。人脸识别有着广泛的应用领域<1>在安全防范领域中的应用。社会上有许多重要的部门,如军事、金融、保密等部门都需要对出入人员进行身份识别,以防止信息泄漏和不法现象的发生。使用该技术可以方便地进行身份识别,而不使被识别者感到不舒服。<2>在犯罪刑侦领域中的应用。在刑侦工作中,对罪犯的抓捕是至关重要的一环。应用人脸识别技术可以依据犯罪嫌疑人的人脸图像对机.场、车站、港口等重要交通场所进行监控,从而大大促进了罪犯抓捕工作的开展。<3>在公共事业领域中的应用。在现代社会,许多领域都需要对人进行身份验证。如银行、保险、交通等公工事业部门。采用传统的密码、IC卡等手段和技术对人进行身份验证具有安全性差,易遗失、易伪造等缺点。而采用人脸识别技术进行身份验证则能够很好地克服传统身份验证手段和技术的缺点。因此成熟的人脸识别技术不但具有极大的学术研究价值,而且具有广泛的社会需求和市场领域。一个成功的具有商用价值的人脸识别系统必将对现实社会带来极大的影响。当前,人脸识别己成为计算机视觉、模式识别和人工智能等领域的一个研究热点。我们有理由相信,随着技术的不断发展,人脸识别技术将不断完善,并得到更为广泛的应用。近年来,由于视频监控,人机交互和视频检索等应用的需求,视频中的人脸检测研究得到迅速发展。视频中人脸检测可以划分为三个环节:先提取视频文件中的帧,对图像进行人脸检测,再还原成视频,完成视频中人脸的检测。人脸检测最初来源于人脸识别。是指对于任意一副给定的图像,采用一定的策略对其进行搜索以确定其中是否含有人脸,如果是则返回一脸的位置、大小和姿态,并把有人脸的地放识别出来。早期,人脸检测技术主要服务于人脸识别课题的研究;但是,随着生物识别技术的快速发展,入脸检测技术己经被广泛的应用于其它相关领域,产生一定的商业价值。例如:国家军事、安全系统验证、视频会议、人机智能交,各类金融卡、身份验证等等方面具有重要的应用价值,所以,现在人们有许多人对人脸识别越来越重视了。人脸检测的研究同时也具有非常重要的的学术价值,人脸是一类具有相当复杂的细节变化的自然结构目标,对此类目标的挑战性在于:人脸由于外貌、表情、肤色等不同,具有模式的可变性;一般意义下的人脸上,可能存在眼镜、胡须等附属物;作为三维物体的人脸影像不可避免地受由光照产生的阴影的影响。因此,.如果能够找到解决这些问题的方法,成功地构造出人脸检测系统,将为解决其他类似的复杂模式的检测问题提供重要的启示。人脸检测的目的是检测一张图像是否由人脸,如果有人脸,就把它从图像背景中分离出来,然后对特征进行人脸识别。而在视频中的人脸检测在信息处理中,已经成为是一项相当难突破的技术,越来越受到计算机视觉界的广泛关注,作为这个有价值课题,已经渗透到各不同领域中。三维人脸识别越来越受到研究人员的重视。国内外都兴起了对三维人脸识别技术研究的浪潮。1.3.1国内进展在国内,最早研究人脸检测识别的,当属于中科院计算所跟哈工大的一个联合面像实验室。该实验室的高文教授,陈熙林教授,山世光教授,直到今天,都一直活跃在人脸识别领域,更可贵的是,在IEEE上面发表了很多paper。这一点,很值得国内的同行学习。后来,该实验室,成为上海银晨的研发中心,专门为上海银晨做技术研发和技术支持。其次是中科院生物识别研究所的李子青教授,以及下属的中科奥森公司。李子青教授,当年在微软亚洲研究院的时候,就从事人脸识别方面的研究工作。后来,在中科院组建了专门的人脸识别研究团队。该研究团队,首先提出了基于近红外的人脸识别技术,并将该项人脸识别技术用于08年北京奥运会。同时,基于近红外的人脸识别技术,得到了国际上同行业专家的认同和一致肯定。接着,是清华大学的丁晓青教授。丁晓青教授在OCR<字符识别>领域,可谓国内第一人。不过,最近几年转行做人脸识别,也是非常有成就的。不说别的,就只从FRVT2006〔美国国家标准研究所20XX全球人脸识别供应商系统性能测试的测试结果来看,丁晓青教授的研究团队是唯一一个完成大规模3D人脸识别性能测试的参赛团队。由此可见,在国内人脸识别领域来说,她们的算法,在3D领域,绝对排名第一。1.3.2国外进展.国外主要有美国、欧洲国家、日本等著名的科研机构有美国的MIT和CMU,英国的剑桥大学。在人脸识别领域中,国际上逐步形成了一下几个研究方向:基于几何特征的方法、基于肤色模型的方法、基于模板匹配的方法、基于KL变换的特征脸方法、基于隐马尔可夫模型的方法和神经网络识别的方法等等。它们可以被归类到基于显式特征和基于隐式特征的两大类方法中。发展至今,人脸识别的方法越来越多,最有代表的是基于Haar特征的人脸识别方法是其中较为典型的方法,该算法不仅具有较高的检测率,同时也能够满足实时检测的要求。基于Haar特征的人脸识别方法始于20XXPaulViola和MichaelJones两者撰写的一篇论文,他们在论文中提出了Haar特征和Adaboost算法,并利用它们进行人脸检测。但是此方法只能用于检测正面无旋转的人脸。为此,RainerLienhart等人于20XX对此方法进行了扩展,增加了倾斜特征的定义,此后此方法被扩展到全旋转缩放情况下的人脸检测。自从以上几位学者运用基于Haar特征和Adaboost算法进行人脸检测取得长足进步之后,基于Haar特征的人脸检测方法备受专家学者的青睐,国内外相关内容的研究成果也是层出不穷。本文是在人脸特征库的基础上做人脸特征提取和识别研究,主要内容分为四章,分别如下:〔1第一章:主要介绍了本文的历史背景,着重介绍了人脸检测技术的研究现状以及国内外研究现状,并明确了本文的工作内容和章节安排。〔2第二章:主要分析几种主流的人脸识别算法和每种算法的优点和劣势,本文在这里主要介绍了三种即:基于几何特征的方法、基于模板的方法和基于模型的方法。1.基于几何特征的方法是最早、最传统的方法,通常需要和其他算法结合才能有比较好的效果;2.基于模板的方法可以分为基于相关匹配的方法、特征脸方法、线性判别分析方法、奇异值分解方法、神经网络方法、动态连接匹配方.法等。3.基于模型的方法则有基于隐马尔柯夫模型,主动形状模型和主动外观模型的方法等。〔3第三章:本章针对光照不均问题,提出了基于球面谐波基图像的光照补偿算法,用以在任意光照条件下进行人脸识别。算法份两步进行:光照估计和光照补偿。〔4第四章:基于几何特征的人脸识别并利用几何特征的方法实现人脸特征识别。.2人脸识别算法分析主流的人脸识别技术基本上可以归结为三类,即:基于几何特征的方法、基于模板的方法和基于模型的方法。基于几何特征的方法是最早、最传统的方法,通常需要和其他算法结合才能有比较好的效果;2.基于模板的方法可以分为基于相关匹配的方法、特征脸方法、线性判别分析方法、奇异值分解方法、神经网络方法、动态连接匹配方法等。3.基于模型的方法则有基于隐马尔柯夫模型,主动形状模型和主动外观模型的方法等。2.1基于几何特征的方法人脸由眼睛、鼻子、嘴巴、下巴等部件构成,正因为这些部件的形状、大小和结构上的各种差异才使得世界上每个人脸千差万别,因此对这些部件的形状和结构关系的几何描述,可以做为人脸识别的重要特征。几何特征最早是用于人脸侧面轮廓的描述与识别,首先根据侧面轮廓曲线确定若干显著点,并由这些显著点导出一组用于识别的特征度量如距离、角度等。Jia等由正面灰度图中线附近的积分投影模拟侧面轮廓图是一种很有新意的方法。

采用几何特征进行正面人脸识别一般是通过提取人眼、口、鼻等重要特征点的位置和眼睛等重要器官的几何形状作为分类特征,但Roder对几何特征提取的精确性进行了实验性的研究,结果不容乐观。可变形模板法可以视为几何特征方法的一种改进,其基本思想是:设计一个参数可调的器官模型<即可变形模板>,定义一个能量函数,通过调整模型参数使能量函数最小化,此时的模型参数即做为该器官的几何特征。

这种方法思想很好,但是存在两个问题,一是能量函数中各种代价的加权系数只能由经验确定,难以推广,二是能量函数优化过程十分耗时,难以实际应用。基于参数的人脸表示可以实现对人脸显著特征的一个高效描述,但它需要大量的前处理和精细的参数选择。同时,采用一般几何特征只描述了部件的基本形状与结构关系,忽略了局部细微特征,造成部分信息的丢失,更适合于做粗分类,而且目前已有的特征点检测技术在精确率上还远不能满足要求,计算量也较大。.2.2局部特征分析方法主元子空间的表示是紧凑的,特征维数大大降低,但它是非局部化的,其核函数的支集扩展在整个坐标空间中,同时它是非拓扑的,某个轴投影后临近的点与原图像空间中点的临近性没有任何关系,而局部性和拓扑性对模式分析和分割是理想的特性,似乎这更符合神经信息处理的机制,因此寻找具有这种特性的表达十分重要。基于这种考虑,Atick提出基于局部特征的人脸特征提取与识别方法。这种方法在实际应用取得了很好的效果,它构成了FaceIt人脸识别软件的基础。2.3特征脸方法特征脸方法是90年代初期由Turk和Pentland提出的目前最流行的算法之一,具有简单有效的特点,也称为基于主成分分析<principalcomponentanalysis,简称PCA>的人脸识别方法。特征子脸技术的基本思想是:从统计的观点,寻找人脸图像分布的基本元素,即人脸图像样本集协方差矩阵的特征向量,以此近似地表征人脸图像。这些特征向量称为特征脸<Eigenface>。实际上,特征脸反映了隐含在人脸样本集合内部的信息和人脸的结构关系。将眼睛、面颊、下颌的样本集协方差矩阵的特征向量称为特征眼、特征颌和特征唇,统称特征子脸。特征子脸在相应的图像空间中生成子空间,称为子脸空间。计算出测试图像窗口在子脸空间的投影距离,若窗口图像满足阈值比较条件,则判断其为人脸。基于特征分析的方法,也就是将人脸基准点的相对比率和其它描述人脸脸部特征的形状参数或类别参数等一起构成识别特征向量,这种基于整体脸的识别不仅保留了人脸部件之间的拓扑关系,而且也保留了各部件本身的信息,而基于部件的识别则是通过提取出局部轮廓信息及灰度信息来设计具体识别算法。现在Eigenface<PCA>算法已经与经典的模板匹配算法一起成为测试人脸识别系统性能的基准算法;而自1991年特征脸技术诞生以来,研究者对其进行了各种各样的实验和理论分析,FERET'96测试结果也表明,改进的特征脸算法是主流的人脸识别技术,也是具有最好性能的识别方法之一。该方法是先确定眼虹膜、鼻翼、嘴角等面像五官轮廓的大小、位置、距离等属性,然后再计算出它们的几何特征量,而这些特征量形成一描述该面像的特征向量。其技术的核心实际为"局部人体特征分析"和"图形/神经识别算法。"这种算法是利用.人体面部各器官及特征部位的方法。如对应几何关系多数据形成识别参数与数据库中所有的原始参数进行比较、判断与确认。Turk和Pentland提出特征脸的方法,它根据一组人脸训练图像构造主元子空间,由于主元具有脸的形状,也称为特征脸,识别时将测试图像投影到主元子空间上,得到一组投影系数,和各个已知人的人脸图像比较进行识别。Pentland等报告了相当好的结果,在200个人的3000幅图像中得到95%的正确识别率,在FERET数据库上对150幅正面人脸象只有一个误识别。但系统在进行特征脸方法之前需要作大量预处理工作如归一化等。在传统特征脸的基础上,研究者注意到特征值大的特征向量<即特征脸>并不一定是分类性能好的方向,据此发展了多种特征<子空间>选择方法,如Peng的双子空间方法、Weng的线性歧义分析方法、Belhumeur的FisherFace方法等。事实上,特征脸方法是一种显式主元分析人脸建模,一些线性自联想、线性压缩型BP网则为隐式的主元分析方法,它们都是把人脸表示为一些向量的加权和,这些向量是训练集叉积阵的主特征向量,Valentin对此作了详细讨论。总之,特征脸方法是一种简单、快速、实用的基于变换系数特征的算法,但由于它在本质上依赖于训练集和测试集图像的灰度相关性,而且要求测试图像与训练集比较像,所以它有着很大的局限性。基于KL变换的特征人脸识别方法基本原理:KL变换是图象压缩中的一种最优正交变换,人们将它用于统计特征提取,从而形成了子空间法模式识别的基础,若将KL变换用于人脸识别,则需假设人脸处于低维线性空间,且不同人脸具有可分性,由于高维图象空间KL变换后可得到一组新的正交基,因此可通过保留部分正交基,以生成低维人脸空间,而低维空间的基则是通过分析人脸训练样本集的统计特性来获得,KL变换的生成矩阵可以是训练样本集的总体散布矩阵,也可以是训练样本集的类间散布矩阵,即可采用同一人的数张图象的平均来进行训练,这样可在一定程度上消除光线等的干扰,且计算量也得到减少,而识别率不会下降。2.4基于弹性模型的方法Lades等人针对畸变不变性的物体识别提出了动态链接模型<DLA>,将物体用稀疏图形来描述<见下图>,其顶点用局部能量谱的多尺度描述.来标记,边则表示拓扑连接关系并用几何距离来标记,然后应用塑性图形匹配技术来寻找最近的已知图形。Wiscott等人在此基础上作了改进,用FERET图像库做实验,用300幅人脸图像和另外300幅图像作比较,准确率达到97.3%。此方法的缺点是计算量非常巨大。Nastar将人脸图像<Ⅰ><x,y>建模为可变形的3D网格表面<x,y,I<x,y>><如下图所示>,从而将人脸匹配问题转化为可变形曲面的弹性匹配问题。利用有限元分析的方法进行曲面变形,并根据变形的情况判断两张图片是否为同一个人。这种方法的特点在于将空间<x,y>和灰度I<x,y>放在了一个3D空间中同时考虑,实验表明识别结果明显优于特征脸方法。Lanitis等提出灵活表现模型方法,通过自动定位人脸的显著特征点将人脸编码为83个模型参数,并利用辨别分析的方法进行基于形状信息的人脸识别。弹性图匹配技术是一种基于几何特征和对灰度分布信息进行小波纹理分析相结合的识别算法,由于该算法较好的利用了人脸的结构和灰度分布信息,而且还具有自动精确定位面部特征点的功能,因而具有良好的识别效果,适应性强识别率较高,该技术在FERET测试中若干指标名列前茅,其缺点是时间复杂度高,速度较慢,实现复杂。2.5其它方法除了以上几种方法,人脸识别还有其它若干思路和方法,包括一下一些:1隐马尔可夫模型方法〔HiddenMarkovModel2Gabor小波变换+图形匹配〔1精确抽取面部特征点以及基于Gabor引擎的匹配算法,具有较好的准确性,能够排除由于面部姿态、表情、发型、眼镜、照明环境等带来的变化。〔2Gabor滤波器将Gaussian网络函数限制为一个平面波的形状,并且在滤波器设计中有优先方位和频率的选择,表现为对线条边缘反应敏感。〔3但该算法的识别速度很慢,只适合于录象资料的回放识别,对于现场的适应性很差。人脸等密度线分析匹配方法〔1多重模板匹配方法该方法是在库中存贮若干标准面像模板或面像器官模板,在进行比对时,将采样面像所有象素与库中所有模板采用归一化相关量度量进行匹配。〔2线性判别分析方法〔LinearDiscriminantAnalysis,LDA〔3本征脸法本征脸法将图像看做矩阵,计算本征值和对应的本征向量作为代数特征进行识别,具有无需提取眼嘴鼻等.几何特征的优点,但在单样本时识别率不高,且在人脸模式数较大时计算量大〔4特定人脸子空间<FSS>算法该技术来源于但在本质上区别于传统的"特征脸"人脸识别方法。"特征脸"方法中所有人共有一个人脸子空间,而该方法则为每一个体人脸建立一个该个体对象所私有的人脸子空间,从而不但能够更好的描述不同个体人脸之间的差异性,而且最大可能地摈弃了对识别不利的类内差异性和噪声,因而比传统的"特征脸算法"具有更好的判别能力。另外,针对每个待识别个体只有单一训练样本的人脸识别问题,提出了一种基于单一样本生成多个训练样本的技术,从而使得需要多个训练样本的个体人脸子空间方法可以适用于单训练样本人脸识别问题。〔5奇异值分解<singularvaluedecomposition,简称SVD>是一种有效的代数特征提取方法.由于奇异值特征在描述图像时是稳定的,且具有转置不变性、旋转不变性、位移不变性、镜像变换不变性等重要性质,因此奇异值特征可以作为图像的一种有效的代数特征描述。奇异值分解技术已经在图像数据压缩、信号处理和模式分析中得到了广泛应用.在本文中,主要选择基于几何特征的方法,这种方法最容易理解同样编写起来的难度也相对较小,但是为了弥补几何特征法对于光照和表情等变化的适应性,本文又探究了现在比较主流的,基于球面谐波基的人脸光照补偿算法,并将其运用到系统的设计中去,提高系统对人脸的识别率。.3光照对人脸识别影响的研究人脸识别经过近40年的发展,对于均匀光照下的中性表情的证明人脸图像起识别率已经很高,然而在一些更加复杂的情况下,现有的多数系统的识别性能还是受到光照变化的影响特别大,这是因为当人脸的光照发生变化时候,人脸图像的外观也会随之发生很大的变化。本章针对这个问题,提出了基于球面谐波基图像的光照补偿算法,用以在任意光照条件下进行人脸识别。算法份两步进行:光照估计和光照补偿。球面谐波子空间理论表明,在各向同性远光源假设条件下,朗伯凸表面的任意图像均可表示为该凸表面9个球面谐波基图像的线性组合,这9个线性组合的系数反映了该图像拍摄时的光照情况。而对于任意给定的2D图像,如果能够估计出对象的3D形状和表面反射系数,则可以解析地计算出9个球面谐波基图像,然后就可以通过最小二乘法解出9个光照系数。本节首先简单介绍球面谐波子空间理论,然后给出粗略估计人脸3D形状和表面反射属性进而计算给定人脸球面谐波基图像的策略,最后给出了基于最小二乘的光照系数估计方法。3.1.1球面谐波基图像模型本章的工作是基于Basri等[1]和Ramamoorthi[2]提出的球面谐波理论而发展出来的,因此本节首先简单介绍球面谐波基图像模型。假设物体为朗伯凸表面,光源为各向同性远光源,则其辐照度E为=<2-1>其中为表面法线方向的球坐标表示,为入射光场,积分区间为物体表面法线方向的上半球,为一个旋转操作,将局部坐标转换成全局坐标。.式<2-1>实际上是一个旋转卷积,因此很适合在空间频域中分析。球面上的信号处理工具为球面谐波函数,类似2D平面上的傅立叶级数。朗伯表面的反射方程在空域中积分区域很大<上半球>,根据Heisenberg测不准原理,则其在频域中一定局限在低频范围。因此辐照度E在频域中用球面谐波函数展开为<2-2>其中为朗伯反射函数的球面谐波系数,为光照的球面谐波系数,为球面谐波函数。式<2-2>的详细推导请参考文献[1,2]。假设人脸为朗伯凸表面,用表示人脸图像中某点的反射率,表示该点的法线方向,则其亮度为=〔2-3其中〔2-4为人脸的球面谐波基图像。球面谐波基图像可以看作是人脸在谐波光照下的图像,谐波光照为只含有一个谐波成分的虚拟光照环境。这样,人脸图像可表示为其9个球面谐波基图像的线性组合,这9个线性组合的系数为光照系数。3.1.2人脸的球面谐波基图像近似为了利用球面谐波基图像模型进行分析,我们需要知道人脸的球面谐波基图像,即需知道人脸的反射率和法线,其中法线又与3D形状相关。9D线.性子空间方法[7]利用已知的人脸3D结构计算球面谐波基图像,Zhang[3]等假设人脸谐波基图像每点的分布符合高斯分布,再融合输入人脸的信息,用MAP估计得到输入人脸的谐波基图像.在本文中,输入人脸的反射率图和法线图也是通过"人脸类"的先验知识得到。但我们所用的人脸类的先验知识的表示有所不同。人脸的形状大致相同,该假设已用于很多视觉算法中[4,5,6]。由于表示光照的参数只有9个,相对图像的像素数目很少,因此可以将图像的分辨率降低。而分辨率降低之后,不同人脸的形状差异就更小了。且光照对图像的影响是全局的,因此微小的形状偏差不会对光照估计造成严重影响。但为了尽可能地减小输入人脸形状与平均人脸形状的差别,本文采用基于特征点的变形技术,将平均3D人脸形状变形到输入人脸,以得到尽可能与输入人脸相似的3D形状。本文中我们用一种改进的AAM模型[7]来定位人脸图像上的关键特征点。在输入人脸图像的特征点与平均3D人脸形状的特征点对齐之后,其它的顶点我们采用Kriging插值,将平均3D人脸形状变形到输入人脸,得到输入人脸的3D形状。有了输入人脸的形状,其姿态也可以根据特征点的相对位置确定,则我们可以很容易地计算输入人脸的法线。图2.1给出了本文采用的平均人脸形状、输入人脸图像的特征点及其经过对齐后的特定人脸形状和法线图。图1平均人脸形状及输入人脸的形状光照变化对特征点的精确定位仍然是一个巨大的挑战。在光照条件很恶劣的情况下,自动定位的特征点不太准确。在本文实验部分我们比较了只用两个眼睛位置对齐平均人脸形状模型和输入人脸图像的结果,以观察系统对配准精度的敏.感性。关于反射率,我们假设人脸表面各点的反射率近似相等。更准确地,我们假设人脸的反射率图中除了直流分量外不包含其它低频分量①。虽然人脸表面并不严格满足上述假设,我们发现在实际应用中还是取得了很好的效果。人眼观察到的人脸皮肤颜色大致相同也证明了这一点。由于光照参数的维数很少,在实际应用中,为了使输入更符合这一点,我们将图像的分辨率可以降得很低,这样各点的反射率更接近,且反射率与皮肤差别较大的区域,如眉毛、眼睛、鼻子和嘴巴部分不参与光照估计运算。给定任意输入人脸图像,通过上述方法估计其反射率和法线方向后,即可根据式<2-4>计算其球面谐波基图像。3.1.3光照估计给定一幅人脸图像<维列向量,为图像中的像素个数>,并通过2.1.2节中的方法计算该人脸的球面谐波基图像B,则式<2-3>中的未知数只有9个光照系数,因此,光照估计就是估计式<2-3>中的光照环境的9个低频球面谐波系数。这可以通过解下述最小二乘问题得到〔2-5其中为谐波基图像的矩阵形式,是一个9×的矩阵,矩阵的每一列为一个谐波基图像。需要指出的是,根据式<2-5>估计出的光照系数与真实的光照系数之间相差常数倍,即=,其中为反射率图的直流系数。3.2人脸图像光照补偿在光照估计的基础上,本节我们讨论人脸图像光照补偿。光照补偿是期望将输入人脸图像经过处理后得到一个与光照无关或至少对光照变化不敏感的表示,从而使得人脸识别变得更容易。这可以用一个统一的计算模型来表达:.<2-6>其中表示原始图像,是削弱光照变化影响的变换,是变换后的特征表示,可以是图像或者其它特征。本节我们讨论两种光照补偿方式:纹理图像和差图像。3.2.1纹理图像如式<2-3>所示,,其中。这种表示形式的一个好处是可以将人脸图像对纹理的依赖与形状和光照的依赖分开,其中图像对形状和光照的依赖关系用辐照度表示。估计出了光照条件并已知人脸的法线方向,我们可以根据式<2-2>计算该人脸的辐照度度。这样,给定输入图像及其对应的辐照度,根据式<2-3>,我们得到输入人脸的纹理图像为原图像与其辐照度之比,即<2-7>纹理图像只包含纹理信息,与形状无关,也与光照无关。但是由于计算纹理图像时涉及除法,当辐照度中的像素亮度值较低时,会引入噪声。为了抑制纹理图像中的噪声,在识别时我们再对式<2-7>做对数变换,得到<2-8>作为式<2-6>中对光照变化不敏感的特征。纹理图像中虽然没有形状信息,但辐照度度E的计算还需要知道输入人脸的形状。与光照估计的全局过程不同,光照补偿是对图像中每个像素单独进行是一个局部过程,因此在计算输入人脸的形状时,对特征点定位精度有一定敏感性。.3.2.2差图像光照变化对特征点的准确定位至今仍是一个很大的挑战,因此本小节我们考虑另外一种光照补偿方式,既能保留输入人脸的形状和纹理信息,同时又对配准精度不敏感。根据,辐照度依赖于光照和输入人脸的形状。辐照度中只包含低频信息,滤去图像中的低频信息就能将光照的影响去掉。进行滤波操作最合适的方法是将中的乘法变成log域中的加法。对式<2-3>两边进行log运算,也可以得到式<2-8>的纹理图像。由上面的讨论我们知道计算E还需要知道输入人脸的形状,因此对配准有一定要求。由于输入人脸的精确形状很难得到,所以在下面的差图像光照补偿算法中我们不显式地使用输入人脸的形状,只利用编码在输入图像中的形状信息。另外我们希望在处理之后的图像中不同输入人脸形状的信息还能得到保留。用平均人脸模型来代替式<2-8>中的输入人脸的形状是一个很好的选择:<2-9>其中是平均人脸在输入光照下的辐照度。由于的低频性质和E类似,上式中的受光照的影响也很小。不同的是,上式中是用平均人脸形状计算的,所以最后处理得到的图像中,不仅包含了输入人脸的纹理信息,同时输入人脸形状同平均人脸形状的差异也得到了保留。上式一个直观的解释是:将输入图像<log域>减去一个只与光照有关的成分<平均人脸在输入光照下的辐照度>,最后得到的结果图像中光照的影响得到了减弱,同时输入人脸的形状和纹理信息没有丢失。需要指出的是,当粗略配准时<只有两个眼睛位置给定>,式<2-8>与式<2-9>是等价的。当输入光照对应的辐照度亮度过低时,式<2-8>的会随变化有较大变化,带来噪声。为了抑制噪声,我们退而求其次,用图像域中的减法来代替式<2-9>中log域的减法,得到.<2-10>如果将平均人脸的纹理看成为常数1,则可以看成为,为平均人脸在输入光照下的图像。这样将<2-11>定义为差图像,作为式<2-6>中对光照变化不敏感的特征F。由于两幅图像在相同光照下,通过对两幅图像做差,减弱了光照变化对人脸图像的影响,从而达到光照补偿的目的,同时又保留了用于识别的输入人脸与平均人脸的差别。该差别既包括由纹理引起的差别,也包括由形状引起的差别。.4识别系统设计用户用户从"文件"菜单中选择"打开"选项从"文件"菜单中选择"打开"选项在弹出的"打开"对话框中选择要打开的位图,点击"确定",应用程序显示所要打开的位图在弹出的"打开"对话框中选择要打开的位图,点击"确定",应用程序显示所要打开的位图识别获取脸部区域获取特征参数人脸定位图象预处理识别获取脸部区域获取特征参数人脸定位图象预处理显示识别结果显示识别结果图2总体结构设计流程图.预处理预处理光线补偿图像灰度化高斯平滑均衡直方图图像对比度增强二值化图3预处理的层次图以上是该系统的总体结构设计图以及图像预处理模块的层次图。下面介绍系统中的各模块的功能及算法:4.2.1图像获取模块该模块主要是从摄像头拍照后进行获取图片,也可以从图片库中获取,获取后的图片可以在软件的界面中显示出来以便进行识别。4.2.2人脸区域获取该系统中图像里人脸区域的获取,主要是根据肤色来进行获取,通过肤色非线形分段色彩变换来实现。这一非线性分段色彩变换得到的肤色模型属于色彩空间中的聚类模型,这一类肤色模型的建立首先要选取一种合适的色彩空间。.4.2.3图像预处理模块图像预处理就是对获取得来的图像进行适当的处理,使它具有的特征能够在图像中明显的表现出来。该模块中的子模块有如下5个,下面对它们进行概述:1光线补偿因为系统得到的图片可能会存在光线不平衡的情况,这会影响我们对特征的提取,同时系统中要用到基于球面的谐波基光照补偿,这样不但会修正光照不均的问题同时又保留了用于识别的输入人脸与平均人脸的差别。该差别既包括由纹理引起的差别,也包括由形状引起的差别。2灰度变化图像灰度化的过程就是把彩色图像转换为黑白色图像的过程,它也是为了将图像的信息更加具体、简单的表现出来,但是,这样做也将会丢失图像信息。因此,尽可能在转化的过程中用简单的方式表现图像复杂的信息。3高斯平滑处理高斯平滑将对图像进行平滑处理,在图像采集过程中,由于各种因素的影响,图像往往会出现一些不规则的噪声,入图像在传输、存储等都有可能产生数据的丢失。从而影响图像的质量。处理噪声的过程称为平滑。平滑可以降低图像的视觉噪声,同时出去图像中的高频部分后,那些本来不明显的低频成分更容易识别。平滑可以通过卷积来实现。经过卷积平滑后的水平投影后,二值化提供了较好的图像效果。4对比度增强对比度增强,就是对图像的进一步处理,将对比度再一次拉开。它针对原始图像的每一个像素直接对其灰度进行处理的,其处理过程主要是通过增强函数对像素的灰度级进行运算并将运算结果作为该像素的新灰度值来实现的。通过改变选用的增强函数的解析表达式就可以得到不同的处理效果。5二值化二值化的目的是将采集获得的多层次灰度图像处理成二值图像,以便于分析理解和识别并减少计算量。二值化就是通过一些算法,通过一个阈值改变图像中的像素颜色,令整幅图像画面内仅有黑白二值,该图像一般由黑色区域和白色区域组成,可以用一个比特表示一个像素,"1"表示黑色,"0"表示白色,当然也.可以倒过来表示,这种图像称之为二值图像。这便有利于我们对特征的提取。该设计中采用组内方差和组外方差来实现二值化。6直方图均衡直方图均衡化的目的是使一输入图像转换为在每一灰度级上都有相同的象素点数,它的处理的中心思想是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布,它的研究思路是:通过直方图变换式来进行直方图的均衡处理,直方图变换式是但是直方图均衡化存在着两个缺点:

1变换后图像的灰度级减少,某些细节消失;

2某些图像,如直方图有高峰,经处理后对比度不自然的过分增强。4.2.4人脸定位模块人脸定位是将典型的脸部特征〔如眼睛,鼻尖,嘴唇等等标记出来,在本系统中,定位的特征是眼睛,鼻尖和嘴巴三个。由于眼睛具有对称性,因此可以很快就能标记出来,而鼻子是在眼睛下面,且嘴巴在鼻子下面,所以只要眼睛标记好,鼻子和嘴巴也能相应的标记出来。4.2.5特征提取模块特征提取按以下4个步骤进行:〔1、提取两只眼睛的距离〔2、眼睛的倾角度〔3、眼睛、嘴巴的重心〔4、用一个矩形标出每一个特征在特征提取完之后将会得到相应的特征值以便存入后台数据库。4.2.6识别模块该模块通过与库存中的特征向量进行比较,找出与特征最相近的参数,再对该参数进一步分析。如果分析在我们所确认的范围内,我们就认为该人就是.我们所要找的。然后从库存中提取出该人相关的信息,并显示出来。如果库存中没有,则给出提示是否对存库作为样本。4.3详细设计图像点运算是一种既简单又重要的技术,它能让用户改变图像数据占据的灰度范围,一幅输入图像经过点运算后将产生一幅新的输出图像,由输入像素点的灰度值决定相应的输出像素点的灰度值,点运算与局部运算的差别在于:后者每个输出像素的灰度值由对应输入像素的一个领域内几个像素的灰度值决定。所以,点运算不可以改变图像内的空间关系。点运算可以按照预定的方式改变一幅图的灰度直方图。除了灰度级的改变是根据某种特定的灰度变换函数进行之外,点运算可以看作是"从像素到像素"的复制操作。如果输入图像为A〔x,y,输出图像为B〔x,y,则点运算可表示为:B〔x,y=f[A〔x,y]〔式2其中函数f〔D被称为灰度变换〔GrayScaleTransformation,GST函数,它描述了输入灰度值和输出灰度值之间的转换关系,一旦灰度变换函数确定,该点运算就完全被确定下来了。点运算有时又称为对比度增强、对比度拉伸或灰度变换,它是图像数字化软件和图像显示软件的重要组成部分。下面将对本设计解决各图像点处理模块运用进行到的理论和编程实现进行详细讲述。光线补偿〔1算法思想:光线补偿的想法的提出主要是考虑到肤色等色彩信息经常受到光源颜色、图像采集设备的色彩偏差等因素的影响,而在整体上偏离本质色彩而向某一方向移动,即我们通常所说的色彩偏冷、偏暖、照片偏黄、便蓝等等。这种现象在艺术照片中更为常见。所以AnilK.Jain等提出,为了抵消这种整个图像中存在着的色彩偏差,我们将整个图像中所有像素亮度〔是经过了非线形r-校正后的亮度从高到低进行排列,取前5%的像素,如果这些像素的数目足够多〔例如,大于100,我们就将它们的亮度作为"参考白"〔ReferenceWhite,也即将它们的色彩的R、.G、B分量值都调整为255。整幅图像的其他像素点的色彩值也都按这一调整尺度进行交换。同样,由于人脸是一种类似球形的物体,所以光照因素,本来也受限于其几何形状,所以可以先选取一个球形的物体作为校正补偿的模板,对其校正〔2具体实现光线补偿功能:明白了光线补偿这功能的算法及思想,就可以编码实现其功能了,实现过程如下:①、编辑菜单IDR_MAINFRAM,先在其中添加一菜单项,将其命名为"预处理",并在其属性栏中将其设为"弹出"菜单,点击预处理该菜单项将会弹出一个新的子菜单,此时把该子菜单命名为"光线补偿",并把其ID设为ID_READY_LIGHTINGCONPENSATE,对应文件FaceDetectView.Cpp中的函数ReadyLightingconpensate<>实现,并在voidCFaceDetectView::OnReadyLightingconpensate<>中添加如下代码:hDIBTemp=gDib.CopyHandle<hDIB>;gDib.LightingCompensate<hDIB>;GlobalUnlock<hDIB>;Invalidate<>;光线补偿功能实质上是用上段代码中的LightingCompensate〔函数来进行实现。函数LightingCompensate〔是类DIB的一个成员函数。其核心代码如下所述: //下面的循环对图像进行光线补偿 for<i=0;i<height;i++> for<intj=0;j<width;j++> { //获取像素偏移 lOffset=this->PixelOffset<i,j,wBytesPerLine>;. //得到蓝色分量 *<lpData+lOffset>=colorb; //绿色分量 colorb=*<lpData+lOffset+1>; colorb*=co; if<colorb>255> colorb=255; *<lpData+lOffset+1>=colorb; //红色分量 colorb=*<lpData+lOffset+2>; colorb*=co; if<colorb>255> colorb=255; *<lpData+lOffset+2>=colorb; }②光线补偿效果图:图4原图.图5光线补偿效果图图像灰度化〔1算法思想①彩色转换成灰度将彩色图像转化为灰阶图像常采用如下的经验式:gray=0.39×R+0.50×G+0.11×B〔式3其中,gray为灰度值,R、G、B分别为红色、绿色和蓝色分量值。②灰度比例变换灰度比例变换是把原像素的灰度乘以一个缩放因子,并最后截至[0,255]。③灰度线性变换当图像由于成像时曝光不足或曝光过度,会产生对比度不足的弊病,从而使图像中的细节分辨不清。将图像灰度进行线性扩展,常能显著地改善图像的外观。灰度线性变换的计算式为:g= 〔式4f,其他式中,f是原像素的灰度,g为变换后的灰度。该变换把属于[a,b]的灰度级变换至灰度区间[c,d],而没有在[a,b]区间的原像素灰度将保持不变。这里a,b,c,d,f,g均为[0,255]之间的整数值。可见,a被映射为c,b被映射为d。.④灰度线性截断灰度线性截断的思想是:如果原像素的灰度小于a,则该像素的灰度等于c;如果原像素的灰度大于b,则该像素的灰度等于d。〔2具体实现灰度化功能在明白了灰度化的原理之后,就可进行编码来实现该功能。①编辑菜单IDR_MAINFRAM,先在其中添加一菜单项,将其命名为"图像灰度化",并将其ID号设为ID_READY_SCALE,对应文件FaceDetectView.Cpp中的函数ReadyLightingconpensate<>实现.②现该模块的核心代码如下:获取蓝色分量ColorB=*<lpData+lOffset>;获取绿色分量 ColorG=*<lpData+lOffset+1>;获取红色分量 ColorR=*<lpData+lOffset+2>;计算灰度值 gray=<ColorG*50+ColorR*39+ColorB*11>/100; 显示灰度图像 *<lpData+lOffset>=gray; *<lpData+lOffset+1>=gray; *<lpData+lOffset+2>=gray;其中lpData是图片数据区,lOffset是图片像素的偏移,gray是图像的灰度值③图像灰度化效果图图6,图像灰度化效果图.4.3.3高斯平滑〔1算法思想在介绍高斯平滑前,先介绍模板操作。模板操作是数字图像处理中经常用到的一种运算方法,图像的平滑、锐化以及细化、边缘检测都要用到模板操作。例如:有一种常见的平滑算法是将原图中一个像素的灰度值和它周围邻近八个像素的灰度值相加,然后求得的平均值〔除以9作为新图中该像素的灰度值,用如下方法来表示该操作:1111/9111111上式类似于矩阵,我们通常称之为模板。中间的黑点表示该元素中心元素,即该个元素是要进行处理的元素。如果模板是:1·111/9111111则该操作应该描述为:将原图中一个像素的灰度值和它右下邻近的8个像素的灰度值相加,然后将求得的平均值9〔除以9作为新图中该像素的灰度值。如果模板为21.则表示将自身灰度值的2倍加下边的元素灰度值作为新值,而2则表示将自身1.灰度值加上边元素灰度值的2倍作为新灰度值。通常模板不允许移出边界,所以.处理后的图像会比原图小,例如:当模板是1.0原图灰度值矩阵是1111102222223333344444时,经过模板操作后的图像为5555-8888-11111111------"-"表示边界上无法进行模板操作的点,一般的做法是复制原图的灰度值,不再进行任何其他的处理。模板操作实现了一种领域运算,即某个像素点的结果不仅和本像素灰度有关,而且和其领域点的值有关。下面对平滑的用途和解决方法进行详细介绍。在图像的采集过程中,由于各种因素的影响,图像中往往会出现一些不规则的随机噪声,如数据在传输、存储时发生的数据丢失和损坏等,这些都会影响图像的质量。处理噪声点的过程称之为平滑,平滑可以降低图像的视觉噪声,同时除去图像中的高频部分后,那些本来不明显的低频成分更容易识别。而噪声点一般是孤立的点,噪声点的像素灰度与它们的近邻像素有显著的区别,即灰度变化总在这附近有突变高频。平滑可用卷积来实现,平滑的频率截止点由卷积核的大小及卷积系数决定。用于平滑滤波的卷积核叫做低通过滤波器,低通过滤波器具有如下的特征:1卷积核的行、列数为奇数,通常为3×3的矩阵;2卷积系数以中心点为中心对称分布;3所有的卷积系数都为正数;4距离中心较远的卷积系数的值较小或保持不变;5卷积后的结果不改变图像的亮度。经过卷积平滑后给随后的水平投影、二值化提供了较好的图像效果。水平投影的曲线显得比较平滑,二值化后的图像孤立点比较少。以下是几个常用的卷积核:1/91/91/91/101/101/101/162/161/161/91/91/91/101/51/102/164/162/161/91/91/91/101/101/101/162/161/16LP1LP2LP3通常的处理是:将中心点周围八个点的像素值乘于各自矩阵相应的系数后相.加得到一个值,然后将这个值乘上中心点的系数,中心点的像素值赋为得到的最后值。一般来说,不同的噪声有各自针对性的卷积算法。本文使用的卷积算法是高斯卷积核,亦即上面卷积核的LP3。高斯卷积是通过采样2维高斯函数得到的。高斯平滑算法的优点是平滑后图像的失真少,算法更具备通用性,能去除不同的噪声干扰。需要注意的是:在平滑处理时,图像边界点无法处理,因此循环范围应设定在图像边界内。〔2具体实现高斯平滑功能知道高斯平滑原理之后,可进行编码将其实现:编辑菜单IDR_MAINFRAM,在菜单"预处理"中添加一子菜单项,命名为"高斯平滑"并将其ID设为ID_READY_Template。在类CFaceDetectView中添加"高斯平滑"菜单项的事件处理程序,其代码如下://进行模板操作 Template<tem,3,3,xishu>; Invalidate<TRUE>;其中tem是模板参数,xishu是模板系数;Template〔函数是实现高斯平滑的主要函数,其核心代码是:for<m=i-<<tem_h-1>/2>;m<=i+<<tem_h-1>/2>;m++>{ for<n=j-<<tem_w-1>/2>;n<=j+<<tem_w-1>/2>;n++>注:将以点〔i,j为中心,与模板大小相同的范围内的象素与模板对用位置的系数进行相乘并线形叠加 sum+=Gray[m][n]*tem[<m-i+<<tem_h-1>/2>>*tem_w+n-j+<<tem_w-1>/2>]; }将结果乘上总的模板系数sum=<int>sum*xishu; 计算绝对值. sum=fabs<sum>; 如果小于0,强制赋值为0if<sum<0>sum=0; 如果大于255,强制赋值为255if<sum>255> sum=255;HeightTemplate[i][j]=sum;高斯平滑效果图:图7,高斯平滑效果图4.3.4灰度均衡〔1算法思想灰度均衡也称直方图均衡,目的是通过点运算使输入转换为在每一灰度级上都有相同的像素点数的输出图像〔即输出的直方图是平的。这对于在进行图像比较或分割之前将图像转化为一级的格式是十分有效的。按照图像的概率密度函数〔PDF,归一化带单位面积的直方图的定义:P〔x=*H〔x〔式5.其中H〔x为直方图,A0为图像的面积,设转换前图像的概率密度函数为 Pr〔r,转换后图像的概率密度函数为Ps〔S,转换函数为s=f〔r,由概率论知识,我们可以得到:Ps〔S=Pr〔r*〔式6这样,如果想使转换后图像的概率密度函数为1〔即直方图是平的则必须满足:Pr〔r=〔式4-5等式两边积分,得:S=f〔r=P2〔udu=H〔udu<式7>该转换式被称为图像的累积分布函数上面的式是被归一化后推导的对于没有归一化的情况,只要求以最大的灰度值〔DMax,对于灰度图就是255即可,灰度均衡的转换式为:DB=f〔DA=H〔udu〔式1对于离散图像转换式为:DB=f〔DA=〔式8式中Hi为第i级灰度的像素个数。〔2编程实现在灰度均衡操作同样不需要改变DIB的调色板和文件夹,只要把指向DIB像素起始位置的指针和DIB高度、宽度信息传递给子函数就可以完成灰度均衡变换工作,其核心代码如下:*<lpData+lOffset>=state;//显示灰度均衡*<lpData+lOffset+1>=state;*<lpData+lOffset+2>=state;〔3效果图.图8灰度均衡效果图4.3.5图像对比度增强算法思想:在对图像均衡直方图处理以后,便可对图像进行对比度增强,进一步拉开对比度。它通过对图像的灰度值进行统计,对于比最小设定值小的则认为是有关的信息,则将它作为黑色处理,比最大设定值大的则认为是一些无关的信息,将它们去掉,而处于两者之间的,则进行对比度增强,将他们在总的灰度值里面的比例作为新的像素信息保存起来。这个工作的主要目的是将图像的特征一步一步显现出来。〔2编码实现:①编辑菜单IDR_MAINFRAM,在菜单"预处理"中添加一子菜单项,命名为"实现图像对比度增强",并将其ID设为ID_READY_ContrastEnhance。类CFaceDetectView中添加"实现图像对比度增强"菜单项的事件处理程序,其代码如下;lOffset=gDib.PixelOffset<i,j,gwBytesPerLine>;获取图像灰度增强函数intstate=IncreaseContrast<ZFT[k][k1],100>;.显示灰度增强后的图像*<lpData+lOffset>=state;*<lpData+lOffset+1>=state;*<lpData+lOffset+2>=state;其中IncreaseContras〔函数是实现图像对比度增强的关键函数,该根据参数n来调节对比度,n越大,对比越强烈,其核心是:如果数据很小,设置为0if<pByte<=Low> return0; 获得中间数据,并进行对比增强处理 elseif<<Low<pByte>&&<pByte<High>> returnint<<<pByte-Low>/Grad>>; 如果数据很大,设置为255 else return255;效果图图9,对比度增强效果图4.3.6寻找眼睛在灰度化之后,通过光线补偿,对比度增强等一系列之后,剩下的就是提取轮廓了,通过二值化,提取到脸部眼睑位置.图10:寻找眼睛图片效果4.3.7脸型方向找到两个眼睛的位置,之后确定一条连接两眼的连线,之后在两点之间做中垂线,中垂线方向向下即为人脸方向脸部方向寻找效果图:图11脸型方向图片.4.3.8程序界面展示图12程序主界面这个程序适用于背景颜色比较单一,脸上干扰比较少的人脸识别,如果受到表情,姿态等干扰,会降低识读率,这个程序的关键是能够抓到眼睛,但是如果图片的方向是倒着的话,脸的方向也会有问题,我正在想如何抓住嘴或者鼻子有了嘴或者鼻子的点就可以准确的找出脸型的方向,总的来说,虽然有很多不足的地方,但是也算是开创了自己图形算法编写的先河。.5结束语在这几个月里,面对着诸多的问题和考验,我一次又一次享受了难题解决前的困惑和难题解决后的兴奋。虽然本次设计的成品还存在着一些问题,但是,对于作者来说,却是不小的收获。还有在编写论文时,由于论文篇幅和时间的因素,有很多需要论述的地方都已经省略,本论文只着重论述各种功能的基本算法,至于基本输入输出并没有包括在内,还有很多地方是一笔带过的,希望读者见谅。经过几个月的毕业设计,对我各方面的影响都很大,对此我体会颇多:1、在设计的过程中,每一个步骤都十分的重要。设计前,一定要将需求分析工作做透彻,这直接关系到系统开发实现的难易程度和设计的进度。这就要求我们经常与指导老师和用户交流信息,即使发现设计方向上的错误。千万不要认为分析工作可有可无,分析做得好,实现起来时就相当轻松。就像设计数据库系统,建表工作是最重要的一样。一旦我们将内容和设计思想确定下来以后,不要轻易改动。确实要改,必须征求指导老师的意见。2、熟悉软件开发工具,如.Net、Matlab等。这个只要通过动手熟悉就可以了,以前的学习方法是看书看书再看书,上机操作的时间很少,过后就忘了。经过这次设计,让我清楚的感觉到开发工具的学习是要边看书边动手才学得快、学得牢。3、要经常与其他人交流,能获得许多有用的信息。不要怕将自己的作品演示给别人看,别人会帮助你检查出许多你意想不到的错误,开阔你的思路,检验你的设计思想,提出很多有用的建议。这些建议往往是非常及时的,是你少走弯路,提高开发效率。只有集思广益,善于借鉴,才能在最短的时间内完成最多的工作。本次毕业设计是针对我们大学四年来所学知识而进行的一次全面性的检验,它涵盖的知识面广,涉及到多个领域,需要我们具有较高的综合知识水平及较强的解决问题的能力。同时也是对我们工作能力,团队合作精神的一次考验。通过这次设计,一方面让我更进一步的熟悉和掌握了C#语言的基本语法以及更深入的了解了算法和.Net开发工具的使用。另一方面在动手能力上有了很大的提高,以前学的知识只是"知识",而现在是将"知识"转化成自身的本领,全面提高了自身解决具体问题的能力。.参考文献[1]蒋贵生等.人脸检测技术研究[J].电子学报,2001,12〔1:94-102.[2]梁路宏,艾海舟,肖习攀,等.基于模板匹配与支持矢量机的人脸检测[J].计算机学报,2002,25〔1:22-29.[3]、PKrishnanNallaperumal,SubbanRavi,PCNelsonKennedyBabu,etal.Skindetectionusingcolorpixelclassificationwithapplicationtofacedetection:acomparativestudy[C].ProceedingsoftheInternationalConferenceonComputationalIntelligenceandMultimediaApplications,2007.[4]柴秀娟,山世光,卿来云等.基于3D人脸重建的光照、姿态不变人脸识别[J].软件学报,2006,17<3>:525-534[5]胡峰松,林亚平等.应用于人脸识别的基于Candide-3特定人脸三维重建[J].XX大学学报,2008,35<11>:69-73[6]刘小军,王东峰,张丽飞等.一种基于奇异值分解和隐马尔可夫模型的人脸识别方法[J].计算机学报,2003,26<3>:340-344[7]柴秀娟,山世光,高文等.基于样例学习的面部特征自动标定算法[J].软件学报,2005,16<5>:718-726[8]刘瑾,人脸识别中的大样本集问题及多模式图像融合方法的研究:[D],天津;天津大学,2006[9]叶剑华,三维及多模态人脸识别研究:[D],天津;天津大学,2008[10]王跃明,表情不变的三维人脸识别研究;[D],XX,XX大学,2007.致谢本论文是在我的指导导师严圣华老师的精心指导下完成的。在毕设期间,严老师言传身教,从技术路线直至许多具体细节,都给予了我至关重要的指导和帮助。严老师严谨的治学态度、渊博的理论知识、开阔的思维方式、永远高昂的工作激情都给我留下了深刻的印象,永远是我学习的榜样。严老师在理论和工程两个方面的严格要求,使我不仅学到了扎实的理论知识,而且获得了丰富的实践经验。在工作和为人两方面,从严老师身上学到的一切东西都将使我的一生受益无穷。再次感谢严老师,他的指导陪伴我度过了四年的大学生涯,严老师踏实的作风、深邃的思维、广博的知识,总让我羡慕不已,可以说,我的每一点成长与进步,都与严老师有关,严老师对我的影响必将持续到我未来的生活、工作和家庭中去。感谢我的室友刘超超,江存,和他们一起共同努力渡过大学生活,非常快乐。他们在学习和生活中给予了我大量的帮助,曾与我一起分享许多快乐的时光。最感谢我最敬爱的父母,在我多年的求学过程中,他们一直在背后默默无闻地支持我、帮助我,使我对生活永远充满信心,我要用我的全部来报答他们。感谢所有给予我指导、帮助、关心和支持的人们。.附录一灰度化代码usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Drawing;namespaceFindEyes{classMarkGray{publicImageGrayMap<Imagemap>{Colorco=newColor<>;Colorco2=newColor<>;Bitmapbit=newBitmap<map>;inti,j,k,r,g,b;for<i=0;i<map.Width-2;i++>{for<j=0;j<map.Height-2;j++>{co=<<Bitmap>map>.GetPixel<i,j>;r=co.R;g=co.R;b=co.R;k=<30*r+59*g+11*b>/100;co2=Color.FromArgb<k,k,k>;bit.SetPixel<i,j,co2>;}}returnbit;}}}.附录二找眼镜标示眼角代码usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;namespaceFindEyes{classFoundEye{publicImageFound<Imagemap>{Colorco=newColor<>;Bitmapbit1=newBitmap<map>;Bitmapbit2=newBitmap<map.Width,map.Height>;intx,y;intc1;//查é找ò低台?于瞔1像?素?的?部?位?,?并¢将?其?改?为a255白恪?色?for<y=0;y<map.Height-2;y++>{for<x=0;x<map.Width-2;x++>{co=bit1.GetPixel<x,y>;c1=co.R;if<c1<25>{Colorc=Color.FromArgb<255,255,255>;bit2.SetPixel<x,y,c>;}else{co=bit1.GetPixel<x,y>;.bit2.SetPixel<x,y,co>;}}}returnbit2;}}}usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Drawing;namespaceFindEyes{classMarkCanthus{int[,]num1=newint[500,650];int[]num2=newint[800];int[]num3=newint[800];inth,w,x1,y1,s;uintj;//publicImageMarkCanthu<Imageimage>{Colorco=newColor<>;Bitmapbit=newBitmap<image>;Imagemap;inti=0,x,y;w=image.Width;h=image.Height;for<y=0;y<image.Height-2;y++>{.for<x=0;x<image.Width-2;x++>{co=bit.GetPixel<x,y>;num1[y,x]=co.R;}}for<y=0;y<image.Height-2;y++>{for<x=0;x<image.Width-2;x++>{if<num1[y,x]<18>{num2[i]=x;//取?x轴á坐?标括?num3[i]=y;i++;}}}/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论