1. 引言
人脸识别技术是利用计算机分析人脸图像从中获取有效的识别信息用于辨认身份的一门技术。它是利用人类特有的生物特征的识别技术,可以有效避免传统身份认证技术的缺点,且具有大多数其他方法无法媲美的优点。而人脸识别技术由于较高的实用性、易用性等特点,是目前主流的研究方向之一。但从人脸识别的应用方面来说,在面临复杂环境时仍然存在很大的问题。它的难点主要包括:人脸外形变化大,如由年龄或表情导致人脸产生变化;外界环境的干扰,如不同强度下的光照以及脸部的遮挡物;人脸识别算法的速度、准确性的要求也极高。针对以上问题,本文通过采用Adaboost与肤色分割相结合的人脸检测 [1] 算法以及LDA算法 [2] 来提高人脸识别的速度与准确性。
2. 人脸检测
人脸检测部分采用Adaboost算法和肤色模型方法相结合。这两种方法处理图像的速度都非常快。
2.1. Adaboost算法
Adaboost算法是Freund Schapire在1992年提出的,是一种迭代的、非常重要的机器学习方法。在此基础上,Viola和Jones提出了一种改进的机器学习方法 [3] ,该方法可以非常有效地处理图像,实现高的视觉目标检测率。对于分离人脸特征,Adaboost检测器采用Lienhart、Maydt5和Lienhart等人提出的一组扩展的haar样特征,每个特征由2~3个矩形组成,用于检测边缘特征、中心环绕特征和线特征 [4]。图1显示了一组类似haar的特性。
对于24 × 24的人脸图像,在图像上进行各种操作而来的Haar特征总数远远大于该窗口的像素点个数。因此人脸特征总数需要大量的计算。
为了减少计算量,Viola等人引入了积分图的思想 [5]。积分图的原理如下:图像中的像素点的积分图像为:
(1)
其中
表示图像中
处的像素点的灰度值,
为从原点到
的积分图像。如图2,区域D的像素值,可以利用上述积分图规则计算得到。
利用特征集和正、负图像训练集,采用Adaboost算法对强分类进行训练,建立了分类级联,提高了

Figure 2. Value diagram of integral graph
图2. 积分图值示意图
检测性能,同时降低了计算时间。主要程序如下所述。
1) 定义初始样本集
,其中
表示样本集中第i个样本的类别,
表示这个样本为非人脸样本,
表示这个样本为人脸样本。n为总的样本数量。
2) 初始各样本的权值分布:对于非人脸样本:
(2)
m为非人脸样本个数。
对于人脸样本:
(3)
i为人脸样本个数,
为第t次循环中第i个样本的误差权值。
3) 对于
:
第t轮中,对当前的样本分布进行权值归一化:
(4)
对于每个特征f,训练学习得到一个基本分类器
;计算对应所有特征的基本分类器的加权(
)错误率
:
(5)
按照最佳弱分类器,更新样本集的权值分布,增大被错误分类的样本的权值,让这个样本在下一轮中受到更大的关注;减小被正确分类的样本的权值,在下一轮中受到更小的关注。
4) 最后的强分类器为:
(6)
以上过程简单的说就是:对当前轮中被正确分类的一部分样本,削弱它的权值,从而使其在下一轮中的重要性减小;对于分类错误的那一部本,则提高它的权值,增大其在下一轮中的重要性。通过使样本中权值的改变,使得在不同的学习训练中同一样本起不同的作用。这样,后面训练主要就是增强对样本错误的那部分进行训练。
2.2. 肤色模型
人类的肤色已经被使用,并已被证明是一个有效的特征在人脸检测。7、8个颜色空间被用来标记像素为皮肤,其中最快捷、效率最高的是YCrCb模型 [6] ,Cr和Cb值被定义为肤色像素。光照的变化对YCrCb模型影响不大,Cr和Cb测量的皮肤颜色像素分布非常紧凑。对像素进行分类有两种方法。
一种是通过统计数据的方式来建造高斯密度模型,另一种是对像素进行简单的分类,假如某个值落在由实验确定的为皮肤色调的范围之内,就提取出来。
肤色分割是在通过颜色空间转换得到的颜色分量图像上进行的。基于YCrCb颜色空间的Cr、Cb两个分量进行肤色分割 [7]。这样做有许多好处:首先它去除了包含亮度信息的y分量;其次它只包含两个分量,可以提高计算速度;再次,从RGB颜色空间与CbCr颜色空间之间的转换非常的快速,只需线性变换一下。
在建立了CbCr颜色空间,就能够将它运用于肤色检测。检测的首要步骤就是将待检测图片的像素全部计算出来,如果他们的Cb、Cr值满足
(7)
就认为这个像素为肤色像素,其它的就被当作是非肤色像素。通过分割处理就能把肤色和背景分离开来。这样就能过快速的将背景部分去除掉,从而减少AdaBoost算法的检测范围,极大的减少了AdaBoost算法的错误率。
2.3. 算法效果分析
对于基于肤色分割算法来说,其优点是算法简单、速度快;缺点则是在检测率低。对于基于Adaboost人脸检测算法而言,其优点是对于人脸区域的准确性高;缺点是运算量大。因此,本文采用肤色分割与Adaboost相结合的方式进行人脸检测,来增强检测速度以及检测率。算法流程如下:
1) 利用肤色分割算法确定人脸的大致范围。
2) 基于Adaboost算法对于人脸区域鉴别精度高的优点,在第一步的基础上进行Adaboost人脸检测。结果如表1所示。

