A Fast and Accurate Unconstrained Face Detector
摘要
我们开发了一种新方法以应对非限制条件下的人脸检测挑战,并特别关注任意姿态变化及遮挡问题的影响。首先,在该研究中我们引入了一个创新性的图像特征指标——归一化像素差(NPD)。该指标被定义为两像素值之差与其和的比例关系,并受到实验心理学中Weber Fraction理论的启发。这种基于比例关系的设计使得NPD特征不仅具备尺度不变性而且具有明确的界限特性;能够有效重建原始图像的空间细节信息。其次,在这一系列研究的基础上我们构建了一个深度二叉树模型用于识别最佳的NPD特征求组合;从而能够用有限数量的基础特征覆盖复杂的面流形结构并实现精确的人脸区域划分任务。在此基础上我们进一步优化设计提出了一个简洁高效的单级联立分类器方案;使得整个非限制条件下的 face detection流程得以简化至极致:即只需一个软级联分类器即可完成对复杂场景下人脸检测任务的核心逻辑处理过程。此外我们还进行了系统性的实验验证并获得了令人满意的实验结果:经测试,在FDDB、GENKI及CMU-MIT三个公共数据集上所提出的算法表现优异尤其在复杂背景环境下展现出超越现有技术的最佳性能表现
1 引言
人脸检测的主要目标是识别并定位图像中的面部特征。这一过程是自动人脸识别系统的基础环节。基于当前的研究进展,在正面和近正面面部表情下的人脸检测已经取得了良好的研究进展[1]。其中最具代表性的是Viola and Jones提出的人脸检测算法[1](Viola and Jones),该方法主要依赖于Haar-like特征提取以及AdaBoost[2]级联分类器进行识别[1][2]。然而,在面对复杂的环境条件时(例如人群中的面部图像),即使是最先进的算法也难以达到理想的性能水平[3]。考虑到这些因素的影响,在现有的大量测试数据集中仍存在大量难以被准确识别的人脸图像(如图1所示)。为了更好地描述这种复杂情况,在本论文中我们将任意变化条件下的人脸检测问题统称为非限制性的人脸检测问题[4][5][6]。本文将关注此类复杂场景中的-face detection-问题研究:包括视频监控系统以及手持设备捕获的图像数据等应用领域中的实际挑战与解决方案。

