图象处理方法和设备、图象处理系统以及存储介质的制作方法

文档序号:6584249阅读:126来源:国知局
专利名称:图象处理方法和设备、图象处理系统以及存储介质的制作方法
技术领域
本发明的领域本发明涉及用于确定图象中的人脸的一种图象处理方法和图象处理设备。
本发明的背景用于探测一个图象(特别是具有复杂的背景的图象)中与一个人脸相应的一个区域的图象处理方法,是非常有用的。这样的方法可以在许多场合中得到应用,诸如遥程会议、人机交流、安全检查、用于跟踪人脸的监视系统、以及图象压缩等等。
人(不论是成年人还是婴儿),都很容易从复杂的背景中识别出人脸。然而,还没有有效的方法在一个图象中自动而迅速地探测出人脸。
目前,有许多用于在图象中探测人脸的已知方法。例如,可以用某些突出特征(诸如两个眼睛、嘴、鼻子等)和这些特征之间的固有的几何和位置关系或利用人脸的对称特性和人脸的外观特征等,来探测人脸。其他方法包括模板匹配法和神经网络法等。
例如,在Haiyuan Wu“Face Detection andRotationsEstimation using Color Information”(5th IEEEInternationWorkshop on Robot and Human Communication,1996,pp 341-346)中,描述了一种方法,其中利用人脸特征(两个眼睛和嘴)以及这些特征之间的关系,来探测人脸。在此方法中,首先研究要探测的一个图象区以确定是否能够提取这些人脸特征。如果可以,则提取的人脸特征与一个已知的人脸模型的匹配程度得到考查,其中该人脸模型描述了该人脸特征之间的几何关系。如果该匹配程度高,则该图象区被确定为是一个人脸的图象。否则,则判定它不是一个人脸的图象。然而,这种方法过于依赖于所要探测的图象的质量,且太受照明条件、图象背景的复杂性以及不同人脸的差别的影响。特别是,当图象质量差时,它难于准确地探测人脸。
本发明的概述眼睛是人脸的非常显著的特征。一般地,图象中与人眼对应的区域在大体沿着一对眼睛的连线的方向有较长的尺寸,换言之,图象中的各个眼区通常具有一个取向,且这种取向大体上沿着一对眼区的中心的连线的方向。基于这种认识,本发明的发明人提出了本发明的解决方案,以探测并判定图象中的人眼区,从而实现探测图象中的人脸的目的。
本发明是要提供一种有效的方法,用于在一个图象中探测人脸。
根据本发明的一个方面,提供了一种人脸探测方法,包括以下步骤探测一个图象中的两个候选眼区;计算这两个候选眼区中的每一个的取向;计算连接这两个候选眼区的中心的线段的取向;评价这两个候选眼区的每一个的取向与连接这两个候选眼区的中心的该线段的取向之间的关系;以及根据所述评价步骤的结果判定该候选眼区是否是真实的人眼区。
根据本发明的另一个方面,提供了一种人脸探测设备,包括候选眼区探测装置,用于探测一个图象中的两个候选眼区;候选眼区取向计算装置,用于计算这两个候选眼区中的每一个的取向;连接线段取向计算装置,用于计算连接这两个候选眼区的中心的线段的取向;评价装置,用于评价这两个候选眼区的每一个的取向与连接这两个候选眼区的中心的该线段的取向之间的关系;以及人眼区确定装置,用于根据所述评价步骤的结果判定该候选眼区是否是真实的人眼区。
从以下结合附图对本发明的详细描述,本发明的其他特征和方面将变得显而易见。
附图的简要描述本说明书的附图是本说明书的一部分,用于说明本发明的实施例并与文字描述一起用于说明本发明的原理。在附图中

