CN101127079A - 信息处理设备和方法、记录介质及程序 - Google Patents

信息处理设备和方法、记录介质及程序 Download PDF

Info

Publication number
CN101127079A
CN101127079A CNA2007101292492A CN200710129249A CN101127079A CN 101127079 A CN101127079 A CN 101127079A CN A2007101292492 A CNA2007101292492 A CN A2007101292492A CN 200710129249 A CN200710129249 A CN 200710129249A CN 101127079 A CN101127079 A CN 101127079A
Authority
CN
China
Prior art keywords
node
discr
weak
mark
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2007101292492A
Other languages
English (en)
Other versions
CN101127079B (zh
Inventor
佐部浩太郎
日台健一
小屋启
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Publication of CN101127079A publication Critical patent/CN101127079A/zh
Application granted granted Critical
Publication of CN101127079B publication Critical patent/CN101127079B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/751Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06F18/2148Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the process organisation or structure, e.g. boosting cascade
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06V10/7747Organisation of the process, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Biomedical Technology (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

一种信息处理设备,包括:高节点,具有多个弱鉴别器,所述多个弱鉴别器已经学习第一标记的学习采样和第二标记的学习采样,所述第二标记的学习采样与第一标记的学习采样具有预定的坐标关系;第一低节点,具有多个弱鉴别器,所述多个弱鉴别器已经基于高节点的辨别结果学习第一标记的学习采样;以及第二低节点,不具有弱鉴别器。

Description

信息处理设备和方法、记录介质及程序
技术领域
本发明涉及信息处理设备和方法、记录介质及程序,并具体涉及一种信息处理设备和方法、记录介质及程序,其能够利用少量计算快速检测感兴趣的对象,如面部图像。
背景技术
已经提出许多相关技术的面部检测设备,这些面部检测设备不利用在复杂图像场景中的任何运动,而仅利用图像信号的灰度(grayscale)模式。
图1示出了相关技术的面部检测设备1的示例配置(参见JP-A-2005-284487)。该面部检测设备1输出面部的位置和大小,其指示给定图像(输入图像)中的面部区域。
面部检测设备1的图像输出部分2,将灰度图像(亮度图像)提供给缩放(scaling)部分3,作为输入到面部检测设备1的输入图像。
缩放部分3将从图像输出部分2提供的输入图像,放大或缩小至指定的比例,并将产生的已缩放的图像输出给扫描器4。
特别地,图2中所示的输入图像10A首先按原样输出给扫描器4。输入图像10A经历扫描器4和鉴别器(discriminator)5中执行的处理(下文将描述),然后通过缩小输入图像10A的大小产生输入图像10B。输入图像10B经历扫描器4和鉴别器5中执行的处理,然后输出通过进一步缩小输入图像10B的大小获得的输入图像10C。类似地,顺序产生进一步缩小的各图像,如10D和10E,并且当缩小的图像的图像大小变得小于扫描器4在扫描操作中移动的窗口的大小时,停止这种处理。停止这种处理后,图像输出部分2就输出下一个输入图像到缩放部分3。
扫描器4利用预定大小的窗口,以例如从左上到右下的方向,顺序扫描从缩放部分3提供的已缩放的输入图像,并且输出窗口中的图像作为窗口图像。
特别地,如图3中所示,窗口11顺序应用到给定图像(如图像10A)的整个部分(屏幕),所述窗口11具有与随后的鉴别器5接受的窗口大小相同的大小,并且将在窗口11中的每个位置的图像(在下文中称为剪切(cutout)图像或窗口图像)输出到鉴别器5。
如图4中所示,按像素在扫描操作中移动窗口11。即,在预定位置处的窗口11中的剪切图像从扫描器4输出之后,在下一次扫描中,窗口11向右移动一个像素,并且将在该位置的窗口11中的剪切图像提供给鉴别器5。
虽然窗口大小是固定的,然而缩放部分3顺序缩小输入图像,使得输入图像的图像大小变换为如上所述的各种比例,允许检测任意大小的对象。
即,输入图像中任意大小的面部被顺序缩小,并且图像大小最终变得与窗口大小基本上相等。结果,无论窗口11中的图像是否是人类面部图像,都能够被检测。
鉴别器5参考来自组学习机(group learner)6的学习结果,所述组学习机6对形成鉴别器5的多个弱鉴别器执行组学习,以便辨别:在扫描操作中由扫描器4逐次移动的每个窗口图像是面部图像(感兴趣的对象)、还是除面部图像以外的图像(不感兴趣的对象)。
如图5中所示,鉴别器5包括由全体学习获得的多个弱鉴别器21i(i=1,2,3,...,K)和加法器22,该加法器22将来自各弱鉴别器的输出(各辨别结果)与各自相应的权重αi(i=1,2,3,...,K)相乘,以确定加权多数判决F(x)。
每一个弱鉴别器211到21K,基于窗口11内的各像素中任意位置处的两个像素,辨别窗口11中的图像是否是人类面部图像。参考字符K对应于从窗口11中的图像可提取的两个像素的组合数量。
特别地,两个像素之间亮度的差异(在下文中称为像素间差异特征)被用作特征量用于辨别目的。窗口图像的特征量,与通过利用由多个灰度图像形成的各学习采样(阈值)而学习的特征量相比较,该多个灰度图像预先已经被标记为感兴趣的对象或者不感兴趣的对象,以便顺序输出估计值f(x),用于以确定性或者概率性方式,估计窗口图像是否为感兴趣的对象。
对于输出二进制值的弱鉴别器,如AdaBoost中,例如使用阈值将像素间差异特征二进制化,以便辨别感兴趣的对象和不感兴趣的对象。作为替代,如在Real-AdaBoost中,例如像素间差异特征可以用来输出连续值,其以概率性方式表示是感兴趣的对象的可能性。
根据预定的算法,通过学习过程中的组学习机6学习弱鉴别器21i需要什么,如用于辨别目的的特征量(阈值)和两个像素。
由组学习机6连续产生多个弱鉴别器,该组学习机6根据下面将描述的算法,利用上述各学习采样来执行组学习。多个弱鉴别器以例如产生弱鉴别器的顺序,计算上述各估计值。
加法器22将每个弱鉴别器21i的估计值与权重相乘,所述权重是对于每个弱鉴别器21i的可靠性,将各加权的值相加并输出相加的值(加权多数判决的值)。
在学习过程中由组学习机6学习用于加权多数判决的权重(可靠性),在学习过程中产生各弱鉴别器。
在鉴别器5中,如上所述,每个弱鉴别器21i顺序输出估计值f(x),其表示输入窗口图像是否为面部,并且加法器22计算并输出加权多数判决F(x)。根据加权多数判决F(x)的值,判断装置(未示出)最后判断窗口图像是否为感兴趣的对象。
在加权多数判决过程期间,当在该点由计算的值判断窗口图像不是感兴趣的对象时,鉴别器5不等待来自所有弱鉴别器的各计算结果,而甚至在其过程中也终止计算。
具体地,无论何时在学习过程中预先产生的多个弱鉴别器输出估计值,各估计值与在学习过程中获得的各个弱鉴别器的各权重相乘,并且将各加权的值相加以更新加权多数判决的值。无论何时更新加权多数判决的值(估计值),使用中止(abort)阈值控制是否中止估计值的计算。中止阈值(参考值)在学习过程中由组学习机6学习。
鉴别器5具有弱鉴别器,其使用相当简单的特征量,即,两个像素之间的亮度差异(像素间差异特征),以辨别感兴趣的对象和不感兴趣的对象,使得能够增加检测感兴趣的对象的速度。另一方面,中止过程用来在计算过程中进行到用于下一个窗口图像的辨别过程,而不等待来自所有弱鉴别器的计算结果,使得检测过程中的计算量能够显著地减少。这些效果允许甚至更快的处理。
此外,在鉴别器5中,多个弱鉴别器形成节点并且多个节点以树形结构放置。
图6示出当所有下面的图像作为学习采样学习时、形成的树形结构的实例;标记为朝前的面部的图像(具有范围从-15度到+15度的偏航角(yawangle)的图像)(下文称为标记W11图像)、标记为朝左的面部的图像(具有范围从+15度到+65度的偏航角的图像)(下文称为标记W21图像)、标记为朝右的面部的图像(具有范围从-65度到-15度的偏航角的图像)(下文称为标记W31图像)、标记为从前面位置在滚动方向上旋转+20度的面部的图像(下文称为标记W12图像)、标记为在滚动方向上旋转+20度的朝左的面部的图像(下文称为标记W22图像)、标记为在滚动方向上旋转+20度的朝右的面部的图像(下文称为标记W32图像)、标记为从前面位置在滚动方向上旋转-20度的面部的图像(下文称为标记W13图像)、标记为在滚动方向上旋转-20度的朝左的面部的图像(下文称为标记W23图像)、以及标记为在滚动方向上旋转-20度的朝右的面部的图像(下文称为标记W33图像)。
如图7A中所示,偏航角是中心位置在轴202上的角,轴202垂直于轴201,所述轴201与连接人双眼并基本上穿过人头部的中心的线相平行,并且轴202基本上垂直穿过人头部的中心。偏航角被定义为在右方向上为负,而在左方向上为正。
滚动角表示围绕垂直于轴201和202的轴203旋转的角,并且当轴201为水平时被定义为零度。
还有另一个角称为倾斜角(pitch angle),其表示姿态。倾斜角是以轴201为中心的朝上和朝下的角,并且被定义为在朝上方向上为正,而在朝下方向上为负。
当图6中所示的树形结构未被使用时,例如,可能需要图8中所示的弱鉴别器组231以便辨认(identify)一个标记。弱鉴别器组231具有K个弱鉴别器,即,弱鉴别器21-11到21-1k。这K个弱鉴别器学习一个标记的学习采样。
因此,为了学习例如九个标记(即标记W11至W13、标记W21至W23和标记W31至W33)的学习采样,需要准备用于学习标记W11的学习采样的弱鉴别器组231-1、以及用于学习各自的标记(即标记W12、标记W13、标记W21到W23和标记W31到W33)的学习采样的弱鉴别器组231-2到231-9,如图9所示。这些弱鉴别器组231-2到231-9的每一个也具有K个弱鉴别器。
在图6中所示的树形结构中,从最上游节点到最下游节点的学习路径中的弱鉴别器的数量,最大也是K。然而,如上所述,当加权多数判决的值小于中止阈值时,在该点中止辨别(辨认)过程,该加权多数判决的值,是通过将从辨别(辨认)过程中每个弱鉴别器中执行的过程产生的值加权、并将各加权的值相加获得的值。因此,可以减少弱鉴别器的数量。
图10示意地示出了上述解释。即,在该实施例中,虽然节点221基本由弱鉴别器211到21100形成,然而每个弱鉴别器21i具有基于中止阈值的中止能力,如图11所示。在图中,参考字符Y表示随后的级接管(take over)输出,而参考字符N表示过程在此中止。
因此,鉴别器5用作判断装置,不仅用于计算加权多数判决,作为用于判断窗口图像是否为感兴趣的对象的估计值,而且基于该估计值判断窗口图像是否为感兴趣的对象。
组学习机6利用组学习来预先学习各弱鉴别器、要与各弱鉴别器的输出(估计值)相乘的各权重等等。
作为组学习,可以应用任何特定的方法,只要它们在多数判决过程中能够确定多个弱鉴别器的结果。例如,可以应用利用增强(boosting)的组学习,如AdaBoost,其中加权数据以执行加权多数判决。
发明内容
然而,在如图6所示的相关技术的面部检测设备1中,需要对每个视图(九类图像)学习学习采样,并且作为学习结果,存储两个像素的位置对(K对)、用于弱鉴别器的阈值(K个值)、用于加权多数判决的权重(弱鉴别器的可靠性)(K个权重)、和每个视图的中止阈值(K个值),产生大量字典(dictionary)数据。
为了使面部检测设备1商品化为内建LSI,需要减少逻辑门规模和制造成本。然而,当面部检测设备1实现为硬件时,字典数据将存储在ROM中,这可能需要比计算电路更大的电路(大量的逻辑门)。
鉴于上述情况,期望减少组学习中检测感兴趣的对象需要的字典数据量。
根据本发明的实施例的一种信息处理设备,包括:高节点,具有多个弱鉴别器,所述多个弱鉴别器已经学习第一标记的学习采样和第二标记的学习采样,所述第二标记的学习采样与第一标记的学习采样具有预定的坐标关系;第一低节点,其具有多个弱鉴别器,所述多个弱鉴别器已经基于高节点的辨别结果学习第一标记的学习采样;以及第二低节点,不具有弱鉴别器。第一低节点基于高节点的辨别结果对输入信号执行辨认过程,以便识别(recognize)第一标记的图像,并且第二低节点根据坐标关系,通过利用第一低节点中的弱鉴别器,基于高节点的辨认结果对输入信号执行辨认过程,以便辨认第二标记的图像。
高节点和第一低节点中的弱鉴别器,基于学习采样的图像数据中的两个像素值之间的差异与阈值有多少不同,执行辨认过程,并且第二低节点可以基于根据输入信号的图像上的两个像素值之间的差异、与对第一节点的辨认过程中使用的阈值有多少不同,执行辨认过程,所述输入信号的位置通过基于坐标关系、对在第一节点的辨认过程中使用的两个像素的位置执行坐标变换获得。
第二标记的学习采样对应于某图像,其通过在滚动方向上旋转第一标记的学习采样预定的角度、或在水平方向上翻转(flip)第一标记的学习采样获得,并且第二低节点可以基于根据输入信号、图像上的两个像素值之间的差异、与对第一节点的辨认过程中使用的阈值有多少不同,执行辨认过程,所述输入信号的位置通过在滚动方向上将在第一节点的辨认过程中使用的两个像素的位置旋转预定的角度、或在水平方向上翻转两个像素的位置获得。
进一步提供获得信号的输出装置,该信号经历辨认过程并将其输出到高节点、第一低节点或第二低节点,并且当第二低节点基于根据输入信号、图像上的两个像素值之间的差异、与对第一图像的辨认过程中使用的阈值有多少不同,执行辨认过程时,输出装置能够将大于学习采样的图像的图像信号输出到第二低节点,所述输入信号的位置通过在滚动方向上将在第一节点的辨认过程中使用的两个像素的位置旋转预定的角度获得。
形成高节点和第一低节点的弱鉴别器,根据从输出装置输出的图像信号,能够适于在滚动方向上旋转学习采样预定的角度,其中心与图像的中心对齐,并且根据图像信号,对离开(go off)图像的区域不执行学习。
高节点以及第一和第二低节点,可以包括用于利用可靠性将每个辨别结果加权、累加各加权的辨别结果、并基于累加的和中止辨认过程的中止装置。
无论何时加权并累加辨别结果、或者无论何时加权和累加预定数量的辨别结果,中止装置都能够判断是否中止辨认过程。
根据本发明的另一实施例的一种信息处理方法,是一种用于信息处理设备的信息处理方法,该信息处理设备包括:高节点,具有多个弱鉴别器,其已经学习第一标记的学习采样和第二标记的学习采样,所述第二标记的学习采样与第一标记的学习采样具有预定的坐标关系;第一低节点,其具有多个弱鉴别器,所述多个弱鉴别器基于高节点的辨别结果,已经学习第一标记的学习采样;以及第二低节点,其不具有弱鉴别器。信息处理方法包括步骤:利用第一低节点,基于高节点的辨别结果对输入信号执行辨认过程,以便识别第一标记的图像;以及利用第二低节点,根据坐标关系,通过利用第一低节点中的弱鉴别器,基于高节点的辨认结果对输入信号执行辨认过程,以便辨认第二标记的图像。
根据本发明的另一实施例的程序,是一种用于信息处理设备的程序,该信息处理设备包括:高节点,具有多个弱鉴别器,所述多个弱鉴别器已经学习第一标记的学习采样和第二标记的学习采样,所述第二标记的学习采样与第一标记学习采样具有预定的坐标关系;第一低节点,其具有多个弱鉴别器,所述多个弱鉴别器基于高节点的辨别结果,已经学习第一标记的学习采样;以及第二低节点,其不具有弱鉴别器。该程序包括步骤:利用第一低节点,基于高节点的辨别结果对输入信号执行辨认过程,以便辨认第一标记的图像,以及利用第二低节点,根据坐标关系,通过利用第一低节点中的弱鉴别器,基于高节点的辨认结果对输入信号执行辨认过程,以便辨认第二标记的图像。
在根据本发明的实施例的信息处理设备、信息处理方法及程序中,基于高节点(其具有多个弱鉴别器,所述多个弱鉴别器已经学习第一标记的学习采样和第二标记的学习采样,所述第二标记的学习采样与第一标记的学习采样具有预定的坐标关系)的辨别结果,第一低节点(其具有多个弱鉴别器,所述多个弱鉴别器已经学习第一标记的学习采样)基于高节点的辨别结果用来对输入信号执行辨认过程,以便辨认第一标记的图像,并且第二低节点(其不具有弱鉴别器)用来根据坐标关系、通过利用第一低节点中的弱鉴别器、基于高节点的辨认结果对输入信号执行辨认过程,以便辨认第二标记的图像。
根据本发明的实施例,可以减少面部图像辨别过程需要的字典数据。
附图说明
图1是示出相关技术的对象检测设备的处理功能的功能框图;
图2是用于解释比例变换的视图;
图3是用于解释如何在扫描操作中移动搜索窗口的视图;
图4是用于解释搜索窗口的移动的视图;
图5示出鉴别器的配置;
图6是用于解释相关技术中各节点的树形结构的视图;
图7A和7B是用于解释面部姿态角度的视图;
图8是用于解释典型的AdaBoost中的辨别器(identifier)的配置的视图;
图9是用于解释典型的AdaBoost如何辨认标记的视图;
图10示出具有拒绝判断能力的弱鉴别器形成的节点的配置;
图11示出具有拒绝判断能力的弱鉴别器的配置;
图12是示出应用本发明的对象检测设备的处理功能的功能框图;
图13示出鉴别器的配置;
图14是用于解释像素间差异特征的视图;
图15A到15C是用于解释像素间差异特征和阈值之间关系的视图;
图16是用于解释频率分布的视图;
图17A和17B是用于解释基于概率密度的像素间差异特征的视图;
图18示出加权多数判决F(x)的值的变化;
图19示出学习采样的分类的示例;
图20是用于解释学习过程中各节点的树形结构的视图;
图21是用于解释节点的数据结构的视图;
图22是示出组学习机的示例性功能配置的方框图;
图23是用于解释学习过程的流程图;
图24是示出节点学习部分的示例性功能配置的方框图;
图25是用于解释图23中步骤S12处的节点学习过程的流程图;
图26是示出弱鉴别器选择器的示例性功能配置的方框图;
图27是用于解释图25中步骤S43处的弱鉴别器选择过程的流程图;
图28是用于解释阈值的移动的视图;
图29是示出鉴别器的示例性功能配置的方框图;
图30是用于解释对象检测过程的流程图;
图31是用于解释图30中步骤S103处的辨认过程的流程图;
图32是用于解释辨别过程中的各节点的树形结构的视图;
图33是用于解释图31中步骤S132处的评估值计算过程的流程图;
图34是用于解释图33中步骤S162处的、要对学习节点执行的评估值计算过程的流程图;
图35是用于解释图33中步骤S163处的、要对未学习节点执行的评估值计算过程的流程图;
图36是用于解释与学习节点相关联的标记的图像、和与未学习节点相关联的标记的图像之间的坐标关系的视图;
图37是示出作为学习结果获得的两个像素对的位置、和当在未学习节点计算特征量时使用的各像素的位置之间的关系的视图;
图38是示出作为学习结果获得的两个像素对的位置、和当在未学习节点计算特征量时使用的各像素的位置之间的关系的另一个视图;
图39A和39B示出另一示例性窗口图像;以及
图40是示出示例性计算机配置的方框图。
具体实施方式
在下面描述执行本发明的最佳方式之前,例如如下解释公开的发明是如何对应于实施例的:即使在此描述了一个实施例,但是该实施例未描述为对应本发明,其不意味该实施例不符合本发明。相反地,即使在此根据本发明描述了一个实施例,也不意味该实施例唯一地对应于本发明。
此外,不意味着下面的描述包括在此描述的全部发明。换句话说,下面的描述不排除存在这里描述但在本申请中未请求保护的发明,即,可以用作分案申请的发明、或者可以在将来作为改进公开并补充的发明。
根据本发明的实施例的一种信息处理设备包括
高节点(例如,图32中的学习节点81-1-1),具有多个弱鉴别器,所述多个弱鉴别器已经学习第一标记的学习采样(例如,图36中标记W11的图像)和第二标记的学习采样,所述第二标记的学习采样与第一标记的学习采样具有预定的坐标关系(例如,通过在滚动方向旋转图36中标记W11的图像+20度,能够获得标记W12的图像),
第一低节点(例如,图32中的学习节点81-1-1-1),具有多个弱鉴别器,所述多个弱鉴别器已经基于高节点的辨别结果学习第一标记的学习采样,以及
第二低节点(例如,图32中的未学习节点81-1-1-2),其不具有弱鉴别器。
第一低节点对输入信号执行辨认过程,以便基于高节点的辨别结果识别第一标记的图像,以及
第二低节点根据坐标关系,通过利用第一低节点中的弱鉴别器,对输入信号执行辨认过程,以便基于高节点的辨别结果辨认第二标记的图像。
高节点和第一低节点中的弱鉴别器,基于学习采样的图像数据中两个像素值之间的差异和阈值有多少不同,执行辨认过程,以及
第二低节点可以基于根据输入信号、图像上的两个像素值之间的差异、与对第一节点的辨认过程中使用的阈值有多少不同,执行辨认过程,所述输入信号的位置通过基于坐标关系(例如,图37或38)、对在第一节点的辨认过程中使用的两个像素的位置执行坐标转换得到。
第二标记的学习采样对应于一图像,其通过在滚动方向上以预定的角度旋转第一标记的学习采样、或在水平方向上翻转第一标记的学习采样获得,以及
第二低节点可以基于根据输入信号、图像上的两个像素值之间的差异、与对第一节点的辨认过程中使用的阈值有多少不同,执行辨认过程,所述输入信号的位置通过基于坐标关系(例如,图37或38)、对在对第一节点的辨认过程中使用的两个像素的位置执行坐标转换得到。
进一步提供获得信号的输出装置(例如,图12中的扫描器54),该信号经历辨认过程并将其输出到高节点、第一低节点或第二低节点,以及
当第二低节点基于根据输入信号、图像上的两个像素值之间的差异、与对第一节点的辨认过程中使用的阈值有多少不同,执行辨认过程时,输出装置能够将大于学习采样的图像的图像信号(例如,图39B)输出到第二低节点,所述输入信号的位置通过在滚动方向上、将在第一节点的辨认过程中使用的两个像素的位置旋转预定的角度得到。
形成高节点和第一低节点的弱鉴别器,根据从输出装置输出的图像信号,适于在滚动方向上旋转学习采样预定的角度,其中心与图像的中心对齐,并且根据图像信号,对离开图像的区域不执行学习(图39B中四个角处的像素)。
高节点以及第一和第二低节点,可以包括中止装置,用于将每个辨别结果用可靠性加权、累加各加权的辨别结果、并基于累加的和中止辨认过程(例如,图29中的判断部分472,其执行图34中的步骤S175处的过程)。
无论何时加权并累加辨别结果、或者无论何时加权和累加预定数量的辨别结果,中止装置都可以判断是否中止辨认过程。
根据本发明的另一个实施例的一种信息处理方法或程序,是用于信息处理设备的信息处理方法或程序,该信息处理设备包括
高节点(例如,图32中的学习节点81-1-1),具有多个弱鉴别器,所述多个弱鉴别器已经学习第一标记的学习采样(例如,图36中标记W11的图像)和第二标记的学习采样,所述第二标记的学习采样与第一标记的学习采样具有预定的坐标关系(例如,通过在滚动方向上旋转图36中标记W11的图像+20度,能够获得的标记W12的图像),
第一低节点(例如,图32中的学习节点81-1-1-1),具有多个弱鉴别器,所述多个弱鉴别器已经基于高节点的辨别结果学习第一标记的学习采样,以及
第二低节点(例如,图32中的未学习节点81-1-1-2),其不具有弱鉴别器。
信息处理方法或程序包括步骤
利用第一低节点,基于高节点的辨别结果对输入信号执行辨认过程,以便识别第一标记的图像(例如,图33中的步骤S121),以及
利用第二低节点,根据坐标关系,通过利用第一低节点中的弱鉴别器,基于高节点的辨认结果对输入信号执行辨认过程,以便辨认第二标记的图像(例如,图33中的步骤S163)。
下面将参考附图详细描述应用本发明的特定实施例。
在本发明的实施例中,利用整体学习(组学习)以检测来自图像的感兴趣的对象的信息处理设备,被应用于对象检测设备。
由组学习获得的学习机,包括大量弱假设和组合这些弱假设的组合器。
增强是结合弱假设的输出的组合器的示例,所述弱假设由独立于输入的固定权重加权。
在增强中,操作学习采样服从的分布,使得以前产生的弱假设的学习结果,被用来增加已经产生误差的学习采样(练习)的权重,并且基于操作的分布学习新的弱假设。这样,相对于其他增加了学习采样的权重,所述学习采样引起大量错误答复,并因此难于作为感兴趣的对象辨别,使得顺序选择弱鉴别器,每一个为具有大权重(即,难以辨认)的学习采样提供正确答复。在这种情形,在学习过程中顺序产生弱假设,并且新产生的弱假设取决于以前所产生的弱假设。
为了检测感兴趣的对象,使用如上面所述的学习过程中连续产生的、大量弱假设的辨别结果。例如,在AdaBoost中,学习过程中产生的弱假设的所有辨别结果(1对应于感兴趣的对象,而-1对应于不感兴趣的对象)(下文中称为弱鉴别器)被提供给组合器,该组合器利用可靠性为每个辨别结果加权,所述可靠性在对每个相应的弱鉴别器执行的学习过程中计算,将各加权的值相加,输出加权多数判决的结果,并且评估组合器的输出值,以便选择输入图像是否为感兴趣的对象。
弱鉴别器使用某些特征数量,以判断输入图像是感兴趣的对象还是不感兴趣的对象。弱鉴别器可以以确定性方式输出:输入图像是感兴趣的对象还是不感兴趣的对象,或者可以以概率密度形式或者以概率方式等输出是感兴趣的对象的可能性。
该实施例使用利用弱鉴别器的组学习机,每一个弱鉴别器利用非常简单的特征量,即,两个像素之间亮度的差异(像素间差异特征),来辨别感兴趣的对象与不感兴趣的对象。组学习机设计为在要判断的各视图中、仅学习预定视图的学习采样,并且能够利用学习结果来判断其他视图。
即,尽管本发明特别涉及一种辨别过程,仍然将提供下面的部分便于理解,如JP-A-2005-284487中:
(1)对象检测设备
(2)组学习机
(2-1-1)输出二进制值的弱鉴别器
(2-1-2)输出连续值的弱鉴别器
(2-2)中止阈值
(3)弱鉴别器组装(assembly)结构
(4)学习方法
(4-1)鉴别器的产生
(4-2)弱鉴别器的产生
在以基本与JP-A-2005-284487类似的方法描述上述部分之后,将在下面部分描述特别涉及本发明的部分:
(5)对象检测方法
(1)对象检测设备的配置
图12示出本发明应用的对象检测设备51的示例性结构。对象检测设备51检测来自给定图像(输入图像)的感兴趣的对象。
图像输出部分52输出灰度图像(亮度图像),作为输入到对象检测设备51的输入图像,如图1中图像输出部分2。
缩放部分53放大或者缩小,即,缩放输入图像,如图1中缩放部分3。
扫描器54利用预定大小的窗口,在例如从左上到右下的方向中顺序扫描已缩放的输入图像,并且输出窗口中的图像作为窗口图像,如图1中的扫描器4。
鉴别器55由具有多个弱鉴别器等的树形结构的节点形成,并且该鉴别器55辨别:扫描操作中由扫描器54连续移动的每个窗口图像,是感兴趣的对象还是不感兴趣的对象。
即,缩放部分53输出已缩放的图像,所述图像通过放大或者缩小输入图像至所有指定比例获得。
扫描器54利用具有要检测的感兴趣的对象大小的窗口,顺序扫描每个已缩放的图像,以便剪切窗口图像,并且鉴别器55辨别每个窗口图像是否是面部。
鉴别器55参考组学习机56的学习结果,所述组学习机56对形成鉴别器55的多个弱鉴别器执行组学习,以便辨别当前窗口图像是否是感兴趣的对象,如面部图像,或者不感兴趣的对象(不是面部图像的图像)。
当从输入图像检测多个感兴趣的对象时,对象检测设备51输出多个区域信息块。此外,当多个区域信息块中的一些区域相互重叠时,对象检测设备51也可以利用下面将描述的方法,选择评估为最可能是感兴趣的对象的区域。
从图像输出部分52输出的图像(灰度图像)首先输入到缩放部分53。缩放部分53利用双线性插值来减小图像大小。在该实施例中,缩放部分53最初并不产生多个减少的图像,而是重复将需要的图像输出给扫描器54的操作、和在处理需要的图像之后产生下一个进一步减小的图像的操作。
即,如图2所示的情况,缩放部分53首先将输入图像10A按原样输出给扫描器54。然后,缩放部分53等待扫描器54和鉴别器55中对输入图像10A执行的处理的完成,然后产生通过减小输入图像10A的大小获得的输入图像10B。此外,缩放部分53等待扫描器54和鉴别器55中对输入图像10B执行的处理的完成,然后将通过进一步减小输入图像10B的大小获得的输入图像10C,输出给扫描器54。这样,缩放部分53顺序产生进一步减小的图像,如10D和10E,并且当减小的图像的图像大小变得小于窗口的大小时,终止该过程,扫描器54在扫描操作中移动所述窗口。中止该过程后,图像输出部分52输出下一个输入图像给缩放部分53。
在扫描器54中,如图3所示的情况中,窗口11被顺序应用到给定图像的整个部分(屏幕),如图像10A,所述窗口具有与随后的鉴别器55接受的窗口大小相同的大小,并且将在窗口11中的每个位置上的图像(在下文中称为剪切图像或窗口图像)输出到鉴别器55。
在扫描操作中基于像素移动窗口11,如图4所示的情况。即,从扫描器54输出窗口11中预定位置的剪切图像之后,在下一次扫描中,窗口11向右移动一个像素,并且该位置处的窗口11中的剪切图像被提供给鉴别器55。
尽管窗口大小是固定的,然而缩放部分53顺序减小输入图像,使得输入图像的图像大小变换为如上所述的各种比例,允许检测任意大小的对象。
即,输入图像中任何大小的面部被顺序缩小,并且图像大小最终变得基本上与窗口大小相等。结果,无论窗口11中的图像是否是人类面部图像,都能够被检测。
鉴别器55判断:从前级提供的剪切图像是否是感兴趣的对象,如面部。
如图13所示,鉴别器55包括通过整体学习获得的多个弱鉴别器61i(i=1,2,3,...,K)和加法器62,该加法器22将来自各弱鉴别器的输出(辨别结果)与各自相应的权重αi(i=1,2,3,...,K)相乘,以确定加权多数判决F(x)。
基于窗口11内各像素之间的任意位置处的两个像素,每个弱鉴别器611到61K辨别:窗口11中的图像是否是人类面部图像。参考字符K对应于从窗口11中的图像提取的两个像素的组合数量。
在鉴别器55中,每个弱鉴别器61i顺序输出估计值f(x),其表示输入窗口图像是否为感兴趣的对象,并且加法器62计算并输出加权多数判决F(x)。根据加权多数判决F(x)的值,判断单元(未示出)进行最后的判断:窗口图像是否为感兴趣的对象。
组学习机56利用下面将描述的方法,使用组学习来提前学习弱鉴别器61i、以及要与各弱鉴别器的输出(估计值)相乘的权重。
如组学习,可以使用任何指定的方法,只要它们能够确定多数判决过程中多个弱鉴别器的结果。例如,可以使用利用增强的组学习,如AdaBoost,其中加权数据来执行加权多数判决。
形成鉴别器55的每一个弱鉴别器61i,利用两个像素之间亮度的差异(像素间差异特征)作为用于辨认目的的特征量。然后,每一个弱鉴别器61i,将窗口图像的特征量、与通过利用多个灰度图像形成的学习采样学习的特征量相比较,该多个灰度图像已经预先被标记为感兴趣的对象或者不感兴趣的对象,以便输出估计值,用于以确定性或者概率性方式估计窗口图像是否为感兴趣的对象。
加法器62将每个弱鉴别器61i的估计值与权重(其是对于每个弱鉴别器61i的可靠性)相乘,将各加权的值相加并输出相加的值(加权多数判决的值)。在AdaBoost中,多个弱鉴别器61i顺序计算各估计值,根据该估计值,连续更新加权多数判决的值。
由组学习机56连续产生多个弱鉴别器,该组学习机56根据下面将描述的算法,利用上述学习采样来执行组学习。多个弱鉴别器例如以产生弱鉴别器的顺序计算上述各估计值。在学习过程中学习用于加权多数判决的权重(可靠性),在所述学习过程中产生弱鉴别器,其将在下文描述。
如在AdaBoost中弱鉴别器输出二进制值的情形,例如,弱鉴别器61i利用阈值来将像素间差异特征二进制化,以便辨别感兴趣的对象和不感兴趣的对象。多个阈值可以用于辨别的目的。作为替代,如在Real-AdaBoost中,例如,弱鉴别器可以利用像素间差异特征输出连续值,所述连续值指示以概率性方式为感兴趣的对象的可能性。根据该算法,在学习过程中还学习这些弱鉴别器61i需要什么,如用于辨别目的的特征量。
此外在该实施例中,在加权多数判决过程期间,当计算的值在该点判断窗口图像不是感兴趣的对象时,无需等待来自所有弱鉴别器的计算结果,就中止计算,甚至在其过程中。因此,在学习过程中学习中止阈值(参考值)。该中止过程允许检测过程中显著减少计算量。这样,在计算过程中可以进行下一个窗口图像的辨别过程,而无需等待来自所有弱鉴别器的计算结果,允许更快的处理。
因此,鉴别器55运行为判断单元,不仅用于计算加权多数判决作为评估值,用于判断窗口图像是否为感兴趣的对象,而且基于该评估值,判断窗口图像是否为感兴趣的对象。
此外,无论何时在学习过程中预先产生的多个弱鉴别器输出估计值,鉴别器55都将用于各个弱鉴别器的权重与估计值相乘,所述各个弱鉴别器在学习过程中获得,并且将各加权的值相加,以更新加权多数判决的值。无论何时更新加权多数判决的值(评估值),中止阈值都被用来控制是否中止估计值的计算。
根据组学习机56中的预定算法,通过利用学习采样以执行组学习,产生鉴别器55。在下面的描述中,将首先描述组学习机56中的组学习方法,然后利用通过组学习获得鉴别器55的方法,所述方法用于辨别来自输入图像的感兴趣的对象。
(2)组学习机
使用增强算法来执行组学习的组学习机56,如上所述将多个弱鉴别器组合以执行学习,使得最终获得强的鉴别结果。
尽管每个单独的弱鉴别器具有相当简单的配置、以及独立辨别面部和非面部的很弱的能力,但是例如可以组合数百上千个弱鉴别器,以提供高辨别能力。
组学习机56使用例如称为学习采样的数千采样图像,其每一个包括感兴趣的对象和不感兴趣的对象,例如,面部图像和非面部图像,其可预先被提供(标记)各自正确的答复。然后,组学习机56根据预定的学习算法,从大量学习模型(假设的组合)选择(学习)一个假设,以便产生弱鉴别器并确定如何组合各弱鉴别器。
尽管弱鉴别器自身具有较差的辨别性能,然而适当选择并组合各弱鉴别器,能够最终提供具有高辨别能力的鉴别器。因此,组学习机56学习如何组合各弱鉴别器,即,如何选择各弱鉴别器。组学习机56还学习各权重,所述各权重用于对各弱鉴别器的输出执行加权多数判决等等。
现在将描述一种组学习机56的学习方法,用于获得具有大量适当的弱鉴别器的鉴别器,所述弱鉴别器根据学习算法组合。在描述组学习机56的学习方法之前,将描述,在组学习过程中要学习的学习数据之中,用于形成弱鉴别器的像素间差异特征、和用于在辨别过程(检测过程)期间中止检测的中止阈值(参考值)。
(2-1)弱鉴别器的配置(像素间差异特征)
本实施例中鉴别器55包括多个弱鉴别器。每个弱鉴别器具有相当简单的配置,其中从输入图像的全部像素选择的两个像素之间亮度的差异(像素间差异特征)被用来辨别面部和非面部。这增加了辨别过程中弱鉴别器的辨别结果的计算速度。
要输入到弱鉴别器的图像是学习过程中的学习采样,而输入图像是在辨别(辨认)过程中从已缩放的图像剪切的窗口图像。
图14是示出用于解释像素间差异特征的图像的图表视图。在图像70中,两个任意像素之间亮度的差异,例如,像素71的亮度值I1和像素72的亮度值I2之间的差异,即,从下式(1)中获得的值d被定义为本实施例中的像素间差异特征。
d=I1-I2...  (1)
弱鉴别器的能力取决于哪个像素间差异特征d被用于面部检测。因此,用于弱鉴别器的一对像素位置,需要从采样图像或窗口图像中任意两个像素的组合(也称为滤波器或弱假设)选择。
例如,在AdaBoost中,弱鉴别器可能需要提供+1(感兴趣的对象)或-1(不感兴趣的对象)的确定性输出。那么,在AdaBoost中,能够通过利用一个或多个阈值产生弱鉴别器,以将任意像素位置处的像素间差异特征d二进制化(+1或-1)。
在增强算法中,例如Real-AdaBoost和Gentle Boost,其中以概率性的方式输出指示学习采样的概率分布的连续值(实数),来代替这种二进制输出,弱鉴别器输出表示输入图像是感兴趣的对象的可能性(概率)。因此,弱鉴别器的输出可以是确定性的或者概率性的。首先,将描述输出这种二进制值的弱鉴别器。
(2-1-1)输出二进制输出的弱鉴别器
产生确定性输出的弱鉴别器,根据像素间差异特征d的值,在感兴趣的对象和不感兴趣的对象之间进行两类辨别。令I1和I2为目标图像区域中两个像素的亮度值,并且Th1为根据像素间差异特征d辨别感兴趣的对象和不感兴趣的对象的阈值,下式(2)是否满足确定了学习采样属于哪一类:
I1-I2>Th1...  (2)
为了在该点处形成弱鉴别器,需要确定两个像素的位置和阈值。下面将描述用于确定这些值的方法。利用式(2)的基于阈值的判断示出最简单的情况。在基于阈值的判断中,可以使用由下式(3)或(4)表达的两个阈值:
TH11>I1-I2>Th12...  (3)
I1-I2<Th21或者Th22>I1-I2...  (4)
图15A到15C是示出由上式(2)到(4)表达的三种辨别方法、并且根据数据频率分布的各自特性示例所画出的图表视图,其中垂直轴表示数据频率、以及水平轴表示像素间差异特征d。在图15A到15C中,yi表示弱鉴别器的输出。具体地,虚线表示判断为yi=-1(不感兴趣的对象)的学习采样的分布,而实线表示判断为yi=1(感兴趣的对象)的学习采样的分布。图15A到15C中所示的直方图,通过为大量学习采样划分具有相同的像素间差异特征d的频率获得,所述大量学习采样包括面部图像和非面部图像。
实线和虚线表示相互独立的判断为yi=1和yi=-1的频率。因此,例如,图16示出通过将用于图15A中所示的像素间差异特征d的分布图相加获得的分布。
如图15A中所示,当表示不感兴趣的对象的虚线和表示感兴趣的对象的实线以常态(normal)曲线形式相似地分布、并且各分布曲线的峰值位置在水平方向中相互移动时,在分布曲线的交叉点处设置阈值Th1,并且式(2)可以用来辨别感兴趣的对象和不感兴趣的对象。
在AdaBoost中,例如,令f(x)为弱鉴别器的输出(辨别结果),输出f(x)为1(感兴趣的对象)或者-1(不感兴趣的对象)。图15A示出其中当像素间差异特征d大于阈值Th1时、学习采样被判断为感兴趣的对象并且因此弱鉴别器的输出f(x)变为1的情形的示例。
当两个直方图的峰值位置在基本上相同的位置、并且一个直方图的分布的宽度不同于另一个直方图的分布的宽度时,具有较窄分布宽度的直方图的、像素间差异特征d的上部和下部极限区域的值可用作阈值,以基于上式(3)或(4)辨别感兴趣的对象和不感兴趣的对象。
图15B示出具有较窄分布宽度的直方图被判断为感兴趣的对象、因此弱鉴别器的输出f(x)变为1的情形的示例,而图15C示出通过从具有较宽分布宽度的直方图中减去具有较窄分布宽度的直方图获得的直方图、被判断为感兴趣的对象、因此弱鉴别器的输出f(x)变为1的情形的示例。
当通过确定像素间差异特征d和因此的阈值形成弱鉴别器时,需要选择像素间差异特征d,其将误差率最小化或者将判断的辨别率最大化。
例如,通过选择两个像素的位置、确定用于标记为要校正的学习采样的直方图(如图15A到15C中所示的任何一个)、以及搜索提供最高正确答复率的阈值,换句话说,最低错误答复率(误差率)的阈值,来确定阈值。
两个像素的位置连同阈值一起可被选择,例如来提供最低误差率。然而,在AdaBoost中,反映辨别的难度级别的权重(数据权重)被应用到每个学习采样,并且执行学习过程,使得适当选择的像素间差异特征d(由在适当选择的位置处的两个像素的亮度值定义的特征值)提供最低加权误差率,其将在下面进行描述。
(2-1-2)输出连续值的弱鉴别器
产生概率性输出的弱鉴别器的示例为在Real-AdaBoost、Gentle Boost等中输出连续值的弱鉴别器,如上所述。与上面提及的情况不同,其中预定的固定值(阈值)被用来解决辨别问题、并且输出二进制输出(f(x)=1或-1),在这种情况中的弱鉴别器,输出表示输入图像是感兴趣的对象的可能性,例如,作为概率密度函数。
这种表示是感兴趣的对象的可能性(概率)的概率输出,可以是由下式(5)表达的函数f(x):
f(x)=Pp(x)-Pn(x)  ...(5)
其中当输入像素间差异特征d时,Pp(x)为表示学习采样为感兴趣的对象的概率密度函数,而Pn(x)为表示学习采样为不感兴趣的对象的概率密度函数。
图17A示出数据频率分布的特征示例,其中垂直轴表示概率密度,水平轴表示像素间差异特征d。图17B示出用于图17A中所示的数据分布的函数f(x),其中垂直轴表示函数f(x)的值,而水平轴表示像素间差异特征d。图17A中,虚线表示指示是不感兴趣的对象的概率密度,而实线表示指示是感兴趣的对象的概率密度。图17B示出从上述式(5)获得的函数f(x)。在学习过程或辨别过程中,弱鉴别器输出对应于像素间差异特征d的函数f(x),所述像素间差异特征d上述式(1)表达,并从所输入的学习采样或窗口图像获得。函数f(x)指示是感兴趣的对象的可能性,并且可以具有连续值,例如,范围从-1到1,其中-1表示不感兴趣的对象,而1表示感兴趣的对象。例如,通过存储由像素间差异特征d的值和相应的f(x)的值形成的表格,f(x)的值可以根据输入从表格读出并且输出。因此,尽管存储量可能稍微大于固定阈值Th1或固定阈值Th11和Th12或者Th21和Th22,但将改进辨别性能。
通过在整体学习中以组合方式使用多个估计方法(辨别方法),可以期望改进辨别性能。作为替代,仅有任何一个辨别方法可以用来提高执行速度性能。
尽管,由上述辨别方法的最简单的式(2)表达的、并且对像素间差异特征d执行的、基于阈值的判断提供非常满意的辨别结果,其中辨别方法将允许弱鉴别器依据要解决的问题改变来有效地运行。因此,合适时用于设置阈值的方法可被选择。在一些问题中,代替两个像素之间亮度的差异的、三个或者多个像素之中亮度的差异可以用作特征量。
(2-2)中止阈值
下面将描述中止阈值。
通常,如上所述,在基于增强的组学习机中,形成鉴别器55的所有弱鉴别器的输出经历加权多数判决,以辨别窗口图像是否为感兴趣的对象。
通过将各弱鉴别器的辨别结果(估计值)连续相加,计算加权多数判决。例如,令t(=1,...,K)为弱鉴别器的数量,αt为相应于每个弱鉴别器的加权多数判决(可靠性),以及ft(x)为每个弱鉴别器的输出,AdaBoost中加权多数判决F(x)的值可以由下式(6)确定:
F ( x ) = Σ t α t f t ( x ) . . . ( 6 )
图18示出根据输入信号是否是感兴趣的对象、图示加权多数判决F(x)的值的变化的曲线图。图18中,水平轴表示弱鉴别器的数量,而垂直轴表示由上述式(6)表达的加权多数判决F(x)的值。
图18中,由虚线表示的数据V1到V4,通过输入标记为感兴趣的对象的图像(学习采样)、利用弱鉴别器来顺序计算各估计值f(x)、并且顺序确定加权多数判决F(x)的值来获得。如数据V1到V4所示,当输入图像为感兴趣的对象、并且特定数量的弱鉴别器对这些数据执行辨别时,加权多数判决F(x)的值变为正。
该实施例介绍了一种与典型增强算法不同的方法。即,在将各弱鉴别器的辨别结果连续相加的过程中,甚至在获得所有弱鉴别器的结果之前,也将中止用于辨别显然不是感兴趣的对象的窗口图像的辨别过程。在学习过程期间,学习确定是否中止辨别过程的中止阈值(参考值)。
通过利用中止阈值,当其能够可靠地估计窗口图像是不感兴趣的对象、而无需利用所有弱鉴别器的输出结果时,各弱鉴别器的估计值f(x)的计算可以在计算期间中止。与使用所有弱鉴别器进行加权多数判决的情况相比,这显著减少了过程所需的时间和计算量。
中止阈值可以是可能的加权多数判决值的最小值,所述可能的加权多数判决值从学习采样的辨别结果获得,所述学习采样代表在标记的学习采样中要检测的对象。
在辨别过程中,用于窗口图像的弱鉴别器的辨别结果,顺序加权并输出,即,顺序更新加权多数判决的值。无论何时执行更新,即,无论何时一个弱鉴别器输出辨别结果,更新的值都与中止阈值比较。当加权多数判决的更新值小于中止阈值时,判断窗口图像为不感兴趣的对象并可以中止计算。这样,消除不需要的计算并且可以增加辨别过程的速度。
即,用于第M个弱鉴别器的输出fM(x)的中止阈值RM被设置为:在学习采样xi(i=1到N)之中,当使用是感兴趣的对象(正采样)的学习采样xj(j=1到J)时,获得的加权多数判决F(x)的最小值。中止阈值RM如下定义:
R M = min ( Σ t = 1 M α t f t ( x 1 ) , Σ t = 1 M α t f t ( x 2 ) , . . . , Σ t = 1 M α t f t ( x J ) , 0 ) . . . ( 7 )
如式(7)所表示的,当用于学习采样x1到xJ(其每一个为感兴趣的对象)的加权多数判决F(x)的最小值大于零时,中止阈值RM被设置为零。当利用AdaBoost(其中阈值零被用作辨别目的)时,操作中止阈值不超过零,并且这取决于组学习的方法可能不同。
在AdaBoost中,如图18中实线所示,当感兴趣的对象输入作为输入图像时,在得到的所有数据V1到V4中,中止阈值RM设置为加权多数判决F(x)的各可能值的最小值。当在所有数据V1到V4中加权多数判决F(x)的最小值超过零时,中止阈值RM设置为零。
在该实施例中,例如,无论何时产生弱鉴别器都通过在辨别过程中学习中止阈值RM(R1到RK)(将在下面描述),其中多个弱鉴别器顺序输出估计值,并且顺序更新加权多数判决的值,如由数据V5所表示的,当更新的值变得低于中止阈值RM时,要由随后的弱鉴别器执行的辨别过程将中止。即,通过学习中止阈值RM,无论何时弱鉴别器计算估计值,都可能确定对下一个弱鉴别器是否执行计算。当输入图像明显地判断不是感兴趣的对象时,无需等待所有弱鉴别器的辨别结果,就可以判断输入图像不是感兴趣的对象,使得在其过程期间可以中止计算,导致更快的检测过程。
(3)弱鉴别器组装结构
下面将描述本实施例中的弱鉴别器组装结构。在本实施例中,多个学习采样被用作学习。每个学习采样由24乘24个像素组成。每个学习采样是人类面部图像并且包括各种变化,如照明条件和种族。
在本实施例中,基于人类面部(头部)姿态执行标记。
如图19所示,本实施例利用分类(标记)为九组(标记)的学习采样,所述九组(标记)由以下形成:标记为朝前的面部的图像(具有范围在-15度到+15度的偏航角的图像)(在下文中称为标记W11图像)、标记为朝左的面部的图像(具有范围在+15度到+65度的偏航角的图像)(下文中称为标记W21图像)、标记为朝右的面部的图像(具有范围在-65度到-15度的偏航角的图像)(下文中称为标记W31图像)、标记为在滚动方向上旋转+20度的朝前的面部的图像(下文称为标记W12图像)、标记为在滚动方向上旋转+20度的朝左的面部的图像(下文称为标记W22图像)、标记为在滚动方向上旋转+20度的朝右的面部的图像(下文称为标记W32图像)、标记为在旋转方向上旋转-20度的朝前的面部的图像(下文称为标记W13图像)、标记为在滚动方向上旋转-20度的朝左的面部的图像(下文称为标记W23图像)、和标记为在滚动方向上旋转-20度的朝右的面部的图像(下文称为标记W33图像)。
即,本示例中人类面部通过偏航角和滚动角(图7A和7B)确定,并且学习具有预定的偏航角和滚动角的人类面部的图像。
在本实施例中,节点基本由固定数量(例如,100)的弱鉴别器形成,并且每个节点放置在树形结构中。执行学习和因此的辨认,使得能够辨认每个标记图像。较高级别层次处的弱鉴别器,学习较低级别层次处的弱鉴别器中执行的学习中处理的所有标记。
例如,为了学习分为九种标记的图像,即,标记W11到W13、标记W21到W23和标记W31到W33,形成如图20所示的树形结构。
最高节点81-1由100个弱鉴别器91-11到91-1100形成。节点81-1学习分为九种标记的学习采样(所有标记),即,标记W11到W13、标记W21到W23和标记W31到W33。
两个节点81-1-1和81-1-2形成为节点81-1的低节点。
节点81-1-1由100个弱鉴别器91-1-11到91-1-1100形成,并且节点81-1-2由100个弱鉴别器91-1-21到91-1-2100形成,尽管未示出其参考字符。
节点81-1-1和81-1-2为高节点81-1的子节点,并且节点81-1相对于节点81-1-1和81-1-2为父节点。节点81-1-1和81-1-2相对于父节点81-1为兄弟节点。术语父节点和子节点以相对意义使用,即,处于甚至更高层级别处的节点之下的父节点,变成相对于该节点的子节点。
节点81-1-1学习标记W11到W13图像,标记W11到W13图像涉及分类为九种标记的学习采样之中朝前的图像,所述九种标记被父节点81-1学习,即标记W11到W13、标记W21到W23和标记W31到W33。
节点81-1-2学习标记W21到W23图像,标记W21到W23图像涉及父节点81-1学习的各标记中的朝左的图像。
提供节点81-1-1-1作为节点81-1-1的低节点(子节点)。节点81-1-1-1由100个弱鉴别器91-1-1-11到91-1-1-1100形成,并且学习标记W11学习采样。
提供节点81-1-1-1-1作为节点81-1-1-1的低节点(子节点)。节点81-1-1-1-1是不进一步具有其他低节点的终端节点。节点81-1-1-1-1由L11个弱鉴别器91-1-1-1-11到91-1-1-1-1L11形成,并且学习标记W11学习采样。
提供节点81-1-2-1作为节点81-1-2的低节点(子节点)。节点81-1-2-1由100个弱鉴别器91-1-2-11到91-1-2-1100形成,尽管未示出其参考字符,并且学习标记W21学习采样。
提供节点81-1-2-1-1作为节点81-1-2-1的低节点(子节点)。节点81-1-2-1-1是不进一步具有低节点的终端节点。节点81-1-2-1-1由L21个弱鉴别器91-1-2-1-11到91-1-2-1-1L21形成,尽管未示出其参考字符,并且学习标记W21学习采样。
设置终端节点81-1-1-1-1中的弱鉴别器的数量L11、以及终端节点81-1-2-1-1中的弱鉴别器的数量L21,使得当每个节点学习相应的标记学习采样时,加权的误差率et变为零(足够小的值)。
这样,可以减少弱鉴别器的数量。
即,当不使用这种树形结构时,可能需要如参照图8到11描述的大量弱鉴别器。
图20所示的树形结构不同于图6所示的树形结构,尽管树形结构都学习相同的学习采样。图20所示的树形结构不具有学习标记W31到W33图像的节点(对应于节点31-1-3的节点)、或分别学习标记W12、标记W13、标记W22、标记W23、标记W31、标记W32和标记33的节点(对应于节点31-1-1-2、31-1-1-2-1、31-1-1-3、31-1-1-3-1、31-1-2-2、31-1-2-2-1、31-1-2-3、31-1-2-3-1、31-1-3-1、31-1-3-1-1、31-1-3-2、31-1-3-2-1、31-1-3-3和31-1-3-3-1的各节点)。将在下面解释原因。
如图21所示,为每个节点定义数据结构。
节点ID是用于辨认每个节点的数字。例如,节点81-1-1的节点ID设置为节点81-1-1的数据结构中的节点ID。
父节点ID表示从正被讨论(in question)的节点看的父节点的节点ID。节点81-1-1的父节点为节点81-1,并且在这种情况中设置节点81-1的节点ID。当不存在父节点(例如,最高的节点81-1的情况)时,父节点ID设置为-1。
如子节点ID,设置子节点的ID。然而,例如,节点81-1-1-1-1是终端节点并且不具有子节点,使得节点ID设置为-1。
标记表示将由正被讨论的节点处理的采样的标记。节点81-1-1-1-1的标记设置为标记W11。
弱鉴别器的数量表示正被讨论的节点具有的弱鉴别器的数量。在节点81-1-1-1-1的情况中,弱鉴别器的数量被设置为L11。
(4)学习方法
下面将描述用于组学习机56的学习方法。
作为模式辨认问题的先决条件是找出给定数据是否为面部,并且当其为面部时,确定面部所朝的方向,准备预先手动标记(提供正确答复)的图像(训练数据),其为学习采样。
学习采样包括通过剪切要检测的感兴趣的对象的区域获得的图像组(正采样)、以及剪切来自与感兴趣的对象无关的图像的随机图像组,如风景图像(负采样)。
基于这些学习采样应用学习算法以产生要在辨别期间使用的学习数据。在辨别期间使用的学习数据为包括上述的学习数据的下面四种学习数据:
(A)两个像素的位置对(K对)
(B)弱鉴别器的阈值(K个值)
(C)用于加权多数判决的权重(弱鉴别器的可靠性)(K个权重)
(D)中止阈值(K个值)
设置上述信息,作为每个节点中的每个弱鉴别器的数据结构(图21)。
(4-1)弱鉴别器的产生
下面将描述从学习采样学习如上所列的四种类型的学习数据(A)到(D)的算法,所述学习采样被分类成上述的标记W11到W13、标记W21到W23和标记W31到W33。
为了实现学习过程,组学习机56具有图22中所示的功能配置。
即,组学习机56包括初始化部分301、节点学习部分302、判断部分303、选择器304和返回部分305。这些部分可以针对彼此发送并接收需要的数据。
初始化部分301设置各种初始值。
节点学习部分302对每个节点中的弱鉴别器执行学习过程。
判断部分303,例如,将子节点数量(size(numChild))与分支计数(branch_count[i])相比较,这将在下面描述,并且判断节点ID是否为正。
选择器304选择下一个要处理的节点。
返回部分305例如返回已处理的节点到父节点。
图23是示出用于组学习机56的学习方法的流程图。在这个示例中,尽管将描述根据利用固定值作为阈值的算法的学习,所述阈值用于作为学习算法的弱鉴别器(AdaBoost),然而学习算法不限于AdaBoost,而可以是其他学习算法,只要它们执行组学习以便组合多个弱鉴别器,如,使用表示正确答复的可能性(概率)的连续值作为阈值的Real-AdaBoost。
如上所述,首先,准备预先标注为感兴趣的对象或不感兴趣的对象的N个学习采样。
学习采样例如为N个图像,并且每个图像由24乘24个图像形成。每个学习采样为人类面部图像并且被标记为标记W11到W13、标记W21到W23和标记W31到W33中的一个。
在步骤S11,初始化部分301设置各初始值。
具体地,将表示要处理的节点的ID的变量i设置为最高节点的ID(根节点)(图20中所示的示例中的节点81-1的ID)。数据权重Dt设置为所有数据的1/N,其中N表示采样数量。此外,所有节点的多数判决权重F(x)初始化为零,并且变量branch_count[i]初始化为零,所述变量branch_count[i]表示从每个节点到其低节点(各子节点)的访问数量。
在步骤S12,节点学习部分302对节点执行学习过程,所述节点正被处理并且具有变量i中当前设置的ID。
将参照图25的流程图详细描述节点学习过程,该过程对要被处理的节点中的弱鉴别器执行学习。存储节点的处理结果,以便由子节点接管。
在该点处,由于变量i已经设置为图20中所示的节点81-1的ID,因此对节点81-1执行学习过程。
那么,在步骤S13,判断部分303将正处理的节点的变量branch_count[i]的值与变量大小(numChild)比较,其中已经设置了正处理的节点的数据结构(图21)中的子节点数量。当branch_count[i]的值小于子节点的数量时,学习过程并未对所有子节点完成,使得过程进入步骤S14。
在该点处,节点81-1的branch_count[i]的值为零(步骤S11处的过程),并且节点81-1具有两个子节点(81-1-1和81-1-2)。因此,步骤S13处的判断为是并且过程进入步骤S14。
在步骤S14,选择器304选择下一个要被处理的节点。
具体的,正处理的节点81-1的变量branch_count[i]的值递增1(在该点处变为1),并且表示正处理的节点的变量i,设置为由变量branch_count[i]指定的子节点的节点ID。
在图20中所示的举例中,例如,作为当前处理的节点81-1的子节点的节点81-1-1的ID在变量i中设置。
那么,过程返回步骤S12,并且对已经在变量i中设置的节点执行节点学习过程。
在该点处,对节点81-1-1执行学习过程。
那么,在步骤S13处,判断部分303判断:对应于正处理的节点的变量branch_count[i]的值是否小于正处理的节点的子节点的数量。在该点处,正处理的节点是节点81-1-1,并且节点81-1-1具有一个子节点,该子节点是节点81-1-1-1。
由于当前正处理的节点81-1-1的变量branch_count[i]已经在步骤S1设置的初始化中设置为零,变量branch_count[i]被判断小于子节点的数量(=1),并且过程进入步骤S14。然后,在步骤S14,正处理的节点81-1-1的变量branch_count[i]递增1(变为1),并且变量i设置为子节点81-1-1-1的ID,该子节点81-1-1-1为节点81-1-1的子节点,并且由节点81-1-1的branch_count[i]指定。
然后,过程返回步骤S12,并且对节点81-1-1-1执行学习过程,节点81-1-1-1是具有变量i中设置的ID的节点。
然后,在步骤S13,判断部分303判断:变成正处理的节点的节点81-1-1-1的变量branch_count[i]的值是否小于子节点的数量。节点81-1-1-1具有一个子节点,该子节点是节点81-1-1-1-1。
由于节点81-1-1-1的变量branch_count[i]已经在步骤S11处设置的初始化设置为零,所以变量branch_count[i]被判断小于子节点的数量(=1),并且过程进入步骤S14。那么,在步骤S14,节点81-1-1-1的变量branch_count[i]递增1(变为1),并且变量i设置为子节点81-1-1-1-1的ID,该子节点81-1-1-1-1是节点81-1-1-1的子节点,并由节点81-1-1-1的branch_count[i]指定。
然后,过程返回步骤S12,并且对节点81-1-1-1-1执行学习过程,该节点81-1-1-1-1是具有在变量i中设置的ID的节点。
然后,在步骤S13,判断部分303判断:正处理的节点81-1-1-1-1的变量branch_count[i]的值是否小于子节点的数量。由于节点81-1-1-1-1是终端节点,所以节点81-1-1-1-1不具有子节点。
尽管节点81-1-1-1-1的变量branch_count[i]已经在步骤S11处设置的初始化中设置为零,然而子节点的数量为零(变量branch_count[i](=0)等于子节点的数量(=0)),使得变量branch_count[i]被判断不小于子节点的数量。因此,过程进入步骤S15。
在步骤S15,返回部分305返回处理的节点到父节点。
具体的,变量i设置为节点81-1-1-1的ID,该节点81-1-1-1为节点81-1-1-1-1的父节点,节点81-1-1-1-1是当前正处理的节点。
然后,如在步骤S16,返回部分305判断:步骤S15处设置的变量i是否大于零。
由于不同于最高父节点(根节点)81-1的节点被设置具有正ID值,所以在该点处步骤S16的判断为是。然后,返回部分305返回过程到步骤S13。
在步骤S13,判断部分303判断:具有在变量i中设置的ID的节点(在该点是节点81-1-1-1)的变量branch_count[i]是否小于该节点的子节点的数量。由于节点81-1-1-1的变量branch_count[i]在该节点处已经设置为1,并且该节点的子节点的数量为1(变量branch_count[i](=1)等于子节点的数量(=1)),所以变量branch_count[i]被判断为不小于子节点的数量。因此,过程进入步骤S15。
在步骤S15,变量i设置为在该节点处的节点81-1-1的ID,节点81-1-1是节点81-1-1-1的父节点,节点81-1-1-1是当前正处理的节点。
在步骤S16,由于其中已经设置节点81-1-1的ID的变量i大于零,因此判断为是并且过程返回步骤S13。
在步骤S13,判断部分303判断:具有在变量i中设置的ID的节点81-1-1的变量branch_count[i]是否小于该节点的子节点的数量。因为已经将节点81-1-1的变量branch_count[i]在该节点处设置为1,并且该节点的子节点的数量为1(变量branch_count[i](=1)等于子节点的数量(=1)),所以变量branch_count[i]被判断为不小于子节点的数量。因此,过程进入步骤S15。
在步骤S15,变量i在该节点处被设置为节点81-1,节点81-1是节点81-1-1的父节点,节点81-1-1是当前正处理的节点。
在步骤S16,因为其中已经设置节点81-1的ID的变量i大于零,所以判断为是并且过程返回步骤S13。
在步骤S13,判断部分303判断:具有变量i中设置的ID的节点81-1的变量branch_count[i]是否小于该节点的子节点的数量。由于节点81-1的变量branch_count[i]已经在该节点处设置为1,并且该节点的子节点的数量为2,所以变量branch_count[i]被判断为小于子节点的数量。因此,过程进入步骤S14。
在步骤S14,正处理的节点81-1的变量branch_count[i]递增1(变为2),并且变量i设置为子节点的ID,该子节点为节点81-1的子节点并且由节点81-1的变量branch_count[i]指定。在图20中所示的示例中,节点81-1-2的ID是在变量i中设置的节点81-1的另一个子节点。
然后,以相似的方式对节点81-1-2及其低节点执行学习。
在图20中所示的示例中,当过程返回到最高节点81-1(根节点)时,并且在步骤S15变量i被设置为-1作为其父节点ID,在步骤S16变量i(=-1)被判断为不大于零。因此,过程结束。
这样,对树形结构中放置的每个节点中的弱鉴别器执行学习。
下面将详细描述图23中步骤S12处的节点学习过程。
为了执行该过程,图22中的节点学习部分302被配置为如图24中所示。
即,节点学习部分302包括采样选择器331、接管部分332、弱鉴别器选择器333、多数判决权重计算部分334、数据权重更新部分335、加权多数判决计算部分336、阈值计算部分337、判断部分338和存储部分339。
采样选择器331选择节点学习需要的正采样和负采样。
接管部分332接管在在前的节点存储的值作为为后来节点处理的初始值。
弱鉴别器选择器333基于数据权重Dt选择弱鉴别器。
多数判决权重计算部分334计算多数判决权重αt
数据权重更新部分335更新数据权重Dt
加权多数判决计算部分336通过将每个弱鉴别器的输出加权多数判决权重αt、并将各加权的输出相加来计算加权多数判决。具体的,加权多数判决计算部分336执行上式(6)的计算。
阈值计算部分337计算由式(7)表达的中止阈值(参考值RM)。
判断部分338判断,例如,加权多数判决的值是否变得小于阈值计算部分337中计算的中止阈值RM,或者节点中对所有弱鉴别器的学习过程是否完成。
存储部分339存储加权多数判决F(x)和数据权重Dt,作为节点中最后的弱鉴别器的辨别结果(节点的输出)。
下面将参照图25的流程图描述节点学习过程。
首先,在步骤S41,采样选择器331选择要在该节点学习的标记的正采样。
例如,在图20中的节点81-1的学习过程中,选择所有标记的正采样,即,标记W11到W13、标记W21到W23和标记W31到W33。另一方面,在节点81-1-1-1-1的学习过程中,仅选择标记W11的正采样。在这两个学习过程中,使用所有的负采样。
在步骤S42,接管部分332接管父节点的输出。
由于作为最高父节点的节点81-1不具有父节点,所以加权多数判决F(x)的值初始化为零,并且数据权重Dt的值设置为1/N(值N表示学习采样的数量)。
对于具有父节点的节点,在下面将描述的步骤S49处的过程中,读出存储部分339中存储的父节点的数据权重Dt和加权多数判决F(x),并将其设为初始值。
在接管父节点的输出的过程中,归一化数据权重Dt,使得数据权重Dt的和是1。
然后,在步骤S43,弱鉴别器选择器333选择弱鉴别器。
在该选择过程(将参照图27详细描述)中,从K个(像素间差异特征d的数量)弱鉴别器选择(产生)具有最低加权误差率et的弱鉴别器。
在步骤S44,多数判决权重计算部分334计算多数判决权重αt
基于式(8)计算多数判决权重(可靠性)αt
α t = 1 2 ln ( 1 - e t e t ) . . . ( 8 )
如从上述式(8)明显的,弱鉴别器的加权误差率et越小,可靠性αt越大。
在步骤S45,数据权重更新部分335更新用于学习采样的数据权重Dt,i
即,从式(8)获得的可靠性αt,用来通过利用下式(9)更新学习采样的数据权重Dt,i。需要归一化数据权重Dt,i,使得所有数据权重Dt,i的和通常变为1。然后,如由式(10)所表示的归一化数据权重Dt,i
Dt+1,i=Dt,1exp(-αiyifi(xi))    ...(9)
D t + 1 , i = D t + 1 , i Σ i D t + 1 . . . ( 10 )
在步骤S46处,加权多数判决计算部分336更新加权多数判决F(x)。基于式(6)执行该过程。多数判决权重αt是步骤S44处计算的值,并且ft(x)是在步骤S43计算的值。
然后,在步骤S47,阈值计算部分337计算中止阈值RM。基于式(7)执行该计算。中止阈值RM将用在图34中的步骤S175处的过程、或者图35中的步骤S195处的过程,其将在稍后描述。
在步骤S48,当正处理的节点具有子节点时,判断部分338判断:是否所有弱鉴别器的学习已经完成,而当正处理的节点不具有子节点时,判断部分338判断:在步骤S43处的过程中计算的加权误差率et的值是否已经足够小。
当正处理的节点具有子节点时,在本实施例中弱鉴别器的数量是100,如上所述。因此,当并未完成100个弱鉴别器的学习时,过程返回到步骤S43并且重复执行下面的过程。当正处理的节点是终端节点时,重复过程直到加权误差率et变得足够小。
具体的,当加权误差率et的值是零或者更小时,加权误差率et被判断为足够小,而当加权误差率et不是足够小时,过程返回至步骤S43并且重复执行下面的过程。即,执行从步骤S43到S48的过程的次数是对应于节点中弱鉴别器的数量的倍数。
在步骤S48,当判断所有弱鉴别器的学习已经完成时,过程进入步骤S49,并且存储部分339存储加权多数判决F(x)的值作为输出、以及数据权重Dt的值作为最后的弱鉴别器的辨别结果。在步骤S42通过较低子节点接管存储的输出作为初始值。
这样,对于图23中的步骤S12处的每个节点,执行图25中所示的过程。
(4-2)弱鉴别器的产生
下面将描述在上述的图25的流程图中的步骤S43处的、弱鉴别器的选择过程(产生方法)。
输出二进制值的弱鉴别器的产生不同于弱鉴别器的产生,所述弱鉴别器输出连续值作为由上述式(5)表达的函数f(x)。在二进制输出的情况中,当使用一个阈值Th1、进行如上式(2)表达的辨别时执行的过程,稍稍不同于当使用两个阈值Th11和Th12或者Th21和Th22、进行如式(3)或者(4)表达的辨别时执行的过程。在下面的描述中,将解释利用一个阈值Th1输出二进制值的弱鉴别器的学习方法(产生方法)。
因此,如图26所示,弱鉴别器选择器333包括:判定部分421、频率分布计算部分422、阈值设置部分423、弱假设计算部分424、加权误差率计算部分425、判断部分426和选择器427。
判定部分421从输入学习采样随机确定两个像素。
频率分布计算部分422收集与判定部分421中确定的各像素相关联的像素间差异特征d,并且计算像素间差异特征d的频率分布。
阈值设置部分423设置弱鉴别器的阈值。
弱假设计算部分424计算弱鉴别器的弱假设,并且输出辨别结果f(x)。
加权误差率计算部分425计算由式(11)表达的加权误差率et
e t = Σ i . f t ( x i ) ≠ y i D t , i . . . ( 11 )
如上式(11)所表达的,加权误差率et是在所有学习采样中仅学习采样的数据权重的总和,其使得弱鉴别器提供错误辨别结果(ft(xi)≠yi)(标记为yi=1但被判断为f(xi)=-1的学习采样,以及标记为yi=-1但被判断为f(xi)=1的学习采样)。如上所述,具有大数据权重Dt,i(难于辨别)的学习采样的错误辨别增加加权误差率et
判断部分426判断:用于弱鉴别器的阈值Th是否大于(或小于)最大像素间差异特征d。
选择器427选择对应于阈值Th的弱鉴别器,所述阈值Th对应于最小加权误差率et
图27是弱鉴别器的步骤S43处的学习方法(产生方法)的流程图,该弱鉴别器利用一个阈值Th1输出二进制值。
步骤S71处,判定部分421在一个学习采样(24乘24个像素)中随机确定两个像素的位置S1和S2
当使用24乘24个像素的学习采样时,选择用于选择两个像素的576乘576个可能的方法之一。在下面的描述中,令S1和S2为两个像素的位置,并且I1和I2为两个像素的亮度值。
步骤S72处,频率分布计算部分422对所有学习采样确定像素间差异特征,并且计算像素间差异特征d的频率分布。即,对于所有(N个)学习采样确定像素间差异特征d,其为在步骤S71处选择的、两个位置S1和S2处的各像素之间的亮度值I1和I2的差,(I1-I2),然后计算直方图(频率分布),如图15A中所示。
步骤S73处,阈值设置部分423设置阈值Th小于最小像素间差异特征d。
例如,如图28中所示,当像素间差异特征d的值在d1和d9之间分布时,最小像素间差异特征d为d1。因此,小于像素间差异特征d1的阈值Th31被设置为在该点处的阈值Th。
然后,在步骤S74处,弱假设计算部分424执行式(12)的计算作为弱假设,其中当值A为正时函数sign(A)输出+1,而当值A为负时输出-1。
f(x)=sign(d-Th)    ...(12)
在该点处,由于Th=Th31,因此对于d1和d9之间的像素间差异特征d的任何值,d-Th的值为正。因此,由式(12)表达的弱假设的鉴别结果f(x)为+1。
在步骤S75,加权误差率计算部分425计算加权误差率et1和et2。加权误差率et1和et2具有由式(13)表达的关系。
et2=1-etl    ...(13)
加权误差率et1是通过式(11)确定的值。当在位置S1和S2处的像素值分别为I1和I2时,加权误差率et1是加权误差率。换句话说,当位置S1处的像素值是I2、并且在位置S2处的像素值是I1时,加权误差率et2是加权误差率。
即,当第一位置为位置S1并且第二位置为位置S2时得到的组合,不同于当第一位置为S2并且第二位置为位置S1时的组合。然而,两个组合的加权误差率et的值具有由上述式(13)表达的关系。因此,在步骤S75的过程中,同时计算两个组合的加权误差率et。如果两个加权误差率et1和et2在步骤S75处不同时计算,需要重复从步骤S71到S81的过程,直到在步骤S81判断过程已经重复了对应于两个像素的所有组合的数量的K倍次,所述两个像素从学习采样中的各像素提取。然而,通过在步骤S75计算两个加权误差率et1和et2,重复的数量可以减小到K的一半,K是所有组合的数量。
然后,在步骤S76,加权误差率计算部分425,选择在步骤S75的过程中计算的较小的加权误差率et1或et2。
在步骤S77,判断部分426判断:阈值是否大于最大像素间差异特征。即,判断部分426判断:当前设置的阈值Th是否大于最大像素间差异特征d(例如,图28中所示情况的d9)。在该点,由于阈值Th是图28中的阈值Th31,因此阈值Th被判断为小于最大像素间差异特征d9。因此,过程进入步骤S78。
在步骤S78,阈值设置部分423设置大于并且最接近于当前的阈值的像素间差异特征、和大于并且第二接近于当前的阈值的像素间差异特征之间的中间阈值Th。在图28的示例中的该点,阈值设置部分423设置大于并最接近于当前阈值Th31的像素间差异特征d1、和大于并第二接近于当前阈值Th31的像素间差异特征d2之间的中间阈值Th32
然后,过程返回步骤S74,并且弱假设计算部分424,根据上述式(12)计算弱假设判断结果f(x)。在这种情况中,如图28所示,当像素间差异特征d的值为d2到d9中的任一个时,f(x)的值为+1,而当像素间差异特征d的值为d1时,f(x)的值为-1。
在步骤S75,根据式(11)计算加权误差率et1,并且根据式(13)计算加权误差率et2。然后,在步骤S76,选择较小的加权误差率et1或et2。
在步骤S77,再次判断阈值是否大于最大像素间差异特征。在该点处,因为阈值Th32小于最大像素间差异特征d9,过程进入步骤S78,并且阈值Th被设置为像素间差异特征d2和d3之间的阈值Th33
这样,顺序更新阈值Th到较大的值。在步骤S74,例如,当阈值Th是像素间差异特征d3和d4之间的Th34时,对于像素间差异特征d4或者更大的值,弱假设辨别结果f(x)变为+1,而对于像素间差异特征d3或者更小的值,弱假设辨别结果f(x)变为-1。同样地,当像素间差异特征d的值大于或者等于阈值Thi时,弱假设辨别结果f(x)的值变为+1,而当像素间差异特征d的值小于或者等于阈值Thi时,弱假设辨别结果f(x)的值变为-1。
重复执行上述过程,直到在步骤S77阈值Th被判断为大于最大像素间差异特征。在图28的示例中,重复各过程直到阈值变为大于最大像素间差异特征d9的值Th40。即,通过重复从步骤S74到S78的过程,每个设置的阈值Th的加权误差率et对于选择的各像素的一个组合确定。然后,在步骤S79,选择器427从因此确定的加权误差率et确定最小加权误差率。
然后,在步骤S80,选择器427设置对应于最小加权误差率的阈值,作为当前弱假设的阈值。即,从其中获得在步骤S79选择的最小加权误差率et的阈值Thi,被设置为弱鉴别器的阈值(从一对像素的组合产生弱鉴别器)。
在步骤S81,判断部分426判断:过程是否已经重复对应于所有组合的数量的倍数次。当对于所有组合过程并未执行时,过程返回到步骤S71,并且重复执行下面的过程。即,再次从24乘24的像素随机确定两个像素的位置S1和S2(不同于之前的位置),并且对于位置S1和S2处的像素值I1和I2执行相似的过程。
重复执行上述过程,直到在步骤S81判断:过程重复了对应于来自学习采样的两个像素的所有可提取组合数量的K倍次。然而,如上所述,在该实施例中,由于当位置S1和S2相反时执行的过程在步骤S75有效地执行,因此步骤S81处判断的过程的数量仅为K的一半,K是所有组合的数量。
在步骤S81,当判断对于全部组合过程已经完成时,选择器427在步骤S82从产生的弱鉴别器,选择具有最小加权误差率的弱鉴别器。即,因此学习并产生K个弱鉴别器中的一个弱鉴别器(例如,图13中的弱鉴别器61)。
然后,过程返回到图25中的步骤S43,并且将执行步骤S44和下面的步骤。然后,将重复地执行图25中的各过程,直到在步骤S48,当存在子节点时判断所有弱鉴别器的学习已经完成、或者当不存在子节点时判断加权误差率足够小。即,在图25的第二轮的过程中,图13中的弱鉴别器612经历产生和学习操作,并且在第三轮的过程中,弱鉴别器613经历产生和学习操作。然后,弱鉴别器61i的产生和学习,将要执行对应于节点中弱鉴别器数量的倍数次。
(5)对象检测方法
下面将描述图12中所示的对象检测设备51中使用的对象检测方法。
为了执行该过程,鉴别器55包括:初始化部分471、判断部分472、选择器473、返回部分474、接管部分475、弱假设计算部分476、评估值计算部分477、设置部分478和输出部分479,如图29所示。
初始化部分471初始化最高节点中的弱鉴别器。
判断部分472执行下面的判断操作:是否存在下一个已缩放的图像、感兴趣的对象的区域是否相互重叠、窗口图像是否为面部,是否存在子节点、变量branch_count[i]是否大于(或小于)子节点的数量、以及变量i是否为正等等。
选择器473提取两个重叠区域,选择区域等等。
返回部分474返回处理的节点到父节点。
接管部分475接管父节点的输出。
弱假设计算部分476基于式(12)计算弱假设。评估值计算部分477基于式(6)计算评估值s。
设置部分478为评估值s设置最大值。输出部分479输出评估值s。
从初始化部分471到输出部分479的这些部件,可以针对彼此发送和接收需要的数据。
在检测过程(辨别过程)中,利用学习过程中因此产生的弱鉴别器的鉴别器55,被用来根据预定的算法从图像确定感兴趣的对象(人类面部)。图30的流程图示出了这种过程。
在步骤S101,缩放部分53对从图像输出部分52输入的灰度图像执行预定比率缩小的放缩。
图像输出部分52可以直接接收灰度图像作为输入图像,或者可以将有色输入图像变换为灰度图像。
尽管缩放部分53最初不对图像输出部分52提供的图像执行比例转换,而按原样输出图像,并且在下一个定时和稍后输出已经经历缩小比例的已缩放的图像,然而从缩放部分53输出的所有图像,为了方便称为已缩放的图像。产生已缩放的图像的定时,为当已经完成跨越以前输出的已缩放的图像的面部检测时,并且当已缩放的图像变得小于窗口图像时,开始下一个画面(frame)的输入图像的过程。
在步骤S102,扫描器54在扫描操作中移动搜索窗口并剪切图像。即,扫描器54在已缩放的图像上的预定位置放置搜索窗口,在窗口中剪切图像作为窗口图像,并且将其输出到鉴别器55。
在步骤S103,鉴别器55执行辨认(identification)过程。将在下面参照图31中的流程图详细描述辨认过程,辨认过程判断:搜索窗口中的图像是否为人类面部图像,并且当图像为人类面部图像时,判断图像中的人类面部是朝向什么方向(图像被分类入标记W11到W13、标记W21到W23或者标记W31到W33)。
然后,在步骤S104,鉴别器55中的判断部分472判断:是否存在下一个搜索窗口。当存在下一个搜索窗口时,过程返回到步骤S102,并且扫描器54将当前已缩放的图像上的搜索窗口向右移动一个像素,剪切搜索窗口中的图像,并且将其输出到鉴别器55。此后,鉴别器55在步骤S103执行处理,以判断窗口图像是什么标记的人类面部图像。
这样,搜索图像如图4所示的在右下方向顺序移动一个像素,并且其判断每个搜索窗口中的图像是什么标记的人类面部图像。当搜索窗口的位置移动到已缩放的图像的右下位置时,在步骤S104判断不存在下一个搜索窗口,并且过程进入步骤S105。
在步骤S105,缩放部分53判断是否存在下一个已缩放的图像。当存在下一个已缩放的图像时,在步骤S101,缩放部分53产生以较高缩小率(进一步减小)放缩的图像,并且将其输出到扫描器54。然后,对已缩放的图像执行上述相同的过程。
重复执行上述过程,直到在步骤S105判断不存在下一个已缩放的图像。即,重复执行上述各过程,直到已缩放的图像变得小于窗口图像。
如上所述,搜索窗口在右下方向连续移动一个像素。因此,例如,当一个搜索窗口中的图像被判断为人类面部时,在大多数情况下,朝右或朝下移动一个像素的窗口中的图像也被判断为人类面部图像。因此,多个窗口图像将被检测为相同的人类面部图像。当已经处理了所有已缩放的图像时,执行用于消除各搜索窗口的重叠的过程。
因此,在步骤S106,判断部分472判断:感兴趣的对象的两个或者更多区域是否相互重叠。当感兴趣的对象的两个或者更多区域相互重叠时,在步骤S107,选择器473提取相互重叠的两个区域。例如,当判断一个搜索窗口中的图像在感兴趣的对象的区域中获得时,通过向右移动一个像素的搜索窗口也将被判断为人类面部图像,以便提取这两个窗口区域。在步骤S108,选择器473从在步骤S107提取的两个区域,选择具有较大评估值s的一个区域(将在图34中的步骤S174处或图35中的步骤S194处描述)。
然后,过程返回到步骤S106,并且重复执行后面的步骤。
这样,具有小评估值s的区域被认为较不可靠并且因此被忽略,而具有最高评估值s的区域被选择。重复上述过程,直到在步骤S106判断:感兴趣的对象的两个或多个区域相互不重叠。当判断不存在重叠时,终止用于该画面的过程。然后,如果需要,进一步执行用于下一个画面的过程。
下面将参照图31的流程图描述图30中的步骤S103处的辨认过程。
在步骤S131,鉴别器55中的初始化部分471设置初始值。具体的,初始化部分471设置变量i中的最高节点(根节点)的ID,所述变量i表示正处理的节点的ID。
根据参照图20描述的学习过程,通过学习图20中所示的各节点,已经提供了学习结果,如,与形成每个节点的弱鉴别器相关联的两个像素(图21)的位置。即,根据本发明的实施例,由图32中实线所表示的节点(下文中合适时称为学习节点)在鉴别器55中形成,而由图32中虚线表示的节点(下文中称为未学习节点)也在鉴别器55中形成。因为未学习节点未经历学习过程,所以它们与任何学习结果不相关联,如两个像素的位置。未学习节点具有相应的节点ID、父节点ID、子节点ID、标记、弱鉴别器的数量,等等(图21)。
最高学习节点81-1由100个鉴别器91-11到91-1100形成。学习节点81-1辨认标记W11到W13、标记W21到W23和标记W31到W33的图像。
学习节点81-1-1和81-1-2以及一个未学习节点81-1-3形成为学习节点81-1的低节点。
学习节点81-1-1由100个鉴别器91-1-11到91-1-1100形成,尽管其参考字符并未示出,并且节点81-1-2由100个鉴别器91-1-21到91-1-2100形成,尽管其参考字符未示出。未学习节点81-1-3不具有弱鉴别器。
学习节点81-1-1利用弱鉴别器91-1-1来辨认标记W11到W13图像。
学习节点81-1-2利用弱鉴别器91-1-2来辨认标记W21到W23图像。
如将在下面描述的,未学习节点81-1-3利用学习节点81-1-2中的弱鉴别器91-1-2来辨认标记W31到W33图像。
学习节点81-1-1-1和未学习节点81-1-1-2和81-1-1-3形成为学习节点81-1-1的低节点(子节点)。
学习节点81-1-1-1由100个鉴别器91-1-1-11到91-1-1-1100形成,尽管其参考字符并未示出,并辨认标记W11图像。
如将在下面描述的,尽管未学习节点81-1-1-2和81-1-1-3不具有弱鉴别器,然而它们利用学习节点81-1-1-1中的弱鉴别器91-1-1-1,以分别辨认标记W12和W13图像。
学习节点81-1-1-1-1被提供作为学习节点81-1-1-1的低节点(子节点)。学习节点81-1-1-1-1是终端节点,其不进一步具有低节点。学习节点81-1-1-1-1由L11个弱鉴别器91-1-1-1-11到91-1-1-1-1L11形成,尽管其参考字符并未示出,并且辨认标记W11图像。
未学习节点81-1-1-2-1被提供作为未学习节点81-1-1-2的低节点(子节点)。未学习节点81-1-1-2-1是终端节点,其不进一步具有低节点且不具有弱鉴别器,但利用学习节点81-1-1-1-1中的弱鉴别器91-1-1-1-1来辨认标记W12图像,如将在后面描述的。
未学习节点81-1-1-3-1被提供作为未学习节点81-1-1-3的低节点(子节点)。未学习节点81-1-1-3-1是终端节点,其不进一步具有低节点且不具有弱鉴别器,但利用学习节点81-1-1-1-1中的弱鉴别器91-1-1-1-1来辨认标记W13图像,如将在后面描述的。
学习节点81-1-2-1和未学习节点81-1-2-2和81-1-2-3形成为学习节点81-1-2的子节点。
学习节点81-1-2-1由100个弱鉴别器91-1-2-11到91-1-2-1100形成,尽管其参考字符并未示出,并辨认标记W21图像。
尽管未学习节点81-1-2-2和81-1-2-3不具有弱鉴别器,然而它们利用学习节点81-1-2-1中的弱鉴别器91-1-2-1,如将在下面描述的,来分别辨认标记W22和W23图像。
学习节点81-1-2-1-1被提供作为学习节点81-1-2-1的子节点。学习节点81-1-2-1-1是终端节点,其不进一步具有低节点。学习节点81-1-2-1-1由L21个弱鉴别器91-1-2-1-11到91-1-2-1-1L21形成,尽管其未参考字符示出,并且辨认标记W21图像。
未学习节点81-1-2-2-1被提供作为未学习节点81-1-2-2的子节点。未学习节点81-1-2-2-1是终端节点,其不进一步具有低节点且不具有弱鉴别器,但利用学习节点81-1-2-1-1中的弱鉴别器91-1-2-1-1来辨认标记W22图像,如将在后面描述的。
未学习节点81-1-2-3-1被提供作为未学习节点81-1-2-3的子节点。未学习节点81-1-2-3-1是终端节点,其不进一步具有低节点且不具有弱鉴别器,但利用学习节点81-1-2-1-1中的弱鉴别器91-1-2-1-1来辨认标记W23图像,如将在后面描述的。
未学习节点81-1-3-1、81-1-3-2和81-1-3-3形成为未学习节点81-1-3的子节点。
尽管未学习节点81-1-3-1、81-1-3-2和81-1-3-3不具有弱鉴别器,然而它们利用学习节点81-1-2-1中的弱鉴别器91-1-2-1,以分别辨认标记W31、W32和W33图像,如将在下面描述的。
未学习节点81-1-3-1-1被提供作为未学习节点81-1-3-1的子节点。未学习节点81-1-3-1-1是终端节点,其不进一步具有低节点且不具有弱鉴别器,但利用学习节点81-1-2-1-1中的弱鉴别器91-1-2-1-1来辨认标记W31图像,如将在后面描述的。
未学习节点81-1-3-2-1被提供作为未学习节点81-1-3-2的子节点。未学习节点81-1-3-2-1是终端节点,其不进一步具有低节点且不具有弱鉴别器,但利用学习节点81-1-2-1-1中的弱鉴别器91-1-2-1-1来辨认标记W32图像,如将在后面描述的。
未学习节点81-1-3-3-1被提供作为未学习节点81-1-3-3的子节点。未学习节点81-1-3-3-1是终端节点,其不进一步具有低节点且不具有弱鉴别器,但利用学习节点81-1-2-1-1中的弱鉴别器91-1-2-1-1来辨认标记W33图像,如将在后面描述的。
返回到图31,在步骤S131,图32中的示例中,在该点处设置最高学习节点81-1。变量branch_count[i]的值对于所有节点都初始化为零,所述变量branch_count[i]是对于每个节点设置的变量、并且表示每个节点已经访问的子节点的数量。对于所有节点将评估值s初始化为零,所述评估值s是基于式
(6)计算的加权多数判决。
然后,在步骤S132,评估值计算部分477等执行评估值计算过程。将参照图33和图34或35的流程图详细描述评估值计算过程,其计算正处理的已学习的或者未学习节点的评估值s。
在步骤S133,判断部分472判断:当前正辨认的窗口图像是否为面部。基于在步骤S132计算的评估值s执行该判断。
当评估值s为正(更具体的,当评估值s大于图34中的步骤S178或者图35中的步骤S198处设置的参考值(-HUGE_VAL)时(其将在稍后进行描述),窗口图像被判断为面部,而当评估值s等于或者小于零时(当评估值s小于参考值时),窗口图像被判断为不是面部。
当正辨认的窗口图像被判断为不是面部图像时,在步骤S138,返回部分474将处理的节点返回到父节点。
具体的,父节点的ID在变量i中设置。因为在该点正处理的节点为作为最高节点的学习节点81-1,因此不存在更高的父节点。因此,变量i被设置为-1,如上所述。
在步骤S139,判断部分472判断:步骤S138处设置的变量i的值是否大于零。当变量i的值被判断为不大于零时,过程进入步骤S140。
在该点,由于变量i的值为-1,其不大于零,因此过程进入步骤S140。
在步骤S140,判断部分472判断当前正处理的窗口图像不是面部。
即,在这种情况中,仅通过对最高学习节点81-1执行的处理,已经判断窗口图像不为人类面部图像。
当在步骤S133窗口图像被判断为人类面部图像(当评估值s被判断为正时),过程进入步骤S134,并且判断部分472判断当前正处理的节点是否具有子节点。当判断存在子节点时,过程进入步骤S135。
因为在该点正处理的学习节点81-1具有三个子节点,即,学习节点81-1-1和81-1-2以及未学习节点81-1-3,因此过程进入步骤S135。
在步骤S135,判断部分472判断:正处理的节点81-1的变量branch_count[i]是否小于节点81-1的子节点的数量(size(numChild))。当变量branch_count[i]被判断为小于size(numChild)时,过程进入步骤S136。
在该点,由于学习节点81-1的变量branch_count[i]的值为零(在该点处,变量branch_count[i]已经在步骤S131初始化为零),并且子节点的数量为3,因此变量的值被判断为小于子节点的数量,过程进入步骤S136。
在步骤S136,选择器473选择下一个要处理的节点。
具体的,正处理的节点的变量branch_count[i]的值递增一,并且在变量i中设置子节点的ID,所述子节点对应于因此设置的变量branch_count[i]的值。
在该点,学习节点81-1的变量branch_count[i]设置为1。然后,在变量i中设置子节点的ID,所述子节点对应于由此设置的变量branch_count[i]的值,例如,作为学习节点81-1的子节点的学习节点81-1-1的ID。
然后,过程返回到步骤S132,并且对具有在变量i中设置的ID的节点(在该点的学习节点81-1-1)执行评估值计算处理。即,学习节点81-1-1用来计算评估值s(判断窗口图像是什么标记人类面部图像)。
在步骤S133,判断部分472判断窗口图像是否为面部(评估值s是否为正)。当窗口图像为面部图像时,过程进入步骤S134,并且判断作为当前正处理的节点的学习节点81-1-1是否具有子节点。
由于学习节点81-1-1总共具有三个子节点,即,学习节点81-1-1-1和未学习节点81-1-1-2以及81-1-1-3,因此过程进入步骤S135。
在步骤S135,判断部分472将学习节点81-1-1的变量branch_count[i]的值与其子节点的数量(在本情况中为3)比较。
在该点,由于在步骤S131的过程中已经将变量branch_count[i]初始化为零,且学习节点81-1-1的子节点的量为3,因此branch_count[i]的值小于子节点的数量。因此,过程进入到步骤S136。
在步骤S136,选择器473将学习节点81-1-1的变量branch_count[i]的值递增一,使得变量branch_count[i]被设置为1,然后在变量i中设置学习节点81-1-1-1,其是学习节点81-1-1的子节点、并且对应于递增的变量branch_count[i]的子节点。
然后,在步骤S132,评估值计算部分477计算节点81-1-1-1的评估值s,该节点81-1-1-1是具有在变量i中设置的ID的节点。
在步骤S133,判断部分472判断:学习节点81-1-1-1的评估值s是否指示窗口图像为面部。当窗口图像为面部时,过程进入步骤S134并且判断当前正处理的学习节点81-1-1-1是否具有子节点。
由于学习节点81-1-1-1具有一个子节点,其是学习节点81-1-1-1-1,因此过程进入步骤S135。
在步骤S135,判断学习节点81-1-1-1的变量branch_count[i]的值是否小于其子节点的数量。
在该点,由于在步骤S131的过程中已经将变量branch_count[i]初始化为零、并且学习节点81-1-1-1的子节点的数量为3,因此变量branch_count[i]的值小于子节点的数量。因此,过程进入步骤S136。
在步骤S136,选择器473将学习节点81-1-1-1的变量branch_count[i]的值递增一,使得变量branch_count[i]设置为一,然后在变量i中设置学习节点81-1-1-1-1的ID,所述学习节点81-1-1-1-1是学习节点81-1-1-1的子节点,并且对应于递增的变量branch_count[i]的子节点。
然后,在步骤S132,评估值计算部分477利用学习节点81-1-1-1-1来计算评估值。
在步骤S133,判断部分472判断:学习节点81-1-1-1-1的评估值s是否为正(窗口图像是否为面部图像)。当评估值s为正时,过程进入步骤S134,并且判断当前正处理的学习节点81-1-1-1-1是否具有子节点。
学习节点81-1-1-1-1是终端节点并且不具有子节点。因此,在这种情况中,如步骤S137,判断部分472判断:窗口图像是与学习节点81-1-1-1-1相关联的标记W11面部。
另一方面,如步骤S133,当评估值s为负时(当窗口图像被判断不为面部时),在步骤S138,返回部分474在变量i中设置父节点的ID。
在该点,在变量i中设置作为学习节点81-1-1-1-1的父节点的学习节点81-1-1-1的ID。
在步骤S139,变量i被判断为正,并且在步骤S135,判断部分472判断节点81-1-1-1的变量branch_count[i]是否小于其子节点的数量。
在该点,由于变量branch_count[i]的值为1并且子节点的数量为1,其意味着它们相等,因此变量branch_count[i]被判断为不小于子节点的数量。因此,在步骤S138,在变量i中设置父节点的ID。
在该点,在变量i中设置作为学习节点81-1-1-1的父节点的学习节点81-1-1的ID。
在步骤S139,变量i被判断为正,并且在步骤S135,判断部分472判断:学习节点81-1-1的变量branch_count[i]是否小于其子节点的数量。
在该点,由于变量branch_count[i]的值为1、并且学习节点81-1-1的子节点的数量为3,因此变量branch_count[i]的值被判断为小于子节点的数量。在步骤S136,选择器473将变量branch_count[i]的值递增一,使得变量branch_count[i]被设置为2。此外,在变量i中设置子节点的ID,所述子节点对应于因此递增的变量branch_count[i]。
具体的,未学习节点81-1-1-2的ID在变量i中设置。在步骤S132,评估值计算部分477计算未学习节点81-1-1-2的评估值s。
在步骤S133,判断部分472判断:未学习节点81-1-1-2的评估值s是否表示窗口图像为面部。当窗口图像为面部时,过程进入步骤S 134,并且判断:当前正处理的未学习节点81-1-1-2是否具有子节点。
由于未学习节点81-1-1-2具有一个子节点,其为未学习节点81-1-1-2-1,因此过程进入步骤S135。
在步骤S135,判断:未学习节点81-1-1-2的变量branch_count[i]的值是否小于其子节点的数量。
在该点,由于在步骤S131的过程中已经将变量branch_count[i]初始化为零、并且未学习节点81-1-1-2的子节点的数量为1,因此branch_count[i]的值小于子节点的数量。因此,过程进入步骤S136。
在步骤S136,选择器473将未学习节点81-1-1-2的变量branch_count[i]的值递增1,使得变量branch_count[i]被设置为1,然后在变量i中设置未学习节点81-1-1-2-1的ID,所述未学习节点81-1-1-2-1是未学习节点81-1-1-2的子节点,并且其对应于递增的变量branch_count[i]。
然后,在步骤S132,评估值计算部分477利用未学习节点81-1-1-2-1来计算评估值。
在步骤S133,判断部分472判断:未学习节点81-1-1-2-1的评估值s是否为正(窗口图像是否为面部图像)。当评估值s为正时,过程进入到步骤S134,并且判断当前正处理的未学习节点81-1-1-2-1是否具有子节点。
未学习节点81-1-1-2-1是终端节点并且不具有子节点。因此,在这种情况中,如步骤S137,判断部分472判断:窗口图像是与未学习节点81-1-1-2-1相关联的标记W12面部。
另一方面,在步骤S133,当评估值s为负时(当窗口图像被判断为不是面部时),在步骤S138,返回部分474在变量i中设置父节点的ID。
具体的,在该点,在变量i中设置作为未学习节点81-1-1-2-1的父节点的未学习节点81-1-1-2的ID。
在步骤S139,变量i被判断为正,并且在步骤S135,判断部分472判断:未学习节点81-1-1-2的变量branch_count[i]是否小于其子节点的数量。
在该点,由于变量branch_count[i]的值为1并且子节点的数量为1,其意味着它们相等,所以变量branch_count[i]的值被判断为不小于子节点的数量。在步骤S138,在变量i中设置作为未学习节点81-1-1-2的父节点的已学习节点81-1-1的ID。
在步骤S139,变量i被判断为正,并且在步骤S135,判断部分472判断学习节点81-1-1的变量branch_count[i]是否小于其子节点的数量。
在该点,由于变量branch_count[i]的值为2并且学习节点81-1-1的子节点的数量为3,因此变量branch_count[i]的值被判断为小于子节点的数量。在步骤S136,选择器473将变量branch_count[i]的值递增一,使得变量branch_count[i]被设置为3。此外,在变量i中设置未学习节点81-1-1-3的ID,所述未学习节点81-1-1-3为对应于因此递增的变量branch_count[i]的子节点。在步骤S132,评估值计算部分477计算未学习节点81-1-1-3的评估值s。
下面将参照图33的流程图,描述图31中的步骤S132处的评估值计算过程。
在步骤S161,判断对其执行评估值计算的节点是否为学习节点。当正处理的节点被判断为学习节点时,过程进入步骤S162。
在步骤S162,对学习节点执行评估值计算过程,其将在下面描述。
另一方面,当在步骤S161要处理的节点被判断为不是学习节点时,在步骤S163对未学习节点执行评估值计算过程,其将在下面描述。
在步骤S162或者S163,在对学习节点或者未学习节点执行评估值计算过程之后,过程进入图31中的步骤S133,并且基于在评估值计算过程中获得的评估值s,判断窗口图像是否为面部。
下面将参照图34的流程图,描述在图33中的步骤S162处要对学习节点执行的评估值计算过程。
在步骤S171,接管部分475接管父节点的输出。具体的,当前节点的评估值s(i)初始化为评估值s,所述评估值s由在父节点计算的加权多数判决表达。当不存在父节点时,即,在最高节点81-1的情况下,评估值s(i)初始化为零。
在步骤S172,变量t在弱假设计算部分476中初始化为1,所述变量t表示已处理的弱鉴别器的数量(顺序)。
然后,在步骤S173,弱假设计算部分476利用由变量t指定的弱鉴别器,计算弱假设f(x)。基于上式(12)执行这种计算。该弱鉴别器对应于像素间差异特征d,所述像素间差异特征d由如上所述的一对像素I1和I2定义,并且在上述的学习过程中预先设置像素对和阈值Th(图21)。
在步骤S174,评估值计算部分477基于式(14)将当前弱鉴别器的弱假设(估计值)与可靠性(多数判决权重)αt相乘,将其与之前的评估值s相加,以更新评估值s。
即,基于式(12)计算的、作为弱鉴别器的辨别结果的估计值f(x),由通过式(8)表达的多数判决权重αt加权,并且计算加权多数判决F(x)的值,以提供评估值s。
s(i)=s(i)+α×f(x)    ...(14)
在该点,当弱鉴别器根据式(2)到(4)输出二进制估计值时评估值s如何影响估计的值、与当弱鉴别器输出由式(5)表达的函数f(x)作为估计值时评估值s如何影响估计的值不同。
首先,当式(2)用于弱鉴别器来输出二进制值作为估计的值时,由下式(15)表达评估值s。
Figure A20071012924900481
即,当像素间差异特征d的值大于阈值Tht时,弱鉴别器的辨别结果ft(x)的值为+1,否则为-1。结果,当像素间差异特征d的值大于阈值时,通过将估计的值ft(x)与权重αt相乘获得的值为αt,否则为-αt。然后,根据式(6)任一个结果值与之前的评估值s相加。从而更新评估值s,其是根据式(6)的加权多数判决F(x)的值。
当式(3)用来为弱鉴别器输出作为估计的值的二进制值时,通过下式(16)表达评估值s。
Figure A20071012924900482
当式(4)用于为弱鉴别器输出作为估计的值的二进制值时,由下式(17)表达评估值s。
Figure A20071012924900491
当式(5)用来为弱鉴别器输出作为估计的值的函数f(x)时,由下式(18)表达评估值s。
s←s+f(d)    ...(18)
然后,在步骤S175,判断部分472将评估值s(i)与中止阈值RM(t)相比较。即,判断:步骤S174处更新的评估值s(i)是否大于弱鉴别器(第t个弱鉴别器)的中止阈值RM(t),其已经在学习过程中学习(图21)。当评估值s(i)大于中止阈值RM(t)时,在步骤S176,判断部分472将变量t递增1。
然后,在步骤S177,判断部分472判断:步骤S176处递增的变量t是否大于预先设置的常量值T。常量值T表示节点中包含的弱鉴别器的数量。在本实施例中,T的值为100,除非节点是终端节点,而当节点为终端节点时,T的值被单独设置。当变量t等于或者小于常量值T时,不对所有弱鉴别器执行判断过程。因此,过程返回步骤S173。
然后,在步骤S173,弱假设计算部分476对下一个弱鉴别器执行弱假设计算(对应于递增的变量t的弱鉴别器)。此后,连续重复相同的过程。
然后,在步骤S177,当变量t被判断为大于常量值T时,在步骤S179处,输出部分479输出在步骤S174的过程中更新的评估值s(i),作为节点的评估值(辨别结果)。
另一方面,在步骤S175,当评估值s(i)被判断为等于或者小于中止阈值RM(t)时,在步骤S178,评估值s(i)被设置为设置部分478中的大负值(-HUCE_VAL)。那么,在步骤S179,输出部分479输出评估值s(i)作为节点的辨别结果,评估值s(i)已经在步骤S178设置为大负值。
即,在这种情况中,评估值s(i)、于中止阈值RM(t)意味着,窗口图像被判断为不是标记W11到W13、标记W21到W23和标记W31到W33的任何一个的人类面部图像。因此,将不执行下面的辨认过程,从而允许更快的辨认。
然后,过程返回到图31到图33中的步骤S133,并且如上所述,基于评估值s判断节点处的窗口图像是否为面部。当在步骤S178已经设置评估值s为参考值时,窗口图像被判断为不是人类面部图像,而当评估值s大于参考值时,如上所述,窗口图像被判断为人类面部图像。
下面将参照图35的流程图,描述对图33中的步骤S163处的未学习节点执行的评估值计算过程。
即,在步骤S191,在接管部分475中,将当前节点的评估值s(i)初始化为评估值s,所述评估值s由在父节点计算的加权多数判决表达,如图34中的步骤S171。由于未学习节点具有图32所示的父节点,因此评估值s(i)将不被初始化为零。
在步骤S192,变量t被初始化为弱假设计算部分476中的一个,所述变量t表示正使用的学习节点中的弱鉴别器的数量(顺序)。
然后,在步骤S193,弱假设计算部分476利用由变量t指定的弱鉴别器,以计算弱假设f(x)。
基于上述式(12)进行这种计算。然而,未学习节点与用来计算像素间差异特征d的阈值Th、或者像素对不关联。然后,与未学习节点相关联的图像、以及与图像(所述图像与图像(其与未学习节点相关联)具有预定的坐标关系)相关联的学习节点中的弱鉴别器,被用来确定像素对,所述像素对用来计算像素间差异特征d。
如图36所示,因为在滚动方向上旋转标记W11图像+20度导致分类为标记W12的图像,所以通过学习标记W12图像将获得的两个像素的位置,可以通过将通过学习标记W11图像获得的两个像素的位置在滚动方向上旋转+20度获得,如图37所示。
这种关系可由式(19)表示,其中xk和yk(k=1,2)是所引用的(referenced)学习节点处的评估值计算过程中使用的两个节点的坐标;sw是窗口图像的侧面宽度;sh是窗口图像的纵向宽度;以及x’k和y’k是未学习节点处的评估值计算过程中使用的各像素的坐标。
x ′ k y ′ k = round cos θ - sin θ sin θ cos θ x k - s w 2 y k - s h 2 + s w 2 s h 2 . . . ( 19 )
即,当对未学习节点81-1-1-2或未学习节点81-1-1-2-1执行评估值计算过程时,式(19)用来在滚动方向上将窗口图像上两个像素的位置旋转+20度,所述两个像素的位置用来计算弱鉴别器的弱假设f(x),所述弱鉴别器由已经学习标记W11的学习节点81-1-1-1-1、或者学习节点81-1-1-1的变量t指定。然后,在结果产生的旋转的位置处的各像素的像素间差异特征d将被计算。
如图36所示,因为在滚动方向上旋转标记W11图像-20度导致分类为标记W13的图像,所以通过学习标记W13图像将获得的两个像素的位置,可以通过将通过学习标记W11图像获得的两个像素的位置在滚动方向上旋转-20度获得。
即,当对未学习节点81-1-1-3或未学习节点81-1-1-3-1执行评估值计算过程时,式(19)用来在滚动方向上将窗口图像上两个像素的位置旋转-20度,所述两个像素的位置用来计算弱鉴别器的弱假设f(x),所述弱鉴别器由学习节点81-1-1-1-1、或者学习节点81-1-1-1的变量t指定。然后,在结果产生的旋转的位置处的各像素的像素间差异特征d将被计算。
如图36中所示,由于在滚动方向上旋转标记W21图像+20度导致分类为标记W22的图像,所以通过学习标记W22图像将获得的两个像素的位置,可以通过将通过学习标记W21图像获得的两个像素的位置在滚动方向上旋转+20度获得。
即,当对未学习节点81-1-2-2或未学习节点81-1-2-2-1执行评估值计算过程时,式(19)用来在滚动方向上将窗口图像上的两个像素的位置旋转+20度,所述两个像素的位置用来计算弱鉴别器的弱假设f(x),所述弱鉴别器由已经学习标记W21的学习节点81-1-2-1-1、或者学习节点81-1-2-1的变量t指定。然后,在结果产生的旋转的位置处的各像素的像素间差异特征d将被计算。
如图36中所示,由于在滚动方向上旋转标记W21图像-20度导致分类为标记W23的图像,所以通过学习标记W23图像将获得的两个像素的位置,可以通过将通过学习标记W21图像获得的两个像素的位置在滚动方向上旋转-20度获得。
即,当对未学习节点81-1-2-3或未学习节点81-1-2-3-1执行评估值计算过程时,式(19)用来在滚动方向上将窗口图像上的两个像素的位置旋转-20度,所述两个像素的位置用来计算弱鉴别器的弱假设f(x),所述弱鉴别器由已经学习标记W21的学习节点81-1-2-1-1、或者学习节点81-1-2-1的变量t指定。然后,在结果产生的旋转的位置处的各像素的像素间差异特征将被计算。
如图36所示,因为绕穿过图像的水平中心的垂直轴翻转标记W21图像(在水平方向翻转)导致分类为标记W31的图像,所以通过学习标记W31图像将获得的两个像素的位置,可以通过在水平方向上翻转两个像素的位置获得,后述两个像素的位置通过学习标记W21图像获得,如图38所示。
通过式(20)能表达这种关系。
x′k=sw-xk,y′k=yk    ...(20)
即,当对未学习节点81-1-3-1或者未学习节点81-1-3-1-1执行评估值计算过程时,式(20)用来在水平方向上翻转窗口图像上的两个像素的位置,所述两个像素的位置用来计算弱鉴别器的弱假设f(x),所述弱鉴别器由已学习标记W21的学习节点81-1-2-1-1、或学习节点81-1-2-1的变量t指定。然后,翻转结果的位置处的各像素的像素间差异特征d将被计算。
如图36中所示,因为在滚动方向上旋转标记W21图像-20度、并且在水平方向上翻转结果产生的标记W23图像导致分类为标记W32的图像,所以通过学习标记W32图像将获得的两个像素的位置,可以通过将通过学习标记W21图像获得的两个像素的位置在滚动方向上旋转-20度、并且在水平方向上翻转旋转的位置来获得。
即,当对未学习节点81-1-3-2或者未学习节点81-1-3-2-1执行评估值计算过程时,式(19)和(20)用来在水平方向上将窗口图像上的两个像素的位置旋转-20度,所述两个像素的位置用来计算弱鉴别器的弱假设f(x),所述弱鉴别器由已学习标记W21的学习节点81-1-2-1-1或学习节点81-1-2-1的变量t指定,并且在水平方向上翻转旋转的位置。然后,旋转和翻转结果的位置处的各像素的像素间差异特征d将被计算。
如图36中所示,由于在滚动方向上旋转标记W21图像+20度、并且在水平方向上翻转结果产生的标记W22图像导致分类为标记W33的图像,所以通过学习标记W33将获得的两个像素的位置,可以通过将通过学习标记W21图像获得的两个像素的位置在滚动方向上旋转+20度、并且在水平方向上翻转旋转的位置来获得。
即,当对未学习节点81-1-3-3或者未学习节点81-1-3-3-1执行评估值计算过程时,式(19)和(20)用来在滚动方向上将窗口图像上的两个像素的位置旋转+20度,所述两个像素的位置用来计算弱鉴别器的弱假设f(x),所述弱鉴别器由已学习标记W21的学习节点81-1-2-1-1、或学习节点81-1-2-1的变量t指定,并在水平方向上翻转旋转的位置。然后,旋转和翻转结果的位置处的各像素的像素间差异特征d将被计算。
利用相似的原理,当对辨认标记W31到W33的图像的未学习节点81-1-3执行评估值计算过程时,式(20)用来翻转水平方向中的窗口图像上的两个像素的位置,所述两个像素的位置用来计算弱鉴别器的弱假设f(x),所述弱鉴别器由已经学习标记W21到W23的学习节点81-1-2的变量t指定。然后,结果产生的翻转的位置处的各像素的像素间差异特征d将被计算。
关于需要计算式(12)的阈值Th,当对未学习节点81-1-1-2或81-1-1-2-1、或者未学习节点81-1-1-3或81-1-1-3-1执行评估值计算过程时,使用由学习节点81-1-1-1或者81-1-1-1-1的变量t指定的弱鉴别器的阈值。
当对未学习节点81-1-2-2或81-1-2-2-1、未学习节点81-1-2-3或81-1-2-3-1、未学习节点81-1-3-1或81-1-3-1-1、未学习节点81-1-3-2或81-1-3-2-1、或者未学习节点81-1-3-3或81-1-3-3-1执行评估值计算过程时,使用由学习节点81-1-2-1或81-1-2-1-1的变量t指定的弱鉴别器的阈值。
当对未学习节点81-1-3执行评估值计算过程时,使用由学习节点81-1-2的变量t指定的弱鉴别器的阈值。
当旋转学习节点处的两个像素的位置(所述两个像素的位置用来计算像素间差异特征d),以辨认未学习节点处的用来计算像素间差异特征d的两个像素时,可以想像旋转的位置可能离开窗口图像,如图39A所示。
为了解决该问题,在本实施例中,扫描器54放大窗口11,使得它变得稍微大于用于模式检测的图像,然后对放大的图像的中心区域执行模式检测,如图39B所示。
具体的,例如,首先通过学习20乘20的学习采样,然后将两个像素加到每个坐标,以将已学习的坐标变换为24乘24的坐标系统,24乘24的窗口用来在检测过程中检测。
实际上,当旋转角θ为+/-20度时,20乘20正方形的四个角处的四个像素旋转时将离开24乘24的窗口。然而,这个问题可以通过在滚动方向上旋转学习采样(中心与窗口图像的中心相对齐)、以及排除四个角处的像素来处理,该四个角处的像素离开在学习过程中要处理的图像。
返回图35,在步骤S194,如图34中的步骤S174,评估值计算部分477将当前弱鉴别器的弱假设(估计值)与可靠性(多数判决权重)αt相乘,将其加到之前的评估值s,以基于式(14)更新评估值s。
然而,未学习节点不与任何可靠性(多数判决权重)αt相关联。
因此,再次在这种情况中,当对未学习节点81-1-1-2或81-1-1-2-1、或者未学习节点81-1-1-3或81-1-1-3-1执行评估值计算过程时,使用由学习节点81-1-1-1或81-1-1-1-1的变量t指定的弱鉴别器的可靠性。
当对未学习节点81-1-2-2或81-1-2-2-1、未学习节点81-1-2-3或81-1-2-3-1、未学习节点81-1-3-1或81-1-3-1-1、未学习节点81-1-3-2或81-1-3-2-1、或者未学习节点81-1-3-3或81-1-3-3-1执行评估值计算过程时,使用由学习节点81-1-2-1或81-1-2-1-1的变量t指定的弱鉴别器的可靠性。
当对未学习节点81-1-3执行评估值计算过程时,使用由学习节点81-1-2的变量t指定的弱鉴别器的可靠性。
然后,在步骤S195,如图34中的步骤S175中,判断部分472将评估值s(i)与中止阈值RM(t)相比较。
然而,未学习节点不与任何阈值RM相关联。
因此,再次在这种情况中,当对未学习节点81-1-1-2或81-1-1-2-1、或者未学习节点81-1-1-3或81-1-1-3-1执行评估值计算过程时,使用由学习节点81-1-1-1或81-1-1-1-1的变量t指定的弱鉴别器的阈值RM
当对未学习节点81-1-2-2或81-1-2-2-1、未学习节点81-1-2-3或81-1-2-3-1、未学习节点81-1-3-1或81-1-3-1-1、未学习节点81-1-3-2或81-1-3-2-1、或者未学习节点81-1-3-3或81-1-3-3-1执行评估值计算过程时,使用由学习节点81-1-2-1或81-1-2-1-1的变量t指定的弱鉴别器的阈值RM
当对未学习节点81-1-3执行评估值计算过程时,使用由学习节点81-1-2的变量t指定的弱鉴别器的阈值RM
在步骤S195,当评估值s(i)大于中止阈值RM(t)时,在步骤S196,判断部分472将变量t递增1。然后,在步骤S197,判断部分472判断:步骤S196处递增的变量t是否大于预先设置的常量值T。
常量值T表示学习节点中包括的弱鉴别器的数量,未学习节点参考所述学习节点。当变量t等于或者小于常量值T时,不对所有弱鉴别器执行判断过程。因此,过程返回到步骤S193。然后,在步骤S193,弱假设计算部分476对下一个弱鉴别器执行弱假设的计算(对应于递增的变量t的弱鉴别器)。此后,连续重复相同的过程。
然后,在步骤S197,当变量t被判断大于常量值T时,在步骤S199,输出部分479输出在步骤S194的过程中更新的评估值s(i),作为节点的评估值(辨别结果)。
另一方面,在步骤S195,当评估值s(i)被判断等于或者小于中止阈值RM(t)时,在步骤S198,评估值s(i)在设置部分478中被设置为大负值(-HUGE_VAL)。然后,在步骤S199,输出部分479输出评估值s(i)(其已经在步骤S198设置为大负值)作为节点的辨别结果。
即,在这种情况中,评估值s(i)小于中止阈值RM(t)意味着,窗口图像被判断为不是标记W12、W13、W22、W23、W31、W32和W33中任何一个的人类面部图像。因此,将不执行后面的辨认过程,从而允许更快的辨认。
然后,过程进入图31到图33中的步骤S133,并且基于评估值s判断:窗口图像是否被判断为未学习节点的面部,如上所述。当评估值s已经在步骤S198设置为参考值时,窗口图像被判断为不是人类面部图像,而当评估值s大于参考值时,窗口图像被判断为是人类面部图像,如上所述。
如上所述,根据本实施例的对象检测方法,为了通过利用鉴别器(所述鉴别器利用组学习来学习弱鉴别器,所述弱鉴别器使用像素间差异特征以执行不稳固的辨别)检测感兴趣的对象,在步骤S173或S193计算感兴趣的对象的特征量的过程,仅通过读出窗口图像中的两个相应像素的亮度值、并计算亮度的差异来完成。因此,能够以稍微快的方式执行面部检测过程,允许实时面部检测。
然后,无论何时将通过特征量获得的辨别结果(估计值)、与用于辨别的弱鉴别器的可靠性相乘,并且添加结果值以连续更新评估值s,评估值s都与中止值RM相比较,从而判断是否继续弱鉴别器的估计值的计算。当评估值s变得小于中止阈值RM时,中止弱鉴别器的估计值的计算,并且过程进入下一个窗口,允许不需要的计算的大量减少和甚至更高速度的面部检测。
即,当扫描通过对输入图像执行缩小比例获得的已缩放的图像、和输入图像的所有区域时,从这些图像剪切各窗口图像,这些窗口图像的大多数不可能是感兴趣的对象,而是不感兴趣的对象。通过在辨别过程期间中止窗口图像(其是不感兴趣的对象)的辨别,可能以显著有效的方式执行辨别过程。相反,当要检测的大量的对象包含在这些图像中时,利用上述中止阈值的相似方法可以用来提供阈值,通过该阈值,中止显然是感兴趣的对象的窗口图像的计算。此外,通过缩放部分中改变输入图像的比例,可以设置任意大小的搜索窗口,以检测任意大小的对象。
此外,如上所述,对各图像(通过对预定标记图像(图20)执行坐标变换能获得所述各图像)不执行学习,而利用已学习的标记图像的学习结果。因此,尽管在相关技术中,例如在每个节点需要产生并保留形成该节点的各弱鉴别器,例如,如图6所示,可以在部分节点中省略各弱鉴别器的产生和保留,如图32所示。即,不需要存储相应的两个像素的位置对、用于各弱鉴别器的阈值、加权多数判决(每一个对应于弱鉴别器的可靠性)的权重、和中止阈值,允许鉴别器55的字典数据的减少。
例如,在图6所示的情况中,假设终端节点中的弱鉴别器的数量是3000,则总共可需要28300(=100+300+900+27000)个弱鉴别器。
即,当学习结果包括下面的数据量时,可需要大约228-KB存储容量。
加权系数:16位
像素差异阈值:9位
中止阈值:21位
坐标x1:5位
坐标y1:5位
坐标x2:5位
坐标y2:5位
总共:66位
另一方面,通过应用本发明,弱鉴别器的数量减小到6400(=100+100+200+6000),如图32所示,使得存储容量能够因此减小到37.3KB。
在上述描述中,尽管无论何时更新加权多数判决的值,都判断是否中止估计值的计算,然而将判断的频率减小到每N次中一次,可以减小要保留的中止阈值的数量,允许在字典数据中的进一步减小。
由于通常加权多数判决的值如图18中所示适当地改变,因此即使当减小是否中止估计值的计算的判断的频率时,下面的阈值最终也将中止估计值的计算。因此,尽管判断频率的减少导致速度稍微减少(在计算中止之前,增加估计值计算的频率),然而中止判断可适当地执行。
例如,当判断是否中止以每10次中的一次的频率的估计值的计算时,弱鉴别器的数据量能够从66位减小到47.1位,即,存储容量为36.8KB。
本发明并不仅限于上述实施例,而当然可以进行各种变化,只要这些变化不偏离本发明的精神。本发明能够应用到包括各种图像处理设备的信息处理设备,如接收并显示运动图像和静止图像的机器人(robot)。
利用硬件或者软件可以执行上述一系列过程。在这种情况中,例如,对象检测设备包括图40所示的计算机。
在图40中,CPU(中央处理单元)621根据ROM(只读存储器)622中存储的程序、或者从存储部分628加载到RAM(随机存取存储器)623的程序,执行各种过程。RAM 623合适时也存储CPU 621执行各种处理需要的数据等。
CPU 621、ROM 622和RAM 623经由总线624相互连接。输入/输出接口625也连接到总线624。
输入/输出接口625连接到包括键盘和鼠标的输入部分626、包括显示器(如CRT(阴极射线管)和LCD(液晶显示器))以及扬声器的输出部分627、包括硬盘的存储部分628、和包括调制解调器的通信部分629。通信部分629经由包括因特网的网络执行通信过程。
输入/输出接口625如果需要也连接到驱动器630,合适时在其中加载可移动介质631,如磁盘、光盘、磁光盘和半导体存储器。从可移动介质读取的计算机程序如果需要被安装到存储部分628中。
当利用软件要执行一系列程序时,形成软件的程序从网络或记录介质安装到与专用硬件相结合的计算机中,或者例如能够安装各种程序来执行各种功能的通用个人计算机。
如图40所示,记录介质不仅包括可移动介质631(包括磁盘(包括软盘)、光盘(包括CD-ROM(致密盘-只读存储器)和DVD(数字多功能盘))、磁光盘(包括MD(迷你盘))和半导体存储器),其上记录程序并且其从设备主体中分离出来并被分发以提供程序给用户,而且也可以包括并入存储部分628的硬盘和ROM 622,其上记录程序并且在预先并入设备主体时,提供给用户。
在本文中,描述在记录介质上记录程序的各步骤,不仅包括以时间序列方式的指定顺序执行的各过程,而且还包括不需要以时间序列方式执行、而以并行或单独执行的过程。
在本文中,系统指由多个设备形成的全部设备。
本领域的技术人员应当理解,取决于设计需要和其他因素可以发生各种修改、组合、子组合和更改,只要它们在权利要求或其等价物的范围之内。
相关申请的交叉引用
本申请包含于2006年3月17日在日本专利局提交的、日本专利申请JP2006-075517的主题,该申请全部内容通过引用在此并入。

Claims (10)

1.一种信息处理设备,包括:
高节点,具有多个弱鉴别器,所述多个弱鉴别器已经学习第一标记的学习采样和第二标记的学习采样,所述第二标记的学习采样与所述第一标记的学习采样具有预定的坐标关系;
第一低节点,具有多个弱鉴别器,所述多个弱鉴别器已经基于高节点的辨别结果,学习第一标记的学习采样;以及
第二低节点,不具有弱鉴别器,
其中所述第一低节点基于高节点的辨别结果对输入信号执行辨认过程,以便辨认第一标记的图像,以及
所述第二低节点根据坐标关系,通过利用第一低节点中的各弱鉴别器,基于高节点的辨别结果对输入信号执行辨认过程,以便辨认第二标记的图像。
2.根据权利要求1所述的信息处理设备,其中所述高节点和所述第一低节点中的各弱鉴别器,基于学习采样的图像数据中的两个像素值之间的差异与阈值有多少不同,执行辨认过程,以及
所述第二低节点,基于根据输入信号、图像上的两个像素值间的差异与对第一节点的辨认过程中使用的阈值有多少不同,执行辨认过程,所述输入信号的位置通过基于坐标关系、对第一节点的辨认过程中使用的两个像素的位置执行坐标变换得到。
3.根据权利要求2所述的信息处理设备,其中第二标记的学习采样对应于通过在滚动方向上旋转第一标记的学习采样预定的角度、或在水平方向上翻转第一标记的学习采样获得的图像,以及
第二低节点基于根据输入信号、图像上两个像素值间的差异与对第一节点的辨认过程中使用的阈值有多少不同,执行辨认过程,所述输入信号的位置通过在滚动方向上将对第一节点的辨认过程中使用的两个像素的位置旋转预定的角度、或在水平方向上翻转两个像素的位置得到。
4.根据权利要求3所述的信息处理设备,进一步包括:获得信号的输出装置,该信号经历辨认过程,并将其输出到高节点、第一低节点或第二低节点,
其中当第二低节点基于根据输入信号、图像上两个像素值间的差异与对第一节点的辨认过程中使用的阈值有多少不同、执行辨认过程时,输出装置将大于学习采样的图像的图像信号输出到第二低节点,所述输入信号的位置通过在滚动方向上将第一节点的辨认过程中使用的两个像素的位置旋转预定的角度得到。
5.根据权利要求4所述的信息处理设备,其中形成高节点和第一低节点的各弱鉴别器,根据从输出装置输出的图像信号,在滚动方向上旋转学习采样预定的角度,其中心对齐图像的中心,并且根据图像信号对离开图像的区域不执行学习。
6.根据权利要求1所述的信息处理设备,其中高节点以及第一和第二低节点包括中止装置,该中止装置用于将每个辨别结果用可靠性加权,累加各加权的辨别结果,并基于累加的和中止辨认过程。
7.根据权利要求6所述的信息处理设备,其中无论何时加权并累加辨别结果、或者无论何时加权和累加预定数量的辨别结果,中止装置都判断是否中止辨认过程。
8.一种用于信息处理设备的信息处理方法,该信息处理设备包括
高节点,具有多个弱鉴别器,所述多个弱鉴别器已经学习第一标记的学习采样和第二标记的学习采样,所述第二标记的学习采样与第一标记的学习采样具有预定的坐标关系,
第一低节点,具有多个弱鉴别器,所述多个弱鉴别器已经基于高节点的辨别结果,学习第一标记的学习采样,以及
第二低节点,不具有弱鉴别器,
该信息处理方法包括以下步骤:
利用第一低节点,基于高节点的辨认结果对输入信号执行辨认过程,以便识别第一标记的图像,以及
利用第二低节点,根据坐标关系,通过利用第一低节点中的弱鉴别器,基于高节点的辨别结果对输入信号执行辨认过程,以便辨认第二标记的图像。
9.一种记录介质,其上记录了用于信息处理设备的计算机可读程序,该信息处理设备包括
高节点,具有多个弱鉴别器,所述多个弱鉴别器已经学习第一标记的学习采样和第二标记的学习采样,所述第二标记的学习采样与第一标记的学习采样具有预定的坐标关系,
第一低节点,具有多个弱鉴别器,所述多个弱鉴别器已经基于高节点的辨别结果学习第一标记的学习采样,以及
第二低节点,不具有弱鉴别器,
该程序包括以下步骤:
利用第一低节点,基于高节点的辨认结果对输入信号执行辨认过程,以便识别第一标记的图像,以及
利用第二低节点,根据坐标关系,通过利用第一低节点中的弱鉴别器,基于高节点的辨别结果对输入信号执行辨认过程,以便辨认第二标记的图像。
10.一种用于信息处理设备的程序,该信息处理设备包括
高节点,具有多个弱鉴别器,所述多个弱鉴别器已经学习第一标记的学习采样和第二标记的学习采样,所述第二标记的学习采样与第一标记的学习采样具有预定的坐标关系,
第一低节点,具有多个弱鉴别器,所述多个弱鉴别器已经基于高节点的辨别结果学习第一标记的学习采样,以及
第二低节点,不具有弱鉴别器,
该程序使计算机执行以下步骤:
利用第一低节点,基于高节点的辨认结果对输入信号执行辨认过程,以便识别第一标记的图像,以及
利用第二低节点,根据坐标关系,通过利用第一低节点中的弱鉴别器,基于高节点的辨别结果对输入信号执行辨认过程,以便辨认第二标记的图像。
CN2007101292492A 2006-03-17 2007-03-19 信息处理设备和方法 Expired - Fee Related CN101127079B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP075517/06 2006-03-17
JP2006075517A JP4556891B2 (ja) 2006-03-17 2006-03-17 情報処理装置および方法、記録媒体、並びにプログラム

Publications (2)

Publication Number Publication Date
CN101127079A true CN101127079A (zh) 2008-02-20
CN101127079B CN101127079B (zh) 2010-06-09

Family

ID=38191155

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101292492A Expired - Fee Related CN101127079B (zh) 2006-03-17 2007-03-19 信息处理设备和方法

Country Status (5)

Country Link
US (1) US7844108B2 (zh)
EP (1) EP1835441A3 (zh)
JP (1) JP4556891B2 (zh)
KR (1) KR101342313B1 (zh)
CN (1) CN101127079B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200380291A1 (en) * 2015-12-23 2020-12-03 Fotonation Limited Image processing system

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4556891B2 (ja) * 2006-03-17 2010-10-06 ソニー株式会社 情報処理装置および方法、記録媒体、並びにプログラム
US8064655B2 (en) * 2007-04-20 2011-11-22 Panasonic Corporation Face image detection device, face image detection method and imaging apparatus
JP4891197B2 (ja) * 2007-11-01 2012-03-07 キヤノン株式会社 画像処理装置および画像処理方法
JP2009118009A (ja) * 2007-11-02 2009-05-28 Sony Corp 撮像装置、その制御方法およびプログラム
TWI489394B (zh) * 2008-03-03 2015-06-21 Videoiq Inc 用於追蹤、索引及搜尋之物件匹配
JP4655235B2 (ja) 2008-03-14 2011-03-23 ソニー株式会社 情報処理装置および方法、並びにプログラム
US8244044B2 (en) * 2008-04-25 2012-08-14 Microsoft Corporation Feature selection and extraction
US8909572B2 (en) * 2008-10-03 2014-12-09 The Trustees Of Columbia University In The City Of New York Systems, methods, and media for performing classification using a boosted classifier
JP5371541B2 (ja) * 2009-05-19 2013-12-18 キヤノン株式会社 データ処理装置及びその処理方法
US8365019B2 (en) * 2009-06-16 2013-01-29 International Business Machines Corporation System and method for incident management enhanced with problem classification for technical support services
JP5538967B2 (ja) * 2009-06-18 2014-07-02 キヤノン株式会社 情報処理装置、情報処理方法、プログラム
JP5791751B2 (ja) * 2009-06-18 2015-10-07 キヤノン株式会社 画像認識方法及び画像認識装置
JP2011180792A (ja) * 2010-03-01 2011-09-15 Sony Corp 画像処理装置及び画像処理方法、並びにコンピューター・プログラム
JP5675214B2 (ja) * 2010-08-18 2015-02-25 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム
JP5778983B2 (ja) * 2011-05-17 2015-09-16 キヤノン株式会社 データ処理装置、データ処理装置の制御方法、およびプログラム
WO2013132836A1 (ja) * 2012-03-05 2013-09-12 パナソニック株式会社 物体検出装置、物体検出方法、及び物体検出プログラム
US9317768B2 (en) * 2012-09-25 2016-04-19 Intel Corporation Techniques for improved feature detection
US20140270429A1 (en) * 2013-03-14 2014-09-18 Volcano Corporation Parallelized Tree-Based Pattern Recognition for Tissue Characterization
JP6448204B2 (ja) 2014-03-28 2019-01-09 キヤノン株式会社 物体検出装置、物体検出方法及びプログラム
JP6059686B2 (ja) * 2014-06-11 2017-01-11 日本電信電話株式会社 画像分類前処理装置、画像分類装置、画像分類前処理方法、画像分類方法及びプログラム
JP5892275B2 (ja) * 2015-02-26 2016-03-23 カシオ計算機株式会社 多クラス識別器生成装置、データ識別装置、多クラス識別器生成方法、データ識別方法、及びプログラム
CN107211299A (zh) 2015-03-05 2017-09-26 联发博动科技(北京)有限公司 Mmw系统中小区选择/重选的方法以及装置
JP6606849B2 (ja) * 2015-04-06 2019-11-20 大日本印刷株式会社 識別器生成装置、識別器生成方法、推定装置、推定方法、およびプログラム
US10860887B2 (en) 2015-11-16 2020-12-08 Samsung Electronics Co., Ltd. Method and apparatus for recognizing object, and method and apparatus for training recognition model
JP6768620B2 (ja) * 2017-09-27 2020-10-14 富士フイルム株式会社 学習支援装置、学習支援装置の作動方法、学習支援プログラム、学習支援システム、端末装置及びプログラム
JP6727176B2 (ja) * 2017-09-27 2020-07-22 富士フイルム株式会社 学習支援装置、学習支援装置の作動方法、学習支援プログラム、学習支援システム、および端末装置
US20210374476A1 (en) * 2017-11-24 2021-12-02 Truemed Oy Method and system for identifying authenticity of an object
US11176193B2 (en) * 2019-10-24 2021-11-16 Adobe Inc. Search input generation for image search
CN114584673B (zh) * 2020-12-01 2024-01-09 京东方科技集团股份有限公司 一种图像处理方法和装置

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6144755A (en) * 1996-10-11 2000-11-07 Mitsubishi Electric Information Technology Center America, Inc. (Ita) Method and apparatus for determining poses
JP2000123186A (ja) * 1998-10-14 2000-04-28 Canon Inc 被写体認識装置
DE60045699D1 (de) * 1999-01-29 2011-04-21 Sony Corp Daten-beschreibungs-verfahren und daten-bearbeitung-vorrichtung
DE60213032T2 (de) * 2001-05-22 2006-12-28 Matsushita Electric Industrial Co. Ltd. Gerät zur Gesichtsdetektion, Gerät zur Detektion der Gesichtspose, Gerät zur Extraktion von Teilbildern und Verfahren für diese Geräte
US7024033B2 (en) * 2001-12-08 2006-04-04 Microsoft Corp. Method for boosting the performance of machine-learning classifiers
US7050607B2 (en) * 2001-12-08 2006-05-23 Microsoft Corp. System and method for multi-view face detection
JP2004133637A (ja) * 2002-10-09 2004-04-30 Sony Corp 顔検出装置、顔検出方法及びプログラム、並びにロボット装置
US7203669B2 (en) * 2003-03-17 2007-04-10 Intel Corporation Detector tree of boosted classifiers for real-time object detection and tracking
US7689033B2 (en) * 2003-07-16 2010-03-30 Microsoft Corporation Robust multi-view face detection methods and apparatuses
JP2005044330A (ja) * 2003-07-24 2005-02-17 Univ Of California San Diego 弱仮説生成装置及び方法、学習装置及び方法、検出装置及び方法、表情学習装置及び方法、表情認識装置及び方法、並びにロボット装置
JP4517633B2 (ja) * 2003-11-25 2010-08-04 ソニー株式会社 対象物検出装置及び方法
JP4361394B2 (ja) 2004-03-03 2009-11-11 富士フイルム株式会社 対象物識別装置および方法並びにプログラム
JP4482796B2 (ja) * 2004-03-26 2010-06-16 ソニー株式会社 情報処理装置および方法、記録媒体、並びにプログラム
JP5025893B2 (ja) * 2004-03-29 2012-09-12 ソニー株式会社 情報処理装置および方法、記録媒体、並びにプログラム
JP2006072770A (ja) * 2004-09-02 2006-03-16 Sanyo Electric Co Ltd 顔検出装置および顔向き推定装置
US20070053563A1 (en) * 2005-03-09 2007-03-08 Zhuowen Tu Probabilistic boosting tree framework for learning discriminative models
US7433895B2 (en) * 2005-06-24 2008-10-07 Microsoft Corporation Adding dominant media elements to search results
JP2007028555A (ja) * 2005-07-21 2007-02-01 Sony Corp カメラシステム,情報処理装置,情報処理方法,およびコンピュータプログラム
CN100472556C (zh) * 2005-10-09 2009-03-25 欧姆龙株式会社 特定被摄体检测装置及方法
US7643659B2 (en) * 2005-12-31 2010-01-05 Arcsoft, Inc. Facial feature detection on mobile devices
US7953253B2 (en) * 2005-12-31 2011-05-31 Arcsoft, Inc. Face detection on mobile devices
JP4556891B2 (ja) * 2006-03-17 2010-10-06 ソニー株式会社 情報処理装置および方法、記録媒体、並びにプログラム
US7720284B2 (en) * 2006-09-08 2010-05-18 Omron Corporation Method for outlining and aligning a face in face processing of an image

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200380291A1 (en) * 2015-12-23 2020-12-03 Fotonation Limited Image processing system
US11532148B2 (en) * 2015-12-23 2022-12-20 Fotonation Limited Image processing system

Also Published As

Publication number Publication date
US7844108B2 (en) 2010-11-30
EP1835441A2 (en) 2007-09-19
EP1835441A3 (en) 2014-07-02
KR20070094577A (ko) 2007-09-20
CN101127079B (zh) 2010-06-09
JP2007249852A (ja) 2007-09-27
US20070217688A1 (en) 2007-09-20
JP4556891B2 (ja) 2010-10-06
KR101342313B1 (ko) 2013-12-16

Similar Documents

Publication Publication Date Title
CN101127079B (zh) 信息处理设备和方法
CN109934293B (zh) 图像识别方法、装置、介质及混淆感知卷积神经网络
EP1967984B1 (en) Information processing apparatus and method, recording medium and program
US10204283B2 (en) Image recognizing apparatus, image recognizing method, and storage medium
CN110728209B (zh) 一种姿态识别方法、装置、电子设备及存储介质
Baccouche et al. Sequential deep learning for human action recognition
Cruz et al. META-DES: A dynamic ensemble selection framework using meta-learning
Aksoy et al. Categorizing object-action relations from semantic scene graphs
Baró et al. Traffic sign recognition using evolutionary adaboost detection and forest-ECOC classification
EP3620980B1 (en) Learning method, learning device for detecting lane by using cnn and testing method, testing device using the same
WO2017079521A1 (en) Cascaded neural network with scale dependent pooling for object detection
Weinrich et al. Estimation of human upper body orientation for mobile robotics using an SVM decision tree on monocular images
Cuevas et al. Automatic multiple circle detection based on artificial immune systems
CN110674685B (zh) 一种基于边缘信息增强的人体解析分割模型及方法
US20200143209A1 (en) Task dependent adaptive metric for classifying pieces of data
Waheed et al. Improving visual place recognition performance by maximising complementarity
Kokkinos et al. Bottom-up & top-down object detection using primal sketch features and graphical models
CN104598898B (zh) 一种基于多任务拓扑学习的航拍图像快速识别系统及其快速识别方法
CN111046949A (zh) 一种图像分类方法、装置及设备
Gellaboina et al. Graphic symbol recognition using auto associative neural network model
CN113095235B (zh) 一种基于弱监督判别机制的图像目标检测方法、系统及装置
CN113362372B (zh) 一种单目标追踪方法及计算机可读介质
Afreen et al. Handwritten Digit Recognition using Ensemble learning techniques: A Comparative performance Analysis
Londhe et al. Analysis of facial expression using LBP and artificial neural network
Coetzer et al. Optimal human-machine collaboration for enhanced cost-sensitive biometric authentication

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100609

Termination date: 20150319

EXPY Termination of patent right or utility model