图1.在FDDB数据库[3]中标注的人脸图像(红色椭圆)
在Viola和Jones的工作[1]之后,已经发展了许多人脸检测方法,主要集中在提取不同类型的特征和发展不同的级联结构。各种复杂的特性[4-13]被提出来取代[1]中使用的Haar-like特征。虽然这些方法可以在一定程度上提高人脸检测的性能,但它们会产生大量的(数十万)特征,生成的系统需要花费大量的时间来训练。人脸检测的另一个发展是学习不同级联结构来进行多视图人脸检测的,如并行级联[14]、金字塔结构[15]和Width First-Search[16]。所有这些方法都需要为每个特定的面部视图(或视图范围)学习一个级联分类器。然而,在非限制的情况下,很难定义一个人脸的所有可能视图,在复杂的级联结构中,随着分类器数量的增加,计算量也会增加。此外,这些方法需要对每个训练图像中的面部姿态进行人工标记。
虽然一些可用的方法[14-16]可以处理多视图的人脸,但它们不能同时考虑像遮挡等其它挑战。事实上,由于这些方法需要将多视图数据划分为已知的姿态,遮挡,用这种方法处理并不容易。另一方面,虽然有一些研究研究了遮挡[17-21]下的人脸检测,但他们限制自己只检测遮挡下的正面脸。正如[22]中讨论的,鲁棒的人脸检测算法应该在任意变化的姿态和遮挡下有效,这仍然是一个未解决的挑战性问题。
在本文中,我们的兴趣是研究有效的特征和鲁棒的分类器,用于检测任意变化的非限制的人脸。首先,我们提出了一个简单的像素级特征,称为归一化像素差(NPD)。NPD的计算方法是任意两个像素强度值的差值与它们的值之和的比值,与实验心理学中 Weber Fraction [23]的形式相同。NPD特征具有一些理想的特性,如尺度不变性、有界性和重建原始图像的能力。我们进一步证明NPD特征可以从一个查找表中得到,并且得到的人脸检测模板可以很容易地进行多尺度的人脸检测。
其次,我们提出了一种二叉树形学习方法,并构造了一个单一的软级联AdaBoost分类器来处理复杂的面部流形和任意位姿和遮挡条件。虽然个体NPD特征可能具有“弱”的辨别能力,但我们的研究表明,可以优化地学习得到NPD特征的子集,把它们在一个深二叉树中结合来构建更具辨别能力的特征。通过这种方法,可以将不同类型的人脸自动分割成不同的离散面,从而在学习过程中对高维空间中的复杂人脸流形进行分割。这是“分而治之”的策略,在单一分类器中处理无约束的人脸检测,而不需要预先在人脸图像的训练集中标注视图。由此产生的人脸检测器对姿态、遮挡和光照的变化,以及模糊和低图像分辨率是鲁棒的。
这项工作的创新性总结如下:
- 开发出一种新型的特征指标——归一化像素差(NPD)——该指标不仅具备高效的计算性能(ideal properties),还拥有尺度不变特性、有界性和可重构原始图像能力。
- 研发了一种基于深度二叉树的学习模型用于筛选出最优的NPD子集并实现其融合过程。这种方法显著提升了分类精度( AdaBoost 分类器)。特别地,在处理具有遮挡和任意视图的人脸识别任务时仅需部署一个软级联结构,在训练阶段无需依赖姿态标记或聚类操作。
我们提出的方法的优点包括:
- NPD特性计算极为高效,在内存访问中仅需调用查找表完成一次数据检索。
- 应用预先缩放的检测模板能够便捷地实施多尺度的人脸检测。
- 非限制式的人脸检测系统不受特定位姿级联架构的束缚;在训练过程中无需依赖位姿标注或聚类分析。
- 该系统具备适应多种复杂情况的能力:它能有效应对光照变化、姿态变换、遮挡现象以及外焦模糊问题;此外,在处理低分辨率人脸图像时也表现优异。
该方法的源代码可通过指定链接获取。
本文其余部分按顺序组织如下:
第二部分回顾相关工作,
第三部分介绍NPD特征空间,
第四部分阐述了基于NPD的人脸检测方法,
第五部分展示了实验结果,
最后总结主要贡献。
2 相关工作
在对人脸检测方法[24]的调查中可以看出,目前最流行的人脸检测方法是基于外观的,利用局部特征表示和分类器学习。Viola和Jones的人脸检测器[1]是第一个在级联AdaBoost分类器中应用矩形haar-like特征进行实时人脸检测的。人们围绕Viola-Jones检测器已经提出了许多方法,以推进在人脸检测的最先进状态。Lienhart和Maydt[4]提出了一套扩展haar-like特征,其中引入了45◦旋转矩形特征。Li等人[5]提出了Haar-like特征的另一种扩展,即矩形可以在特征空间上以灵活的距离进行分割。Jones和Viola[6]也提出了一个类似的特征,称为对角滤波器。在人脸检测中引入了其他各种局部纹理特征,如改进的统计变换[7]、局部二值模式(local binary pattern, LBP)[8]、MB-LBP[11]、LBP直方图[10]、局部组合二值特征[12]。这些特征已经被证明对光照变化是鲁棒的。Mita等人[9]提出了联合Haar-like特征来捕捉共同出现的有效Haar-like特征。Huang等人[16]提出了一个颗粒空间中的稀疏特征集,其中颗粒用矩形表示,每个单独的稀疏特征作为颗粒的组合进行学习。[9]和[16]的方法存在一个问题,即联合特征空间很大,很难进行最优组合。
在人脸检测任务中,更复杂的特征可能比haar-like特征具有更好的识别能力,他们通常计算量更高。相比之下,图像区域之间的顺序关系是简单而有效的图像特征[25],[26],[27],[28],[29],[30],[31]。Sinha[25]研究了人脸图像中几种鲁棒序数关系,并据此开发了人脸检测方法。Liao等人[28]进一步表明,AdaBoost分类器可以有效地学习序列特征用于人脸识别。Sadr等[26]研究表明,像素方向的序数特征(POF),即任意两个像素之间的序数关系(x > y),可以忠实地编码图像结构。Lepetit和Fua[29]采用随机树中的POF特征进行关键点识别。Shotton[32]应用随机森林中的POF特征进行图像分类和分割。在面部分析方面,Baluja等人[27]的研究表明,POF特征可以很好地区分五种面部方向,这比人脸检测相对简单。Wang等[31]采用随机森林分类器结合POF特征进行人脸特征点定位。Abramson和Steux[30]提出了一种基于像素控制点的人脸检测特征,每个特征与两组像素点位置(控制点)相关联。
除了不同的特征表示,一些研究者还尝试了不同的AdaBoost算法和弱分类器。对于用于boosting的弱分类器,Lienhart 等人[33]和Brubaker等人[34]表明,分类回归树(CART)[35]比简单决策树桩工作得更好。在这篇文章中,我们证明了最优顺序/对比特征及其组合可以通过在深度二叉树中整合所提出的NPD特征来学习。这样,非限制的人脸变化可以自动分割成不同的二叉树分类器的叶子。
考虑到原有的Viola-Jones人脸检测器在[24]多视图人脸检测方面的局限性,人们提出了各种级联结构来处理[6]、[14]、[15]、[16]多视图人脸检测。Jones和Viola[6]为每个特定的姿势训练一个人脸检测器来扩展他们的人脸检测器。为了避免对每个扫描子窗口上的所有人脸检测器进行评估,他们在人脸检测之前开发了一个姿态估计步骤(类似于Rowley等人[36]),然后只使用根据估计的姿态训练的人脸检测器。在这种两阶段检测结构中,如果姿态估计不可靠,则不太可能在第二阶段检测到人脸。Wu等人[14]提出了一种用于多视图人脸检测的并行级联结构,针对不同视图调整的所有人脸检测器都必须对每个扫描窗口进行评估;他们确实使用了所有面部探测器的前几个级联层来估计加速的姿势。Li和Zhang[15]提出了一种由粗到细的金字塔结构用于多视角人脸检测,其中人脸姿态的整个范围被分割成越来越小的子程序,从而得到更高效的检测结构。Huang等人提出了一种基于WFS树的多视图人脸检测方法,其工作方式也由粗到细。他们提出了用于多类学习的矢量增强算法,该算法非常适合于多视图姿态估计。但是,所有这些方法都需要学习针对人脸的每个特定视图(或视图范围)的级联分类器,要求输入人脸图像经过检测结构的不同分支。因此,在复杂的级联结构中,它们的计算量通常会随着分类器的数量增加而增加。此外,这些方法需要对每个训练图像中的面部姿态进行人工标记。
Lin和Liu[19]没有设计检测结构,而是提出将多视图人脸检测器学习为单级联分类器。他们通过在不同的类之间共享特征,导出了一个多类增强算法,称为MBHBoost。这是一种比设计复杂的级联结构更简单的多视图人脸检测方法。然而,它仍然需要手动标记姿势。然而,在非限制的环境中,由于人脸在偏航(面外)、横摇(面内)和俯仰(上、下)角度的同时处于任意姿态,很难通过离散姿态空间来定义人脸的具体视图。为了避免人工标注,Seemann等人[37]建议自动学习视点簇用于目标检测。然而,对于人脸,Kim和Cipolla[38]表明,使用传统的聚类技术,如K-Means,并不能得到姿势分类。因此,他们提出了一种用于人类对物体图像的感知聚类的多分类器增强(MCBoost),这在聚类人脸姿态方面显示出了希望。然而,集群并不总是与姿态变化相关;除了不同的姿态簇外,他们还得到了不同光照变化下的簇。
遮挡下的人脸检测也是非限制人脸检测中的一个重要问题,但与多视角人脸检测相比,遮挡下的人脸检测受到的关注较少。这可能是因为与姿态变化相比,将任意遮挡划分为预定义的类更加困难。Hotta[17]提出了一种基于局部核的SVM人脸检测方法,该方法在检测遮挡正面人脸方面优于基于全局核的SVM。Lin等人[18]在标准人脸检测器的基础上,通过训练额外的8个级联分类器,考虑了8种人工定义的人脸遮挡。Lin和Liu[19]进一步提出了MBHBoost算法来处理12个平面内旋转之一或8种遮挡之一的类型,将每种旋转和遮挡视为不同的类别。Chen等人[20]提出了一种改进的Viola-Jones人脸检测器,将训练好的检测器划分为与几个预定义的局部patch相关的子分类器,并融合子分类器的输出。Goldmann等人[21]提出了一种基于组件的人脸检测方法,其中两个点眼睛、鼻子和嘴巴,并进一步连接到一个拓扑图中。然而,在非限制的情况下,上述方法都没有同时考虑遮挡和姿态变化的人脸检测。正如[22]中所讨论的,一个鲁棒的人脸检测器应该是有效的,在任意变化的姿态和遮挡,这尚未解决。
近年来,非限制人脸检测得到了广泛的关注。Jain和Learned-Miller[3]开发了FDDB数据库和基准,用于开发非限制人脸检测算法。这个数据库包含了从互联网上收集的图像,并为人脸检测提供了具有挑战性的场景。Subburaman和Marcel[39]提出了一种用于人脸检测的快速bounding-box估计技术,该bounding-box是通过基于小patch的局部搜索来预测的。Jain和Learned-Miller[40]提出了一种在线域适应方法来提高Viola-Jones人脸检测器在FDDB数据库中的性能。Li等人[13]提出在AdaBoost级联中使用SURF特征[41]和曲线下面积(AUC)准则来加速人脸检测器的训练。Shen等人[42]提出了一种基于样本的人脸检测方法,该方法从一个带注释的人脸数据集中检索图像;面部地标位置由注释推断。该方法在[43]中得到了进一步的改进。Li等人[44]提出了一种概率弹性部分(PEP)模型,通过附加的后处理分类器使任何预训练的人脸检测器适应于特定的图像集合,如FDDB。Zhu和Ramanan[45]提出了利用基于变形零件的DPM模型(Deformable Parts-based Model, DPM)在野外联合检测人脸、估计姿态和定位人脸特征点,[46]和[47]对DPM模型进行了进一步改进。Chen等人[48]提出将人脸检测和特征点估计任务结合在一个联合级联框架中,通过精确的特征点检测来细化人脸检测。Yang等人[49]研究了利用信道特征进行人脸检测,取得了很好的性能。尽管这些方法都可以用于非限制的人脸检测,但检测精度仍然不尽如人意,特别是在要求检测器的虚警率较低的情况下。
3 归一化像素差特征空间
将图像中两个像素之间的归一化像素差(NPD)特征称为f(x,y) ,其中x,y≥0代表像素的强度值;特别地,在x=y=0的情况下,默认f(0,0)=0
为了简化表示,在某些情况下我们会将x和y直接标记为"像素"而非"像素值"。值得注意的是,在涉及特定位置讨论时(如坐标位置),我们才会采用下标区分两者。
NPD特征主要用于衡量两个像素值之间的相对差异程度。f(x,y)这一函数通过符号反映两个像素x与y之间的顺序关系,并通过大小量化其间的相对差距(以联合强度x+y的百分比形式体现)。特别地,在定义f(0,0)=0时无需额外说明因为此时两者的差异被明确排除在外。
与绝对强度差异|x - y|相比,NPD对感知到的比例变化具有恒定特性,这与韦伯定律的核心思想相吻合。
韦伯是实验心理学领域的先驱,他发现人类对刺激差异的感知能力与刺激量呈正相关关系[23]。
基于此,Chen等人[50]提出了韦伯定律描述子,该方法通过计算3×3窗口内各像素点对应的韦伯分数而生成局部图像描述子。
Eq.(1)所定义的NPD特征不仅适用于人脸识别等传统领域,还在遥感技术和其他相关领域得到广泛应用。
其中归一化植被指数(NDVI)[51]被定义为红光与近红外光谱差与比值,用以评估植被覆盖度。
值得注意的是,NPD特征具有的一个重要特性是反对称性,因此无论是使用f(x,y)还是f(y,x)进行特征表征都不会影响最终结果,从而导致表征空间维度减半。
具体而言,在一个s×s图像patch(向量化为p×1矩阵其中p = s·s)中将有p(p−1)/2个这样的NPD特征(即从所有可能的无序像素对中提取特征)。
例如在一个20×20的人脸模板图像中将共有79800个这样的NPD特征(即从所有可能的无序像素对中提取特征)。
这些生成出来的特征 collectively构成了所谓的NPD特征空间Ω_{npd}⊆R^d

