专利名称:用于在数字图像中检测目标的方法、设备及计算机程序产品的制作方法
技术领域:
本公开一般涉及数字图像处理,并且更特别涉及用于在数字图像中检测目标的方法、设备及计算机程序产品。
背景技术:
在数字图像处理的许多应用中,广泛使用目标检测。目标的例子可包括但不局限于,人的脸部,任何货物或车辆,或为安全目的被仔细检查的任何商品。目标检测例如脸部检测,可定义为定位在数字图像中脸部的存在。在数字图像中的脸部检测可用于例如脸部识别,脸部追踪,照片标记,图像检索,安全监视和例如脸部优先、自动聚焦和自动平衡等改进在照相机中的照片质量的应用中。在多数数字图像处理应用中,目标检测由评估分类器(evaluating classifier)进入数字图像的不同部分执行。分类器对应于将在数字图像中检测的目标性质。分类器一般使用基于历史数据和学习算法从相似的数字图像中提取的特征创建。分类器在Viola.P 等人在 2004 年发表在 International Journal of Computer Vision 第 57 卷第 2 期第137-154页的标题为“Robust Real-Time Face Detection”的论文中详细描述。分类器应用到数字图像内的子窗口(sub window)以用于检测目标的存在。进一步,为了在数字图像中的目标检测,该子窗口穿过数字图像逐步移动直到覆盖整个数字图像。典型的数字图像示意性地表示在图I中。数字图像在X (宽)和Y (高)方向延伸。如图I所示,数字图像在整个宽度具有W像素且在整个深度具有H像素。多数目标检测技术使用经由分类器扫描整个数字图像。在一个这样的技术中,为子窗口计算强分类器(strongclassifier)。子窗口可包括像素阵列,例如MxN像素,在其中M和N是整数。在一个技术中,子窗口以I个像素的步长穿过数字图像扫描。以I个像素的步长的数字图像的扫描表示子窗口在数字图像的每个像素上遍历(traverse)而不会跳过任何像素。进一步为在数字图像的每个像素的子窗口计算分类器的值。根据在给定像素的分类器的值,在给定像素上的检测窗口内检测出目标的存在。在这样的技术中,目标检测率很高,因为目标的存在是在数字图像的每个像素上检查的。在此,目标检测率指的是在数字图像中准确的目标检测百分比。进一步,在该技术中,目标检测时间正比于高度和宽度的乘积,例如在数字图像中像素的总个数,因为子窗口在数字图像的每个像素上扫描。在另一个已知的技术中,数字图像由子窗口以超过I个像素(例如2个像素)的步长扫描。在该技术中,子窗口通过在数字图像中跳过I个像素遍历。相应地,在以2个像素步长扫描数字图像中所花费的时间比在以I个像素的步长扫描数字图像中所花费的时间小。然而,相对于I个像素的步长的目标检测率,当以2个像素的步长扫描时目标检测率变差。在一个表示中,以I个像素的步长扫描数字图像所花费的时间可正比于W * H,然而以2个像素的步长扫描数字图像所花费的时间可正比于W/2 * H/2。进一步,以I个像素的步长目标检测率可为“R%”,而以2个像素的步长的可近似为(R-10) %。在这些现有技术中,在目标检测率和扫描数字图像所花费的时间(处理时间)之间存在一个权衡(tradeoff)0例如,如果目标检测率增加,则处理时间也增加。鉴于上述讨论,存在在数字图像中有效检测目标的需求
发明内容
各种实施例的一般目的是为了描述用于在数字图像中检测目标的方法、设备及计算机程序产品。一方面,提供了在具有多个像素的数字图像中用于检测目标的方法。所述方法包括提供该多个像素的MxN像素的检测窗口。进一步,所述方法包括通过以第一步长遍历检测窗口到在数字图像的一组像素上,确定在数字图像中的目标的至少一个区域。在这组像素的每个像素上,检测在检测窗口中的目标的至少一部分的存在。根据在该检测窗口中的目标的至少一部分存在的检测,该检测窗口以第二步长在邻近区域中移动。此外,所述方法包括在邻近像素上的每个检测窗口中检测目标的至少一部分的存在。而且,所述方法包括如果在邻近像素上至少阈值数的检测窗口存在目标的至少一部分,则选择所述检测窗口作为在数字图像中的目标的一个区域。其后,基于目标的至少一个区域,选择在数字图像中代表目标的目标区域。在一个实施例中,所述方法通过计算检测窗口的MxN像素的分类器值,检测在检测窗口中目标的至少一部分的存在。进一步,该分类器值与第一阈值数进行比较。如果该分类器值大于该第一阈值数,则检测到目标的至少一部分在该检测窗口中存在。在另一实施例中,通过确定至少一部分存在的可能性,在检测窗口中检测目标的至少一部分的存在。该存在的可能性通过计算检测窗口的MxN像素的分类器值来确定。进一步,该分类器值与第二阈值数进行比较。如果该分类器值大于该第二阈值数,则目标的至少一部分很可能存在于检测窗口中。在一个实施例中,第二步长小于第一步长。例如,第一步长可为2个像素,而第二步长可为I个像素。进一步,在一个实施例中,基于由目标的至少一个区域所覆盖的整个区域选择目标区域。在另一实施例中,基于目标的至少一个区域中共同的区域选择目标区域。在另一方面,提供了一种设备。所述设备包括至少一个处理器和至少一个存储器。所述至少一个存储器包括计算机程序代码,该至少一个存储器和计算机程序代码配置成,通过该至少一个处理器,使得设备至少执行定义MxN像素的检测窗口和从一个第一像素到第二像素穿过数字图像遍历检测窗口 ;通过以第一步长遍历检测窗口到一组像素确定在数字图像中的目标的至少一个区域;在该组像素的每个像素上检测在检测窗口中目标的至少一部分的存在;根据在该检测窗口中目标的至少一部分存在的检测,以第二步长在邻近区域移动该检测窗口 ;在邻近像素上的检测窗口中检测目标的至少一部分的存在;和如果在邻近像素上至少阈值数的检测窗口中存在目标的至少一部分,则选择检测窗口作为在数字图像中的目标的一个区域;和基于目标的至少一个区域,选择在数字图像中代表目标的目标区域。在一个实施例中,该至少一个存储器和计算机程序代码配置成,通过该至少一个处理器,使得该设备至少在像素上计算检测窗口的MxN像素的分类器值和比较该分类器值和第一阈值数以检测在检测窗口中至少一部分的存在,其中如果该分类器值大于该第一阈值,则该至少一部分存在于该检测窗口中。在另一个实施例中,该至少一个存储器和计算机程序代码配置成,通过该至少一个处理器,使得该设备至少基于检测窗口的MxN像素的分类器值和该分类器值和第二阈值数的比较,检测在检测窗口中目标的至少一部分的存在。如果该分类器值大于该第二阈值数,则目标的至少一部分很可能存在于检测窗口中。在一个实施例中,该至少一个存储器和计算机程序代码配置成,通过该至少一个处理器,使得该设备至少存储至少一个分类器、第一阈值数和第二阈值数。进一步,在一个实施例中,第二步长可小于第一步长。例如,第一步长可为2个像素,而第二步长可为I个像素。此外,在一个实施例中,处理器配置成合并该至少一个区域以选择目标区域。在另一个实施例中,该至少一个存储器和计算机程序代码配置成,通过该至少一个处理器,使得该设备至少基于在目标的至少一个区域中共同的区域选择目标区域。在另一方面,提供了用于在具有多个像素的数字图像中检测目标的计算机程序产品。所述计算机程序产品包括至少一个计算机可读存储介质,其包括一指令组,该指令组配置成使得该设备至少定义MxN像素的检测窗口 ;通过以第一步长遍历检测窗口到一组像素来确定在数字图像中的目标的至少一个区域;在该组像素的每个像素上检测在检测窗口中目标的至少一部分的存在;根据在该检测窗口中目标的至少一部分存在的检测,以第二步长在邻近区域中移动该检测窗口 ;在邻近像素上每个检测窗口中检测目标的至少一部分的存在;和如果在邻近像素上至少阈值数的检测窗口中存在目标的至少一部分,则选择检测窗口作为在数字图像中的目标的一个区域;和基于目标的至少一个区域,用于选择在数字图像中代表目标的目标区域的一指令组。在一个实施例中,该指令组进一步配置成使得该设备至少在像素上计算检测窗口的MxN像素的分类器值;比较该分类器值和第一阈值数以检测在检测窗口中至少一部分的存在,其中如果该分类器值大于该第一阈值数,则该至少一部分存在于该检测窗口中。在另一个实施例中,该指令组进一步配置成使得该设备至少比较该分类器值和第二阈值数。如果该分类器值大于该第二阈值数,则目标的至少一部分很可能存在于检测窗口中。在一个实施例中,第二步长小于第一步长。例如,第一步长可为2个像素,而第二步长可为I个像素。进一步,在一个实施例中,基于由目标的至少一个区域所覆盖的整个区域选择目标区域。在另一实施例中,基于目标的至少一个区域中共同的区域选择目标区域。
通过参考下列结合附图的描述,各种实施例的上述和其它特征和优点,以及实现它们的方式,将会更加明显且各个实施例将会更好理解,其中图I是数字图像的示意图;图2是根据一个实施例,用于在数字图像中检测目标的方法的流程图; 图3a和3b是根据另一个实施例,用于在数字图像中检测目标的方法的流程图;图4是根据一个实施例,用于在数字图像中检测目标的设备的框图;以及
图5是根据一个实施例,说明在数字图像中检测目标的示意图。
具体实施方式
需要理解的是本实施例不局限于应用于在下列描述中阐述的或附图中说明的指令细节和部件布置。也需要理解的是在此使用的措辞和术语只是用于描述的目的,而不应当视为限制。在此,“包括”,“包含”或“具有”及其变化的使用意思是包含其后所列的条目和作为附加条目的其等价物。在此,术语“一”和“一个”不表示对数量的限制,而表示至少一个提到的条目的存
在。进一步,在此术语“第一”,“第二”和其类似的使用不表示任何顺序、数量或重要性,而只是用于相互区分元件。各种实施例提供了用于在数字图像中检测目标的方法、系统和计算机程序产品。本公开通过在数字图像的粗略扫描和精确扫描之间选择性地切换,以在数字图像中提供目标检测。本公开在目标检测期间提供在粗略扫描和精确扫描之间的这样的切换以增加目标检测率而基本上不增加处理时间。结合图2,3a,3b和4,具体描述了这样的方法、系统和计算机程序产品。参考图2,根据实施例说明了用于在数字图像中检测目标的方法200的流程图。数字图像,例如数字图像100可包括多个像素。方法200在202开始。进一步,在204,方法200包括提供MxN像素的检测窗口。M和N是整数而且可基于要检测的目标的性质和数字图像的分辨率选择。检测窗口可提供在数字图像中的一个特定像素上,从该像素可开始数字图像的扫描。例如,一种形式中,检测窗口可位于数字图像的左上角像素上。进一步,在206,方法200包括在数字图像中确定目标的至少一个区域。检测窗口在204中从提供检测窗口的像素开始穿过该数字图像遍历。检测窗口以第一步长遍历到一组像素上。在一种形式中,第一步长可为2个像素。相应地,检测窗口可在或者一行中的奇数编号的像素上遍历,或在一行中的偶数编号的像素上遍历。进一步,在一个特定行上遍历后,可跳过下一行像素。例如,如果第一步长为2个像素,检测窗口可在像素的奇数编号的行或像素的偶数编号的行遍历。因此,在一种形式的数字图像100中,该组像素可只包括从数字图像100的全部H * W像素中的在像素的偶数行或像素的奇数行中的偶数编号的像素。在另一种形式中,该组像素可只包括从数字图像100的全部H * W像素中在像素的偶数行或像素的奇数行中的奇数编号的像素。例如,检测窗口可在数字图像100中用1,3,5......W和2W+l,2W+2......HW表示的像素上遍历。在检测窗口在该组像素的每个像素上遍历的同时,确定检测窗口中目标的至少一部分的存在。例如,在特定像素上,检测到检测窗口是否包括目标的至少一部分。如果在特定像素上检测到检测窗口包括目标部分,则步长变为第二步长。检测窗口进一步以第二步长在邻近区域中遍历。例如,检测窗口以第二步长遍历到邻近像素。进一步,在每个邻近像素上,检测到目标部分的存在。在这个实施例中,如果在邻近像素上的至少阈值数的检测窗口也包括目标部分,则可检测到在特定像素上的检测窗口包含目标部分。这样的检测是基于分类器的性质,即在目标周围的至少少量邻近像素也应当被检测为目标。相应地,如果在邻近像素上至少阈值数的检测窗口包括目标部分,则在特定像素上的检测窗口可选择作为目标的一个区域。由于检测窗口在该组像素的每个像素上遍历,所以在整个数字图像上可选择目标的多个区域。进一步,在208,基于在206确定的区域选择目标区域。目标区域在数字图像中代表检测的目标。之后方法在208终止。用于在数字图像中检测目标的详细方法300与图3a和3b相结合。根据另一实施例,图3a和3b示出用于在数字图像中检测目标的方法300。方法300开始于302。进一步,在304,在一像素上提供检测窗口。如上所述,而不限制方法300的范围,该像素可以是数字图像中的左上角像素。检测窗口的尺寸可以适当定制。例如,一种形式中,检测窗口可以是20x20像素。需要理解的是当检测窗口在给定像素上提供时,它代表检测窗口的一角落在该像素上。例如,20x20像素的检测窗口的左上角可落在给定像素上,且检测窗口从该给定像素延伸至20x20像素。在306,检测窗口以第一步长遍历到该组像素的下一个像素。第一步长可以是任意 个数的像素,例如,2个像素或3个像素。进一步,在308,确定了在当前像素上检测窗口是否包括目标的至少一部分。这样的检测是通过估计在当前像素上的检测窗口的分类器完成的。20x20像素的检测窗口的左上角可处于当前像素,而且为20x20像素的检测窗口计算分类器的值。分类器的值(之后称为“分类器值”)给出用于检测检测窗口是否包括目标的至少一部分的输出。需要理解的是‘目标的至少一部分’可指的是目标的一部分或整个目标。例如,如果目标是脸部,则目标的至少一部分可以指眼睛,鼻子或整个脸部。在另一例子中,如果目标是车辆,则至少一部分可能指前轮,后轮或车顶。为了简便的目的,之后‘目标的至少一部分的检测’将被称为‘目标检测’,而且其不能被认为限制本方法300的范围。需要理解的是在数字图像中可存在多个脸部,并且在此目标可指在数字图像中存在的多个脸部。相应地,检测目标也指的是检测数字图像中的多个脸部。如之前解释的,基于在当前像素检测窗口的分类器值执行目标检测。一种形式中,如果分类器值大于第一阈值数,则在存在当前像素的检测窗口中检测到目标。第一阈值数可基于目标和数字图像的性质而确定。进一步,在308,如果确定在当前像素检测窗口不包括目标的任何部分;在306检测窗口遍历至下一像素。然而,如果在308确定在当前像素的检测窗口包括目标部分时,进行310。在本公开的另一个实施例中,如果在308检测到在检测窗口具有目标存在的可能性时,则方法300可进入到310。例如,如果发现目标可存在于当前像素存在很大的可能性,则不需要实质性地等待在当前像素检测到目标,方法300就可进入到310。例如,如果分类器值超过第二阈值数,则可以推断检测窗口包括目标存在实质的可能性。第二阈值数的值可基于目标的性质、与在类似的数字图像中目标检测相关的实验结果选择。在一种形式中,第二阈值数的值小于第一阈值数的值。在另一种形式中,第二阈值数可等于或大于第一阈值数。在310,检测窗口以第二步长移动到邻近像素。不限制本方法的范围,在一种形式中,第二步长小于第一步长。例如,第二步长可为I个像素,且检测窗口可移动到当前像素的少数或全部8个邻近像素上。对于本领域技术人员来说显然最初检测窗口以第一步长穿过数字图像扫描。这样的目标检测可被称为‘粗略扫描’,因为为了检测窗口中目标的存在只检查了数字图像的多个像素的该组像素。进一步,只要在特定像素上检测到目标,则步长变为第二步长,例如,从2个像素到I个像素。进一步,该特定像素的8个邻近像素被检查在这些邻近像素的检测窗口是否包括目标。在邻近像素的这种检测可被称为‘精确扫描’。为了目标的存在检查在邻近像素的检测窗口,以表明在特定像素上的检测窗口包括目标。可以理解的是方法300公开了如果在特定像素上检测到或可能检测到目标,则从粗略扫描到精确扫描的选择性切换。在精确扫描中,一种形式中,为了目标的存在检查每个邻近像素。在312,在每个邻近像素都检测是否相应的检测窗口包括目标。在给定的邻近像素,基于为相应的检测窗口计算的分类器值可检测到在相应的检测窗口中的目标存在。如果分类器值大于阈值,则可检测到相应的检测窗口包括目标。需要注意的是一种形式中,阈值可等于第一阈值数。在替代形式中,阈值可小于第一阈值数,或可等于第二阈值数。在314,确定是否在邻近像素存在的至少阈值数的检测窗口包括目标。阈值数可
基于第一步长和第二步长和各种其它因数(例如数字图像的分辨率)选择。一种形式中,8个邻近像素的阈值数可等于4。如果在314,确定至少阈值数的检测窗口不包括目标,继续306。例如,如果检测到在仅有2个邻近像素(小于阈值数,例如4个)的检测窗口包括目标,在306检测窗口遍历到下一个像素。如果确定至少阈值数的检测窗口包括目标,方法300继续到316。例如,如果检测到在6个邻近像素(大于阈值数,例如4个)的检测窗口包括目标,继续316。在316,选择检测窗口作为目标的一个区域。可检测到在当前像素的检测窗口将包括目标,因为在6个邻近像素的检测窗口也都包括目标。本领域技术人员可以领会可检测到在当前像素的检测窗口包括目标;因为这样的声明是基于分类器的性质,即在目标周围的邻近像素也是目标。相应地,在316,选择在当前像素的检测窗口作为目标的一个区域。在318确定了是否检测窗口以第一步长遍历到该组像素的每一个。例如,确定整个数字图像的扫描是否完成。如果确定检测窗口没有在该组像素的每一个像素上遍历,继续306,在其中再一次以第一步长遍历检测窗口到下一个像素。其后,可继续之后的块308至316直到确定在该下一个像素的检测窗口是否包括目标用于通过检测窗口完全扫描整个数字图像。对于本领域技术人员来说显然如果检测窗口遍历到该组像素的每一个上,在316可选择数字图像中的目标的区域。需要理解的是,在316选择的区域可关联到单个目标,或关联到多个相似目标,例如在数字图像中的多个脸部。如果在318,确定检测窗口遍历到数字图像的该组像素,例如数字图像的扫描已完成,且方法300进一步进入到320。在320,方法300基于在318选择的区域执行选择目标区域。需要理解的是在某些情况中目标可能存在于只有一个检测窗口中,例如在一个区域中。进一步,也需要理解的是目标可能存在于多个检测窗口中,例如在多个区域中。进一步,也需要理解的是在目标包括数字图像中的多个脸部的情况下,在318可选择多个区域,在其中每个区域包括一个脸部。进一步,在320,基于目标的至少一个区域选择在数字图像中代表目标的目标区域。基于目标的区域,各种方法可用于选择目标区域。例如,在一种方式中,目标的区域可合并为单个区域,该单个区域可选择作为目标区域。在另一种方式中,区域的共同覆盖区域可选择作为目标区域。也需要理解的是在数字图像中的多个脸部的情况下,在数字图像中可选择多个区域作为目标区域。进一步,任何其它在本领域已知的数学或图解方式也可以用于从目标的区域中选择目标区域。其后,用于在数字图像中检测目标的方法300终止于322。根据一实施例,本公开也提供设备400。在一种形式中,设备包括至少一个处理器和至少一个存储器。设备400示出以包括处理器402和存储器404。但是,对于本领域技术人员来说显然设备400可包括多于一个存储器和多于一个处理器。存储器404包括计算机程序代码。至少一个处理器的例子包括,但不局限于,一个或多个微处理器,具有伴随数字信号处理器的一个或多个处理器,不具有伴随数字信号处理器的一个或多个处理器,一个或多个专用计算机芯片,一个或多个现场可编程门阵列(FPGAS),一个或多个控制器,一个或多个专用集成电路(ASICS),或一个或多个计算机。存储器的例子包括,但不局限于,硬盘驱动器,只读存储器(ROM),随机存取存储器(RAM),可擦可编程只读存储器(EPROM),电可擦除只读存储器(EEPROM),可编程只读存储器(PROM),CD-ROM,或闪存。存储器404和计算机程序代码配置成,通过处理器402,使得设备400至少提供检测窗口。检测窗口可以是结合图3a和3b中描述的MxN像素。设备400可在数字图像中的特定像素上提供检测窗口。例如,检测窗口可位于数字图像的左上角像素。进一步,存储器 404和计算机程序代码配置成,通过处理器404,使得设备400至少从一个像素到另一个像素遍历检测窗口。存储器404和计算机程序代码配置成,通过处理器402,使得设备400至少在一种形式中,存储器404和计算机程序代码配置成,通过处理器402,使得设备400至少处理器404配置成以第一步长遍历检测窗口到数字图像的一组像素。在一个特定实施例中,第一步长可为2个像素。当遍历检测窗口到该组像素的同时,在每个像素上,存储器404和计算机程序代码配置成,通过处理器402,使得设备400至少确定在检测窗口目标的至少一部分(在下文中‘目标的至少一部分’被称为‘目标’)的存在。例如,在特定像素上,存储器404和计算机程序代码配置成,通过处理器402,使得设备400至少确定是否检测窗口包括目标部分。如果设备400确定在特定像素上检测窗口包括目标,则存储器404和计算机程序代码配置成,通过处理器402,可使得设备400从第一步长改变步长到第二步长。第一步长和第二步长已经结合图2、3a和3b描述。检测窗口进一步以第二步长在特定像素的邻近区域中遍历。例如,检测窗口以第二步长遍历到特定像素的邻近像素。进一步,在每个邻近像素上,存储器404和计算机程序代码配置成,通过处理器402,使得设备400至少确定目标的存在。如结合图3a和3b描述的,如果也检测到在给定像素的邻近像素上的至少阈值数的检测窗口包括目标,则检测到当前在给定像素的检测窗口包括目标。进一步,如果检测到在给定像素上的检测窗口包括目标,则可选择在给定像素上的所述检测窗口作为目标的一个区域。相应地,如果在邻近像素上的至少阈值数的检测窗口包括目标,则存储器404和计算机程序代码配置成,通过处理器402,使得设备400至少选择在特定像素的检测窗口作为目标的一个区域。进一步,存储器404和计算机程序代码配置成,通过处理器402,使得设备400至少遍历检测窗口到整个数字图像,例如在该组像素的每个像素。相应地,在整个数字图像上可选择目标的多个区域。进一步,处理器402配置成基于通过穿过数字图像遍历检测窗口所确定的区域来选择目标区域。在数字图像上的目标区域代表数字图像中检测到的目标。在一个实施例中,存储器404和计算机程序代码配置成,通过处理器402,使得设备400至少在检测窗口的分类器值的基础上检测当前在像素上的检测窗口中目标的存在。在一种形式中,如果检测窗口的分类器值大于第一阈值数,它代表目标存在于检测窗口内。在另一个实施例中,存储器404和计算机程序代码配置成,通过处理器402,使得设备400至少基于分类器值检测在检测窗口中目标存在的可能性。例如,如果检测窗口的分类器值超过第二阈值数,则可推断检测窗口中包括目标存在实质上的可能性。更具体地,如果确定在当前像素上的检测窗口中具有目标存在实质上的可能性,则不需要实质上等待在当前像素检测到目标,存储器404和计算机程序代码配置成,通过处理器402,可使得设备400至少在邻近区域切换到精确扫描。如结合图3a和3b的描述,第一阈值数和第二阈值数可基于要检测的目标和数字图像的性质配置。在一个实施例中,分类器,第一阈值数和第二阈值数可存储在设备400的存储器404中。在某些实施例中,存储器404也可以是处理器402的一部分。存储器404的例子可包括一个或多个电子设备可读介质例如硬盘,软盘,CD,CD-ROM, DVD,紧凑存储介质,闪存,随机存取存储器,只读存储器,可编程只读存储器,存储棒,或类似物或其组合。存储器404 可配置成存储由处理器402执行的多个程序指令。另一个实施例也提供包括各种用于在数字图像中检测目标的装置的设备。这些装置可用于执行如上所述的方法200和300,或设备400的功能。例如,设备可包括用于提供检测窗口的装置,用于通过以第一步长和第二步长选择性遍历检测窗口来确定目标的至少一个区域的装置,和用于基于目标的至少一个区域选择目标区域的装置。在此,用于确定目标的至少一个区域的装置可包括用于计算检测窗口的分类器值和基于分类器值检测在检测窗口中目标的存在的装置。用于在数字图像中检测目标的这些装置可配置成执行如在方法200和300的流程图中描述的特定功能。为了简便描述的目的,用于检测目标的这些装置的功能就不再描述,因为这些功能已经结合方法200和300的流程图描述过。进一步,需要理解的是用于检测目标的这些装置可以使用电路或基于神经网络的设备的硬件方案实施,或者甚至实施为计算机软件代码。如图5所示,方法200和300,和设备400的功能可进一步借助于示例性表述以进
一步理解。图5说明包括例如脸部502,504和506的目标的数字图像500。方法200、300或设备400的功能可用于检测数字图像500中的脸部502、504和506。在数字图像500中提供检测窗口。如结合图2、3和4所描述的,可在数字图像500的左上角像素提供检测窗口。进一步,检测窗口以第一步长(例如2个像素)遍历以为在数字图像500中的脸部502、504和506的每一个确定至少一个区域(也称为“区域”)。在每个像素上,检测是否检测窗口包括目标(脸部或脸部的一部分)。例如,在特定像素上,可检测到检测窗口包括脸部502。一旦在特定像素上检测到脸部502,遍历检测窗口的步长改变到第二步长,例如I个像素。检测窗口在邻近区域(例如8个邻近像素的每一个)中遍历。进一步,在8个邻近像素的检测窗口中检测到脸部502的存在。进一步,如果确定在邻近像素上至少阈值数的检测窗口包括脸部502,在特定像素的检测窗口可选择作为脸部502的一个区域(未示出)。检测窗口进一步以第一步长穿过数字图像遍历以寻找下一个脸部的位置。需要理解的是为脸部502可选择多个区域,因为脸部502可能足够大到整个包括在单个检测窗口中。相应地,多个检测窗口可选择作为脸部502的区域。
检测窗口进一步以第一步长(2个像素)穿过数字图像500遍历以寻找下个脸部。相应地,类似于为脸部502选择的区域,也可为脸部504和506选择多个区域。在这种方式中,检测窗口贯穿数字图像500完全遍历,且可选择脸部502、504和506的多个区域。之后,基于它们的对应区域,可选择脸部502、506和508的目标区域。例如,基于为脸部502选择的区域,选择脸部502的目标区域。脸部502的目标区域在图5中由区域508代表。区域508代表在数字图像500中的脸部502。在一个形式中,可通过提取(draw)包围每个为脸部502选择的区域的区域选择区域508。但是其它方法也可用于基于为脸部502选择的区域选择脸部502的目标区域。相类似地,基于为脸部504选择的区域,也可选择脸部504的目标区域。脸部504的目标区域由区域510代表。相类似地,区域512可选择作为脸部506的目标区域。需要指出的是特定的目标(例如脸部502、504和506中的任意一个)可被包围在单个检测窗口或多个检测窗口中。相应地,分别基于单个检测窗口或多个检测窗口为脸部502、504和506中的每个可选择单个或多个区域。进一步,每个脸部502、504和506的目标 区域可基于它们的相应的单个或多个区域选择。在一个实施例中,基于例如脸部502、504和506的尺寸的目标的式样,也可定制检测窗口的尺寸。更进一步,各种实施例可采用用于在数字图像中检测目标的计算机程序产品的形式,该计算机程序产品在具有包含在计算机可读存储介质中的计算机可读程序指令(例如计算机软件)的计算机可读存储介质上。可使用任何合适的计算机可读存储介质(在下文中称为‘存储介质’),其包括硬盘,CD-ROM,RAM, ROM,闪存,光存储器设备或磁存储设备。上述的实施例参考方法和设备的框图和流程图说明。可以理解的是框图和流程图说明的每个块,和框图和流程图说明中的块的结合,分别可由一计算机程序指令组执行。这些指令组可加载到通用计算机、专用计算机或其它用以生产机器的可编程设备中,使得当在计算机或其它可编程设备上执行该指令组时,该指令组产生用于执行在流程图块或多个块中指定的功能的装置。尽管也使用用于执行包括在此描述的硬件、固件和软件的各种组合的功能的其他装置。这些计算机程序指令也可存储于计算机可读介质中,可使得计算机或其它可编程设备在特定方式中运行,以使存储在计算机可读存储器中的指令生产一件产品,该产品包括用于执行在方法200或300的流程图中指定的功能的计算机可读指令。计算机程序指令也可加载到计算机或其它可编程设备上以使得一系列操作步骤在计算机或其它可编程设备中实施以生成计算机执行的进程,以使在计算机或其它可编程设备上执行的指令提供用于执行在方法200和/或300的流程图中指定的功能/方法的步骤。基于前述,本公开当通过检测窗口扫描数字图像的同时,基于在粗略扫描和精确扫描之间的选择性的切换提供目标检测。这被完成以增加目标检测率而基本上不增加处理时间。例如,用于以I个像素的第一步长和2个像素的第二步长扫描数字图像100,在其上执行粗略扫描的像素的个数等于(W/2) * (H/2)。进一步,假设,在数字图像100中存在‘n’个数目的脸部,因而精确扫描也将在8 * n个像素上执行。因此,检测的像素的总数等于(W * H/4+8 * (n))。本领域技术人员可以领会通过本公开的在检测目标中的处理时间将会稍微多于以2个像素的相同步长扫描数字图像中的处理时间(W * H/4),但是将明显少于以I个像素的相同步长扫描数字图像中的处理时间(w ★ H)。类似地,通过本公开达到的目标检测率会稍微小于以I个像素的相同步长扫描数字图像所达到的目标检测率,但是会明显比以2个像素的相同步长扫描数字图像所达到的目标检测率改善。在实验性研究中,具有大约1800个数字图像的数据组被检测例如脸部的目标的存在。通过分别以I个像素的相同步长,以2个像素的相同步长,和也以本公开教导的以I个像素和2个像素的步长选择性扫描用检测窗口扫描数字图像检测数字图像。实验结果暗示目标检测率在以I个像素的相同步长扫描的情况下是65%并且处理时间为大约16分钟。进一步,目标检测率在以2个像素的相同步长扫描的情况下是55%并且处理时间为大约4分钟。然而,实验结果暗示目标检测率在以本公开教导的2个像素和I个像素的步长选择性扫描的情况下为64. 50%且处理时间为4. 01分钟。因此,对于本领域技术人员来说显然本公开增加了检测率而基本上没有增加处理时间。这进一步对于本领域技术人员来说显然更高的第一步长和第二步长也将获得相似的有利结果。为了说明和描述的目的,已经提出本公开的具体实施例的前述描述。它们并不是 有意为详尽的或限制本公开到公开的准确形式,而且鉴于上述教导,明显许多改进和变形是可能的。选择和描述该实施例是为了更好地解释本公开的原理和它的实际应用,从而为了使本领域技术人员更好地使用本公开和带有各种变形的各种实施例以适合特定用途。必须理解的是由于环境可建议或提供的权宜之计,各种省略和等同物的替代是可预期的,但是这些是拟覆盖申请或实施而不脱离本公开的权利要求的精神或范围。
权利要求
1.ー种方法,包括 在数字图像中提供多个像素的MxN像素的检测窗ロ,其中M和N是自然数; 在所述数字图像中通过以第一步长遍历所述检测窗ロ到一组像素上且通过执行以下步骤确定目标的至少ー个区域 确定所述目标的至少一部分是否存在于所述检测窗口中; 根据在所述检测窗口中的所述目标的至少一部分存在的检测,在邻近区域中以第二步长移动所述检测窗ロ; 确定所述目标的所述至少一部分是否存在于在邻近像素上的检测窗ロ中;以及如果所述目标的所述至少一部分存在于在所述邻近像素上的至少阈值数的检测窗ロ中,则选择所述检测窗ロ作为所述数字图像中的所述目标的ー个区域;以及 基于所述目标的所述至少ー个区域选择在所述数字图像中代表所述目标的目标区域。
2.如权利要求I的方法,其中在所述检测窗口中检测所述目标的所述至少一部分的存在包括 计算所述检测窗ロ的所述MxN像素的分类器值;以及 比较所述分类器值和第一阈值数,其中如果所述分类器值大于所述第一阈值数则所述目标的所述至少一部分存在于所述检测窗ロ中。
3.如权利要求I的方法,其中在所述检测窗口中检测所述目标的所述至少一部分的存在包括通过以下步骤确定所述目标的所述至少一部分的存在的可能性 计算所述检测窗ロ的所述MxN像素的分类器值;以及 比较所述分类器值和第二阈值数,其中如果所述分类器值大于所述第二阈值数则所述目标的所述至少一部分很可能存在于所述检测窗口中。
4.如权利要求I的方法,其中所述第二步长小于所述第一步长。
5.如权利要求I的方法,其中所述第一步长是2个像素且所述第二步长是I个像素。
6.如权利要求I的方法,其中基于所述目标的所述所述至少ー个区域所覆盖的全部区域选择所述目标区域。
7.如权利要求I的方法,其中基于在所述目标的所述至少ー个区域和所述目标的至少另ー个区域共同的区域选择所述目标区域。
8.—种设备,包括 至少ー个处理器;和 至少ー个包括计算机程序代码的存储器,所述至少一个存储器和所述计算机程序代码配置成,通过所述至少ー个处理器,使得所述设备至少执行 在数字图像中定义多个像素的MxN像素的检测窗ロ,其中M和N是自然数; 在所述数字图像中通过以第一步长遍历所述检测窗ロ到一组像素上且通过执行如下步骤确定目标的至少ー个区域 确定所述目标的至少一部分是否存在于所述检测窗口中; 根据在所述检测窗口中所述目标的所述至少一部分存在的检测,以第二步长在邻近区域中移动所述检测窗ロ; 确定所述目标的所述至少一部分是否存在于在邻近像素上的所述检测窗ロ中;以及 如果在所述邻近像素上所述目标的所述至少一部分存在于至少阈值数的所述检测窗ロ中,则选择所述检测窗ロ作为所述数字图像中的所述目标的ー个区域;以及 基于所述目标的所述至少ー个区域选择在所述数字图像中代表所述目标的目标区域。
9.如权利要求8的设备,其中所述至少一个存储器和所述计算机程序代码配置成,通过所述至少ー个处理器,使得所述设备至少进ー步执行 在像素上计算所述检测窗ロ的所述MxN像素的分类器值; 比较所述分类器值和第一阈值数以检测在所述检测窗口中所述至少一部分的存在,其中如果所述分类器值大于所述第一阈值数则所述至少一部分存在于所述检测窗口中。
10.如权利要求9的设备,其中所述至少一个存储器和所述计算机程序代码配置成,通过所述至少ー个处理器,使得所述设备至少进ー步执行 检测在所述检测窗ロ中所述目标的所述至少一部分的存在,基于 所述检测窗ロ的所述MxN像素的分类器值;以及 所述分类器值和第二阈值数的比较,其中如果所述分类器值大于所述第二阈值数则所述目标的所述至少一部分很可能存在于所述检测窗ロ中。
11.如权利要求10的设备,其中所述至少一个存储器和所述计算机程序代码配置成,通过所述至少ー个处理器,使得所述设备至少进ー步执行 存储至少ー个分类器、所述第一阈值数和所述第二阈值数。
12.如权利要求8的设备,其中所述第二步长小于所述第一步长。
13.如权利要求8的设备,其中所述第一步长是2个像素且所述第二步长是I个像素。
14.如权利要求8的设备,其中所述至少一个存储器和所述计算机程序代码配置成,通过所述至少ー个处理器,使得所述设备至少进ー步执行 合并所述目标的所述至少ー个区域和所述目标的至少另ー个区域以选择所述目标区域。
15.如权利要求8的设备,其中所述至少一个存储器和所述计算机程序代码配置成,通过所述至少ー个处理器,使得所述设备至少进ー步执行 基于在所述目标的所述至少ー个区域和所述目标的至少另ー个区域中共同的区域选择所述目标区域。
16.一种计算机程序产品,该计算机程序产品包含至少ー个计算机可读存储介质,所述计算机可读存储介质包括一指令组,所述指令组配置成使设备至少执行 定义多个像素的MxN像素的检测窗ロ,其中M和N是自然数; 在数字图像中通过以第一步长遍历所述检测窗ロ到一组像素上且通过执行如下步骤确定所述目标的至少ー个区域 确定所述目标的至少一部分是否存在于所述检测窗口中; 根据在所述检测窗口中所述目标的至少一部分存在的检测,以第二步长在邻近区域中移动所述检测窗ロ; 在邻近像素上确定所述目标的所述至少一部分是否存在于所述检测窗ロ中;以及 如果在所述邻近像素上所述目标的所述至少一部分存在于至少阈值数的检测窗口中,则选择所述检测窗ロ作为所述数字图像中的所述目标的ー个区域;以及 基于所述目标的所述至少ー个区域选择在所述数字图像中代表所述目标的目标区域。
17.如权利要求16的计算机程序产品,其中所述指令组进一歩配置成使所述设备至少执行 计算在像素上的所述检测窗ロ的MxN像素的分类器值;和 比较所述分类器值和第一阈值数以检测在所述检测窗口中所述至少一部分的存在,其中如果所述分类器值大于所述第一阈值数则所述至少一部分存在于所述检测窗口中。
18.如权利要求16的计算机程序产品,其中所述指令组进一歩配置成使所述设备至少执行 检测在所述检测窗ロ中所述目标的所述至少一部分的存在,基于 所述检测窗ロ的所述MxN像素的分类器值;和 所述分类器值和第二阈值数的比较,其中如果所述分类器值大于所述第二阈值数则所述目标的所述至少一部分很可能存在于所述检测窗ロ中。
19.如权利要求16的计算机程序产品,其中所述第二步长小于所述第一步长。
20.如权利要求16的计算机程序产品,其中所述第一步长是2个像素且所述第二步长是I个像素。
21.如权利要求16的计算机程序产品,其中所述指令组进一歩配置成使所述设备至少执行 合并所述目标的所述至少ー个区域和所述目标的至少另ー个区域以选择所述目标区域。
22.如权利要求16的计算机程序产品,其中基于所述目标的所述至少ー个区域和所述目标的至少另ー个区域中共同的区域选择所述目标区域。
23.ー种包含一指令组的计算机程序,所述指令组配置成使所述设备至少执行 定义多个像素的MxN像素的检测窗ロ,其中M和N是自然数; 在数字图像中通过以第一步长遍历所述检测窗ロ到一组像素上且通过执行如下步骤确定目标的至少ー个区域 确定所述目标的至少一部分是否存在于所述检测窗口中; 根据在所述检测窗口中所述目标的所述至少一部分存在的检测,以第二步长在邻近区域中移动所述检测窗ロ; 在邻近像素上确定所述目标的所述至少一部分是否存在于所述检测窗口中;和如果在所述邻近像素上所述目标的所述至少一部分存在于至少阈值数的检测窗口中,则选择所述检测窗ロ作为所述数字图像中的所述目标的ー个区域;和 基于所述目标的所述至少ー个区域选择在所述数字图像中代表所述目标的目标区域。
24.一种设备,包括 用于在数字图像中定义多个像素的MxN像素的检测窗ロ的装置,其中M和N是自然数;用于在所述数字图像中通过以第一步长遍历所述检测窗ロ到一组像素上且通过执行如下装置确定目标的至少ー个区域的装置 用于确定所述目标的至少一部分是否存在于所述检测窗口中的装置; 用于根据在所述检测窗口中所述目标的所述至少一部分存在的检测,以第二步长在邻近区域中移动所述检测窗ロ的装置; 用于在邻近像素上确定所述目标的所述至少一部分是否存在于所述检测窗口中的装置;和用于如果在所述邻近像素上所述目标的所述至少一部分存在于至少阈值数的所述检测窗口中,则选择所述检测窗ロ作为在所述数字图像中的所述目标的ー个区域的装置; 和基于所述目标的所述至少ー个区域选择在所述数字图像中代表所述目标的目标区域。
全文摘要
提供了用于在数字图像中检测目标的方法、设备和计算机程序产品。所述方法包括提供检测窗口和通过以第一步长遍历所述检测窗口到一组像素上在数字图像中确定所述目标的至少一个区域。进一步,在每个像素上,检测在所述检测窗口中所述目标的至少一部分的存在。根据目标的存在的检测,所述检测窗口以第二步长移动到邻近像素。进一步,如果在所述邻近像素上,所述目标的至少一部分存在于至少阈值数的检测窗口中,则选择所述检测窗口作为所述目标的一个区域。之后,基于所述至少一个区域选择在数字图像中代表目标的目标区域。
文档编号G06K9/00GK102713934SQ201080059538
公开日2012年10月3日 申请日期2010年11月12日 优先权日2009年12月30日
发明者K·A·戈文达拉奥, P·米施拉, R·诺普苏万查伊, V·穆尼恩德尔 申请人:诺基亚公司