引言

对象检测是在给定图像或视频序列中检测指定对象类别,例如汽车、人脸、车牌等。对象检测在基于计算机的视觉中有许多应用,例如对象跟踪、对象识别和场景监控。

人脸检测因面部外观、光照和表情的巨大类内变化,一直被认为是计算机视觉领域中最复杂和最具挑战性的问题。这些变化导致人脸在任何空间中的分布都高度非线性且复杂,而这些空间与原始图像空间是线性的。此外,在现实世界的监控和生物识别应用中,摄像机的限制和姿态变化使得人脸在特征空间中的分布比正面人脸更加分散和复杂。这进一步加剧了鲁棒人脸检测的难题。

人脸检测技术的研究已有多年,文献中已提出了许多进展。大多数人脸检测方法侧重于检测光照条件良好情况下的正面人脸。根据Yang的调查,这些方法可分为四类:基于知识的、特征不变的、模板匹配和基于外观的。

  • 基于知识的方法使用人类编码的规则来模拟面部特征,例如对称的两只眼睛、中间的鼻子以及鼻子下方的嘴巴。
  • 特征不变的方法试图找到对姿态、光照条件或旋转不变的面部特征。肤色、边缘和形状都属于此类。
  • 模板匹配方法计算测试图像与预选面部模板之间的相关性。
  • 基于外观的方法采用机器学习技术从预先标记的训练集中提取判别性特征。特征脸方法是该类别中最基本的方法。近期提出的人脸检测算法,如支持向量机、神经网络(Rowley-Balaujam, 1998)、统计分类器(Schneiderman-Kanade, 2000)和基于AdaBoost的人脸检测,也属于此类。

任何方法都可能涉及颜色分割、模式匹配、统计分析和复杂变换,其共同目标是以最少的错误进行分类。分类准确性的界限因方法而异,但最佳技术存在于模型或分类规则是动态的且由机器学习过程生成的领域。

Paul Viola和Michael Jones提出了一种快速鲁棒的人脸检测方法,该方法比当时发布的任何技术快15倍,准确率约为95%,帧率约为17fps。 Viola Jones Faces

该技术依赖于简单的Haar状特征,这些特征通过一种新的图像表示方法可以快速计算。基于“积分图像”的概念,它生成大量的特征,并使用AdaBoost提升算法来减少过完备的特征集,同时引入提升分类器的退化树,从而实现鲁棒快速的推理。该检测器以扫描方式应用于灰度图像,应用扫描窗口也可以缩放,特征也可以进行评估。

在该技术中,仅使用了简单的矩形(Haar状)特征,类似于Haar基函数。这些特征相当于强度差读数,并且易于计算。有三种特征类型,具有不同数量的子矩形,两种是两个矩形,一种是三个矩形,一种是四个矩形特征类型。使用矩形特征而不是图像中的像素具有许多优点,即隐含了某种临时领域知识,并且比基于像素的系统速度更快。“积分图像”的使用促进了特征的计算。通过引入积分图像,Viola和Jones能够以一次扫描样本图像完成计算,这是系统速度的关键之一。积分图像类似于计算机图形学中的“累加表”,但其用途应用于像素区域评估。

据指出,实现使用此类特征的系统将产生一个过大的特征集,因此特征集必须仅限于少数关键特征。这通过提升算法AdaBoost来实现。AdaBoost增强了推理能力,从中选择少量特征,并形成一个强假设,在本例中导致一个强分类器。仅仅减少特征集不足以减少检测任务中巨大的计算量,因为这本质上是一个概率问题,因此Viola和Jones提出了使用退化分类器树。

Viola和Jones将其描述为退化树,有时也称为决策桩,其使用也加快了检测过程。退化树是通用到具体的分类器的链式连接,其中前几个分类器足够通用,可以排除图像子窗口,然后在后续的观察中,更具体的分类器沿链向下,这可以节省大量的计算量。

特点

在Viola-Jones系统中,相对于特征集,使用了一个简单的特征。

