基于AdaBoost算法的人脸检测——赵楠 北京大学 下载本文

北京大学本科生毕业论文 图 6 一种人脸检测模板:这个模板由 16 个区域(图中灰色部分)和 23 种区域关系(用箭头表示)组成

由于基于模板的方法比较成熟,因此其实现起来比较简单,但是这个方法对于人脸检测来说,效率并不高。

2.4 基于表象的方法

对比模板匹配,这个方法的模型是从一系列具有代表性脸部表观的训练图像学习而来,再将学习而成的模板用于人脸检测,而不像基于模板的方法,模板是由专家预先定义的,因此这也是一种自下而上的方法。现在许多人脸检测方法都是这种基于表象的方法。

一般而言,基于表象的方法利用统计分析和机器学习的技术来寻找人脸和非人脸图像的有关特性。学习而来的特性总结成分布模型或者判别函数,再利用这些分布模型或者判别函数来检测人脸。一般,为了计算的效率和检测的效益,都会先降低图像的维数。

许多基于表象的方法都可以在概率论的框架中理解。特征向量可以看成是随机变量 x,这个随机变量被分类条件密度函数 p(x | faces) 和 p(x | nonfaces )分别描

述成人脸和非人脸。

基于 AdaBoost 算法的人脸检测 赵楠 14

北京大学本科生毕业论文 图像中备选的人脸或者非人脸位置可以用贝叶斯判决规则(Bayesian classification)或者最大概似法(maximum likelihood)来判别。不幸地,简单地应用贝叶斯判决是不可行的,这是因为:

1. x 是高维的;

2. p(x | faces) 和 p(x | nonfaces )是多态的(multimodal);

3. p(x | faces) 和 p(x | nonfaces )的自然参数化形式(natural parameterized forms)还没有弄清楚。

因此,基于表象的方法中的许多工作都涉及到用经验来验证 p(x | faces) 和

p(x | nonfaces )参数和非参数的近似的问题。

另一种方法利用了人脸和非人脸类的判别函数(比如决策面、分离超平面、 阈函数等):图像图案先被投射到低维或者高维空间,之后使用判别函数来进行分类。

3 经典方法概述

人脸检测的方法多于牛毛,基于各种数学模型的方法估计有近百种。本节简单描述了用于人脸检测的几个经典方法,以便管中窥豹,这几个方法在人脸检测历史上都发挥过各自的作用。

基于 AdaBoost 算法的人脸检测 赵楠 15

北京大学本科生毕业论文 3.1 神经网络 Neural Network

人工神经网络是一种应用类似于大脑神经突触联接的结构进行信息处理的数学模型。在这一模型中,大量的节点(或称 “ 神经元”、“ 单元”)之间相互联接构成网络,即“ 神经网络”,以达到处理信息的目的。

神经网络可以充分逼近任意复杂的非线性关系,采用并行分布处理方法,使 让快速进行大量运算成为可能。神经网络具有自学习功能,在实现图像识别时,只需要先把许多不同的图像样本和对应的识别结果输入人工神经网络,网络就会通过自学习功能,慢慢学会识别类似的图像。

用神经网络进行人脸检测的好处是很容易训练一个用于检测人脸模式的系 统。但是,缺点是网络结构需要大范围的调整(层数、结点数、学习速率等等)才能获得期望的性能。

在使用神经网络的人脸检测方法中,有里程碑式意义的工作由 Rowley 等人最早在 1996 年提出[4]。Rowley 等采用局部连接的神经网络检测人脸。将每个区域划分成多个方形或矩形的子区域以便更好地描述人脸的局部特征,每个区域对应一个神经网络隐含单元。对神经网络在多个分级上的输出进行判决以降低误检率。如图 7。

基于 AdaBoost 算法的人脸检测 赵楠 16

北京大学本科生毕业论文

图 7 Rowley 的带有图像预处理的神经网络系统

3.2 特征脸 Eigenface

最早用特征向量来进行人脸检测的是 Kohonen[5],他构建了一个简单的神经网络来实现规范化了的人脸图像的识别。这个神经网络用图像的自相关矩阵的特征向量近似计算了对人脸的描述。这些特征向量后来就发展成了特征脸方法。

特征脸是基于从主成分分析(PCA)1的一种人脸检测,它根据一组人脸训练样本构造主元子空间,检测时,将测试图像投影到主元子空间上,得到一组投影系数,再和各个己知的人脸图像模式比较,从而得到检测结果。

在传统特征脸的基础上,研究者注意到特征值大的特征人脸向量(特征脸)并不一定分类性能好,而因此发展了多种特征(子空间)选择方法,如

1

主成分分析(PCA, Principal Component Analysis),用于寻找原有的变量之间如何线性组合成为另一组变

量,这组变量数目上少于原来的变量,但保持最多的原来的信息。是最小方差准则下最优的描述方法,它将输入数据的维数从图像空间的象素数减少为特征空间的维数。 基于 AdaBoost 算法的人脸检测 赵楠

17

北京大学本科生毕业论文 Belhumeur 的 FisherFace 方法[6]等。事实上,特征脸方法是一种显式主元分析人脸建模的方法,而一些线性自联想、线性压缩型 BP 网则为隐式的主元分析方法,它们都是把人脸表示为一些向量的加权和,这些向量是训练集叉积阵的主特征向量。特征脸方法是一种简单、快速、实用的基于变换系数特征的算法,但由于它在本质上依赖于训练集和测试集图像的灰度相关性,所以还有着很大的局限性。

3.3 基于样本学习方法 Example-Based Methods

MIT 的 Sung 和 Poggio 等提出了基于样本学习的方法[7]。

他们采用 k-均值聚类方法在特征空间中建立 6 个“ 人脸” 簇和包围“ 人脸” 簇的 6 个“ 非人脸” 簇,以使“ 人脸” 模式与“ 非人脸” 模式的边界更为清晰,如图 8。算法根据样本到各个簇中心的距离来训练一个多层感知器进行分类,用来实现人脸检测。

值得强调的是,为了解决人脸检测中“ 非人脸” 样本的选取问题,Sung 等人使用了“ 自举(bootstrap)” 方法:首先建立一个仅使用“ 人脸” 样本和少量 “ 非人脸” 样本训练的初始分类器对一组图像进行检测,把所有非人脸被错检为人脸的图像加入“ 非人脸” 样本库;然后使用得到的“ 人脸” 和“ 非人脸” 样本训练构造新的分类器重新进行检测。以上过程不断循环,直到收集了足够的“ 非人脸” 样本。这种非人脸的收集方法后来被许多研究者使用。

基于 AdaBoost 算法的人脸检测 赵楠 18