基于Adaboost算法的人脸检测研究及实现

更新时间:2023-06-07 17:01:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于Adaboost算法的人脸检测研究及实现

西安理工大学

硕士学位论文

基于Adaboost算法的人脸检测研究及实现

姓名:林鹏

申请学位级别:硕士

专业:信号与信息处理

指导教师:张二虎

20070301

基于Adaboost算法的人脸检测研究及实现

摘要

论文题目:基于Adaboost算法的人脸检测研究及实现

学科专业:信号与信息处理

研究生:林鹏

指导教师:张二虎教授签名:签名:越

摘要

人脸检测技术作为机器视觉和模式识别研究领域中长期关注的一个重要课题,具有

极高的学术研究价值和商业应用价值。随着智能计算技术发展的日新月异,新方法、新技术的不断引入,给人脸检测研究注入了更多活力,检测效果越来越好,检测速度越来越快。

课题研究工作从基于Adaboost算法的人脸检测出发,分别从训练过程、检测过程对

该算法进行优化,并在此基础上开发了人脸检测与跟踪实验系统。

首先,根据经典Adaboost算法的原理,分别实现了Adaboost算法的训练过程和检

测过程。其次,鉴于Adaboost算法的训练过程时间过长,研究中分别对特征数量和训练流程进行了优化,使训练时间缩短了近50%。然后,从实时检测系统对速度要求的角度出发,提出了一种基于Adaboost算法的人脸跟踪算法,使处理一帧图像的平均时间大大缩短。最后,在实现检测与跟踪算法的基础上,开发出人脸检测与跟踪实验系统,其中包括:基于图像的人脸检测子系统、基于视频序列的人脸检测与跟踪子系统和视频监控子系统。此外,通过嵌入肤色检测算法模块和主成份分析算法模块,使系统的性能得到了较大的提升。

课题研究中所实现的相关Adaboost算法程序具有良好可移植性,为今后的迸一步研

究和应用打下了良好的基础。关键词:人脸检测;Adaboost算法;人脸跟踪;系统优化

基于Adaboost算法的人脸检测研究及实现

Abstract

Title:STUDYANDIMPLEMENTAl-lONOFFACEDETECTl0NBASED

ONADABoOSTALGORITHM

Major:SignalandInformationProcessing

Name:PengLIN

Supervisor:Prof.ErHuZHANGSignature:让s’9舱ture.丝彳

asaAbstractFacedetectioninpattemrecognitionandmachinevisiontechnology

valuelong-termrapidsubjectofconcern,hashi曲academicandcommercialvalue.Withthe

developmentofintelligentcomputingtechnology,newmethodsandnewtechnologieswill

continuetobeused,whichbringmorevitalitytothe

increasinglybetterresearch,anddetectionresultwillbeandfaster.

Theresearchstartedfromtheadaboostalgorithm,whichwasoptimizedfromthetraining

processandthedetectionprocess,andOilthisbasisfacedetectionandtrackingsystemwas

developed.

Firstly,basingontheclassicalprinciplesoftheadaboostalgorithm,thetrainingprocess

andthedetectionprocesswereachieved

arespectivelyandindependently.Secondly,inandtheviewofthetrainingprocessconsumedsuch

trainingprocesswerelongtime,thenumberoffeaturesthattrainingtimewasstepsoftheoptimizedrespectively,soreducedbynearly50%.

Then,fromthepointofspeedrequiredbyreal—timedetectionsystem,afacetracking

algorithmbasedontheadaboostalgorithmwasproposed,andtheaverageprocessingtimeof

singlefianlewasshortenedsharply.Finally,afterrealizingthedetectionandtracking

algorithm,thefacedetectionandtrackingsystemwasdeveloped,includingimage—basedface

detectionsubsystem,video—basedfacedetectionandtrackingsubsystemandvideo

surveillancesubsystem,Inaddition,byembeddedofthecomplexionmoduleandtheprincipal

componentanalysismodule,theperformanceofthesystemwasgreatlyimproved.

andimprovingtheBecauseofrealizingtheadaboostalgorithmindependently,therelevantprocedurescouldbetran印lantedeasily,andagoodfoundationwaslayforf=Ilrtherstudy

application.

KeyWords:Facedetection;Adaboostalgorithm;Facetracking;Systellaoptimization

基于Adaboost算法的人脸检测研究及实现

独创性声明

秉承祖国优良道德传统和学校的严谨学风郑重申明:本人所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的成果。尽我所知,除特别加以标注和致谢的地方外,论文中不包含其他人的研究成果。与我一同工作的同志对本文所论述的工作和成果的任何贡献均已在论文中作了明确的说明并已致谢。

本论文及其相关资料若有不实之处,由本人承担一切相关责任

论文作者签名:拯盘选司年;月17日

学位论文使用授权声明