Viola和Jones指出,选择特征而不是统计像素系统的重要性在于其临时领域编码的优势。在人脸检测的情况下,这一点尤其重要。特征可用于表示样本图像中统计上接近的面部信息和稀疏相关的背景数据。

在其最简单的形式中,特征可以被认为是像素强度集合评估。这是将整个区域的亮度总和减去剩余灰度区域的亮度总和。这个差值被用作特征值,并可以组合起来形成对图像区域的弱假设。在实现中,选择了四种Haar状特征,第一种是水平分割,第二种是垂直分割,第三种包含两个垂直分割,最后一种包含水平和垂直分割。这些特征之所以被称为Haar状,是因为它们与Haar基函数相似。

          

积分图像

为了成功,人脸检测算法必须具备两个关键特征:准确性和速度。这两者之间通常存在权衡。通过使用一种新的图像表示方法,称为积分图像,Viola和Jones描述了一种快速特征评估的方法,这被证明是加快系统分类任务的有效方法。

积分图像易于理解,它们是通过简单地将图像中像素上方和左方的亮度值相加来构建的。Viola和Jones指出,积分图像实际上是样本图像的二重积分,首先沿行然后沿列。积分图像等同于累加表,但它们不用于纹理映射,因此它们的实现记录得相当好。

111
111
111
123
246
369

使用积分图像加速特征提取的优点在于,图像中的任何矩形都可以从该图像的积分图像中计算出来,只需要对积分图像进行四个索引。这使得原本详尽的累加亮度值的过程非常快速。事实上,图像的积分图像可以在一次扫描图像中计算完成,Matlab实验表明,在不到2秒的时间内可以计算出大量的图像(12000张)。

积分应用

给定一个由四个坐标指定的矩形A(x1,y1)左上角和D(x4,y4)右下角,通过对积分图像的四个图像引用来计算矩形的面积,这在特征提取方面代表了巨大的性能提升。

灰度矩形的总和 = D - (B + C) + A

由于矩形B和C都包含矩形A,因此需要在计算中加上A的总和。

Adaboost

AdaBoost算法由Freund和Schapire于1995年提出。AdaBoost解决了先前提升算法中存在的许多实际问题。该算法采用一组特征和一个包含正负图像的训练集,可以使用任意数量的机器学习方法来学习分类函数。Sung和Poggio使用高斯混合模型。Rowley、Baluja和Kanade使用一组简单的图像特征和神经网络。

Osuna等人使用支持向量机。最近,Roth等人提出了一种新颖且不寻常的图像表示,并使用了Winnow学习过程。

请注意,每个图像子窗口关联的矩形特征有45,396个,远大于像素数量。即使每个特征都可以非常高效地计算,计算完整集也是非常昂贵的。实验证明,可以将非常少量的这些特征组合起来形成一个有效的分类器。主要挑战在于找到这些特征。

在此系统中,使用了AdaBoost的一个变体来选择特征和训练分类器。

在其原始形式中,AdaBoost学习算法用于提升简单学习算法的分类性能(例如,它可以用于提升简单感知器的性能)。它通过组合一系列弱分类函数来形成一个更强的分类器。在提升的语言中,简单学习算法被称为弱学习器。因此,例如,感知器学习算法搜索所有可能的感知器,并返回分类错误最低的感知器。该学习器被称为弱学习器,因为我们不期望即使是最好的分类函数也能很好地分类训练数据(即,对于给定的问题,最好的感知器可能只能正确分类训练数据的51%)。为了使弱学习器得到提升,它需要解决一系列学习问题。在第一轮学习后,样本会被重新加权,以强调先前弱分类器错误分类的样本。最终的强分类器形式是一个感知器,即弱分类器的加权组合,然后进行阈值处理。

AdaBoost学习过程提供的正式保证非常强大。Freund和Schapire证明了强分类器的训练误差会随着回合数的增加呈指数级趋近于零。更重要的是,后来证明了许多关于泛化性能的结果。关键的见解是,泛化性能与样本的间隔有关,并且AdaBoost能快速获得大的间隔。

传统的AdaBoost过程可以很容易地解释为贪婪的特征选择过程。