图1显示了用于实施根据本发明的一个实施例的一种图象处理系统的一种示例性硬件设置;图2是框图,用于显示根据本发明的一个实施例的图象处理系统的一种示例性的功能设置;图3A是流程图,用于显示用于一个原始图象的人脸确定处理的一个实施例;图3B是流程图,用于显示图3A的取向评价和人脸确定步骤中的处理;图4是流程图,用于显示一个候选眼区的取向的一种计算方法。
图5是流程图,用于显示利用用于区间的计数器的计数来计算候选眼区的取向的处理的一个实施例;图6是流程图,用于显示用于利用所谓的几何法来计算一个候选眼区的取向的处理的一个实施例;图7是流程图,显示了用于计算一个候选眼区沿着一个给定的方向的投影长度的处理的一个实施例;图8用于说明如何计算一个候选眼区沿着一个方向的投影长度;图9显示了一个预定的候选人脸区的一个例子;图10用于显示两个候选眼区A和B和围绕候选眼区A的一个正方形;图11用于显示用于借助Sobel算子来计算一个象素的梯度方向的一种处理的一个实施例;
图12显示了所要探测的一个原始图象12A的一个例子;图13显示了图12中的某些细节;图14用于说明本发明的一个实施例,其中利用椭圆拟合来确定一个人脸;图15是流程图,用于描述根据本发明的第三实施例的椭圆拟合方法;图16是框图,显示了根据本发明的一个实施例的眼睛探测设备的设置;图17A显示了根据本发明的一个实施例的从一个原始图象探测候选人眼区的一个处理;图17B显示了所要探测的一个原始图象的一个例子;图18A是流程图,显示了用于对一个图象的各个列进行分段的处理;图18B用于显示一个图象中的一个示例性的列;图18C显示了一个列的灰度分布;图18D是被分成区段的一个灰度分布;图18E是图18B的图象的一个本分割的段;图18F显示了判定一个列中的一个象素是否是一个分割点的处理;图19A是流程图,用于显示在图17A中的步骤S173中合并列中的谷区的处理;图19B显示了一个图象中的列和该图象中的各列中的谷区和种区;图19C是一个例子,显示了在图17A中的步骤S173中合并一个探测的图象中的列中的谷区以产生候选人眼区的一个例子;图20A是流程图,显示了图17A的步骤S174中用于确定眼睛区的处理;图20B显示了一个候选人眼区及其外接矩形;图21A是流程图,显示了图18A中的步骤S185中调节分割边界的处理;图21B用于说明合并一个分割点的处理;图21C显示了用于把中间区合并到其相邻的谷区中的一个例子;图22A是流程图,用于显示图19A中的步骤S194中判定一个谷区是否能够被合并到一个种区中的处理;图22B显示了一个种区的预测谷区;图22C显示了两个谷区的一个重叠区;图23显示了一种示例性的方法,用于根据一对探测到的候选人眼区来确定一个候选人脸区。
最佳实施例的描述系统设置图1显示了用于实施根据本发明的一个实施例的一种图象处理系统的一种示例性的硬件设置。
图1的设置包括一个打印机设备105、一个显示器106、一个存储设备107(诸如一个硬盘等)、一个CPU 108、一个RAM 109、一个ROM 110、一个数字摄象机111、以及一个输入设备112。所有这些都通过一个总线113而互连。
CPU 108对整个图象处理系统进行系统的控制。该CPU把存储在ROM 110中的程序装载到RAM 109中,并根据装载的程序而执行各种处理。ROM 110存储将要由CPU 108执行的各种处理的程序。RAM 109提供了执行存储在ROM 110中的各种程序所需的存储区。
存储设备107存储操作系统和各种程序。当该图象处理系统不是利用诸如个人计算机的通用设备而是用专用设备实施时,ROM 110可以存储操作系统和各种程序。通过把存储的程序装载到RAM 109中,CPU 108能够执行处理。作为存储设备107,可以采用硬盘驱动器、软盘驱动器、CD-ROM、等等。即,其存储介质是不受限制的。
输入设备112包括鼠标器、键盘、麦克风、等等,用于输入关于将要由CPU 108执行的处理的各种指令。
打印机设备105可以是一个喷墨打印机、一个激光打印机等等,用于打印出各种数据、图象等等。
显示装置106包括一个显示器(CRT、LCD等等)并用于显示输入设备112输入的信息和由CPU 108所执行的各种处理所控制的窗口。
数字摄象机111检测一个对象图象并产生图象数据(诸如灰度图象数据或RGB图象数据)并能够把检测到的图象数据存储到存储设备107中。注意,数字摄象机111检测到的图象数据可以借助例如JPEG而得到编码。检测的图象数据可以作为图象数据而被传送到打印机设备105。
总线113互连图象处理系统的各种装置和部分。
人脸确定设备图2是框图,显示了根据本发明的一个实施例的图象处理系统的一种示例性功能设置。
图9显示了一个预定的候选脸区的一个例子。其中E1和E2分别表示两个候选眼区的取向,L表示连接两个候选眼区的中心的线段的取向。θ1和θ2分别表示E1和E2与L之间的夹角。
如图2所示,根据本发明的一个实施例的图象处理系统包括一个图象输入模块201、一个候选眼睛区探测模块202、一个候选人脸区确定模块203、一个候选眼区取向计算模块204、一个连接线取向计算模块205、一个取向评价模块206、以及一个输出模块208。
候选眼区探测模块202、候选人脸区确定模块203、候选眼区取向计算模块204、连接线取向计算模块205、以及取向评价模块206形成了本发明的一个实施例的人脸探测设备。
图象输入模块201对一个输入图象的数据进行处理并把处理的图象数据送到候选眼区探测模块202。该输入图象可以是由数字摄象机111拍摄的图象或是从存储设备107读出的图象等等。如果图象输入模块201所接收的输入图象数据是编码的(例如借助JPEG而编码的),图象输入模块201对该编码的图象数据进行解码。
候选眼区探测模块202探测输入图象中的候选人眼区并确定输入图象中属于候选人眼区的象素的位置。
随后,候选人脸区确定模块203根据候选眼区探测模块202所探测到的一对候选人眼区而确定一个候选人脸区。
有一些现有技术的方法,用于探测一个图象中的候选人眼区。在HYH-YUAN DENG和PEIPEI LAI于Pattern Recognition,Vol.30,NO.3,pp.403-419,1997上的“Region-based Template Deformationand masking for Eye-feature Extraction and Description”中,公布了一种现有技术方法。
本发明的发明人设计了一种新颖的方法和设备,用于探测一个图象中的候选人眼区。
本发明的眼睛探测设备的设置图16是框图,显示了根据本发明的一个实施例的眼睛探测设备的设置。
本发明的眼睛探测设备1600包括一个分割单元1601、一个合并单元1602和一个确定单元1603。
参见图18B和18E,根据一个图象的一个列C41中的各个象素的灰度,该列C41被分割单元1601分成多个区段I1-1、I1-2、……I1-9、I1-10。这些区段I1-1、I1-2、……I1-9、I1-10可以按照它们各自中的象素的平均灰度而被分成三种峰区、谷区、中间区。“峰区”、“谷区”和“中间区”的定义将在后面给出。如此,获得了列C41中的谷区。同样地,分割单元1601把该图象中的其他列分成这三种类型并获得它们中的谷区。在一个图象的所有列都被分成了三种类型并获得了它们中的谷区之后,合并单元1602执行合并处理并合并相邻的列中的谷区。合并的谷区被设定为候选人眼区。随后,这些候选人眼区可以由确定单元1603进行确定。
探测候选人眼区以下结合图17A的流程图描述用于从一个原始图象探测候选人眼区的处理。图17B是所要探测的一个原始图象的一个例子。假定该原始图象被存储在存储设备107或RAM 109等的一个预定区域中。
参见图17A,在步骤S172,原始图象的各列被分割单元1601分成多个区段。
图18E显示了一个原始图象的示例性的一列象素。如图18E所示,该列被分成多个区段I1-1、I1-2、……I1-9、I1-10,且这些区段I1-1、I1-2、……I1-9、I1-10中的每一个的长度是不同的。例如,区段I1-1的长度不等于区段I1-2的长度。随后,各区段的象素的平均灰度被计算出来,并判定各区段是否是一个谷区。
一个谷区是这样一个区段,即其象素的平均灰度小于它的相邻入区段的象素的平均灰度。因此,这些分割出的区段中的某些,按照它们的象素的平均灰度,被标为谷区。对原始图象中的所有列,都进行步骤S172的处理。
随后,在步骤S173,相邻的列中的谷区被合并单元1602所合并,以产生一或多个候选人眼区。
随后,在步骤S174,由确定单元1603确定出候选人眼区中的可接受的候选人眼区。因此,能够探测出与图象中的可接受的候选人眼区。
以下详细描述图17A的流程图中的各个步骤的处理。
分割一个图象的各列图18A是显示步骤S172中对一个图象中的各列进行分割的处理的流程图。图18B显示了一个图象的一列象素。图18C显示了列C41的灰度分布。图18D显示了列C41的一种平均化的灰度分布,其中各区段中的象素的灰度已经被相应区段中的象素的平均灰度所取代。在图18D中,标号I1-5、I1-6、I1-9分别表示了分割出的区段,且这些区段的每一个的灰度是图18C中的同一区段中的象素的平均灰度。
图18E显示了图18B中的图象的分割的列C41。对于图18B中的图象,列C41被分成10个区段I1-1、I1-2、……I1-9、I1-10。一个区段的大小就是该区段中的象素的数目。例如,如果区段I1-2包括12个象素,则区段I1-2的大小就是12。
现在参见图18D和18E,如果一个区段的灰度(即该区段中的象素的平均灰度)小于其两个相邻的区段的灰度,则该区段就被称为一个谷区。如果一个区段的灰度大于其两个相邻区段的灰度,该区段就被称为一个峰区。另一方面,如果一个区段的灰度在其两个相邻区段的灰度之间,则这样的一个区段就被称为一个中间区。至于该实施例的列C41,从区段I1-1至I1-10的灰度分别为196、189、190、185、201、194、213、178、188和231。对于区段I1-6,其灰度是194,且其相邻区段I1-5和I1-7的灰度分别是201和213。由于区段I1-6的灰度小于其相邻区段I1-5和I1-7的灰度,区段I1-6被判定为是一个谷区。类似地,区段I1-2、I1-4和I1-8也被判定为是谷区。对于区段I1-5,其灰度是201,且其相邻区段的灰度分别是185和194。由于区段I1-5的灰度大于其相邻区段I1-4和I1-6的灰度,区段I1-5被判定为是一个峰区。同样,区段I1-1、I1-3、I1-7和I1-10也被判定为是峰区。进一步地,对于区段I1-9,其灰度是188,其相邻区段I1-8和区段I1-10的灰度分别是178和231。由于区段I1-9的灰度在其相邻区段I1-8和区段I1-10的灰度之间,区段I1-9被判定为是一个中间区。
以下结合图18A描述步骤S172中的图象的每列的分割过程。
参见图18A,在步骤S181,被探测图象的左起第一列中的每一个象素的灰度被读出。为了把该列分成三种类型的区段,即谷区、峰区和中间区,需要确定分割点。
在步骤S182,该列中的一个象素是否是一个分割点,能够根据该象素处的灰度分布的第一和第二阶导数的值来确定。图18F显示了判定一个象素是否是一列中的一个分割点的过程。参见图18F,其中显示了一列中的两个相邻的象素Pi1和Pi2。
通过采用已知的离散导数算子,计算出两个象素Pi1和象素Pi2处的第一和第二阶导数。设象素Pi1和Pi2处的第一阶导数的值分别用D1f和D2f表示,且象素Pi1和Pi2处的导数的值分别用D1s和D2s表示,则如果以下的两个条件之一成立(D1s≥0)且(D2s<0);和(D1s>0)且(D2s≥0)且D1f和D2f的绝对值之一大于一个预定的值,而该预定值在6-15的范围内且优选地为8,则象素Pi1被判定为是一个分割点。否则,象素Pil被判定为不是一个分割点。
因此,能够在步骤S182获得分割点s11、s12,…s19。
在已经判定了一列中的分割点之后,在步骤S183,该列可被这些分割点分割成多个区段。随后,在步骤S184,根据这些区段的灰度,这些区段被分成谷区、峰区和中间区。随后,在步骤S185这些区段的边界得到调节。步骤S185的细节将借助详细的流程图而得到描述。在步骤S186,检查被探测的图象中的所有列是否都已经被分割。如果正在被分割的列不是该被探测的图象中的最后一列,流程进行到步骤S187。在步骤S187,下一个列的象素的灰度被读出。随后,流程返回到步骤S182,以重复步骤S182和随后的步骤。然而,在步骤S186,如果正在被分割的列是被探测的图象中的最后一个列,即所有的列都已经被分割,则流程于步骤S188结束。
或者,上述的分割过程可以从所要探测的图象的右起第一列开始,或者从所要探测的图象的任何一列开始。
合并谷区以产生候选人眼区图19A是显示图18A中的步骤S173中的合并列中的谷区的过程的流程图。图19B显示了一个图象中的列和该图象的各列中的谷区和种区。在图19B中,一个图象具有n列Col1、Col2、……Coln。
参见图19A和19B,在步骤S191,被探测图象的第一列(最左列)Col1中的所有谷区S1、S2、S3和S4被设定为种区。一个种区是一或多个谷区的一个集合。由于一个谷区的灰度小于其相邻区的灰度,一个种区通常呈现为一列中的一个暗区。
在图19A的步骤S192,下一个列Col2中的第一谷区V2-1被读出。随后,流程进行到步骤S193。在步骤S193,一个第一种区S1被读出。在步骤S194,根据谷区V2-1和种区S1,检查列Col2的谷区V2-1是否能够被合并到种区S1中。如果列Col2的谷区V2-1能够被合并到种区S1中,则流程进行到步骤S196且谷区V2-1被合并到该种区中,随后该谷区变为该种区的一部分。然而,如果在步骤S194判定谷区V2-1不能被合并到种区S1中,流程进行到步骤S195。在本例中,列Col2的谷区V2-1能够被合并到种区S1中。流程进行到步骤S195。在步骤S195,检查该种区是否是最后一个种区。如果该种区不是最后一个种区,则在步骤S197读出下一个种区且流程返回到步骤S194以重复步骤S194和随后的步骤中的处理。在本例中,种区S1不是最后一个种区,因而在步骤S197下一个种区S2被读出,且步骤S194和步骤S195被反复。如果在步骤S195判定该种区是最后一个种区(例如图5B中显示的种区S4),则流程进行到步骤S198且把不能被合并到一个种区中的各谷区设定为一个新的种区。参见图19B,由于列Col2的谷区V2-1不能被合并到种区S1、S2、S3或S4中,即它是不能被合并到任何一个已有的种区中的一个谷区,因而在步骤S198,列Col2的谷区V2-1被设定为一个新的种区。
在步骤S199,检查列Col2中的所有谷区是否都已经被处理。如果在步骤S199判定列Col2中的所有谷区都已经被处理,流程进行到步骤S1911;如果在步骤S199判定列Col2中的所有谷区未都得到处理,则列Col2中的下一个谷区被读出(步骤S1910),且处理随后返回到步骤S193。
在步骤S1911,检查是否所有的列都已经被处理。如果当前的列不是被探测图象中的最后一个列,则处理返回到步骤S192以重复步骤S192和随后步骤的处理。
在本例中,由于列Col2不是被探测图象中的最后一个列,流程返回到步骤S192。
如果在步骤S1911判定所有的列都已经被处理了,即当前的列是最后一个列Coln,则流程进行到步骤S1920。在步骤S1920,各个种区都被设定为一个候选人眼区。随后,流程于步骤S1921结束。图19C是一个例子,显示了在步骤S173把一个被探测图象的列中的谷区进行合并以产生候选人眼区的结果。
判定可接受的候选人眼区图20A是显示步骤S174中确定可接受的候选人眼区的过程的流程图。
参见图20A,在步骤S201,在上述过程中设定的一个第一候选人眼区被读出。随后,流程进行到步骤S202。在步骤S202,该第一候选人眼区的灰度得到计算。如上所述,一个候选人眼区包括一或多个谷区。如果一个候选人眼区由n个谷区,即谷区1、谷区2、…谷区n,组成,则在步骤S202计算的该候选人眼区的灰度由以下公式给出EyeGray1=(Valley1Gray1×pixels1+Valley2Gray1×pixels2……+ValleynGray1×pixelsn)/TotalPixels (a1)其中EyeGray11是一个候选人眼区的灰度;Valley1Gray1是谷区1的灰度,pixels1是谷区1中的象素的数目;Valley2Gray1是谷区2的灰度,pixels2是谷区2中的象素的数目;ValleynGray1是谷区n的灰度,pixelsn是谷区n中的象素的数目;Total Pixels是包括在一个候选人眼区中的象素的数目。
因此,例如,如果一个候选人眼区包括灰度分别是12、20和30的3个谷区,且这些谷区分别具有5、6和4个象素,则该候选人眼区的灰度是(12×5+20×6+30×4)/15=20。
参见图20A的步骤S202,一个候选人眼区的灰度得到计算。如果该候选人眼区的灰度不小于一个第一阈值(例如160),流程进行到步骤S2010。在本实施例中,该第一阈值优选地是在100至200的范围内。在步骤S2010,若该候选人眼区被判定为是一个假的眼睛区,它将被拒绝且随后流程进行到步骤S208。在步骤S208,检查被探测的图象中的所有候选人眼区是否都已经被处理。如果当前的候选人眼区不是最后一个,则在步骤S209读出下一个候选人眼区,且随后流程返回到步骤S202以重复步骤S202和随后的步骤的处理。然而,如果在步骤S208判定当前的候选人眼区是最后一个候选人眼区,则在被探测图象中的所有的候选人眼区都已经被判定,且流程在步骤S2011结束。
在步骤S202,如果候选人眼区的灰度小于该第一阈值,则流程进行到步骤S203。
在步骤S203计算候选人眼区的背景灰度。包括在候选人眼区中的谷区的背景灰度确定了一个候选人眼区的背景灰度。一个谷区的背景灰度是其相邻区段的灰度的平均灰度。在步骤S203计算出的一个候选人眼区的背景灰度由下式给出EyeBGray1=(Valley1BGray1+Valley2BGray1……+ValleynBGray1)/n (a2)其中EyeBGray1是一个候选人眼区的背景灰度;Valley1BGray1是谷区1的背景灰度;Valley2BGray1是谷区2的背景灰度;ValleynBGray1是谷区n的背景灰度;n是包括在相应的候选人眼区中的谷区的数目。
在步骤S203,一个候选人眼区的背景灰度被与一个第二阈值相比较。如果在步骤S203判定当前的候选人眼区的背景灰度不大于该第二阈值(例如30),则流程进行到步骤S2010。在本实施例中,第二阈值优选地是在20至80的范围内。在步骤S2010中,若一个候选人眼区被判定为不大于该第二阈值,则它被判定为是一个假眼睛区并被拒绝。随后流程进行到步骤S208。
在步骤S203,如果当前的候选人眼区的背景灰度大于该第二阈值,流程进行到步骤S204。
在步骤S204,当前的候选人眼区的背景灰度与当前的候选人眼区的灰度之差被计算出来并与一个第三阈值(例如20)相比较。如果该差不大于该第三阈值(例如20),则流程进行到步骤S2010。在本实施例中,该第三阈值优选地是在5至120的范围内。在步骤S2010,如果当前的候选人眼区被判定为不大于该第三阈值,则它被判定为是一个假的眼睛区并被拒绝。随后流程进行到步骤S208。
在步骤S203,如果当前的候选人眼区的背景灰度与当前的候选人眼区的灰度之差大于该第三阈值,流程进行到步骤S205。
在步骤S205,计算出一个候选人眼区的宽度与高度的比值。
关于一个候选人眼区的高度和宽度,采用了以下的定义。一个谷区的大小是包括在该谷区中的象素的数目。例如,如果一个谷区包括5个象素,则该谷区的大小是5。一个候选人眼区的大小是包括在该候选人眼区中的谷区的大小之和。一个候选人眼区的宽度是包括在该候选人眼区中的谷区之和。一个候选人眼区的高度由下式给出Hd=Sd/Wd (a3)其中Hd是一个候选人眼区的高度;Sd是一个候选人眼区的大小;且Wd是一个候选人眼区的宽度。
参见图20A中的步骤S205,一个候选人眼区的宽度与高度的比值被计算出来并与一个第四阈值相比较。如果在步骤S205判定当前候选人眼区的宽度与高度的比值不大于该第四阈值(例如3.33),则流程进行到步骤S2010。在本实施例中,该第四阈值优选地是在1至5的范围中。在步骤S2010,当前的候选人眼区被判定为是一个假眼睛区并被拒绝。随后流程进行到步骤S208。
如果,在步骤S205,当前的候选人眼区的宽度与高度的比值被判定为大于该第四阈值,则流程进行到步骤S206。
在步骤S206,当前的候选人眼区的大小与其外接矩形的大小的比值被计算出来并与一个第五阈值相比较。图20B显示了一个候选人眼区及其外接矩形。参见图20B,其中给出了一个候选人眼区D1和它的外接矩形DC1。如从图20B可见,该候选人眼区的外接矩形DC1是包围该候选人眼区D1的最小矩形。一个候选人眼区的外接矩形的大小是包括在该外接矩形中的象素的数目。一个候选人眼区的大小是包括在该候选人眼区中的象素的数目。
在步骤S206,当前的候选人眼区的大小与其外接矩形的大小的比值被计算出来并与第五阈值(例如0.4)相比较。如果在步骤S206判定该比值不大于该第五阈值,流程进行到步骤S2010。在本实施例中该第五阈值优选地是在0.2与1之间的范围中。在步骤S2010,当前的候选人眼区被判定为是一个假眼睛区并被拒绝。随后流程进行到步骤S208。
如果在步骤S206判定当前的候选人眼区的大小与其外接矩形的大小的比值大于该第五阈值,则流程进行到步骤S207;在步骤S207,当前的候选人眼区被判定为是一个可接受的候选人眼区。
在步骤S207之后,流程进行到步骤S208,以判定当前的候选人眼区是否是最后一个候选人眼区。如果不是最后一个候选人眼区,则在步骤S209读出下一个候选人眼区且流程返回到步骤S202。如果步骤S208的结果是“是”,则所有候选人眼区都已经被判定。图20C显示了步骤S173的探测一个图象中的可接受的候选眼区的结果。
调节区段的边界图21是流程图,显示了图18A中的步骤S185的调节区段的边界的处理。
参见图21A,在步骤S211,一个分割点的灰度被与其两个相邻区段的灰度相比较,且该分割点被合并到其灰度较接近该分割点的灰度的相邻区段中。例如,参见图21B,分割点S的灰度是80,且其相邻区段是区段In1和In2。区段In1和In2的灰度分别是70和100。由于区段In1的灰度更接近于分割点S的灰度,因而S被合并到区段In1中。
进一步地,流程进行到步骤S212。在步骤S212,当前的列的第一中间区被读出。随后在步骤S213该中间区及其相邻的谷区和峰区的灰度被计算出来。在这些区的灰度被计算出来之后,流程进行到步骤S214。在步骤S214,进行一个比较以判定GR是否小于GP×Th6+GV×(1-Th6),其中GR表示中间区的灰度,GV表示该中间区的相邻谷区的灰度,GP表示该中间区的相邻的峰区的灰度,且Th6是一个第六阈值(例如0.2)。在本实施例中,该第六阈值优选地是在0至0.5的范围中。如果步骤S214的判定结果是“否”,流程进行到步骤S216。如果步骤S214的判定结果是“是”,则在步骤S215该中间区被合并到其相邻的谷区中。
图21C显示了把一个中间区合并到相邻的谷区中的一个例子。图21C中所示的X轴代表各列的位置,图21C中所示的Y轴代表各区的灰度。
参见图21C,中间区Re1的灰度是25,谷区Va1的灰度是20,且峰区Pe1的灰度是70。当第六阈值被置于0.2时,则GP×Th6+GV×(1-Th6)=70×0.2+20×0.8=30>GR=25因此,步骤S214的判定结果为“是”,所以中间区Re1将被合并到谷区Va1中。
进一步地,中间区Re2的灰度是40、峰区Pe2的灰度是60,GP×Th6+GV×(1-Th6)=60×0.2+20×0.8=26<GR=40因此,步骤S214的判定结果是“否”,所以中间区Re2将不被合并到谷区Va1中。
参见图21A的步骤S216,其中检查被探测图象中的所有中间区是否都已经得到处理。如果当前的中间区不是最后一个中间区,则在步骤S217读出下一个中间区,且随后流程返回到步骤S213以重复步骤S213和随后的步骤。然而,如果在步骤S216判定当前的中间区是最后一个中间区,即对所有的中间区的处理都已经完成,流程在步骤S218结束。这样,被探测图象中的所有区段的边界都已经得到调整。
确定一个谷区是否能够被合并到一个种区中图22A是流程图,用于显示图19A中的步骤S194中判定一个谷区是否能够被合并到一个种区中的处理。
图22B显示了一个种区的一个预测谷区。一个种区的一个预测谷区并不是被探测图象的任何列中的一个真实存在的谷区。它是包括在该种区的右边的最邻近的谷区的列的下一个列中的一个谷区,且其纵向位置与在该种区的右边的该最邻近的谷区的纵向位置相同。参见图22B,谷区Va3是在种区Se1的右边的最邻近的谷区。谷区Va3在列Col1中,且列Col2是列Col1的下一个列。因而谷区Va1是种区Se1的预测谷区。该预测谷区在列Col2中,且其纵向位置与谷区Va3的纵向位置相同,但在不同的列中。
图22C显示了两个谷区的一个重叠区。两个谷区的重叠区是这样的一个区-即该区中的象素同时属于这两个区。
参见图22C,从点B至点C的区段是谷区Va1,从点A至点C的区段是一个谷区Va2,谷区Va1是种区Se1的预测谷区,谷区Va2是列Col2中的一个真实的谷区。因而,从点B到点C的区段是谷区Va1和谷区Va2的重叠区。
以下结合图22A的流程图,说明判定一个谷区是否能够被合并到一个种区中的过程。参见图22A,一个谷区和一个种区的预测谷区的重叠区在步骤S221中被计算出来。
在已经计算出了该重叠区之后,流程进行到步骤S222。在步骤S222,进行一个比较,以判定Osize/Max(Vsize,SVsize)是否大于Th7;其中Osize是谷区与该种区的预测谷区的重叠区的大小,Max(Vsize,SVsize)是该谷区的大小和该种区的预测谷区的大小的中的最大者,且Th7是一个第七阈值(例如0.37)。第七阈值优选地是在0.2至0.75的范围内。
如果步骤S222的判定结果是“否”,流程进行到步骤S228;此时该谷区不能被合并到该种区中,且该流程在步骤S229结束。否则,如果步骤S222的判定是“是”,则该流程进行到步骤S223。
在步骤S223,该谷区和该种区的灰度被计算出来。随后,流程进行到步骤S224。在步骤S224,判定|GValley-GSeed|是否小于Th8,其中GValley是该谷区的灰度,GSeed是该种区的灰度,且Th8是一个第八阈值。该第八阈值优选地是在0至60的范围内且它的一个优选值是例如40。如果步骤S224的判定结果是“否”,流程进行到步骤S228;此时该谷区不能被合并到该种区中,且该流程在步骤S229结束。否则,如果步骤S224的判定结果是“是”,则流程进行到步骤S225。
在步骤S225,该谷区的背景、该种区的背景、该谷区和该种区的亮度值被计算出来。
一个图象中的一个象素的亮度值用下式计算G=0.12219×L-0.0009063×L2+0.000036833526×L3-0.0000001267023×L4+0.0000000001987583×L5………(a4)公式(a4)表示了孟寒尔表色系统(A.H.Munsel color system)中灰度值与亮度值之间的非线性关系,其中G是一个象素的从0至255的灰度,且L是一个象素的亮度值并且从0至255。
因此,可以从一个图象中的一个象素的灰度获得其亮度值。另一方面,一个象素的灰度也可以从其亮度值获得。
对于本例,图18F中的象素Pi1和Pi2分别具有50和150的灰度。借助公式(a4),可以计算出象素Pi1和象素Pi2的亮度值分别是128和206。
参见图22A,在步骤S225之后,流程进行到步骤S226。在步骤S226,判定Min((Lvb-Lv),(Lsb-Ls))/Max((Lvb-Lv),(Lsb-Ls))是否大于Th9,其中Lv是该谷区的亮度值,Ls是该种区的亮度值,Lvb是该谷区的背景的亮度值,且Lsb是该种区的背景的亮度值。Min((Lvb-Lv),(Lsb-Ls))是(Lvb-Lv)和(Lsb-Ls)中的最小者,Max((Lvb-Lv),(Lsb-Ls))是(Lvb-Lv)和(Lsb-Ls)中的最大者,且Th9是一个第九阈值(例如为0.58)。该第九阈值优选地是在0.3至1的范围内。如果步骤S226的判定结果是“否”,流程进行到步骤S228;此时该谷区不能被合并到该种区中,且流程在步骤S229结束。否则,如果步骤S226中的判定结果是“是”,流程进行到步骤S227。
在步骤S227,该谷区被合并到该种区中,且该流程于步骤S229结束。
从以上的描述可见,本发明提供了一种方法和设备,用于在一个具有复杂的背景的图象中迅速地探测与人眼对应的区域而不要求被探测图象的具有高的质量,因而大大地减小了图象中的人眼不能被探测到的可能性。本发明的该方法和设备使得能够在不同的比例、朝向和照明条件下对人眼进行准确的探测。因此,借助本发明的该方法和设备,能够迅速而有效地探测出一个图象中的人眼。
当探测出了一个图象中的一对候选人眼区时,候选人脸区确定模块203为该对候选人眼区确定出一个候选人脸区。
图23显示了用于根据一对探测出的候选人眼区确定一个候选人脸区的一种示例性的方法。
以下结合图3A的流程图描述为一个原始图象的人脸确定处理的一个实施例。
图12显示了一个所要探测的原始图象12A。设该原始图象由一个摄象机或扫描仪拍摄并被存储在存储设备107或RAM 109等的一个预定的区域中。
参见图3A,该人脸确定处理开始于步骤S30。在步骤S31,图象输入模块201读取所要探测的原始图象12A的每一个象素的灰度。如果该原始图象是编码的(例如借助JPEG),图象输入模块201首先对其进行解码,然后读取其图象数据。
随后,在步骤S32,候选人眼区探测模块202探测所要探测的原始图象中的候选人眼区并确定原始图象12A中属于探测到的候选人眼区的象素的位置。
可以利用结合图16-22C描述的方法或现有技术中的各种方法,来确定原始图象中的一对候选人眼区。
随后,在步骤S33,候选人脸区确定模块203根据一对探测到的候选人眼区而确定一个候选人脸区,且流程进行到步骤S34。
在步骤S34,候选眼区取向计算模块204计算该对候选人眼区中的每一个候选人眼区的取向。有三种用于确定各个候选眼区的取向的方法梯度法、几何法和椭圆拟合法。
以下结合图4描述梯度法。
用于计算一个候选眼区的取向的梯度法在梯度法中,一个候选眼区的取向是由该候选眼区中和/或周围的各个位置的梯度的方向来确定的。每一个象素都根据其梯度的方向而被分类,且候选眼区的取向根据这种分类的结果而被计算出来。在每一个象素处的梯度的方向将在以下说明。对于图象输入模块201所读取的一个图象中的每一个象素,其梯度的方向都得到计算。
图4详细显示了梯度法的一个实施例。在图4的步骤S41,围绕一个候选眼区的一个正方形得到确定。该候选眼区的中心被取为该正方形的中心,该正方形的边长大约为该对候选眼区A和B的中心之间的距离的2/5,如图10所示。
参见图10,A和B分别表示了两个候选眼区,且C是围绕候选眼区A的正方形。以下借助一个示例性的图象,来说明正方形C的确定。
在该示例性的图象中,一个候选眼区A具有78个象素,且这些象素的每一个的位置可以用坐标(210,152)、(211,152)、(212,153)……分别表示;另一个候选眼区B具有66个象素,且这些象素的每一个的坐标分别是(290,146)、(291,145)、(290、150)……。候选眼区A和B的每一个的中心可以由下式计算x0=(x1+x2+……+xn)/ny0=(y1+y2+……+yn)/n………(1)其中n是属于该候选眼区的象素的数目,且(x1,y1)、(x2,y2)、……(xn,yn)分别是这些象素的坐标。
因而区A的中心的坐标为区A的中心的x坐标XA=(210+211+212+……)/78=218区A的中心的y坐标YA=(152+152+153+……)/78=160因此区A的中心(即正方形C的的中心)是(218,160)。
对于候选眼区B的中心的坐标区B的中心的x坐标XB=(290+291+290+……)/66=297区B的中心的y坐标YB=(146+145+150+……)/66=153因而这两个候选眼区的中心之间的距离是(218-297)*(218-297)+(160-153)*(160-153)=79;]]>正方形C的边长C=79×2/5=32。因此,正方形C得到确定。
在步骤S42,从-90度到90度的方向范围被分成多个区间。为每一个区间准备一个计数器。这些计数器的初始值被置为零。每个区间都被取得足够地小,从而使该区间中的某一个取向可近似地代表该区间中的所有取向。例如,通过把各个区间设定为10度,则从-90度到90度的范围可以被分成18个区间,每一个区间为10度(-90,-80)、(-80,-70),……(80,90),而这些区间的取向可分别用例如-85度、-75度、…85度来代表。该分割方式不是排他的,且该范围可以被分成5、10、20或30个或其他数目的区间。在本实施例中,两个相反的取向被作为同一个取向处理,因而从-90度至90度的范围覆盖了所有的取向。
在步骤S43,该正方形中的每一个象素的梯度的方向都得到计算。一个象素的梯度的方向可以用任何离散梯度算子来计算,诸如用Sobel算子来计算。以下结合图11来说明利用Sobel算子计算一个象素的梯度方向的处理。
参见图11,象素P是在正方形C中的一个象素,P1、P2、P3、P4、P5、P6、P7和P8是象素P的相邻象素。设G1、G2、……G8分别是P1、P2、……P8的灰度,则象素P的梯度可以用Sobel算子计算如下设(dx,dy)表示象素P的梯度,则dx=(G3+2*G5+G8)-(G1+2*G4+G6)dy=(G6+2*G7+G8)-(G1+2*G2+G3)(2)在本例中,象素P、P1、P2、P3、P4、P5、P6、P7、P8的灰度分别是122、136、124、119、130、125、132、124和120,因而dx=(119+2*125+120)-(136+2*130+132)=-39;dy=(132+2*124+120)-(136+2*124+119)=-3;因而象素P的梯度是(-39,-3),象素P的梯度的方向用θ表示并用下式计算
θ=arctg(dy/dx) (3)其中arctg( )表示对括号中的变量取反正切。因而对于本例,象素P出的梯度的方向是θ=arctg(-39/-3)=85.6(度)公式(3)表明θ一定在从-90度至90度的范围中,因而θ必然落在步骤S42所确定的一个区间中,随后象素P的方向θ所落在的那个区间的计数器加1。
在步骤S44,取向计算模块204利用这些区间的计数器的计数值来计算该候选眼区的取向。
以下结合图15的流程来说明步骤S44的处理。
在图5的步骤S441,具有最大的象素计数值的区间得到确定。该最大象素值用m1表示。取向计算模块204计算一个计数阈值t1=m1×t2,其中t2是从0.8至1.0的一个预定的比值且t2的一个优选值是0.95。随后,其计数值大于或等于t1的所有区间都被选取。
在本例中,这些区间的象素的计数值分别是10,15,18,31,40,44,72,71,58,53,51,37,41,22,21,16,23和21。所以m1=72。取t2=0.8,则t1=m1×t2=57.6,因而其计数值大于57.6的区间得到确定。因此,在本例中,区间(-30,-20)、(-20,-10)和(-10,0)分别有72、71和58的象素计数,因而它们被选取。
在本实施例中,一个区间的取向被定义为该区间的中心值。即,区间(-30,-20)的方向是-25度,余此类推。
在步骤S442,判定所选定的区间的数目是否是1。如果步骤S442的结果是“是”,则意味着只有一个区间的计数值大于阈值t1,且该区间的取向被取为该候选眼区的取向(步骤S445)。如果步骤S442的结果是“否”,即选定的区间的数目大于1,则每两个选定区间的取向之间的夹角得到计算。设I1表示两个选定的区间的取向之间的夹角,如果I1>90度,则取I1=180-I1。确定并选取出最大的夹角,并记录形成该夹角的两个区间的取向(步骤S443)。
对于本例,在步骤S441选定的区间的取向分别被计算为是-25、-15和-5,因而最高的取向(在本例中为-5度)和最低的取向(在本例中为-25度)之间的夹角为20度。
在步骤S444,判定该最大夹角是否大于一个阈值t3;如果步骤S444的结果是“是”,则该候选眼区的取向被判定为不确定(步骤S446);如果一个候选眼区的取向被判定为不确定,则该候选眼区的取向将不参与随后步骤的处理。如果两个候选眼区的取向都被判定为不确定,则这两个候选眼区均被判定为是真实的人眼区,且该候选人脸区被判定为是一个真实的人脸区,且处理结束。如果步骤S444的结果是“否”,则最高和最低取向的平均值被取作该候选眼区的取向(步骤S448)。阈值t3的范围从0至90度且其一个优选的取值范围是30-60度。
在本例中,阈值3被选为60度;最高取向是-5度且最低取向是-25度,步骤S443获得的最高和最低取向之间的夹角是20度,因而最高和最低取向之间的夹角小于该阈值(20<60度)。这两个取向的平均值是(-25+(-5))/2=-15度,因而该候选眼区的计算出的取向是-15度。
计算候选眼区的取向的几何法以下结合图6的流程图描述第二种方法,该第二种取向计算方法被称为几何法。
利用几何法计算出的一个候选眼区的取向,是借助该候选眼区的投影长度来确定的。对于一个取向,该候选眼区沿着该取向的一个投影长度可以被计算出来。从所有取向的投影长度选出某些投影长度。而一个候选眼区的取向可以通过分析这些投影长度和它们的相应的取向而得到确定。
图8显示了一个示例性的候选眼区。如图8所示,一个候选眼区的沿着一个给定取向的投影长度被定义为两条平行线之间的距离,诸如距离D1和D2。这两条平行线符合以下条件a)这两条平行线的方向与该给定取向相垂直;b)属于该候选眼区的所有象素都处于这两个平行线之间;且c)这两条平行线之间的距离是满足条件a)和b)的所有平行线对中的该距离的最小者。
图6显示了几何法的处理的一个实施例的流程图。在步骤S51,取向计算模块204计算该候选眼区沿着所有取向的投影长度。对该方法,两个相反的取向被作为同一取向。
以下结合图7的流程图说明步骤S51的用于计算一个候选眼区沿着一个给定取向的投影长度的处理。
在步骤S511,取向计算模块204计算公式(3)(见以下描述)中定义的函数f(x,y)在该候选眼区中的每一个象素处沿着一个给定的取向的值。
参见图8,A是一个候选眼区。如图8所示,象素p1属于A。设p1的坐标是(x,y)且R1是一个给定的取向。对于任何的取向,当一个标准取向被确定时,表示一个取向的一个角度也被确定。在本例中,H1是一个标准取向,RA1是由R1和H1确定的角度,且R1可以用(a,b)表示,其中a和b满足以下条件b/a=tg(RA1)其中tg( )表示对括号中的变量取正切。
且f(x,y)由下式给出f(x,y)=ax+by (3)例如,对于x=214,y=162,a=1,b=0.194,且RA1为11度,则
f(x,y)=f(214,162)=1×214+0.194×162=244.78在步骤S512,计算出f(x,y)在该候选眼区中的象素中的最大和最小值。设该最大值为fmax且该最小值为fmin。
在步骤S513,按照下式计算该候选眼区的投影长度DD=fmax-fmina2+b2+1---(4)]]>在图8所示的例子中,在步骤S512获得的该最大和最小值分别是250和245,a=1,b=0.194,则图8中的投影长度D1为(250-245)/(12+0.1942)1/2+1=5.82参见图6,在计算出了沿着所有取向的投影长度之后,流程进行到步骤S52。
在步骤S52,具有最大投影长度的取向得到确定。在本例中,该最大长度被计算为11。随后,候选眼区取向计算模块204计算一个长度阈值l2=l1×t4,其中t4是从0.7至1.0的范围内的一个预定比值且t4的一个优选值是0.95。随后选出具有大于或等于l2的投影长度的取向。
在本例子中,在步骤S51中获得的所有取向的投影长度分别为7.2、9.5、11.8、14.6、16.9、18.9、19.9、20.5、20.5、20.0、19.8、19.0、17.6、15.8、13.7、11.4、8.7和6.9,它们的相应的取向分别是-85、-75、-65、……、75和85度,t4被设定为0.95,且最大长度被确定为20.5,因而l2=20.5×0.95=19.475,且长度19.9、20.5、20.0和19.8大于长度阈值19.475,且它们的相应的取向分别是-25、-15、-5、5和15度。
随后,在步骤S53,判定各具有大于或等于t4的投影长度的取向的数目是否等于1。如果步骤S53的结果是“是”,流程进行到步骤S58;在步骤S58该取向被取为该候选眼区的取向。如果步骤S53的结果是“否”,表明选出的取向的数目大于1,则流程进行到步骤S54,在那里计算出每两个取向之间的夹角。设I2表示两个选定的取向之间的夹角,如果I2>90度,则取I2=180-I2。候选眼区取向计算模块204选择出最大的夹角并记录形成该最大夹角的两个取向。
在本例中,在步骤S52获得的取向分别是-25、-15、-5、5和15度。取向的数目是5,随后流程进行到步骤S54,在那里这五个取向之间的最大夹角得到确定。在本例中,该最大夹角是40度且其相关的取向分别是-25和15度。
在步骤S55,判定该最大夹角是否大于一个预定的阈值。如果“是”,该候选眼区的取向被确定为是不确定的(步骤S58)。如果步骤S55的结果是“否”,形成该最大夹角的两个取向的平均被取为该候选眼区的取向(步骤S57)。
在一个实施例中,该阈值被选为60度。对于本例,在步骤S54,计算出该最大夹角是40度且相应的取向分别是-25和15度。所以该最大夹角小于该阈值,且这两个取向的平均即(-25+15)/2=-5度被取为该候选眼区的取向。
计算候选眼区的取向的椭圆拟合法在椭圆拟合法中,一个候选眼区的取向,通过用一个椭圆来拟合该候选眼区并取该椭圆的主轴的取向为该候选眼区的取向,而得到确定。
设一个候选眼区的中心的坐标是(x0,y0),令EA=Σi=1i=SumP(xi-x0)2]]>EB=Σi=1i=SumP(yi-y0)2]]>EC=Σi=1i=SumP(xi-x0)*(yi-y0)]]>其中SumP是该候选眼区中的象素的总数;(xi,yi)是这些象素的坐标且i=1,……SumP。
SumP、EA、EB和EC可以被计算如下令EM=EAECECEB]]>因而EM表示了一个矩阵和具有两个本征值。与较大的一个本征值相应的本征本征向量代表了该椭圆的主轴的取向。
参见图14,其中E表示一个候选眼区,F1、F2和F3是各与该候选眼区E拟合的椭圆,RA2表示椭圆F1、F2和F3的主轴的取向,且G表示椭圆F1、F2和F3的中心。此时,RA2被取为该候选眼区E的取向。
应该注意的是,本发明的椭圆拟合法的目的是确定一个候选眼区的取向,因而不需要确定任何具体的椭圆。
以下结合图15的流程图来详细描述利用椭圆拟合法计算一个候选眼区的取向的处理。
如图15所示,对于该候选眼区,在步骤S1510,判定该候选眼区的边界象素的数目是否小于一个阈值t6。
有若干种方法可以确定一个候选眼区的边界象素的数目。
如果利用以上结合图16-22C描述的方法来确定候选眼区,则一个候选眼区的边界象素可以由如步骤S172的处理中描述的把图象的各列分成多个区段的分割点来确定。如以上结合步骤S211所描述的,一个候选眼区的象素列的一个分割点被合并到其相邻区段中具有较接近该分割点的灰度的灰度的一个区段中。所以如果该分割点被合并到属于该候选眼区的区段中,则该分割点是该候选眼区的一个边界点。如果该分割点未被合并到属于该候选眼区的区段中,则被该分割点所分割的谷区中与该分割点相邻的象素被取为该候选眼区的边界象素。以此方式,能够确定一个候选眼区的各列的两个边界点,因而能够确定该候选眼区的所有边界象素。
作为确定一个候选眼区的所有边界象素的另一种方法,对于该候选眼区中的一个象素,其所有相邻象素都得到考查以确定它们是否处于该候选眼区中。如果该象素的所有相邻象素都处于该候选眼区中,则该象素不是一个边界象素。如果这些相邻象素中的至少一个处于该候选眼区之外,则该象素被取为一个边界象素。以此方式,可以确定一个候选眼区的所有边界象素。
如果步骤S1510的结果是“是”,表明该候选眼区中的总象素的数目太少而无法避免象素分布的随机性,因而该候选眼区的取向被判定为不确定(步骤S1550)。阈值t6可以取大于1的任何值且一个优选的范围是3-20。
另一方面,如果步骤S1510的结果是“否”,则处理进行到步骤S1520,在那里以如下方式计算EA、EB、EC、ET、EL1、EL2且ELRatioEA=SumXX-(SumX×SumX)/SumPEB=SumYY-(SumY×SumY)/SumPEC=SumXY-(SumX×SumY)/SumPET=(EA+EB)*(EA+EB)-4*(EA*EB-EC*EC)]]>EL1=(EA+EB+ET)/2EL2=(EA+EB-ET)/2ELRatio=ET/EL1(5)其中SumX=∑xjSumY=∑yjSumXX=∑xj2SumYY=∑yj2SumXY=∑xjyj其中(xj,yj)是候选眼区的第j个边界象素的坐标,且求和是对该候选眼区的所有边界象素进行的。
EL1和EL2是矩阵EM的本征向量,且(1,(EL1-EA)/EC)和(1,(EL2-EA)/EC)是EM的本征向量并且分别是与该候选眼区的轮廓相拟合的椭圆长轴和短轴的取向。
随后,在步骤S1530,判定ELRatio是否小于一个阈值t7。阈值t7的值可以在0至1的范围内且优选地是在0.1至0.8的范围内。
如果步骤S1530的结果是“是”,意味着该长轴和短轴彼此太接近且拟合的椭圆太接近于一个圆而不能提供一个取向,因而处理进行到步骤S1550;在步骤S1550,确定该候选眼区的取向是不确定的。
如果步骤S1530的结果是”否”,则处理进行到步骤S1540,在那里该候选眼区的取向被计算如下1)如果EC=0且EA>EB,则该候选眼区的取向是0度;2)如果EC=0且EA<EB,则该候选眼区的取向是90度;1)如果EC≠0,则该候选眼区的取向=arctg((EL1-EA)/EC),其中arctg( )表示对括号中的变量取反正切值。
图14显示了利用椭圆拟合法计算一个候选眼区的取向的一个例子。
在图14所示的例子中,一个候选眼区具有62个边界象素,这些边界象素的坐标分别是(37,602)、(37,603)、(37,604)、(38,603)……。阈值t6选择为3,且阈值t7被选择为0.76。所以SumP=62>t6。因此,根据公式(5),EA、EB、EC、ET、EL1、EL2和ELRatio分别被计算出为1853、261、601、1995、2054、60和0.97。所以ELRati0=0.97>t7,且由于EC=601≠0,所以该候选眼区的取向是arctg((EL1-EA)/EC)=arctg(0.334)=18度由此,计算出了一对候选眼区中的每一个的取向。
回到图3A,在步骤S352,连接线取向计算模块205计算连接候选人脸区的这两个候选眼区的中心的线段的取向。两个候选眼区的中心可以用公式(1)计算出。设两个候选眼区的中心分别是(cx1,cy1)和(cx2,cy2),则连接这两个候选眼区的中心的线段的取向θL可以用下式计算θL=arctg((cy2-cy1)/(cx2-cx1)) (6)其中arctg( )表示对括号中的变量取反正切值。
在本例中,cx1=306,cy1=198,cx2=364,cy2=182,因而θL=arctg((182-198)/(364-306))=-15度参见图3A,在步骤S36,取向评价模块206对这两个候选眼区的每一个的取向与连接这两个候选眼区的中心的线段的取向之间的关系进行评价,并根据评价的结果判定这两个候选眼区是否是一对真实的眼睛区和该候选人脸区是否是一个真实的人脸区。以下结合图3B描述步骤S36的处理的一个实施例的细节。
在图3B中,在步骤S3305,取向评价模块206确定左边的候选眼区的取向是否是不确定的。
如果步骤S3305的结果是“是”,意味着左边的候选眼区没有确定的取向,则处理进行到步骤S3320。
如果步骤S3305的结果是“否”,意味着该候选眼区具有一个确定的取向,则处理进行到步骤S3310;在步骤S3310,该左边的候选眼区的取向与连接这两个候选眼区的中心的线段的取向之间的夹角(角θ1)被计算出来。
随后,处理进行到步骤S3315,在那里取向评价模块206判定θ1的绝对值是否大于或等于一个阈值t5;在一个实施例中,t5被选择为50度。
如果步骤S3315的结果是“是”,取向评价模块206确定这个候选眼区不是真实的眼睛区且该候选人脸区不是一个真实的人脸区(步骤S3340)。如果步骤S3315的结果是“否”,则处理进行到步骤S3320。
在步骤S3320,取向评价模块206判定右边的候选眼区的取向是否是不确定的。
如果步骤S3320的结果是“是”,则处理进行到步骤S3335,在那里取向评价模块206确定该对候选眼区是一对真实的人眼区且该候选人脸区是该图象中的一个人脸区。
如果步骤S3320的结果是“否”,则处理进行到步骤S3325,在那里取向评价模块206计算右边的候选眼区的取向与连接这两个候选眼区的中心的线段之间的夹角(角θ2)。
在此之后,处理进行到步骤S3330,在那里取向评价模块206判定夹角θ2的绝对值是否大于或等于t5。
如果步骤S3330的结果是“是”,取向评价模块206确定这个候选眼区不是一个真实的眼睛区且该候选人脸区不是一个真实的人脸区(步骤S3340)。
如果步骤S3330的结果是“否”,处理进行到步骤S3335,在那里取向评价模块206确定该对候选人眼区是一对真实的人眼区且该候选人脸区是一个真实的人脸区。
在本例中,E1=-15,E2=-25,L=-15度,而θ1=0,且θ2=10度在步骤S36,取向评价模块206确定两个候选眼区中的每一个都具有一个确定的取向,且θ1和θ2都小于阈值t5。因此,该候选人脸区被确定为是一个真实的人脸区。
例1图12显示了一个图象12A,它是用于说明本发明的原理。以下详细描述利用根据本发明的一个实施例的梯度方法探测图象12A中的一个人脸区的处理。
在步骤S31,图象输入模块201读取图象12A中的象素的灰度。
在步骤S32,候选人脸区探测模块202探测两个候选人眼区中的象素的位置(301,199)、(302,199)、(300,198)、(302,200)、……在步骤S33,候选人脸区确定模块203确定与这两个候选人眼区相联系的一个候选人脸区。
随后,在步骤S34,候选眼区取向计算模块204利用梯度法计算这两个候选眼区的每一个的取向。
随后,在步骤S35,连接线取向计算模块205计算连接这两个候选眼区的中心的线段的取向,且该连接线段的取向被计算为-15度。
在步骤S36,取向评价模块206确定这些候选眼区中的每一个都具有一个确定的取向,且这两个候选眼区的取向分别被计算出为-20度和-10度;取向评价模块206还计算这两个候选人眼区的每一个的取向与该连接线的取向之间的夹角。对于这两个候选眼区中的每一个,该夹角分别被计算出为5度和5度。
随后,取向评价模块206判定该夹角中的每一个是否小于一个第一阈值;在一个实施例中该阈值被选为50度。如果这两个夹角的每一个都小于该第一阈值,则该对候选人眼区被确定为是一对真实的人眼区且该候选人脸区被确定为是一个人脸区(步骤S3335);否则,该候选人脸区被确定为不是一个人脸区(步骤S3340)且流程进行到步骤S37。在此例中,这两个夹角分别是5度和5度,即都小于50度的第一阈值,因而流程进行到步骤S3335;在步骤S3335,该对候选人眼区被确定为不是真实的一对人眼区,且候选人脸区13A被确定为是一个人脸区,随后流程在步骤S37结束。
例2以下详细描述根据本发明的一个实施例的利用几何法判定图象12A中的一个图象块13A是否是一个人脸区的处理。
在图3中的步骤S31,图象输入模块201读取图象12A中的象素的灰度。
在步骤S32,候选人脸区探测模块202探测两个候选人眼区中的象素的位置(301,199)、(302,199)、(300,198)、(302,200)、……在步骤S33,候选人脸区确定模块203利用几何法确定与这两个候选人眼区相联系的一个候选人脸区。
随后,在步骤S34,候选眼区取向计算模块204利用梯度法计算这两个候选眼区的每一个的取向。
随后,在步骤S35,连接线取向计算模块205计算连接这两个候选眼区的中心的线段的取向,且该连接线段的取向被计算为-15度。
在步骤S36,取向评价模块206确定这些候选眼区中的每一个都具有一个确定的取向,且这两个候选眼区的取向分别被计算出为-5度和-20度。
在步骤S36,取向评价模块206还计算这两个候选人眼区的每一个的取向与该连接线的取向之间的夹角。对于这两个候选眼区中的每一个,该夹角分别被计算出为10度和5度。
随后,取向评价模块206判定该夹角中的每一个是否小于一个阈值t5;在一个实施例中该阈值t5被选为40度。如果这两个夹角的每一个都小于该阈值,则该对候选人眼区被确定为是一对真实的人眼区,且该候选人脸区被确定为是一个人脸区(步骤S3335);否则,如果这两个夹角中的任何一个大于或等于t5,则该对候选人眼区被确定为不是一对真实的人眼区,且该候选人脸区被确定为不是一个人脸区(步骤S3340)。在此例中,这两个夹角分别是10度和5度,即都小于该阈值t5=40度,因此候选人脸区13A被确定为是一个人脸区(步骤S3335),随后流程在步骤S37结束。
(替换实施例)由于本发明的设备的一部分处理可以通过程序而实施,本发明还包括了在一个载体中的计算机程序。该程序可以是适合于在这些处理的实施中使用的源代码或目标代码。该载体可以是能够携带该程序的任何装置或实体。
该载体可以包括一个存储介质。如上所述,由于该设备能够使用诸如个人计算机的通用设备,因而本发明还可通过向一个系统或设备提供一种存储介质-该存储介质记录了能够实施上述实施例的功能的软件程序的程序码-并由该系统或设备的一个计算机读出并执行存储在该存储介质中的该程序码,而得到实现。在此情况下,从该存储介质读出的该程序码本身实施了上述实施例的功能,且存储该程序码的该存储介质构成了本发明。作为用于提供该程序码的存储介质,可以采用例如软盘、硬盘、光盘、磁-光盘、CD-ROM、磁带、非易失存储卡、ROM、DVD等等。
进一步地,该载体可以是能够经诸如一个网络(象因特网、LAN、WAN等)、电缆、光缆、无线电、或其他通信装置的通信介质进行传送的电信号;通过该电信号,一个计算机可以从远离该计算机的一个远程地点获得能够实施上述实施例的功能的软件程序的程序码并读取和执行该软件程序。在此情况下,经该通信介质从该远程地点获得的程序码实施了上述实施例的功能,且该电信号-通过它一个计算机能够获得该程序码-构成了本发明。
本发明,还可通过向一个计算机提供记录有该程序码的存储介质并执行由在该计算机上运行的一个操作系统所执行的某些或全部实际处理,而得到实现。进一步地,上述实施例的功能也可由设置在一个功能扩展板或功能扩展单元或一个集成电路上的一个CPU或类似装置执行的某些或全部实际的处理操作,而得到实施;在从该存储介质读出的该程序码被写入到该功能扩展板、功能扩展单元或集成电路的一个存储器中之后,该功能扩展板或功能扩展单元或集成电路被插入或连接到一个计算机。当本发明被应用于该存储介质时,该存储介质存储了该存储介质存储了与在上述实施例中描述的流程图的处理相应的程序码。
由于在不脱离本发明的精神和范围的前提下可以作出本发明的许多非常不同的实施例,因而应该理解的是本发明不限于其具体的实施例,而是由所附的权利要求书限定。
权利要求
1.一种人脸探测方法,包括以下步骤探测一个图象中的两个候选眼区;计算这两个候选眼区中的每一个的取向;计算连接这两个候选眼区的中心的线段的取向;评价这两个候选眼区的每一个的取向与所述线段的取向之间的关系;以及根据所述评价步骤的结果判定这两个候选眼区是否是一对真实的人眼区。
2.根据权利要求1的方法,其中计算所述两个候选眼区的每一个的取向的步骤包括确定包含该候选眼区之一的一个区;计算该区中的每一个象素的梯度;对该区中的象素的梯度进行一种统计处理;根据该统计处理的结果确定所述取向。
3.根据权利要求2的方法,其中进行统计处理的步骤包括把取向分布的范围分成多个区间;为每一个区间分配一个取向;对于这些区间中的每一个,计算所述区中并具有其方向处于该区间之内的梯度的象素的数目;确定这些区间中具有最大的所述象素数目的区间;根据该最大数目而计算出一个不大于所述最大象素数目的数目界限;选择其所述计算的象素数目大于或等于所述数目界限的区间;根据所述选定的区间的取向之差确定所述候选眼区的取向。
4.根据权利要求3的方法,其中根据选定的区间的取向之差确定所述候选眼区的取向的步骤包括确定所述选定的区间的数目是否大于1;当所述选定的区间的数目不大于1时,把该唯一的候选眼区的取向取作该候选眼区的取向;当该选定的区间的数目大于1时,确定所述选定的区间中的两个区间,这两个区间的取向之差在所有所述选定的区间中为最大;把该最大的取向差与一个预定值相比较;当该最大差大于或等于该预定值时,把该候选眼区标为无方向的;以及当该最大差不大于该预定值时,把具有该最大取向差的两个区间的取向的平均值作为该候选眼区的取向。
5.根据权利要求4的方法,包括当所述两个候选眼区都被确定为无方向时,确定所述两个候选眼区是一对真实的人眼区。
6.根据权利要求4的方法,进一步包括当所述候选眼区之一被确定为有方向时,计算这一个候选眼区的取向与连接所述两个候选眼区的中心的线段的取向之间的夹角;以及把该夹角与一个预定的阈值相比较。
7.根据权利要求1的方法,其中各个候选眼区的中心是各个候选眼区中的象素的质心。
8.根据权利要求1的方法,其中计算这两个候选眼区的每一个的取向的步骤包括对于这两个候选眼区的每一个,计算多个投影长度;确定所述多个投影长度中的最大投影长度;根据该最大投影长度计算一个不大于该最大投影长度的长度界限;从所述多个投影长度中选出大于或等于所述长度界限的所有投影长度;根据所述选定的投影长度确定所述候选眼区的所述取向。
9.根据权利要求8的方法,其中根据所述选定的投影长度来确定所述候选眼区的取向的步骤包括判定所述选定投影长度的数目是否大于1;当所述选定的投影长度的数目不大于1时,把所选定的唯一的一个投影长度的取向作为所述候选眼区的取向;当所述选定的投影长度的数目大于1时,在所述选定的投影长度中确定具有最大的取向差的两个投影长度;把该最大取向差与一个预定的值相比较;当该最大取向差大于或等于于该预定值时,把该候选眼区标为无方向的;以及当该最大取向差不大于该预定值时,把具有该最大差的两个确定的投影长度的取向的平均作为所述候选眼区的取向。
10.根据权利要求9进一步包括当所述两个候选眼区都被判定为是无方向时,确定所述两个候选眼区是一个真实的人脸区。
11.根据权利要求9的方法,进一步包括当所述候选眼区中的一个被确定为有方向时,计算这一个候选眼区的取向与连接所述两个候选眼区的中心的线段的取向之间的夹角;以及把该夹角与一个预定的阈值相比较。
12.根据权利要求1的方法,其中计算所述两个候选眼区的每一个的取向的步骤包括对于所述两个候选眼区中的每一个,确定一个椭圆,该椭圆与候选眼区的边界象素相拟合;计算该椭圆的长轴的取向;把该椭圆的长轴的取向作为该候选眼区的取向。
13.根据权利要求12的方法,进一步包括把所述候选眼区的边界象素的数目与边界象素的一个预定阈值相比较;以及当该边界象素的数目小于所述边界象素阈值时,确定所述候选眼区的取向是不确定的。
14.根据权利要求12的方法,进一步包括计算一个比值,该比值反映了所述椭圆的长轴的长度与短轴的长度之间的关系;把该比值与一个预定的值相比较;以及当所述比值小于所述预定值时,确定所述候选眼区的取向是不确定的。
15.根据前述权利要求中的任何一项的方法,进一步包括根据在所述候选眼区探测步骤中探测出的所述两个候选眼区,确定一个候选人脸区;以及当所述两个候选眼区被确定为是一对真正的人眼区时,确定所述候选人脸区是一个真正的人脸区。
16.一种人脸探测设备,包括候选眼区探测装置,用于探测一个图象中的两个候选眼区;候选眼区取向计算装置,用于计算这两个候选眼区中的每一个的取向;连接线段取向计算装置,用于计算连接这两个候选眼区的中心的线段的取向;评价装置,用于评价这两个候选眼区的每一个的取向与所述线段的取向之间的关系;以及人眼区确定装置,用于根据所述评价步骤的结果判定所述两个候选眼区是否是一对真实的人眼区。
17.根据权利要求16的设备,其中所述候选眼区取向计算装置包括用于确定包含该候选眼区之一的一个区的装置;用于计算该区中的每一个象素的梯度的装置;用于对该区中的象素的梯度进行一种统计处理的装置;用于根据该统计处理的结果确定所述取向的装置。
18.根据权利要求17的设备,其中用于进行一种统计处理的装置包括用于把取向分布的范围分成多个区间的装置;用于为每一个区间分配一个取向的装置;用于对于这些区间中的每一个,计算所述区中并具有其方向处于该区间之内的梯度的象素的数目的装置;用于确定这些区间中具有最大的所述象素数目的区间的装置;用于根据该最大数目而计算出一个不大于所述最大象素数目的数目界限的装置;用于选择其所述计算的象素数目大于或等于所述数目界限的区间的装置;用于根据所述选定的区间的取向之差确定所述候选眼区的取向的装置。
19.根据权利要求18的设备,进一步包括用于确定所述选定的区间的数目是否大于的装置1;用于当所述选定的区间的数目不大于1时把选定唯一的候选眼区的取向取作该候选眼区的取向的装置;用于当该选定的区间的数目大于1时确定所述选定的区间中的两个区间的装置,其中这两个区间的取向之差在所有所述选定的区间中的任意两个区间之间的取向差中的最大者;用于把该最大的取向差与一个预定值相比较的装置;用于当该最大差大于或等于该预定值时确定该候选眼区标为无方向的候选眼区的装置;以及用于当该最大差不大于该预定值时把具有该最大取向差的两个区间的取向的平均值作为该候选眼区的取向的装置。
20.根据权利要求19的设备,进一步包括用于当所述两个候选眼区都被确定为无方向时确定所述两个候选人眼区是一对真实的人眼区的装置。
21.根据权利要求19的设备,进一步包括用于当所述候选眼区之一被确定为有方向时计算这一个候选眼区的取向与所述线段的取向之间的夹角的装置;以及用于把该夹角与一个预定的阈值相比较的装置。
22.根据权利要求16的设备,其中各个候选眼区的中心是各个候选眼区中的象素的质心。
23.根据权利要求16的设备,其中用于计算这两个候选眼区的每一个的取向的装置包括用于为这两个候选眼区的每一个计算多个投影长度的装置;用于确定所述多个投影长度中的最大投影长度的装置;用于根据该最大投影长度计算一个不大于该最大投影长度的长度界限的装置;用于从所述多个投影长度中选出大于或等于所述长度界限的所有投影长度的装置;以及用于根据所述选定的投影长度确定所述候选眼区的所述取向的装置。
24.根据权利要求23的设备,其中根据所述选定的投影长度来确定所述候选眼区的取向的装置包括用于判定所述选定投影长度的数目是否大于1的装置;用于当所述选定的投影长度的数目不大于1时把所选定的唯一的一个投影长度的取向作为所述候选眼区的取向的装置;用于当所述选定的投影长度的数目大于1时在所述选定的投影长度中确定具有最大的取向差的两个投影长度的装置;用于把该最大取向差与一个预定的值相比较的装置;用于当该最大取向差大于或等于于该预定值时把该候选眼区标为无方向的候选眼区的装置;以及用于当该最大取向差不大于该预定值时把具有该最大差的两个确定的投影长度的取向的平均作为所述候选眼区的取向的装置。
25.根据权利要求24的设备,进一步包括用于当所述两个候选眼区都被判定为是无方向的候选眼区时确定所述两个候选眼区是一对真实的人眼区的装置。
26.根据权利要求24的设备,进一步包括用于当所述候选眼区中的一个被确定为有方向的候选眼区时计算这一个候选眼区的取向与连接所述两个候选眼区的中心的线段的取向之间的夹角的装置;以及用于把该夹角与一个预定的阈值相比较的装置。
27.根据权利要求16的设备,其中用于计算所述两个候选眼区的每一个的取向的装置包括用于对于所述两个候选眼区中的每一个确定一个椭圆的装置,该椭圆与候选眼区的所有边界象素相拟合;用于计算该椭圆的长轴的取向的装置;用于把该椭圆的长轴的取向作为该候选眼区的取向的装置。
28.根据权利要求27的设备,进一步包括用于把所述候选眼区的边界象素的数目与边界象素的一个预定阈值相比较的装置;以及用于当该边界象素的数目小于所述边界象素阈值时确定所述候选眼区的取向是不确定的候选眼区的装置。
29.根据权利要求27的设备,进一步包括用于计算一个比值的装置,该比值反映了所述椭圆的长轴的长度与短轴的长度之间的关系;用于把该比值与一个预定的值相比较的装置;以及用于当所述比值小于所述预定值时确定所述候选眼区的取向是不确定的候选眼区的装置。
30.根据权利要求16-29中的任何一项的设备,进一步包括候选人脸区确定装置,用于根据所述候选眼区探测装置所探测到的所述两个候选眼区,确定一个候选人脸区;以及人脸区确定装置,用于当所述两个候选眼区被确定为是一对真实的人眼区时,确定所述候选人脸区是一个真实的人脸区。
31.一种记录介质,它存储有用于使一个可编程处理设备执行如权利要求1-15中的任何一项所限定的方法的程序代码。
32.一种计算机可执行程序,它使得一个可编程处理设备执行如权利要求1-15中的任何一项所限定的方法。
33.一种信号,该信号携带有使一个可编程处理设备执行如权利要求1-15中的任何一项所限定的方法的指令。
全文摘要
本发明公布了一种图象处理设备和方法,用于在一个图象中探测人脸。在本发明的该方法和设备的解决方案中,首先探测出该图象中的一对候选眼区,随后计算出该对候选眼区的每一个的取向,并计算出连接该对候选眼区的中心的线段的取向;计算出该对候选眼区的每一个的取向与该线段的取向之间的关系进行评价;根据评价的结果判定该对候选眼区是否是实际的人眼区。在本发明的方案中,候选眼区的取向的计算包括梯度法、几何法和椭圆拟合法。
文档编号G06T5/20GK1471053SQ02127050
公开日2004年1月28日 申请日期2002年7月26日 优先权日2002年7月26日
发明者陈新武, 尹志远, 纪新 申请人:佳能株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1