局部组合二值特征与以特征为中心的级联实现快速准确的人脸检测

来源:互联网 发布:自适应滤波算法matlab 编辑:程序博客网 时间:2024/05/15 02:04

局部组合二值特征与以特征为中心的级联实现快速准确的人脸检测

摘要:

        在本文中,我们描述一种新颖的特征类型,以实现快速和准确的面部检测。该特征称为局部组合二值(LAB)Haar特征。LAB特征基本上是受到Haar特征和局部二值模式(LBP)成功的面部检测的启发,但它远远超出了简单的组合。在我们的方法中,Haar特征被修改为仅保持序数关系(由二进制Haar特征命名),而不是累积强度之间的差。然后组合几个相邻的二进制Haar特征以捕获它们的共现,具有与LBP类似的想法。我们表明该特征比Haar特征和LBP在辨别力和计算成本方面更有效。此外,提出了一种称为特征中心级联的新型有效检测方法,以构建一种从特征为中心的方法开发的高效检测器。实验结果在CMU + MIT正面测试集和CMU侧面测试集,显示出所提出的方法可以实现非常好的结果和惊人的检测速度。

1.简介

        在过去十年中,我们目睹了面部检测技术的蓬勃发展。越来越多的快速和准确的人脸检测系统由不同的研究或商业组织开发用于各种实际应用,如视觉监控,机器人,图像检索和智能人机界面。

        在介绍面部检测的发展和问题之前,我们首先给出从参考文献[1]引用的面部检测的概念:给定任意图像或图像序列,面部检测的目标是确定在图像中是否存在任何面部,如果存在,返回它们的图像位置和范围。

        在一般情况下,图像中的面部随着不同的照明条件,人,姿势,表情等而改变。所有这些因素使得面部检测具有挑战性。为了应对这些变化,研究人员很好地接受了应该设计或采用适当的特征和有效的学习方法来模拟“面部”。更一般来说,这实际上是所有模式分类问题的关键问题。

       基于人脸的各种物理性质提出了许多不同类型的特征。这些特征包括强度,颜色,纹理,边缘和图形[2,3,4,5,6]。一些特征在特定条件下显示出良好的性能,但在一般情况下具有局限性。例如,肤色可以是分割脸部区域的有效特征。然而,它需要启发式后处理从分割结果中提取面部。此外,肤色对照明变化敏感,并且只能应用于彩色图像。其他特征,例如小波[7]可以处理适度的照明变化。然而,当一起考虑分类精度和计算成本时,基于亮度的方法通常在一些特殊应用环境中实现最佳性能[2,7,8]。

        对于分类器,应用于面部检测的典型分类器包括神经网络[8,9],贝叶斯分类器[7],支持向量机(SVM)[2]和SNoW[10]。

        面部检测研究最近的里程碑是Viola和Jones的工作[11]。在他们的工作中,开发了一个正面面部检测系统,实现了极好的精度和几乎实时的速度。Haar特征和Adaboost被探索以构建级联检测器。在这项创新的工作之后,提出了许多改进的版本。他们主要关注AdaBoost的替代方案[12,13,14,15,16,17,18和19],Haar特征[19,20],粗略到精细的结构[21,22,23,24]和级联架构的优化调谐[17,18,26,27,28]。

        事实上,上述技术,特别是Viola和Jones的工作,已经极大地提高了面部检测。然而,当然不是在分类精度和检测速度两方面的面部检测研究的结束,特别是在复杂情况下。

        为了进一步提高人脸检测系统的效率,本文提出了一种新的人脸检测方法。我们的方法的第一个关键贡献是一种新型的特征,我们称之为局部组合二进(LAB)特征。LAB特征的灵感来自Haar特征和局部二值模式(LBP)在面部检测方面的成功,但它远远超出了它们的简单组合。在我们的方法中,Haar特征被修改为仅保持序数关系(由二值Haar特征命名),而不是累积强度之间的差。然后,几个相邻的二进制Haar特征被组合在一起以捕获它们的共现,具有与LBP类似的想法。

        为了学习有效的面部检测器,进一步提出了基于特征中心的级联,其基于原始的以特征为中心的检测方法。以特征为中心的级联将级联思想引入以特征为中心的方法中。它大大加快了正面最终面部检测,甚至更多用于多视图面部检测。这是本文的第二个贡献。

        为了评估所提出的LAB特征和以特征为中心的级联的分类精度和计算成本,我们在相当大的正面面部数据集(包括230,000个正面样本)上进行实验。数据集中的面部图像覆盖了各种变化源。在CMU + MIT正面试验组上评价最终检测器,并且与已知的最佳结果相比显示更好的性能。我们还进行多视图面部检测实验,以进一步研究所提出的方法,其中所提出的方法也在精度和速度方面也显示出良好的性能。

        本文的其余部分组织如下:我们首先在第2节中介绍提出的LAB特征。第3节中描述以特征为中心的级联。下一节将介绍正面面部检测和多视图面部检测的实验结果。第5节给出结论和未来的工作。