考虑提升的通用问题,其中使用加权多数投票来组合大量的分类函数。挑战在于为每个好的分类函数赋予大的权重,为差的函数赋予小的权重。AdaBoost是一种积极的机制,用于选择一组少量的好的分类函数,但这些函数仍然具有显著的多样性。将弱分类器与特征进行类比,AdaBoost是一种有效的程序,用于搜寻少量好的“特征”,这些特征仍然具有显著的多样性。

弱分类器

系统中提供的核心推理是通过使用“弱分类器”来实现的,其中弱分类器hj是一个简单的结构,包含一个特征向量fj、阈值?j和奇偶校验pj。分类器的输出取决于特征值是否小于阈值,hj的结果是二元的。当完整的特征集派生出来时,基本上会生成一个弱分类器集。从特征集中,可以评估单个分类器阈值(跨大量图像数据集)并定义每个分类器的奇偶校验。
注意:这里的“x”是图像的一个24x24像素的子窗口。

阈值处理

Viola和Jones没有明确定义分类器阈值的一种特定方法;只能假设他们会倾向于错误预测较少的阈值。本书中描述的实现使用了简单的平均值,并取得了满意的结果,与已发表的结果相似。

提升

实际上,没有一个单一的特征能够以低错误率执行分类任务。在过程早期选择的特征会产生0.1到0.3的错误率。在后期选择的特征,随着任务变得更加困难,会产生0.4到0.5的错误率。下表显示了学习算法。

用于在线查询学习的提升算法。构建T个假设,每个假设使用单个特征。最终假设是T个假设的加权线性组合,其中权重与训练错误成反比。

学习讨论

为了理解提升,我们将使用赛马赌徒的例子。一位赛马赌徒希望最大化他的奖金,他决定创建一个计算机程序,该程序将根据通常的信息(每匹马最近获胜的场次,每匹马的赔率等)准确预测赛马的获胜者。为了创建这样的程序,他请一位非常成功的专家赌徒解释他的投注策略。毫不奇怪,专家无法阐述一套宏大的选马规则。另一方面,当给出特定赛事的数据时,专家能够为该赛事提出一个“经验法则”(例如,“押注最近赢得最多比赛的马”或“押注赔率最高的马”)。虽然这样的经验法则本身显然非常粗糙和不准确,但可以合理地期望它能提供至少比随机猜测稍好的预测。此外,通过反复询问专家对不同赛事集合的意见,赌徒可以提取出许多经验法则。

为了充分利用这些经验法则,赌徒面临两个问题:第一,他应该如何选择呈现给专家的赛事集合,以便从中提取最有用的经验法则?第二,一旦他收集了许多经验法则,如何将它们整合成一个单一的、高度准确的预测规则?

提升是指一种通用且可证明有效的生产高度准确的预测规则的方法,该方法通过以类似上述方式组合粗略且中度不准确的经验法则来实现。

提升算法框架

已经提出了许多通用的特征选择程序。我们最终的应用要求一个非常激进的过程,该过程将丢弃绝大多数特征。对于类似的识别问题,Papageorgiou等人提出了一种基于特征方差的特征选择方案。他们展示了从总共1734个特征中选择37个特征所取得的良好结果。虽然这是一个显著的减少,但为每个图像子窗口评估的特征数量仍然相当大。

Roth等人提出了一种基于Winnow指数感知器学习规则的特征选择过程。这些作者使用了一个非常大且不寻常的特征集,其中每个像素被映射到一个d维的二进制向量(当某个像素取值为x,在[0, d-1]范围内时,x维设置为1,其他维度为0)。每个像素的二进制向量被连接起来形成一个“nd”维的二进制向量(n是像素数)。分类规则是感知器,它为输入向量的每个维度分配一个权重。Winnow学习过程收敛到一个解决方案,其中许多权重为零。尽管如此,仍然保留了大量的特征(可能几百到几千个)。

学习结果

初步实验表明,由200个特征构建的分类器可以产生合理的结果。在95%的检测率下,该分类器在测试数据集上的误报率为1/14084。