Table 1. Compares the three algorithms
表1. 三种算法对比图
由此可见,本文采用的人脸检测联合算法不但能够降低误检率,还能的明显的提升运算速度,是一种高效实用的算法。
3. 人脸识别
3.1. 基于LDA的人脸识别算法
目前,人脸识别的方法很多,并且不断有新的研究成果出现。本文主要使用基于LDA的人脸识别方法,它的核心理念是:将原有数据进行整体降维映射到低维空间的方法 [8]。使用这种方法能够使投影后模式样本的类间散布矩阵最大,并且同时类内散布矩阵最小。由于Fisher判别函数 [9] 只能局限于两种样本的分类问题,而人脸识别技术往往要使用多个对象作为样本,是一个多类的分类问题,所以Fisher判别函数就不再适用了。但是随着经典Fisher线性判别分析法的提出,这个问题就迎刃而解。在Fisher思想的基础上,Wilks和Duda提出了寻找一个投影子空间 [10] ,这个子空间由一组判别矢量构成,得到样本在该子空间内的投影向量,作为最终的特征向量。
Fisher判别准则:
假设样本为d维数据
,其中前
个样本属于类
,后
个样本属于类
。为了能更好的度量类内距离和类间距离,我们先定义中心点,即均值,设
为类别
的样本数据的集合,则
的中心点为:
(8)
现在,为了使得投影之后相同分类样本之间距离更小,且另外不同样本距离越大。
定义类内散列度矩阵
:
(9)
类间散列度矩阵
:
(10)
由于特征太多并且复杂,为了寻找到能够将所有样本分类的最佳特征。我们把d维的样本降到一维空间,因此需要找到一个最佳的方向(假设为w)进行投影。
这个投影方向w对两个类的分类越准确,则分类效果最好。为了寻找一个最佳投影方向w,Fisher规定:投影方向w要能使降维后不同类别的类间距离和类内距离比达到最大,即
取最大值:
(11)
代表两个类的类间距离,其中
分别是两类均值,
代表类内距离。因
,则
(12)
所以
(13)
同理
(14)
根据Fisher准则函数,要寻投影向量w,使
能取最大值,所以需要对
按变量w求导,并且结果等于零,则需
(15)
(16)
令
,则,
(17)
如果
可逆则可以直接移到等式左边,但是当样本空间的维数较高,而样本数量过少时,
可能为不可逆。此时应优先选择使用PCA [11] 对样本进行降维,然后再对降维后的数据使用LDA。
3.2. 人脸识别实验
实验条件如下。
1) 人脸数据库:样本数量为20张人脸,每个人脸2个样本。
2) 单人多次识别:在人脸姿态、表情、光照不同情况下,使被测人脸处在微低头、微抬头、微笑、皱眉、强光、弱光6种情况下下各随机进行5次测试,共30次。
3) 双人(在数据库中)同时多次识别:两人(A和B)随机采取不同站位、脸部姿态、表情时测试30次,统计结果。结果如表2所示。
4. 结论
本文针对复杂环境下的人脸识别存在的问题,结合Adaboost算法和肤色分割算法的优点提出一种改进的Adaboost算法,再结合LDA算法计算速度快和识别率高等特点,极大的提高了复杂环境下人脸识别的速率和准确率。
NOTES
*通讯作者。