APP下载

基于“大T”型区域的AdaBoost人脸检测算法

2017-11-02李晶惠叶学义夏胡云叶枫

软件导刊 2017年10期
关键词:人脸检测

李晶惠++叶学义++夏胡云++叶枫

摘要:针对AdaBoost人脸检测算法分类器训练时Haar特征数目过多,导致训练过程过于耗时的问题,提出了一种基于“大T”型区域的AdaBoost人脸检测算法。通过提取500张人脸样本中的主要特征区域,投影到20×20的模板中,对重叠区域取其并集求得“大T”型特征筛选区域,以此模板优化Haar特征,使用于分类器训练的Haar特征集中于人脸面部的关键区域。实验结果表明,在LFW、PKU数据库中进行人脸检测,在不降低原始AdaBoost算法检测率的同时,对PKU数据库中的多人脸检测算法的漏检率有所改善,同时优化了算法训练时间。

关键词:人脸检测;AdaBoost算法;Haar特征;“大T”型特征筛选模板

DOIDOI:10.11907/rjdk.171551

中图分类号:TP312文献标识码:A文章编号:16727800(2017)010002205

0引言

AdaBoost算法最初由Freund等[1]提出,其关键思想是针对同一个训练集训练多个弱分类器,最后将这些弱分类器集成起来构成最终的强分类器。人脸检测是自动人脸识别系统中一个关键环节[2],它是指采用一定的策略对任意给定的图片或视频进行搜索,从而判断其中是否存在人脸,如果存在则定位出每个人脸的位置、大小以及姿态的过程。Viola 等[3]提出的AdaBoost人脸检测算法,在提高人脸识别准确率的同时,极大加快了检测速度。人脸的特征选取对于人脸检测精度起着重要作用[4],基于AdaBoost的人脸检测算法通常采用Haar特征来表示人脸的灰度变化,由于训练时Haar特征数目巨大导致训练过程过于耗时,而实际构成人脸检测分类器的Haar特征仅有几千个。因此,有必要对Haar矩形特征进行优化筛选以提升算法的整体训练速率。

针对Haar特征数目过多问题,文献[5]介绍了两种常用的优化Haar特征数目方法:①采用限制最小Haar特征尺寸大小并调整Haar特征的偏移量方式,优化训练时Haar矩形特征个数。该方法虽然可以有效减少Haar矩形特征数量,但同时也会漏掉一些分类效果较好的矩形特征,因此会影响训练生成的分类器检测率;②通过限制Haar矩形特征在检测窗口中的遍历范围优化Haar特征的数目,但采用这种方式会漏掉部分有效的人脸边缘特征,同时矩形区域内也包含了部分脸狭部位等分类特征不太明显的区域。介于此,本文提出基于“大T”型区域的AdaBoost人脸检测算法,通过采用“大T”型区域对所有Haar特征進行筛选,使得用于训练的Haar特征集中于人脸面部的关键区域,降低了训练时Haar特征数目,加快了分类器的训练速度。实验结果表明,采用 “大T”型区域筛选后的Haar矩形特征训练生成的分类器,在LFW、PKU数据库中进行人脸检测时,在不降低原始AdaBoost算法检测率的同时,能改善PKU数据库中的多人脸检测算法漏检率,同时优化了算法的训练时间。

1AdaBoost人脸检测算法

1.1AdaBoost算法概述

基于AdaBoost算法的人脸检测由Paul Viola和Michael Jones于2001年提出,通过从正负样本中提取大量不同的Haar特征,并采用“积分图”的计算方式求得对应的特征值,对特征值遍历找出分类错误率最低的特征值即对应的最优弱分类器,然后将训练样本进行多次学习,求出一系列最优弱分类器线性组合成强分类器,最后将强分类器按照一定的规则组合成一个更加复杂的级联分类器,并采用该级联分类器进行人脸检测。训练时若某个样本被正确分类,则在下一次训练中该样本的权重就会降低,相反分类错误的样本在下一次训练中样本权重就会增加。在不断的循环中,弱分类器将其注意力集中至权重较大的分类器,根据检测率和误检率要求,将简单的弱分类器按照权重叠加成强分类器,并将强分类器级联起来生成最需要的分类器[6],AdaBoost算法正是通过这种动态调整方式使训练生成的分类器更加关注于那些错分的样本。在进行人脸检测时采用级联分类器可快速排除图像中明显不是人脸的背景区域,进而在有可能存在人脸的区域更精细地检测。

