基于AdaBoost的人脸检测算法

2023-07-04 07:42
关键词:人脸特征值分类器

杨 磊

(山西大同大学物理与电子科学学院,山西大同 037009)

人脸检测凭借其在身份验证系统、人机交互系统、公共安全系统识别等方面的巨大应用前景而逐渐成为人工智能领域的一个研究热点。目前,虽然人脸检测技术研究已取得了一定的成果,但是在实际运用中仍存在诸多较为复杂的问题,比如:有些人脸具有遮挡物,如眼镜、围巾等,这些必然会对人脸检测的结果造成一定的干扰;成像角度不同,如正脸、侧颜等;光照角度不同,如光源的方向、角度、强弱等因素均会产生影响;不同算法还存在精确度的差别等。

人脸部信息的处理与分析技术包含人脸检测、人脸识别、人脸定位、身份判断等要素。其中,人脸检测在内容检索,图像处理等领域具有很强的实用价值;人脸检测技术在人机交互、移动支付等方面的应用达到了新的高度。人脸检测技术研究主要分为以下三个部分:

首先是样本的选取,人脸样本的选取是关键,由于像素大小不同、光线强弱差距、背景环境复杂程度均会引起实验误差。同时,训练样本数量庞大,无法及时找出不合格的样本,耗费大量实验时间,所以需要对样本进行筛选。通过在同等采样条件下进行多组头像照片的信息采集,构建满足实验要求的数据库。对采集照片进行裁剪后使其像素为20 × 20,然后进行统一灰度化处理。实验所需的人脸样本数据库如图1所示。

图1 人脸样本数据库

实验所需的非人脸样本数据库如图2所示。

图2 非人脸样本数据库

其次是训练样本,将提前选取好的人脸样本与非人脸样本进行分类标记,并利用MATLAB 软件[1]通过Haar-like 模型积分图[2]转换实现AdaBoost 算法[3]。明确人脸为正样本,非人脸为负样本,利用选择的算法对样本进行训练,通过多次迭代训练,结果会依据权值不同形成强分类器。

最后是检测部分,针对一副目标图片(可以不包含人脸),同样要转化为该图的积分图,然后经过特征值的计算、匹配,会产生一个结果。如果找到人脸,会将图片中的人脸用框子框起来。若没有找到人脸,则返回没有找到。

1 人脸检测技术研究

1.1 人脸检测方法

1.1.1 基于先验知识的检测方法

人脸特征[4]是根据先前经验的积累或人们所达成的共识来指定出一些规范:人脸是具有轮廓的,人的脸部器官分布是具有规律的,鼻子的高度不会超过眼睛,嘴巴的宽度不会长于两眼角之间的距离,人脸器官分布遵循轴对称性。

基于先验知识方法存在人脸检测成功率较低,如果背景区域复杂或者存在与人脸区域十分相似的地方,则一定会导致误检,描述该方法的算法不易设计。

模板匹配的检测方法是需要提前存储一些人脸模板作为统一标准,如图3所示。但其缺点是检测前需要根据待测人物的脸型对模板的轮廓进行修正。一旦检测对象变换了,人脸模板也需要跟着替换,耗费大量的时间和精力。基于模板匹配的人脸检测方法能够和其他方法搭配混合使用从而提高检测率,达到高效、便捷的目的。

图3 模板匹配人脸板块图

1.1.2 基于统计原理的检测方法

随着深度学习方法和人工智能的广泛应用,不论是在高新科技领域还是日常生活中,基于深度神经网络的人脸检测技术已经渐渐成熟。

BΡ 神经网络[5]是含有2 层隐藏层的反向传输结构。包含输入层,输出层,卷积层,激励函数,隐藏层,如图4 所示。理想的激活函数是阶跃函数,阶跃函数具有不连续、不光滑的特点,所以经常用Sigmoid 函数作为激活函数,如图5 所示。则整个网络可以构建出一个数学模型:yi=f(∑iωixi-θj)。

图4 BΡ网络结构

图5 Sigmoid函数

1.2 人脸检测算法

1.2.1 基于直方图粗分割的人脸检测算法

基于直方图粗分割[6]的人脸检测算法是根据人脸统一灰度的特殊模式以及眼、口、鼻的结构分布特点而设计的。具体步骤如下:

第一:利用一维正太分布函数对直方图h(x)进行平滑处理。

(1)构造一维正太分布模板

(2)利用该模板对直方图进行卷积运算

(3)对卷积结果做二次差分运算

(4)求峰值的集合{xi|φ'(x)=0,φ″(x)<0},并令K=|{xi} |,根据φ(x)的结果估算σi,从而算得灰度区间。

第二:定位双眼。

(1)根据每段定位区间(x-3σi,x+3σi),i=0,1,2…k-1,对图像进行分割能得到N种可能值。

(2)根据人眼处灰度平均值与眼四周灰度平均值不同的特点,可以将近似人眼区域选出保存,进行下一步的验证。

第三:根据奇异值特征进行人脸检测验证。

由于人脸样本的特征值与非人脸样本的特征值具有较大差距,所以这是一种很好的评判人脸与非人脸的方法。

1.2.2 基于AdaBoost的人脸检测算法

Viola 和Jones 提出了基于Haar-like 模型积分图计算的AdaBoost 人脸检测算法,将人脸肤色特征与AdaBoost 算法[5]结合,同时囊括了人脸特征的要素,准确定位了人脸的位置。检测效率高以及抗噪性能强是他的较为突触的优点。该方法的具体流程图如图6所示:

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

第一:肤色区域检测。对肤色进行简单处理,可以得到期望的检测结果。

式(4)中的各参量都有确定的值,若满足上式,则认为它是要寻找的点,找到的点标记为1,未找到的点标记为0。

第二:人脸区域分割。由于人脸与人眼的灰度值相差比较大,眼睛的灰度值较低。根据整个人脸的色彩以及亮度区分出人脸的区域。

第三:人脸区域分类。利用AdaBoost 算法在MATLAB 中将人脸和非人脸样本进行积分图的转换,高效计算出特征。最终把弱分类器以不同权值的方式组合在一起形成强分类器。

2 AdaBoost检测算法研究

2.1 ΡAC学习

训练样本的目的是能够生成相应的学习器,从适合的训练样本中获得可靠的学习能力。ΡAC 学习可以衡量学习能力优劣。

2.1.1 ΡAC可学习(ΡAC Learnable)

对0 <ε,σ<1,所有c∈C和分布D,若存在学习算法L,其输出假设h∈H(假设空间)应该满足:

则称L能从H中辨识到C。

令m表示从分布D中独立同分布采样得到的样例数目,0 <ε,σ<1,对所有的分布D,若存在学习算法L和多项函数poly(.,.,.,.),使得对于任何m满足

式(6)表明学习算法L能够从规定样本中得到一个成功的映射,称概念类C是可学习的[7]。满足(式6)中最小的m,称为学习算法L的样本复杂度。

2.1.2 ΡAC模型描述

ΡAC 理论[8]的核心在于如何从虚拟的H空间获得映射h。

如图7 所示,ΡAC 学习时需要规定基本条件,即概念类C、准确度ε、置信度δ以及分布D 和目标概念C。由学习器向样本序列发送请求信号,样本产生器响应,发出样本序列供学习器训练。最终以学习器得到的结果为标准,与准确度,置信度进行比对,若满足条件则为ΡAC可学习。

图7 ΡAC学习模型描述

ΡAC 学习可以允许学习结果出现有错误的存在,只需要满足E(h)≤ε。同时ΡAC 学习也不要求所得结果对于所有的样本都能达到理想的要求,只需要小于置信度δ。

2.2 Haar-like特征

2.2.1 特征计算方法

积分图的运算过程就是用矩形特征的浅色区域所有像素和减去深色区域的像素和,如图8所示。

图8 Haar-like特征

图9 区域积分图

Haar-like 特征的数量是相当庞大的,例如:单一矩形是最常见的Haar-like 模型,单一矩形(0 度倾角)特征的数量为:

式中:W表示宽;H表示长。

式中:X是指特征模板在水平的最大比例;Y表示垂直方向最大的比例。而45度的特征数量为:

其中

2.2.2 积分图

要求点(x,y)的积分图SAT(x,y),即:

式中:I(x,y)表示图像(x,y)位置的像素值。那么积分图的结果可以通过不断地迭代的方式来实现:

可知,特定积分图的获得可以通过计算矩形区域像素的和来实现:

已知矩形窗口D的四个顶点用a、b、c、d来表示,则D的像素和为:

2.3 AdaBoost算法

给定一个训练数据集:

第一步:获得样本权值。

第二步:进行多轮迭代,用m=1,2,…,M表示迭代的第多少轮。

(a)使用Dm的样本学习,可以得到弱分类器:

(b)计算函数Gm(x)的误检率[22]:

可知,样本更新的权值随着误检率的减小而增大,换言之,在强分类器的构成中检测率越高的弱分类器权重越大。

(d)更新训练数据集的权值分布,用于下一轮迭代

分类错误的样本会在下一次训练中权值增大,更容易被选取,而被正确分类样本则相反。从而使得AdaBoost 算法能着力于那些被分类不准确的样本上。

第三步:组合各个弱分类器:

从而得到最终的分类器:

3 实验结果及分析

3.1 人脸检测算法流程

图10中将人脸检测分为训练部分与检测部分。

图10 人脸检测算法流程图

训练部分:将筛选好的人脸样本与非人脸样本分类标记(人脸样本标记为1,非人脸样本标记为0),并在MATLAB 中实现积分图的转换,求取各类Haarlike 模型的特征数目。利用样本特征值,依据所选算法进行弱分类器的训练。最后按照分类水平高则机器权重越高的思想组成强分类器。

检测部分:将要检测人脸的图片输入到程序中,同样的,需要转换为积分并且计算特征值。将结果与人脸样本集输出的结果进行比对。如果在图片中找到人脸,那么程序会将图片中的人脸用方框框起来。若没有找到人脸,则输出无。

3.2 弱分类器的训练

弱分类器训练的目的就是从具有简单能力的机器中获得多个具有优良性能的、可以稍微提高判断能力的机器。

式中:hj(x)就是要训练的弱分类器的结果,如果特征值(fi(x))与偏置位(p)i的乘积小于判断阈值(θ)i与偏置位(pi)的乘积,那么称弱分类器训练有效。其他结果出现,弱分类器均训练无效。pi起到控制不等号方向的作用。

获取性能优良的弱分类器,核心在于判断阈值的设置,而判断阈值的选择来源于特征值的计算,所以说找到快速计算特征值的方式,是训练弱分类器成功关键。

设置以下四个概念:

(1)所有人脸样本的权重之和T+;

(2)所有非人脸样本的权重之和T-;

(3)先前的人脸样本的权重之和S+;

(4)先前的非人脸样本的权重之和S-;

基于上述四个概念,可以求得弱分类器的系统误差函数(平均错误率)如下:

通过对误差函数的比对,挑选出最优秀的弱分类器,组成强分类器。

3.3 强分类器的训练

第一步:定义有N个训练样本(x1,y1),(x2,y2),...,(xn,yn),其中yi表示样本分类。yi=1 为正样本,yi=0 为负样本。

第二步:经过T次迭代,最终算得最佳弱分类器集合hj(x)。第一次运行的步骤:

(1)令初始化权值为wj,k;

(3)求得样本特征值与阈值的偏差,即错误率:

(5)获得的强分类器[28]H(x)结果如下:

3.4 人脸检测实现

将原尺寸的图像按比例缩小,经过Haar-like 特征值提取,积分图的计算求得图片特征值。迭代T次,训练样本获得弱分类器,将弱分类器按照性能优劣组合成强分类器。从而对于一幅随机图片能够检测出人脸,如图11所示。

图11 人脸检测流程图

4 结语

采用AdaBoost 算法和MATLAB 软件平台进行人脸检测。检测过程中需要进行人脸样本和非人脸样本的采集、特征值和积分图的求解、训练强弱分类器等,通过分类器优化训练使其敏感性、检测率有所提高,误检率减低,实验结果能够实现较高检测效率和较快检测速度,应用于智能安防有一定的现实意义。

猜你喜欢
人脸特征值分类器
一类带强制位势的p-Laplace特征值问题
有特点的人脸
单圈图关联矩阵的特征值
三国漫——人脸解锁
BP-GA光照分类器在车道线识别中的应用
加权空-谱与最近邻分类器相结合的高光谱图像分类
结合模糊(C+P)均值聚类和SP-V-支持向量机的TSK分类器
基于商奇异值分解的一类二次特征值反问题
马面部与人脸相似度惊人
长得象人脸的十种动物