具体实施方式
在下面,将通过描述优选实施例并且通过参考附图来描述本发明。然而,本领域内的技术人员将认识到在所附独立权利要求中定义的本发明的范围内的其他应用和修改。
本发明提供了一种新颖的方法,该方法通过减少候选窗口的数量来显著地提高人脸检测速度,候选窗口需要通过更复杂和/或更耗时的人脸检测过程来处理和检查。而且,本发明提供了一种比现有技术的人脸检测方法更独立于照明条件的更鲁棒的人脸检测方法。
已知多种人脸检测技术,并且继续对这些技术调整和改进。提供对于这样的公知技术的教育性介绍不在本说明书的范围之内。因此,对有兴趣学习更多内容的读者可以参考下面的示例性参考文献:
[1]P.Viola and M.Jones.″Robust real time object detection″.IEEEICCV Workshop on Statistical and Computational Theories of Vision,Vancouver,Canada,JuI.13,2001.
[2]A.Pentland,B.Moghaddam,and T.Starner.″View-based andModular Eigenspaces of Face Recognition″.Proc.of IEEE Computer Soc.Conf.on Computer Vision and Pattern Recognition,pp.84-91,June 1994.Seattle,Wash.
[3]M.Bichsel and A.P.Pentland.″Human face recognition and theface image set′s topology″.CVGIP:Image Understanding,59:254-261,1994.
[4]R.E.Schapire.″The boosting approach to machine learning:Anoverview″.MSRI Workshop on Nonlinear Estimation and Classification,2002.
[5]T.Serre,et al.″Feature selection for face detection″.AI Memo1697,Massachusetts Institute of Technology,2000.
[6]V.N.Vapnik.Statistical Learning Theory.John Wiley and Sons,Inc.,New York,1998.
[7]Y.Freund and R.E.Schapire.″A decision-theoreticgeneralization of on-line learning and an application to boosting″.Journalof Computer and System Sciences,55(1):119-139,August 1997.SkinColor Filtering to Speedup Face Detection
在其中通过固定摄像机(例如,视频会议、录影工作室、Web摄像机等)捕获视频(图像或帧的序列)的设置中,在一系列帧上收集的信息可以用于改善人脸检测处理。通常,包含运动的图像的区域或具有与皮肤颜色相类似颜色的区域是用于搜索人脸的好的候选区域。然而,因为脸部的颜色可能因在拍摄视频帧的时间和地点的照明不同而在拍摄的视频帧中是不同的,所以本发明将知晓“皮肤颜色”的要求放松到知晓运动中的区域的颜色的要求。
图1描述了由本发明实现的基本技术的流程图。块101是图1中所示的第一步骤,其中,把待在其中检测人脸的来自视频流的一系列图像的实际输入图像提供给系统。在此,输入图像被提供给运动颜色过滤器102。输入图像例如包括原始数字图像数据。运动颜色过滤器102被构造为处理输入图像,并且基于输入图像,输出一组对应的经处理的图像。该组处理的图像至少包括含有强度信息的图像和含有可能皮肤颜色信息的图像。根据本发明的另一个实施例,该组处理的图像也包括含有运动信息的图像。处理的图像然后被提供到人脸检测器104或由人脸检测器104访问。注意,在布置100中,运动颜色过滤器102被构造为预过滤器。在随后的部分中更详细地描述运动颜色过滤器102。
根据本发明的人脸检测器104可以利用不同类型的人脸检测方法,例如人脸特征检测器、基于特征向量(特征脸)的检测器等。本发明使用的人脸检测器至少使用灰度图像中的特征(强度信息)和可能皮肤颜色信息来把候选窗口(或区域)分类为具有人脸数据或不具有人脸数据。可能皮肤颜色信息是定义了很可能包含皮肤颜色的帧的区域的信息,独立于捕获视频流之处的照明条件。根据本发明的另一个实施例,除了强度和可能皮肤颜色信息之外,还使用运动信息来分类候选窗口,运动信息是定义包含运动的帧的区域的信息。
在这个示例中的人脸检测器104被构造成输出所检测到的人脸105。检测到的人脸105可以例如包括可能包含人脸数据的输入图像101的特定部分。在随后的部分中更详细地描述人脸检测器104。
运动和颜色过滤器102也可以是人脸检测逻辑的集成部分,而不是单独的步骤。
为了检查人脸是否位于输入图像内,需要在许多不同的可能位置和/或以许多不同的规模检查很大数量的候选窗口。因此,用于加速人脸检测的更有效的方法之一是快速确定候选窗口是否需要被进一步处理或它是否可以被忽视。这是通过分类器在人脸检测器104中进行的,分类器使得快速地忽略图像的背景区域,同时在可能的类人脸的区域上花费更多的计算。与Viola和Jones[1]描述的仅在其分类器中使用Haar特征的方法不同,本发明描述了多模态分类器,该多模态分类器使用来自几个不同得出的输入图像的几种不同特征来更迅速地忽略图像的不感兴趣的区域。运动颜色过滤器102的主要目的是给人脸检测器104提供关于输入图像的哪些部分包含的颜色可能是皮肤颜色的信息。
例如,根据本发明的特定方面,输入图像的像素颜色信息包括红、绿和蓝颜色信息(例如,RGB颜色空间)。然而,这本发明的范围不限于此。本领域内的技术人员可以容易地对于具有其他颜色空间中的像素颜色信息,例如包括亮度和色度信息(例如,YCrCb颜色空间)的信息的输入图像执行相同的步骤。
图3示出示例性输入图像101,示出在不同颜色的均匀的背景前面的具有皮肤颜色的人脸的场景。
参考图2,图2是描述根据本发明的一个实施例的方法200的流程图,可以在运动颜色过滤器102中实现该方法。在步骤S1中,运动颜色过滤器102接收数字输入图像101(视频流的帧),例如在图3中所示的示例性图像。接收到的输入图像的副本然后在S2被转换为灰度图像,该灰度图像是其中每一个像素的值仅携带强度信息的图像。这种图像仅由从最弱强度的黑色至最强强度的白色变化的灰色阴影构成。灰度图像暂时存储在内部存储器中以用于以后的处理。灰度数字图像然后用于在S3检测视频流中的运动。该检测处理可以是基于区域的帧差或以合理的灵敏度检测运动对象的任何方法。不同的传统方法可以用于检测视频信号中的运动,并且用于通过固定摄像机的运动检测的简单算法的一个示例是把当前图像(n)与前一图像(n-1)进行比较,并且找到当前图像(n)中的与前一图像(n-1)中对应像素(或像素块)不同的像素(或像素块)。因此,在本发明的步骤S3中,基于在内部存储器中存储的当前灰度图像和前一灰度图像来产生运动图像。该运动图像是一比特黑白数字图像,在未检测到运动的区域中具有黑色像素,并且在检测到运动的区域中具有白像素(或反过来也可)。
在步骤S3中,接收的输入图像(在此为RGB图像)的副本然后被转换为RG色度空间中的规范化图像。在RG色度空间中,通过颜色中的红色、绿色和蓝色的比例而不是通过每一个的强度(如在RGB颜色空间中那样)来表示颜色。通过规范化RGB像素三元组(triplets)的大小(例如,通过计算色度),可以去除由于照明几何性导致的图像变化。
接下来,在步骤S4中,通过下述方式从输入图像产生规范化图像:通过原始RGB向量的元素值除以元素值的和来计算每一个像素的强度不敏感颜色度量(Rn和Gn)。因为这些度量的和相加为1,所以我们可以通过两个元素的向量,标准化的[Rn,Gn]值,来唯一地指定任何RGB三元组的颜色。以量化的形式,[Rn,Gn]因此通过二维整型向量来定义像素颜色。可以根据下面的公式来计算规范化图像204中的每一个像素的Rn和Gn值:
其中,R、B和G分别是在原始RGB向量中的红色、蓝色和绿色的元素值,并且255是比例因子。如上所述,蓝色贡献是冗余的,因为
Bn=1-Rn-Gn
例如,在良好照明的人脸(或人脸的一部分)中的像素可以被表示为线性RGB向量[200,120,60],表示通常皮肤颜色。虽然在昏暗照明的人脸(或所述第一人脸的另一部分)中的像素可以被表示为线性RGB向量[20,12,6],这是由阴影或不良照明引起的。然而,即使该两个像素具有不同的RGB向量并且在字面上表示两种不同的颜色,但是该两个像素表示同一皮肤颜色(或红绿蓝组合的相同比率)。这被反映为规范化RnGn值,在此该值是[134,81],它对于两个像素是相同的。
现在,至少基于运动图像和规范化图像,计算三个直方图:背景颜色直方图、运动颜色直方图和运动颜色概率直方图,后者是背景颜色直方图和运动颜色直方图的比率。
直方图是按照不同事件类别的出现频率的分布的标准统计描述;对于颜色而言,该事件类别是颜色空间中的区域。
首先,在步骤S5中,对规范化图像计算颜色直方图,以下称其为背景颜色直方图,因为假定图像的大部分包含“背景”。因为规范化图像处于二维颜色空间(RG色度),所以背景颜色直方图是二维直方图,并且提供规范化图像中的数据分布的集中汇总。背景颜色直方图现在指示每种颜色在图像中出现得多频繁,并且将用于规范化目的。
H(Rn,Gn)=规范化图像中具有颜色Rn、Gn的像素的数量。
图4中示出从图3中的示例性输入图像中的数据计算的背景颜色直方图。如能够从图5看出的,背景颜色最频繁地出现,并且具有最大峰401。峰402表示人脸/皮肤颜色。
接着,在步骤S6中,根据一个示例性实施例,创建运动颜色图像。运动颜色图像是运动图像和规范化图像的组合,运动图像和规范化图像是同一输入图像的两种不同表达。运动颜色图像仅包括在运动图像中被检测为处于正在运动中的来自规范化图像的像素。接下来,在步骤S7中,对于运动颜色图像计算运动颜色直方图。因为所有的背景(墙壁、家具、天花板、地板等)是固定的,并且人几乎不能够保持完全静止(即使当主动尝试时),所以假定在图像中检测到的运动反映人的存在是安全的。因此,通过仅对于表示运动的规范化图像中的像素(基于如上所述的检测方法检测为运动的像素)计算的颜色直方图来创建运动颜色直方图。
根据本发明的另一个示例性实施例,在步骤S6中没有创建运动颜色图像。相反,步骤S6仅基于来自运动图像的信息来定义当计算运动颜色直方图时将在步骤S7中使用的规范化图像中的一组像素。运动图像203包含定义输入图像中的哪些像素被检测为处于正在运动中以及这些像素的位置的信息。只有规范化图像中的相同像素位置处的像素然后用于创建运动颜色直方图;
Hmotion(Rn,Gn)=仅在规范化图像的被检测为处于正在运动中的部分中的具有规范化颜色Rn、Gn的像素的数量。
在图6中示出基于图3中的示例性输入图像(和从其得出的运动图像和规范化图像)计算的运动颜色直方图。如上所述,这个直方图仅包括来自包含运动的区域的像素。改变照明条件、拉窗帘等可以导致图像的真实静态部分被检测为正在运动。而且,在衣服覆盖的运动的身体部分会对运动颜色直方图中的非皮肤颜色有贡献。因此,如能够从图5看出的,出现分别与皮肤颜色502和背景颜色501对应的两个峰。与背景颜色直方图相反,背景颜色和皮肤颜色几乎同样频繁地出现,并且具有很类似的峰。
背景颜色直方图现在给出在整个场景中的颜色分布,而运动颜色直方图给出场景的检测到运动的部分的颜色分布。比率直方图Hratio描述包含运动的区域的运动直方图Hmotion和整个规范化图像的背景颜色直方图Hbg之间的关系。因此,接下来,通过将运动颜色直方图除以背景颜色直方图而在步骤S8中计算比率直方图。因为背景颜色直方图对于静态背景颜色(它们占据了图像的大部分)具有高值,并且对于假定的皮肤颜色(运动)具有低值,所以比率直方图将对于背景颜色给出低值并且对于运动中的颜色给出高值。可以使用下面的公式来计算比率直方图:
在图6中示出基于图3中的示例性输入图像计算的比率直方图(或从中得出的背景颜色直方图和运动颜色直方图)。如能够从图6看到的,峰602(表示假定的皮肤颜色)具有比输入图像中的其余颜色601大得多的值。
在步骤S9中,通过反投影来创建运动颜色概率图像。把运动颜色概率图像中的所有像素值设置为通过使用来自原始规范化图像的值对比率直方图做索引而获得的值,由此来创建运动颜色概率图像。换句话说,在步骤S9中,规范化输入图像中的每一个像素的色度值被描画到比率直方图上,并且,对应的频率值被分配给规范化输入图像中的同一像素。这个处理基于运动检测在运动颜色概率图像中假定皮肤颜色出现之处产生亮像素。换句话说,运动颜色概率图像包含关于该图像的哪些部分被假定具有皮肤颜色的信息。
根据本发明的一个实施例,人脸检测器104从运动颜色过滤器102接收输入数据。如从图2可看出的,第一输入Input1是灰度数字图像202,为分类器提供图像强度信息使得基于几何特征来确定图像的区域是否可能包含人脸;第二输入Input2是运动颜色概率图像,为分类器提供信息使得基于运动颜色概率图像中的特征来确定同一区域是否可能包含人脸。运动颜色概率图像不包含颜色,而是包含每一个像素的强度度量,该强度度量定义原始输入图像101中像素是皮肤颜色的概率。分类器在当前检查的区域上汇总,并且如果结果大于预设阈值,则假定该区域包含人脸候选。如果结果小于预定阈值,则假定该区域不包含人脸,并且不进一步检查该区域。使用基于灰度图像的传统人脸识别技术来进一步对于假定包含人脸候选的所有区域检查人脸。
根据本发明的另一个实施例,人脸检测器104从运动颜色过滤器102接收第三输入Input3。第三输入Input3是一比特运动图像202,为分类器提供信息以使得基于图像中的特征来确定同一区域是否可能包含人脸候选。该运动图像包含检测到运动之处的亮点,并且如果所检查的区域包含一定数量的亮像素,则该区域有可能包含人脸候选。分类器通过在所检查的区域上汇总来测试该区域,并且如果结果大于预设阈值,则可能在所检查的区域中存在人脸候选。如果结果小于预设阈值,则分类器将检查的区域定义为不可能包括人脸。
根据本发明的一个实施例,当人脸检测器104在一个输入图像中检测到人脸时,人脸检测器104将人脸的位置返回给运动颜色过滤器102,例如以当前测试区域的大小和定义测试区域位置的像素坐标的形式来返回。肯定的人脸检测的出现将提供关于图像中的哪些像素实际上包括皮肤颜色的有价值的信息。因此,当检测人脸时,步骤S6和S7中计算运动颜色直方图的步骤被修改为:仅计算规范化图像中与表示检测到的人脸的区域对应的那些像素的运动颜色直方图。
还通过包括用于执行上述方法的装置的系统来描述本发明。
本发明使得能够利用颜色信息的力量,使得可以基于对象的颜色而无需使用关于所关注对象的特定颜色的先验知识来区别对象。不用把皮肤颜色预先定义为单独的特征,而是从场景的运动分析找到所关注的颜色。利用运动检测手段的变种,相对于静止对象的颜色统计的运动对象的颜色统计被用于创建颜色敏感特征,这有助于将运动对象与静止对象区分。这种运动对象颜色特征随后被用作给对象检测系统的输入,其中,运动的知识是强线索。
在明确使用皮肤颜色做人脸检测的现有系统中,登记颜色对于所使用照明的依赖性使得难以实现鲁棒的检测器。