2.局部组合二值(LAB)特征

        在本节中,我们描述了三个层次方面提出的LAB特征:二值Haar特征; 组合二值Haar特征和LAB特征。

2.1 二值Haar特征

        为了清楚起见,我们首先回顾Haar特征并分析计算成本的缺点,然后提出二值Haar特征。

        Haar特征是几个相邻矩形区域的累积强度之间的差。矩形的经典布局如图1所示。特征值是填充矩形和未填充矩形之间的差值。更一般地,矩形的布局可以任意地改变。 通过称为积分图像的辅助图像可以有效地计算矩形区域的累积强度。有关详细信息请参阅[11]。 Haar特征的计算包括所涉及的矩形的累积强度的加法或减法。 例如,如图1(a)和(b)所示的2矩形Haar特征可以计算为:


        实际上,为了提取照明变化鲁棒的特征,通常在特征提取之前在候选图像窗口上使用照明校正。经常使用的照明校正方法包括方差归一化,直方图均衡和线性照明校正等。尽管这些照明校正操作看起来很简单,但是检测可能变得耗时,因为它们被应用于输入图像中的每个候选窗口。例如,在Viola和Jones的工作[11]中,对于输入图像的每个候选窗口,进行方差归一化,然后在方差归一化窗口上计算Haar特征。

        此外,上述照明校正过程导致另一个问题:对于属于不同候选窗口的相同Haar特征,由于不同窗口的不同照明校正参数,必须重新计算更多次以上。重新计算导致多个特征评估并且大大增加了计算成本。例如,具有照明校正的Haar特征通过以下公式计算:


        为了克服上述问题,提出了二值Haar特征,其仅保持Haar特征计算中的序数关系:


        换句话说,所提出的二值Haar特征只保留Haar特征的符号信息,而绝对差值被丢弃。 通过这种二值操作,该特征对于全局照明改变变得更加鲁棒。因此,通过这种光鲁棒特征避免了针对每个候选窗口的照明校正,这降低了计算成本。此外,同时避免了上述特征重新计算问题,并且这有利于使用如在3.1和3.2中描述的以特征为中心的策略。结果,提高了面部检测速度。

2.2 组合二值Haar特征

        尽管其计算优点,我们发现单个二值Haar特征的辨别力可能太弱,无法构建鲁棒分类器。为了提高二值Haar特征的辨别能力,我们提出一起组合多个二值Haar特征,并使用它们的同现作为一种新的特征。该特征称为组合二值Haar(ABH)特征。图3显示了ABH特征的一个例子。在图中,ABH特征集成了三个二值Haar特征。当三个二进制Haar特征值为1,1和0时,ABH特征计算如下:


2.3 局部组合二值(LAB)特征

        ABH特征的数量巨大。为了枚举它们,存在几个自由参数,例如要组合的二进制Haar特征的数量,每个二进制特征的大小以及每个二进制Haar特征的位置。要从这个大型特征池学习是棘手的。幸运的是,我们发现一个减少集,这有利于面部检测。缩减集中的特征被称为局部组合二值Haar特征。为了简单起见,下文中称为LAB特征。

       在组合的二进制Haar特征中,LAB特征是那些仅合并8个局部相邻的具有相同大小的2-矩形二进制Haar特征并且它们共享公共中心矩形的特征。用于组合LAB特征的8个二进制Haar特征在图4中示出。图5给出了LAB特征的两个示例。在图中,示出了两个不同的LAB特征。中心的黑色矩形由8个相邻的二进制Haar特征共享。 所有九个矩形的大小相同。


       形式上,LAB特征可以由4元组l(x,y,w,h)表示,其中x和y表示图像中特征的左顶位置的X坐标和Y坐标 (w,h)是矩形的宽度和高度。

       LAB特征继承了二进制Haar特征的所有优点,并且有很大区别。它的数量也很小。LAB特征捕获图像的局部强度结构。LAB特征的计算需要计算8个2矩形Haar特征。与一个Haar特征相比,计算成本增加。但是它具有更多的辨别能力,并且在检测过程中不需要特殊的光校正。这些优点总体上降低了我们所提出的方法(第3部分)中的面部检测处理的计算成本。

        LAB特征有点类似于局部二值模式(LBP),已被证明在纹理分析中是有效的[29]。 可以看出,LBP是具有一个像素大小的LAB特征的特殊情况。

        与LBP类似,LAB特征值位于{0,... 255}。每个值对应于特定的局部结构。