1.2Haar矩形特征

Viola构建的人脸检测分类器采用Haar矩形特征训练弱分类器,该特征是计算机视觉领域一种常用的特征描述算子,能较好地体现人脸的局部特征的灰度变化[7]。Haar矩形特征是由两个或多个形状大小相同的矩形组合而成,并采用黑白矩形块反映人脸灰度变化差异。Haar矩形特征结构简单,计算方便。利用该特征训练生成的分类器,分类性能往往仅比随机猜想的正确率略高,在实际应用中难以起到较好的分类效果,属于典型的弱分类器。本文选择Viola提出的5种常用矩形特征原型进行实验,具体的Haar特征原型如图1所示。

Haar矩形特征可以在检测窗口中以“任意”尺寸放置,每一种形态表示不同的特征,准确计算检测窗口中矩形特征的个数是弱分类器训练的基础,以大小为W*H像素的检测窗口为例:令X=W/w」,Y=H/h」,其中.」表示取整操作,W和H分别表示检测窗口的宽度和高度,w和h分别表示Haar矩形特征的宽度和高度,t和ht(x)分别表示检测窗口横向和纵向可放大的倍数。因此一个大小为w×h的矩形特征在检测窗口为W×H中的特征个数由公式(1)计算求得:

X×Y×W+1-wX+12×H+1-hY+12(1)

采用公式(1)计算出每个Haar特征原型在检测窗口中的特征个数,本文选用5种Haar特征原型在检测窗口大小为20×20的情况下,矩形特征总数超过7万个,而AdaBoost人脸检测级联分类器所用的Haar矩形特征数目远少于训练特征个数。因此有必要对大量的Haar特征进行筛选,选出关键区域的Haar特征进行分类器训练,提升算法的训练速率。

2训练特征优化endprint

2.1分类器构成分析

由于Haar矩形特征结构简单,应用于人脸检测时,可以根据人脸面部的灰度分布特点选择不同的矩形特征原型,理论上影响训练时间的主要是训练样本数目和参与训练的特征数目,为了使训练出的分类器具有很好的泛化能力,训练样本数目不能太少,因此只能通过减少训练特征的数量来达到减少训练时间的目的[5]。AdaBoost算法是一种有效的特征选择算法,通过从大量的特征中提取出对人脸检测真正有用的特征,并从众多特征中选择最有效的弱分类器形成强分类器[8]。人脸的主要特征集中于面部中央位置,因此仅选择该区域内的Haar特征训练分类器以减少特征训练的数目,进而起到优化训练时间的目的。

根据人脸检测的先验知识,人脸图像有一些明显的基本特征,如脸部区域通常包括双眼、鼻子和嘴巴等脸部特征和这些部位的结构关系[9],是生物特征识别的重要依据。对于人脸的检测即对图像中包含人脸面部的这些关键部位的检测。AdaBoost人脸检测算法通常采用Haar矩形特征训练弱分类器,本文通过实验对训练生成的分类器进行分析发现,矩形特征集中分布于人脸面部的关键位置,图2给出部分弱分类器对应的Haar矩形特征与人脸样本的匹配关系,由此提出采用包含人脸面部关键部位的Haar矩形特征来训练AdaBoost人脸检测分类器。

2.2“大T”型Haar特征筛选方法

