潘杰,熊惠霖
Viola等人在文献[1-2] 中提出的基于级联结构的AdaBoost算法,提供了优异的检测速度,但是它需要大量时间进行训练,提出了一种基于特征简化的AdaBoost算法来减少训练时间。为了提高检测效率及处理目标遮挡,采用文献[3] 提出的肤色分割方法和引入 Kalman滤波器,通过排除非人脸区域,使视频序列的实时多角度人脸检测与跟踪成为可能;同时在人脸运动过程中不断更新被跟踪人脸的运动模型,利用Kalman滤波器的预测结果,更新被遮挡目标的位置。
AdaBoost 算法是利用大量的分类能力一般的弱分类器通过一定方法叠加起来,构成一个分类能力很强的强分类器。Schapire在文献[4] 中证明了只要弱分类器分类能力比随机猜测好,当简单分类器个数趋向于无穷时,强分类器的错误率将趋于0。
对于两类问题的AdaBoost算法过程如下:
1. (初始化)
2. (寻找T个弱分类器)
Fort=1,…,T
(1) 在确定的简单分类器中, 求出一个具有最小误差的弱分类器fi(x):
(2)Ft(x)=Ft-1(x)+fi(x)
(3) 更新权重:
其中Zt是所有权重和。
3.(Output)
经典的AdaBoost算法训练缓慢,影响训练速度的因素除了算法本身的效率外,更重要的是训练样本的数量和特征数量。一般而言,训练样本数量不可能减少,否则会影响最后得到的强分类器效果,因此,要想提高训练速度,只能减少特征数量。事实上,在数量巨大的类Haar特征中,有一些特征对人脸和非人脸的区分不是很有效,去除这些特征,而保留那些分类能力较强的类Haar特征,既可以有效区分人脸和非人脸样本,又可以显著减少训练时间,本文采用Fisher准则来选择分类能力强的特征。
Fisher准则表述为:找到一个最合适的投影方向,使两类样本在该方向上投影的类间距最大而类内距最小,从而达到最佳的分类效果。图1表示了
图1 两类样本在w1与w2方向上的投影情况
在二维空间中两类样本在两个不同的向量w1与w2上的投影情况。
用投影后数据的统计性质一均值和离散度的函数,作为判别优劣的标准。用以评价投影方向w的函数为:
图2(a)和(b)分别是需要保留和剔除的类Haar特征的灰度直方图图例。
图2 正负样本累积直方图
本文的实验中,实验运行环境为:Pentium D 3.0G Hz 双核处理器,1GB内存。选取3组不同的JF值来进行训练,各层的训练时间和最后选出的弱分类器个数如表1所示,JF分别取大于850、750和680时,经过筛选后用于训练的类Haar特征分别为6394、13984和31501个。
在CMU的人脸测试集合中筛选部分正面人脸(91 幅图片、315 个人脸) ,比较本文的算法与Viola算法的检测效果,作ROC曲线,如图3所示。
表1 本文与Viola训练方法耗时对比
本文改进算法的ROC曲线在Viola方法的下方,从理论上来说是合理的,因为Viola的方法搜索了所有的类Haar特征(138694个),在相同的权重条件下选出的是最优的弱分类器,本文的方法在训练时取的只是所有特征中的一个子集,不可避免的会漏掉一些较优的类Haar特征。因此,在相同的虚警率下检测精度有所下降,但本文的方法使训练效率提高了十多倍。Viola的方法训练20层需要整整2天,本文的方法取JF>750时只要2.5小时。
图3 ROC曲线对比图
多角度人脸检测,可以通过训练不同角度的人脸分类器,然后用各个分类器对待检测图像进行检测,最后把不同分类器的检测结果综合起来,就可以得到不同角度的人脸检测结果,如图4所示:a、b、c分别为正面,左侧面,右侧面和最后融合后的检测图像。
图4 多角度人脸结果融合
文献[5-8] 中使用形态学和连通域的方法提取待检测区域,然后再对提取的局部区域进行检测,以避免对整幅图像的全局搜索;但是,形态学处理本身就是相当费时的,很难满足实时性的要求,例如,在一副480×320的图像上作结构元素为20×20的一次开运算,平均耗时130毫秒,因此,用形态学处理视频序列,来提高检测速度是不可行的。
为此,本文提出了一种基于肤色的快速检测方法,在用级联分类器对候选区域搜索前,先计算候选区域内肤色部分的面积,根据人脸区域的特征,如果区域内的肤色面积大于整个候选区域面积的一半,则认为是待检测区域,否则直接排除,以提高检测的速度。而候选区域的肤色面积,可以直接由积分图求得Sskin=iiA+iiD–(iiB+ iic),iit是在t处的积分图。使用本文提出的快速检测算法,即使对检测图像用多个角度的分类器进行检测,也能达到每秒30帧以上,这使得视频多角度人脸实时检测成为可能。
图5 积分图计算
由于RGB颜色空间对光照亮度变化比较敏感,为了减少光照亮度变化对跟踪效果的影响,CamShift算法将图像由RGB 颜色空间转化到HSV 颜色空间进行后续处理。
HSV空间是RGB空间的非线性变换,它将原本相关性很强的R、G、B值转换为相关性较弱的H、S、V值。在HSV空间中,彩色图像的每一个均匀性色彩区域都对应一个相对一致的色调(Hue),使得色调(Hue)能够单独用来进行彩色区域的分割。田巍、庄镇泉在文献[21] 中详细分析了肤色在HSV空间的分布情况,本文取H(色调):0-50,作为肤色区域的分割标准,图6(a)、(b)显示了对应的肤色区域。
图6 肤色分割
CamShift最早由 Bradski提出来[9-10] ,CamShift跟踪算法是Mean Shift[11] 算法的改进,它利用颜色直方图作为特征,使用MeanShift算法在颜色概率分布图像中迭代搜索目标区域,然后动态调整目标区域的参数。图7所示为原图像对应的颜色概率分布图(亮度越高,则越接近人脸肤色)。
图7 颜色概率分布图
整个算法的具体步骤如下:
1. 确定人脸目标区域
2. 计算目标区域的H通道颜色直方图
3. 由 H通道颜色直方图,计算待检测图像的颜色概率图
4. 用Meanshift迭代算法,在颜色概率图中计算搜索区域的质心位置
5. 动态调整目标窗口大小,输出目标位置
Kalman在文献[13] 中提出了卡尔曼滤波器的基本原型,卡尔曼滤波器可以利用目标的运动信息,预测下一时刻的运动状态,其实现过程分为两个部分:预测和更新。在预测阶段,滤波器使用上一状态的估计,做出对当前状态的估计;在更新阶段,滤波器利用当前状态的估计和新的测量变量以优化在预测阶段获得的预测值。
更新方程首先做的是计算卡尔曼增益Kk。其次便测量输出以获得Zk,然后按(4-4)式计算更新的状态估计。最后按(4-5)式计算状态的协方差估计。
计算完预测方程和更新方程,整个过程再次重复,在更新阶段计算得到的预测值,被作为下一次预测阶段的状态估计,详细推导请参照文献[5] 。
本文将Camshift跟踪算法与Kalman滤波器相结合,在没有出现人脸目标相互遮挡的情况下,使用 Camshift跟踪算法进行跟踪,同时更新Kalman滤波器参数;当出现人脸相互遮挡,则利用Kalman滤波器对被遮挡人脸目标进行预测。
对第5n(n=0、1、2 …)帧图像,用多角度分类器检测,综合各个分类器的检测结果,计算待跟踪图像的反向投影图,如果没有目标被遮挡,则用 Camshift算法跟踪目标位置;反之,由Kalman滤波器的预测值更新目标位置,同时把Kalman滤波器的预测值作为下一帧预测的观测值。对于其他帧,不进行检测,直接用 Camshift的跟踪结果作为目标位置。实验结果如图8所示:
由实验结果可知,在人脸区域未出现遮挡前,先用Kalman滤波器对人脸目标建立运动模型,当人脸目标出现遮挡(第3和第20帧),由Kalman滤波器进行预测(白色矩形框所示),甚至在人脸完全被遮挡时,Kalman滤波器依然能预测到人脸的所在位置,因此把Adaboost算法、Camshift算法和Kalman滤波器相结合,能够实现视频多角度人脸的实时检测与跟踪,当出现人脸遮挡时,也能够很好的进行预测。
图8 Kalman预测结果
对Adaboost检测算法和基于Camshift的多人脸跟踪算法提出了适当改进,并取得了一定效果,但是 Camshift算法在有颜色干扰的情况下,会出现误跟踪,如何提高在有颜色干扰的情况下跟踪的精度,是下一阶段要做的。
[1] VIOLA P, JONES M. Robust real-time face detection [J] .International Journal of Computer Vision, 2004, 57(2):137-154.
[2] VIOLA P, JONES M. Rapid object detection using a boosted cascade of simple features [C] //Proc. of IEEE Conf. on Computer Vision Pattern Recognition, Kauai,Hawaii, USA. 2001: 511-518.
[3] 田巍,庄镇泉.基于HSV色彩空间的自适应肤色检测[J] .计算机工程与应用, 2004,14:81 -85.
[4] ROBERT E, SCHAPIRE. The strength of weak learnability.Machine Learning[M] . 1990, 5(2): 197-227
[5] 孙双宁,孙雁飞.基于Boosting算法的实时人脸监控系统设计[J] .信息技术, 2009, 33(1): 55-62.
[6] 郑明恩,管业鹏.基于肤色与肤色矩实时视频人脸检测与跟踪[J] .计算机工程与设计, 2008, 29(4): 879-881.
[7] 邢昕,汪孔桥,沈兰荪.基于器官跟踪的人脸实时跟踪方法[J] .电子学报, 2000,28(6): 29-31.
[8] 杜岳涛.彩色视频图像序列中的人脸检测研究[D] .西安:西安工业大学,2007.
[9] BRADSKI G R, CLARA S. Computer Vision Face Tracking For Use in a Perceptual User Interface[J] .Intelligence Technology Journal, 1998,2:1-15.
[10] John G Allen, Richard Y D. Jesse Xu, Jin S.Object Tracking Using CamShift algorithm and Multiplt QuantizedFeature Spaces[C] .Proc.Pan-Sydney Area Workshop on Visual Information Processing(VIP2033),Sydney,Australia,Dec,2003.3-7.
[11] Comaniciu D, Meer P. Mean Shift Analysis and Applications[C] . IEEE Int . Conf . Computer Vision(ICCV’99) , Kerkyra, Greece , 1999 : 1197-1203.
[12] Comaniciu D, Meer P. Mean Shift-A Robust Approach Toward. Feature Space Analysis [J] . IEEE Transactions on Pattern Analysis and Machine Intelligence, 2002, 24(5):603-619
[13] Kalman R E.A new approach to linear filtering and prediction problems[J] . Journal of Basic Engineering,1960,82(1):35-45.