APP下载

实时抗干扰的人脸检测方法

2013-07-03王元庆范科峰

计算机工程与设计 2013年4期
关键词:肤色人脸分类器

周 瑾,王元庆+,范科峰

(1.南京大学 电子科学与工程学院,江苏 南京 210093;2.中国电子技术标准化研究所,北京 100007)

0 引 言

在人脸检测领域,国内外研究者已经提出了多种方法[1]。近年来,研究的热点集中于数据和特征驱动的统计学习方法[2-5],目前该方法对于弱干扰的场景有令人满意的效果,同时也存在一些问题:基于统计学习的方法主要依赖面部器官分布的共性,而实际场景中不可避免地存在灰度分布和面部十分相似的区域;实际场景中大部分人脸都会受到不同程度的干扰,这些干扰包可能包括环境因素、姿态、表情以及遮挡;统计学习的训练十分耗时。对于这些问题已经有研究者提出多种方法[6-11],但没有能较好解决上述所有问题的方案。针对上述问题,本文提出若干方法:基于肤色团块特征提取有效候选窗口,可剔除绝大部分类人脸区域;利用人脸中某些部位比其他部位特征更稳定的先验知识,通过合理化训练样本分布以及人工干预弱分类器权重,使得系统对光照、表情和姿态变化有较好的鲁棒性,特别是对于大面积的遮挡有很好的性能,同时有效利用帧间冗余加速检测;针对训练耗时的问题,将Ada-Boost算法移植到图形处理器(GPU)上实现,显著提高了训练速度。

1 人脸检测

1.1 基于积分图和肤色团块特征的候选区域选取

针对传统几何和图像特征处理耗时、鲁棒性低的缺点,本文提出了一种基于肤色团块特征的快速筛选候选区域的方法。该方法的优势在于:不涉及细节性的特征,在图像分辨率较低和有遮挡的条件下也有很好的效果;不涉及形状分析和形态学处理等复杂的计算,结合金字塔结构和积分图可进一步加速运算。

本文采用了YCbCr空间基于K-L 变换的椭圆模型[12]进行肤色检测,如式(1)和(2)所示

本文定义了肤色覆盖率r来标记有效的肤色团块,如式(3)所示

式(3)中,m和n分别表示一个矩形窗口的长和宽,∑colorPixels表示该矩形窗口中被检测为肤色的像素总数。在实际检测过程中,r的计算是在金字塔搜索的过程中进行的,事先对图像进行肤色检测,并构建一个肤色积分图,在对某一个尺度的图像使用检测窗口进行遍历的时候,先计算该窗口肤色覆盖率r,如果r超过了某个预设阈值,则将该窗口送入后级的人脸-人眼两层检测器处理,否则忽略该窗口。利用积分图计算一次r,仅需要三次整数加(减)法的运算,这样避免了将大量无效窗口送入分类器,节省了大量的运算。图1中定性地给出了候选区域选取的结果,原图尺寸的为640×480,而图中给出的是160×160层次的有效窗口。

图1 候选区域选取的结果

1.2 弱分类器的训练

本文使用了6种Haar-Like型特征构建特征空间,如图2所示,其中a-e是5类经典特征,而标签为“f”的特征是本文提出的一种分离型特征,这种特征主要针对人脸的对称性。

本文用连续型AdaBoost训练人脸分类器。在训练过程中,得到第k个弱分类器的离散概率分布的公式如式(4)所示

图2 Haar-Like型特征

在式(4)中,ε是平滑因子,它的作用为保证真数为一个有界正数,以及抑制过学习的出现。在一般的Ada-Boost算法中该因子是一个常数,当其取得过小时,无法有效抑制过学习,取得过大又会影响概率分布,在原始算法中,该因子始终为一个定值,考虑到过学习现象一般出现在训练过程的后期,本文提出了一种改进策略,在第一轮训练时为平滑因子取定一个初始值ε0,在训练过程中,该因子以一个固定步长Δε递增,如式(5)所示,这样可以有效地解决ε的取值问题,使得训练过程在初期快速收敛,在后期防止过拟合

1.3 提高分类器泛化性能的方法

泛化能力是指机器学习算法对输入集以外的样本的适应能力,当人脸分类器有很好的泛化能力时,可以有效克服环境因素、运动和姿态变化和遮挡的影响。

在样本数量多到一定程度时,再用增加样本数量的方式提高分类器的泛化性能很困难,因此本文使用了两个方法进一步提高泛化能力:①使训练样本分布合理化;②人工调整弱分类器权重。

在第一个方法中,使训练样本中尽可能地包含合理比例的各种模式的样本,每个模式都代表实际场景中一类典型的灰度分布模式,见表1。

表1 训练样本的分布情况

