人脸检测是计算机视觉领域的一项核心问题,近几年人脸检测不仅在算法研究上不断突破,一些检测技术已被广泛应用到商业领域。在算法研究已走向成熟的同时,如何评估这些算法的性能变得尤为重要。Schneiderman等[1-2]提出的著名的CMU+MIT数据库,是人脸检测常用的测试集合,它结合了正面人脸以及平面内旋转的人脸集合。Jesorsky等[3]提出了BiolD数据集包含在各种光照和复杂背景下的1 521张面部图像,其中眼睛的位置已被手工标注。由Jain等[4]提出的FDDB数据库涵盖了在自然环境下的各种人脸,该数据库使用Faces in the Wild数据库中包含5 171张人脸的2 845张图片作为测试集,其官网上公布了公开发表和未公开发表的人脸检测算法评测集,能够通过一定的标准来评估检测算法的性能。
人脸检测作为后续人脸特征点定位、人脸识别等的基础,随着研究的深入,简单地从图片中检测出人脸无法满足视频人脸检测的需要。Dale等[5]指出,在视频中人脸替换时,会出现闪烁抖动(flicker)问题,除去边缘融合的问题,检测视频中人脸时同一张人脸检测到的大小缩放也是重要原因。目前人脸检测数据库或评价标准都存在下面几个缺点中的一个或几个:
1) 数据集仅包含人脸的灰度图像,不适用于彩色特征的人脸检测;
2) 数据库的数据源是图片格式,测评的是人脸检测算法对于单张人脸的检测准确度,对视频人脸的检测评估并不适用;
3) 现有的视频数据集多是为跟踪服务,和对行人姿态的或人脸表情的判别,如MOBIO数据库[6]和MPIBC数据库[7]。
本文作者充分研究以上数据库,结合实验提出一种视频中人脸位置的定量检测评估标准,评估方法旨在对视频中人脸检测算法的输出结果有一个定量的描述,并以此为检测人脸位置时间一致性的评估标准,并且通过改进后视频人脸检测算法和标准算法的对比实验结果证明,对于视频中的人脸检测,该算法能够对检测算法的人脸位置的时间一致性作出准确的评估。
1 检测算法在人脸位置上的时间一致性人脸检测算法如Viola等[8]提出的基于Haar-like的Adaboost人脸检测算法,以及Chen等[9] 提出的联合级联人脸检测与人脸对齐(Joint cascade face Detection and Alignment, JDA)算法,均为基于统计理论的人脸检测算法,通过训练得到的分类器,检测结果的确定方法上存在统计误差,在检测结果的定量描述中均会受到统计涨落的影响,即基于统计理论的算法大都是用统计量的均值来代替该量的数学期望。根据统计理论,当样本总数趋于无穷时该结论是精确的,但实际样本总数总是有限的,并且视频中每帧的检测结果是独立的,人脸定量检测出的人脸位置一般均会有明显的偏差,本文实验表明在一段人脸大小角度不发生变化的视频中此种算法检测出的人脸位置及同一个人脸的大小一般会有0到几个像素的偏差,而跟踪算法如压缩跟踪(Compressive Tracking, CT)[10] 和跟踪-学习-检测(Tracking-Learning-Detection, TLD)[11]算法也存在同样的问题。
现在权威的FDDB数据库涵盖了自然条件下的各种人脸,在相同的基准下通过评测算法对利用人脸检测算法得到的检测结果进行算法评估,为人脸检测算法的深入研究提供助力。现有的视频人脸检测算法常见的是给出最可能包括人脸的方框,鲜有文献涉及视频人脸定量检测评价方法,现常用的方法就是将视频视为帧的序列后再引用类似FDDB等的图片中人脸检测评价标准,来评价视频中人脸检测的准确性。FDDB库中的图片均是各不相关的,没有视频序列中各个帧的继承关系,而这种继承关系对保持人脸画面的时间一致性(一致的话,人脸就不应闪烁)是必须的,视频中的人脸检测比单纯的图片检测更为复杂,所以用作视频中人脸检测准确性的评判标准就很牵强。考虑到视频的时序性,判断人脸的有无已无法满足后续对人脸处理的需要。检测结果的时间一致性应加入到对视频中的人脸检测算法的评判中。
为了说明这种相邻帧中人脸画面的时间一致性在人脸位置上的体现,本文将被拍摄者静止不动的视频用检测算法检测到的人脸按中心位置对齐后播放,用实验者的视觉观察发现人脸的大小位置在不断变化——闪烁。这些是检测过程中出现的误差,导致人脸替换中出现闪烁现象。
2 视频人脸定量检测评估标准前文指出,传统人脸检测算法对于人脸在视频中的确切位置并没能给出足够准确的检测结果,在特征点标定过程中也有一定的统计误差。为了能直观地反映检测过程中视频人脸位置的变化,进而判断检测算法的优劣,对算法人脸在中心点位置上的时间一致性作出评估,本文提出了一种视频正面人脸位置的定量检测的评估标准。该标准由以下两个评价方法构成。
2.1 静态检测误差理想状态下,拍摄环境不变时,对被检测者正面人脸静止不动的视频进行检测,检测到的人脸应是位置大小均不发生变化的,即应满足人脸位置的时间一致性。由于摄像机电子噪声和检测算法存在统计涨落,检测到的人脸并非静止。
在实验中,本文作者尝试用经典的人脸检测算法对视频进行检测,并判断检测结果是否静止。检测用视频有三段,分别是两个静止的拍摄视频,一段没有明显变化的电影视频,所有视频均为25 帧/s,20 s,大小为720×480。将检测结果以中心点对齐作为测试用视频的一部分。本文实验设置包括15段视频:3段以原始视频的某帧人脸叠加的静止视频;9段分别采用Haar-Like算法、libface算法、CT算法的检测结果视频以及3段附加视频。
被测试者被要求观看这15段视频并在每段视频结束后对视频的抖动程度打分。分数的设定参照五点李克特分值:强烈同意抖动(5) 、同意抖动(4) 、既同意也不同意抖动(3) 、不同意抖动(2) 、强烈不同意抖动(1) 。实验最后收集到16个不同测试者意见,通过穿插在测试用视频中的附加视频让测试者选择附加视频出现几张人脸来去除那些没有认真观察的无效数据最后得到14个测试者的意见。
平均的单个人脸相同图片叠加的视频分值为1.14,表明受试者能够清楚地判断这些视频是完全不抖动的。而其他三种算法的平均分值为4.33(Haar-Like)、4.14(libface)、2.43(CT)除CT算法外其他两项均被认为是检测结果有剧烈抖动。
通过上述实验,验证了之前提到的人脸位置的时间一致性问题。为了将算法检测结果在视频静止人脸定量检测的时间一致性上以数值的形式表示出来,定义静止视频人脸检测误差σ:
$\begin{array}{l} \sigma = \frac{1}{{n - 1}}\sum\limits_{i = 1}^{n - 1} {{D_i}} ;\\ {D_i} = \sqrt {{{({x_0} - {x_{i + 1}})}^2} + {{({y_0} - {y_{i + 1}})}^2}} \end{array}$ |
其中,(xi, yi)为第i帧检测到的人脸中心点位置坐标,n为视频总帧数,(x0, y0)是第一帧的人脸中心点位置。通过计算得到检测人脸中心点与预设中心点的欧氏距离的变化Di来反映中心点的偏移,Di的平均值σ作为检测误差值,反映了该算法检测结果的平均偏移程度。如图 1为三种算法对视频人脸的检测结果随帧数的变化。三幅图分别为检测到的人脸中心点与预设中心点的欧氏距离即Di随着帧数的变化图像,从中可以看出Haar-Like检测和libface检测中心点的位置是有较大偏移的,验证了之前提出的单帧人脸检测应用于视频中人脸检测可能会出现抖动问题,甚至会出现超过表示范围的点,这是由于算法检测时的误检造成的,如图 2。CT算法检测到的人脸中心点变化相对幅度较小,这也验证了对抖动视频的打分结果。另外,值得注意的是,所有算法的对比均是在相同的测试视频上进行比较的,即视频中人脸定位测量因为视频质量的不同结果可能有很大差别,现在还没有找到可以对这些算法不考虑测试视频的评测方法,因此本文采用统一的自拍视频作为测试用视频,对各种算法检测结果进行对比,实验表明通过静止视频人脸检测误差σ,以及对齐的人脸视频是可以对算法在视频中人脸的定量检测作出对比评价的。这在复杂背景的正面人脸电影视频下也得到验证。
对于视频中运动的正面人脸,当人脸不发生转动时检测结果应当与静止时相同,但是实际检测结果却并非如此,因此对于视频中运动的正面人脸检测同样将检测到的人脸以中心点对齐播放,以视频的抖动程度来反映该人脸检测算法的检测效果,并且定义运动视频人脸检测误差ε:
$\begin{array}{l} \varepsilon = \frac{1}{{n - 1}}\sum\limits_{i = 1}^{n - 1} {{F_i}} \\ {F_i} = \alpha \times \frac{1}{m}\sum\limits_{j = 0}^m {\left| {I({f_j}\left( i \right),{\rm{ }}i) - I({f_j}\left( {i + 1} \right),{\rm{ }}i + 1)} \right|} \\ \alpha = \frac{{{\rm{max}}({S_t},{S_{t + 1}})}}{{{\rm{min}}({S_t},{S_{t + 1}})}} \end{array}$ |
其中: j∈Si∩Si+1,Fi为第i帧与第i+1(帧以中心点对齐后的检测人脸相交区域的像素平均差。Si为第i帧检测人脸区域,I(fj(i), i)为第i帧fj(i)位置的像素值,α为抖动加权系数。考虑到由于检测和跟踪窗口大小变化而造成窗口抖动如图 3,分别为Haar-Like检测时视频第90帧、第134帧、第173帧检测结果。同样各种算法所用的测试视频均为同一视频。
结合上述评价标准以及初步的实验结果可以看出,传统的图片中人脸检测算法应用到视频中不能保证检测结果的时间一致性, 检测出的人脸叠加视频均有剧烈抖动。CT算法是预测算法,它的主要原理是根据前一帧的信息更新的各个参数预测下一帧信息,但下一帧的样本取自上一帧样本位置周围。实验表明,这种结合前后帧信息的预测跟踪方法对保证视频中人脸检测时间一致性有效。为了能够有效利用视频序列前后帧的信息,使检测不再落于单帧的局限,提高视频中人脸检测在位置上的时间一致性,本文提出了一种利用金字塔LK光流法确定视频人脸位置,在预测结果中加入Forward-Backward误差检测[12]使算法具有自检测功能的视频中人脸的检测方法。
3.1 金字塔LK光流法光流法是空间运动物体在观察成像平面上的像素运动的瞬时速度,是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法[13]。在很多实际应用中,稀疏光流比稠密光流的计算开销较小,稀疏光流计算需要指定一组目标点,选择合适的目标点,可用较少的数据和计算量,得到理想的跟踪预测结果。
典型的LK光流算法实际上是在每一帧中某一已知邻域内寻找最佳匹配的问题,找到的最佳匹配点即为预测到的目标点位置。LK算法通过求解式(1) 中的最优化问题来预测目标点位置。
${\rm{arg min}}\sum\limits_x {{{\left[ {H\left( {y + \mathit{\boldsymbol{h}}} \right) - G\left( y \right)} \right]}^2}} $ | (1) |
其中:H(y)和G(y)分别表示两幅图像在相应坐标下的像素灰度值,算法的目标是找到相应的向量h,使得在感兴趣的区域R中,H(y+h) 和G(y)的差别最小。式(1) 通过高斯迭代法[14]求解,得到预测点的运动状态。
利用LK光流法计算时,计算量在很大程度上被选择的特征窗口的大小、物体运动的速度和图像的纹理所影响。当选择的特征窗口较小时,窗口内图像运动变化比较小,造成求解运动向量h不易;而当选择的特征窗口过大,则有悖于图像灰度一致性假设。因此在经典的LK光流法的基础上采用图像金字塔算法处理图像,将图像开始时在金字塔的顶层即在较大的空间尺度上进行目标预测跟踪,再通过对图像金字塔迭代向下直到图像金字塔的底层的处理来修正初始运动向量的假定。
构建图像高斯金字塔分两步计算:第一步对图像作高斯(Gaussian)平滑;第二步向下采样,借助亚采样可以获得一幅图像的一个缩略图,但如果需要减少一幅图像的尺寸,仅仅靠亚采样会丢失许多信息。根据采样定理,需要让所有小于最短波长的1/4 采样而得到的精细结构能通过平滑滤波器来消除掉,这样才能获得一幅正确的采样图像[15]。假设原图为M×N大小的图像,金字塔第l层图像的数字表达式,第l 层是由l-1层图像Al-1经高斯窗口函数W卷积及下采样得到,公式如下:
${A^l}\left( {i,{\rm{ }}j} \right) = \sum\limits_{m = - s{\rm{ }}}^s {\sum\limits_{n = - s}^s {W\left( {m,{\rm{ }}n} \right){A^{l - 1}}\left( {2i + m,{\rm{ }}2j + n} \right)} } $ |
其中:0≤i<M/2l,0 ≤j<N/2l,0≤l ≤t(t> 0为分解层数),窗口函数W 的大小为(2s + 1) ×(2s + 1) 。
整个PRLK算法的步骤是:在金字塔的最高层计算光流,用得到的运动估计结果作为下一层金字塔的起始点,重复这个过程直到金字塔的底层。经过这样由粗到细的光流估计,可以解决快而长的运动无法准确定位的问题。
3.2 Forward-Backward误差检测实验通过libface算法[16]检测初始人脸位置,利用Adaboost人眼检测算法[17]确定人眼的中心位置,结合检测到的人脸中心点,将这三点作为有效的特征点;通过LK稀疏光流法进行特征点预测,采用金字塔搜索提高计算速度和准确度;对于预测到的特征点本文采用Forward-Backward误差检测判断是否有效。
基于视频的目标预测应该具有正反向连续性,即当前帧无论是按照时间上的正向预测还是反向预测,产生的轨迹应该是一样的。为了判断目标预测是否有效,引入了Forward-Backward误差检测:给定视频序列S=(It, It+1, …, It+k), 正向跟踪k步,得到Tfk=(xt, xt+1, …, xt+k),反向跟踪k步得到Tbk=
因此假设从时间t的初始位置x(t)开始预测时间t+p时的位置x′(t+p), 再从预测位置x′(t+p)反向预测时间t的预测位置x′(t), 定义Δ=|x′(t)-x(t)|,则对于时间t+p预测的结果为:
$\mathit{\boldsymbol{x}}\left( {t + p} \right) = \left\{ \begin{array}{l} \mathit{\boldsymbol{x'}}\left( {t + p} \right),\Delta < \tau \\ \mathit{\boldsymbol{x}}\left( {t + p - 1} \right),{\rm{ }}\Delta \ge \tau \end{array} \right.$ |
其中:τ为预测误差的阈值,对于预测若大于阈值则将上一帧的人脸位置赋给当前帧。
实验表明该算法能及时调整检测结果,明显改善视频正面人脸检测所造成的抖动问题,且能保证检测结果的实时性。
4 实验结果与分析为了验证本文提出的判断视频中人脸位置定量检测的标准的实用性,以及自检测金字塔光流法的有效性,评测实验分别采用了四个电影视频,三个人12段拍摄视频,拍摄视频采用大华HF5221E摄像头,自然光照下采集,拍摄视频分为静止不动的视频,人脸单独横向、纵向运动以及人脸横纵向运动的视频进行实验。所有视频统一视频长度为20 s,帧率为25 帧/s,画面大小为720×480。
4.1 静止检测实验结果分析实验使用三段静止不动的拍摄视频,以及两段静止不动的电影视频作为实验数据。如图 4所示是本文提出的算法与其他三种算法对某一人脸静止的视频的检测Di的变化对比,依次是基于Haar-Like的Adaboost算法、libface人脸检测算法 (FDDB非公开类评测排名第二)、CT跟踪算法。为了防止偶然因素统一选取了视频第100~200帧的结果数据。
通过图 4可以看出Haar-Like算法检测的人脸位置变化较大,且位置较为离散,并出现误检现象; libface检测人脸位置比Haar-Like稳定,没有误检的情况; CT跟踪算法,比单帧的检测效果好,并无误检情况出现;图 4(d)是本文采用的方法,可以看出效果较前三种算法有了明显改善,中心点的位移变化控制在5以内说明该算法在视频静止人脸定量检测上是有效的。
表 1列出了四种算法的静止视频人脸检测误差σ值以及对视频抖动效果打分的分值。其中Haar-Like算法时若计入误检人脸,则数值过大为54.25,所以本表中数值为去掉误检人脸后的值。
由表 1中数据可以看出其结果和图 4所示结果相同:Haar-Like的检测误差最高,很大部分由于算法本身是单帧的人脸检测运用分类器有一定的随机误差;libface的检测误差较小,但仍有轻微人眼可辨的位移变化;CT检测结果较前者要好;本文算法的检测误差最小,视频中静止的人脸检测的定量检测问题得到有效改善。同时通过打分结果对比得出检测误差与将检测到的人脸对齐播放的视频效果一致,说明该检测误差σ在一定程度上反映了静止的视频人脸定量检测结果的好坏。
4.2 运动检测实验结果分析实验采用两段电影视频,以及9段拍摄视频进行实验,得到的平均运动的视频人脸检测误差ε结果以及打分结果如表 2所示。Haar-Like算法采用去掉误检后的值。
由表中数据可以看出:对于运动中的人脸检测,Haar-Like算法与libface算法的结果略低于其他两种算法,检测误差ε值较大,说明检测到的人脸位置有较大变化,这与将检测到的人脸对齐播放的视频效果一致。进一步说明该检测误差ε在一定程度上可以对运动中的视频人脸定量检测作出对比评价,且本文提出的算法对运动中的人脸视频定量检测结果有较大改善。
4.3 算法效率分析表 3给出了上述三种算法效率比较。实验视频统一视频长度为20 s,帧率为25 帧/s,画面大小为720×480。为了测试算法的效率,实验得出多个视频检测耗时计算出平均检测速度(该速度没有计算实验结果显示时间)。实验硬件采用Intel Core i7 CPU 4.00 GHz, 64位操作系统。从表中可以看出,本文算法的平均检测速度远高于一般视频的帧率,达到了实时性的要求。实验结果表明,本文算法相对于传统的视频中Haar-Like算法和libface人脸检测以及CT跟踪算法在视频的人脸检测性能上有明显提高。
本文结合目前视频中人脸检测现状以及实验和文献中人脸替换领域对于视频人脸检测在位置上的时间一致性要求提出了视频中人脸的定量测量,通过对齐人脸中心点播放以及对静止的人脸视频和运动的人脸视频定义检测误差反映定量检测结果的优劣。通过测试者打分验证了检测误差的有效性。比较三种算法以及本文提出的改进算法的检测结果验证了评价标准的可行性,通过本文算法在视频中检测到的人脸满足人脸位置的时间一致性且通过计算时间效率验证其具有实时性。本文对于视频人脸在大小角度不变的情况下对中心点位置的时间一致性进行了研究,提出了一种人脸位置的定量检测评估方法及相应的视频人脸检测的改进算法,但并未涵盖视频中人脸检测的时间一致性的各个方面。对于复杂情况下的人脸视频,例如人物或镜头的远近变化造成的人脸大小变化,以及由于人脸或镜头的偏转造成的角度变化等引起的视频人脸检测在大小角度的时间一致性问题则需要结合运动轨迹拟合及相应的实验样本等作进一步的研究。
[1] | SCHNEIDERMAN H, KANADE T. Probabilistic modeling of local appearance and spatial relationships for object recognition[C]//Proceedings of the 1998 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. Washington, DC:IEEE Computer Society, 1998:45-51. |
[2] | SCHNEIDERMAN H, KANADE T. A statistical method for 3D object detection applied to faces and cars[C]//Proceedings of the 2000 IEEE Conference on Computer Vision and Pattern Recognition. Piscataway:NJ:IEEE, 2000,1:746-751. |
[3] | JESORSKY O, KIRCHBERG K J, FRISCHHOLZ R W. Robust face detection using the Hausdorff distance[M].M/Audio-and Video-Based Biometric Person Authentication, LNCS 2091. Berlin:Springer, 2001:90-95. |
[4] | JAIN V, LEARNED-MILLER E. FDDB:a benchmark for face detection in unconstrained settings[EB/OL].[2016-02-01]. http://people.cs.umass.edu/~elm/papers/fddb.pdf. |
[5] | DALE K, SUNKAVALLI K, JOHNSON M K, et al. Video face replacement[J]. ACM Transactions on Graphics, 2011, 30 (6) : 61-64. |
[6] | MCCOOL C, MARCEL S, HADID A, et al. Bi-modal person recognition on a mobile phone:using mobile phone data[C]//Proceedings of the 2012 IEEE International Conference on Multimedia and Expo Workshops. Washington, DC:IEEE Computer Society, 2012:635-640. |
[7] | KLEINER M, WALLRAVEN C, BVLTHOFF H H, et al. The MPI VideoLab-a system for high quality synchronous recording of video and audio from multiple viewpoints[EB/OL].[2016-01-17]. http://www.kyb.tue.mpg.de/fileadmin/user_upload/files/publications/pdfs/pdf2774.pdf. |
[8] | VIOLA P, JONES M J. Robust real-time face detection[J]. International Journal of Computer Vision, 2004, 57 (2) : 137-154. doi: 10.1023/B:VISI.0000013087.49260.fb |
[9] | CHEN D, REN S, WEI Y, et al. Joint cascade face detection and alignment[M].M/Computer Vision-ECCV 2014, LNCS 8694. 2014:109-122. |
[10] | ZHANG K, ZHANG L, YANG M H. Real-time compressive tracking[C]//Computer Vision-ECCV 2012, LNCS 7574. Berlin:Springer, 2012:864-877. |
[11] | KALAL Z, MIKOLAJCZYK K, MATAS J. Tracking-learning-detection[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2012, 34 (7) : 1409-1422. doi: 10.1109/TPAMI.2011.239 |
[12] | KALAL Z, MIKOLAJCZYK K, MATAS J. Forward-backward error:automatic detection of tracking failures[C]//Proceedings of the 201020th International Conference on Pattern Recognition. Washington, DC:IEEE Computer Society, 2010:2756-2759. |
[13] | NEGAHDARIPOUR S. Revised definition of optical flow:integration of radiometric and geometric cues for dynamic scene analysis[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1998, 20 (9) : 961-979. doi: 10.1109/34.713362 |
[14] | LUCAS B D. Generalized image matching by the method of differences[EB/OL].[2016-01-21]. http://www.ri.cmu.edu/publication_view.html?pub_id=5610. |
[15] | 王斌, 何中市, 伍星, 等. 基于高斯金字塔的图像运动估计算法[J]. 计算机工程与应用, 2015, 51 (7) : 174-178. ( WANG B, HE Z S, WU X, et al. New diamond search algorithm based on Gaussian pyramid[J]. Computer Engineering and Applications, 2015, 51 (7) : 174-178. ) |
[16] | Libface-face recognition library.[CP/OL].[2016-03-21]. http://libface.sourceforge.net/file/Home.html. |
[17] | 甘玲, 朱江, 苗东. 扩展Haar特征检测人眼的方法[J]. 电子科技大学学报, 2010, 39 (2) : 247-250. ( GAN L, ZHU J, MIAO D. Application of the expansion haar features in eye detection[J]. Journal of University of Electronic Science and Technology of China, 2010, 39 (2) : 247-250. ) |