ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:29.83KB ,
资源ID:10274471      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10274471.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(视频中的人脸检测研究进展及算法代码.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

视频中的人脸检测研究进展及算法代码.docx

1、视频中的人脸检测研究进展及算法代码 视频中的人脸检测研究进展摘要 近年来基于视频中的人脸识别已成为人脸识别领域最为活跃的研究方向之一, 充分利用视频中人脸的空间和时间信息克服视频中人脸分辨率低,尺度变化范围大,光照、姿态变化比较剧烈以及时常发生遮挡等困难是研究的重点。文中对近期基于视频的人脸识别研究进行了详细的介绍和讨论,在对相关方法分类的基础上,分析了各类方法的优缺点。本文采用VC+6.0 and OPENCV 实现了基于视频的人脸检测程序。AbstractRecently, video-based face recognition has become one of the hottest

2、 topics in the domain of face recognition. How to fully utilize both spatial and temporal information in video to overcome the difficulties existing in the video-based face recognition, such as low resolution of face images in video, large variations of face scale, radical changes of illumination an

3、d pose as well as occasionally occlusion of different parts of faces, is the focus. The paper reviews most existing typical methods for video-based face recognition (especially for the last 5 years) and analyses the advantages and disadvantages of each method.This thesis uses VC+6.0 and OPENCV to re

4、alize face detection program based on the video. 1.研究背景与意义人脸检测是指判定任意给定一幅图像或者一组图像序列中是否存在人脸。如果存在,则返回其位置和各个人脸所占的区域1。在输入图像中确定所有的人脸如果存在的位置,大小,位姿的过程。是自动人脸识别系统的一个关键环节。人脸检测问题最初来源于人脸识别,其研究可以追溯到上个世纪八十年代,但早期的人脸识别研究主要针对具有较强约束条件的人脸图像如无背景的图像,往往假设人脸位置己知或很容易获得,因此人脸检测问题并未受到重视。近几年随着电子商务等应用的发展,人们对于复杂背景下人脸自动识别的要求日益迫切,对

5、各种情形下人脸检测的要求也越来越高。目前,人脸检测的应用背景已经远远超出了人脸识别的范畴,在人工情感计算,基于内容的检索,数字视频处理,视觉检测等方面有着重要的应用价值。作为人脸信息处理中的一项关键技术,近年来成为模式识别与计算机视觉领域内一项受到普遍重视- 研究十分活跃的课题.人脸检测分为两种情况:第一种情况是在静止的图像中判断是否存在人脸,若存在,则定位人脸的位置;第二种情况是在视频图象序列中判断是否存在人脸,若存在人脸,则动态跟踪人脸。这是一种根据人脸样本模式的共性特征进行模式识别的操作:它将图像内待检的任意一个子区域划分为两类模式:人脸区域和非人脸区域。. 视频中人脸检测的难点:由于人

6、脸内在的变化所引起 这些变化主要包括以下几点: (1)人脸具有相当复杂的细节变化,不同的外貌如脸形、肤色等,不同的喜怒哀乐表情,以及局部特征如眼睛、嘴的开和闭等。(2)人脸遮挡,如眼镜、胡须、头发和头部饰物以及其他外部遮挡物等。由于外在条件变化所引起,这类变化包括: (1) 由于成像角度的不同造成人脸的多姿态:如平面内旋转,深度旋转以及上下旋转,其中深度旋转影响较大。(2) 光照的影响,如图像中的亮度,对比度的变化和阴影等。(3) 图像成像的背景复杂多样。视频中人脸检测的重点:如何充分利用视频中人脸的时间和空间信息克服视频中人脸分辨率低,尺度变化范围大,光照、姿态变化剧烈以及时常发生遮挡等困难

7、。2.论文的研究内容及主要工作1.对视频中人脸检测的方法及其发展进行对比和总结;2本文采用VC+和OPENCV实现了对基于摄像头采集的实时图像的人脸检测。3.论文结构 第1章主要介绍人脸检测技术的发展背景,并对论文的主要研究内容和论文结构进行了介绍。 第2章介绍人脸检测技术的发展及研究现状,对当前检测方法进行分类,就各种方法的优缺点进行简单分析。 第3章程序实现及实验结果。 2.人脸检测综述2.1人脸检测的研究现状人脸检测早期的研究主要致力于模板匹配、子空间方法,变形模板匹配等,使用简单的启发式和人体测量技术2。早期人脸检测方法往往对输入的人脸图像有很多严格的限制,比如要求背景简单、正面面对摄

8、像机、光照条件受控等。基于这些方法构建的检测系统,任何图像条件的改变,即使不用完全重新设计整个系统,也要对系统的参数进行精细的调整。那时人们更重视对人脸识别的研究,直到上个世纪九十年代,随着实际的人脸识别和视频编码系统开始成为现实3,这种情况才有所改变。研究者提出了多种检测方法,特别是那些利用运动、肤色和一般信息的方法。统计和神经网络方法的使用也使在复杂背景和多分辨率中的人脸检测成为可能。近期人脸检测的研究主要集中在基于数据驱动的学习方法,如统计模型方法,神经网络学习方法,统计知识理论和方法,基于马尔可夫随机域的方法,以及基于肤色的人脸检测。 目前,国外对人脸检测问题的研究很多,比较著名的有C

9、MU(卡耐基梅隆大学)、Mrr(麻省理工学院)、YALE(耶鲁大学)等学院机构。而且,MEPG一7标准组织己经建立了人脸识别草案小组,人脸检测算法也是一项征集的内容。国内的清华大学、浙江大学、中国科学院计算技术研究所和中国科学院自动化研究所等都有人员从事人脸检测相关的研究。目前,针对人脸检测问题的人脸库很多,但由于人脸这一特定模式本身具有复杂性,建立一个公认的、权威的、能够基本上涵盖可能人脸情形的和评价人脸检测方法优劣的人脸检测测试图像库是比较困难的。 2.2存在的主要问题(1)背景中可能存在和人脸相近的模式:人脸常存在于一个复杂的背景之中,可能在背景中存在着与人脸近似的模式(2)人脸模式的不

10、确定:人脸是一个非刚性,是一个包含五官、毛发等的极不规则的复杂待测目标,不同的人脸在形状、大小、颜色、质地等方面有很大的变化性,某些局部的特征还具有随机性,而且人的面部还存在着不同的表情。脸部的其它附属物如胡须、眼镜等都会造成人脸模式的不确定性(3)图像获取过程的不确定性带来的影响光照强度、光源的数目和方向、拍摄角度、不同的成像方式、图像的分辨率,都可以引起图像质量的变化人脸可能以不同的视角出现在图像中,为了实现检测方法的鲁棒性,我们需要考虑在不同的方向、角度、尺度等情况下所表现出来的不同表象(4)运算量太大,通常要对整个图像进行多尺度的非线性插值和全搜索(5)很难解决侧转和旋转的人脸检测。2

11、.3人脸测试的主要方法人脸的主要的共性特征有几何特征、肤色特征、运动特征等。静止图像中的人脸检测主要用前两个特征;视频中的人脸检测主要采用后两个特征。当前人脸检测方法可分为基于启发式模型的方法和基于统计模型的方法两大类4.本文作者通过文献阅读,在这二者基础上又增加了基于运动特征的方法,具体分析如下:2.3.1基于启发式模型的方法5首先抽取几何形状、灰度、纹理等特征,然后检验他们是否符合人脸的先验知识。早起利用人脸的轮廓、对称性等少量特征的方法适用于较强约束下(如简单背景、头肩图像)的人脸检测。由于使用的特征较少,此类算法可以达到较高的检测速度,实现实时检测和跟踪。利用人脸五官分布特征的知识模型

12、方法能够在一定程度上适用于复杂背景图像中的人脸检测,同时达到较高的检测速度。基于启发式模型的人脸检测方法通过检测出不同的人脸特征的位置,然后根据它们之间的空间几何关系来定位人脸。这种方法又可以进一步分为基于经验知识、基于局部特征的检测和基于模板匹配的方法(1)基于经验知识的方法该方法是将人脸面部器官之间关系编码准则化的人脸检测方法。这是一种自顶而下的方法,依据人脸面部器官的对称性、灰度差异等先验知识,制定一系列的准则。当图像中的待测区域符合准则,则被检测为人脸。例如基于几何特征的人脸检测主要依靠提取人脸一些低层次的特征,然后对抽取的低层次的特征进行基于知识的分析从而进行检测人脸。按照抽取的特征

13、的规则的不同可以分为对称性规则;器官分布规则。例如:在正面人脸中有互相对称的眼睛,位居中央的一个鼻子和一张嘴。Huang使用了基于经验知识的人脸检测方法6,他们的系统有三级规则组成。最高级找出输入图像的人脸候选区。次高级则用来描述人脸看起来像什么,最低级的规则依赖与面部特征的细节来进行最终判断。姜军等人提出了一种基于经验知识的快速检测方法7。他们采用符合人脸生理结构特征的人脸镶嵌图模型。它针对人脸图像的灰度和边缘信息,建立了一种比较完备的经验知识库。(2)基于特征的方法基于特征的方法从己有的面部特征和它们的几何关系中来判断是否是人脸。与基于经验知识的方法不同,它努力寻找人脸的不变特征作为人脸检

14、测的依据。目前,人们已经提出了许多可用于检测的面部特征。如将人脸中的眉毛、眼睛、鼻子、嘴等通过边缘检测提取出来,根据提取的特征,建立统计模型描述各个特征之间的关系,进而确定是否存在人脸。Sirohey提出了从复杂背景中分割人脸的定位方法8。它使用边缘图和启发式算法来去得到一个边缘轮廓,然后用一个椭圆拟合头部区域和背景间的边界。Graf等人提出定位灰度图像的面部特征和人脸检测方法9,使用形态学的方法增强具有某些特定形态的区域。Leung等人根据确定面部特征的排列方式10,提出了一种基于局部特征检测器和任意图匹配的概率方法用于在复杂背景中定位人脸。Han等人提出一种基于形态学技术进行眼部分割川11

15、,进而实现人脸检测的方法。在国内,彭进业等人提出了一种在图像的反对称双正交小波分解数据域中12,实现多尺度对称变换的方法。王延江等人提出一种能够在复杂背景下快速进行人脸检测的方法13。(3)基于模板匹配的方法人脸具有典型的边沿和形状特征,人脸的整个轮廓可以近似的抽象成一个类椭圆,因此粗糙的检测人脸可以通过检测图像空间内是否存在类椭圆形来实现。人脸的各个器官,例如眉毛、眼睑、嘴唇等都具有明显的轮廓特征,可以将这些轮廓特征抽象成为线段、弧线、椭圆等几何特征进行描述,采用模板匹配的方法去进行检测。对任意幅图像,首先进行边缘检测,然后对细化后的边缘提取曲线特征,通过计算曲线特征存在来判断存在来判断是否

16、存在人脸。基于模板的方法简单来说,就是预先将标准脸部模型通过函数预定义或参数化,分类时对输入图像计算检测区域如脸部轮廓、眼睛、鼻子以及嘴等与标准模板的相关值,相关值符合制定的准则就判断检测区域为人脸。Sakai等人使用眼睛、鼻子、嘴和人脸轮廓等子模板建模、检测图像中的正面人脸14。Graw等人提出了一种基于正面人脸的形状模板定位方法15。它使用Sobel滤波器提取边缘,将边缘组织在一起,根据几个约束条件去搜索人脸模板。Govindaraju等人提出两步人脸检测方法16。在他的方法中使用的人脸模型根据边缘定义的特征构成,这些特征对正面人脸的轮廓曲线,发际等。Miao等人提出了用于人脸检测的层次模

17、板匹配方法17。人脸模板通过六个人脸成分产生的边缘组成:两个眼眉、两只眼睛、一个鼻子和一张嘴。最后应用启发式算法确定人脸的存在。在国内,梁路宏等人使用了直接的平均脸模板匹配方法18。该方法考虑到眼睛在人脸检测中的特殊作用,使用双眼模板首先进行粗筛选,然后使用不同长宽比的人脸模板进行匹配,最后应用马赛克规则进行验证。 2.3.2基于统计模型的方法基于统计模型的方法将人脸图像看作一个高维矢量,在高维空间中对分布信号进行检测。此类方法将人脸区域看作一类模式,即模板特征,使用大量的人脸与非人脸样本训练并构造分类器,通过判断图像中所有可能区域属于哪类模式的方法实现人脸检测。基于统计模型的方法又可以分为基

18、于特征空间的方法19,基于人工神经网络的方法20,基于概率模型的方法和基于支持向量机的方法21。(1)基于特征空间的方法(子空间方法),此方法将人脸区域图像变换到某一特征空间,根据其在特征空间中的分布规划来划分“人脸”与“非人脸”两类模式子空间方法主要包括两类主分量 (PCA)分析方法、线性判别 (LDA)分析方法。主分量分析(principal-component analysis PDA)是一种常用的方法。它根据图像的统计特性进行正交变换(K-L变换)以消除原有向量各个分量间的相关性。变换得到对应特征值依次递减的特征向量,即特征脸。Turk等将PCA方法用于人脸检测与识别。他们将人脸图像投

19、影到一个由若干个最大的特征向量组成的子空间。通过对这些特征向量加权求和即可得出某个特定的人脸。Moghaddam等将检测图像投影到主成分空间F和其正交补空间22,并定义相应的距离度量为 DTFS(Distance In Feature Space)和 DFFS(Distance From Feature space)。Yang等提出的Fisher线性判别(FLD)方法23。他们首先使用自组织映射(SOM)将人脸和非人脸样本各分为个类,然后计算各类的类间离散度与类内离散度,利用两者的比值求出投影矩阵。Sung等提出了基于事例学习的方法。他们首先利用椭圆K均值聚类将人脸和非人脸样本各自聚成六个类,

20、然后设置两组距离矩阵来度量检测数据和十二个样本类的距离。最后使用这些距离矩阵来训练一个多层感知器作为分类器进行人脸检测。(2)基于人工神经网的方法神经网络方法是通过训练一个网络结构,把模式的统计信息隐含在神经网络的结构和参数之中。Rowley等在19%年提出基于神经网络的人脸检测系统。他们的系统分为两个阶段第一阶段是基于神经网络的分类器。该分类器的输入是规定尺寸的检测区域,输出为1到一1的数,由此来判断检测区域是否是人脸。输出接近1为人脸,接近一1为非人脸。第二阶段是合并重复检测并判别。Bakry提出了一种利用对称形式来提高神经网络人脸检测速度的决速神经网络方法24。该算法将检测数据进行上下左

21、右的对称翻转后构成一个新的检测图像。利用新图像在频率域内的互相关特性,可以在减少训练样本以及隐层神经元数目,达到了与传统神经网络相当的检测结果,同时也达到了提高速度的效果。(3)基于支持向量机的方法支持向量机(SvM)是由vN.Vapnik等提出的基于结构风险最小化原理的统计学习理论基础上发展起来的25。Osuna等首先将支持向量机用于人脸检测26。该方法的基本思路是对每一个检测窗口使用方法进行分类,以区分“人脸”和“非人脸”窗口。支持向量机(SVM)的训练使用了大量的人脸样本,并利用“自举”的方法搜集大量的非人脸样本,同时使用逼近的方法选择出少量的支持向量为关键支持向量,以减少运算中支持向量

22、的数目。J.CPlatt提出了称为顺序最小最优化(Sequential Minimal Optimization)的支持向量机动训练方法27,将一个大型的求解二次规划问题分成一系列最小可能的二次规划问题,避免了对大型二次规划问题直接求解,大大提高了训练速度。(4)隐马尔可夫模型(Hidden Markov Model),前提假设是模型可被定义为一个参数化的进程。该进程的参数可通过精确的方法估计出来。首先决定隐态并形成一HMM个模型,然后通过学习来自样本集的各个状态间的转移概率来训练HMM,每个样例由一系列观测值表征。HMM训练之后,观测值的输出概率就决定了它属于哪一类。Nefian等将人脸从上

23、到下划分为五个互有重叠的区域头发、额头、眼、鼻、嘴28。根据这个划分构造了一个包含五个状态的一维连续HMM用以表示人脸。此后,他们还提出基于嵌入式HMM的人脸检测方法29。该方法同时考虑到人脸由左到右各个特征的自然顺序,使用二维HMM,并采用二维DCT变换的系数作为观察向量。(5)Viola等提出了一种基于AdaBoost的实时人脸检测算法30 31 32。该方法使用Harr-like特征表示图像,引入“积分图”概念,提高特征的计算速度,采用方法选择AdaBoost少量特征组成强分类器,使用瀑布模型提高人脸检测速度。在取得较好检测性能的同时,实现了人脸的实时检测。RainerLienhart等

24、在Viola基础上扩展了Harr-like特征33,他们训练的系统可以用于旋转人脸的快速检测,s.z.Li等提出了一种基于F10atBoost的多视角人脸检测算法34,构建了第一个实时的多角度人脸检测系统。方法还提出了一种改良的统计模型,可以使用更少的弱分类器达到更低的错误率。蒋焰等提出了一种基于多步校正的AdaBoost改进算法35,在该算法中训练样本的分布更新不仅与当前分类器有关,而且也需要考虑到前面的若干分类器,提高了传统AdaBoost算法的收敛性能,缩短了训练时间。 2.3.3基于运动特征的方法Yacoob比较了基于统计模型的方法和基于几何特征的方法(feature-graph)对表

25、情人脸的识别结果,得出特征脸方法稍稍好一点的结论36,但是用特征脸方法识别表情人脸时,至少有如下两个问题没有很好解决:(1)构成特征脸空间的特征脸不仅表征了不同人的人脸之间的区别,同时也表征了同一个人自身的多种人脸变化37,如由姿态,表情引起的人脸变化,而后者显然对人脸识别造成干扰,针对这一弱点,浙江大学计算机科学和工程系提出一新算法38,该算法为每一个人建立了一个仅表征它自身的特征空间,由于这个空间更好地反映了这个人本身的特点,因此测试人脸像到子空间的距离就成为识别的一个很好依据;(2)特征脸方法作用在像素域上,由于其是表征人脸像各个像素的灰度变化的一种模型,因此不能很好地表征人脸像平面上的

26、运动,可是当存在表情变化时,像素却在人脸像平面上存在着运动 该方法首先利用块匹配的方法来确定表情人脸和无表情人脸之间的运动向量,然后利用主成分分析方法(PCA)从这些运动向量中,产生低维子空间,称之为特征运动空间.测试时,先将测试人脸与无表情人脸之间的运动向量投影到特征运动空间,再根据这个运动向量在特征运动空间里的残差进行人脸识别2.4各种方法的优缺点基于统计的方法是目前比较流行的方法,是解决复杂的人脸检测问题的有效途径,较适合对正面人脸图像进行检测,但图像中人脸尺度及位姿发生变化,特别是旋转变化,会使检测难度加大,准确率相应降低。它的优点是不依赖于人脸的先验知识和参数模型,可以避免不精确或不

27、完整的知识造成的错误采用了实例学习的方法获取模型的参数,统计意义上更为可靠通过增加学习的实例可以扩充检测模式的范围,提高检测系统的鲁棒性。基于统计模型的方法大多适用于复杂背景图像中的人脸检测。基于局部特征的方法首先在整个图像中搜索一组人脸局部特征,然后通过它们之间的几何关系组合成候选的人脸区域。由于局部人脸特征的不变性,通过组合人脸局部特征,可把这种方法应用在检测不同位置、不同角度的人脸。该方法所面临的主要问题是由于图像噪声等因素的影响,造成人脸局部特征不明显,使得根据局部特征组合人脸的算法失效,从而产生拒识和误识。总体来说,基于经验知识和基于特征的方法直观,易于为人所接受和采用。但是由于很难

28、将人类的知识转换为明确定义的规则,所以这两种方法的局限性很大。它们还存在的一个共同缺陷是都依赖于固定的先验模式,适应变化的能力差譬如出现彩色光照改变了图像中的脸部颜色、图像大小改变、旋转人脸中双眼不在鼻子的正上方等人脸特征发生变化时,原有的肤色、模板、知识就不再适用基于模型匹配的方法使用事先选定的模板对输入图像进行逐一对照。这类方法通常容易实现39,但由于事先得到模板很难描述出图像中的人脸各种情况,所以只能应用与特定环境下的人脸检测。基于统计理论方法中“人脸”区别于“非人脸”的特征是通过样本学习的方法获得的,不是人们根据直观印象得到的表层规律。这样,不仅避免了因为人们肉眼观察的不完整、不精确而

29、带来的错误,还能通过增加训练样本扩充检测的范围,提高系统的鲁棒性。但是这种方法需要大量的统计特征,样本训练费时费力综上所述,尽管研究者在人脸检测方面取得了很多成就,但是任何一种算法都不能适用于所有类型的图像,故有很多值得改进的地方。 3.程序实现及结果本文采用了VC+6.0及Opencv进行了仿真,代码如下:#include cv.h#include highgui.h #include #include #include #include #include #include #include #include #include #ifdef _EiC/预编译命令#define WIN32#e

30、ndif static CvMemStorage* storage = 0;static CvHaarClassifierCascade*cascade=0; void detect_and_draw( IplImage* image ); const char*cascade_name=haarcascade_frontalface_alt.xml;/* haarcascade_profileface.xml;*/ int main( int argc, char* argv ) CvCapture* capture = 0; IplImage *frame, *frame_copy = 0

31、; int optlen = strlen(-cascade=); const char* input_name; if( argc1&strncmp(argv1,-cascade=,optlen)=0) cascade_name=argv1+optlen; input_name=argc2?argv2:0; else cascade_name = haarcascade_frontalface_alt2.xml; /opencv装好后haarcascade_frontalface_alt2.xml的路径, /也可以把这个文件拷到你的工程文件夹下然后不用写路径名cascade_name= haarcascade_frontalface_alt2.xml; /或者cascade_name =C:Program FilesOpenCVdatahaarcascadeshaarcascade_frontalface_alt2.xml input_name =argc1?argv1: 0; cascade = (CvHaarClassifierCascade*)cvLoad( cascade_name, 0, 0, 0 );

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1