由人脸检测的先验知识可知,正面人脸的面部器官分布结构是相对固定的,且人脸样本中的双眼、鼻子和嘴巴的几何分布近似位于一个“大T”型区域内。该区域涵盖了人脸面部特征的主要区域,根据图2分类器构造分析可知,弱分类器对应的Haar矩形特征几乎全部涵盖了该区域,因此本文提出采用“大T”型区域来筛选Haar矩形特征,并选择筛选后的矩形特征来训练AdaBoost级联分类器。

本文主要针对正面人脸进行检测,因此训练样本集中人脸样本的选择主要包括正面人脸和旋转角度小于45°的人脸图片。图3是在人脸样本中标记出对应的“大T”型区域示意图,由于部分样本中人脸的旋转角度问题,例如图3(c)和图3(d)中的“大T”型区域略靠近图像的边缘部分,因此有必要对 “大T”型区域进行规范,使采用该区域构建的特征筛选模板可以有效地对Haar特征进行筛选。本文通过从训练样本中抽取500张人脸图片来构建特征筛选模板,具体模板构建方法为:首先标记出每个人脸样本中 “大T”型区域,然后分别将样本中的标记区域投影到一个20×20的模板,最后对投影区域的重叠部分求取并集,得到最终的“大T”型区域筛选模板。图4为本文采用上述方法构建的20×20大小的“大T”型Haar特征筛选模板,且经过多次实验验证当“大T”型模板与检测窗口边缘的間隔像素值为图中所示的数字时,检测效果最好。将得到的“大T”型特征筛选模板用于训练特征筛选,筛选过程如下:①求出5种矩形特征原型在20×20大小的检测窗口中所有Haar矩形特征;②利用上述方法构建一个“大T”型特征筛选模板,并设定模板中表示人脸面部特征的关键区域值为1,其它区域值为0 ;③分别将上述Haar矩形特征平铺于“大T”型特征筛选模板,若Haar特征的最外层矩形区域内所有像素值的和大于或等于该矩形区域面积的一半,则保留该特征用于分类器训练,反之则抛弃该特征;④将上述筛选后剩余的Haar特征作为AdaBoost人脸检测的训练特征。

通过 “大T”型区域对所有的Haar矩形特征进行筛选,使用于分类器训练的Haar矩形特征集中于人脸面部的关键区域,通过滤去非关键区域的Haar特征,有效降低训练特征的数量。表1给出了在20×20的检测窗口中,对5种Haar特征原型采用“大T”型区域筛选后对应的Haar矩形特征数量。

由表1可知,经过“大T”型区域样本筛选后,剩下的Haar特征数量为57 120个,相对于优化之前的矩形特征数量减少了近2万个,优化后的Haar矩形特征更集中于人脸面部的关键区域,对于人脸面部的灰度分布特征表征能力更好。根据以往的分类器训练经验[10],对于Haar矩形特征中宽度或高度等于1的矩形特征用于人脸检测时,随机性太大,不适合用作人脸检测分类器,因此再排除掉矩形特征中宽度或高度等于1个像素的Haar矩形特征,剩余的特征总数为45 768个。由于“大T”型筛选模板可以有效提取人脸面部主要区域的Haar特征,因此对不同的训练样本库,“大T”型特征筛选模板同样有效,且只针对于AdaBoost人脸检测算法的分类器训练过程。综上所述,本文选择上述筛选方法得到的矩形特征训练人脸检测分类器。

3实验结果与分析

选取5500张来自CASPEAL数据库[11]和1 500张来自LFW数据库[12]的人脸图,根据数据库中人脸坐标信息截出图像中的人脸区域,归一化为20×20大小的图片,构成训练人脸样本集。LFW数据库中的图像为自然环境下拍摄的人脸图,因此图像中包含的人脸具有一定的旋转角度,且各人脸图像之间的面部变化不一;CASPEAL人脸库涵盖了姿态、表情、装饰、光照、背景、距离和时间等特征变化,本文从中挑选出全部正面人脸,佩戴眼镜、帽子等饰物,以及人脸图像在水平或垂直方向旋转角度小于45°的人脸图像,用于增强分类器对正面人脸、多表情姿态以及佩戴饰物的人脸检测性能。负样本的选择来自于网络中不包含人脸的20 000张图像,训练时通过“自举”方式生成与正样本同样大小尺寸,实验所选的部分训练样本如图5所示。

