利用图像的旋转变体进行对象检测的制作方法

文档序号:6552945阅读:219来源:国知局
专利名称:利用图像的旋转变体进行对象检测的制作方法
背景技术
大多数现有技术水平的对象检测算法能够对各种对象的垂直、正面视图进行检测。此外,这些算法的一部分还能够检测有适度的平面内旋转的对象。然而,一旦固定了检测算法,则这些算法的检测性能难以改进,或不可能改进。换言之,不能在不增加与使用这些算法关联的虚警率(false alarm rate)的情况下改进检测率。这些对象检测算法的性能还受到其基础分类器容量的限制。更特别地,一旦达到了分类器的容量,传统的检测算法不能够在不增加虚警率的情况下改进它们的检测率,反之亦然。
从而,人们期望能够以相对高的检测率和相对低的虚警率来检测对象。

发明内容
公开一种在图像中检测预定的对象的方法。在本方法中,检测图像中潜在的预定对象。此外,对图像的至少一部分加以旋转,并且确定在旋转的至少一部分图像中是否检测到潜在的预定对象。而且,响应在旋转的至少一部分图像中是否检测到潜在的预定对象的确定,确定潜在的预定对象是否是预定对象的精确检测。


从以下参考附图的说明中,本发明的特征对于所属技术领域的专业人员来说将是显而易见的,其中图1A示出了根据本发明的一种实施例的对象检测系统的方框图;图1B示出了根据本发明的另一种实施例的对象检测系统的方框图;图2图解了根据本发明的一种实施例的在图像中检测对象的方法的操作模式的流程图;图3图解了根据本发明的另一种实施例的在图像中检测对象的方法的操作模式的流程图;
图4图解了根据本发明的又一种实施例的在图像中检测对象的方法的操作模式的流程图;图5图解了一种根据本发明的实施例的计算机系统,其可以用于执行以上所述的对象检测系统的各种功能。
具体实施例方式
为了简单和举例说明的目的,本发明将主要通过参考其示例性实施例加以说明。在以下说明中,对许多特定的细节加以陈述以便提供对本发明的全面理解。然而,对于所属技术领域的普通人员来说显而易见的是,可以不受这些特定细节限制地实施本发明。在其它的实例中,众所周知的方法和结构并没有详细地加以说明,以便不会不必要地模糊本发明。
在此,公开了空间滤波算法来改进各种对象检测算法的性能。通常,空间滤波算法被设计为,通过利用(leverage upon)图像的多个旋转变体(version)之间的空间冗余度来提高各种对象检测算法的性能。此外,空间滤波算法并不与任何特定类型的对象检测算法相联接,因此可以与许多不同的对象检测算法一起使用。
换而言之,在此公开的空间滤波算法设计为,通过产生和评估一个或多个图像的多个旋转变体来精确地检测对象,例如,诸如人的面部、汽车、家居产品等。一方面,空间滤波算法可以确定在哪一个旋转变体中检测到了同一对象。若同一检测对象出现在图像的多个旋转变体之中,则该潜在的检测对象是图像中的实际对象的概率会相对较高。或者,若潜在的检测对象并未出现在多个旋转变体的至少之一中,则该潜在的检测对象不是所期望的对象的概率会相对较高,因此对其可以忽略。在这点上,通过实现在此公开的空间滤波算法,各种对象检测算法的检测率可以得到改进,而且还不会提高它们的虚警率。
在此公开的空间滤波算法可以有相对较为广泛的适用范围,因此,可以与广泛的各种对象检测算法一起使用。例如,这些空间滤波算法可以与应用于基于面部的内容分析、身份识别管理、图像质量评估和人工智能等方面的对象检测算法一起使用。
首先,参考图1A,其示出了对象检测系统102的方框图100。应该了解,以下对方框图100的说明只是这种对象检测系统102可以配置成的多种不同方式中的一种方式。此外,还应该了解,对象检测系统102可以包括附加的元件,并且一些在此所述的元件可以移除和/或更改而不会脱离对象检测系统102的范围。例如,对象检测系统102可以包括附加的输入装置、输出装置、存储器和模块等。
对象检测系统102包括配置用于执行对象检测系统102的各种功能的控制器104。在这点上,控制器104可以包括计算装置,例如计算机系统和服务器等。此外,控制器104可以包括配置用于执行各种处理功能的微处理器、微控制器和专用集成电路(ASIC)等等。
控制器104可以与配置用于为控制器104供应信息(例如,诸如图像数据等)的输入装置106对接(interface with)。输入装置106可以包括在装有控制器104的计算装置中的机器。在这点上,输入装置106可以包括诸如CD-ROM驱动器、软盘驱动器和小型闪存读卡器等的存储装置。此外,或另一选择为,如图1A中所绘制,输入装置106可以包括与控制器104分离的装置。在这点上,例如,输入装置106可以包括外部驱动器、照相机、扫描仪和与内部网或因特网的接口等。
不管怎样,控制器104都可以通过输入模块108从输入装置106中接收图像数据。输入模块108可以包括使从输入装置106到控制器104的消息和数据传送能够进行的一个或多个驱动器。此外,控制器104可以配置成通信并且把数据传送回输入装置106,籍此控制输入装置106的某些操作。因此,例如,控制器104可以把消息发送到输入装置106,籍此接收图像数据。控制器104可以与输入装置106通信,其经由以太网类型的连接或通过诸如IEEE 802.3等的有线协议,或诸如IEEE 802.11b、802.11g、无线串行连接和蓝牙等的无线协议,或以上的组合。
从输入装置106接收到的图像数据可以存储在控制器104可访问的存储器110中。存储器110可以包括传统的存储装置,诸如易失或非易失存储器,诸如DRAM、EEPROM和闪存及它们的组合等等。如在此之后更加详细地公开,控制器104可以在存储器110中存储图像数据,以便可以检索图像数据以用于将来的操作和处理。此外,如在此之后所述,存储器110可以存储软件、程序、算法和子程序,控制器104在执行各种对象检测算法的过程中可以访问它们。
图1A还示出了图像旋转模块112,其配置用于操作图像数据以使由图像数据形成的图像可以得到旋转。虽然图像旋转模块112图示为包含在控制器104中,但是图像旋转模块112可以包括存储在存储器110中的算法,控制器104可以访问和执行该算法。此外,图像旋转模块112可以包括其它的配置成执行以上所述功能的软件或硬件。不管怎样,图像旋转模块112可以编程为把由图像数据形成的图像旋转到相对于原始图像成一个或更多个角度。因此,例如,图像旋转模块112可以配置成在平面内的方向上,以顺时针或逆时针方向,从图像的原始方位以大约1至5°的增量旋转该图像。例如,图像旋转增量的数量(number)可以基于所期望的对象检测的精度级别。因此,图像旋转增量的数量越大,对象检测的精度级别越高。然而,在某些情况下,旋转到相对较高角度的图像实际上可能降低检测对象的精度,这是由于对象检测模块114可能无法在这些旋转的图像中精确地检测所造成的。在这点上,图像旋转增量的数量可以基于基础的对象检测模块114的特定的检测特征来确定,例如,其可以为1-5增量左右。
对象检测系统102还图解为包括对象检测模块114,该对象检测模块配置用于在由图像数据形成的图像中检测预定的对象。再者,虽然对象检测模块114图示为包含在控制器104中,但是对象检测模块114可以包括存储在存储器110中的算法,控制器104可以访问和执行该算法。此外,对象检测模块114可以包括任何能够在图像中检测对象的合适的常规算法。举例来说,对象检测模块114可以包括Viola and Jones算法。对象检测模块114可以进一步包括其它的配置成执行以上所述功能的软件或硬件。
控制器104可以使用对象检测模块114来在原始图像中和已经由图像旋转模块112旋转的图像中检测预定的对象。此外,或者另一选择为,对象检测模块114可以采用同一算法的不同参数配置,或者甚至不同的算法来处理旋转到不同角度的图像。图像连同潜在对象的检测定位都可以输入到空间滤波模块116中。空间滤波模块116可以包括存储在存储器110中的算法,该算法可以由控制器104访问和执行。此外,空间滤波模块116可以包括其它的配置成执行在此所述的空间滤波模块116的功能的软件和硬件。
空间滤波模块116通常工作来比较图像(两个或更多的旋转图像和原始图像)以确定哪个图像包含检测对象。若在多个图像中(例如,在原始图像和一旋转图像中或在多个旋转图像中)检测到对象,则空间滤波器116可以输出已经精确检测到对象的指示。然而,对于更高的精确度,空间滤波模块116可以比较多个旋转图像(在某些情况下和原始图像)来确定旋转图像和原始图像中哪些包含检测对象。空间滤波器可以工作的一些方式将在此之后更详细地加以说明。
空间滤波模块116可以把关于所检测的图像的信息输出到输出装置118。例如,输出装置118可以包括显示图像及检测对象的定位的显示器。此外,或者另一选择为,例如,输出装置118可以包括配置成使用检测对象信息的另一机器或程序。举例来说,输出装置118可以包括对象识别程序,诸如图像质量评估程序、身份识别程序和机器人装置的引导系统等。再举一个例子,输出装置118可以包括一个或更多个上述与输入装置106有关的部件,在某些情况下,也可以包括输入装置106。
参考图1B,其示出了对象检测系统152的方框图150。应该了解,以下对方框图150的说明只是这种对象检测系统152可以配置成的多种不同方式中的一种方式。此外,还应该了解,对象检测系统152可以包括附加的元件,并且一些在此所述的元件可以移除和/或更改而不会脱离对象检测系统152的范围。例如,对象检测系统152可以包括附加的输入装置、输出装置、模块和存储器等。
对象检测系统152包含许多以上关于图1A中所图示的对象检测系统102所述的相同的元件。照此,将不再关于对象检测系统152,对具有与图1A的对象检测系统102中所示的那些元件相同的参考标号的元件提供详细说明。而是,依靠以上对那些共有元件的说明,来为那些元件的充分理解提供了足够公开。
图1B中所图示的对象检测系统152与图1A中所图示的对象检测系统102之间的一个主要区别是对象检测系统152包括剪切(cropping)模块154。剪切模块154通常配置成剪切出(crop out),或者另外区分出由对象检测模块114检测到的哪些对象是要检测的潜在的预定对象。虽然剪切模块154图示为包含在控制器104中,但是剪切模块154可以包括存储在存储器110中的算法,控制器104可以访问和执行该算法。此外,剪切模块154可以包括任何能够剪切各种图像的合理适当的常规算法。剪切模块154可以进一步包括其它的配置成执行在此所述的各种剪切功能的软件或硬件。
对象检测系统152中的对象检测模块114可以安排成,以相对较高的精确度检测预定对象,同时牺牲增加虚警率的可能性。这类安排的原因是通过实现空间滤波模块116,虚警可以从检测结果中滤除。
不管怎样,在对象检测系统152中,由剪切模块154剪切出来的包含潜在的预定对象的区域可以由图像旋转模块112加以旋转。对象检测系统152中的图像旋转模块112可以配置成把这些区域旋转到相对于它们的原始位置的一个或更多的角度。因此,例如,图像旋转模块112可以配置成在平面内的方向上,以顺时针或逆时针的方向,从图像的原始方位以大约1至5°的增量旋转该剪切区域。例如,剪切区域旋转增量的数量可以基于所期望的检测预定对象的精度级别。因此,剪切区域旋转增量的数量越大,检测预定对象的精度级别越高。然而,在某些情况下,旋转到相对较高角度的剪切区域实际上可能降低检测对象的精度,这是由于对象检测模块152可能无法在这些旋转的剪切区域中精确地检测对象所造成的。在这点上,剪切区域旋转增量的数量可以基于基础的对象检测模块114的特定的检测特征来确定,例如,其可以为1-5增量左右。
对象检测系统102与152之间的另一区别是对象检测系统152包括配置用于在旋转的图像的剪切区域中检测潜在对象的第二对象检测模块156。第二对象检测模块156可以包括对象检测模块114。或者,第二对象检测模块156可以包括配置成在图像中检测预定对象的完全不同的对象检测模块。如果第二对象检测模块156包括对象检测模块114,第二对象检测模块156可以包括与对象检测模块114不同的参数配置。
控制器104可以使用第二对象检测模块156来在已经由图像旋转模块112旋转的剪切区域中检测预定对象。该剪切区域可以输入到空间滤波模块116中。空间滤波模块116可以比较剪切区域(两个或更多的旋转的和原始的剪切区域)来确定哪个剪切区域包含检测对象。若在多个剪切区域中(例如,在原始的剪切区域和一旋转的剪切区域两者中或在多个旋转的剪切区域中)检测到对象,则空间滤波器116可以输出已经精确检测到对象的指示。然而,对于更高的精确度,空间滤波模块116可以确定在多个旋转的剪切区域(在某些情况下和原始的剪切区域)中的哪个检测到了对象。如以上相对于对象检测系统102所述,空间滤波模块116可以把关于所检测的剪切区域的信息输出到输出装置118。
一方面,对象检测系统152能够以相对于对象检测系统102较高的速度检测预定对象。这可以是真实的,由于对象检测系统152主要处理图像的剪切部分,对象检测系统152与对象检测系统102相比可以处理更少的数据。
现在将对空间滤波模块116加以更加详细的说明。通常,空间滤波模块116配置成寻找由对象检测模块114或156,基于图像或剪切区域的多个旋转变体所检测到的结果之间的一致性。在第一个例子中,空间滤波模块116基于一个概念,即原始图像(I)中的真实的预定对象很可能在旋转的图像(Rm(I))中检测到,其中m=1,2,...,n。这个例子还基于一个概念,即预定对象的虚警或假阳性不太可能在原始的图像(I)和旋转的图像(Rm(I))中检测到。这是真实的,因为虚警可以认为是随机信号,其较少可能在多个旋转的图像中始终检测到。
在图1A和1B中,由对象检测模块114和156从各个图像(原始的图像和旋转的图像两者)中所检测到的结果可以包括多个对象。多个对象可以分解为Om={Om(1),Om(2),...,Om(n)}。在这个例子中,在执行空间滤波模块116之前,各个检测的对象Om(j)(其中m表示图像所处的各个角度,j表示各个对象)首先映射回原始的图像,以便可以比较它们的空间关系。对于各个所检测的对象Om(j),空间滤波模块116在检测结果Ok(k≠m)中搜索,试图发现相应的涉及由Om(j)表示的同一对象的检测结果。在这个处理中,对于各个对象“j”生成一致性矢量{v1,v2,...,vn},从而,若在旋转的图像Rm(I)上发现了相应的检测结果,则矢量分量vm设置成1,否则矢量分量vm设置成0。最终的空间滤波模块116的输出由加权和来确定sum=w1*v1+w2*v2+...+wn*vn若“和”的值大于阈值“t”,则空间滤波模块116的最终输出被认为是有效检测。否则,若“和”的值小于阈值“t”,则检测可以认为是虚警。权重{w1,w2,...,wn}和相应的阈值“t”可以运用任何合适的传统机器学习算法来设置,例如,诸如Y.Freund和R.Schapire在“A Short Introduction to Boosting”(Journal of JapaneseSociety for Artificial Intelligence,771-780页,1999年9月)中所公开的Adaboost,该公开的全部内容以引用的方式并入本文中。
此外,或另一选择为,一致性矢量{v1,v2,..,vn}的各个分量可以包括由基础的对象检测模块114和156所产生的真实值的信心指数(confidence indicator)。此外,各个分量的加权和还可以由基础的对象检测模块114和156来计算。
在第二个例子中,空间滤波模块116基于各种探索式的设计。这些探索式的设计可以以如“1-or”、“1-and”和“2-or”滤波器为特征。“1-or”滤波器可以定义为OD(R(I,a))||OD(R(I,-a))。
“1-and”滤波器可以定义为OD(R(I,a))&&OD(R(I,-a))。
“2-or”滤波器可以定义为[OD(R(I,a))&&OD(R(I,-a))]||[OD(R(I,-2a))&&OD(I,-a)]||[OD(R(I,2a))&&OD(I,a)]。
在以上所述的各个滤波器中,图像或图像的剪切区域由“I”表示,“R(I,a)”表示图像或剪切区域的“a”角度的旋转变体,其中“a”为确定旋转角度的预定参数,“&&”为“与”操作符,“||”为“或”操作符。“OD()”表示返回二进制输出的对象检测模块114和156。二进制输出可以包括例如OD(R(I,a))=1,其指示在大小与原始的检测对象区域相似的旋转的图像中检测到了对象。否则,OD(R(I,a))=0指示在大小与原始的检测对象相似的旋转的图像中没有检测到对象。
举例来说,关于“1-and”滤波器,若d0是原始图像或原始图像的剪切区域中的潜在对象,d1是旋转到角度“a”的图像或剪切区域中的潜在对象,d2是旋转到角度“-a”的图像或剪切区域中的潜在对象,则若d1=1或d2=1,可以确定对象被正确地检测到。更特别地,若d1与d0之间的比较表明d1的大小与d0相似,则d1可以等于1。此外,若d2与d0之间的比较表明d2的大小与d0相似,则d2可以等于1。否则,若d1和d2两者都等于0,那么检测为d0的潜在对象可以认为是虚警。
作为“1-and”滤波器的例子,若d1和d2都等于1,则可以确定对象被正确地检测到。因此,若d1或d2等于0,那么检测为d0的潜在对象可以认为是虚警。
举例来说,关于“2-or”滤波器,d3是旋转到另一角度“-2a”的图像或剪切区域中的潜在对象,d4是旋转到另一角度“2a”的图像或剪切区域中的潜在对象。在此滤波器中,若d1和d2等于1、d3和d2等于1、d4和d1等于1、d2和d4等于1、d3和d4等于1或若d3和d1等于1,则可以确定对象被正确地检测到。
虽然以上以特定数量的旋转的图像或图像的剪切区域对各种滤波器作了说明,但应当理解,这些滤波器可以以任何合理适当的数量的旋转的图像或图像的剪切区域起到作用。在这点上,以上所述的滤波器的例子并不意味着要限制为所述的旋转的图像或图像剪切区域的数量,而是可以运用任何适当数量的旋转的图像或图像剪切区域。
图2图解了在图像中检测对象的方法的操作模式200的流程图。要了解,以下对操作模式200的说明只是实施操作模式200的多种不同方式中的一种方式。而且,对于所属技术领域的普通人员来说显而易见的是,操作模式200表示一般性的图解说明,其它的步骤可以加入或已有的步骤可以去除、更改或重新安排而不会脱离操作模式200的范围。
参考图1A和1B中所图解的方框图100和150,对操作模式200进行说明,并且因此分别地参照其中所列举的元件。然而,应该了解,操作模式200并不受限于在方框图100和150中所陈述的元件。相反,应该了解,可以由与在方框图100和150中所陈述的配置不同的对象检测系统来实施操作模式200。
在步骤210,操作模式200可以通过由控制器104接收来自用户的指令进行人工地初始化。或者,操作模式200可以通过输入装置106的检测等,响应接收到的各种信号,在预定时段后进行初始化。任何方面上,在步骤212,可以在图像中检测潜在的对象。潜在对象可以包括编程控制器104来检测的预定的对象。
在步骤214,可以旋转图像的至少一部分。更特别地,在步骤214,可以旋转一个或更多的剪切区域或整个图像。可以旋转图像的至少一部分的方式,在此之前关于图像旋转模块112更详细地作了说明。
在步骤216,可以确定在旋转的图像的至少一部分中是否检测到潜在的对象。如以上所述,在图像的至少一部分中检测潜在的对象可以由不同于步骤212检测潜在对象所用的对象检测模块的对象检测模块来加以执行,或者,可以由相同的对象检测模块来加以执行。若使用相同的对象检测模块,则对象检测模块可以采用不同的参数配置来在旋转的图像的至少一部分中检测潜在的对象。如步骤218所指示,基于在旋转的图像的至少一部分中是否检测到潜在的对象的确定结果,可以确定潜在的对象是否是对象的精确检测。
如步骤220所指示,操作模式200可以结束。对于操作模式200,结束条件可以与空闲模式相似,因为例如,当接收到另一个图像要处理时,操作模式200可以重新初始化。
可以与操作模式200一起使用的附加的步骤将在以下相对于图3和4来加以说明。
图3图解了在图像中检测对象的方法的操作模式300的流程图。要了解的是,以下对操作模式300的说明只是可以实施操作模式300的各种不同方式中的一种方式。而且,对于所属技术领域的普通人员来说显而易见的是,操作模式300表示一般性的图解说明,其它的步骤可以加入或已有的步骤可以去除、更改或重新安排而不会脱离操作模式300的范围。
参考图1A中所图解说明的方框图100,对操作模式300进行说明,并且因此参照其中所列举的元件。然而,应该了解,操作模式300并不受限于在方框图100中所陈述的元件。反而应该了解,可以由与在方框图100中所陈述的配置不同的对象检测系统来实施操作模式300。
在步骤310,操作模式300可以通过由控制器104接收来自用户的指令进行人工地初始化。或者,操作模式300可以通过输入装置106的检测等,响应收到的各种信号,在预定时段后进行初始化。此外,在步骤312,控制器104可以接收来自输入装置106的输入图像数据。控制器104可以接收图像数据的各种方式,在此之前关于图1A更详细地作了说明。在步骤314,控制器104可以运行对象检测模块114,在由在步骤312接收到的图像数据所表示的图像中检测潜在的预定对象。更特别地,对象检测模块114可以编程为,或者另外配置成在图像中检测预定的图像。因此,对象检测模块114可以处理图像来确定潜在的对象位于图像中的位置或区域。一方面,对象检测模块114可以工作来产生围绕潜在对象的方框或其它标识构件以在图像中标注它们的位置或区域。如步骤316所指示,对象检测模块114的结果可以输入到空间滤波模块116中。
如步骤318所指示,输入的图像还可以由图像旋转模块112来加以旋转。如以上所述,图像旋转模块112可以在平面内的方向上,以顺时针或逆时针方向,从图像的原始方位以大约1至5°的增量旋转该图像。因此,输入的图像可以由图像旋转模块112旋转到第一个角度。此外,在步骤320,控制器104可以运行对象检测模块114来在旋转的图像中检测潜在的预定图像。如在步骤314,对象检测模块114或不同的对象检测模块(未示出),可以配置成处理旋转的图像来确定潜在的对象位于旋转的图像中的位置或区域。再者,对象检测模块114或不同的对象检测模块,可以生成围绕潜在对象的方框或其它的标识构件以在旋转的图像中标注它们的位置或区域。在步骤322,对象检测模块114的结果再次输入到空间滤波模块116中。
如以下所述,对象检测模块可以在存储器110中存储结果,从而该结果可以由空间滤波模块116访问来处理图像。在这点上,在步骤316和322,替代将结果输入到空间滤波模块116,可以将其输入到存储器110。
在步骤324,控制器104可以确定是否要获得在旋转的图像上的附加的对象检测。此确定可以基于所期望的在图像中检测对象的精确度的级别。例如,为了以更高的精确度来检测所期望的对象,可以在规定的限度之内分析较多的旋转图像。或者,为了加快对象检测的处理,可以分析较少的旋转图像。控制器104可以用要分析的旋转图像的数量来加以编程,并且因此可以基于该编程确定是否要获得附加的图像旋转。此外,图像旋转增量的数量可以基于基础的对象检测模块114的特定的检测特征来确定,例如,其可以为1-5增量左右。
若控制器104确定需要附加的图像旋转,则可以重复步骤318-324。此外,步骤318-324可以一直重复,直到控制器104确定已经处理了预定数量的旋转图像。在那一时刻,在步骤324,其等于“否”条件,在步骤326,空间滤波器116可以为一个或更多的旋转的图像处理对象检测模块114的结果。更特别地,空间滤波模块116可以比较各种结果来确定预定对象在原始图像中的位置,并且从检测结果中去除虚警或假阳性。空间滤波器116可以用来作出此确定的各种方式在此之前作了详细说明。
在步骤328,来自空间滤波模块116的结果还可以输出到输出装置118。一方面,输出装置118可以包括显示装置,可以用于显示所检测到的预定对象的位置。另一方面,输出装置118可以包括另一配置成使用所检测到的预定对象的信息的装置或程序。
如步骤330所指示,操作模式300可以结束。对于操作模式300,结束条件可以与空闲模式相似,因为例如,当控制器104接收到另一个输入图像要处理时,操作模式300可以重新初始化。
图4图解了在图像中检测对象的另一方法的操作模式400的流程图。要了解的是,以下对操作模式400的说明只是可以实施操作模式400的各种不同方式中的一种方式。而且,对于所属技术领域的普通人员来说显而易见的是,操作模式400代表一般性的图解说明,其它的步骤可以加入或者已有的步骤可以去除、更改或重新安排而不会脱离操作模式400的范围。
参考图1B中所图解的方框图150,对操作模式400进行说明,并且因此参照其中所列举的元件。然而,应该了解,操作模式400并不受限于在方框图150中所陈述的元件。反而应该了解,可以由与在方框图150中所陈述的配置不同的对象检测系统来实施操作模式400。
操作模式400可以在步骤410,通过由控制器104接收来自用户的指令进行人工地初始化。或者,操作模式400可以通过输入装置106的检测等,响应收到的各种信号,在预定时段后进行初始化。此外,在步骤412,控制器104可以接收来自输入装置106的输入图像数据。控制器104可以接收图像数据的各种方式,已经在之前相对于图1A更详细地作了说明。在步骤414,控制器104可以运行对象检测模块114在由在步骤412接收到的图像数据所表示的图像中检测潜在的预定对象。更特别地,对象检测模块114可以编程,或者另外配置成在图像中检测预定的图像。因此,对象检测模块114可以处理图像来确定潜在的对象位于图像中的位置或区域。一方面,对象检测模块114可以工作来生成围绕潜在对象的方框或其它标识构件以在图像中标注它们的位置或区域。如步骤416所指示,对象检测模块114的结果可以输入到剪切模块154中。
在步骤418,剪切模块154可以剪切由对象检测模块114检测为潜在的预定对象的区域。此外,在步骤420,剪切模块可以把剪切的区域输入到空间滤波模块116中。剪切模块还可以把剪切的区域输入到图像旋转模块112中。在步骤422,图像旋转模块112可以旋转剪切的区域。如以上所述,图像旋转模块112可以在平面内的方向上,以顺时针或逆时针的方向,从剪切区域的原始方位以大约1至5°的增量旋转该剪切区域。因此,在步骤422,剪切的区域可以由图像旋转模块112旋转到第一个角度。
旋转的剪切区域可以输入到对象检测模块156中,如以上所述,该对象检测模块可以包括对象检测模块114或单独的对象检测模块。此外,在步骤424,对象检测模块156可以运行来确定各个旋转的剪切区域是否包含潜在的检测对象。对象检测模块156可以配置成从那些由对象检测模块156不能够检测到潜在的预定对象的剪切区域中去除方框或其它的标识构件。此外,在步骤426,对象检测模块156可以配置成把对象检测的结果输入到空间滤波器116中。
如以下所述,对象检测模块114、156可以在存储器110中存储各自的对象检测的结果,从而该结果可以由空间滤波模块116访问来处理图像。在这点上,在步骤420和426,取代于将结果输入到空间滤波模块116,可以输入到存储器110。
在步骤428,控制器104可以确定是否要获得在旋转的剪切区域中的附加的对象检测。此确定可以基于所期望的在图像中检测对象的精确度的级别。例如,为了以更高的精确度来检测所期望的对象,可以在规定的限度之内分析较多的旋转剪切区域。或者,为了加快对象检测的处理,可以分析较少的旋转剪切区域。控制器104可以用要分析的旋转剪切区域的数量来加以编程,并且因此可以基于该编程确定是否要获得附加的剪切区域旋转。此外,图像旋转增量的数量可以基于基础的对象检测模块114的特定的检测特征来确定,例如,其可以为1-5增量左右。
若控制器104确定需要附加的剪切区域旋转,则可以重复步骤422-428。此外,步骤422-428可以一直重复,直到控制器104确定已经处理了预定数量的旋转剪切区域。在那一时刻,在步骤428,其等于“否”条件,在步骤430,空间滤波器116可以为一个或更多的旋转的剪切区域处理对象检测模块114、156的结果。更特别地,空间滤波模块116可以比较各种结果来确定预定对象在原始图像中的位置,并且从检测结果中去除虚警或假阳性。空间滤波器116可以工作来作出此确定的各种方式的更详细的说明在此之前作了陈述。
在步骤432,来自空间滤波模块116的结果还可以输出到输出装置118。一方面,输出装置118可以包括显示装置,可以用于显示所检测到的预定对象的位置。另一方面,输出装置118可以包括另一配置成使用所检测到的预定对象的信息的装置或程序。
如步骤434所指示,操作模式400可以结束。对于操作模式400,结束条件可以与空闲模式相似,因为例如,当控制器104接收到另一个输入图像要处理时,操作模式400可以重新初始化。
在操作模式200、300和400中所图解说明的操作可以同应用程序、程序或子程序一样,包含在任何所期望的计算机可访问的介质中。此外,操作模式200、300和400可以通过计算机程序来具体实现,其能够以激活和未激活的多种形式存在。例如,它们能够以源代码、目标代码、可执行代码或其它格式的程序指令所组成的软件程序形式存在。任意以上的形式都能够以压缩或未压缩的形式,在计算机可读的介质上具体实现,计算机可读介质包括存储装置和信号。
典型的计算机可读存储装置包括常规的计算机系统的RAM、ROM、EPROM、EEPROM和磁盘或光盘或磁带等。不论采用载波调制与否的示例性计算机可读信号是驻留或运行该计算机程序的计算机系统能够访问的信号,其包括通过因特网或其它网络下载的信号。前面所述的具体例子包括用CD ROM或通过因特网下载来进行的程序分发。在某种意义上,作为抽象的实体,因特网本身即是计算机可读的介质。通常,计算机网络也是如此。因此,要了解,任何能够执行以上所述功能的电子装置都可以执行以上所列举的那些功能。
图5图解了计算机系统500,它可以用来执行以上所述的对象检测系统102和152的各种功能。在这方面,计算机系统500可以作为一个平台用来执行以上相对于对象检测系统102和152所述的一种或更多功能。
计算机系统500包括诸如处理器502的一个或更多的控制器。处理器502可以用于执行在操作模式200、300和400中所述的一些或者全部步骤。在这点上,处理器502可以包括控制器104。来自处理器502的命令和数据通过通信总线504进行通信。计算机系统500还包括诸如随机访问存储器(RAM)的主存储器506(例如对象检测系统102和152的程序代码在运行期间可以在主存储器中执行)和辅助存储器508。主存储器506可以包括例如以上所述的存储器110。
辅助存储器508包括例如一块或更多的硬盘驱动器510和/或代表软盘驱动器、磁带驱动器和光盘驱动器等的可移动的存储驱动器512,其上可以存储对象检测系统102和152的程序代码的拷贝。辅助存储器508可以包括输入装置106和/或输出装置118。此外,虽然没有示出,输入装置106可以包括单独的例如诸如照相机、扫描仪等的外围设备。输入装置106还可以包括诸如因特网的网络。
可移动的存储驱动器512以公知的方式读和/或写可移动的存储单元514。用户输入和输出装置可以包括键盘516、鼠标518和显示器520,显示器还可以包括输出装置118。显示适配器522可以与通信总线504和显示器520接口,可以从处理器502接收显示数据,并且把显示数据转换为显示器520的显示命令。此外,处理器502可以通过网络适配器524在例如因特网和局域网等的网络上进行通信。
对于所属技术领域的普通人员来说显而易见的是,在计算机系统500中可以加入或减去其它公知的电子元件。此外,计算机系统500可以包括用在数据中心中的机架内的系统板或系统刀片、常规的“白盒”服务器或计算装置等。图5中的一种或更多的组件还可以是可选择的(例如,用户输入装置、辅助存储器等)。
在此所说明和图解的是本发明的优选实施例连同其一些变化。在此所用的术语、说明和图表仅是以示例的方式进行陈述,并不意味着限制。所属技术领域的专业人员将会意识到,许多变化都可能落入意欲通过所附权利要求书和其等价物定义的本发明的精神和范围之内,其中,除非另外指明,所有的术语都是其最广的合理意义。
权利要求
1.一种在图像中检测预定对象的方法(200,300,400),所述方法(200,300,400)包括在图像中检测(212,314,414)潜在的预定对象;旋转(214,318,422)图像的至少一部分;确定(216,320,424)在旋转的至少一部分图像中是否检测到潜在的预定对象;和响应在旋转的至少一部分图像中是否检测到潜在的预定对象的确定结果,确定(218,326,430)该潜在的预定对象是否是预定对象的精确检测。
2.根据权利要求1的方法(200,300,400),其中确定(218,326,430)潜在的预定对象是否是预定对象的精确检测的步骤,包括将图像中潜在的预定对象和在旋转的至少一部分图像中检测到的潜在的预定对象的大小进行比较(326,430),所述方法进一步包括响应指示图像中潜在的预定对象与旋转的至少一部分图像中潜在的预定对象的大小基本上相似的比较,输出(328,432)潜在的预定对象是预定对象的精确检测的指示;和响应指示图像中潜在的预定对象与旋转的至少一部分图像中潜在的预定对象的大小不相似的比较,输出(328,432)潜在的预定对象是虚警的指示。
3.根据权利要求1的方法(200,300,400),进一步包括把图像的至少一部分旋转(318,422)到多个角度;检测(320,424)在多个旋转的至少一部分图像的一个或更多中是否检测到潜在的预定对象;和响应在多个旋转的至少一部分图像的一个或更多中是否检测到潜在的预定对象的检测,确定(326,430)潜在的预定对象是否是预定对象的精确检测。
4.根据权利要求1-3的任意之一的方法(200,300,400),进一步包括在包含潜在的预定对象的图像中剪切(418)一区域,其中旋转(422)图像的至少一部分的步骤包括旋转图像的剪切区域。
5.根据权利要求4的方法(200,300,400),其中确定(430)潜在的预定对象是否是预定对象的精确检测的步骤,进一步包括确定在旋转的图像的剪切区域中是否检测到潜在的预定对象,所述的方法进一步包括响应在旋转的图像的剪切区域中检测到潜在的预定对象,输出(432)潜在的预定对象是预定对象的精确检测的指示。
6.一种对象检测系统(102,152)包括配置成在图像中检测潜在的预定对象的对象检测模块(114);配置成旋转图像的至少一部分的图像旋转模块(112);配置成在旋转的图像的至少一部分中检测潜在的预定对象的所述对象检测模块(114);空间滤波模块(116),配置成比较来自图像和旋转的至少一部分图像的对象检测模块(114)的检测结果,以确定对象检测模块(114)检测到的潜在的预定对象是否是预定对象的精确检测。
7.根据权利要求6的对象检测系统(102,152),其中空间滤波模块(116)配置成,若在旋转的至少一部分图像中检测到潜在的预定对象,则输出对象检测模块(114)检测到的潜在的预定对象是预定对象的精确检测的确定结果。
8.根据权利要求6和7的任意之一的对象检测系统(102,152),其中空间滤波模块(116)配置成,若满足以下公式,则输出由对象检测模块(114)检测到的潜在的预定对象是预定对象的精确检测的指示sum=w1*v1+w2*v2+...+wn*vn,且sum>t,其中w1,w2,...,wn为权重,v1,v2,...,vn为通过对图像与旋转到多个角度的图像的至少一部分的检测结果之间进行比较所确定的一致性矢量,并且t是预定的阈值;和其中,若在图像和旋转到所述多个角度之一的至少一部分图像二者中都检测到潜在的预定对象,则一致性矢量v1,v2,...,vn的对于旋转到该多个角度之一的该至少一部分图像的检测结果的矢量分量vm,设置为1;否则,一致性矢量v1,v2,...,vn的该矢量分量vm设置为0。
9.一种嵌入了一个或更多计算机程序的计算机可读的存储介质,所述一个或更多的计算机程序实现在图像中检测对象的方法,所述一个或更多的计算机程序包括以下用途的指令集在图像中检测(212,314,414)潜在的预定对象;旋转(214,318,422)图像的至少一部分;检测(216,320,424)在旋转的至少一部分图像中是否检测到潜在的预定对象;响应在旋转的至少一部分图像中检测到潜在的预定对象,输出(328,432)在图像中检测到的潜在的预定对象是预定对象的精确检测的指示。
10.根据权利要求9的计算机可读的存储介质,所述一个或更多的计算机程序进一步包括以下用途的指令集把图像的至少一部分旋转(214,318,422)到多个角度;检测(216,320,424)在多个旋转的至少一部分图像的一个或更多中是否检测到潜在的预定对象;和响应在多个旋转的至少一部分图像的至少一个中检测到潜在的预定对象,输出(328,432)在图像中检测到的潜在的预定对象是预定对象的精确检测的指示。
全文摘要
一种在图像中检测预定的对象的方法(200,300,400),其包括在图像中检测(212,314,414)潜在的预定对象。在本方法中,旋转(214,318,422)图像的至少一部分,并且确定(216,320,424)在旋转的至少一部分图像中是否检测到潜在的预定对象。此外,响应在旋转的至少一部分图像中是否检测到潜在的预定对象的确定结果,确定(218,326,430)潜在的预定对象是否是预定对象的精确检测。
文档编号G06K9/00GK101052971SQ200580037899
公开日2007年10月10日 申请日期2005年11月4日 优先权日2004年11月5日
发明者H·罗 申请人:惠普开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1