本人本&d蜂在导师的指导下创作完成毕业论文。本人已通过论文的答辩,并已经在西安理工大学申请博士/硕士学位。本人作为学位论文著作权拥有者,同意授权西安理工大学拥有学位论文的部分使用权,即:1)已获学位的研究生按学校规定提交印刷版和电子版学位论文,学校可以采用影印、缩印或其他复制手段保存研究生上交的学位论文,可以将学位论文的全部或部分内容编人有关数据库进行检索;2)为教学和科研目的,学校可以将公开的学位论文或解密后的学位论文作为资料在图二转馆、资料室等场所或在校园网上供校内师生阅读、浏览。

本人学位论文全部或部分内容的公布(包括刊登)授权西安理工大学研究生部办理。

(保密的学位论文在解密后,适用本授权说明)

论文作者签名:牲蝗导师签名:吖年;月刁日

基于Adaboost算法的人脸检测研究及实现

1.绪论

l绪论

1.1引言

人脸是一种完全开放的信息源,通过人脸可以得到一个人的性别、年龄、表情和身

份等个体信息。人脸信息的提取过程方便而不具有接触性t11人脸信息的处理技术一直都是模式识剐与机器视觉研究领域内关注的重要问题,是现阶段基于生物特征的身份识别技术的重要组成之一。

人脸检测是指在输入信息中提取人脸(如果存在)的位置、大小和姿态等信息的过程。

人脸检测作为人脸信息处理技术中的一个关键问题,长期以来一直受各种科研机构的重视、相关课题的研究十分活跃。

智能计算的引入给人脸检测技术带来了一个新的发展空间121.人们将一些复杂但是

智能化的算法应用到人脸检测问题上,得到了很多较好的效果。随着智能算法的发展,新的算法越来越复杂,越来越合理,也越来越快。

自从Adaboost算法被Viola”1等人应用于人脸检测(15帧/秒)之后涌现出了很多

相关的研究成果。例如基于Adaboost算法的车牌识别E4l号码识别”1以及手写字体识别“1等等。Intel公司提供的OpenCV开发包软件就带有Adaboost算法的训练函数,大大方便了研究人员的使用和研究。但是OpenCV中的训练函数接口固定并且训练函数不能调整,训练过程中也无法看到中间数据,由于它不能给使用者提供更多的信息,使用起来不利于研究人员深入的研究和改进。此外,使用OpenCV开发包训练的结果还需使用其自带的检测函数,最终将很难实现算法的移植。

本文详细研究了Adaboost算法的实现过程,在此基础上对其进行了较多的改进,并

将改进算法应用到人脸检测与跟踪系统中。由于采用自主开发的训练和检测程序,整个算法具有较强的可移植性。此外,文中对实现Adaboost算法过程中的一些关键步骤给出了较详细的说明,并指导性的给出了一些关键数据。最后,本文介绍了如何搭建实验平台,实现人脸检测与跟踪系统。

1.2人脸检测技术研究的目的及现状

人脸检测技术具有极高的学术研究价值和商业价值。

人脸是一类具有复杂细节变化的自然结构目标,人脸检测技术的挑战性在于"’:(1)

人脸之间由于在外貌、表情、肤色和姿态上的不同,需要考虑检测对象模式的可变性;(2)人脸图像作为3维物体的2维影像不可避免的受到光照产生的影响;(3)现实中的人脸面部还会有眼镜、胡须等附属物。因此,如果能够找到解决上述问题的方法,将为解决其它类似的复杂模式检测问题提供重要的启示。

早期,入脸检测技术主要服务于入脸识别课题的研究;但是,随着生物识别技术的快速发展,人脸检测技术已经被广泛的应用于其它相关领域,产生了一定的商业价值。

基于Adaboost算法的人脸检测研究及实现

西安理工大学硕士学位论文

例如:表情识别、口型识别、人机交互、基于内容的索引、数字视频处理、视频监测、网络会议和NetCam等等。

目前,国外对入脸检测问题研究的专业机构有很多,比较著名的有MIT、CMU和

FERET等;国内的清华大学、上海交通大学、华中理工大学、北京工业大学、中国科学院计算技术研究所和中国科学院自动化研究所等科研杌构都有专业人员从事与人脸检测技术相关的研究。随着人脸检测技术研究的扩展,一些最新的技术和方法也被应用到解决人脸检测问题当中,新方法、新技术层出不穷。国际上发表的相关论文数量也在不断增长,如IEEE的FG、ICm、CVPR等重要国际会议上每年都有大量关于人脸检测的论文,占有关于入脸信息处理技术研究论文的近1/3之多‘2’。

1.3人脸检测方法简介

无论从整体结构上,还是细节特征上来讲,人脸都是有许多固定特征的,它本身也