3.1单人脸检测

通过采用“大T”型模板来筛选Haar特征,从而使得用于训练的Haar特征集中于人脸面部的关键区域,同时降低了训练特征数目,提升了算法的训练速率。为了验证由本文方法训练求得的分类器对人脸检测分类器性能的影响,设计了如下实验内容。

首先验证采用“大T”型区域优化后的Haar特征对于训练样本的分类效果。归一化的样本集中随机选取5 500张人脸图片和18 500张背景图片构成AdaBoost算法训练集,剩余的1 500张人脸图片和1 500张背景图片构成测试集。分别采用原Haar矩形特征以及本文Haar矩形特征训练一个AdaBoost人脸检测分类器。图6是采用每次迭代生成的强分类器分别对测试集中的样本进行分类时的误检率对比试验结果。endprint

由实验结果可知,对上述测试集中的人脸样本进行分类,由本文Haar矩形特征训练生成的人脸检测分类器的误检率基本接近于原Haar矩形特征训练生成的分类器,只是由前几轮迭代求出的强分类器误检率曲线波动较大,但经过对训练样本近20次的学习后,误检率曲线基本与原Haar矩形特征相吻合。因此,本文的改进方法对AdaBoost算法[2]的误检率影响较小。

3.2视频人脸检测

在归一化后的样本集中选择全部的人脸样本和非人脸样本构成训练样本集,然后采用原Haar矩形特征、文献[5]限制检测窗口的方法求得训练特征,以及本文“大T”型模板筛选得到的Haar特征,分别训练生成15层级联分类器用于人脸检测。实验选择了LFW数据库中和PKUSVDB数据库[13]的视频图像作为本文人脸检测测试集,用来验证本文方法检测效果。

选择LFW数据库中剩余的1000张大小为250×250视频图像进行单人脸图像检测性能验证,表2是对应的实验结果,图7为部分实验检测结果。

由表2可知,对LFW数据库中的单个人脸图像进行检测时,本文的改进方法在检测率方面要略高于文献[5]中的方法,基本接近原矩形特征的检测效果。

多人脸的视频检测采用PKUSVDB数据库,该数据库是北京大学视频编解码技术国家工程实验室联合北京大学保卫部提供的,通过对连续400帧大小为1 920*1 080视频图像共879个正面人脸进行检测,得出表3的实验结果,部分实验结果如图8所示。

在进行多人脸视频检测时,由于人脸表情复杂、姿态各异,以及背景图像中近似人脸区域的干扰,导致AdaBoost人脸检测的检测率有所降低。由表3实验对比结果可知,本文方法不管是在检测率还是漏检率方面均优于文献[5]中的改进方法,而且基本与原矩形特征分类器的检测效果接近,同时降低了人脸检测的漏检率。上述实验结果中本文改进方法误检率略高的原因是,由于训练特征集中于人脸面部的关键区域即“大T”型区域内,因此训练求得的分类器对于近似于人脸区域的识别率较高,可能会把一些近似人脸的背景区域误检为人脸。

本文的改进算法使用于训练的Haar特征更集中于人脸面部的关键区域,从而降低了训练特征的数目,使得AdaBoost人脸检测分类器的训练速度明显提升,表4是在同等条件下分类器训练时间对比结果。