对于人脸检测任务,AdaBoost选择的初始矩形特征是有意义且易于解释的。选择的第一个特征似乎侧重于眼睛区域通常比鼻子和脸颊区域更暗的特性。这个特征相对于检测子窗口来说相对较大,并且应该在一定程度上对人脸的大小和位置不敏感。第二个选定的特征依赖于眼睛比鼻梁更暗的特性。

总之,200特征分类器提供了初步证据,表明由矩形特征构建的提升分类器是对象检测的有效技术。在检测方面,这些结果令人信服,但不足以满足许多实际任务。在计算方面,该分类器可能比任何其他已发布的系统都快,扫描384x288像素图像需要0.7秒。不幸的是,改进检测性能最直接的技术,即向分类器添加特征,会直接增加计算时间。

注意力级联

本节介绍了一种构建分类器级联的算法,该算法在显著降低计算时间的同时提高了检测性能。关键的见解是,可以构建更小、因此更有效的提升分类器,它们可以拒绝许多负面子窗口,同时检测几乎所有正面实例。在调用更复杂的分类器以实现低误报率之前,使用更简单的分类器来拒绝大部分子窗口。

级联中的阶段是通过使用AdaBoost训练分类器来构建的。从一个双特征强分类器开始,可以通过调整强分类器阈值来最小化漏报,从而获得一个有效的人脸过滤器。初始AdaBoost阈值,旨在在训练数据上产生低错误率。较低的阈值会产生较高的检测率和较高的误报率。基于在验证训练集上测量的性能,可以调整双特征分类器以检测100%的人脸,误报率为40%。

双特征分类器的检测性能远远不能满足作为对象检测系统的要求。然而,该分类器可以在非常少的操作下显著减少需要进一步处理的子窗口数量。

  • 1. 评估矩形特征(每个特征需要6到9次数组引用)。
  • 2. 计算每个特征的弱分类器(每个特征需要一次阈值操作)。
  • 3. 组合弱分类器(每个特征需要一次乘法,一次加法,最后一次阈值操作)。

一个双特征分类器大约需要60条微处理器指令。很难想象任何更简单的过滤器能实现更高的拒绝率。相比之下,扫描简单的图像模板或单层感知器,每个子窗口至少需要20倍的操作。

检测过程的整体形式是一个退化决策树,我们称之为“级联”。第一个分类器的正面结果会触发第二个分类器的评估,第二个分类器也被调整为实现非常高的检测率。第二个分类器的正面结果会触发第三个分类器,依此类推。在任何一点的负面结果都会导致子窗口被立即拒绝。

检测级联的示意图。一系列分类器应用于每个子窗口。

初始分类器以极少的处理量消除了大量的负样本。

后续层会消除额外的负样本,但需要额外的计算。经过几个阶段的处理后,子窗口的数量已经大大减少。进一步的处理可以采取任何形式,例如级联的额外阶段(如我们的检测系统)或替代检测系统。

级联的结构反映了任何单一图像中绝大多数子窗口都是负样本这一事实。因此,级联试图在最早的可能阶段拒绝尽可能多的负样本。虽然正面实例会触发级联中所有分类器的评估,但这是一种极其罕见的情况。

与决策树类似,后续分类器是使用通过所有先前阶段的所有样本进行训练的。因此,第二个分类器面临的任务比第一个更困难。通过第一阶段的样本比典型样本“更难”。更深层分类器面临的更困难的样本会将整个接收者操作特性(ROC)曲线向下推。在给定的检测率下,更深层分类器的相应误报率更高。

训练分类器级联

级联设计过程由一组检测和性能目标驱动。对于人脸检测任务,过去的系统已经实现了良好的检测率(85%到95%之间)和极低的误报率(大约10^-5或10^-6)。级联阶段的数量和每个阶段的大小必须足以实现类似的检测性能,同时最小化计算量。

给定一个训练好的分类器级联,级联的误报率为

其中F是级联分类器的误报率,K是分类器数量,fi是第i个分类器在通过它的样本上的误报率。检测率为

其中D是级联分类器的检测率,K是分类器数量,di是第i个分类器在通过它的样本上的检测率。