3.使用LAB特征进行人脸检测

        级联结构也用于所提出的检测方法中。所提出的面部检测器的整个级联结构如图6所示。它可以分为两个明显的部分。第一部分是一些子分类器,其总称为特征中心级联。它们根据第3.2节中提出的方法运行。第二部分是其他子分类器,称为窗口中心级联。他们以一种窗口为中心的方式运行,类似于Viola和Jones的工作。

       本节组织如下:首先,在3.1节中,介绍了两种检测方法,以H.Schneiderman在[23]中命名的以特征为中心和以窗口为中心。然后,在3.2节中,基于这两种检测方法的彻底分析,提出了以特征为中心的级联方法来构建更有效的面部检测器。在3.3节中,描述了以窗口为中心的级联的学习。最后在第3.4节中,针对一个视图的所提出的检测方法适于多视图。

3.1 以特征为中心的检测方法

        在详细介绍以特征为中心和以窗口为中心的方法之前,让我们首先回顾高水平的面部检测的总过程。为了在图像中找到一个面部,我们需要在图像中做“穷尽搜索”。这涉及构建区分对象和“非对象”(任何其他风景)的分类器,同时只需要容忍对象位置和大小的有限变化。该方法通过在图像中的可能位置和尺度的穷尽范围上扫描该分类器来找到对象。图7示出了该过程,其中分类器计算图像中的所有可能的“窗口”,如矩形所示。

        大多数级联,如Viola和Jones [11],使用“以窗口为中心”的方法。这些方法为每个窗口分别计算照明校正和特征计算。分类器的每个可能窗口的扫描意味着也在图像的每个位置中计算每个特征。这意味着在某些窗口中包含的特征通过其他窗口的分类来计算,但是它没有用于由该窗口的分类器分类。以特征为中心的方法旨在为每个窗口使用更多的计算特征。

        为了更好地理解以窗口为中心和以特征为中心的检测方法,给出了一个例子。示例中的设置与所有实验中的设置相同。对于窗口为中心的方法,让我们假设分类器只包含一个LAB特征。特征如图8(a)中的矩形所示。在检测时,图像中的每个窗口被分类,因此也在图像的每个位置处计算属于分类器的该特征。每个位置处的特征的计算意味着检测处理产生作为特征值图像的副产品。特征值图像示于图8(b)中。对于每个窗口,在该示例的情况下,仅使用一个特征来对其进行分类,不使用由其他相邻窗口的分类计算的包含在其中的其他特征。这是浪费和较少的计算效率,因此提出以特征为中心的方法来提高计算特征的利用率。

        在以特征为中心的方法中,首先,通过扫描图像的每个位置中的上部特征来计算特征值图像(图9中所示的中间图像)。它与图8(b)中的相同。然后,“以特征为中心”的分类器在特征值图像上运行,并且不需要特征计算操作。图9示出了该过程。 至于学习,“以特征为中心”的分类器是从属于窗口的所有特征中学习的。实际上,特征具有相同的大小,因为它们通过图像上的一个特定特征来收集。当然,任何大小都可以用来构建“以特征为中心”的分类器。但最好挑出最有效的一个。在本文中,我们使用贪婪搜索找到最佳尺寸,在我们的实验中为3 * 3。

        利用窗口中所有计算的特征也会产生更多的分类操作,因为每个特征用于构建分类器,并且分类时运行分类器。但是额外的分类操作是值得的,因为带来了更多的鉴别能力,特别是当分类操作非常简单和有效时。在理论上,任何学习算法都可以用于构建以窗口为中心和以特征为中心的方法的分类器。但考虑到分类操作的简单性和有效性,我们使用RealBoost学习算法学习一个线性分类函数,可以表示为:


        对于RealBoost,分类操作h包括用于特征值的一个查找表,用于置信度的一个查找表和一个添加。在图8和图9中,还分别示出了以窗口为中心和以特征为中心的方法的线性分类器。在图9中,对于以特征为中心的检测方法,分类器包含窗口中包含的所有特征。 在分类函数中,总特征数由N表示