由表4数据可知,本文的改进方法可以较好地优化AdaBoost人脸检测分类器的训练时间。对于训练一个识别率为0.995的强分类器时,本文方法所需平均时间为1 182.72s,而采用原矩形特征所需训练时间为1 759.24s,限制检测窗口[5]的方法为1 395.26s,同时对于训练15级的人脸检测分类器时,采用“大T”型区域优化后的Haar特征所需的训练时长约为19.2小时,比原始的AdaBoost算法缩短了近11个小时。由此可知,基于“大T”型区域的Haar特征筛选方法在不降低AdaBoost算法检测效率的同时优化了训练时间,因此本文方法对于AdaBoost算法人脸检测分类器训练性能的提高具有一定效果。

4结语

针对AdaBoost人脸检测算法在分类器训练时Haar特征数目过多,导致训练过程极其耗时的问题,本文提出了基于“大T”型区域的AdaBoost人脸检测算法。通过对AdaBoost人脸检测分类器的构成进行分析,弱分类器对应的Haar特征主要集中于人脸面部的关键区域,将该区域作为人脸检测识别的依据。通过选取500个人脸样本,提取其面部关键区域投影到20×20大小的模板中,对重叠区域取其并集求得“大T”型特征筛选模板,以此模板优化Haar特征,使得用于分类器训练的Haar特征集中于人脸面部的关键区域,最后采用筛选后剩余的Haar特征来训练人脸检测分类器。“大T”型筛选模板只限于AdaBoost算法训练时训练特征的优化,与不同的训练样本库无关。实验结果表明,采用“大T”型区域对Haar特征进行筛选,不仅降低了训练特征的数目,还起到了优化训练时间的目的。在LFW、PKUSVDB数据库中的检测结果表明,本文的改进方法在不降低AdaBoost算法检测率的同时,对PKU数据库中的多人脸检测算法的漏检率有所改善,对AdaBoost人脸检测分类器的训练性能提高有一定的作用。

致谢

感谢北京大学视频编解码技术国家工程實验室提供的PKUSVDB数据库和中科院计算技术研究所提供的CASPEAL人脸数据库。

参考文献:

[1]许剑,张洪伟.AdaBoost算法分类器设计及其应用[J].四川理工学院学报:自然科学版,2014(1):2831.

[2]刘王胜,冯瑞.一种基于AdaBoost的人脸检测算法[J].计算机工程与应用,2016(11):209214.

[3]曹莹,苗启广,刘家辰,等.AdaBoost算法研究进展与展望[J].自动化学报,2013(6):745758.

[4]张君昌,张译.基于改进AdaBoost算法的人脸检测[J].计算机仿真,2011,28(7):240244.

[5]徐信.基于Adaboost人脸检测算法的研究及实现[D].太原:太原理工大学,2015.

[6]甘玲,朱江,苗东.扩展Haar特征检测人眼的方法[J].电子科技大学学报,2010,39(2):247250.

[7]钟锐,吴怀宇,吴若鸿.基于强跟踪Kalman滤波的鲁棒人脸跟踪算法[J].计算机工程与设计,2016,37(2):475480.

[8]王庆伟,应自炉.一种基于HaarLike T特征的人脸检测算法[J].模式识别与人工智能,2015,28(1):3541.

[9]韩玉峰,施铜兴,王小林.脸部特征点定位方法综述[J].计算机工程与应用,2012(1):180218.

[10]刘侠,李苏,李廷军.一种改进的Adaboost算法的人脸检测分类器[J].空军工程大学学报:自然科学版, 2009, 10(2):7680.

[11]GAO W, CAO B, et al. The CASPEAL largescale Chinese face database and baseline evaluations[J]. IEEE Transactions on Systems, Man and Cybernetics, Part A: Systems and Humans, 2008,38(1):149161.

[12]HUANG G B, RAMESH M, BERG T, et al. Labeled faces in the wild: a database for studying face recognition in unconstrained environments[D]. Massachusetts, USA: Amherst College, 2007:949.

[13]PKU SVD B. Database [EB/OL].http://www.smartcitycompetition.com

责任编辑(责任编辑:杜能钢)endprint

猜你喜欢

人脸检测
肤色与唇色信息相结合的人脸检测
基于人脸特征定位的SNS网站应用组件研究与设计