此外,符号f(x,y)代表了变量x与y之间的顺序关系.研究表明,这种顺序关系已被证实为对象检测与识别的有效编码方案[25]、[26]、[28].其核心在于,顺序关系通过编码对象图像的内在结构特征,并且这种关系在光线变化过程中保持恒定[25].然而,当变量x与y数值相近时,单纯以符号表示顺序关系可能对噪声具有较高的敏感度.在下一节中,我们将介绍如何通过学习鲁棒有序/对比关系与NPD特征来进行有效的重建.
此外,NPD特征表现出在尺度方面的不变性.这种特性还被预期能在光照变化条件下保持鲁棒性.这对于图像表示至关重要,因为光照变化一直是目标检测与识别领域面临的主要挑战.
如附录A所示,NPD特征f(x,y)的取值范围限定在区间[-1,1]之间.这种有界特性使得NPD特征能够适应基于树的方法进行直方图分割或阈值学习[1].
定理1的证明见附录B.该证明还提供了一种线性时间算法来实现从比例因子重建原始图像.定理表明,特征空间Ω_{npd}中的每一个点对应于原始图像像素强度空间中一组按比例缩放后的图片集合.相比之下,尺度不变性意味着所有按比例缩放后的图片都会映射到Ω_{npd}空间中的同一个点.因此,Ω_{npd}特征空间包含了尺度缩放信息的所有必要细节
4 用于人脸检测的NPD
4.1深二叉树
经典的Viola-Jones 人脸检测器[1]通过增强stumps来学习代表性特征。stump是一种具有一个阈值的基本树分类器,它将节点分割成两片叶子。stumps有两个限制。首先,这种浅层结构不能捕捉不同特征维度之间的交互。其次,简单阈值分割忽略特征中包含的高阶信息。
因此,在本文中,我们考虑二次分裂策略和一个更深的树结构。具体来说,对于一个特性x,我们把一个树节点分割为(ax^2+bx+c)
-1≤{x-y\over x+y}≤θ<0, (3)
0<θ≤{x-y\over x+y}≤1,(4)
θ_1≤{x-y\over x+y}≤θ_2,(5)
这里θ_1<0,θ_2>0 。Eq.(3)适用于物体像素x明显比像素y暗(如图3中的f1),而Eq.(4)适用于像素x明显比像素y亮(如图3中的f2)。这两种结构也可以通过一个典型的stump学习。它们也被称为与[25]相似的序数关系,除了学习了一个更好的阈值而不是默认的阈值0。反之,如果Eq.(5)不成立,则像素x和y之间(如图3中的f3和f4)会有明显的边缘或对比,但极性不确定。例如,图3中的f3表示了脸和背景之间的一个显著的边缘,但是背景像素可以比脸更暗或更亮。这种对比结构只能通过二次分裂来学习。

