《人脸识别系统中人脸检测模块的研究与实现.docx》由会员分享,可在线阅读,更多相关《人脸识别系统中人脸检测模块的研究与实现.docx(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、人脸识别系统中人脸检测模块的研究与实现内容摘要:人脸检测是计算机视觉与模式识别领域非常活泼的研究课题,在身份验证、人机界面、可视通信、虚拟现实、公安档案管理、基于内容的图像检索等很多方面都有着广泛的应用。作为人脸识别的重要的第一步,人脸检测所做的工作是将人脸从图像背景中检测出来,它是人脸识别、视点跟踪和人脸图像压缩等应用中的重要环节。由于受图像背景、亮度变化及人的头部姿势等因素的影响,使得人脸检测成为一项复杂的、具有挑战性的研究课题。 本文论述了人脸检测技术的根本概念,分析和探讨了多种人脸检测方法的根本理论,对人脸检测方法进展了深入的研究和讨论,实验说明本文研究的人脸检测方法是合理的,具有一定
2、的理论价值与实用价值。本文的研究工作主要包括:基于AdaBoost学习算法,从一个较大的特征集中选择少量关键的haar-like特征,产生一个高效的强分类器。再用级联方式将单个的强分类器级联成为一个更加复杂的级联分类器。针对AdaBoost算法在训练过程中出现的退化问题及样本权重扭曲的现象,本文对样本权重的更新规那么作出了适当的调整,在一定程度上防止了退化现象,提高了分类器的性能。实验结果说明,新的人脸检测器检测效果显著加强。关键词:人脸检测 AdaBoost算法 Haar特征 Research and implementation of face detection module in fa
3、ce recognition systemAbstract:Human face recognition and detection are the most active and chaallenging tasks for computer vision and pattern recognition.It can be widely applied to such fields as personal identification,human-computer interface,visual communication,criminal archive administration,c
4、ontent-based image retrieval,etc.As the first step of face recognition,the task of face detection is to detect human faces from background of image.However,face detection result is usually affected by the background,brightness or head posture of image and so on,which makes the process of detection m
5、ore complicated.A great amount of literatures,surveys and research papers concerning up-to-date techniques of face detection and face recognition are and analyzed.Some hot issues about face detection are discussed in this paper.The experiments indicate that the methods of face detection proposed in
6、this paper are reasonable,showing a certain degree of theoretical and practical value.The research work of this paper mainly about:Using face detection method based on AdaBoost learning algorithm,which selects few key haar-like features from a large set of features,to build a robust cascade classifi
7、er.Focusing on the disadvantages of classical AdaBoost algorthm,this paper analyses the issues of overfitting and distortion of sample weights in training process and come up with a new method to avoid the phenomenon of overfitting.The experimental results show that the new method will not lead to o
8、verfitting like classical AdaBoost often does,and it will reduce false alarm rate while holding a high detection rate.Keywords: face detection adaboost algorithm haar feature 目 录前言1一、人脸检测知识介绍1一人脸检测根本概念1二人脸检测技术的开展背景2三人脸检测的分类3四人脸检测方法31基于统计模型的方法32基于范本匹配的方法63基于特征的方法7二、AdaBoost算法相关知识概述8一Boosting算法简介8二Ada
9、Boost算法简介9三、Haar型特征和积分图像10一Haar型特征10二一种组合式新型特征11三检测器内特征数计算13四、基于AdaBoost算法的人脸检测16一AdaBoost算法16二AdaBoost算法举例181弱分类器182强分类器19五、系统的设计与实现21一VC+环境的安装与配置211步骤212配置21二OpenCV的介绍安装和配置211.介绍212.安装223.配置22三总体设计231.人脸识别模块的主要功能232.系统体系构造分析23四训练局部的设计24五识别局部设计26六其他功能模块的设计26七系统截图27六、完毕语29一工作总结29二展望30七、致谢30附录32参考文献4
10、3人脸识别系统中人脸检测模块的研究与实现前言人脸检测是作为人脸识别的一局部进展研究的,是近些年研究的难点。人脸是一类具有相当复杂的细节变化的自然构造目标,对于这类目标的检测是一个极富挑战性的课题。人脸检测问题的难度在于,主要在于图像或视频中人脸模式的广泛差异性:某些局部特征具有随机性(如眼镜、胡须、发型等),这些都给人脸检测带来难度。来自身份、光照、观察角度等的变化,以及装饰物和局部遮挡等影响,有时使人脸与背景区别不大,给检测带来一定的难度。因此,如果能够找到解决这些问题的方法,成功构造出人脸的检测系统,将会为其它具有类似特征和模式的检测问题提供重要的提示。然而,对于机器来讲,人脸又是一个有其
11、艰巨而又困难的问题。因为人脸检测技术在检测过程中计算量在,算法复杂,即使一台高性能的计算机也往往无法负担一个大规模的人脸库的检测需求,更何况检测后的识别等其它工作了。 经过不断的研究和开展,目前已经实现了很多算法解决了一些计算量问题。迄今为止,人脸检测的方法不断的被提出。大体上可以分为如下几大类:假设干统计模型的方法、基于范本匹配的方法、基于器官特征的方法等。但目前最流行的是Viola等提出的基于积分图像的Adaboost算法,它是目前效率最高的一种算法。 目前对人脸检测研究的成果是:不但能对静态图像中的人脸进展单个人脸、多个人脸、人脸的多态检测,而且能够对动态视频文件或录像图像的人脸进展检测
12、和跟踪。但对动态检测还是初级阶段,还有很多问题有待解决。本文主要研究静态的人脸检测,假设输入图像为动态图像序列,那么可以利用与人脸或人脸的器官相对于背景的运动来检测人脸,比方利用眨眼或说话等动作的探测来实现人脸与背景的别离。 本文主要研究基于Haar特征的AdaBoost算法,改良这种算法中的特征来进展人脸检测。一、人脸检测知识介绍一人脸检测根本概念人脸检测(Face Detection)是指在输入图像中确定所有人脸(如果存在)的位置、大小和姿态的过程。人脸检测系统输入的是可能包含人脸的图像,输出的是图像中是否存在人脸和人脸数目、位置、尺度等信息的参数化描述。人脸检测其实只是目标检测的一个典型
13、的应用实例。而目标检测的目的是为了目标识别,目标识别的其它应用包括:手写或印刷体文字的分割和、图文表混合信息的分类和识别、在躁声环境中检测和识别特定说话人的身份、在航海、航空红外照片中进展自动目标的识别。对人脸及其特征检测的研究有益于相似特征提取及目标检测和识别问题的研究。人脸检测任务的完成涉及从复杂的背景中分割、抽取、验证人脸区域和可能乃至的人脸特征(如眼睛、唇色等)。成功的人脸检测系统应能处理实际存在的光线、人脸方向和距离照相机远近变化等各种情况。二人脸检测技术的开展背景人脸检测没什么近些年开展的如此迅速,主要原因有正面两种:一是人机交互方式的开展,二是生物特征识别的开展。首先,人脸检测技
14、术的提出是人机交互开展的需要。人机交互方式,经过第一代的单一文本形式到第二代的图形用户接口的开展,正在向以人为本的方向开展。人们提出了智能人机接口的概念,希望计算器具有或局部具有人的某些智能内同计算机的交流变得像人与人之间的交流一样轻松自如。用户是人机界面中的主体,计算机作为一种“智能体参与了人类的通讯活动。在处理人机关系时,根据“人为中心的思想,应当康健老虎人的因素。因此,智能接口系统要解决的首要问题是计算机如何感知使用者的存在,这是人机交互的前提。脸部是人类携带信息最丰富的部位,是人类的重要特征。从认知角度讲,人们在视觉信道层次上感知和识别人的首要信息载体就是人脸。使计算器具有感知到人是否
15、存在的视觉功能,这项技术就是人脸检测。其次,在生物特征识别技术中,作为人脸自动识别系统的先决条件,人脸检测技术有着十分重要的作用。在现代社会中,传统的身份鉴定方式(例如口令、信用卡、身份卡等),存在携带不便、容易遗失、或者由于使用过多或不当而损坏、不可读和密码易被破解等诸多问题,已不能很好地满足各种平安需要并显得越来越不适应现代科技的开展和社会的进步。因此,人们希望有一种更加可靠的方法来进展身份鉴定;生物特征识别技术给这一切带来可能。生物特征识别技术是通过利用个体我有的生理和行为特征来到达身份识别和个体验证目的的一门科学。尽管人们可能会遗忘或丧失他们卡片或忘记密码,但是却不可能遗忘或丧失他们的
16、生物特征如人脸、指纹、虹膜、掌纹等的特征或声音等。在生物特征识别技术中,近年来以人脸为特征的识别技术开展十分迅速。相对而言,人脸识别是一种更直接、更方便、更友好、更容易被人们承受的非侵犯性识别方法。作为人脸自动识别系统的第一步,人脸检测技术有着十分重要的作用,它为后续的人脸分类提供了待识别人脸的具体信息。三人脸检测的分类 人脸检测问题所包含的内容十分广泛,从不同的角度可以有多种分类方法如表1。表1 人脸检测的分类分类依据类别图像来源静态图像动态图像颜色信息彩色图像灰色图像人脸姿态正面多姿态人脸个数单人人脸检测未知人脸个数的检测图像复杂程度简单背景人脸检测复杂背景人脸检测四人脸检测方法经过了几十
17、年的研究开展,人们对人脸检测的学习和研究主要形成以下几大类的方法: 1基于统计模型的方法总的来说,这种方法遵循一种统一的模式,即首先通过学习,在大量训练样本集的根底上建立一个能对人脸和非人脸样本进展正确识别的分类器,然后对被检测图像进展全局扫描,用分类器检测扫描到的图像窗口中是否包含人脸。假设有,那么给出人脸所在的位置。 采用这种检测模式的理论依据是:人脸具有统一的构造模式(都是由眉毛,眼睛,鼻子和嘴唇等人脸器官构成),如果把所有的图像集看作一个高维线性空间,那么整个人脸图像集仅对应于其中的某个子空间。于是可以通过检验待测图像窗口是否落在这个子空间中来是否为人脸。因此,可以通过大量的人脸和非人
18、脸样本来建立一个分类器,使它能够正确分辨这两种不同的图像模式,再利用训练好的分类器在未知的图像中检测人脸。采用这种检测策略的关键在于如何选取大量的具有代表性的图像样本 。特别是非人脸图像样本训练分类器。 具体分类器的实现可以采用不同的策略,下面就介绍几种方法:1人工神经网络MIT(麻省理工大学)的学者首先对人脸样本集和非人脸样本集聚类,以测试样本与人脸样本集和非人脸样本集的子类之间的距离作为识别特征微量,利用多层感知(MLP)网络作为分类器。CMU的研究人员直接以图像作为神经网络的输入,设计了一个具有独特构造的适用于人脸特征的神经网络分类器,并且通过前馈神经网络对检测结果优化。他们工作的共同之
19、处是都采用了自调整(bootstrap)的学习原理,对分类器一边训练,一边测试,并把在测试过程 中的错误分类结果作为反倒样本参加学习过程,从而减少了样本集的规模,并表叔的提高了神经网络的分类性能。 特别值得一提的是CMU的Rowley等的工作,他们使用了多个ANN检测多姿态的人脸,算法的框架如图1所示。图中显示了两类ANN:一个位姿检测器用于估计输入窗口中人脸的位姿、三个检测器分别检测正面、半侧面和侧面的人脸。使用经过对准和预处理的“人脸样本以及采用“自举方法收集分类器错分的样本作为“非人脸样本训练各个ANN,进一步修正分类器。检测时对输入图像中所有可能位置和尺度的区域首先使用位姿检测器估计人
20、脸位姿,经校准和预处理后送入三个检测器中,最后对检测器的分类结果进展仲裁。输入图象窗口提取位姿估计预处理正面人脸检测侧面人脸检测半侧面人脸检测结果仲裁检测结果图1 Rowley的基于人工神经的人脸检测框架在上述框架下,Rowley等对正面端正人脸和正面旋转人脸的检测单独进展了研究。对于正面端正的人脸,仅使用了正面人脸检测ANN,是一种三层前向网:输入层对应20*20像素的图像区域;隐层节点分为对应不同人脸区域的假设干组,与输入层局部连接;ANN输出1到-1区间的值表示这个区域是否为人脸。Rowley等使用一样的“人脸样本和不同“自举过程收集的“非人脸多个正面人脸检测ANN,对它们的检测结果进展
21、仲裁,以进一步减少错误报警。对于正面旋转人脸的检测使用了旋转角度检测器及正面人脸检测ANN,并使用相似的多ANN仲裁方法降低错误报警。2支持向量机支持向量机此方法由Boser、Guyon、Vapnik等人在COLT-92上首次提出。作为一种分类算法,广泛应用于模式识别的各个分支。支持向量机方法是建立在统计学习理论的VC(Vapnik Cherovnenkis)维理论和构造风险最小代原理根底上的,根据有限的样本信息在模型的复杂性和学习能力之间寻求最正确斤斤折衷,以期获得最好的推广能力。传统的使用经历风险最小代的分类训练方法,例如神经网络,人间缺少严密的数学解释。而支持向量机使用构造风险最小代来寻
22、找最优类面,在数学上,证明了这等价于寻找最小真实风险。所以支持向量机在有限样本的条件下的推广能力很好。支持向量机通过构造风险最小的分类面来解决一个二类问题,这相当于使训练集中的最靠近分类的点距离分类面最远。这些距离分类面最近的点叫做支持向量。如图2所示这是一个二维线性可分的例子,灰色的区域表示所有可能将数据正确分类的分类面的集合。在图3中最优分类面距离支持向量的距离最远。图2 图中的灰色区域表示所有可以把数据正确分类的分类面的集合图3 最优分类面f=0到最近的点的距离最远,这些距离分类面最远的点叫做支持向量3基于隐马乐可夫模型的方法隐马乐可夫模型是用于描述信号统计我的一组统计模型。HMM使用隐
23、马乐可夫链来模拟信号统计特征的变化,而这种变化又是间接地通过观察序列来描述的,因此,隐马乐可夫过程是一个双重的随机过程。在HMM中,节点表示状态,有向边表示状态之间的转移,一个状态可以具有特征空间中的任意特征,对同一特征,不同状态表现出这一特征的概率不同。由于HMM是一个稀有统计模型,对于同一特征序列,可能会对应于许多序列,特征序列与状态序列之间的对应关系是非确定的。这种模型对于状态序列来说是隐的。外界只能看到各个时刻的输出值,故称为隐马乐科夫模型。HMM的打分、解碼和训练相应的算法是前向算法、Viterbi算法和前向后向算法。它把人扔模式看作参数化的随过程,把人面部的额头、眼睛、鼻子、嘴巴和
24、下巴等器官所在部位看作随机过程的状态,通过对符合人脸各器官公布的随机过程 的检测来实现对人脸检测。这正好是隐马乐可夫模型容易做到的。Nefian等采用隐马乐可夫模型检测人脸。检测区域中的每个子区域采用主要的Karhunen-loeve变换系数作为观察适量,通过Baum-Welch算法和Viterbi分割算法获得HMM的模型参数,根据检测区域的观察序列的输出概率进展判决。2基于范本匹配的方法早期的基于范本匹配的方法是这样做的:首先建立一个标准的人脸模板,由包含局部人脸特征的子模板构成,然后对一幅输入图像进展全局搜索,对应不同尺度大小的图像窗口,计算与标准人脸模板中不同局部的相关系数,通过预先设置
25、的阈值来判断该图像窗口中是否包含人脸。Poggio利用基于模板的方法来定位眼睛的位置,他们把标准的眼睛模板调整为5个不同的尺寸,然后在输入图像中找寻眼睛。这种简单范本匹配的方法易于实现,但是也存在着缺点:图像噪声对检测结果影响很大,因此需要对输入图像做适当的预处理;标准模板的大小是人为设定的,因此不能动态检测眼睛的位置。下面是2种范本匹配方法。1固定模板匹配法根据人脸的先验知识先设计出人脸轮廓模板以及各个器官特征的子模板,然后通过计算样本图像中区域和人脸轮廓模板的相关值来检测出人脸候选区域,最后利用器官特征子模板验证上一步检测出的人脸候选区域是否包含人脸。但由于人脸特征的变化很大,很难得到有效
26、的模板来表示人脸的共性,也不能有效处理尺度、姿态和形状的变化。这种方法目前已不多见,但人们在有的系统中将其作为粗检测或预处理的手段。2变形范本法该算法主要思想是定义一个可变形的参数模板和一个能量函数来描述特征,通过一个非线性最优化方法求得能使能量函数最小的参数模板,此模板即被认为是所求特征的描述。这种方法充分考虑到人脸是变形体的特点,稳定可靠,而且与姿态和光照无关,但仍然存在能量函数的系数难以适应一般情况和计算量巨大的问题。由于基于模板的方法比拟成熟,因此其实现起来比拟简单,但是这个方法对于人脸检测来说,效率并不高。3基于特征的方法基于特征的人脸检测方法是通过检测出不同的人脸面部特征的位置,然
27、后根据它们之间的空间几何关系来定位人脸。主要分为基于器官特征的方法和基于颜色纹理的方法。1基于器官特征的方法这种方法首先提取人脸器官眼、鼻、唇等图像特征包括几何、空间、灰度等各种度量。然后通过器官的位置和它们之间的几何关系来检测人脸。虽然人脸因人而异,但都遵循一些普遍适用的规那么,即五官分布的几何规那么。检测图像中是否有人脸,即是否存在满足这些规那么的图像块。这种方法一般是先对人脸的器官或器官的组合建立模板,然后检测图像中几个器官可能分布的位置,对这些位置点分别组合,用器官分布的知识规那么进展筛选,从而找到可能存在的人脸。2基于颜色纹理的方法主要利用人脸皮肤外表颜色和纹理具有一定的稳定特性不依
28、赖于面部的细节特征,对于旋转、表情等的变化情况都能保持不变来进展人脸检测。人脸的肤色在颜空间中的分布相比照拟集中,况且大多数和背景物体的颜色相区别利用这个特点可以检测人脸。这种方法的最大优点是对姿态变化不敏感。用彩色信息检测人脸的关键是合理选择色度坐标。常用的方案是将彩色的R、G、B分量归一化。目前人们研究更多的是如何提取彩色的色度信息,即将R、G、B彩色空间转化为其它彩色空间,以突出色度信息。其它模型主要有YUV、YIQ,、XYZ、YCbCr等等,其中YCbC是使用最多的一种,YCrCb是YUV模型中的一种,是一个色差模型,利用了人对色度远没有对亮度敏感而建立的,更符合人眼的视觉特点。其中,
29、Y是亮度信号,CrCb是色度或彩度信号。利用肤色特征检测出的人脸区域可能不够准确,但如果在整个系统实现中作为人脸检测的粗定位环节,它具有直观、实现简单、快速等特点,可以为后面进一步进展准确定位创造良好的条件,以到达最优的系统性能。各种方法各有优、缺点,由于在单通道上的可靠性是有限的,研究者们借助多种方法,穿插使用。取得了更好的效果。例如,国内的清华大学的研究人员对人类肤色进展了较为系统的分析,并提出了基于颜色和特征的自适应人脸检测的方法。他们还提出一种基于多模板匹配的单人脸检测方案,但是检测速度并不适应实时应用。哈尔滨工业大学的研究者实现了一个复杂背景下的多级构造的人脸检测与跟踪系统,其中,采
30、用了模板匹配、特征子脸、彩色信息等人脸检测技术,能够检测平面内多姿态正面人脸,并可以跟踪任意姿态的运动的人脸。研究实践也说明,这种穿插使用能够得到更高的检测效率。二、AdaBoost算法相关知识概述一Boosting算法简介Boosting是机器学习(ML)中的一个概念,Boosting方法源于PAC(Probably Approximately Correct,概率近似正确)学习模型的理论分析。它是由Valiant于1984年首先提出来的。Kearns和Valiant提出了强可学习(strong learning)和弱可学习(weaklearning)的概念。在PAC学习模型中,假设存在一个
31、多项式学习算法来识别一组概念,并且识别正确率很高,那么这组概念是强可学习的;而如果学习算法识别一组概念的正确率仅比随机猜测略好,那么这组概念是弱可学习的;Kearns和Valiant提出了弱学习算法与强学习算法的等价性问题,即是否可以将弱学习算法提升成强学习算法。如果两者等价,那么在学习概念时,我们只需要找到一个比随机猜测略好的方法就可以将它提升为强学习算法。1990年,Schapir发表了第一个boosting方法,这种算法可以将弱分类规那么转化成强分类规那么。Freund随后对其做了改良提出了更鲁棒的方法BBM(boost-by-majority)方法。Boosting方法在训练中先后产生
32、一系列学习机,各个学习机所使用的训练集都是从总训练集提出来的一个子集,各个样本是否出现在该子集中取决于此前产生过的学习机的表现,已有学习机判断出错的样本将以较大的概率出现在新的训练子集中。这使得其后产生的学习机更加专注于处理对已有学习机来说较为困难的样本区分问题。Boosting方法可以增强给定算法的泛化能力,但是还存在两个缺点:该方法需要知道弱学习机学习正确率的下限,而这在实际问题中是很难做到的;其次,这一方法可能导致后来的学习机过分集中于少数特别困难的样本,导致表现不稳定。目前有很多改良版的Boosting方法,下面一节就将介绍AdaBoost算法。二AdaBoost算法简介AdaBoos
33、t算法是一种分类器算法,是由Yoav Freund和Robert ESchapire在1995年提出的其根本思想是利用大量的分类能力一般的简单分类器(weaker classifier)通过一定方法迭加(boost)起来,构成一个分类能力很强的强分类器。理论证明,只要每个简单分类器分类能力比随机猜测要好,当简单分类器个数趋向于无穷时,强分类器的错误率将趋于零。AdaBoost用于人脸检测时,从人脸中抽取大量的一维简单特征。这些简特征都有一定的人脸和非人脸区分性。最终系统使用数千个一维简单分类器,组合起来到达很好的分类效果。下面用文字形式陈述一下AdaBoost算法。首先,利用样本(大约几百幅样
34、本图片)的Haar特征进展分类器训练,得到一个级联的Boosted分类器。训练样本分为正例样本和反例样本,其中正例样本是指待检人脸样本,反例样本指其它任意片,所有的样本图片都被归一化为同样的尺寸大小(例如2020,2424)。分类器训练完以后,就可以应用于输入图像中的感兴趣区域(与训练样本一样的尺寸)的检测。检测到人脸区域分类器输出为1,否那么输出为0。为了检测整副图像,可以在图像中移动搜索窗口,检测每一个位置来确定可能的目标。为了搜索不同大小的目标物体,分类器被设计为可以进展尺寸改变,这样比改变待检图像的尺寸大小更为有效。所以,为了在图像中检测未知大小的目标物体,扫描程序通常需要用不同比例大
35、小的搜索窗口对图片进展几次扫描。分类器中的“级联是指最终的分类器是由几个简单分类器级联组成。在图像检测中,被检窗口依次通过每一级分类器,这样在前面几层的检测中大局部的候选区域就被排除了,全部通过每一级分类器检测的区域即为目标区域。目前支持这种分类器的boosting技术有四种:DiscreteAdaboost,RealAdaboost,GentleAdaboost and Logitboost。boosted即指级联分类器的每一层都可以从中选取一个boosting算法(权重投票),并利用根底分类器的自我训练得到。三、Haar型特征和积分图像一Haar型特征将矩形作为人脸检测的特征向量,称为矩形
36、特征。在给定有限的数据情况下,基于特征的检测能够编码特定区域的状态,而且基于特征的系统比基于象素的系统要快得多。矩形特征对一些简单的图形构造,比方边缘、线段比拟敏感,但是其只能描述特定走向(水平、垂直、对角)的构造。脸部一些特征能够由矩形特征简单地描绘,例如,通常眼睛要比脸颊颜色更深;鼻梁两侧要比鼻梁颜色要深;嘴巴要比周围颜色更深。如图4。图4 2和3是1与给定矩形特征的匹配Haar特征是Viola等提出的一种简单矩形特征,因类似于Haar小波而得名。Haar型特征的定义是由两个或多个全等的矩形相邻组合而成,特征模板内有白色和黑色两种矩形(定义左边开场的为白色,紧挨着的为黑色,然后依次交织),
37、并将此特征模板的特征值定义为白色矩形像素和减去黑色矩形像素和。可见,它反映了图像局部的灰度变化。Haar型特征值的计算是通过积分图像实现的。有关积分图像的知识将在下一节的文章中介绍。本文的算法主要利用下面的几种Haar型特征。实验证明:这种特征选取方法的训练速度虽然不快,但是检测效率很高。图5 Haar特征的几种主要特征图5中1的a、b、c、d为边缘特征。2的a、b、c、d为线形正面特征,e、f、g、h为多态特征。3的a、b为圆心环绕特征。4的为特定方向特征。图5的1和3称做双矩形特征(two-rectangle feature),2和4分别称做三矩形特征(three-rectanglefea
38、ture)和四矩形特(four-rectangle feature)。其中双矩形特征定义为图中相邻两个矩形内象素颜色之和的差。三矩形特征定义为两边的两个矩形减去中间的矩形中象素的颜色值之和。二一种组合式新型特征由于以前的研究都提出的特征中包含人脸苟非吾之所有特征的局部比拟少,例如图6中(1)图就只横向描绘人脸的眼睛和鼻子特征,(2)图就只纵向描绘人脸眼睛和鼻子特征。它们包含的人脸根本特征比拟少,虽然特征构建比拟简单,但这种特征在人脸检测上需要屡次检测确认,而且检测率也没有到达人们预计的那么好。为了更好的解决这种特征的缺乏,这里我提出一种新的特征,这种特征是上面某些特征的组合形式,如下的2种:图
39、6 提出的新特征这种特征主要是根据人脸的特征分布,比方人脸的眼睛,鼻子和嘴的特征分布。如下面的人脸图就可以用图7中的(1)进展检测: 图7 特征与图像的匹配如图7中(1)为待检测人脸图像,(2)为所用到相应的特征图。其中图(2)中1可以看作是图(1)中人的右眼,2可以看作两眼之间的地方,3可以看作人的左眼,4可以看作人的鼻子局部,5可以看作人的嘴。 这样整个特征就和人脸根本特征吻合。也比前人提出的特征更接近人脸特征分布,按照这种划分,我们可以把图7中的(2)看作倾斜时的人脸检测特征。这种特征中的矩形要比前人提出的特征中的矩形多,计算起来更复杂一些,因为它的形状类似于图形处理中做卷积的3阶矩阵,
40、所以可以考虑一些,因为它的形状类似于图形处理中做卷积3阶矩阵,所以可以考虑把它看做3阶矩阵。不过这是我做了以下修改,就是把下2层矩阵元素分别看做一个整体处理,这样应用在卷积方面的知识也可以拿到这里来用。由于开场构建这种特征时,就是把前人的两种特征混合使用,所以在计算这种特征的特征值时,就可以先分别求出构建它的两种根本特征的特征值,然后把两个特征值做和,最后得到新特征的特征值。虽然新特征在组织上要比以前的特征复杂,但是更接近人脸器官特征的分布。对人脸检测更直观,更直接。三检测器内特征数计算找出窗口中所有特征,是进展弱分类训练的根底。对于一个的检测器而言,其内部的特征矩形数的计算如下:首先介绍一下
41、条件矩形:图8 计算检测器所有可能的矩形的数量对于窗口,我们只需要确定矩形左上顶点和右下顶点,即可以确定一个矩形;如果这个矩形还满足下面两个条件(称为条件,满足条件的矩形称为条件矩形):x方向边长必须能被自然数s 整除(能均等分成s段)y方向被边长必须能自然数t整除(能均等分成t段)那么这个矩形最小尺寸为或,最大尺寸为或 (其中为取整运算)。接下来我们计算条件矩形的数量,我们通过下面两步就可以定位一个满足条件的矩形:确定: 1 2确定A点后,B点只能在图中阴影内包括边缘取值,因此有: 3 4其中, 。并且由上分析可知,在子窗口中,满足条件的所有矩形的数量为: 5下面根据以上公式计算子窗口的特征
42、矩形数量,实际上,条件描述了矩形特征的特征,下面列出了不同矩形特征对应的条件:图9 5种特征模板的条件所以窗口中所有5种特征模板的特征总数量,就是分别满足5个条件的矩形特征的数量的总和即: 6特别的,如图9所示,由于特征模板1、2、3和4具有旋转对称性,那么可以进一步简代为: 7对于此新特征,要计算特征矩阵数目就不能用这种方法计算。不过可以把它看作(3,3)这种情形。因为每个新特征矩形数目要比(3,3)特征第矩形数目少4个矩形,所以可以用如下方法计算其特征数目: 8换个说法,我们把这种形式看作是(3,3)特征中把下面2格的矩形看作是一个整体,而不是把它们分开,这样更容易实现和理解。图10 计算
43、6种特征的数目下面列出了在不同子窗口大小内,特征的总数量:表2 不同子窗口大小内,特征值的数量窗口大小特征数量8168263952871628987902232946从表2可以看出窗口大小分的越大,生成的特征数量也就越多,这以去掉某些特征,例如,完全不必考虑用这样的特征计算特征值大值样就会带来耗时的问题。为了解决这个问题,我们可宽度为一个像素的矩形特征,因为显然随机性太,不可能寻找到适宜的阈。四、基于AdaBoost算法的人脸检测一AdaBoost算法AdaBoost算法训练强分类器的算法描述如下:1 给定一系列训练样本其中表示第i个样本,=0时表示其为负样本(非人脸),=1时表示其为正样本(
44、人脸)。为一共的训练样本数量。2 初始代权重 对于负样本: m为负样本个数 对于正样本: 为第t次循环中第i个样本的误差权重。 3: 1 权重归一化: 9 2 对每个特征,训练一个弱分类器;计算对应所有特征的弱分类器的加权错误率: 10 3 从2中确定的弱分类器中,找出一个具有最小的错误率的弱分类器; 4 对所有样本的权重进展更新: 11其中表示被正确地分类,表示被错误地分类。 令:; 5 最后的强分类器为: 12 其中以上训练的物理意义可以表述为:当已经提取的分类器对于某些样本分类正确,那么减小这些样本的权重。当分类错误,增加这些样本的权重。这样,后面训练提取的简单分类器应付更加强化对这些分
45、类错误样本的训练。二AdaBoost算法举例1弱分类器下面举例说明如何用AdaBoost算法将多个弱分类器组合成一个强分类器。对于图11所示的平面上有五个正训练样本,五个负训练样本,弱分类器是水平或垂直的直线,每个样本的概率值(初始值为1/10)大小用图中样本的大小来表示,分类错误的样本画圈表示。图11 弱分类器第一次迭代代表的直线是最优的弱分类器,此时错误率=0.3 5调整后的概率分布为,如图12。 图12 直线最优弱分类器第二次迭代代表的直线是最优的弱分类器,此时错误率=0.21 。第三次迭代代表的直线是最优的弱分类器,此时=0.14 。该弱分类器在经过三次训练后输出强分类。2强分类器本文
46、采用Adaboost算法训练强分类器,训练强分类器就是决定选择哪些弱分类器构成一个强分类器的过程,同时需要决定强分类器的闭值以及检测率和误检率。训练强分类器地算法描述如下:确定该强分类器的最大误检率:,最小检测率。获取并保存训练样本。P:表示人脸样本集合,叫P集,人脸样本也叫正例。N:表示非人脸样本集合,叫N集,非人脸样本也叫负例。样本表示为,当=1时,P;当=-1时, N;其中m为样本的总个数。计算每个样本窗口内的所有矩形特征值。对每个样本赋一个权值w。假设人脸样本个数为p,那么人脸样本的初始权值为,;假设非人脸样本个数为q,那么非人脸的初始值为,。其中p+q=m。设f为当前分类器的误检率,初始值为1。挑选一个矩形特征做为弱分类器,使得该分类器的分类错误相对于其它矩形特征的分类错误为最小。弱