是一些特征信息的集合。例如:人的脸是由皮肤、眉、眼、鼻、唇、下巴,还有额头和胡须组成的。长脸、圆脸、方脸和五官的大小、分布也是信息,都可以被描述和传递。在人脸检测问题的研究中,这些已知的特征信息都是非常重要的,而且也是经常被使用的。

根据检测原理的不同,常用的人脸检测方法分为:基于特征的检测方法和基于统计

模型的检测方法。

1.3.1基于特征的检测方法

人的面部有很多特征信息:包括皮肤、眉毛、眼睛、鼻子、嘴唇和下巴;此外,还

有面部的结构、轮廓和纹理特征等等。

利用皮肤的颜色特征可以制作肤色分类器‘8¨卯。为了较好的对肤色进行分类,研究

人员将肤色转换到不同的颜色空间进行聚类,常用的颜色空间有:YCbCr、LUV、YIQ和RGB等。基于肤色分类器的人脸检测方法容易受到背景的影响,还需要和其它检测方法结合¨∞起来使用。

根据面部器官的结构特征,研究人员提出了许多基于结构特征的检测方法。例如:

基于双眼模板匹配的检测方法¨¨、基于人脸器官结构的检测方法1121基于面部椭圆和比例的检测方法¨o’和基于面部的纹理特征的检测方法“31等等。

虽然基于特征的检测算法已经比较成熟,但是由于其容易受到光照、表情、姿态等

条件影响,检测能力有限。此外,基于结构特征的检测算法计算量较大,一般无法满足人们对检测速度的要求。

1.3.2基于统计模型的检测方法

基于统计模型的检测方法是目前研究的主要方向,也是将来一段时间研究的主要趋

势。这类方法的优势是不再使用人脸的特征信息等先验知识,也没有设定模板参数等操2

基于Adaboost算法的人脸检测研究及实现

1.绪论

作。在统计过程中使用大量样本进行训练,使检测的结果具有一定的可靠性。从理论上

讲,训练样本越多越好,所以基于统计模型的检测方法也具有一定的可扩展性。这类方

法的工作流程图如图1.1所示:

离线训练

图1—1统计模型算法的工作流程图

Figl一1theflowchartofstatisticalmodelalgorithms

常用的基于统计模型的检测方法有:基于神经网络的检测方法t14|、基于支持向量机

的检测算法¨卯、基于隐性马尔可夫模型的检测方法¨们和基于概率的检测方法“71。目前,

最受关注的是基于Adaboost算法的检测方法。

在基于统计模型的检测算法中,速度最快的是Adaboost算法,对状态信息描述最清

楚的是隐性马尔可夫模型和基于纹理特征的算法。对于一个简单、快速的人脸检测系统,

使用Adaboost算法的效果会更好些。而对于一个要求精准的检测或者识别系统,就应该

尽量使用类似于隐性马尔可夫模型和基于纹理特征的算法。

总之,人脸检测问题的内涵十分广泛,很多的方法一般都是针对某一类问题提出的。

由于人脸检测问题的复杂性,实现完全通用的人脸检测方法还不太现实。总的来说,基

于统计模型的方法具有很大的优势。但是基于统计模型的人脸检测仍然有一定的缺陷,

该类方法受图像质量、检测速度等因素的约束,对多尺度目标的检测也很复杂。所以基

于特征的检测方法和基于统计模型的检测方法相结合,今后仍将是主流。

1.4本课题研究的主要内容

本课题研究的主要内容围绕着基于Adaboost算法的人脸检测与跟踪展开。课题首先

是实现基于Adaboost算法的人脸检测,在此基础上对其添加跟踪算法和其它优化算法,

最终搭建人脸检测与跟踪系统。课题研究的主要内容如图1.2所示。

整个课题的工作分为4个阶段:第1阶段的主要工作是收集训练样本,分别实现

Adaboost算法的训练过程和检测过程:第2阶段重点是对Adaboost算法的训练过程进行

基于Adaboost算法的人脸检测研究及实现

西安理工大学硕士擘住论文

优化;第3阶段为应用作铺垫,分别实现肤色检测算法、主成份分析算法和关键的跟踪算法;第4阶段以实现应用为主,搭建人脸检测与跟踪实验系统。

收集样本

;l三竺竺竺兰矍堡至竺l;

图1-2课题的主要内容

Figl-2themaincontentoftheproject

论文的第2部分详细讲解Adaboost算法的检测原理与实现方法;第3、4部分在实

现Adaboost算法的基础上,根据该算法训练过程和检测过程的特点,提出了自己的优化方案及其实现方法;第5部分介绍了使用本文算法搭建的人脸检测与跟踪实验系统;第6部分是对本课题研究内容的全面总结。

基于Adaboost算法的人脸检测研究及实现

2.Adaboost算法的检测原理与实现方法