给定总体误报率和检测率的具体目标,可以为级联过程的每个阶段确定目标速率。例如,一个10阶段分类器可以实现0.9的检测率,如果每个阶段的检测率都是0.99(因为0.9 ˜ 0.9910)。虽然实现这个检测率可能听起来是一项艰巨的任务,但由于每个阶段只需要实现约30%(0.3 ˜ 6* 10-6)的误报率,这变得容易得多。

扫描真实图像时评估的特征数量必然是一个概率过程。任何给定的子窗口将逐个分类器逐步通过级联,直到决定该窗口是否为负样本,或者在罕见情况下,窗口通过所有测试并被标记为正样本。

该过程的预期行为由典型测试集中图像窗口的分布决定。每个分类器的关键度量是其“正例率”,即标记为可能包含感兴趣对象的窗口的比例。评估的特征的预期数量是

其中N是评估的特征的预期数量,K是分类器的数量,pi是第i个分类器的正例率,ni是第i个分类器的特征数量。有趣的是,由于对象极其罕见,“正例率”实际上等于误报率。

训练级联每个元素的步骤需要一些细心。第3节提出的AdaBoost学习过程只试图最小化错误,并没有专门设计用于以牺牲大的误报率为代价来实现高检测率。一种简单且非常传统的权衡这些错误的方法是调整AdaBoost产生的感知器的阈值。较高的阈值会产生更少的误报和较低检测率的分类器。较低的阈值会产生更多的误报和较高的检测率的分类器。目前尚不清楚,以这种方式调整阈值是否保留了AdaBoost提供的训练和泛化保证。

整个训练过程涉及两种权衡。在大多数情况下,具有更多特征的分类器将实现更高的检测率和更低的误报率。同时,具有更多特征的分类器需要更多的时间来计算。原则上,可以定义一个优化框架,其中

  • 分类器阶段的数量
  • 每个阶段的特征数量,ni,
  • 每个阶段的阈值
进行权衡,以在给定的F和D目标下最小化预期的特征数量N。不幸的是,找到这个最优值是一个极其困难的问题。

实际上,使用一个非常简单的框架来产生一个非常高效的有效分类器。用户选择fi和di的最低可接受速率。级联的每一层都由AdaBoost训练,特征数量会增加,直到满足该级别的目标检测和误报率。速率通过在验证集上测试当前检测器来确定。如果总体目标误报率尚未达到,则会向级联添加另一层。用于训练后续层的负样本集是通过运行当前检测器在不包含对象实例的图像集上收集的误报来获得的。

简单实验

为了探索级联方法的可行性,训练了两个简单的检测器:一个整体的200特征分类器和一个10个20特征分类器的级联。级联中的第一阶段分类器使用5000个正面人脸和10000个随机从非人脸图像中选择的非人脸子窗口进行训练。第二阶段分类器在相同的5000个正面人脸加上第一分类器的5000个误报上进行训练。这个过程继续,使得后续阶段使用前一阶段的误报进行训练。整体200特征分类器在用于训练级联分类器所有阶段的所有示例的并集上进行训练。请注意,如果没有级联分类器的参考,很难选择一组非人脸训练样本来训练整体分类器。当然,我们可以使用所有非人脸图像中的所有可能子窗口,但这会使训练时间过长。

级联分类器的顺序训练方式有效地减少了非人脸训练集,通过丢弃容易的样本并专注于“困难”的样本。

检测器级联讨论

Rowley等人描述的人脸检测系统中出现了一个与级联类似的概念。他们训练了两个神经网络。一个网络相对复杂,专注于图像的一个小区域,并以较低的误报率检测人脸。他们还训练了第二个神经网络,它更快,专注于图像的大区域,并以较高的误报率检测人脸。Rowley等人使用更快的第二个网络来预筛图像,以便为更慢、更准确的网络找到候选区域。虽然很难确定,但Rowley等人提出的双网络人脸系统似乎是当时最快的人脸检测器。我们的系统采用了类似的方法,但它将这个双阶段级联扩展到32个阶段。