在第二个方法中,本文首先对人脸的灰度分布特点进行分析,得出的结论是:人脸中某些区域的灰度分布相比其他区域更加集中,即这部分特征更稳定。如图3 所示,区域A 中包含双眼和鼻子,这些部位总体上受姿态、表情和个体差异等影响较小,而区域B 易受发型和装饰物的干扰,区域C的灰度分布最为离散,因为该区域包含无数种表情,且容易被遮挡。本文采用人工干预弱分类器权重的方法减小实际检测中的干扰,具体做法是降低B和C 区域中细节性特征的权重。表2 中给出了最终训练得到的Haar-Like特征在各个区域中的分布情况。

图3 人脸各区域灰度分布分析

表2 人脸各区域中的特征分布情况

1.4 级联分类器的构建

如图4所示,人脸检测器由一系列强分类器级联组成,第一级强分类器较为简单,从前级到后级分类器的复杂度逐级增加,主要体现在每一级包含的弱分类器个数上,采用这种结构可以在前级剔除绝大多数的无效窗口,只有少数窗口可以进入后级分类器进行决策。在图4中,箭头的粗细定性地表示样本的数量多少。

图4 级联分类器结构

2 跟踪与滤波

2.1 卡尔曼滤波

卡尔曼滤波算法被用于估计该人脸在下一帧中的位置,同时对当前检测到的位置进行滤波。卡尔曼滤波器可以有效提高搜索速度,同时通过滤除噪声提高检测的稳定性。

考虑真实的运动情景,相对于25fps的视频流,人脸的运动在大部分情况下是慢速且平滑的,我们假设待检目标在x-y平面上的运动是一个被随机的加速度所扰动的匀速直线运动,加速度a满足:a~N(0,σw2)。该模型的状态方程和量测方程如式(6)和式(7)所示

其中,x(k)和z(k)分别是时刻k的状态向量和测量向量,x(k+1|k)表示对k+1 时刻状态的预测。w(k)和v(k)分别是过程噪声和观测噪声,它们均服从零均值多元正态分布,它们的协方差分别为Qk和Rk。A(k+1|k)和H(k)分别是状态转移矩阵和观测矩阵。将x(k)、A(K+1|k)与H(k)写成矩阵形式如式(8)和(9)所示

其中,Δt为相邻帧的时间间隔,在本文的系统中为40ms(1/25s)。在算法运行过程中,卡尔曼滤波器构造了一个“预测-校正”模型,预测过程起到预估器的作用,而校正过程进行去噪滤波。

2.2 检测帧和跟踪帧的切换

不同于静态图像,实时视频中有相当的冗余信息,基于这一点,本文将视频帧分为检测帧(D 帧)和跟踪帧(T帧)。在处理D 帧时,过程等同于对静态图像的处理,而在处理T 帧时,将只对上一帧检测到的人脸进行跟踪,整个过程如图5所示。

图5 检测和跟踪动态结合

两个相邻的D 帧中间是K个T 帧,一般情况下K 是常数,而在当前帧检测到的人脸数少于上一帧的情况下,下一帧将自动切换为D 帧,以确认是否发生跟踪失败。这种切换策略能在降低运算量的同时,避免检测目标的丢失。

3 系统总体框架

本文的总体算法流程如图6所示,分为离线训练和在线检测两个部分,图中左边的虚线框表示离线训练部分,基于GPU 运算的连续型Adaboost算法对大量正负样本的训练,得到一系列的查找表型(look-up-table,LUT)弱分类器,经过对这些分类器的人工权重调整,最终构成级联强分类器组;图中右边的虚线框表示在线检测部分,从图中可以看出级联分类器的输入源有两个,即利用肤色覆盖率提取的结果或者利用上一帧数据预测的结果。

图6 系统总体流程

4 实验结果

图7中定量地给出了基于肤色覆盖率的候选窗口筛选的结果,图7中纵坐标表示候选窗口的数目,横坐标表示肤色覆盖率阈值,五条曲线分别代表5种尺度。阈值取0.6时,有效窗口的数量约为总窗口数的5%,再结合卡尔曼预测和金字塔结构,最终只有少于1%的检测窗口会被送入后级分类器。

图7 不同阈值下有效窗口数量

在人脸检测器的训练中,正样本数为5000,每一级的负样本数为40000,样本大小为20×20像素,最终得到11级AdaBoost分类器,共由790个弱分类器构成。AdaBoost算法的运算量非常大,在本文所用样本数量的情况下,用普通PC(单核,主频2.6GHz)机训练一个弱分类器的时间约为1.5 小时,总训练时间为:790*1.5(小时)=1185(小时),约50 天。针对这个问题,本文使用基于CUDA 技术的GPU 并行计算,运行在NVIDIA GTS450显卡上,将每个弱分类器训练时间减少到38秒,总训练时间为8.3小时,实现了一百多倍的加速,当然,这里并没有计入样本库生成的时间,但足可以说明将训练程序移植到GPU 实现带来的加速效果是显著的,且性价比极高。

摄像头分辨率为640×480,主机处理器为奔腾双核E5300(只用单核),主频为2.6GHz。经过对超过5万个视频帧的测试,本文的系统对基本没有干扰的正面人脸检测率达到98.8%,对有大面积遮挡的人脸检测率达到91.5%。单帧的平均处理时间如表3 所示,本文的系统每帧的平均处理时间仅为7.7ms。图8给出了部分检测结果,其中包括了不同的光照条件、表情变化、姿态变化、大面积遮挡和多人的情况。