如图3所示,在深度二叉树结构中集成学习了四个NPD特征。左侧子图展示了四个NPD特征在训练过程中的自动选择情况;右侧子图则显示这四个特征如何最优地组合在一个深度二叉树结构中用于人脸/非人脸分类任务。
4.2 人脸检测器
鉴于所提出的NPD特征包含了冗余信息
类似地
- 姿势。姿态变化是基于深度二叉树学习算法实现的NPD特征提取过程,并且不同视图会被自动分类为树的不同分支。
- 遮挡。与haar-like特征相比,在文献[18]的支持下显示更高的计算效率下,NPD特征对遮挡更具鲁棒性。
- 照明。基于其规模不变的特点, NPD特征求解过程中能够更好地适应不同光照条件的变化, 从而保证了良好的识别效果。
- 模糊或图像分辨率低. 因为n pd feature仅依赖于相邻区域的对比度差异, 所以在实际应用中, 它们并不需要人脸上丰富的纹理信息就可以完成相应的识别任务. 这一特点使得n pd feature在面对模糊或者低分辨率的人脸图像时仍然能够发挥出良好的性能。
4.2.1 实施细节
基于

我们使用24×24像素的检测模板。我们设置要学习的树分类器的最大深度为8,这样每个树分类器最多需要评估8个NPD特征。在软级联训练中,我们将每个出口的阈值设为正样本得分的最小值,即在训练过程中不拒收正样本。我们最后的检测器包含1226棵深度二次树和46,401个NPD特征。然而,考虑阶段非人脸拒绝,每个检测窗口的平均特征评估次数只有114.5次,这是相当合理的。
为了进行分析,我们还使用提出的NPD特征和深度为4的经典级联回归树(CART[35])训练了一个近正面人脸检测器。使用[13]中的训练数据a2的子集,包括12,102张人脸图像和12,315张非人脸图像。检测模板为20×20像素。检测器级联共15级,每级目标误接受率为0.5,检出率为0.999。
4.2.2 检测加速
为了进一步提升已掌握的NPD人脸检测效率,本研究设计并实现了以下两种核心技术方案。首先,在8位灰度图像处理中引入了一种高效的数据结构——大小为256×256的标准查询表(lookup table),用于快速获取预计算好的NPD特征参数。这样一来,在执行公式1中的f(x,y)运算时,只需要从该查询表一次性获取所需数据即可完成计算过程。其次,在训练阶段生成的脸部检测模板(如本文采用的基于OpenCV实现的小尺寸模板)具有良好的可缩放性特点。通过该特性可轻松实现多尺度的人脸探测功能:具体而言,在完成不同尺寸(如30×30、40×40等)的标准模板训练后,并非每次都需重新校准图像即可直接进行实时探测工作
5 实验
基于三个公共域数据库(FDDB[3]、GENKI[54]和CMU-MIT[36])进行评估的NPD人脸检测器性能表现研究中
5.1 FDDB数据库上评估
FDDB数据集[3]专门研究人脸检测在复杂场景下的表现。该数据集来源于野生数据集[55]中的面部图像,并是从雅虎新闻网站中大量采集而来的互联网图片资源。它总共包含了2845张图片和5171个面部标记点,并涵盖了一系列复杂的挑战性场景:包括不同角度的脸部姿态、不同程度的遮挡、多样化的光照条件、丰富的表情表现以及低分辨率和模糊状态下的脸部图像。每个面都被精确地标记为椭圆形区域,并在图1中展示了部分经过注释的实例图







