具有鲁棒性的实时人脸检测系统外文翻译资料
2022-07-31 15:00:10
英语原文共 5 页,剩余内容已隐藏,支付完成后下载完整资料
具有鲁棒性的实时人脸检测系统
PAUL VIOLA, MICHALE J.JONE
摘要:本文介绍了一种检测脸部轮廓的方法,它能在实现高检测精度的同时保证极快速的图像检测速率。这篇文章主要有三个创新点。第一是提出了一种称之为“积分图像”的新图像表达方式,它可以保证快速运算速率从而得出我们检测器要使用的特征。第二点是利用adaboost学习理论在大量潜在特征中选择一小部分关键特征建立成简单而又有效的分类器。第三个创新点是利用一种方式将分类器串联从而使得图像背景被快速去除从而将更多的运算资源利用在类脸部图像处理上。一系列在人脸检测领域的实验已经被公布。这个检测系统在人脸检测上表现与之前最好的系统进行比较。在传统的桌面级主机上运行此系统,脸部检测频率达到每秒15帧。
关键词:人脸检测,boosting算法,人体探测
引言
这篇文章提出了一种新算法和对于构建具有鲁棒性并且运算速率极快的视觉检测框架的思想。为此,我们构建了一个检测正脸的系统,它可以实现人脸检测并且误报率与目前发表的最好实验结果相当(Sung and Poggio, 1998; Rowley等., 1998; Osuna等., 1997a; Schneiderman and Kanade, 2000; Roth等., 2000)。这个人脸检测系统与以前的方法相比其最显著的优点是它快速检测脸部的能力。在传统的奔腾3处理器上(主频700MHZ)处理像素点288到384的图像,其脸部检测速率可以达到每秒15帧。在其他的人脸检测系统中,一些辅助信息,如在视频流中图像的不同或者彩图中像素点的颜色都被运用来实现快速的人脸检测。我们的系统只需要图片包含的信息为单一的灰度值就能实现高帧率的人脸检测。这些其他的信息源也可以集成在我们系统中从而达到一个更高的检测帧率。
我们这个人脸检测框架主要有三个创新点。我们将要在下面对这些想法进行简要的介绍然后在各个章节中进行详细的介绍。
这篇文章第一个创新点是提出了一种新的图像表示方法,叫做积分图像,它可以使系统快速的找到特征。部分想法受Papageorgiou等(1998)成果的启发。我们的检测系统没有利用图像亮度直接检测。和这些作者一样,我们利用了一系列与Haar函数相关的特征(尽管我们还要使用比Haar滤波器更为复杂的相关滤波器)。为了使其能够在多数尺寸的图像上快速计算,我们引入积分图来表示图像(这个积分图像与用于计算机图形学中纹理映射的求和区域表(Crow,1984)类似)。在一幅图像中对每个像素点进行少量操作就可以计算出其积分图像。一旦积分图像被计算出来,任意尺寸,任意位置的Haar特征都可以在一定时间内计算出。
这篇文章的第二个创新点是建立了一个简单有效的分类器,它基于Adaboost算法((Freund and Schapire, 1995),通过在一个巨大的具有潜在分类能力的特征库中选取一小部分重要特征来建立。在任何图片子窗口中,类Haar特征的总数是非常巨大的,远大于像素点的数量。为了保证能快速分类,在学习过程中必须排除一大部分的可用特征,重点关注一小部分关键特征。受Tieu and Viola (2000)工作的启发,特征的选取是利用Adaboost学习理论,通过将每个弱分类器限制于一个特征实现的。作为每个阶段boosting计算的结果,它选取了一个新的弱分类器,可以视作是特征选取的过程。Adaboost算法提供了能够高效学习与泛化能力强的学习算法(Schapire等, 1998)。
这篇文章第三个主要的创新点是将更多复杂的分类器结合在一个串级系统之中,它可以通过将计算集中在潜在的图像区域显著的提高检测的速率。将计算集中在潜在区域的原理通常是快速的判断出一幅图像中哪里可能出现脸部区域(Tsotsos等,1995;Itti等,1998;Amit and Geman,1999;Fleuret and Geman,2001)。对于可能出现脸部的区域,可以保留使用更多的复杂处理。这种方法中最关键的步骤是详细处理中的“被模型预测为负的正样本”比例。它必须是关键滤波器选择的全部或者绝大多数脸部样本。
我们将描述训练一个极其简单并且有效的分类器步骤,它可以被用作是集中算子的“监督”焦点。脸部检测集中算子可以通过学习得到,它可以过滤超过50%的图像并且保留99%的脸部图像(在大数据评估上)。这个滤波器迅速且高效。它可以在每个位置/尺寸20个简单操作中(大约60个微处理器指令)中进行评估。
这些没有被初始分类器剔除的子窗口被一系列分类器处理,每一个都比上一个更复杂一点。如果子视窗没有通过任意一个分类器,则不会进行下一步操作。这个串级检测步骤的结构实际上是基于退化决策树,并且基于Fleuret 与 Geman(2001)和Amit 和 Geman(1999)的成果。
完整的脸部串级检测有38个分类器,总数超过80000次运算。但是这个串级检测的机构使得其平均检测时间极其短。在一些难度大的数据集中,包括507张脸与7500万子视窗,脸部检测对于每一个子视窗平均使用270个微处理器指令。相比较而言,这个系统大约比Rowley等(1998)建立的系统运行速率快15倍。
一个极其快速的人脸检测器可以有很广泛的实际应用。这包括用户界面,图像数据库,和电话会议。检测速率的增快可以使系统实现实时人脸检测,而这在以前是不可实现的。在一些不需要进行帧率较快的人脸检测,我们的系统可以允许进行一些额外的关键的预处理和分析计算。另外我们的系统可以在运算能力低的设备上大范围使用,包括手持设备与嵌入式处理器。在我们的实验室,我们将脸部检测系统在低功耗200mips的arm强处理器上运行。这个处理器缺乏运算浮点小数的硬件但依然实现了每秒两帧的检测速率。
1.1概述
这篇文章的其余部分都是在讨论如何实现这个检测器,以及其所依靠的理论与实验。第二节详细介绍这些特征的形式以及快速运算它们的新方法。第三节将要讨论将这些特征组合建立分类器的方法。机器学习的方法是利用Adaboost,也作为一种特征选择的机制。虽然以这种方式构建的分类器有很好的运算速率与分类能力,但是它们相对于实时分类器还是太慢。第四节我们将要讲述构建一个串级分类器的方法,它们串联在一起可以形成一个极其迅速并且有效的检测器。第五节讲述了大量的实验结果,包括对于我们实验方法的详细说明。最后第六节包括了对于这个系统讨论与其他相关系统的关系。
特性
我们脸部检测程序基于一些简单特征值对图像进行分类。这里有许多使用这些特征而不是直接使用像素点的原因。这最主要的原因是特征可以用于特定领域的知识编码,但是这难以利用一个数量无限的训练数据进行学习。对于这个系统,还有第二个使用特征的关键原因;基于使用特征的系统处理速度远比基于使用像素的系统快。
这些简单特征的使用使人联想到Papageorgiou等(1998)使用过的Haar基函数。相对更为具体的,我们使用了三种特征。两方形的特征的值随着两个长方形区域像素点数量的不同而变化。这些区域具有相同的尺寸以及形状,并且垂直或者水平相邻(见图1)。三矩形特征的计算是从中间矩形的值总和减去两边矩形值。最后,四矩阵特征值的计算是计算对角线上不同矩形的差值。考虑到检测器的基本分辨率是24times;24,这些有限的矩形特征数量是十分大的,达到160000个。注意,与Haar基数不同的是,这些矩形特征是过完备的。
图1:展示与封闭检测窗口相关的矩形特征示例。从灰色矩形中的像素值的和减去白色矩形内的像素值的和。在(A)与(B)中展示的是两矩形特征。在图(C)中展示的是三矩形特征,(D)中展示的是四矩形特征。
2.1积分图像
矩形特征可以利用一种我们称之为积分图的一种图像变相表达方式来快速计算。积分图像在x,y位置的值是在x左边和y上面所有像素点值总和,其定义为:
ii(xrsquo;,yrsquo;)是积分图像上的点,i(x,y)是原始图像上的点(见图二)。使用下列一组公式进行迭代:
(S(x,y)是行上像素点之和,S(x,-1)=0,ii(-1,y)=0)。积分图像可以通过在原始图像上积分得到。
使用积分图像,任意矩形总和可以通过四个相对阵列计算得出(见图3)。很明显,两个矩形和的差可以通过八个参考点计算得出。根据上面定义的两个矩形特征当两个矩形相邻,其和可以通过六个参考点得出,三矩形特征情况下为八个,四矩阵特征情况下为九个。
图2:积分图像上点(x,y)的值该点左边与上面所有点值的和。
图3:矩形D中的点的总和可以通过四个相对阵列的值计算得到。积分图像在位置1的值是矩形A中所有点的和。在位置2的值是A B,在位置3的值是A C,在位置4的和是A B C D。D内的值可以通过4 1-2-3得到。
积分图像的另外一个启发来自于Simard(1999)等人的“窗口”研究。这个作者指出在线性运算的情况下(例如f·g),如果将它的逆矩阵作用于其结果的,任意的可逆线性运算都可被用做f或者g表示。例如在卷积的情况下,如果导数运算符作用在图像和内核上,它的结果就必须要两重积分。
作者继续表明,如果f和g的导数是稀疏矩阵,卷积运算可以显著加速(或者可以这样做)。类似的认识是如果它的逆矩阵运用于g,它的线性逆运算可以作用于f。
观察此框架,矩形总和的运算可以表示为f与g的点积,其中i是图像,r是窗图像(在区域内部的值是1,在区域外部的值是0)。这个操作步骤可以被写作
这个积分图像实际上是双积分图像(首先沿着行随后沿着列)。矩阵的二阶导数(首先沿着行随后沿着列)在矩形的角处产生四个delta函数。计算双重点积是通过计算四个阵列来达到。
2.2特征讨论
矩形特征当与其他选择如可控滤波器相比在一定程度有显得原始。可控滤波器与其相关的,对于边界的细节分析,图像的压缩,纹理的分析都有相当不错的效果。虽然矩形特征对于边缘,纹理与其他简单的图像结构也很敏感,但是相对而言它们是十分粗糙的。与可控滤波器不同,其可选择的方法只有垂直,水平与对角线方向。由于正交性不是这个特征集的中心,因此我们选择生成一个非常大并且不同的一系列矩阵特征集。典型的是400倍的过完备特征集。这个过完备的特征集提供了任意横纵比与精确的采样位置的特征。从经验上来看,似乎矩阵特征集合提供了支持有效学习的丰富的图像表现方式。矩形特征的极高的计算效率为这些限制提供了足够的补偿。
为了理解积分图像技术在计算方面上的优点,我们将更多计算图像金字塔的常规方法考虑进来。像多数脸部检测系统,我们的检测器对输入图像许多位置进行扫描,开始以尺寸为24times;24像素的脸部检测器为基本刻度,利用12个刻度对一幅384times;288的图像进行扫描,其中每一个刻度都比上一个刻度大1.25倍。传统的方法是计算着12幅图像组成的图像金字塔,其中每一个都比上一幅小1.25倍,然后利用一个固定尺寸的检测器对每一幅图像进行扫描。然而直接计算图像会要求大量时间。如果要在传统的硬件平台上有效运行(利用双线性差值来缩放每级金字塔),需要花费大约0.5秒来计算这种12级大小的金字塔(在Internet PIII 700 MHz处理器上)。
相反,我们定义了一系列有意义的矩形特征,其具有可以在任意位置与尺寸下利用几步操作评定单一特征的能力。我们将要在第四节展示一个高效的面部检测器,其可以利用两矩形特征构造。对于这些特征给定计算效率,这个脸部检测器可以以每秒15帧对于整个图像的每个尺度完成处理,大约于单独评估一个12级图像金字塔所花费的时间相同。任何需要运用这种类型金字塔的程序其运行速率一定低于我们的检测器。
3.具有学习能力分类器功能
给定一个特征集与正负图像的训练集,任意数量的机器学习方法都可以用来使用学习分类功能。Sung和Poggio利用了一种高斯模型的混合方法(Sung和Poggio,1998)。Rowley等(1998)利用了一些简单的样本特征与神经网络。Osuna等(1997b)利用SVM分拣器。更近的Roth等(2000)提出了不寻常的新方法并且将Windows学习程序用于这上。
考虑每个图像子窗口相关的有160000个矩形特征,其数量远比像素点的数量多。即使每个特征计算效率很高,计算整个集合的代价还是很昂贵的。我们的假设是这些特征中只有很小一部分特征是可以组合形成分类器,这通过我们的实验得到证明。最大的挑战是找到这些特征。
在我们的系统中,一种Adaboost的变体用于选取特征与训练分类器(Freund和Schapire,1995)。在它传统的形式中,Adaboost学习理论是用来提高简单学习理论的分类性能(例如,它可以用于提高感知器的性能)。它通过将弱分类器函数组合从而形成更强的分类器。在boosting理论中,简单的学习理论叫做弱学习。因此,例如感知器的学习理论搜索可能的感知器集合,并且返回具有最低误差的感知器。这个学习被称为弱学习因为我们没有期望最好的分类器函数对数据进行较好的分类(例如,对于给定的问题,最好的感知器在某个时段的对于训练数据的分类正确率可能也只有51%)。为了使弱学习得到提升,它被要求解决一系列学习问题。在第一轮学习之后,这些样本在重新分配权重,以便强调出在之前分类错误的分类器。最后生成的强分类器与感知器的形式相同,弱分类器加权组合之后通过阈值判断。
Adaboost学习程序提供的公式上的保障是十分强大的。Freund和Schapire证明了强分类器的训练误差在有限的迭代次数中可以接近于零。更重要的是大量的结果证明了其泛化能力(Schapire等,1997)。最关键的看法是泛化性能与样本的幅度有关,并且Adaboost可以在样本容量较大的情况下实现快速运算。
常规的Adaboost程序可以解释为广泛的特征选取过程。考虑到boosting算法的一般问题,将加权的表决函数与大量的分类函数相结合。这样做的挑战是要将效果好的分
全文共6485字,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[142817],资料为PDF文档或Word文档,PDF文档可免费转换为Word