基于adaboost人脸检测算法的分析研究

  • 格式:pdf
  • 大小:3.70 MB
  • 文档页数:5

收稿日期:2019-10-21基金项目:国家自然科学基金(项目编号:11603004)、北京自然科学基金(项目编号:1173010)、北京市教育委员会项目(项目编号:KM20171001500)、北京印刷学院师资队伍建设项目(项目编号:27170118003/006)。第28卷 第1期Vol.28 No.1北京印刷学院学报JournalofBeijingInstituteofGraphicCommunication2020年1月Jan.2020

基于AdaBoost人脸检测算法的分析研究

李 佩,汪红娟,李业丽,刘梦阳(北京印刷学院信息工程学院,北京106200)

摘 要:基于AdaBoost的人脸检测算法在人脸检测的领域里有着十分重要的地位,它是基于对boosting算法的优化而被提出来的,不同之处在于它可以根据前一次的样本训练结果来决定样本在下一次训练中的权重。在该算法中,研究主要针对Haar-like特征方面,另外该算法与积分图有着密切关系。通过Haar-like提取图像中的人像特征,然后采用积分图计算出特征值,最后利用加权投票方式筛选出弱分类器和强分类器,从而完美的提升了分类器的检测速度和正确率。这种算法具有泛化错误率低,无需参数调整及高稳定性的特点。关键词:AdaBoost人脸检测算法;Haar-like特征;积分图;分类器中图分类号:TP391文献标志码:A文章编号:1004-8626(2020)01-0128-05

近几年来,计算机技术的研究在海关检查、安

防、安全出入口控制、军警安全等方面的应用需求

开始迅猛增长。用户对识别的速度和精度的要求

越来越高,对科学家们来说人脸识别就成为了最具

发展意义的生态学身份验证手段。而且随着生物

测定技术在各行业中越来越受到人们的重视,人们

对机器设备所要具备的功能的要求也变得越来越

高,这就意味着要求机器具备能够像人类的感觉器

官一样感知外界的能力。其中,在计算机视觉领域

内,人脸识别技术的非接触型认证、直接、友好、方

便等特点,使人脸检测技术研究得到了广泛的研究

与开发,成为研究的热点问题。在当前人脸检测的

研究中主要遇到的问题就是:如何在人脸多样性的

情况下,创建出精确度高的人脸检测分布模型;如

何在复杂背景中准确保留人脸区域;如何在人脸多

样性情况下提高系统的识别率。

人脸作为一个复杂的结构,脸部的细节千变万

化,由于检测对象的肤色、状态、外貌、形态、服装、

种族以及环境等的不同,对检测的清晰度和精准度

都有着不同的影响。目前关于对图像或图像序列

进行的人脸检测的方法一般分为以下四种:基于知

识的方法(knowledge-basedMethods)、基于特征不

变的方法(FeatureInvariantApproaches)、基于模块

匹配的方法(TemplateMatchingMethods)、基于外

观的方法(Appearance-basedMethods),本文所述的基于AdaBoost的人脸检测算法就是属于所列的第

二类———基于特征不变的方法,该算法在检测速

度、准确度等方面具有一定的优势。

1 基本算法综述

1.1 AdaBoost算法原理AdaBoost是由英文“AdaptiveBoosting”翻译而

来的,是基于boosting的优化而被提出来的,不同

在于它可以根据前一次的样本训练结果来决定样

本在下一次训练中的权重[1],它具有自适应的特

点。Adaboost算法运用离线学习的分类器进行人

脸检测,基于Harr矩形特征积分图进行级联检

测,算法计算效率高,检测速度快[2-3]。Viola-

Jones[4]算法就是在利用Haar-like特征和AdaBoost

算法分类器的基础上实现的一种人脸检测算法。

具体来说,AdaBoost迭代算法的流程如下:①初始化数据权值分布。将所有样本都先赋

予同样的权值:1N

D1=(w11,w12,…,w1i,…,w1N)(1)

其中:w1i=1N,i=1,2,…,N

②训练弱分类器。设m=1,2,…,M来代表迭

代的第几轮

培训和学习用数据集与一个正确的价值Dm

,培训获得一个弱分类器。Gm(x):x→{-1,+1}(2)

计算Gm(x)训练集的分类误差率

em=P(Gm(xi)≠yi)=∑N

i=1wmiI(Gm(xi)≠yi)

(3)

其中误差率em是em被Gm(x)的误分类样本

的权值之和

计算Gm(x)的系数

αm=12ln1-emem(4)

其中αm代表它代表了Gm(x)在最终分类器中

的重要性。,从公式可以看em≤12时,αm≥0,αm随

着em的减小而增大。

更新训练集权值分布进行下一轮的迭代。Dm+1=(wm+1,1,wm+1,2,wm+1,i,wm+1,N)(5)

其中wm+1,i=wmizmexp(-αmyiGm(Xi)),i=1,2,

…,N。正是归一化因子zm使Dm+1成为概率分布。

Zm=∑N

i=1wmiexp(-αmyiGm(Xi))(6)

③强分类器由弱分类器组成。

组合弱分类器:

f(x)=∑N

i=1αmGm(x)(7)

最终分类器(强分类器):

G(x)=sign(f(x))=sign(∑N

i=1αmGm(x))(8)

1.2 算法基本流程(图1)

图1 算法基本流程 2 实现细节

2.1 Haar-like特征

Haar-like特征[5]是一种特征描述算子,人们

通常采用基于特征的方法来进行人脸描述,其原因是因为它的运行速度很快,可以满足实时检测的需

求,它是最早用于人脸描述的。Harr特征分为边

缘特征、中心特征和对角线特征、线性特征,它们综

合成了特征模板。模板由黑白矩形组成,定义白色

矩形像素之和减去黑色矩形像素之和为模板的特

征值。能够粗略体现出人脸面部五官的大体特点,

如图2所示:

图2 四种基本Haar-like特征 虽然上述提到的四种矩形特征能够很好的描

述出人脸的面部特征,但是在实际的生活中人脸不

可能总是以完全正面的情况出现的。在很多时候

都会出现一些角度倾斜的,当人脸出现了角度倾斜

的情况时,这种垂直的特征就不好判断人脸的情况

了。因此,在经过研究者们不断地研究训练,由Lienhart[5]等人提出了以下几种扩展矩形特征,如

图3所示:

图3 扩展矩形特征 所有的矩形特征都可以用r=(x,y,w,h,α)这921第1期李 佩,汪红娟,李业丽,等:基于AdaBoost人脸检测算法的分析研究个五元组来表示,其中x,y为坐标轴的基坐标,w

表示该矩形特征的宽,h则为高,而α是旋转的

角度。2.2 积分图

其实积分图与haar-like并没有什么关系,两者

是完全独立的两个概念,在人脸检测研究的过程

中,将它们连接在一起的是《Rapidobjectdetection

usingaboostedcascadeofsimplefeatures》[6]的文

章。Haar-like特征检测人脸的方法在识别时,每

次都需要扫描大量的窗口来计算相对于的图像特

征值,这给计算系统带来很多负担,从而极大降低

了训练和检测速度,而通过研究发现,使用积分图

方法可以更快计算Haar特征。

一个简单的类比:将积分图看作一种动态规划

的方法,就是将图像从开始到每个点所形成的矩形

的像素都存在一个数组里面,而当我们需要用到某

一个数值时,我们就调用这个数组,而这个数组在

这里是一个全局信息。这样积分图就不需要遍历

所有的数值,只需要按行或列遍历一遍就可以得到

全局信息,从而提高了计算图像特征值的速度。

遍历一次就能得到的函数信息:

g(u,v)=∑u

i=0∑v

j=0f(i,j)(9)

其中(u,V)表示原图中(u,V)左上方的所有

像素之和。通过借助积分图,矩形区域的像素之和

的计算就可以很快完成了,如图4所示:

图4 矩形像素区域 Sum=g(x4,y4)-g(x2,y2)-

g(x3,y3)+g(x1,y1)(10)

2.3 弱分类器

对于确定了的矩形特征数量和特征值后,对每

一个特征f,都需要训练一个弱分类器h(x,f,p,θ)

h(x,f,p,θ)1pf(x)

0其他{(11)

e=min(S++(T--S-),S-+(T+-S+))

(12)

在AdaBoost的弱分类器中,弱分类器的二叉

树的结构大体如下,在这里我设F1,F2,F3用来对输入的图像进行判读,图像是否含有人脸,如图5

所示:

图5 决策树的结构图 2.4 最终分类器

弱分类器就是经过多次迭代后,得到强分类

器,将得到的弱分类器以如下的方式加入到当前强

分类器中

G(x)=sign(f(x))=sign(∑N

i=1∝mGm(x))

(13)

一般情况下,单个强分类器在实际应用中并不

能解决一些复杂的分类问题。为了到达体验中者

的高需求,常用级联的强分类器来解决问题。通过

对多个强分类器从简单分类到复杂分类器进行排

序,得到了级联分类器,级联分类器的检测过程如

图6所示:

图6 级联分类器的检测过程 031北京印刷学院学报2020年3 实验过程及结果分析

通过对图像样本的训练,得到多个弱分类

器,再将弱分类器进行迭代得到强分类器,对强

分类器进行级联得到最终分类器(如图7所示),

利用相关分类器对人脸的五官特征进行处理检

测(如图8所示)。

图7 相关分类器 

图8 人脸检测方法的基本特征规则 

图9 传统检测算法 从图9我们可以看到,对于静态的图像,传统的人脸检测算法虽然可以较好地检测出人脸,但是会存在漏检的情况,而图10就是利用优化后的AdaBoost人脸检测算法进行检测,使用该算法极大

提高了检测率。从图11~图13可见,优化后的AdaBoost

算法图10 优化后的AdaBoost检测算法 

图11 动态的视频中的人脸检测效果 

图12 传统算法的检测结果 可以更好地从动态视频图像中准确检测出人脸图

像。对于算法的改进主要还是要在对分类器的训131第1期李 佩,汪红娟,李业丽,等:基于AdaBoost人脸检测算法的分析研究