2Adaboost算法的检测原理与实现方法

Adaboost算法溉述

Adaboost算法根据人脸面部的灰度分布特征,选择使用了haar特征[311151。haar特2.1

征是一种基于积分图像的特征,主要在灰度图像中使用,该特征计算简单,提取速度较快。Adaboost算法首先提取图像中的haar特征,然后通过训练过程从中选出最优的haar特征,再将训练得到的haar特征转换成弱分类器,最后将得到的弱分类器进行优化组合用于人脸检测。

图2-1给出了使用Adaboost算法进行人脸检测的流程图1191。

离线训练检测过程

国2.1基于Adaboost算法的人脸检测流程图

Fi92-1theflowchartoffacedetectionbasedonAdaboostalgorithm

2.1.1积分图像

积分图像啪是将原图像中任一点的左上方的全部像素相加作为当前点像素值所得到

的图像;积分图像中每个点(x,y)的值为原图像中点(x,y)左上部分所有象素值的累加:

ii(x,y)=∑f(x’,Y’)

其中f为原始图像,打为积分图像。图2Z‘主g’蹇L个积分图像的例子:(2.1)

(a)全l图像(b)积分图像(Matlab调整显示)

图2-2积分图像示意图

Fig2-2exampleofintegral

image

基于Adaboost算法的人脸检测研究及实现

西安理工大学硕士学位论文

图2-2(a)中的图像所有的像素值都是1,图像大小16×16,通过公式2.1可以得到其

积分图像(b)。图2-3是图2-2中图像的数据区,可以看出积分图像中数据具有递增的特点,并且对于固定大小的图像其积分图像的机器计算时间是固定的。

11111

11l1111111】11234243694812162024510巧202530612182415324864111111111111111l168101212151811563036809611

1111111163248648096256

(a)全1图像数据(b)积分图像数据

图2-3积分图像数据区

Fi92-3thedataoftheintegralimage

通过积分图像可以计算出原图像中任意矩形区域内的像素点的和值。下面以计算图

2-4n1中D区域的像素之和为例:

图2-4积分图像举例

Fi92 4integralimage(forexample)

假设已经求得某一图像的积分图像(图2-4),根据积分图像的特点,利用公式2.2

可以迅速计算出原图像中D区域内的像素的和值。

SD=fl+f4一厂2一厂3(2.2)

其中,So是原图像中D区域内的像素的和值,石、以、六和六分别是积分图像中点1、点2、点3和点4的值。

2.1.2haar特征

根据积分图像的特点,利用公式2.2可以计算出任意矩形区域内像素点的和值,这

一过程快速且计算时间固定。利用这一特点设计出的haar特征提取快速且机器计算时间固定。正是由于haar特征提取速度足够快,使得Adaboost检测算法基本成为当前最快的检测算法之一131。

常用的haar特征是根据区域灰度对比的特点来设计的。如图2.5所示,图中给出了6

基于Adaboost算法的人脸检测研究及实现

2.Adaboost算法的检测原理与实现方法

4个常用的haar特征。每个特征分为2个部分,对比两个部分的像素和值的大小,对比

的区域如图中所示为黑块和白块。

回回日回

(a)特征A(b)特征B(c)特征c(d)特征D

图2-5常用的4种haar特征

Fi92-5fourtypesofclassicalhaarfeatures

将haar特征这种反映图像中灰度分布特点的特性弓l入人脸检测问题当中,问题就转

换成如何找到较好的haar特征对人脸图像灰度分布的特点进行描述。图2-6中的haar特

征都属于A种特征(图2.5(a)),利用如下3个特征可以很好的描述图像中人脸的眼部

区域的灰度分布特点,如图2-6所示:

(a)特征1(”特征2

图2-6A种haar特征举例

Fi92-6featuresoftype(c)特征3A(forexample)

图2-6(a)中所示的特征1是对人脸眼部和眼部下方区域灰度对比的结果,眼部的像

素之和明显小于眼部下方区域的像素之和,所以利用这一灰度分布特点对人脸的眼部进

行了较好的描述。同理,图2-6(b)、(c)所示的haar特征分别是对左眼、右眼的灰度分布

特点的较好描述。

Adaboost算法通过从大量的haar特征中挑选出最优的特征,并将其转换成对应的弱

分类器进行分类使用,从而达到对目标进行分类的目的。Adaboost算法的训练过程就是

挑选弱分类器的过程。

2.2Adaboost算法的训练过程

每个haar特征对应着一个弱分类器,但并不是任何一个haar特征都能较好的描述人

脸灰度分布的某一特点,如何从大量的haar特征中挑选出最优的haar特征并制作成分类

器用于人脸检测,这是Adaboost算法训练过程所要解决的关键问题。

2.2.1训练样本的选择

训练样本要求是面部特写图像,但是人脸形态千差万别,所以训练样本选取过程中

要考虑到样本的多样性,图2.7中是一簇训练样本,大小被归一化为24×24像素,其中

基于Adaboost算法的人脸检测研究及实现

西安理工大学硕士学位论文

各样本不完全相同,分别具有一定的代表性。

图2.7训练样本

Fi舀一7train/ngsⅫpl髂

训练样本使用前需要进行简单的预处理。一般来说训练样本的预处理不需要特别的

算法,但是样本中人脸的姿态要尽量一致。例如,如果训练样本是正面人脸,那么应当

保证样本中的人脸旋转角度小于5度:其次,样本大小也需要统~。一般研究中认为可

以被检测到的人脸图像最小为19X19像素,所以常用的训练样本大小有20X20、24X

24、48×48等等。

训练样本可以通过某些研究机构的网站得到,也可以自己手工裁剪制作。便于

Adaboost算法研究使用的人脸数据库及其库中人脸图像特点如表2-1所示:

表2-1人脸图像数据库

Table2—1thedatabasesoffaceimage

人脸数据库名称

MIT-CBCL人脸数据库特点共有lO个人,3200张训练图像

以及大量测试图像,人脸旋转从

0度到75度,图像大小200X200

像素网络地址http://vasc.ri.cmu.edu/idb/html/face/frontal—images/

MITEx正面姿态人脸图像2706幅,非http://ww.aivisoft.net/FaceRel

ated/index.htm人脸图像3841幅,图像大小20

×20像素

叭飒正面姿态人脸图像1150多幅,

图像大小20×20像素http://wwv.c1.cam.ac.uk/research/dtg/attarchive/facedatabase.h

tml

BiolD正面姿态人脸图像1521幅,图

像大小24X24像素http:|f礓悄.bioid.com/downloads/facedb/index.php

2.2.2训练过程的实现

训练过程分为3个步骤,首先需要提取haar特征;然后将haar特征转化成对应的弱

分类器;最后从大量的弱分类器中迭代选择出最优弱分类器。

(1)提取haar特征

常用的haar特征有4种,如图2.5所示。当然也可以在这4种特征的基础上设计出

更多、更复杂的特征11910以大小为24X24像素的训练样本为例,上述4种特征的总个数超过了160000个。这样庞大的数字给后续的迭代训练工作带来了庞大的计算量,直接

基于Adaboost算法的人脸检测研究及实现

2.Adaboost算法的检测原理与实现方法

导致了Adaboost算法训练过程极为费时,这恰恰是算法需要改进的关键问题之一。

(2)生成弱分类器‘21‘191‘201

每一个haar特征都对应着一个弱分类器,每一个弱分类器都是根据它所对应的Ilaar

特征的参数来定义的。利用上述haar特征的位置信息,对训练样本进行统计就可以得到

对应的特征参数。弱分类器的定义公式如下:

㈣=E矿。砌缀鹏

其中,特征参数p,表示不等式方向,毋.表示阈值。(2-3)

根据统计方式的不同,弱分类器又可分为单域值弱分类器和双域值弱分类器两种。

单阈值弱分类器只有一个阂值毋,,一个方向值P,,P,不是+l,就是.1;单阈值弱分类

器体现了haar特征中的“黑白”两个部分(2.1.2节)的灰度对比特点,它以两个区域闯

灰度值是否存在一定差异为分类依据,根据单阂值弱分类器的特点,可以将此时的样本

分布分为两类情况,如图2—8所示:耻孤

图2.8(a)样本分布1图2-8(b)样本分布2

图2-8单闭值分类器的样本分布”…22’

图2-9双阕值分类器的样本分布

distributingofthesamplesfortheclassifierswithtwothresholdsFi92—8distributingofthesamplesfortheclassifierswithsinglethreshold图中横轴表示样本分布位置,纵轴表示样本的分布概率。图2.8中利用闽值将样本进行真假分类,对于不同的弱分类器,不等式方向可能是正方向也可能是负方向。同理,根据双闽值弱分类器特点,样本分布如图2-9所示:Fi92 9

双阈值分类器有两个阈值,与之对应也有两个方向参数。

以任一单阈值弱分类器为例:根据当前haar特征的定义,通过对训练样本的统计得

到正样本和负样本的平均值q’+l、e,_1,则有色=(q’+l+q,一,)/2,若q’+l>巴,.I’Pj=+l

(否则P,=一1)。同理,双阈值分类器有上、下限两个阈值,两个阈值分别对应着两个

方向参数。弱分类器的输出结果为1或0,输出1表示判断为真,也就是人脸图像,反9

基于Adaboost算法的人脸检测研究及实现

西安理工大学硕士学位论文

之为假即非人脸图像。单个弱分类器的分类能力有限,不能很好的处理对象,所以还要

将其组和成强分类器使用t31t201。

(3)训练过程‘3’‘201‘221‘23’‘24’‘2卯

Adaboost算法的训练过程就是挑选最优弱分类器,并赋予其权重的过程。图2一10

是Adaboost算法的训练示意图:f<3

根据haar特

征的位置参

数统计各弱

分类器参数剧I各种aaat特I训练样本(包括人脸和非人脸样本)Nol当n>T时C———HEIg;g址按adaboost算法的训练流程迭代并挑选一个最优弱分类器记录当前最优弱分类器及其迭代权堑第n次选代

图2-10Adaboost算法训练示意图

Fi92—10thetrainingprocessofadaboostalgorithm

在(2)中生成弱分类器后,根据所需弱分类器个数进行训练,并将得到的弱分类器输

出使用。

训练算法步骤如下:

步骤1.标记拧个训练样本,其中m个人脸样本标记为儿=+1,Ⅳ一所个非人脸样本

标记为y,=一l。

步骤2.初始化权值。每个人脸样本的初始权值为:w0.+。=1/(2+m),非人脸样本

为:w0.一I=1/(24(Ⅳ一所))

步骤3.共挑选T个弱分类器(迭代T次):

①第,次迭代过程中,计算第.,个弱分类器的迭代误差之和乃=∑w,,Ih./(x,)-y,I:

并从中选出迭代误差和最小的弱分类器魄(x) 计算出尼2去,令%2108万1,则q为

弱分类器的权重;

②使用囊(D和矗更新全体权值:Ⅵw=毗,∥1,若第1个样本被正确分类,岛20,

否则e,=1;

⑨将权值归一化:Ⅵ扎。年一毒堑L;

∑w,山

尸l

④令t=f+1。

步骤4.将若干个弱分类器线性组合在一起,可以得到一个强分类器:10

基于Adaboost算法的人脸检测研究及实现

2.Adaboost算法的检测原理与实现方法

h(x):J1

【0舌吒_(工)≥言舌qotherwise(2.4)

单个弱分类器的分类能力很差,训练初始得到的弱分器的误差为O.15,随后逐渐上

升,所以这里需要将弱分类组合成为性能更好的强分类器才能使用。

2。3级联分类器的使用与设计

单个弱分类器的分类能力很弱,不能用来做分类使用,还需先将这些弱分类器组合

成一些性能较好的强分类器,并且每一个强分类器都应该具有较好的分类能力。如何设计级联分类器,使分类器能够较好的排除负样本的同时尽可能检测到正样本,是本节关注的问题。

2.3.1级联分类器的使用

利用训练过程得到的弱分类器,使用公式(2.4)将部分弱分类器组合得到若干强分类

器,各强分类器对人脸都有较强的检测能力。如果将多个强分类器级联在一起,那么能够通过各级强分类器检测的对象是人脸的可能性也最大。根据这一原理,Adaboost算法引入了一种瀑布型的分类器一级联分类器n“2∞旺如1251。级联分类器的检测示意图如图2-11所示:

通过通过

L~、、—/兰堡兰竺竺—/

图2.1l级联分类器的检测示意图‘”’

Fi酩一11thedetectionofcascadeclassifier./7一一—、、.

级联分类器将若干个强分类器分级串联在一起,强分类器一级比一级复杂,一级比

一级严格。检测中非人脸图像会在前端被排除掉,只有人脸图像才能通过各级强分类器的检测。此外,由于非人脸图像会被级联分类器的前几级迅速排除掉,从而加快了Adaboost算法的检测速度。级联分类器的运行效果如图2.12所示:

基于Adaboost算法的人脸检测研究及实现

西安理工大学硕士学位论文

图2-12级联分类器运行效果图

Fi醇一12theresultofcascadeclassifier

2.3.2级联分类器的设计

级联分类器要求各级强分类器从简单到复杂,一级比一级严格,这样才能保证用最

少的时间排除最多的非人脸。这就要求设计级联分类器的过程遵循一定的原则,但是到目前为止,并没有固定的设计结果,这主要是由于训练样本的不同从而导致了训练结果

不同造成的。

虽然没有一个固定的设计结果,但是文献心01中提供了一个指导性的原则:就是尽

可能的保证人脸图像通过率的同时减少非人脸图像的通过率,随着分类器级数的增长,

组成强分类器所需的弱分类器个数将会不断增加,对通过的要求也越来越严格,直到所有非人脸样本都无法通过为止,这一过程始终要求尽可能的保证人脸样本的通过。训练算法如下所示:

级联分类器的训练算法fill20]

●设定每层最大错误率,,每层最小通过率d和整个分类器的错误率声'嘣

●初始化最=1,i=l

●WhileE>k

1.使用训练样本训练第i层,设定阂值b使得误报率Z小于/,通过率大于d;2.i=i+1,E+l卜以;

3.若F。>k,停止。

强分类器越复杂、越严格,对非人脸的排除能力就越强,但同时也会导致部分人脸

被错误排除,所以制作级联分类器的时候需要从整体上考虑各级强分类器的分类能力。

随着级联分类器级数的增加,误检率迅速下降,但同时漏检率也会上升。为了更好的说明级联分类器的检测效果,图2一13给出了一组级联分类器的检测结果,越靠后的强分类器分类越严格,图中横轴表示级联分类器的级数,纵轴表示检测正确率。

12

基于Adaboost算法的人脸检测研究及实现

2.Adaboost算法的检测原理与实现方法

图2.13一组级联分类器的检测率

Fi醇 13performanceofthedetectionofonecascadeclassifier

从图中可以看出,随着级联分类器级数的增加,分类器对负样本的排除率越来越高,

但同时也将部分正样本排除。为了更好的了解级联分类器各级单独的分类能力,表2.2

给出了各级强分类器的测试结果:

表2-2级联分类器前lO级单级测试结果(共15级)

第l级

弱分类

器个数

正样本

0.993

正确率

负样本

0.22

正确率第2级第3级第4级第5级第6级第7红第8级第9级第10级11826365345751622450.9930.9950.9920.9880.9880.9830,96O.94O.890.1040.155O.190.218O.3l0.32O.320.43O.52

从表中可知,强分类器的分类越来越严格,漏检率越来越高,误检率也越来越低。

级联分类器的使用提高了分类器的检测能力,同时也加快了对非人脸的排除速度,

从而达到了优化检测过程的目的。

级联分类器的设计和使用是建立在训练结果上的,所以级联分类器对训练样本的检

测结果应该收敛;但是,过训练的问题同时也会出现。所谓过训练是指由于训练过程中

样本数目较少或者样本不够丰富,导致训练结果虽然对训练样本严重收敛,但是对于其

他情况不太适用。显然,过训练情况是我们不想遇到的,但是训练样本又是有限的,这

时就要对训练样本进行处理,处理的方法将在第3章中详细说明。

2.4Adaboost算法的检测过程

获得性能优良的级联分类器之后,为了在图像检测中能够使用记录级联分类器,需要为其设计一种检测机制,并为其设计相应的处理接口。

基于Adaboost算法的人脸检测研究及实现

西安理工大学硕士学位论文

2.4.1检测机制

训练样本的大小决定了弱分类器处理对象的大小。课题中选用的训练样本图像大小

为24X24,理论上弱分类器也只能检测24X24左右大小的人脸。但是实际图片中人脸

的大小有很大变化范围,图2一14中用黑线框住了5个人脸,各人脸的大小不尽相同。为

了能够检测出各种尺度大小的人脸,这里还需引入多尺度检测机制。

图2-14岔有不I司大小人脸的图像

Fi贮一14differentsizesoffacesinaimage

常用的尺度变化方法有多种,但是为了保证检测速度,这里有两种方法可供参考:

一种方法是将分类器的尺度进行变换,同时还需要改变弱分类器的域值,实现起来复杂,

但检测速度较快。另一种方法是对图像在不同尺度下抽样,这种方法实现起来简单,但

是比前一种方法稍微费时。

以一幅48×48的人脸图像为例,第一种尺度变换方法仅对弱分类器的参数进行变

换:检测时各弱分类器所对应的haar特征的位置参数将放大到原来的2倍,域值参数则

要放大到原来的4倍,方向参数不变。这样的过程需要不停的对弱分类器变化操作,实

现起来较复杂,但是检测速度较快。

图2 15分类器放大

Fi醇一15classifiermagnify

第二种方法首先要对目标图像进行抽样操作,将一幅48X48的图像抽样成为24X

24的过程实现起来非常快速,但是由于haar特征是基于积分图像生成的,整个过程的计

算量将因为重复计算而加大。

14

基于Adaboost算法的人脸检测研究及实现

2.Adaboost算法的检测原理与实现方法

图2.16图像抽样

Fi92—16imagesampling

图2—15、2一16分别介绍了两种尺度变化的策略,实际使用中一般采用第一种方法,

这是因为基于haar特征的弱分类器缩放方便。同时,由于积分图像也只需计算一次,从而有效地减少了计算量,达到了加快检测速度的目的。

2.4.2检测流程的实现

检测过程的流程如图2.17所示。因为基于Adaboost算法的人脸检测处理的是灰度

数据,所以检测的第一步是将待检测图像转换成灰度图像。

图2-17检测流程图

Fi贮一17flowchartofdetectionprocess

第二步是通过灰度图像得到积分图像,积分图像的概念在2.1.1节已经介绍过。

第三步对积分图像在不同尺度上进行检测,并在不同的尺度上分别将检测结果合并。

第四步将不同尺度下的检测结果舍若后输出。

使用分类器对图像进行扫描的时候,需要对扫描子窗口之间的间隔进行设置,有种

说法叫做“三庭五眼”心印,按照这种说法间隔设置为4。为了尽可能的减少漏检,这里的间隔设置不能太大,太小又会影响检测速度,本文第3章中将会有更加详细的说明。

在同一尺度下,当检测到人脸的两个子窗口有重叠部分的时候,就需要考虑是否需要合并。根据实验结果,当人脸子窗口重叠部分超过当前窗口大小的I/2时,合并重叠的子窗口,合并的方法就是取平均值。

此外,在不同尺度下检测到的窗口如果发生重叠也需要合并。相邻尺度下在邻近位

置一般会重复检测,这不仅会导致重复检测,而且还有可能带来不必要的错误检测结果。

图2一18给出了一个关于检测结果如何合并的例子:图(a)是同一尺度下多个窗口重

15

基于Adaboost算法的人脸检测研究及实现

西安理工大学硕士学位论文

叠的结果。图(b)是在不同尺度下多个窗口相互重叠的情况,图(c)是最终合并的结果。

(a)同一尺度下窗口重叠(b)不同尺度下的窗口重叠(c)最终合并结果

图2.18人脸窗口合并效果图

Fi92-18resultofcombiningwindows

2.5实验结果与分析

实验选择BioID、MITEx中的1521幅人脸图像和4381幅非人脸图像作为训练样本,

总共5902幅图像,图像大小调整到24X24像素。在配置为Celeron(R)CPU

内存的Pc机上进行实验。2.80GHz,1G

2.5.1训练结果与分析

训练过程中实际使用了83699个haar特征,由于数据量庞大,平均迭代一次需要110

1秒。按照这样的速度得到1000个弱分类器的时间大约是30个小时,2000个大约需要61个小时。因为不知道制作级联分类器需要多少弱分类器,所以训练得到了4000个弱分类

器。但是在实际使用中只使用了1500多个,所以估计训练时间大约为45个小时。

表2.3给出了部分训练过程中得到的最优弱分类器的权重、迭代误差和平均误差。

表2-3训练过程中的参数

迭代次数1

1.7264

0.1510

0.14295100.99740.2695O.1952501000.74020.32300.36122000.73070.32500.19375000.66080。34060.437910000.64050.34510.3383权重迭代误差平均误差1.18450,23420.22540.83300.30300.2503

所谓迭代误差就是使用当前最优弱分类器和样本迭代权值计算得到的误差结果

(2.2.2节);平均误差是使用当前最优弱分类器和样本平均权值(1/5902)计算得到的

误差结果。迭代误差体现了当前最优弱分类器在迭代训练过程中的检测能力,而平均误

差体现了当前最优弱分类器对训练样本的检测能力。这里要强调的是,并不是平均误差

最小就是当前最优弱分类器,而是迭代误差最小才是选择最优弱分类器的标准。

为了能够将权重、迭代误差以及平均误差的变化趋势表现的更好,这里将训练得到

的前1000个弱分类器的涮练参数的高斯拟合益线绘制于图2.19中:

16

基于Adaboost算法的人脸检测研究及实现

2.Adaboost算法的检测原理与实现方法

图2—19训练过程中前1000个弱分类器的参数曲线

Fi醇一19theCWr、/CSoftheformer1000weekclassifiers’parametersinthetrainingprocess

从图中可知在最初的1000次迭代训练过程中所得到的弱分类器的参数情况。根据图

中高斯拟合曲线可以得到以下结论:(1)在训练过程中,单个弱分类器的迭代误差是缓

慢上升的。(2)代权重是逐渐下降的,当渡过最初的快速下降阶段,后续得到的权重下

降逐渐变慢。(3)迭代训练过程中平均误差取值范围很大,通过高斯曲线拟合的结果可

知训练得到的弱分类器的平均误差小于O.5,也就是说每一次训练得到的弱分类器都具有

一定的弱分类能力。

2.5.2检测结果与分析

在检测实验中为了较好的描述级联分类器的性能,这里设计了两个级联分类器A和

B,两个级联分类器各级所含有弱分类器个数如下表所示:

表2-4级联分类器结构

Table2-4theconstructionofthecascadeclassifierAandB

级数

级联分类器A

级联分类器B第l级6第2级19第3级52第4级105第5级240第6级306第7级469第8级580644721036814798130

每个级联分类器中都含有8个强分类器,而且强分类器的性能都是逐级提高的。级

联分类器A中各级强分类器所含弱分类器个数是逐渐增加的,但是在B中并没有遵循这

个原则。表2—5给出了级联分类器A与B的各级强分类器单独对训练样本进行测试的结果。

本文来源:https://www.bwwdw.com/article/pnh1.html

Top