级联检测过程的结构基本上是一个退化决策树,因此与Amit和Geman的工作有关。与使用固定检测器的技术不同,Amit和Geman提出了一种替代观点,即使用简单的图像特征的不寻常共现来触发更复杂的检测过程的评估。通过这种方式,在许多潜在的图像位置和尺度上无需评估完整的检测过程。虽然这个基本见解非常有价值,但在他们的实现中,有必要首先在每个位置评估一些特征检测器。然后对这些特征进行分组以找到不寻常的共现。实际上,由于我们的检测器及其使用的特征的形式效率极高,在每个尺度和位置评估我们检测器的摊销成本比在整个图像中查找和分组边缘要快得多。

在最近的工作中,Fleuret和Geman提出了一种依赖于一系列测试来指示在特定尺度和位置存在人脸的人脸检测技术。Fleuret和Geman测量的图像属性,即细尺度边缘的析取,与简单的、存在于所有尺度上的、可解释性相对较强的矩形特征有很大不同。这两种方法在学习理念上也截然不同。Fleuret和Geman学习过程的动机是密度估计和密度区分,而我们的检测器是纯粹的判别式。最后,Fleuret和Geman方法的误报率似乎高于Rowley等人以及本文的方法。不幸的是,该论文没有提供这方面的量化结果。包含的示例图像每个都有2到10个误报。

训练数据集

人脸训练集包含4916张手工标记的人脸,已缩放并对齐到24x24像素的基本分辨率。这些面孔是从随机爬取的世界网络时下载的图像中提取的。图8显示了一些典型的人脸示例。请注意,这些示例包含比Rowley或Sung等人使用的示例更多的头部信息。初步实验也使用了16x16像素的训练图像,其中人脸被更紧密地裁剪,但结果稍差。可以推测,24x24的示例包含了额外的视觉信息,如下巴和脸颊的轮廓以及发际线,这有助于提高准确性。由于所用特征的性质,较大尺寸的子窗口不会降低性能。事实上,较大子窗口中包含的附加信息可以用于在检测级联的早期阶段拒绝非人脸。

检测器级联结构

最终检测器是一个32层分类器级联,总共包含4297个特征。

级联中的第一个分类器使用两个特征构建,拒绝约60%的非人脸,同时正确检测近100%的人脸。下一个分类器有五个特征,拒绝80%的非人脸,同时检测近100%的人脸。接下来的三层是20特征分类器,然后是两个50特征分类器,然后是五个100特征分类器,最后是二十个200特征分类器。

每层特征数量的具体选择是通过反复试验过程驱动的,其中特征数量会增加,直到误报率显著降低。添加更多层,直到验证集上的误报率接近于零,同时仍然保持高正确检测率。最终层数和每层的大小对最终系统性能并不关键。

使用Adaboost训练程序,前两个、五个和第一个二十个特征分类器使用4916张人脸和10,000个非人脸子窗口(也为24x24像素)进行训练。非人脸子窗口是通过从一组不包含人脸的9500张图像中选择随机子窗口来收集的。为了确保它们在一定程度上是独立的并且不使用相同的特征,使用了不同组的非人脸子窗口来训练不同的分类器。

用于训练后续层的非人脸示例是通过扫描部分级联到大型非人脸图像并收集误报来获得的。为每层收集了最多6000个这样的非人脸子窗口。在9500张非人脸图像中大约有3.5亿个非人脸子窗口。

整个32层检测器的训练时间大约需要几周,在一台466 MHz的Alpha Station XP900上。在这个耗时的训练过程中,发现了学习算法的几项改进。这些改进将在其他地方描述,可以将训练时间减少100倍。

最终检测器的速度

级联检测器的速度直接与其每个扫描子窗口的特征评估数量相关。评估的特征数量取决于正在扫描的图像。在MIT+CMU测试集上评估时,平均每个子窗口评估8个特征,总计4297个。这是可能的,因为绝大多数子窗口会被级联的第一或第二层拒绝。

扫描检测器

