摘 要:针对AdaBoost人脸检测算法易受到纹理干扰而造成误检的情况,提出了一种结合自适应肤色验证的快速人脸检测算法CMFS。该算法首先用运动检测为前置处理减小人脸检测搜索范围,然后用AdaBoost算法检测出人脸候选区,最后根据人脸候选区的平均亮度自适应地选择是否启用肤色验证作为后处理以排除虚警。实验结果表明,提出的CMFS检测算法在保证检测率的同时,提高了检测速度,并大大降低了误检率。
关键词:人脸检测;肤色检测;多特征融合
人脸检测是计算机视觉及相关领域的关键技术,在智能人机交互、视频会议、安全监控等方面都有着广阔的应用前景。目前人脸检测方法主要有基于知识的方法和基于统计学习的方法[1]。其中,基于知识的检测算法首先抽取灰度、纹理、集合形状等特征,然后根据一些特定的知识规则判断图像中是否含有人脸,该类方法速度快但精度较差,多适用于人脸的粗检测。基于统计学习的方法是将人脸检测转化为模式识别中的二分类问题,通过学习人脸样本集和非人脸样本集得到一组模型参数,再利用该参数来判断图像中的每个子窗口是否为人脸。该类算法可为两大类[1]:(1)使用统计的方式进行特征提取,如主成分分析、流行方法等;(2)使用统计的方法进行分类,如神经网络、支持向量机(SVM)、贝叶斯决策、Boosting方法等。其中,基于AdaBoost算法的人脸检测算法是目前最快、最有效的人脸检测算法之一[2],能较好地完成实时人脸检测。
然而,基于AdaBoost的人脸检测算法易受到纹理干扰而造成误检,所以可以考虑引入其他信息来提高人脸检测算法的性能。考虑到在视频监控的应用中,人们往往更加关心运动的物体,因此可以结合这一应用特点引入运动和肤色信息来排除复杂背景对人脸检测的影响,进而提高检测速度。为了提高视频序列中人脸检测算法的性能,降低误检率,本文提出一种结合运动检测、AdaBoost人脸检测和肤色确认的级联式多特征人脸检测算法CMFS(Cascade Motion Detection,Face Detection and Skin Verification)。该算法首先进行运动检测提取目标运动区域,以较小的计算代价缩减人脸检测的搜索范围;然后在运动区域中使用AdaBoost人脸检测算法检测人脸;最后再根据亮度情况自适应地选择是否启用肤色验证作为后处理,以排除纹理干扰。实验证明,本文提出的CMFS检测算法在保证检测率的同时大大降低了人脸检测算法的误检率,提高了检测速度,能满足复杂坏境变化中实时人脸检测的要求。
1 AdaBoost人脸检测算法
2001年,VIOLA P和JONES M[3]提出的实时人脸检测框架真正让人脸检测走向成熟,该算法使用Boosting的方法将多个弱分类器组合成强分类器,并利用Cascade的结构加快处理速度,使人脸检测的速度得到了实质性的提高。参考文献[3]主要有三大贡献:(1)利用Haar特征构造弱分类器,并提出“积分图”的概念快速计算Haar特征值;(2)利用AdaBoost算法,从很大的特征集中选出很少的特征线性组合形成非常高效的节点分类器;(3)利用人脸检测是一个极度不对称的分类问题,把节点分类器级联起来,由粗到精迅速排除非人脸区域,显著提高了检测速度。
其中,v是Haar特征值;pt代表偏置,用于控制不等号的方向;θt代表分类阈值。弱分类器是错误率稍低于50%的分类器,在固定的样本集中挑选出错误率最低的弱分类器后,可以通过AdaBoost算法把在不同样本集中训练得到的弱分类器集合起来,构成一个强分类器。
1.2 Adaboost算法
AdaBoost的主要思想是:在每次弱学习后更新样本集的权重分布,即重新调整每个样本的权重,减小被正确分类的样本权重,加大被错误分类的样本权重,使得后续的学习能更“关注”那些被错误分类的样本。
2多特征融合的快速人脸检测算法CMFS
基于AdaBoost的人脸检测算法具有快速、检测率高的优点,但它易受到纹理等干扰而导致误检。在视频监控的应用中,可以加入运动和肤色信息来排除非人脸干扰,提升人脸检测算法的性能。本文提出的CMFS人脸检测算法流程图如图3所示,它有运动检测模块、人脸检测模块以及肤色验证模块3个基本模块。首先进行运动检测提取目标运动区域,缩减人脸检测的搜索范围;然后在运动区域中使用AdaBoost人脸检测算法检测人脸;最后根据亮度情况自适应地选择是否启用肤色验证作为为后处理,以排除纹理干扰。
2.2 肤色验证
本文采用HSU R L等[6]提出的肤色检测算法来对人脸检测出的候选区域进行肤色确认。在YCbCr颜色空间中,HSU R L等把色度分量Cb和Cr作为亮度分量Y的函数Cb(Y)和Cr(Y),对YCbCr颜色空间进行非线性变换,得到新的颜色空间YCb′Cr′,并在YCb′Cr′颜色空间提出一个椭圆肤色模型。把椭圆内部的点判定为肤色点,椭圆外部的点判定为非肤色点[6]。
肤色是对人脸来说是很有效的特征,能有效降低人脸检测的虚假率,但肤色特征存在对光照变化敏感的缺点。由于肤色检测易受到光照变化影响,在高亮度或低亮度条件下较难分割出完整的肤色区域,如图5所示,因此肤色确认的结果并不总是可信。对此,采用自适应的方式对人脸候选区进行肤色确认。具体来说,即在得到人脸检测候选区后,CMFS算法会根据人脸候选区平均亮度自适应地开启肤色验证。如果人脸候选区的平均亮度很高或很低,则不启用肤色验证,直接判定经过人脸检测的人脸候选区为最终结果;反之,则启用肤色验证,并采纳肤色验证的结果。具体地说,肤色验证就是:如果人脸检测得到的人脸候选区中肤色像素个数占的比例很低(本文中设定为0.5),则认为人脸检测发生误检,排除该候选人脸候选区。本文通过大量的实验统计发现,易发生误检的亮度区间是Y∈[0,70]和Y∈[190,235],所以设定这两个区间分别为低亮度区间和高亮度区间,其他区间为正常亮度区间。
3 实验结果及分析
本文选取一些常用的测试视频序列并用USB摄像头拍摄多段视频作为测试序列,测试了本文所提CMFS算法的检测性能,并与目前应用最广泛的AdaBoost人脸检测算法进行了比较。实验运行环境是:Windows XP SP3操作系统,Intel(R)Pentium(R)D CPU,3.39 GB内存。程序运行平台是:Microsoft Visual Studio 2008/OpenCV 1.0,AdaBoost人脸检测算法取自OpenCV。
为了测试本算法对光照的适应性,拍摄了低亮度、高亮度和正常亮度下的3段序列A、B、C,分别包含500帧和500张人脸,在其上测试了仅用人脸检测算法、结合非自适应肤色验证的人脸检测算法和本文CMFS算法的性能,在3种算法前都不作运动检测处理以保证有无肤色验证为唯一变量。图6展示了3种算法对A、B、C序列的部分检测效果。从图6可以看出,在低亮度和高亮度情况下,肤色检测已经失效(如(d)肤色分割图所示),此时如果仍信任肤色,则会造成漏检(如序列A和C的(b)所示),而自适应后置肤色验证算法在非正常亮度下自动关闭肤色验证,故能保证人脸检测的检测率;在正常光照时,肤色验证能有效地排除纹理干扰,降低误检率(如序列B所示,可以看到衣服处的肤色像素值不足50%,判定为非人脸,排除此干扰)。结合运动检测,本文所提出的人脸检测算法能达到平均11.6 ms/frame,完全满足实时要求。
为了测试本文算法对复杂环境的鲁棒性,在较为复杂的场景下用摄像头拍摄了一段亮度正常的视频序列D(分辨率为352×288,共840帧,平均亮度范围为[70,190],该序列背景包括书架、门、箱子等)。表1为仅用人脸检测的算法与本文算法的性能比较,图7为部分检测结果。从表1可以看出,本文算法在保证检测率的同时,大大降低了人脸检测的误检率,提高了检测速度。这是因为本文所提出的CMFS算法能通过前置的运动检测减小人脸检测搜索范围,提高检测速度,并结合后置的肤色确认,有效地排除各种纹理和非肤色虚警(如图7第133帧中的衣服条纹、第122和380帧中的非肤色物体干扰)。
本文提出一种新的多特征融合人脸检测算法,利用运动检测为前置处理减小人脸检测搜索范围,然后使用AdaBoost人脸检测算法得到人脸候选区,最后根据人脸候选区的平均亮度自适应地确定是否启用肤色验证作为后处理,以排除虚警。相比于仅用人脸检测的算法,本文提出的CMFS算法在保证检测率的同时提高了检测速度,并大大降低了误检率,能满足复杂坏境变化中实时人脸检测的要求。
参考文献
[1] 郭志波.人脸快速检测和特征抽取方法的研究[D].南京:南京理工大学,2007.
[2] JONES M J, VIOLA P. Robust real-time object detection[C]. Proceedings of the Workshop on Statistical and Computational Theories of Vision, 2001.
[3] VIOLA P, JONES M. Rapid object detection using a boosted cascade of simple features[C]. Proceedings of the Computer Vision and Pattern Recognition, 2001 CVPR 2001 Proceedings of the 2001 IEEE Computer Society Conference on, 2001: 511-518.
[4] SCHAPIRE R E, SINGER Y. Improved boosting algorithms using confidence-rated predictions[J]. Machine Learning, 1999, 37(3): 297-336.
[5] 徐显日.人脸检测算法的研究及其在DSP上的实现[D].厦门:华侨大学,2007.
[6] HSU R L, ABDEL-MOTTALEB M, JAIN A K. Face detection in color images [J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2002, 24(5):696-706.