3.2 以特征为中心的级联

        在本节中,为了计算效率,我们将“以特征为中心”的分类器修改为级联。在以特征为中心的方法中,包含在窗口中的所有特征用于构造一个整体分类器。但是“以特征为中心”的分类器通常相当强。在输入图像的每个位置处作为整体进行扫描在计算上是不智能的。为了提高计算效率,最好进一步划分为级联。从“以特征为中心”的分类学习的级联称为以特征为中心的级联。当然,它是以特性为中心的方式运行的。

        显然,以特征为中心的级联降低了计算成本。这里给出一个例子及其计算成本分析。它的设置如3.1节中的示例

         假设分类窗口大小为24*24,该特征为3*3LAB特征,因此在窗口中有256个特征。由于其他过程对于以特征为中心的方法和以特征为中心的级联是相同的,因此在这两种方法的每个窗口上平均的分类操作数的数量表示它们在计算成本上的差异。对于以特征为中心的方法,由这256个特征引起的所有256个分类操作在每个候选窗口上操作。因此,每个窗口的平均分类操作是256次。 但是对于以特征为中心的级联,由于一些窗口随着级数增加而逐渐被拒绝,所以对于每个候选窗口的平均分类操作必须小于256次。在我们的实验中,正面面部检测的分类操作数小于15。

        以“以特征为中心”的分类器构建以特征为中心的级联的过程类似于Viola和Jones的工作[11]。图10中示出了以“以特征为中心”的分类器和以特征为中心的级联的特征。在图中,是由RealBoost挑选出的第i个LAB特征,N是以特征为中心的分类器的总特征数。带箭头的圆弧中的数字表示阶段编号。由箭头弧覆盖的特征是属于相应级的特征。


3.3 学习进一步的以窗口为中心的级联

        在学习了有效地拒绝最简单的非面部的以特征为中心的级联之后,基于所有尺寸的LAB特征学习基于窗口的级联,以进一步拒绝那些困难的非面部。学习过程类似于以特征为中心的级联,除了使用所有大小的LAB特征。当然,以窗口为中心的级联以窗口为中心的方式运行。

3.4 多视图面部检测

         到目前为止,我们已经提出了构建一个视图的面部检测器的方法。在本节中,我们将该方法扩展到多视图面部检测。为了构造多视图面部检测器,首先根据左右旋转平面将所有面部划分为5个类别,然后继续将每个类别划分成3个视图,每个视图负责平面中的30°旋转。此外,每个视图覆盖[-30°,+ 30°]上下旋转平面,用于稳健性。图11中示出了15个不同的视图。


        我们为每个视图构建一个以特征为中心的级联和一个以窗口为中心的级联。对于检测,过程如图12所示。给定输入图像,我们首先计算特征值图像。然后对于每个视图,首先基于计算的特征图像运行基于特征的级联,然后在原始图像上运行窗口中心级联。

         注意,对于多视图脸部检测,特征值图像由15个视图的所有以特征为中心的级联共享。 这大大加快了检测器。

 

 

 总结:

局部组合二值特征的组合方法如下:

1.分别将1至8号矩形框内的所有像素的像素和与0号矩形框内所有像所的像素和进行对比,根据比较的”大”或”小”的关系,生成1或0的二值特征值。

2.将这8个二值特征按顺序组合成一个8位的二进制编码。

3.将二进制编码转换成相应的十进制编码,最终得到某位置处的一个特征值。

2

3

4

1

0

5

8

7

6

 

 

以窗口为中心的检测方法:

        将待检图片在不同尺度下分别进行穷举扫描,扫描到的每一个候选窗口将根据需要计算出窗口中相应位置处的特征,并根据特征进行分类。

        对一张图片的检测分为如下几步:1.确定待检图片的尺寸;2.扫描待检图片的每一个窗口;3.对每一个窗口进行分类,具体为特征值的计算以及分类器的分类。

        对于基于位置的特征,势必存在某一位置的特征被多个窗口所包含的情况,因此,分类过程中将存在重复的特征值计算,为了避免这种重复计算带来的时间消耗,可以采用以特征为中心的检测方式。

 

 

以特征为中心的检测方式:

         首先确定图片的尺寸,然后计算该尺寸下图片包含的所有位置的特征,最后,进行滑动窗口的扫描,对于每个窗口,只进行特征的查找和分类器的运算。可以看出,由于滑动窗口以前计算了所有需要用到的特征,因此,在对滑动窗口进行分类器时可以避免重叠特征的重复计算。但是,使用这种方法的前提时图片中包含的所有特征个数较少,才能起到分类加速的作用。

         具体到LAB特征,将LAB特征固定在某一特征的尺度,也就是说对于LAB特征I(x,y,w,h),x和y可以在图片内随意变化,而w和h只拥有少数的固定值。以3*3尺度的LAB特征为例,组成每个特征的矩形框大小均为3*3,对于一张24*24的图片来说,特征总数为256个。在训练阶段,计算出所有训练样本的3*3尺寸下LAB特征,并以这些特征训练得到一个分类器。在检测阶段,首先计算出某尺度下待检图片的所有3*3大小的LAB特征,再以滑动窗口再待检图片上进行扫描,扫描到的每一个窗口,在计算得到的特征集中根据位置进行特征值的查找。这样使得每个特征值的计算都是只预先进行一次,而在计算维度高的窗口扫描过程中,对每个窗口只进行特征的查找。

 

 

 

 

1 0
原创粉丝点击