表3 平均单帧处理时间

图8 部分实时检测结果

5 结束语

综上所述,使用基于积分图和肤色覆盖率的方法提取候选区域可以有效去除复杂背景中与人脸有相似灰度分布的区域,同时通过减少送入分类器的窗口数量提高检测速度;有良好泛化性能的AdaBoost级联分类器保证了低误检率和鲁棒性,基于GPU的实现的训练程序将检测速度提高了两个数量级;卡尔曼滤波和D/T 帧切换充分利用了视频的冗余信息,在不影响检测效果的情况下加快了处理速度。最终系统的检测速度完全达到实时系统的要求。考虑到同一类样本的分布不能过于离散,现有的方法只能检测小角度倾斜的对象。检测更多姿态和偏转角度的用户,是下一步的改进方向。

[1]SUN Ning,ZOU Cairong,ZHAO Li.Face detection:A survey[J].Journal of Circuits and Systems,2006,11(6):101-108(in Chinese).[孙宁,邹采荣,赵力.人脸检测综述[J].电路与系统学报,2006,11(6):101-108.]

[2]YANG Chengping,WANG Yuanqing.A face detection based on frontal-inverse adaboost algorithm[J].Chinese Jourml of Electron Devices,2008,31(1):355-358.

[3]Tsao Wen Kwang,Anthony J T Lee,LIU Yingho,et al.A data mining approach to face detection[J].Pattern Recognition,2010,43(3):1039-1049.

[4]YANG Jie,LING Xufeng,ZHU Yitan,et al.A face detection and recognition system in color image series[J].Mathematics and Computers in Simulation,2008(77):531-539.

[5]ZHANG Jianming,WANG Daqing.Building multi-view realtime video face detection system based on Adaboost algorithm[J].Computer Engineering and Design,2010,31(18):4065-4067(in Chinese).[张建明,汪大庆.基于Adaboost算法的多姿态人脸实时视频检测[J].计算机工程与设计,2010,31(18):4065-4067.]

[6]YAO Jian,ZHAO Xunjie.Face detection combined skin colormodel and Adaboost algorithm[J].Journal of Suzhou University(Natural Science Edition),2009,25(3):63-67(in Chinese).[姚建,赵勋杰.结合肤色模型和Adaboost算法的人脸检测[J].苏州大学学报(自然科学版),2009,25(3):63-67.]

[7]YANG Weiguo,DONG Shufeng,CHEN Juzi.Fast composite color face detection algorithm of adaptive search object[J].Computer Engineering and Design,2011,32(4):1441-1444(in Chinese).[杨卫国,董蜀峰,陈聚祉.自适应搜索目标的快速彩色复合人脸检测方法[J].计算机工程与设计,2011,32(4):1441-1444.]

[8]ZHONG Xiang,WANG Yuanqing.Real-time face detection by Adaboost based on infrared illumination[J].Computer Engineering,2009,35(8):222-224(in Chinese).[钟翔,王元庆.基于红外照明的Adaboost 实时人脸检测[J].计算机工程,2009,35(8):222-224.]

[9]HAN Jing,WANG Yuanqing.Eye detection based on real Ada-Boost and bright pupil effect[J].Electronic Measurement Technology,2009,32(8):114-117(in Chinese).[韩晶,王元庆.基于亮瞳效应的连续AdaBoost人眼检测[J].电子测量技术,2009,32(8):114-117.]

[10]YAN Chao,WANG Yuanqing,ZHANG Zhaoyang.Robust real-time multi-user pupil detection and tracking under various illumination and large-scale head motion[J].Computer Vision and Image Understanding,2011,115(1):1223-1238.

[11]DU Xingjing,BAI Tingzhu,HE Yuqing.Study of fast partial obscured face detection algorithm[J].Computer Engineering and Design,2011,32(3):984-987(in Chinese).[杜杏菁,白廷柱,何玉青.快速局部遮挡人脸检测算法研究[J].计算机工程与设计,2011,32(3):984-987.]

[12]GAO Jianpo,WANG Yujian,YANG Hao,et al.An elliptical model based on KL transform for skin color detection[J].Journal of Electronics &Information Technology,2007,29(7):1739-1743(in Chinese).[高建坡,王煜坚,杨浩,等.一种基于KL变换的椭圆模型肤色检测方法[J].电子与信息学报,2007,29(7):1739-1743.]

猜你喜欢

肤色人脸分类器
有特点的人脸
一起学画人脸
Conversation in a house
人的肤色为什么不同
为什么人有不同的肤色?
三国漫——人脸解锁
加权空-谱与最近邻分类器相结合的高光谱图像分类
结合模糊(C+P)均值聚类和SP-V-支持向量机的TSK分类器
长得象人脸的十种动物
基于LLE降维和BP_Adaboost分类器的GIS局部放电模式识别