优选实施例的详细描述
在对本发明的优选实施例的以下描述中,对附图进行了参考,附图构成了实施例的一部分且在其中作为说明示出了可在其中实践本发明的具体实施例。可以理解,可以使用其它实施例并且可以做出结构上的改变而不背离本发明的范围。
1.0示例性操作环境:
图1和图2示出了其上可实现此处所描述的“分类器训练器”的各个实施例和要素的合适的计算环境的两个示例。
例如,图1示出了可在其上实现本发明的合适的计算系统环境100的示例。计算系统环境100只是合适计算环境的一个示例,而非意在暗示对本发明使用范围或功能有任何限制。也不应该将计算环境100解释为对示例性操作环境100中示出的任一组件或其组合有任何依赖性或要求。
本发明可用各种其它通用或专用计算系统环境或配置来操作。适用于本发明的公知的计算系统、环境和/或配置的示例包括,但不限于,个人计算机、服务器计算机、诸如蜂窝电话和PDA等手持式、膝上型或移动计算机或通信设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型机、大型计算机、包含上述系统或设备中的任一个的分布式计算环境等。
本发明可在诸如程序模块等由计算机结合各种硬件模块来执行的计算机可执行指令的一般上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。本发明也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于包括存储器存储设备在内的本地和远程计算机存储介质中。参考图1,用于实现本发明的示例性系统包括计算机110形式的通用计算设备。
计算机110的组件可以包括,但不限于,处理单元120、系统存储器130和将包括系统存储器在内的各种系统组件耦合至处理单元120的系统总线121。系统总线121可以是几种类型的总线结构中的任何一种,包括存储器总线或存储控制器、外围总线、以及使用各种总线体系结构中的任一种的局部总线。作为示例而非局限,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和外围部件互连(PCI)总线(也称为夹层(Mezzanine)总线)。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是能由计算机110访问的任何可用介质,而且包含易失性和非易失性介质、可移动和不可移动介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据这样的信息的任意方法或技术来实现的易失性和非易失性、可移动和不可移动介质。
计算机存储介质包括,但不限于,RAM、ROM、PROM、EPROM、EEPROM、闪存或其它存储器技术;CD-ROM、数字多功能盘(DVD)或其它光盘存储;磁带盒、磁带、磁盘存储或其它磁性存储设备;或能用于存储所需信息且可以由计算机100访问的任何其它介质。通信介质通常以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并包括任意信息传送介质。术语“已调制数据信号”指的是其一个或多个特征以在信号中编码信息的方式被设定或更改的信号。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、RF、红外、和其它无线介质。以上的任何组合也应包括在计算机可读介质的范围内。
系统存储器130包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出系统133(BIOS)包括如在启动时帮助在计算机110内的元件之间传输信息的基本例程,它通常储存在ROM 131中。RAM 132通常包含处理单元120可以立即访问和/或目前正在操作的数据和/或程序模块。作为示例而非限制,图1示出了操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110也可以包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图1示出了从不可移动、非易失性磁介质中读取或向其写入的硬盘驱动器141,从可移动、非易失性磁盘152中读取或向其写入的磁盘驱动器151,以及从诸如CD ROM或其它光学介质等可移动、非易失性光盘156中读取或向其写入的光盘驱动器155。可以在示例性操作环境中使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器141通常由不可移动存储器接口,诸如接口140连接至系统总线121,磁盘驱动器151和光盘驱动器155通常由可移动存储器接口,诸如接口150连接至系统总线121。
上文讨论并在图1中示出的驱动器及其相关联的计算机存储介质为计算机110提供了对计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图1中,硬盘驱动器141被示为存储操作系统144、应用程序145、其它程序模块146和程序数据147。注意,这些组件可以与操作系统134、应用程序135、其它程序模块136和程序数据137相同,也可以与它们不同。操作系统144、应用程序145、其它程序模块146和程序数据147在这里被标注了不同的标号是为了说明至少它们是不同的副本。用户可以通过输入设备,如键盘162和定点设备161(通常指鼠标、跟踪球或触摸板)向计算机110输入命令和信息。
其它输入设备(未示出)可包括操纵杆、游戏手柄、圆盘式卫星天线、扫描仪、无线电接收机、以及电视或广播视频接收机等等。这些和其它输入设备通常通过耦合至系统总线121的有线或无线用户输入接口160连接至处理单元120,但是也可以通过其它常规的接口和总线结构来连接,如并行端口、游戏端口、通用串行总线(USB)、IEEE 1394接口、蓝牙TM无线接口、IEEE 802.11无线接口等等。此外,计算机110还可包括语音或音频输入设备,诸如话筒或话筒阵列198、以及经由音频接口199连接的扬声器197或其它声音输出设备,音频接口同样包括常规的有线或无线接口,诸如并行、串行、USB、IEEE 1394、蓝牙TM等等。
监视器191或其它类型的显示设备也经由接口,诸如视频接口190连接至系统总线121。除监视器之外,照相机192或其它图像捕捉设备也可经由视频接口190或其它输入耦合到计算机110。计算机110还可包括诸如打印机196等其它外围输出设备,它可通过输出外围接口195连接。
计算机110可使用至一个或多个远程计算机,如远程计算机180的逻辑连接在联网环境中操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备、或其它常见网络节点,并且通常包括以上相对计算机110描述的许多或全部元素,但在图1中只示出了存储器存储设备181。图1中所示的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可以包括其它网络。这样的联网环境常见于办公室、企业范围计算机网络、内联网和因特网中。
当在LAN联网环境中使用时,计算机110通过网络接口或适配器170连接至LAN 171。当在WAN联网环境中使用时,计算机110通常包括调制解调器172或用于通过诸如因特网等WAN 173建立通信的其它装置。调制解调器172可以是内置或外置的,它可以经由用户输入接口160或其它适当的机制连接至系统总线121。在联网环境中,相对于计算机110所描述的程序模块或其部分可被储存在远程存储器存储设备中。作为示例而非限制,图1示出了远程应用程序185驻留在存储器设备181上。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其它手段。
参考图2,该附图示出了显示简化计算设备的概括系统图。这样的计算设备通常可以在至少具有一些最小计算能力且结合了通信接口或输入设备的设备中找到,该通信接口或输入设备用于接收诸如例如向量图图像等在空间上相干的可变比率多维数据。这样的设备包括例如,蜂窝电话;PDA;媒体播放器;手持式、膝上型或便携式计算机;手持式或便携式电子游戏设备等。应当注意,图2中由断开的线或虚线所表示的任何框表示简化计算设备的替换实施例,并且以下描述的这些替换实施例中的任一个或全部可以结合贯穿本文所描述的其它替换实施例来使用。
至少,为允许设备实现分类器训练器的功能,该设备必须具有一些最小计算能力、一些存储能力、以及用于允许输入训练数据的接口。另外,如下详细描述的,该简化计算设备还可包括用于输出经训练的检测系统的输出设备。
具体地,如由图2所示,计算能力一般由处理单元210(大致类似于以上相对于图1所描述的处理单元120)来示出。此外,图2的简化计算设备还可包括用于经由照相机295捕捉训练或测试图像的照相机接口290。注意,与图1的通用计算设备的处理单元120形成对比,图2所示的处理单元210可以是专用微处理器,诸如DSP、VLIW、或其它微控制器,而非如上所述的PC型计算机等的通用处理器单元。
另外,图2的简化计算设备还可包括其它组件,诸如例如一个或多个输入设备240(类似于相对于图1所描述的输入设备)。图2的简化计算设备还可包括其它可任选组件,诸如例如一个或多个输出设备250(类似于相对于图1所描述的输出设备)。图2的简化计算设备还包括作为可移动270和/或不可移动280的存储260(类似于相对于图1所描述的存储设备)。
现在已讨论了示例性操作环境,本说明书的其余部分将致力于讨论具体化“分类器训练器”的程序模块和过程,该分类器训练器通过自动地学习用于基于“修剪分类器”的目标检测系统的中间拒绝阈值来提供用于训练弱分类器的过程。
2.0介绍:
此处描述的“分类器训练器”构造用于检测数据中的特定信息实例(例如,图像中的脸、语音中的特定词语、信号中的模式、因特网上的特定文档、搜索引擎所收集的查询实例、数据库中的书籍、购物数据库中的产品等)的经训练的修剪分类器。该修剪分类器是从原始组合分类器来构造的,该原始组合分类器本身已使用任何所需训练过程(常规或其它)针对一个或多个原始数据集被成功训练。所得修剪分类器相对于原始组合分类器而言提供显著提高的检测速度而同时维持高水平的检测准确度。
一般而言,原始组合分类器包括多个弱分类器。取决于原始组合分类器的复杂度,可能存在数百或甚至数千个单独的弱分类器。在一个实施例中,分类器训练器使用在此被称为“多实例修剪”(MIP)的技术来学习原始组合分类器的每一弱分类器的各个拒绝阈值。这些学习的中间拒绝阈值随后被用来构造上述修剪分类器。在附加实施例中,修剪分类器训练包括使用权重修整、自引导和被称为“肥树桩”分类器的新颖的弱分类器的各种组合。
上述MIP过程使分类器训练器能够使用确保原始组合分类器检测到的每一信息实例也被经训练的修剪分类器检测到的技术来学习中间拒绝阈值,从而保证对训练集合的检测率在修剪之后不变。此外,经修剪的检测器对训练集合的虚假肯定率将不会高于原始组合分类器。贯穿训练过程所需的唯一参数是最终检测系统的目标检测率,该参数提供用于设置虚假肯定/虚假否定操作点的最终阈值。因此,训练过程是全自动的并且不需要假定概率分布、统计独立性、或自组织中间拒绝目标。
2.1系统概览:
如上所述,此处描述的分类器训练器操作来学习先前训练的组合分类器的各个弱分类器的拒绝阈值。一般而言,如本领域技术人员所知,总体组合分类器中的每一弱分类器顺序地检查从训练数据集的每一数据元素中取出的“样本”或“窗口”,以确定关于正在检查的特定样本或窗口是否包括正在训练数据中搜索的感兴趣的某特定目标或其它信息的实例的置信度水平。每一样本或窗口的最终“分数”一般是所有弱分类器的置信度水平的和。在最终分数超过某检测阈值的情况下,该特定样本或窗口被组合分类器标识为包括正在搜索的感兴趣的目标或信息的检测到的实例。
例如,出于讨论目的,为使用脸检测,每一“窗口”表示图像中被测试来检查脸的存在(即脸的“实例”)的某一区域。通常,在常规脸检测的情况下,这些区域是矩形,但可以是任何所需形状。在最初训练脸检测系统时,一般针对每一图像选择非常大数量的窗口(还被称为“样本”)并由总体组合分类器中的每一弱分类器处理,这些窗口通常具有不同大小和位置并且通常完全或部分与许多其它窗口重叠。
这一类型的常规检测系统的各个弱分类器通常最初相对于已知实例的地面真值(ground truth)点和构成训练数据的图像中的脸位置,来针对非常大的训练数据集进行训练。训练通常是相对缓慢的过程。然而,一旦经过训练,这些弱分类器则表示随后可用于在评估实际数据(即实况或记录的图像)时使用以检测该数据中的脸的总体组合分类器。这一类型的经训练系统的总体检测速度中的各因素之一是必须评估实际数据来检测脸的弱分类器的数量。
一般而言,给定包括多个弱分类器的成功训练的组合分类器,分类器训练器操作来学习随后被用来构造最终修剪分类器的中间拒绝阈值。该修剪分类器随后取代原始组合分类器来使用。具体地,在一个实施例中,使用确保原始组合分类器检测到的每一目标或特定信息实例也被分类器训练器所产生的修剪分类器检测到的多级修剪过程来学习中间拒绝阈值,从而保证在修剪后对训练集合的检测率不会降低且虚假肯定率不会增加。
换言之,所学习的中间拒绝阈值允许分类器训练器所产生的修剪分类器在相对于原始训练数据不降低检测率或增加虚假肯定率的情况下,只要就可能积极地终止目标检测计算。这一终止表示“修剪”正在评估来寻找正在搜索的目标或所信息实例的窗口或样本。因此,窗口或样本越早地从进一步计算中被修剪,总体检测系统将越快。
一般而言,在训练了原始组合分类器后,分类器训练器通过使用训练数据(可以与用于训练原始组合分类器的数据相同或不同)来学习中间拒绝阈值来操作。对于检测率(或虚假肯定率),没有关于概率分布、统计独立性、或自组织中间目标的假定。基本修剪方法基于以下观察:1)在修剪期间,原始组合分类器所丢弃的肯定样本(例如,对应于正在搜索的目标实例的窗口)可被安全地丢弃;以及2)信息的每一地面真值实例(例如,图像中的脸)仅需要一个匹配的样本或检测窗口来维持原始组合分类器的检测率。
更具体地,通过检查训练数据的每一肯定样本或窗口穿过整个弱分类器系列的“路径”,分类器训练器能够确定肯定样本(即,对于目标检测的测试是肯定的样本)的“包络”。在一个实施例中,包络由从在每一单独的弱分类器处的分数或置信度水平计算得到的下限来表示。
例如,通过特定弱分类器的每一肯定窗口将具有该弱分类器的特定分数或置信度水平。因此,通过确定穿过特定弱分类器的任何肯定样本的最小分数,可以说,在总体组合分类器的训练期间,没有具有更低分数的肯定样本通过该弱分类器。因此,该信息可被用于设置每一弱分类器的最小拒绝阈值,以便在通过弱分类器的任何样本或窗口的置信度水平低于该特定弱分类器的拒绝阈值的情况下,该窗口将立即从进一步考虑中剪除。注意,该修剪过程的具体细节在第3节中进一步详细讨论。
应当注意,以下讨论一般指的是用于检测图像中的脸的脸检测系统。然而,对图像中的脸检测的讨论只是旨在提供分类器训练器的使用和训练的示例性上下文。实际上,鉴于以下讨论,应当清楚,分类器训练器不旨在限于图像或脸检测系统的使用,并且可以通过学习适当的中间拒绝阈值来评估任何类型的数据以标识特定目标实例或感兴趣的其它信息,以用于从先前训练的组合分类器构造修剪分类器。
2.2系统体系结构概览:
以上概述的过程由图3的概括系统图示出。特别地,图3的系统图示出了用于实现此处所描述的分类器训练器的程序模块之间的相互关系。应当注意,图3中由断开的线或虚线所表示的任何框和框之间的互连表示此处所描述的分类器训练器的替换实施例,并且以下描述的这些替换实施例中的任一个或全部可以结合贯穿本文所描述的其它替换实施例来使用。
一般而言,如图3所示,分类器训练器300通过接收先前训练的组合分类器305和训练数据集310并将它们提供给修剪模块320来开始操作。注意,该训练数据集310优选地是用于原始组合分类器305的初始训练的同一数据集,但不要求该数据与用于组合分类器的初始训练的数据相同。另外,原始组合分类器305的最终检测阈值被经由检测阈值模块设为所需水平。该最终检测阈值也被提供给修剪模块320。
如在第3.2节和第3.3节中进一步详细描述的,修剪模块320随后结合来自训练数据集的窗口或样本来评估原始组合分类器305的各个弱分类器,以确定哪些窗口或样本可被修剪以及可对各弱分类器中的每一个设置什么阈值来用于修剪。在各实施例中,修剪模块320通过采用直接后向修剪(DBP)模块325或多实例修剪(MIP)模块330来修剪窗口和确定拒绝阈值来执行上述修剪过程。
在评估了训练数据集310之后,修剪模块320输出中间拒绝阈值335的集合,分类器构造模块340随后将中间拒绝阈值335集合与原始组合分类器305相组合以构造修剪分类器345,修剪分类器345可被存储以供稍后在需要时使用。
如上所述,修剪模块320结合检测阈值和训练数据集310使用先前训练的组合分类器305。尽管分类器训练器300可以使用任何常规地训练的级联检测器305,但在一个实施例中,分类器训练器使用级联学习模块350来学习新颖的组合分类器305,该新颖组合分类器305包括使用被称为“肥树桩”分类器的新颖弱分类器。肥树桩分类器模块355使用迭代过程来学习这些肥树桩分类器,如在第3.5节中进一步详细描述的。此外,如第3.4节中讨论的,在一个实施例中,级联学习模块350结合自动学习的肥树桩分类器来使用权重修整和自引导的组合,以构造组合分类器305以及保守的预备拒绝阈值集合360。
在任一情况下,不管原始组合分类器305是使用常规还是基于肥树桩分类器的技术来学习的,所得的修剪分类器345都可用于基于常规分类器的检测系统中。例如,在一个实施例中,一旦构造了修剪分类器345,则将其提供给评估实况或先前记录的测试数据集370的目标/实例检测模块。目标/实例检测模块365随后经由修剪分类器345来评估测试数据370,并输出包括相对于测试数据集370的目标或实例检测信息的检测数据集375。
显然,检测系统,诸如参考目标/实例检测模块365简要描述的检测系统被用于各种各样的检测操作中,并与各种各样的数据类型一起使用。因此,在一个实施例中,使用数据输入模块380来从一个或多个源接收测试数据370,这些源诸如例如照相机295、雷达或雷达阵列385、话筒或话筒阵列、或生成或接收与目标检测准则相兼容的数据的任何其它源395,其中修剪分类器345是针对该目标检测准则来训练的。通常,数据输入模块380接收到的数据的类型将与训练数据集310是同一类型的。
3.0操作概览:
上述程序模块用于实现分类器训练器。如上概括的,分类器训练器操作来学习先前训练的组合分类器的每一单独弱分类器的拒绝阈值以构造修剪分类器。以下各节提供了对该分类器训练器的操作,以及用于实现在第2节中参考图3描述的程序模块的示例性方法的更详细讨论。
3.1分类器训练器的操作细节:
以下各段详细描述了此处所述的分类器训练器的具体操作和替换实施例。具体地,以下各段描述基于原始组合分类器的最终样本分类的直接后向修剪;基于原始组合分类器的最终样本分类的多实例修剪;用于改进级联学习的权重修整和自引导;以及“肥树桩”分类器。
3.2使用最终分类进行修剪:
一般而言,如上所述,分类器训练器基于通过原始组合分类器的一系列弱分类器的每一样本或窗口的最终分类(即肯定或否定)来学习中间拒绝阈值。设置这些中间阈值,以使它们尽可能早地修剪原始组合分类器所丢弃的那些肯定样本/窗口。通过以此方式处理原始训练数据来学习每一弱分类器的中间拒绝阈值,分类器训练器产生修剪分类器。类似地,所得的修剪分类器参考实际(即,非训练)测试数据来评估的任何样本也将被积极地修剪,从而得到对测试数据的更快的总体分类。
例如,如图4所示,原始组合分类器的最终拒绝400阈值结合训练数据集来使用,以构造包含分类器训练器所构造的修剪分类器的每一弱分类器的最小拒绝阈值(420到475)的拒绝“包络”。如以下进一步详细描述的,该包络表示一轨迹,沿着该轨迹,没有具有更低分数的肯定样本通过任何弱分类器。如以下并且参考上述基于MIP的修剪在第3.3节中所述,使用各基于修剪的实施例来确定中间拒绝阈值(420到475)。
具体地,从训练数据取出的每一样本或窗口的分数sk(t)可被认为是该窗口随时间通过构成原始组合分类器的一系列T个弱分类器的“轨迹”或“路径”。如果肯定样本的最终分数sk(t)落在最终阈值θ(T)之下,则原始组合分类器拒绝该肯定样本。在用于设置中间拒绝阈值的最简单的实施例中,来自落在最终阈值之下的肯定窗口的所有轨迹都被移除。给定了通过最终阈值θ(T)的肯定样本的全集,随后通过确定在每一弱分类器处观察到的分数来简单地计算每一弱分类器的阈值。具体地,如等式1所示,在该实施例中,中间拒绝阈值θ(T)如下计算:
等式1
其中{xk,yk}是训练集合,其中yk=1指示特定样本xk的肯定窗口且yk=-1指示否定窗口。这些中间拒绝阈值产生非常快速的、确保产生不超过原始组合分类器的误差(相对于原始训练数据)的修剪分类器。该修剪实施例在此被称为“直接后向修剪”(DBP)。
该基于DBP的修剪方法与常规修剪方法之间的一个区别是常规方法设置中间阈值拒绝最大数量的否定样本同时尝试限制相对于原始组合分类器被拒绝的肯定样本的百分比。
相反,基于DBP的修剪方法调整原始组合分类器的最终阈值来拒绝最大数量的否定样本同时达到某检测率目标。分类器训练器随后学习中间拒绝阈值,以使所得修剪分类器拒绝最大数量的否定样本并且不拒绝原始组合分类器所保留的肯定样本。因此,不同于常规方案,所得的修剪分类器所拒绝的任何特定肯定样本只是那些注定要被原始组合分类器拒绝的肯定样本。
因此,该过程产生以与原始组合分类器完全相同的方式标记所有肯定样本的快速分类器。实际上,其产生保留与原始组合分类器相同(如果弱分类器未被重新排序)的肯定样本的最快的可能修剪分类器。此外,应当注意,最终通过原始组合分类器阈值的一些否定样本通常被分类器训练器所学习的中间拒绝阈值修剪。这提供了在所得修剪分类器中降低虚假肯定样本率的附加好处。注意,在一个实施例中,如果需要,经由以上描述的基于DBP修剪来训练的弱分类器可被重新排序,但这可影响对某些样本的修剪。
一般而言,使用从大型图像集合(或其它数据)取出的大型训练样本集合(一个或多个样本对应于训练数据中的特定信息实例)来学习中间拒绝阈值。然而,出于解释的目的,该基本过程将参考具有单个脸的单个图像来描述。例如,给定单个图像的情况,该图像中的单个物理脸将对应于处于某可接受位置和比例范围内的肯定检测窗口集合中。通常,每一脸(即每一“实例”)存在着大量可接受的窗口。每一肯定窗口通过一系列弱分类器的“轨迹”对应于最终落在原始组合分类器的最终检测阈值θ(T)之上的可接受窗口。因为这些“可接受”窗口是原始组合分类器所保留的窗口,所以只有这些可接受窗口的轨迹被用于计算中间拒绝阈值。
鉴于分类器训练器的这一能力,可以说,用于设置操作点的原始组合分类器连同阈值θ(T)一起在样本上提供比正在检测脸的地面真值标记更有价值的标记。具体地,总是存在极其难以检测的“肯定”样本的集合,或更坏地,被错误地标记的肯定样本(即“虚假肯定样本”)的集合。实际上,将设置原始组合分类器的最终阈值θ(T)以使这些特定样本被拒绝。然而,在上述基于DBP的修剪方法中,这些特定样本可在总体级联的计算的极早期时候被拒绝。这可以在不损失分类准确度的情况下产生非常显著的速度增长。
3.3多实例修剪:
注意,以下讨论一般描述对图像中的脸的检测。然而,如上所述,此处描述的分类器训练器更一般地能够检测某数据或数据集中特定信息的各具体实例。示例包括检测图像中的脸、语音中的特定词语、信号中的模式、因特网上的特定文档、搜索引擎所收集的查询实例、数据库中的书籍、购物数据库中的产品等。因此,应当理解,以下关于图像中的脸检测的讨论仅旨在作为示例,以提供对分类器训练器的各实施例的操作的更好的理解。
“可接受检测窗口”的概念在用于设置最终拒绝阈值的改进过程中扮演重要角色。具体地,通常难以定义图像中的脸的正确位置和比例。对于完全直立和正面的脸,一般可以找到关于包括下巴、前额、以及耳朵的内缘的最小矩形的某种一致。然而,在包括一定范围的非直立和非正面的脸时,这些矩形变化相当大。注意,在脸检测的情况下,在同一脸通常导致多个肯定窗口或样本时,这表示同一目标的“多实例”检测的情况。
例如,在设置最终拒绝阈值时可以考虑的一个因素是地面真值窗口位置和比例是否应当根据外观头部大小来定义。另选地,要考虑的另一因素是眼睛位置和内眼(innerocular)距离是否是用于脸检测的更可靠的指示符。不幸的是,使用这些因素中的任一个所得的“地面真值”标记不能与目标脸完全一致。
此外,如上所述,总体检测过程一般通过扫描图像并以各种比例在各个位置生成大型但有限的重叠窗口集合来操作。此外,即使在缺少比例/位置多义性时,需要某种溢出来确保所生成的窗口中的至少一个被认为是每一脸的成功检测(即,具有通过阈值θ(T)的分数的肯定窗口)。在地面真值位置和比例中添加不可避免的多义性后,通常将大小处于50%内且处于(大小的)50%距离内的任何窗口认为是真实的肯定样本。使用典型扫描参数,这可对每一脸产生大量窗口,这些窗口是同样有效的肯定检测,其中同一脸的多个窗口具有通过阈值θ(T)的分数。因此,如果这些窗口中的任一个被分类成肯定样本,则认为检测到了对应的脸。
尽管大多数脸检测算法看到了同一脸的多个肯定窗口的这一问题,但该问题通常未得到解决。少数常规方案在“多实例学习”(MIL)框架中考虑了这一问题,其中肯定样本被收集成“包(bag)”中。基于MIL的方案从每一个包中选择一个或多个肯定样本作为真实肯定样本来用于训练原始组合分类器。相反,分类器训练器修改并采用“包”的概念来学习此处描述的中间拒绝阈值。实际上,分类器训练器可以使用最初使用MIL式训练算法(或上述任何其它级联训练算法)训练的原始组合分类器来构造修剪分类器。
给定可接受窗口的“包”的概念,如在以下几段中所讨论的,分类器训练器通过实现基于“多实例修剪”(MIP)的过程来改进在第3.2节描述的基于DBP的修剪过程来修剪样本以避免进一步考虑。具体地,假定图像中的每一地面真值脸存在可接受窗口的集合(即“包”),有可能为每一弱分类器设置更积极的阈值,如等式2所示,其中:
等式2
其中i是地面真值脸的索引;Fi是与地面真值脸i相关联的可接受窗口的集合且Ri是所保留的窗口(见下)的集合。P是具有高于最终阈值的至少一个可接受窗口的地面真值脸的集合:
等式3
在该基于MIP的修剪过程中,肯定样本进入包中,其中每一个包中的肯定样本只有至少一个必须被分类成肯定样本以确保成功地检测每一脸。该准则允许对肯定样本进行比上述基于DBP的方法更积极的修剪,而仍然确保所得的分类器训练器所产生的修剪分类器的中间拒绝阈值产生与原始组合分类器相同的脸检测成功率(相对于原始训练数据集)。
在这种情况下,在等式2和等式3的计算中使用的“保留”样本的定义比以上针对基于DBP的修剪的情况描述的定义稍微更加复杂。具体地,如基于DBP的修剪一样,最初保留来自肯定包中落在最终阈值之上的所有轨迹。然而,与基于DBP的方法相反,每一个包中保留的样本的集合Ri在分类器训练器设置中间拒绝阈值时被进一步减少。具体地,基于MIP的修剪方法检查样本的部分分数是否落在特定弱分类器的当前阈值之下(因为它处于具有更好样本的包中)。每一这样的样本随后从保留集合Ri中被移除并且不被用于设置后续阈值。
换言之,对于对应于特定脸的每一样本包,随着分类器训练器前进通过原始组合分类器的各弱分类器,将从每一个包中消除具有针对特定弱分类器的最低分数的肯定样本。随后,一旦从特定包中消除了肯定样本,则对于后续弱分类器不再考虑该肯定样本。很明显,该修剪方法比上述基于DBP的修剪方法更积极。
注意,在一个实施例中,从每一特定弱分类器的每一个包中的肯定样本的最小分数减去小的偏移值ε,以便不过快地从每一个包中修剪肯定样本。例如,通过将最小分数减少某一小量,如果肯定样本对于该特定弱分类器比该小值ε更接近,则分类器训练器将在包中保留更多肯定样本。在一测试实施例中,使用数量级大约为10-6的ε值。然而,应当注意,该值取决于所使用的弱分类器的类型和这些弱分类器生成的分数的相对值。
上述基于MIP的修剪过程由表1中示出的伪码来概括:
在较早的级拒绝特定轨迹(并且因此从特定包中拒绝对应的肯定样本)可以对后续弱分类器造成生较高的拒绝阈值。因此,在一相关实施例中,分类器训练器延迟从特定包中消除肯定样本,同时跨各消除组合来进行搜索以实现最佳MIP修剪检测器。然而,该实施例可能需要比基本的基于MIP的修剪过程显著更多的计算开销。
最后,应当注意,即使基于MIP的修剪方法比基于DBP的修剪方法更积极,它仍然能保证与原始组合分类器相同的对训练数据集的脸检测率。注意,通过依次设置每一阈值以使得保留所有肯定包以及最少数量的肯定样本通过最终弱分类器,基于MIP的修剪方法被认为是贪婪的。该过程被保证来生成至少与在第3.2节描述的基于DBP的修剪分类器一样快的修剪分类器(因为用于设置阈值的准则较不严格)。然而,该过程不保证所得的修剪分类器是满足该MIP准则的最快的分类器。
3.4权重修整和自引导
上述修剪过程可应用于任何常规组合分类器(即,作为在此通常称为“弱分类器”的较简单功能的和的分类器)。然而,除常规组合分类器之外,以下各段描述用于从非常大的训练样本集合(可能包括数百万、数十亿、或甚至更大数量的样本)中学习组合分类器的新颖过程。为处理这种大数量的样本,分类器训练器在各实施例中结合称为“肥树桩”分类器的新颖的弱分类器(参见第3.5节)来使用权重修整和自引导的新颖适应。
常规上,“权重修整”是用于改进在各学习算法中使用的“推进”技术的概念。例如,在每一轮推进处,常规权重修整忽略具有最小权重的训练样本,直达总权重的某一百分比(通常在1%和10%之间)。因为权重通常非常偏向少量困难的样本,所以这可以消除非常大数量的样本。已经证明,权重修整可以显著地减少用于推进方法的计算而不牺牲准确度。此外,权重修整的另一有益属性是从不完全扔掉样本,因为即使某一样本在一个级处被修整,它也可以在稍候级中返回。因为没有样本被永久丢弃,所以其对于用于学习组合分类器而言是理想的。在一个实施例中,如上所述,所学习的组合分类器随后由分类器训练器处理,以通过学习组合分类器的每一弱分类器的中间拒绝阈值来从该组合分类器构造修剪分类器。
一般而言,如以下讨论地,通过结合经修改的自适应推进(即“AdaBoost”)来使用周期性权重更新的组合以训练以训练原始组合分类器的原始弱分类器,分类器训练器提供用于数十亿样本数量级的大型训练样本集合的基于级联的学习方法。一旦使用以下描述的修整和自引导技术学习了该原始组合分类器,则如上所述,随后可应用上述修剪技术通过构造新修剪分类器来进一步改进效率。
具体地,如表2的伪码所示,分类器训练器首先初始化大型样本输入{(x1,y1),...(xK,yK)}的权重,其中K是数十亿样本的数量级。对整个样本集合的权重更新通过预定义集合A来限制,其指定在连续的权重更新之间要对整个训练集合执行的学习迭代的数量,因为进一步更新的效果降低所以更新时间间隔通常随时间增加。注意,如果需要,可以在学习每一弱分类器后,对整个训练集合的分数执行权重更新。然而,从附加更新得到的任何性能增益可以被增加的计算开销所抵销。
来自该学习构成的输出是弱分类器的预备阈值的集合,使结果成为软级联。然而,这些预备拒绝阈值极其保守,保留了训练集合中的所有肯定样本。它们导致非常慢的检测器,其中每一窗口访问的弱分类器的平均数量是数百数量级的。然而,如上所述,分类器训练器使用上述修剪技术学习每一弱分类器的新中间拒绝阈值,从而显著地提高了所得修剪分类器的总体性能。
上述学习过程由在表2中示出的伪码来概括:
3.5“肥树桩”弱分类器:
如上所述,在各实施例中,此处称为“肥树桩”的新类型的弱分类器结合第3.4节中描述的学习过程来使用,以训练原始组合分类器(即级联检测器),具有每一肥树桩分类器的预备拒绝阈值。该肥树桩弱分类器使用可变格(bin)大小来显著地提高所得级联的总体分类性能而在分类时间上的增加可以忽略。
一般而言,此处描述的肥树桩分类器表示基于多个阈值执行多路划分的决策树。例如,图5提供使用具有固定格大小(510到540)的哈尔(Haar)特征的常规现有技术查找表(LUT)分类器的示例。相反,图6示出使用具有动态确定的格宽度和位置(610到640)的哈尔特征的“肥树桩”多线程分类器的示例。
多阈值可以从更宽范围的矩形过滤器(例如,预测脸的值非常大还是非常小的过滤器)中提取预测值。如本领域技术人员所知,使用完整决策树作为弱分类器一般对检测性能产生改进。不幸的是,这伴随着检测时间的可测量增加。已经观察到,检测性能可以通过使用具有固定格的查找表(LUT)来代替简单树桩而改进(如图5所示)。然而,当在LUT表中存在大量格时,通常有过多灵活性,这可导致过训练。相反,当在LUT表中存在过少格时,常规的基于决策树的学习算法表现得不比简单树桩更好。
为解决这些问题,分类器训练器提供肥树桩分类器,这些分类器是通过将输入范围划分成多个灵活的可变大小的格来被迭代地学习的,这些格最终基于用于最大化每一可变大小格中肯定对否定样本的比率的迭代操作而对每一格收敛于最佳大小。对于过滤器池中的每一矩形过滤器,在当前权重集合ω1,i,i∈Q(参见表3的迭代伪码)下构造最小化Z分数的“肥树桩”分类器。注意,收敛是得到保证的,因为在每一迭代处Z分数都不增加。在一测试实施例中,最大迭代次数被设为5,然而,已经观察到,1到3次迭代通常足以实现收敛。所得弱分类器像小型决策树;然而,该树中的每一节点使用同一矩形过滤器。这显著地提高了每一弱分类器的速度,同时提供良好的检测性能。
用于学习肥树桩分类器的过程由在表3中示出的伪码来概括:
例如,在一测试实施例中,从92,412个哈尔型矩形过滤器的池中构造
这些肥树桩弱分类器的集合。这些矩形过滤器按检测窗口的方差来归一化。此外,在一个实施例中,该窗口方差的值作为可被选择来用于弱分类器中的附加“过滤器”来提供。另外,该过滤器可供使用而不需要任何附加计算开销,因为无论如何都要为每一窗口进行计算来归一化。注意,第一肥树桩弱分类器总是告知(split on)方差。
4.0用于学习拒绝阈值的操作概览:
以上相对于学习中间拒绝阈值描述的各实施例中的一些由图7中提供的操作流程图来概括。注意,图7仅旨在作为用于学习中间拒绝阈值的一般概览,并且应当鉴于图3和图4以及进一步鉴于以上在第2节和第3节中提供的详细描述来理解。
具体地,图7提供示出用于在给定已训练的原始组合分类器(即,级联检测器)、原始训练数据集、以及最终检测阈值的情况下,学习中间拒绝阈值的各实施例的示例性流程图。应当注意,图7中由断开的线或虚线所表示的任何框表示分类器训练器的替换实施例,并且以下描述的这些替换实施例中的任一个或全部可以结合贯穿本文所描述的其它替换实施例来使用。
例如,如图7所示,分类器训练器通过接收700级联检测器检测阈值705、用于训练该级联检测器的训练数据310、以及当然先前训练的级联检测器305(在此也被称为“原始组合分类器”)的输入来开始操作。
给定这些输入,分类器训练器在训练集合310中与任何地面真值目标相匹配的所有窗口上运行710级联检测器305。换言之,所有肯定样本穿过级联检测器305。在将这些窗口穿过级联检测器305时,保留各信息。例如,每一窗口的最终检测分数连同总体级联中每一弱分类器的中间分数一起保留。给定该信息,分类器训练器接着收集715具有超过为级联检测器305设置的检测阈值的最终分数的所有窗口。
在一个实施例(以上参考DBP(即“直接后向修剪”)描述的实施例)中,分类器训练器接着评估针对每一弱分类器收集的窗口来修剪720高于在每一单独的弱分类器处看到的最小分数的所有中间分数。这些单独的最小分数随后被输出(725)到每一分类器的中间拒绝阈值集合335(循环730)。
在一相关的修剪实施例(以上参考MIP(即“多实例修剪”)描述)中,分类器训练器收集715具有超过为级联检测器305设置的检测阈值的最终分数的窗口/样本,随后将所收集的窗口归组735成各个样本“包”,其中特定包中的每一窗口或样本对应于同一(即多实例)地面真值目标的肯定样本。例如,在脸检测的情况下,表示图像中同一确切脸(即,同一实例)的肯定样本的每一窗口被置于同一个包中。
接着,对于每一弱分类器,分类器训练器确定740每一个包中剩余的每一窗口的最大分数。分类器训练器随后从每一弱分类器的所有包的最大分数中计算745最小分数,并输出750该最小分数作为当前弱分类器的中间拒绝阈值335。分类器训练器从特定包中修剪或消除755具有小于计算得到的最小分数的分数的所有窗口。(注意,如上所述,该“最小分数”可小于各最大分数中的实际最小值,因为在一个实施例中,从最小分数减去了小的偏移值ε。)该过程随后通过输出750每一弱分类器的各个中间拒绝阈值335来继续(循环760)。然而,应当注意,如上所述,一旦从特定包中修剪755了窗口,则对于任何后续弱分类器,在该包中该窗口不再可用于评估(即计算该包的最大分数)。
最后,不管使用哪一修剪实施例,如上所述,一旦学习了级联检测器305的每一弱分类器的中间拒绝阈值335,分类器训练器即使用这些中间拒绝阈值来构造765修剪分类器345。随后存储所得修剪分类器345以供稍后在使用某基于级联的目标检测应用来检测目标时使用。
以上对分类器训练器的描述是出于说明和描述的目的而提出的。这并不是要穷举本发明或将本发明限于所公开的精确形式。鉴于上述教导,许多修改和变型都是可能的。此外,应当注意,可以按所需的任何组合使用上述替换实施例的任一个或全部以形成分类器训练器的另外的混合实施例。本发明的范围并不旨在由该详细描述来限定,而是由所附权利要求书来限定。