最终检测器以多个尺度和位置跨图像扫描。通过缩放检测器本身而不是缩放图像来实现缩放。这个过程是有意义的,因为特征可以在任何尺度上以相同的成本进行评估。使用相差1.25的尺度集取得了良好的结果。

检测器也跨位置扫描。通过将窗口移动一定数量的像素?来获得后续位置。此移动过程受检测器缩放的影响:如果当前缩放为“s”,则窗口将移动[s?],其中[]是四舍五入操作。

?的选择会影响检测器的速度和准确性。由于训练图像具有一定的平移变异性,因此学习到的检测器能够容忍图像中的小位移,从而实现良好的检测性能。因此,检测器子窗口可以比一个像素移位更多。然而,大于一个像素的步长会略微降低检测率,同时也会降低误报的数量。我们给出了两种不同步长结果。

整合多个检测

由于最终检测器对平移和小尺度变化不敏感,因此在扫描图像的每个面部周围通常会发生多次检测。对于某些类型的误报,情况也通常如此。实际上,通常有必要为每个面部返回一个最终检测。为此,对检测到的子窗口进行后处理以将重叠的检测组合成一个单一的检测是有用的。在这些实验中,检测以一种非常简单的方式组合。首先将检测集划分为不相交的子集。如果它们的边界区域重叠,则两个检测属于同一个子集。

每个分区产生一个最终检测。最终边界区域的角点是该集合中所有检测角点的平均值。

在某些情况下,此后处理会减少误报的数量,因为重叠的误报子集会减少到一个单一的检测。

结论

Paul Viola和Michael Jones提出了一种对象检测方法,该方法可最大化计算时间,同时实现高检测精度。该方法用于构建一个人脸检测系统,该系统比任何先前的方法快约15倍。初步实验(将在其他地方描述)表明,也可以用这种方法构建高效的行人等其他对象检测器。

提出了新的算法、表示和见解,这些算法、表示和见解相当通用,可能在计算机视觉和图像处理领域具有更广泛的应用。

第一个贡献是使用积分图像计算丰富图像特征集的新技术。为了实现真正的尺度不变性,几乎所有对象检测系统都必须在多个图像尺度上运行。积分图像通过消除计算多尺度图像金字塔的需要,显著减少了对象检测所需的初始图像处理。在人脸检测领域,这种优势是巨大的。使用积分图像,人脸检测可以在计算图像金字塔之前完成。

虽然积分图像也应该立即用于其他使用Harr状特征的系统,但它也可能对任何使用Harr状特征的任务产生影响。初步实验表明,类似的特征集对于参数估计任务也很有效,用于确定人脸的表情、头部的位置或对象的姿态。

第二个贡献是基于AdaBoost的特征选择技术。一种高效的特征选择技术将对各种学习任务产生影响。有了有效的特征选择工具,系统设计者就可以自由地将非常大且非常复杂的特征集定义为学习过程的输入。结果分类器仍然计算效率高,因为在运行时只需要评估少数特征。通常,结果分类器也很简单;在一大堆复杂的特征中,更有可能找到少数关键特征,它们能够以直接的方式捕捉分类问题的结构。

第三个贡献是构建分类器级联的技术,该技术可以显著减少计算时间,同时提高检测精度。级联的早期阶段旨在拒绝大部分图像,以便将后续处理集中在有希望的区域。一个关键点是,提出的级联结构相当简单且同质。先前的注意力过滤方法提出了一种更复杂且异构的过滤机制。类似地,提出了一种分层检测结构,其中各个阶段在结构和处理上差异很大。同质系统除了易于实现和理解外,还有一个优点是可以简单地权衡处理时间和检测性能。

人脸检测是许多高级计算机视觉、生物识别识别和多媒体应用(如人脸跟踪、人脸识别和视频监控)的基本第一步。

一个极快的人脸检测器将具有广泛的实际应用。这些包括用户界面、图像数据库和视频会议。速度的提高将使以前不可行的系统上实现实时人脸检测应用。在不需要快速帧率的应用中,我们的系统将允许进行大量的额外后处理和分析。此外,我们的系统可以在各种小型低功耗设备上实现,包括手持设备和嵌入式处理器。