用于图像扫描的系统和方法与流程

文档序号:11161173阅读:697来源:国知局
用于图像扫描的系统和方法与制造工艺

本申请涉及2014年8月26日递交的标题为“用于图像扫描的系统和方法”的第62/042,161号美国临时专利申请并且主张所述专利申请的优先权,所述专利申请的全部内容以引用的方式并入本文中。

技术领域

本发明大体上涉及电子装置。更确切地说,本发明涉及用于图像扫描的系统和方法。



背景技术:

在最近几十年中,电子装置的使用已变得很普遍。具体地说,电子技术中的进步已降低了越来越复杂且有用的电子装置的成本。成本降低和消费者需求已使电子装置的使用剧增,使得其在现代社会中几乎随处可见。由于电子装置的使用已推广开来,因此存在对电子装置的新的且改进的特征的需求。更具体而言,人们常常寻求执行新功能和/或更快、更有效或以更高质量执行功能的电子装置。

一些电子装置(例如,相机、视频摄像机、数码相机、蜂窝式电话、智能电话、计算机、电视机等)捕获和/或利用图像。举例来说,智能电话可以捕获和/或处理静态图像和/或视频图像。处理图像可能需要相对较大量的时间、存储器和能量资源。所需要的资源可能根据处理的复杂性而发生改变。

取决于平台实施一些复杂的处理任务可能是困难的。举例来说,移动平台(例如,智能电话、平板电脑、膝上型计算机等移动装置)可具有有限的处理、存储器和/或能量资源(例如,有限的电池寿命)。如从此论述可观察到,改进图像处理的系统和方法可为有益的。



技术实现要素:

描述了一种用于通过电子装置的图像扫描的方法。所述方法包括获得图像金字塔,所述图像金字塔包括用于帧的多个尺度层级和至少第一金字塔层级。所述方法还包括提供扫描窗口。所述方法进一步包括扫描在多个扫描窗口位置处的帧的多个尺度层级中的至少两个。扫描窗口位置的数目针对第一金字塔层级的至少两个尺度层级的每个尺度层级是相等的。所述方法可以包括基于扫描来检测对象。针对帧的至少两个尺度层级中的每一个通过电子装置的计算的特征可在于扫描窗口位置的数目乘以金字塔层级的数目。

所述方法可以包括确定用于至少两个尺度层级中的每一个的扫描阶跃。所述方法还可以包括扫描随后帧的至少两个尺度层级,其中扫描全部的扫描窗口位置的随后帧的量与较高尺度层级相比在较低尺度层级处较大。

所述方法可以包括在多个尺度层级中选择用于扫描帧的尺度层级的范围。可以仅扫描尺度层级范围内的尺度层级。所述方法还可以包括在随后帧的多个尺度层级之中选择尺度层级的第二范围以用于扫描随后的帧,其中扫描邻近的或非邻近的尺度层级。

所述方法可以包括确定用于至少两个尺度层级中的每一个的扫描阶跃。第一尺寸扫描阶跃可以与在用于扫描的尺度层级中的每一个的第一金字塔层级处的图像的第一尺寸成正比并且第二尺寸扫描阶跃可以与用于扫描的尺度层级中的每一个的第一金字塔层级处的图像的第二尺寸成正比。

在尺度层级处的一或多个额外的金字塔层级的第一尺寸扫描阶跃可以等于对应于在尺度层级的第一金字塔层级处的图像的第一尺寸扫描阶跃。用于在尺度层级处的一或多个额外的金字塔层级的第二尺寸扫描阶跃可以等于对应于在尺度层级的第一金字塔层级处的图像的第二尺寸扫描阶跃。

对应于尺度层级的一或多个额外的金字塔层级中的每一个的扫描窗口位置的数目可以小于或等于对应于尺度层级的第一金字塔层级的扫描窗口位置的数目。多个尺度层级可以是倍频程层级。

还描述一种用于图像扫描的电子装置。所述电子装置包括处理器和与所述处理器电子通信的存储器。所述电子装置还包括存储在存储器中的指令。所述指令是可执行的以获得图像金字塔,其包括用于帧的多个尺度层级和至少第一金字塔层级。所述指令也是可执行的以提供扫描窗口。所述指令是进一步可执行的以扫描在多个扫描窗口位置处的帧的多个尺度层级中的至少两个。多个扫描窗口位置在第一金字塔层级的至少两个尺度层级的每个尺度层级处是相等的。

还描述了一种用于图像扫描的设备。所述设备包括用于获得图像金字塔的装置,所述装置包括用于帧的多个尺度层级和至少第一金字塔层级。所述设备还包括用于提供扫描窗口的装置。所述设备进一步包括用于扫描在多个扫描窗口位置处的帧的多个尺度层级中的至少两个的装置。扫描窗口位置的数目针对第一金字塔层级的至少两个尺度层级的每个尺度层级是相等的。

还描述了一种用于图像扫描的计算机程序产品。所述计算机程序产品包括具有指令的非暂时性计算机可读媒体。所述指令包括用于使得电子装置获得图像金字塔的代码,其包括用于帧的多个尺度层级和至少第一金字塔层级。所述指令还包括用于使得所述电子装置提供扫描窗口的代码。所述指令进一步包括用于使得电子装置在多个扫描窗口位置处扫描帧的多个尺度层级中的至少两个的代码。扫描窗口位置的数目针对第一金字塔层级的至少两个尺度层级的每个尺度层级是相等的。

附图说明

图1为说明用于跟踪和检测目标对象的电子装置的框图;

图2为说明对象跟踪和检测模块的框图;

图3为说明用于执行基于运动跟踪和对象检测的方法的流程图;

图4为说明用于执行基于运动的跟踪的方法的流程图;

图5为说明基于正向反向误差估计基于运动的跟踪中的跟踪误差的方法的流程图;

图6为说明用于执行对象检测和跟踪的方法的流程图;

图7A为说明可与本发明系统和方法一起使用的具有不同窗口大小的图像窗口的框图;

图7B为说明可与本发明的系统和方法一起使用的若干实例图像和窗口的图式;

图8为说明对象跟踪和检测模块的另一可能配置的框图;

图9为说明平滑模块的框图;

图10为说明用于平滑运动跟踪结果中的抖动的方法的流程图;

图11为说明高斯金字塔的一部分的一个实例的图式;

图12为说明滑动窗口和扫描阶跃窗口的实例的图式;

图13为说明根据本文中所公开的系统和方法的一些配置的跨越尺度层级的扫描阶跃的实例的图式;

图14为说明其中可以实施用于图像扫描的系统和方法的电子装置的一个实例的框图;

图15为说明用于图像扫描的方法的一个配置的流程图;

图16为说明根据本文中所公开的系统和方法的一些配置的图像扫描的一个实例的图式;

图17A为说明根据本文中所公开的系统和方法的一些配置的扫描窗口的数目相较于图像大小的图;

图17B为说明其中扫描全部可能的窗口位置的方法的实例与其中扫描的窗口位置的数目是基于尺度层级均衡的本文中所公开的系统和方法的方法的实例相比的图;

图17C为说明其中扫描全部可能的窗口位置的方法的实例与其中扫描的窗口位置的数目是基于尺度层级均衡的本文中所公开的系统和方法的方法的另一实例相比的图;并且

图18说明可以包括于电子装置和/或无线装置内的经配置以实施本文中所公开的系统和方法的各种配置的某些组件。

具体实施方式

使用来自移动平台(例如,平板电脑、手机)的相机跟踪图像内或所述图像内用户定义关注区域内的对象可能是困难的。可能需要实时性能管理(约30帧每秒(fps))。一些配置可组合基于光流跟踪器与基于图像内容检测器的输出以获得稳定性跟踪。然而,移动平台可能难以胜任现存算法的计算以达成实时性能管理。

本发明的系统和方法可实施以下技术中的一或多个以改进跟踪和检测算法的速度:(1)在每一帧处使用可能的检测(例如,扫描)窗口的一部分,(例如,随机选择窗口位置或利用扫描模式);(2)仅选择有限范围的空间尺度(例如,仅可供使用的空间标尺的子集)用于尺度接近于对应于先前检测到的目标大小的尺度的对象检测;(3)基于先前跟踪的置信度值,确定是在部分图像中或是在整个图像中搜寻对象;(4)基于先前跟踪结果动态调节检测窗口的数目;(5)依序执行跟踪和检测(例如,首先应用跟踪器,因为它在计算上不太昂贵);(6)仅当跟踪器的置信度低于阈值时运行对象检测器;并且(7)设置扫描跃阶的数目与图像位置的总数成正比。本发明方法和系统的优势中的一个在于减少用于跟踪和/或检测目标对象的计算。

如本文中所使用,术语“跟踪”及其变体是指基于运动的过程而不识别特定对象。举例来说,对象跟踪和检测模块可逐帧跟踪运动,并基于电子装置的移动(例如,如果相机水平移动)或对象的逐帧移动确定目标对象的位置、大小或帧。术语“检测”及其变体是指(例如)通过比较帧的一部分与参考图像来尝试识别目标对象的过程。举例来说,对象跟踪和检测模块可比较所捕获帧的部分与(目标对象的)参考图像以尝试识别目标对象。在一个实例中,当可不再跟踪目标时(例如,如果对象落于视野外部)可使用检测。下文更详细地解释执行基于运动跟踪和对象检测的系统和方法。

图1为说明用于跟踪和检测目标对象的电子装置102的框图。电子装置102也可被称作无线通信装置、移动装置、移动台、订户站、客户端、客户端站、用户设备(UE)、远程站、存取终端、移动终端、终端、用户终端、订户单元等。电子装置的实例包括膝上型计算机或桌面型计算机、蜂窝式电话、智能电话、无线调制解调器、电子阅读器、平板计算机装置、游戏系统、机器人、飞机、无人驾驶的飞行器(UAV)、汽车等。这些装置中的一些可以根据一或多种行业标准操作。

举例来说,例如智能电话或平板计算机等电子装置102可以包括相机。相机可以包括图像传感器114和将位于光学系统118的视野内的对象的图像聚焦于图像传感器114上的光学系统118(例如,透镜)。电子装置102还可以包括相机软件应用程序和显示屏。当执行相机应用程序时,可由图像传感器114记录位于光学系统118的视野内的对象的图像。由图像传感器114所记录的图像可显示于显示屏上。可以相对较高的帧速率快速连续显示这些图像,使得在任何给定时刻处,位于光学系统118的视野内的对象显示于显示屏上。尽管在所捕获视频帧方面描述本发明系统和方法,但本文中所论述的技术可用于任何数字图像上。因此,术语视频帧和数字图像在本文中可互换使用。

相机应用程序的用户接口120可准许跟踪显示于显示屏上的一或多个对象。电子装置的用户可被准许选择待跟踪的对象。另外,所选择对象可用作稍后检测对象的参考。额外地或替代地,待跟踪对象(例如,面部、眼睛、人员、形状、箱子等)可以预先确定和/或可以符合于模型。

在一个配置中,显示器为从物理触摸(例如,通过手指、触控笔或其它工具)接收输入的触摸屏116。触摸屏116可接收定义待跟踪目标对象的触摸输入。举例来说,如果电子装置102正捕获包含感兴趣动物的自然场景,那么(必要时)用户可围绕动物绘制指示希望跟踪或检测动物的限界框。可以任何合适方式选择目标对象。举例来说,面部辨识、行人辨识等可用于选择待跟踪、检测或两者的目标对象。在一个配置中,可跟踪多个对象。用户接口120可允许用户与对象跟踪和检测模块104互动(例如)以选择(即,定义)一或多个目标对象。

电子装置102可包括用于跟踪所选择对象和/或在视频帧中检测对象的对象跟踪和检测模块104。对象跟踪和检测模块104可包括用于跟踪一或多个对象的运动跟踪器106。运动跟踪器106可基于运动以用于逐帧跟踪图像(例如,视频帧)上的点的运动以估计目标对象在先前视频帧与当前视频帧之间的位置和/或位置的改变。

对象跟踪和检测模块104还可以包括用于检测视频帧上的对象的对象检测器108。对象检测器108可使用对象模型而非基于运动模型以通过比较当前视频帧的全部或一部分与所选择对象或(例如,视频帧序列中)所捕获先前视频帧112的部分来检测对象。对象检测器108可用于检测视频帧内的多个对象。在一些配置中,对象检测器108可扫描一或多个帧和/或图像以便检测特定对象。举例来说,对象检测器108可根据结合图11到17中的一或多个所描述的方法扫描一或多个帧。

对象跟踪和检测模块104还可以包括存储缓冲器110。存储缓冲器110可存储一或多个所捕获帧和与所捕获视频帧相关联的数据。在一个实例中,存储缓冲器110可存储先前所捕获视频帧112。对象跟踪和检测模块104可使用从存储缓冲器110所提供的关于所捕获先前视频帧112的数据来执行基于运动的跟踪和/或对象检测。可经由来自存储缓冲器110的反馈将数据提供到运动跟踪器106或对象检测器108以便修整基于运动的跟踪和对象检测以更准确地跟踪和/或检测目标对象。举例来说,存储缓冲器110可将位置和窗口大小数据提供到运动跟踪器106和对象检测器108以为运动跟踪器106和对象检测器108提供当跟踪或检测对象时可用于更准确地精确指出对象的位置和大小的一或多个参数。

如上文陈述,电子装置102可执行基于运动跟踪。可使用多种方法执行基于运动的跟踪。在一个实例中,通过中值流方法执行跟踪,其中运动跟踪器接受一对图像It、It+1(例如,视频帧)和限界框βt并输出限界框βt+1。可在限界框βt内的矩形网格上初始化点集合并追踪所述点以在It与It+1之间产生稀疏运动流。可估计点预测品质并为每个点指派误差。可滤除最差预测的一部分(例如,50%)同时将剩余预测用于估计整个限界框的移位。运动跟踪器106可在由电子装置102所捕获的每一视频帧上执行基于运动的跟踪。以类似方法,可通过计算一或多个梯度(例如,x和y梯度)并使用一对帧之间的差异来计算时间梯度且使用多个梯度值以准确跟踪当前视频帧内的目标对象来执行基于运动的跟踪。下文提供关于基于运动的跟踪的进一步的细节。

当执行基于运动的跟踪时,运动跟踪器106可基于运动跟踪方法的所计算或所估计准确性,确定跟踪置信度值。在一些配置中,跟踪置信度值可为对应于目标对象落于当前视频帧内或视频帧的所定义窗口内的可能性或机率的0与1之间的实数。可将跟踪置信度值与跟踪阈值进行比较。如果跟踪置信度值大于跟踪阈值,那么发现目标对象位于当前视频帧内的可能性可较高。替代性地,如果跟踪置信度值小于或等于跟踪阈值,那么可能性可较低或不确定是否在当前视频帧内发现目标对象。可使用用于确定跟踪置信度值的各种方法。在一个配置中,通过计算当前视频帧中的所跟踪窗口(例如,跟踪贴片窗口)与来自先前所捕获视频帧的先前存储图像贴片之间的归一化互相关(NCC)来确定跟踪置信度值。下文提供关于确定跟踪置信度值的进一步细节。

电子装置102也可执行对象检测。可使用多种方法执行对象检测。在一个配置中,使用滑动窗口方法执行对象检测,其中检视视频帧内的窗口的多个子集的内容以确定是否发现目标对象在当前视频帧中或当前视频帧的特定窗口或窗口子集内。额外地或替代地,可以使用扫描跃阶方法,其中可以跳过帧或图像中的一或可能多个扫描窗口。因此,可在视频帧中搜寻所有可能窗口位置和大小的全部或子集。举例来说,每一窗口可对应于数据像素且对象检测器108可使用数据像素执行一或多个计算以确定目标对象在特定窗口或子窗口内的置信级(例如,二进制指标)。基于与一或多个窗口相关联的置信级,可获得当前视频帧的检测器置信度值。另外,额外技术可用于增加对象检测的准确性或效率。下文解释这些技术中的一些。

在一些配置中,运动跟踪器106和对象检测器108可依序而非并行操作。举例来说,电子装置102可对所选择对象(例如,目标对象)执行基于运动的跟踪并基于所跟踪参数依序执行所选择对象的对象检测。在一个配置中,电子装置102可对当前视频帧执行基于运动的跟踪。电子装置102可接着基于所跟踪参数对当前帧执行对象检测。在一个配置中,所跟踪参数可以基于置信度值与阈值之间的比较。举例来说,如果跟踪置信度值低于跟踪阈值,那么电子装置102可执行对象检测。替代地,如果跟踪置信度值高于跟踪阈值,那么电子装置102可跳过当前视频帧的对象检测并基于当前视频帧的运动跟踪结果继续对下一视频帧执行基于运动的跟踪。换句话说,可仅在基于运动的跟踪并非极好(例如,跟踪置信度值低于跟踪阈值)时执行对象检测。当考虑是否执行和/或如何执行对象检测时可使用其它所跟踪参数。所跟踪参数的实例可包含目标对象区域、窗口位置、窗口大小、尺度层级、目标大小、跟踪和/或检测置信度值或可用于促进有效跟踪和/或检测目标对象的其它参数。

依序执行基于运动的跟踪和基于所跟踪参数的对象检测可使得电子装置102能够在无需执行大量计算的情况下跟踪和/或检测视频帧内的目标对象。具体来说,因为相比对象检测,基于运动的跟踪可为不太计算密集型,所以电子装置102可跳过执行对象检测,其中基于运动的跟踪可用于准确跟踪当前视频帧内的目标对象。举例来说,如果电子装置102确定跟踪置信度值超出特定目标阈值,那么电子装置102可确定无需对当前视频帧进行对象检测以准确确定当前视频帧内的目标对象的位置或存在。另外,因为对象检测在许多状况下可以是有益的,所以电子装置102可确定对象检测可用于更准确检测目标对象的情况或在基于运动的跟踪不充分的情况下基于与跟踪阈值的比较执行对象检测。

在一些配置中,基于运动的跟踪的结果和/或由存储缓冲器110所提供的额外信息可用于窄化或修整执行对象检测的过程。举例来说,在无法使用基于运动的跟踪方法准确跟踪目标对象的情况下,电子装置102仍可估计或获得关于位置、窗口尺度或与目标对象相关联的其它所跟踪参数的信息,所述信息可在对象检测期间用以使用比并未经由基于运动的跟踪所提供参数的情况少的计算能力来更准确地检测对象。因此,即使在基于运动的跟踪并不提供超出跟踪阈值的跟踪置信度值的情况下,当随后执行对象检测时可使用基于运动的跟踪的结果。

图2为说明对象跟踪和检测模块204的框图。对象跟踪和检测模块204可实施于电子或无线装置内。对象跟踪和检测模块204可以包括具有光流模块226和跟踪置信度值228的运动跟踪器206。对象跟踪和检测模块204还可以包括具有扫描仪定位器230、扫描仪定标器236、分类器238和检测置信度值240的对象检测器208。存储缓冲器210可存储可提供到运动跟踪器206和对象检测器208的与所捕获先前视频帧212相关联的数据。对象跟踪和检测模块204、运动跟踪器206、对象检测器208和存储缓冲器210可为上文结合图1所描述的对象跟踪和检测模块104、运动跟踪器106、对象检测器108和存储缓冲器110的配置。

运动跟踪器206可用于对当前视频帧(N)224执行基于运动的跟踪。举例来说,可以接收先前视频帧(N-1)222和当前视频帧(N)224(例如,通过电子装置)。先前视频帧(N-l)222可在视频帧序列中紧接着先于当前视频帧(N)224。可由对象跟踪和检测模块204获得并处理额外视频帧。可将先前视频帧(N-l)222提供到运动跟踪器206。另外,存储缓冲器210可存储与先前视频帧(N-l)222(在本文中被称作所捕获先前视频帧212)相关联的数据。在一些配置中,存储缓冲器210可直接地从电子装置中(例如,从相机中)获得关于先前视频帧(N-1)222的信息。存储缓冲器210也可从融合模块260获得可规定先前视频帧(N-l)222中的对象跟踪和/或检测位置的关于先前视频帧(N-l)222的跟踪结果。关于先前视频帧(N-l)222或其它先前所捕获视频帧的此信息可存储于存储缓冲器210中。

运动跟踪器206可随后接收视频帧序列中的当前视频帧(N)224。运动跟踪器206可比较当前视频帧(N)224与先前视频帧(N-l)222(例如,使用从存储缓冲器210中提供的信息)。运动跟踪器206可使用光流模块226跟踪对象在当前视频帧(N)224上的运动。光流模块226可以包括用于对当前视频帧(N)224上的对象执行基于运动的跟踪的硬件和/或软件。通过比较先前视频帧(N-l)222与当前视频帧(N)224,运动跟踪器206可确定与目标对象处于当前视频帧(N)224中的可能性相关联的跟踪置信度值228。在一个实例中,跟踪置信度值为基于目标对象在当前视频帧(N)224内或当前视频帧(N)224内的窗口内的确定性百分比的实数(例如,0与1之间)。

对象检测器208可用于检测当前视频帧(N)224上的对象。举例来说,对象检测器208可接收视频帧的序列中的当前视频帧(N)224。对象检测器208可基于所跟踪参数对当前视频帧(N)224执行对象检测。所跟踪参数可包括对应于准确跟踪目标对象的可能性的跟踪置信度值228。更确切地说,所跟踪参数可以包括跟踪置信度值228与跟踪阈值250的比较。所跟踪参数还可以包括从存储缓冲器210中提供的信息。当检测对象时可使用的所跟踪参数的一些实例包括区域、窗口位置、窗口大小或当执行对象检测时可由对象检测器208用作参数的其它信息。

对象检测器208可以包括扫描仪定位器230。扫描仪定位器230可以包括窗口位置选择器232和/或随机化器234。窗口位置选择器232可在视频帧内选择多个窗口。举例来说,视频帧可以包括多个窗口(例如,扫描窗口),每个具有相关联的位置和大小。在一个配置中,每个视频帧划分成多个(例如,大约10,000个)重叠窗口,每个窗口包括视频帧中的总像素的一部分。替代地,可存在任何合适数目个窗口且其可并不重叠。在一些配置中,窗口位置选择器232可选择扫描窗口的位置,其中扫描窗口的数目在一或多个金字塔层级处针对每个图像尺度(例如,尺度层级)是相等的。额外地或替代地,所选择扫描窗口可遵循特定扫描模式(例如,滑动窗口、扫描跃阶等)。举例来说,扫描窗口可遵循如结合图12、14和16中的一或多个所描述的扫描跃阶模式。扫描仪定位器230内的窗口位置选择器232可选择在其中尝试识别目标对象的窗口位置。

随机化器234可随机选择具有变化大小和位置的窗口以用于检测对象。在一些配置中,随机化器234在视频帧内随机选择窗口。替代地,随机化器234可基于一或多个因数更精确地选择窗口。举例来说,随机化器234可基于区域、大小或对象最可能定位的一般位置来限制窗口选择。可经由存储缓冲器210获得此信息或可经由虽然并不足够准确以完全依赖但可提供当执行对象检测时有用的信息的基于运动的跟踪获得此信息。因此,虽然随机化器234可随机选择多个窗口以进行搜寻,但可基于提供到对象检测器208的信息窄化窗口选择,且因此不完全随机。应注意随机化器234可以是任选的和/或在一些配置中可能不包括于对象检测器208中。

对象检测器208还可包括可用于绘制或选择具有一定大小的窗口的扫描仪定标器236。当检测对象或比较窗口选择与原始图像以检测图像是否在特定窗口内时,可由扫描仪定位器230使用窗口大小以窄化窗口大小。扫描仪定标器236可最初在定义对象时选择某些大小的一或多个窗口,或替代地,基于从存储缓冲器210中提供的信息抽取某些大小的一或多个窗口。额外地或替代地,扫描仪定标器236可将图像按比例缩放到一或多个不同大小。举例来说,在一些配置中,扫描仪定标器236可产生图像金字塔,其中图像金字塔中的每个图像可以是基础图像(例如,帧)的特定尺度。在一些配置中,举例来说,可以仅利用单个扫描窗口大小,而所述图像(例如,帧)可以缩放到不同大小。结合图11到16给出更多细节。

分类器238可用于确定是否发现目标对象中的一些或全部在特定窗口中。在一些配置中,分类器238可产生用于每一窗口的二进制值以指示是否检测到目标对象在特定窗口或子窗口内。可针对由对象检测器208所搜寻的每一窗口执行此分类(例如,二进制分类)。具体来说,对于检测到对象的每一窗口,分类器238可产生二进制1且对于未检测到对象的每一窗口,其可产生二进制0。基于所述数目或1和0的组合,对象检测器208可确定指示目标对象存在于当前视频帧(N)224内的可能性的检测置信度值240。在一些配置中,检测置信度值240为指示已准确检测对象的百分比或概率的0与1之间的实数。

对象检测器208可根据多种所跟踪参数(包括区域、目标大小、窗口大小、尺度层级、窗口位置和/或一或多个置信度值)执行对象检测。一旦搜寻到视频帧的窗口或窗口子集且对象检测器208获得每一所搜寻窗口的二进制值,那么对象检测器208可确定窗口大小以及当前视频帧上具有最高置信度的位置或区域。此位置和窗口大小可用于后续跟踪和检测以更准确地跟踪和/或检测目标对象。

如上文陈述,可由对象检测器208使用各种方法来检测目标对象。在一个配置中,检测目标对象可包括在每一可能窗口位置和每一可能窗口大小处对窗口执行二进制分类。然而,搜寻每一可能窗口为资源密集型操作。因此,在另一配置中,对象检测器可搜寻窗口位置和大小的子集而非视频帧中的所有可能窗口。举例来说,对象检测器208可搜寻所有可能窗口的1%。随后,如果检测不成功(例如,检测置信度值240低于检测阈值252),那么可在后续所捕获帧中搜寻较高百分比的窗口位置(例如,2%)。所搜寻窗口位置的百分比阶跃可以是均匀的、不均匀的、慢的或快的,即,连续帧可具有1%、2%、3%、4%或1%、2%、4%、8%。在一个配置中,响应于高检测置信度值所搜寻帧的百分比可以设置的非常高(例如,80%、90%、100%),即,以确保目标对象处于下一个视频帧中。举例来说,响应于检测和跟踪置信度值超出检测和跟踪阈值,所搜寻帧的百分比可跳转到至少80%。替代地,百分比可跳转到60%、70%、90%等。另外,可使用用于检测和跟踪阈值的任何合适值(例如,0.6、0.65、0.7、0.75、0.8、0.85等)。此外,基于随机化器(随机数产生器)可随机确定所搜寻窗口的百分比,例如,可在所捕获帧中搜寻在1%与15%之间的随机窗口百分比。通过搜寻所有窗口位置的子集,对象检测可使用电子装置中的较少资源。

此外,本发明系统和方法可针对每个位置搜寻窗口大小的子集。每个窗口大小可具有特定尺寸和/或包括一定数目的像素。举例来说,可能存在20个可能的窗口大小。在一些配置中,并非搜寻全部20个窗口大小,可以在每个窗口位置处搜寻窗口大小的子集。替代地,单个窗口大小可用于扫描一或多个图像。举例来说,一个窗口大小可以用于扫描缩放到不同大小(例如,尺度、尺度层级、金字塔层级等)的图像(例如,帧)。本文中所公开的系统和方法可以应用于任一方法中。

本发明系统和方法也可使用来自存储缓冲器210的反馈以修整所搜寻窗口位置和/或大小。换句话说,成功检测和/或跟踪到目标对象的最后所捕获视频帧的位置和大小可用作用于搜寻当前视频帧(N)224的开始点。举例来说,如果在最近视频帧中检测并跟踪到目标对象(即,最近所捕获视频帧的检测和跟踪置信度值256高于检测和跟踪阈值),那么扫描仪定位器可在与最近帧相关联的位置和大小处开始搜寻当前所捕获帧。举例来说,在目标对象移动出光学系统的视野或消失于远处的情况下,目标对象可很可能以与当目标对象离开光学系统的视野或消失于远处时相同的大小重新出现。因此,当执行对象检测时可预测大小或大小范围以用于检测后续视频帧中的目标对象。

此外,所捕获视频帧(N)224中的所搜寻窗口位置和窗口大小的搜寻范围可限于类似于与最近视频帧(例如,先前视频帧(N-l)222)中的目标对象相关联的窗口位置和窗口大小的那些范围。如本文所使用,术语“搜寻范围”是指当在视频帧中检测和/或跟踪目标对象时可以利用的候选窗口位置、候选窗口大小和/或候选图像尺度(例如,尺度层级)的集合。举例来说,可基于发现目标对象在最近视频帧中的位置从当前视频帧(N)224的一部分内选择所搜寻窗口位置的子集(例如,象限中的一者或当前视频帧(N)224的半边)。换句话说,搜寻空间可限于最后跟踪或检测到目标对象处附近。类似地,针对每个窗口位置搜寻的图像的尺度(和/或帧的大小)可以是基于所述图像的尺度(和/或窗口的大小)有限的,其中在最近视频帧中发现目标对象。举例来说,如果使用尺度层级8在最近帧中检测到对象,那么对于当前视频帧(N)224,扫描仪定标器236可仅选择加上或减去1的图像尺度层级8,即,尺度层级7到9。此情况可进一步消除低概率搜寻并增加对象检测效率。替代地,如果最近(非当前)视频帧并未检测到目标对象(即,最近视频帧的检测和跟踪置信度值256低于检测和跟踪阈值),那么对象检测器208可扩展所搜寻的搜寻空间(例如,图像尺度和/或窗口位置),例如,更宽范围的图像或整个图像可经受搜寻。

对象跟踪和检测模块204可包括用于合并多个窗口以形成单个窗口的融合模块260。最初存在两个置信度值:来自对象检测器208的检测置信度值240和来自运动跟踪器206的跟踪置信度值228。融合模块260可比较两个置信度值和/或组合两个置信度值(例如,选取较大的一个)到检测和跟踪置信度值256中。检测和跟踪置信度值256可指示是否在视频帧上识别出目标对象。在一个配置中,检测和跟踪置信度值256可为介于0与1之间的实数,其中0指示在特定视频帧中识别出目标对象的最低可能置信度且1指示在特定视频帧中识别出目标对象的最高可能置信度。换句话说,检测和跟踪置信度值256可充当发现目标对象的整个可能性指示。另外,检测和跟踪置信度值256可以是用于确定图像尺度、窗口位置、窗口大小或窗口的百分比的参数以在下一个视频帧中进行搜寻。融合模块260可用于将关于当前视频帧(N)224的信息提供到存储缓冲器210。在一个实例中,融合模块260可将关于所跟踪窗口242(例如,窗口位置244、窗口大小246等)和检测和跟踪置信度值256的信息提供到存储缓冲器210。融合模块260可使用来自运动跟踪器206和对象检测器208的跟踪结果(例如,限界框)以形成经组合跟踪结果(例如,限界框)并计算检测和跟踪置信度值256。

存储缓冲器210可存储与先前视频帧(N-l)222、当前视频帧(N)224或其它所捕获视频帧相关联的一或多个值。在一个配置中,存储缓冲器210存储可以包括对应于先前视频帧(N-l)222的信息的所捕获先前视频帧212。所捕获先前视频帧212可以包括关于一或多个窗口242的信息,包括位置244、窗口大小246和每一窗口242的二进制决策248(例如,来自分类器238)。额外地或替代地,所捕获的先前视频帧212可以包括关于其中对象是最后检测和/或跟踪的图像尺度(例如,尺度层级)的信息。所捕获先前视频帧212还可以包括跟踪阈值250、检测阈值252和检测和跟踪阈值254。可将跟踪阈值250提供到对象跟踪和检测模块上的运动跟踪器206或电路系统(例如,置信级比较器258)以确定跟踪置信级是否大于跟踪阈值250。可将检测阈值252提供到对象跟踪和检测模块204上的对象检测器208或其它电路系统以确定检测置信度值240是否大于检测阈值252。检测和跟踪阈值254可为基于跟踪阈值250和检测阈值252的经组合值。可将检测和跟踪阈值254与检测和跟踪置信度值256进行比较以确定基于运动的跟踪和对象检测的经组合置信度值。阈值中的每一者可以是基于目标对象位于视频帧内的可能性。对象跟踪和检测模块204可对当前视频帧(N)224执行基于运动的跟踪和/或检测直到获得特定检测和跟踪置信度值256为止。另外,可对多个视频帧序列中的每一视频帧执行基于运动的跟踪和对象检测。

执行基于运动的跟踪和对象检测可包括依序执行基于运动的跟踪接着基于所跟踪参数执行对象检测。具体地说,本发明系统和方法可实施两步跟踪和检测方法。由于基于运动的跟踪是基于场景的相对运动而非如对象检测所使用的实际对象识别,因此相比执行对象检测,基于运动的跟踪在电子装置中可以是不太资源密集型的。因此,使用运动跟踪器206而非对象检测器208可以是更有效的,其中可无需也执行对象检测来准确地跟踪目标对象。

因此,在缺乏运动跟踪器206的情况下(即,依序而非并行执行运动跟踪和对象检测(如果执行)),对象跟踪和检测模块204仅使用对象检测器208而非并行使用运动跟踪器206与对象检测器208。对于其上执行跟踪的每一视频帧,运动跟踪器206可产生可为指示目标对象位于当前视频帧(N)224中的可能性的介于0与1之间的实数的跟踪置信度值228。

在两步跟踪和检测方法的一个配置中,运动跟踪器206可首先对当前视频帧(N)224执行基于运动的跟踪。运动跟踪器206可基于基于运动的跟踪过程确定跟踪置信度值228。使用跟踪置信度值228和由存储缓冲器210所提供的跟踪阈值250,对象跟踪和检测模块204内的电路系统(例如,置信级比较器258)可确定跟踪置信度值228是否超出跟踪阈值250。如果跟踪置信度值228大于跟踪阈值250,那么对象跟踪和检测模块204可跳过执行对象检测并将跟踪结果提供到融合模块260以产生输出262。输出262可以包括目标对象在当前视频帧(N)224内的指示。另外,输出262可以包括关于目标对象的额外信息。

如果跟踪置信度值228并不超出跟踪阈值250,那么对象检测器208可随后对当前视频帧(N)224执行对象检测。可对当前视频帧(N)224内的窗口的全部或子集执行对象检测。对象检测器208也可基于基于运动的跟踪结果和/或从存储缓冲器210所提供的信息来选择窗口、窗口大小或其它检测标准的子集。可基于提供到对象检测器208的一或多个所跟踪参数来使用或多或少稳定性过程执行对象检测。对象检测器208可确定检测置信度值240并比较检测置信度值240与检测阈值252。如果检测置信度值240高于检测阈值252,那么对象检测器208可将检测结果提供到融合模块260以产生输出262。输出可以包括目标对象在当前视频帧(N)224内的指示和/或包括关于所检测对象的额外信息。

替代地,如果检测置信度值240小于或等于检测阈值252,那么对象检测器208可使用较稳定性方法再次执行对象检测(例如,搜寻当前视频帧(N)224内的较大数目的窗口)。对象检测器208可重复对象检测过程直到获得令人满意的检测置信度值240为止。一旦获得令人满意的检测置信度值240使得识别出当前视频帧内的目标对象,则对象跟踪和检测模块204可用于对下一视频帧执行跟踪和检测。

如图2中所说明,所说明的组件中的一或多个可以任选地通过处理器264实施。举例来说,对象跟踪和检测模块204可通过处理器264实施。在一些配置中,不同处理器可用于实施不同组件(例如,一个处理器可实施运动跟踪器206,另一处理器可用于实施对象检测器208而又一处理器可用于实施存储缓冲器210)。

图3为说明用于执行基于运动的跟踪和对象检测的方法300的流程图。可通过电子装置102(例如,对象跟踪和检测模块104)实施方法300。电子装置102可302通过比较先前视频帧(N-l)222与当前视频帧(N)224对当前视频帧(N)224执行基于运动的跟踪。可使用通过跟踪图像对之间的点的中值流方法来执行跟踪对象。也可使用基于运动的跟踪的其它方法。另外,可使用经由存储缓冲器110所提供的关于所捕获先前视频帧112的信息来对当前视频帧(N)224执行基于运动的跟踪。

电子装置102可确定304跟踪置信度值228。跟踪置信度值228可指示已准确跟踪目标对象的可能性或确定性。电子装置102可确定306跟踪置信度值228是否大于跟踪阈值250。如果跟踪置信度值228大于跟踪阈值250,那么电子装置102可308对下一视频帧执行基于运动的跟踪。另外,电子装置102可基于基于运动的跟踪的结果来跳过对当前视频帧执行对象检测。换句话说,可仅当运动跟踪并非极好(即,如果跟踪置信度值不超过跟踪阈值)时对当前视频帧执行对象检测。然而,如果跟踪置信度值228不超过跟踪阈值250,那么电子装置102可310对当前视频帧(N)224执行对象检测。额外地或替代地,可以在下一个视频帧上执行对象检测。举例来说,如果跟踪置信度值228并不大于跟踪阈值,那么可以在下一个视频帧上执行对象检测(而不是例如在当前视频帧224上执行对象检测)。电子装置102可在基于运动的跟踪后依序执行对象检测。在一些配置中,可通过变化的稳定性多次执行对象检测以获得较高检测置信度值240。

图4为说明用于执行基于运动的跟踪的方法400的流程图。可通过电子装置102(例如,对象跟踪和检测模块104)实施方法400。电子装置102可402使用限界框识别目标对象。可使用触摸屏116或选择感兴趣对象的其它输入方法手动地执行402对象识别。可以类似方式识别多个对象。另外,其它输入方法可用于识别待跟踪对象。在一个实例中,通过围绕目标对象绘制限界框来手动地识别对象。

电子装置102可初始化404限界框内的网格上的点。网格上的点可遍及限界框均匀地间隔开。另外,可跟踪406两个图像(例如,先前视频帧(N-l)222与当前视频帧(N)224)之间的网格上的点。在一个实例中,由在图像之间产生稀疏运动流的Lucas-Kanade跟踪器来跟踪点。电子装置102可估计408两个图像(例如,先前视频帧(N-l)222与当前视频帧(N)224)之间的跟踪误差。估计408跟踪误差可包括为跟踪点的每一点指派误差值。另外,可使用多种方法执行估计408跟踪误差,包括(例如)正向反向误差、归一化互相关(NCC)和平方差总和。所估计跟踪误差可用于获得跟踪置信度值228和最终确定目标对象处于当前视频帧(N)224中的可能性。在一个配置中,可通过计算当前视频帧(N)224与先前视频帧(N-l)222中的所跟踪窗口之间的归一化互相关(NCC)来获得跟踪置信度值228。也可使用额外技术估计跟踪误差,包括下文结合图5更详细描述的正向反向误差估计。另外,电子装置102可滤除410外围点预测。举例来说,电子装置可滤除最坏预测的50%。剩余预测可用于估计限界框的移位。

电子装置102可更新412限界框。可执行更新412限界框使得经更新限界框变成用于下一视频帧的新限界框。可接着针对下一视频帧重复基于运动的跟踪过程,或者如果跟踪置信度值小于或等于跟踪阈值250,那么对于下一视频帧可中断基于运动的跟踪过程直到可准确跟踪目标对象为止。在当前视频帧(N)224的基于运动的跟踪并不提供令人满意结果的一些配置中,电子装置可对当前视频帧(N)224执行对象检测以在定位目标对象时获得较高置信级。在基于运动的跟踪无法产生令人满意的结果的一些配置中(例如,当目标对象移动出视频帧范围时),可对任何后续视频帧执行对象检测直到检测到目标对象为止。

图5为说明基于正向反向误差估计的基于运动的跟踪中的跟踪误差的方法500的流程图。可通过电子装置102(例如,对象跟踪和检测模块104)实施方法500。在一些配置中,电子装置102可计算所跟踪窗口之间的归一化互相关(NCC)。归一化互相关(NCC)可用于确定跟踪置信度值228。电子装置102也可使用与归一化互相关(NCC)互补的各种跟踪误差估计技术(例如,正向反向误差、平方差总和)。在使用正向反向误差估计的实例中,电子装置102可在先前视频帧(N-l)222与当前视频帧(N)224之间执行502正向跟踪以确定正向轨迹。正向跟踪可包括跟踪向前k步的图像。所得正向轨迹可等于(xt,xt+1,...,xt+k),其中xt为时间点位置且k指示图像序列长度。电子装置102可在当前视频帧(N)224与先前视频帧(N-l)222之间执行504反向跟踪以确定反向轨迹。所得反向轨迹可等于其中

电子装置102可确定506正向轨迹与反向轨迹之间的正向反向误差。正向反向误差可定义为正向轨迹与反向轨迹之间的距离。另外,可定义各种距离以用于轨迹比较。在一个配置中,当确定正向反向误差时,可使用验证轨迹的初始点与结束点之间的欧几里得距离。在一个配置中,正向反向误差可用作可用于确定跟踪置信度值228的跟踪误差。

图6为说明用于执行对象检测和跟踪的方法600的流程图。可通过电子装置102(例如,对象跟踪和检测模块104)实施方法600。电子装置102可通过在当前视频帧(N)224中搜寻窗口位置和大小的子集来对当前视频帧(N)224执行602对象检测和基于运动的跟踪。

电子装置102可确定604检测和跟踪置信度值256。检测和跟踪置信度值256可提供是否发现目标对象在当前视频帧(N)224中或特定窗口内的置信级。电子装置102也可确定606检测和置信度值256是否大于检测和跟踪阈值254。如果检测和置信度值大于检测和跟踪阈值254,那么电子装置102可在下一视频帧中使用窗口和大小的子集(例如,同一子集)来对下一视频帧执行608对象检测。替代地,如果检测和置信度值256小于检测和跟踪阈值254,那么电子装置102可在下一视频帧中使用窗口位置和大小的较大子集来对下一视频帧执行610对象检测。在置信度值256小于检测和跟踪阈值254的一些配置中,电子装置102可使用整个搜寻空间和/或下一视频帧的所有窗口来对下一视频帧执行610对象检测。

图7为说明可与本发明系统和方法一起使用的具有不同窗口大小766的图像窗口700的框图。具体来说,图7说明十个可能窗口大小766a到766j的集合。尽管本文中示出为矩形,但所搜寻窗口可为任何形状,例如,正方形、矩形、圆形、椭圆形、自定义等。此外,任何数目的窗口大小可以是可供使用的,例如,5、15、20、30等。

在一些配置中,搜寻范围可由用于特定位置的窗口大小的子集表示,例如,当前视频帧(N)224中所搜寻的窗口大小可限于类似于与最近帧中的目标对象相关联的窗口位置和窗口大小的那些窗口大小。举例来说,在并无反馈的情况下,对象检测器208可针对每一所选择窗口位置搜寻所有十个窗口大小。然而,如果在最近(非当前)视频帧中使用具有第五窗口大小766e的窗口检测对象,那么对于当前所捕获帧,扫描仪定标器236可仅选择加上或减去3的窗口大小5(即,窗口大小2到8)。换句话说,基于来自最近或先前视频帧(N-l)222的反馈,可并不搜寻具有第一窗口大小766a、第九窗口大小766i和第十窗口大小766j的窗口。此情况可进一步消除低概率搜寻并增加对象检测效率。换句话说,使用来自最近视频帧的反馈可有助于减少所执行计算。替代地,如果最近视频帧并不检测目标对象(即,最近所捕获帧的检测和跟踪置信度值256小于检测和跟踪阈值254),那么对象检测器208可通过使用大小层级的子集并不限制搜寻范围。

图7B为说明可与本发明的系统和方法一起使用的若干实例图像770a到770j和窗口768a到768j的图式。具体地说,图7B说明用于扫描图像的方法。在此方法中,可以搜寻不同图像大小或尺度,而窗口大小可以保持相同。如图7B中所说明,图像A到J 770a到770j具有不同图像大小或尺度,而窗口A到J 768a到768j中的全部具有相同大小。因而,在图7B中说明的方法可以根据本文中所公开的系统和方法的一或多个配置实施。举例来说,结合图7B所描述的方法可以另外地或替代地通过结合图7A所描述的方法实施。在一些配置中,可以从基础图像中确定不同图像尺度(例如,尺度层级)。举例来说,假设图像A 770a是基础图像。图像B到J 770b到770j可以是基础图像A 770a的按比例缩放版本。举例来说,电子装置(例如,电子装置102、1402)可以将基础图像770a按比例缩放到一或多个其它尺度。

在一些配置中,按比例缩放基础图像可以包括减少取样所述图像。举例来说,电子装置(例如,电子装置102、1402)可以使用双线性内插按比例缩放图像。减少取样可以包括获取相邻像素的加权平均以产生按比例缩放的像素。举例来说,假设基础图像是通过2的因数减少取样或按比例缩放的。在此实例中,第一维度(例如,宽度)中的2像素和第二维度(例如,高度)中的2像素可以得到平均(例如,其中给予每个像素0.25的权重)以在所述图像的减少取样版本中产生单个像素。在一些情况下,减少取样可以通过并不均匀地划分像素的数目的因数执行。在这种情况下,不同像素可以给予不同权重以产生减少取样图像。

图8为说明对象跟踪和检测模块804的另一可能配置的框图。图8中所说明的对象跟踪和检测模块804可以包括类似于图2中所说明的对象跟踪和检测模块204的模块并执行类似于其的功能性。具体地说,图8中所说明的对象检测器808、运动跟踪器806、扫描仪定位器830、窗口位置选择器832、随机化器834、扫描仪定标器836、分类器838、位置和大小确定模块899、存储缓冲器810、所捕获先前视频帧812、窗口842、位置844、大小846、二进制决策848、跟踪阈值850、检测阈值852、检测和跟踪阈值854、检测置信度值840、跟踪置信度值828和检测和跟踪置信度值856可对应于且具有类似于图2中所说明的对象检测器208、运动跟踪器206、扫描仪定位器230、窗口位置选择器232、随机化器234、扫描仪定标器236、分类器238、融合模块260、存储缓冲器210、所捕获先前视频帧212、窗口242、位置244、大小246、二进制决策248、跟踪阈值250、检测阈值252、检测和跟踪阈值254、检测置信度值240、跟踪置信度值228和检测和跟踪置信度值256的功能性。

另外,对象跟踪和检测模块804可包括用于减少归因于目标运动和跟踪误差的抖动影响的平滑模块861。换句话说,平滑模块861平滑跟踪结果,从而使得搜寻窗口在位置(x,y)844和大小(宽度、高度)846两者中具有更平滑轨迹。平滑模块861可为简单移动平均(MA)滤波器或自动回归(AR)滤波器。对于位置844和大小846的平滑程度可以不同。例如卡尔曼滤波器的预测性滤波器也可以适于位置844平滑。

在一个配置中,位置和大小确定模块899可输出运动跟踪和对象检测的组合结果,其可以由限界框表示。此限界框可以包括由平滑模块861平滑化的位置和大小信息两者。因此,平滑模块861可接收未平滑化位置863和未平滑化大小865作为输入并输出平滑化位置867和平滑化大小869。在一些配置中,位置和大小确定模块899可以被实施为结合图2所描述的融合模块260的一部分。在其它配置中,位置和大小确定模块899可结合融合模块260执行上文所述的功能中的一或多个,所述融合模块是结合图2描述的。

图9为说明平滑模块961的框图。平滑模块961可用于减少归因于目标运动和跟踪误差的抖动影响(即,因此跟踪结果(限界框)在位置(x,y)和大小(宽度、高度)两者中具有更平滑轨迹)。在一个配置中,使用自动回归(AR)模型实施位置平滑滤波器971和大小平滑滤波器973以接收未平滑化位置963和未平滑化大小965作为输入并输出平滑化位置967和平滑化大小969。

在自动回归(AR)模型中,假设X为待平滑变量(位置或大小)。此外,使X'为由对象跟踪器输出的X的输出。在此配置中,可根据等式(1)描述X在时间t处的平滑化滤波Xt

Xt=W*X't+(1-W)*Xt-1 (1)

其中X't为X在时间t处的跟踪器输出,Xt-1为X在时间t-1处的平滑化结果,且W(0<=W<=1)为控制平滑效果的平滑权重。举例来说,X't可为针对当前视频帧所选择的窗口位置或窗口大小且Xt-1可为用于先前视频帧的窗口位置或窗口大小。

不同平滑权重W可用于位置平滑滤波器971和大小平滑滤波器973。举例来说,在一个实施方案中,W位置=0.8且W大小=0.4,使得存在对窗口位置的较小平滑作用但存在对窗口大小的较强平滑作用。此平滑权重选择将产生较少跟踪延迟和较少抖动两者。

此外,当检测和跟踪置信度值856下降为低于一定阈值(例如,检测和跟踪阈值854)时,也可减少平滑权重选择。当潜在跟踪或检测误差较高时,此情况可带来较强滤波。举例来说,响应于低跟踪置信度(例如,检测和跟踪置信度值856低于检测和跟踪阈值854),可将用于位置和大小的平滑权重分别设定成W位置=0.65且W大小=0.2。换句话说,可降低权重中的一或两者,此情况可使得窗口位置和大小选择较大程度上依赖于先前视频帧的窗口位置和大小而非当前视频帧的窗口位置和大小。

此外,权重可以基于跟踪置信度值828或检测置信度值840而非检测和跟踪置信度值856。举例来说,响应于跟踪置信度值828下降为低于跟踪阈值850,可降低平滑权重W位置和W大小,即,响应于不佳运动跟踪可使用较强滤波。替代地,响应于检测置信度值840下降为低于检测阈值852,可降低平滑权重,即,响应于不佳对象检测可使用较强滤波。

在另一配置中,卡尔曼滤波可用于平滑窗口位置。在此配置中,可根据等式(2)到(7)定义滤波:

xk=Fkxk-1+wk (2)

zk=Hxk-1+vk (3)

其中zk是xk的观测结果或测量结果,并且xk是由限定的真实状态,其中(x,y)是限界框中心位置,是在每一方向上的速度。另外,xk-1为时间k-1处的先前状态。此外,状态转变模型Fk和观察模型H可分别由等式(4)到(5)定义:

其中Δt是可调谐参数。另外,wk是假设根据等式(6)从具有协方差Q的零均值多变量正态分布中得出的过程噪声(即,wk~N(0,Q)):

其中σ1是可调参数。类似地,wk为假设为具有根据等式(7)的协方差R的零均值高斯白噪声的观察噪声(即,vk~N(0,R)):

其中σ2为可调参数。

图10为说明用于平滑运动跟踪结果中的抖动的方法1000的流程图。可由电子装置102(例如,电子装置102中的对象跟踪和检测模块804)执行方法1000。电子装置102可确定1002与当前视频帧相关联的一或多个窗口位置和一或多个窗口大小,例如,未平滑化位置863和未平滑化大小865。电子装置102也可滤波1004一或多个窗口位置和一或多个窗口大小以产生一或多个平滑化窗口位置867和一或多个平滑化窗口大小869。举例来说,此操作可以包括使用移动平均滤波器、自动回归滤波器或卡尔曼滤波器。在一个配置中,响应于低跟踪置信度(例如,检测和跟踪置信度值856低于检测和跟踪阈值854),可减少用于位置和大小的平滑权重。替代地,可基于检测置信度值840或跟踪置信度值828减少平滑权重。电子装置也可使用由一或多个平滑化窗口位置867和一或多个平滑化大小869所定义的一或多个窗口来检测当前视频帧224内的目标对象。

本文中所公开的系统和方法的一些配置可实现均衡滑动窗口和/或扫描跃阶窗口以用于图像金字塔上的多尺度实时对象检测。对于使用金字塔上的图像上的滑动窗口和/或扫描窗口的对象检测,当对象较小时,检测可能需要在较大金字塔图像上执行,其中待扫描的图像位置的数目的增加与图像的大小成正比。一般而言通过移动装置上的有限的计算资源实时处理全部窗口可能是困难的。

本文中所公开的系统和方法可均衡每个图像上的扫描窗口的数目,使得计算需求并不随着待检测对象变得较小而增加。折衷存在于遍历图像上的全部可能的位置的时间花费以及每个检测的准确性中。

本文中所公开的系统和方法可提供以下方法中的一或多个。滑动窗口和/或扫描窗口跃阶可以随着检测移动到金字塔的较低倍频程而增大(具有较大图像大小)。当扫描跃阶与图像的面积增大成正比时,在每个倍频程中待扫描的窗口的数目可保持大致相同。这可能提供总计算与检测时间之间的折衷(例如,帧的数目)。扫描跃阶越大,则可能需要从视频序列中检测对象的时间越长(例如,更多帧)。然而,当计算资源有限时,所述方法允许扫描较大图像而不会掉落帧率,实现“看得更远且较小”。

图11为说明高斯金字塔1195的一部分的一个实例的图式。在图11中,矩形中的每一个表示图像。从原始尺度中(例如,具有尺度因数1的基础图像1197),每个增大金字塔层级(例如,m=1、2、3等)是通过因数s减少取样的。在一些配置中,因数其中M是金字塔1195中的金字塔层级1174的总数。此外,每个增大尺度层级1172是通过数值因数减少取样的。可以使用在尺度层级1172上单调增大的任何数值因数。额外地或替代地,数值因素可以是每个尺度层级均匀的或不均匀的。在一个实例中,在金字塔层级0上,数值因数可以在每个尺度层级1172处均匀地增大2。因而,1.0可以是尺度层级0的数值因数,2.0可以是尺度层级1的数值因数并且4.0可以是尺度层级2的数值因数等等。在另一个实例中,1.0可以是尺度层级0的数值因数,1.5可以是尺度层级1的数值因数并且4.0可以是尺度层级2的数值因数,说明尺度层级上的不均匀的数值因数增大。

在图11中说明的实例中,数值因数是2。在所有尺度层级1172中数值因数是2的情况下,如图11中所说明,尺度层级1172可被称为“倍频程层级”。通过倍频程层级,每个倍频程层级近似为是相邻较低倍频程水平的每个维度中的大小的一半(例如,宽度的一半和高度的一半)。另外,每个倍频程水平可具有相邻较低倍频程水平的像素的近似四分之一。在一些情况下,这些可以近似由于不均匀的相除和四舍五入。

因而,图11说明用于高斯金字塔1195产生的不同尺度(例如,沿着纵轴)。随着金字塔层级1174和尺度层级1172进一步增大,图像变得较小。本文中所公开的系统和方法可以在涉及高斯金字塔的扫描计算中提供更大的效率。

本文中所公开的系统和方法可实现跨越金字塔均衡滑动窗口的数目。举例来说,本文中所公开的系统和方法可提供允许跨越每个尺度层级的受控制的(例如,有限的、近似恒定的等)计算的扫描窗口策略。在一些配置中,这可以应用于跟踪视频中的对象。

图12为说明滑动窗口和扫描跃阶窗口的实例的图式。具体地说,图像A 1276a和图像B 1276b是两个不同图像大小或尺度。扫描窗口A 1278a以z字形图案应用到图像A 1276a。类似地,扫描窗口B 1278b以z字形图案应用到图像B 1276b。在一些配置中,滑动窗口A 1278a和滑动窗口B 1278b可以是相同的或大体上相同的大小(即,固定窗口大小)。除z字形图案之外或替代地,扫描窗口可以扫描线图案应用。对于金字塔上的每个图像(例如,图11的高斯金字塔1195),电子装置可在图像的一或多个可能的位置上运行基于滑动窗口的检测器(例如,具有固定窗口大小)。

本文中所公开的系统和方法的一些配置可以利用扫描跃阶。举例来说,当扫描图像的全部可能的位置在计算上过于昂贵时,一个方法是跳过一个帧中的图像位置(例如,沿着扫描路径),并且随后扫描在其它帧(例如,随后帧)中的跳过窗口。可以应用不同扫描模式。在图12中的帧A到D 1280a到1280d的实例中,说明了宽度尺寸的2的扫描阶跃(例如,x维度,X阶跃=2)以及高度尺寸的2的扫描阶跃(例如,y维度,Y阶跃=2)。每一帧1280a到1280d可以包括像素群组。为了便于在图12中说明,帧1280a到1280d可以表示较小图像(例如,6x 6像素图像)或较大图像的部分(例如,较大图像的6x 6像素区段)。

具体地说,扫描窗口像素1282是在每一帧A到D 1280a到1280d中说明的。每个扫描窗口像素1282是每个扫描窗口的左上像素(例如,开始位置)。举例来说,帧A 1280a包括9个扫描窗口像素1282,其中扫描窗口像素1282中的每一个是对应的扫描窗口的左上像素。因而,帧A 1280a包括9个扫描窗口。每个扫描窗口可以覆盖多个像素(例如,16×16个像素、24x 24个像素等)。因而,扫描窗口可以重叠。具体地说,举例来说,扫描窗口重叠除非扫描阶跃大于或等于窗口宽度。

在帧A到D 1280a到1280d的实例中,图像的全扫描(例如,全部扫描窗口位置)需要4个帧。举例来说,对应于扫描窗口像素1282的扫描窗口可以在每一帧处扫描。具体地说,可以扫描在帧A 1280a(例如,在第一时间或在第一帧处)在扫描窗口内的像素。随后,可以转移扫描窗口,其中扫描窗口的像素是针对随后的帧扫描的。举例来说,在帧B 1280b处包括于扫描窗口中的像素可以得到扫描等等。在一些配置中,窗口的每个群组(例如,图12中的四个窗口)可以在以z字形图案、以顺时针图案、以逆时针图案或以另一顺序(例如,左上、右下、右上、左下等)前进的帧上得到扫描。

在一些配置中,扫描阶跃可以被视为跳过大小(例如,跳过的窗口和/或像素的数目)。举例来说,第一尺寸的2的扫描阶跃(例如,宽度维度、x维度等)以及第二尺寸的2的扫描阶跃(例如,高度尺寸、y维度等)可引起如图12中所说明的帧A到D 1280a到1280d的扫描图案。举例来说,在每一帧中仅四分之一的可能的扫描窗口可以得到扫描。

在一些配置中,可能的扫描窗口位置(例如,开始位置)可以对应于少于全部的像素。举例来说,可能的扫描窗口位置(例如,开始位置)可对应于每隔一个像素(例如,在像素索引0、2、4等处的每两个像素)或更少,例如,每三个像素(例如,在像素索引0、3、6等)处。如上文所述,应注意扫描阶跃可以被视为跳过的窗口的数目。举例来说,在可能的扫描窗口位置对应于每隔一个像素(例如,0、2、4、6、8、10等的像素索引)的配置中,对于第一帧,2的扫描阶跃可引起在像素索引0、4、8等处的扫描窗口的开始像素,以及对于第二帧,2的扫描阶跃可引起在像素索引2、6、10等处的扫描窗口的开始像素。

图13为说明根据本文中所公开的系统和方法的一些配置的跨越尺度层级1372的扫描跃阶的实例的图式。举例来说,本文中所公开的系统和方法可提供跨越尺度层级1372中的每一个的近似均衡数目的扫描窗口。在图13中,矩形中的每一个表示图像金字塔中的图像。举例来说,左上矩形可表示从其它图像导出的基础图像1397。如上文所述,举例来说,电子装置可以将基础图像1397按比例缩放(例如,减少取样)到一或多个尺度层级1372处的一或多个尺度中。如上文所述,每个增大的金字塔层级(例如,m=1、2、3等)是减少取样的。此外,每个增大尺度层级1372是通过数值因数减少取样的。应注意图像金字塔中的全部的图像可对应于帧(例如,基于帧、从帧中衍生、从帧中减少取样等)。举例来说,电子装置可获得用于每一帧的图像金字塔(例如,图像的集合)。举例来说,电子装置可按比例缩放基础图像以获得尺度层级1372。基础图像1397可以是任何大小的(例如,尺寸的任何集合、任何数目的像素等)。图像大小的一些实例(例如,以像素计的尺寸(px))包括4K(4096x 2304)、2880x 1800、2560x 1440、1334x 750、1080p(1920x 1080)、720p(1280x 720)、1024x 576、312x 390、272x 340、QVGA(320x 240)等。

在图13中,说明了四个金字塔层级1374a到1374d和四个尺度层级1372a到1372d。然而,应注意,可以利用金字塔层级1374和/或尺度层级1372的不同标号。

针对一个帧电子装置可扫描尺度层级1372中的两个或大于两个,其中扫描窗口的数目针对在第一金字塔层级1374a处的每个尺度层级1372是相等的。因而,用于每个尺度层级1372的计算的特征在于(例如,受到限制)扫描窗口的数目乘以金字塔层级1374的数目。针对在第一金字塔层级1374a处的每个尺度层级1372均衡扫描窗口的数目可近似均衡尺度层级1372之间的计算的量(例如,经扫描的扫描窗口的数目)。

举例来说,假设扫描第一到第三尺度层级1372a到1372c并且使用12个扫描窗口位置扫描第三尺度层级1372c的第一金字塔层级1374a(例如,图13中的最左列)。在此实例中,第二尺度层级1372b的第一金字塔层级1374a是在12个扫描窗口位置处经扫描的并且第一尺度层级1372a的第一金字塔层级1374a是在12个扫描窗口位置处经扫描的。因而,在每个尺度层级1372处的计算是大体上恒定的(例如,有限的),这是由于用于每个增大金字塔层级1374a到1374d的扫描窗口位置的数目将是小于或等于用于第一(例如,最低)金字塔层级1374a处的对应的图像的扫描窗口位置的数目。

使用用于较大图像的相同数目的相同大小的扫描窗口(例如,在较低尺度层级处)与在较高尺度层级处的图像相比可引起覆盖较小比例的较大图像,举例来说,这是由于以增大的图像大小(减小尺度层级)应用增大的扫描阶跃。举例来说,假设在第一尺度层级和第一金字塔层级处的图像具有在第二尺度层级和第一金字塔层级处的图像的像素数目的四倍。使用用于这些图像的两者的相同数目的扫描窗口与较小图像相比引起覆盖相对较小比例的较大图像。因而,与较高尺度(例如,较高尺度层级1372)相比在较低尺度(例如,较低尺度层级1372)处可能需要更多的帧来覆盖全部扫描窗口位置。

如上文所述,扫描阶跃可用于扫描一些配置中的图像中的一或多个。根据本文中所公开的系统和方法,扫描阶跃可设置成与用于图像中的一或多个的图像(例如,第一金字塔层级1374a中的图像)的尺寸成正比。举例来说,假设尺度层级1372是倍频程。在图13中说明的实例中,扫描阶跃1384(针对每个尺寸)针对第一尺度层级1372a可以是4,针对第二尺度层级1372b可以是2,并且针对第三尺度层级1372c可以是1。举例来说,假设在第三尺度层级1372c处的扫描阶跃1384是1(例如,针对x或宽度尺寸是1且针对y或高度尺寸是1)。在第一金字塔层级1374a处,在第二尺度层级1372b处的图像的尺寸是在第三尺度层级1372c处的图像的尺寸的两倍。因而,在第二尺度层级1372b处的扫描阶跃1384是2(例如,针对x或宽度尺寸是2且针对y或高度尺寸是2)。类似地,在第一尺度层级1372a处的图像的尺寸是在第三尺度层级1372c处的图像的尺寸的四倍,引起4的扫描阶跃1384(例如,针对x或宽度尺寸是4且针对y或高度尺寸是4)。

在一些配置中,在尺度层级1372处用于一或多个额外的金字塔层级1374b到1374d的第一尺寸(例如,x尺寸)扫描阶跃等于对应于在尺度层级1372的第一金字塔层级1374a处的图像的第一尺寸扫描阶跃1384。此外,用于尺度层级1372处的一或多个额外的金字塔层级1374b到1374d的第二尺寸(例如,y尺寸)扫描阶跃等于对应于尺度层级的第一金字塔层级1374a处的图像的第二维度扫描阶跃。额外地或替代地,对应于尺度层级1372的一或多个额外的金字塔层级1374b到1374d中的每一个的扫描窗口的每个数目小于或等于对应于尺度层级1372的第一金字塔层级1374a的扫描窗口的数目。因而,用于每个尺度层级1372a到1372d的计算的特征在于扫描窗口的数目乘以金字塔层级1374的数目。举例来说,这些方法中的一或多个可限制在每个尺度层级1372a到1372d处的计算和/或可能近似均衡在每个尺度层级1372a到1372d处(例如,在尺度层级1372a到1372d之间)的计算(例如,扫描窗口的数目)。

如上文所述,尺度层级1372在一些配置中可以是倍频程。因而,扫描阶跃可以较低倍频程增大。在一些配置中,在每个尺度层级1372a到1372d(例如,倍频程层级)上待扫描的窗口的数目可以是相同的。在这些配置中针对每个倍频程层级的计算的数目可以是相同的。因而,可以均衡跨越金字塔的滑动窗口的数目,即使对于更远的和较小的对象也是如此(例如,以较大图像大小)。在一些配置中,这可以应用于图像中的对象检测和/或对象的跟踪(例如,较大对象、较小对象等)(例如,视频)。应注意虽然在本文中描述了“倍频程”,但是替代于倍频程可以利用不同尺度(例如,均匀的/不均匀的尺度等)。

应注意所述图像中的对象的大小可基于对象与图像传感器之间的距离和/或基于变焦等级。因而,对象的大小可以在帧之间发生改变。然而,对象大小的较大瞬时改变是不大可能的。因而,将扫描限制到可能检测对象的尺度层级1372和/或金字塔层级1374的范围对于减少计算的量而言可能是有益的。举例来说,假设图像传感器的变焦等级在帧之间保持相同。进一步假设图像传感器与对象之间的距离在帧之间降低。因而,图像内的对象的大小可以在帧之间增大(即,在x和/或y方向上的像素的数目增大)。这可以引起对象不再为在特定扫描尺度(和/或金字塔层级)处检测到的,但是是在另一扫描尺度(和/或另一金字塔层级)处检测到的。举例来说,随着对象在图像中的大小的增大对象可以在较高尺度层级处被检测到。因为图像中的对象的大小不大可能相对于帧率快速改变,所以相对于最近检测到对象的尺度(和/或金字塔层级)可以扫描到仅尺度层级(和/或金字塔层级)的范围。

因而,扫描范围(例如,尺度层级和/或金字塔层级)可以在帧之间发生改变。举例来说,电子装置可以基于对象大小改变的一或多个指示改变扫描范围(以尺度层级和/或金字塔层级)。举例来说,范围可以基于在两个或大于两个帧上的所检测到的对象的大小改变(例如,尺度层级和/或金字塔层级)的阈值量。举例来说,如果在第一帧中的第四金字塔层级和第四尺度层级处检测到对象,并且随后在第三尺度层级处的第一金字塔层级中检测到对象(其指示大于大小改变的阈值量),那么电子装置可以在全部的金字塔层级中从最后检测到的尺度层级将扫描范围扩展到±2尺度层级(而不是例如±1尺度层级)。此原理可以类似地适用于变焦和/或检测运动的情形。具体地说,类似方法可以应用于变焦和/或加速计指示。举例来说,如果接收到(或例如检测到)快速(例如,大于阈值量的)变焦输入,那么电子装置可以根据变焦扩展扫描范围和/或可以转移扫描尺度层级和/或金字塔层级。额外地或替代地,如果(通过例如电子装置上的加速计)检测到快速(例如,大于阈值量的)运动,那么电子装置可以根据运动扩展扫描范围和/或可以转移扫描尺度层级和/或金字塔层级。在一些配置中,如果所检测到的对象大小、变焦和/或检测到的运动对于帧的数目是较小的或静态的,那么扫描范围可以收缩(例如,如果针对帧的数目已经出现小于改变的阈值量(在对象、大小、变焦和/或检测到的运动中))。

在一些配置中,对于在跟踪期间的对象检测,在每一帧处仅可以扫描接近对象的尺度的尺度层级和/或金字塔层级。举例来说,仅扫描被跟踪对象尺度的范围内的图像或倍频程(例如,在0.5x到2x)之间。因此,对于结合图13所描述的金字塔,仅可以利用3个尺度层级1372(例如,倍频程)以用于在每一帧处进行扫描。额外地或替代地,仅扫描具有在被跟踪对象尺度分辨率的范围内(例如,在0.5x到2x)之间的分辨率的图像或倍频程。应注意在一些配置中可以扫描邻近尺度(例如,倍频程)。替代地,可以扫描非邻近尺度(例如,倍频程)。

因而,在一些配置中可以仅扫描在1386的尺度范围内的图像尺度。举例来说,假设对象是在第二尺度层级1372处通过大小最后检测到的和/或跟踪到的。电子装置可以仅扫描针对特定范围1386内(例如,±1尺度层级、±2尺度层级等)的对象。在一些配置中,可以就尺度层级1372而言定义范围1386。额外地或替代地,可以就金字塔层级1374(例如,±1金字塔层级、±2金字塔层级等)而言定义范围1386。举例来说,电子装置可以从其中针对全部金字塔层级最后检测到和/或跟踪到对象的尺度层级中将扫描范围限制到±1尺度层级。

应注意范围1386可以在帧之间转移和/或改变(例如,减小或扩展)。举例来说,假设在第二尺度层级1372处在第一帧处检测到对象。在第二帧中,对象检测可以在第一、第二和第三尺度层级1372a到1372c处执行,其中对象检测在第三尺度层级1372c处。因而,范围1386可以转移到包括第二、第三和第四尺度层级1372b到1372d。

应注意对象的术语“距离”、“变焦”和“大小”可以指相对于图像大小的对象的大小。举例来说,在较远距离处的目标对象与在较近距离处的相同目标对象相比可占据图像的较小部分,其中在较近距离处的目标对象占据图像的较大部分。类似地,在较高变焦处的目标对象与在较低变焦处的目标对象相比可占据图像的较大部分。

在一些配置中,本文中所公开的系统和方可以限制(例如,均衡)扫描阶跃的数目而无论目标对象距离和/或变焦如何。举例来说,当目标对象占据图像的较小部分时,更多窗口位置可用于扫描以便检测较小对象。在这种情况下,可以利用较大扫描阶跃,这可能需要更多帧来遍历全部扫描位置。因而,以时间为代价计算可以是有限的。在目标对象占据图像的较大部分的另一情况下,可以利用较小扫描阶跃,这可能需要较少帧以遍历全部扫描位置。根据本文中所公开的系统和方法的一些配置,可以利用每个帧的近似固定数目(例如,相同固定数目)的扫描窗口。虽然可能需要更多帧来扫描较小目标对象(例如,在较远距离处),但是此方法均衡了处理需要而无论目标对象大小如何,这允许较小目标对象得到检测,尤其是在处理功率受到限制的情况中(例如,在移动装置中)。

当对象变得较小时,较低数目的尺度层级1372(例如,倍频程)得到扫描。当对象变得较大时,较高数目的尺度层级1372(例如,倍频程)得到扫描。由于通过将扫描阶跃设置成与(例如,第一金字塔层级的)图像尺寸成正比使得在每个倍频程处的扫描窗口是有限的(例如,均衡的),所以在每个倍频程处扫描的窗口的数目可以是大致相同的。然而,与较高数目的倍频程相比,较低的尺度层级(例如,倍频程)需要更多的帧来执行全扫描。此方法允许随时间推移的若干帧之中的扩展计算而无需请求高的多的资源(计算和电力),尤其是在此类资源不可供使用时。因而,扫描阶跃的数目可以均衡检测准确性和计算(例如,处理循环、电力消耗等)。

图14为说明其中可以实施用于图像扫描的系统和方法的电子装置1402的一个实例的框图。电子装置1402的实例包括智能电话、蜂窝式电话、计算机(例如,桌面型计算机、膝上型计算机等)、平板计算机装置、媒体播放器、电视、游戏控制台、个人数字助理(PDA)、机器人、飞机、UAV、汽车等。电子装置1402可以包括图像扫描模块1488。如本文所使用,“模块”可以在硬件(例如,电路系统)或两者的组合(例如,具有指令的处理器)中实施。

电子装置1402可以执行结合图1到13中的一或多个描述的功能、程序、方法、步骤等中的一或多个。额外地或替代地,电子装置1402可以包括结合图1到13中的一或多个描述的结构中的一或多个。在一些配置中,结合图14描述的图像扫描可以结合结合图1到13中的一或多个描述的图像扫描、对象检测和/或对象跟踪方法中的一或多个实施。应注意结合图13描述的图像扫描可以另外或替代地于结合图1到13中的一或多个描述的图像扫描的方法中的一或多个实施。举例来说,另外或替代于结合对象跟踪和检测模块104、204中的一或多个描述的扫描,结合图14描述的图像扫描模块1488可以在上文所述的一或多个电子装置中实施。

电子装置1402可获得一或多个图像帧1490(例如,数字图像、视频等)。举例来说,电子装置1402可捕获一或多个图像帧1490(例如,使用集成和/或单独的图像传感器)和/或可以从另一装置(例如,相机、存储装置、另一电子装置等)接收一或多个图像帧。图像帧1490中的一或多个可以包括对象(例如,用于检测和/或跟踪的目标对象)。

可以将图像帧1490中的一或多个提供到图像扫描模块1488。图像扫描模块1488可以扫描一或多个图像帧1490。举例来说,图像扫描模块1488可以利用滑动窗口和/或阶跃扫描方法以为对象扫描图像帧1490。这可以如上文结合图11到13中的一或多个所描述的来实现。

图像扫描模块1488可以获得具有用于帧1490的多个尺度层级和至少第一金字塔层级的图像金字塔。举例来说,图像扫描模块1488可减少取样和/或按比例缩放图像(例如,基础图像)以产生如上文所述的图像金字塔。在一些配置中,图像金字塔可以是基于倍频程的高斯金字塔。

在一些实施方案中,图像扫描模块1488可以在金字塔中仅产生有限数目的尺度。举例来说,仅可以产生被跟踪或扫描的对象的尺度的0.5x到2x内的图像尺度(例如,尺度层级)。在一些配置中,电子装置1402可确定对象尺度(例如,从前一帧中基于跟踪和/或检测和/或基于指示对象大小的输入)。电子装置1402可因而确定图像金字塔的哪些图像尺度(例如,尺度层级和/或金字塔层级)是处于范围内的。电子装置1402可因而仅产生和/或扫描对象的尺度或大小的范围内的图像尺度。扫描模块1488可扫描邻近或非邻近尺度层级。

图像扫描模块1488可在多个扫描窗口位置处扫描帧1490的多个尺度层级中的至少两个。扫描窗口位置的数目针对第一金字塔层级的至少两个尺度层级的每个尺度层级可以是相等的。在一些配置中,扫描窗口大小可以是相同的,而无论图像大小(例如,尺度层级和/或金字塔层级)如何。举例来说,这种情况可以如结合7B中所描述。因而,不同图像大小可适配图像内的不同总数的扫描窗口(例如,重叠和/或不重叠扫描窗口)。然而,扫描全部可能的扫描位置可能需要相对较大量的处理功率(例如,速度),尤其是对于高帧率下的较大(例如,高分辨率)图像。

本文中所公开的系统和方法的一些配置可以基于在每个尺度层级处的计算特征化。举例来说,本文中所公开的系统和方法可以限制、均衡和/或近似均衡等与在每个尺度层级处处理图像相关联的计算。这可以通过在(例如,至少第一金字塔层级的)两个或大于两个尺度层级处将扫描窗口位置的数目设置成相等而实现。因而,用于每个尺度层级的每个帧计算的特征可在于(例如,通过以下项限制)在第一金字塔层级处用于图像的扫描窗口集合的数目乘以金字塔层级的数目。与较高尺度相比,可能需要更多帧以覆盖(例如,扫描)在较低尺度处的全部扫描窗口位置。

根据本文中所公开的系统和方法,扫描阶跃可以与用于图像中的一或多个(例如,第一金字塔层级中的图像)的图像的尺寸成正比。额外地或替代地,用于尺度层级处的一或多个额外的金字塔层级的第一尺寸(例如,x尺寸)扫描阶跃可以等于对应于在尺度层级的第一金字塔层级处的图像的第一尺寸扫描阶跃。此外,用于尺度层级处的一或多个额外的金字塔层级的第二尺寸(例如,y尺寸)扫描阶跃可以等于对应于在尺度层级的第一金字塔层级处的图像的第二尺寸扫描阶跃。额外地或替代地,对应于尺度层级的一或多个额外的金字塔层级中的每一个的扫描窗口的每个数目小于或等于对应于尺度层级的第一金字塔层级的扫描窗口的数目。因而,用于每个尺度层级的计算的特征在于扫描窗口的数目乘以金字塔层级的数目。举例来说,这些方法中的一或多个可限制在每个尺度层级处的计算和/或可近似均衡在每个尺度层级处的计算(例如,扫描窗口的数目)。

在一些配置中,图像扫描模块1488可确定和/或设置扫描阶跃(例如,第一尺寸扫描阶跃和第二尺寸扫描阶跃)为与对应的图像尺寸成正比。举例来说,图像扫描模块1488可设置第一尺寸(例如,宽度x)扫描阶跃针对尺度层级中的每一个与在第一金字塔层级处的图像的第一尺寸成正比,并且设置第二尺寸(例如,高度y)扫描阶跃针对尺度层级中的每一个与在第一金字塔层级处的图像的第二尺寸成正比。较大图像将因而具有较大扫描阶跃。

在一个方法中,图像扫描模块1488可基于图像的一或多个尺寸确定和/或设置扫描阶跃。举例来说,在特定尺度层级处(以及例如在第一金字塔层级处)的图像可具有用于一或多个尺寸的预先确定的扫描阶跃。替代地,图像扫描模块1488可以确定用于图像的扫描阶跃的数目(基于处理器负载、图像分辨率等)。举例来说,假设在第一尺度层级和第一金字塔层级处的图像具有用于宽度尺寸的4的扫描阶跃和用于高度尺寸的4的扫描阶跃。进一步假设在第一尺度层级处的图像具有160px的宽度和120px的高度,且在第二尺度层级处的图像具有80px的宽度和60px的高度。为了获得用于在第二尺度层级处(以及例如在第一金字塔层级处)的图像的扫描阶跃,图像扫描模块可以将用于宽度尺寸的扫描阶跃4除以一个比率以产生用于在第二尺度层级处的图像的2的扫描阶跃,所述比率为在第一尺度层级处的图像的宽度与在第二尺度层级(例如,4/(120px/60px))处的图像的宽度的比率。

在另一方法中,图像扫描模块1488可以将扫描阶跃设置成在第一金字塔层级处与第一尺度层级处的图像的面积(例如,大小、像素)与在第二尺度层级处的图像的面积(例如,大小、像素)的比率的平方根正比。举例来说,假设在第一尺度层级和第一金字塔层级处的图像具有伴以160x 120的尺寸的4的扫描阶跃,且假设在第二尺度层级处的图像具有80x 60的尺寸。为了获得用于在第二尺度层级处(以及例如在第一金字塔层级处)的图像的扫描阶跃,图像扫描模块1488可以将在一种尺寸(例如,4)中的第一图像的扫描阶跃除以第一图像的面积与第二图像的面积的比率的平方根(例如,),以产生用于在第二尺度层级处的图像的2的扫描阶跃。

在又一方法中,图像扫描模块1488可以基于在一个图像大小内可以适配的(例如,特定大小的)扫描窗口的总数确定扫描阶跃。在一些配置中,图像扫描模块1488可通过比较图像的大小和扫描窗口的大小确定在一个图像内可以适配的扫描窗口的数目。举例来说,如果图像具有宽度乘以高度的大小(例如,W*H)且扫描窗口具有窗口宽度乘以窗口高度的大小(例如,P*Q;W≥P和H≥Q),那么在图像内可以适配的扫描窗口的总数为(W-P+1)*(H-Q+1)。扫描阶跃可以确定为与图像中的扫描窗口的总数成正比。举例来说,在图7B中,在图像扫描模块1488的一个配置中,用于图像I的扫描阶跃被设置成1,且图像H的扫描阶跃被设置成小于或等于(#H的扫描窗口)/(#I的扫描窗口)的最大整数。类似地,图像A的扫描阶跃被设置成小于或等于(#A的扫描窗口)/(#I的扫描窗口)的最大整数。

设置扫描阶跃的数目可近似均衡在图像金字塔的每个尺度层级(例如,倍频程)处的扫描窗口。举例来说,设置扫描阶跃的数目可能引起在每个倍频程层级处大致相同数目的计算。设置扫描阶跃的数目可因而均衡检测准确性与计算和/或电力消耗。应注意,如上文所述在一些配置中可以扫描对象的处于(例如,0.5x到2x)的尺度范围内的仅有的图像尺度。

应注意图像扫描模块1488可根据扫描阶跃扫描一或多个随后帧。举例来说,图像扫描模块1488可扫描在扫描窗口的初始位置处的用于第一图像帧的图像。对于第二随后帧,图像扫描模块1488可转移扫描窗口开始位置(通过整个扫描窗口、通过像素等)等等。

图像扫描模块1488可提供扫描结果1492。在一些配置中,扫描结果可指示对象是否被检测到和/或指示用于一或多个扫描窗口和/或帧的对象检测的置信级。

在一些配置中,图像扫描模块1488可以在结合图1描述的对象跟踪与检测模块104中实施。举例来说,结合图1描述的对象检测器108可实施结合图11到14描述的扫描方案中的一或多个以便在图像中检测对象。

图15为说明用于图像扫描的方法1500的一个配置的流程图。举例来说,结合图14描述的电子装置1402可执行方法1500。

电子装置1402可获得1502帧1490。举例来说,如上文所述,这可以结合图14实现。

电子装置1402可获得1504具有用于帧1490的多个尺度层级和至少第一金字塔层级的图像金字塔。举例来说,这可以如结合图7B与图11到14中的一或多个所描述的实现。

电子装置1402可提供扫描窗口。举例来说,电子装置1402可具有存储在存储器中的预先确定的扫描窗口大小。额外地或替代地,电子装置1402可确定(例如,计算)扫描窗口的大小。举例来说,电子装置可确定扫描窗口大小为图像大小的一部分。在另一个实例中,电子装置1402可基于扫描窗口位置限制(例如,每个帧可以处理的最大数目的扫描窗口)来确定扫描窗口大小。举例来说,电子装置1402可以将扫描有限数目的处理循环用于扫描。扫描窗口位置限制可以是电子装置1402可以每个帧处理的预先确定的或计算的数目的扫描窗口位置(具有多个像素或像素的范围)。在一些配置中,电子装置1402可以从查找表中查找扫描窗口大小。

电子装置1402可以扫描1506在多个扫描窗口位置处的帧1490的尺度层级中的至少两个。扫描窗口位置的数目针对第一金字塔层级的至少两个尺度层级的每个尺度层级可以是相等的。扫描1506帧1490的至少两个尺度层级的尺度层级中的每一个可以如上文结合图7B与图11图14中的一或多个所述实现。

图16为说明根据本文中所公开的系统和方法的一些配置的图像扫描的一个实例的图式。具体地说,图16说明两个帧1696a到1696b上的图像扫描的一个实例。在此实例中,矩形网格表示对应于(例如,衍生自)帧1696a到1696b的图像金字塔的图像。每个网格框表示一个像素。在图16中具有加深轮廓的方框示出了扫描窗口像素1694。每个扫描窗口像素1694是每个扫描窗口的左上像素(例如,开始位置)。举例来说,在第一金字塔层级A 1607a与第一尺度层级A 1601a处的图像包括12个扫描窗口像素1694,其中扫描窗口像素1694中的每一个是对应的扫描窗口的左上像素。因而,此图像包括12个扫描窗口(为了清楚起见未描绘)。每个扫描窗口可覆盖多个像素(例如,16x 16像素、24x 24像素等)。因而扫描窗口可以重叠。

为简单起见,以像素的尺寸说明图像。应注意每个扫描窗口可覆盖多个像素。为了便于说明,在图16的实例中给出的图像具有相对较小的尺寸。应注意图像尺寸可以大于(例如,大的多)和/或小于在图16中给出的图像。在结合图16描述的实例中,可以根据结合图11描述的金字塔导出图像大小。举例来说,在第一金字塔层级A 1607a处的图像包括具有在第一尺度层级A 1601a处的尺寸16x 12的图像、具有在第二尺度层级A 1603a处的尺寸8x 6的图像,以及在第三尺度层级A 1605a处的尺寸4x 3的图像。此外,在第二金字塔层级A 1609a处的图像包括具有在第一尺度层级A 1601a处的尺寸13x 10的图像、具有在第二尺度层级A 1603a处的尺寸6x 5的图像,以及在第三尺度层级A 1605a处的尺寸3x 2的图像。另外,在第二金字塔层级A 1611a处的图像包括具有在第一尺度层级A 1601a处的尺寸10x 8的图像、具有在第二尺度层级A 1603a处的尺寸5x 4的图像,以及在第三尺度层级A 1605a处的尺寸3x 2的图像。对应于在第一金字塔层级B 1607b、第二金字塔层级B 1609b、第三金字塔层级B 1611b、第一尺度层级B 1601b、第二尺度层级B 1601b和第三尺度层级B 1605b处的帧B 1696b的图像具有与对应于帧A 1696a的那些相同的大小。

如可以在图16中观察到的,尺度层级1601、1603、1605布置成倍频程大小。具体地说,在第一金字塔层级A 1607a处,第二尺度层级A 1603a的尺寸是第一尺度层级A 1601a的对应的尺寸的一半并且第三尺度层级A 1605a的尺寸是第二尺度层级A 1603a的对应的尺寸的一半。

图16中的扫描窗口像素1694说明了扫描窗口的数目在第一金字塔层级A 1607a处对于每个尺度层级1601、1603、1605是相等的。具体地说,在第一金字塔层级A 1607a处的图像中的每一个具有12个扫描窗口,而无论尺度层级或图像大小如何。如所说明,在第一金字塔层级A 1607a处的扫描窗口位于第三尺度层级A 1605a处的图像的全部位置(例如,像素)处、位于第二尺度层级A 1603a处的图像的仅四分之一的位置处,并且位于第一尺度层级A 1601a处的仅十六分之一的位置处。因而,每个尺寸的扫描阶跃与在第一金字塔层级1607处的图像的尺寸成正比。

对于帧B 1696b,扫描窗口可以转移(例如,如通过对应的扫描窗口像素1694所示)。如在第一金字塔层级1607a到1607b处所说明,在每一帧1696处利用在第三尺度层级1605a到1605b处的图像的全部扫描窗口开始位置,而将需要四个帧以从用于第二尺度层级1603的全部的开始位置扫描并且将需要十六个帧以从用于第一尺度层级1601的全部的开始位置扫描。此情境说明本文中所公开的系统和方法的一些配置的一个优点。具体地说,较大图像(例如,较高分辨率图像、图像中的较小对象)可以通过有限量的计算扫描以换得较慢检测速度和/或较低准确性。这一点可以是重要的,尤其是在高帧率下扫描高分辨率图像可能压垮装置(例如,智能电话、平板计算机等)的处理能力的实施方案中。

如在图16中进一步说明的,用于每个逐渐地较高的金字塔层级1609的扫描窗口的数目可以限制在小于或等于用于在第一金字塔层级1607处的图像的扫描窗口的数目。举例来说,对于第一尺度层级A 1601a,在第一金字塔层级A 1607a处的图像具有12个扫描窗口,在第二金字塔层级A 1609a处的图像具有12个扫描窗口并且在第三金字塔层级A 1611a处的图像具有六个扫描窗口。因而,用于每个尺度层级1601、1603、1605的计算的特征在于(例如,通过以下项限制)第一金字塔层级1607的扫描窗口的数目乘以金字塔层级1607、1609、1611的数目。举例来说,用于第一尺度层级A 1601a的计算将限于小于或等于扫描12个扫描窗口乘以三个金字塔层级1607、1609、1611所需要的处理(例如,第一尺度层级A处理=用于30个扫描窗口的处理≤用于12个扫描窗口*3的处理)。在一些配置中(例如,在较高分辨率处),处理每个尺度层级所需要的计算变为近似相等的,这是因为在每个尺度层级处扫描窗口的数目是相同的或近似相同的。

虽然图16说明在每个层级处的扫描窗口可以在位置上对应(例如,在每个尺度层级A 1601a、1603a、1605a处第一扫描窗口像素1694在(0,0)的宽度与高度指数处),但是可以利用其它方法。举例来说,扫描窗口可以在不同尺度层级处在非对应的位置处初始化。举例来说,对于第一金字塔层级A 1607a,在第一尺度层级A 1601a处的第一扫描窗口像素1694(以及对应的扫描窗口)可以是在(0,0)处初始化的并且在第二尺度层级A 1603a处的第一扫描窗口像素1694(以及对应的扫描窗口)可以是在(1,0)的宽度和高度指数处初始化的。以此方式,可以更多样化地覆盖不同扫描位置。

在一些配置中,可以在最后检测到的对象位置处或附近初始化(例如,可以最初安置)扫描窗口。举例来说,如果对象是在前一帧中的指数(2,1)处最后检测到的,那么第一扫描窗口可以安置在(2,1)(或例如(1,1))处。

图17A为说明根据本文中所公开的系统和方法的一些配置的扫描窗口1713的数目相较于图像大小1715的图。在图17A中,实线曲线说明了一种方法,其中增大图像大小也增大了扫描窗口的数目。虚线说明了本文中所公开的系统和方法的一些配置。如所说明,随着图像大小的增大,扫描窗口的数目可以是有限的或近似恒定的。具体地说,无论图像大小如何,扫描窗口的数目可以是大致相同的。举例来说,在已知的方法中,增大图像大小将需要每个帧更多的扫描窗口。然而,在根据本文中所公开的系统和方法的一个方法中,随着图像大小的增大扫描窗口的数目可以维持近似恒定,其代价为需要更多的帧来完成全部扫描位置的全扫描。这可允许在高帧率下的较高分辨率图像的扫描,即使在处理能力特别地有限的实施方案中也是如此。

图17B为说明其中扫描全部可能的窗口位置的方法的实例与其中扫描的窗口位置的数目是基于尺度层级均衡的本文中所公开的系统和方法的方法的实例相比的图。所述图是以扫描窗口1739b的数目对图像大小1741b(以像素计)说明的。在这些实例中,假设扫描窗口具有16x16像素的尺寸。表(1)提供当扫描全部窗口1743b时扫描窗口的数目与当扫描均衡窗口1745b时扫描窗口的数目之间的比较。在其中扫描全部窗口1743b(例如,扫描阶跃=1)并且其中一个扫描窗口是针对每两个像素放置的实例中,扫描窗口1739b的总数随着图像大小1741b的增大而显著增大。然而,在均衡窗口1745b方法中,其中扫描阶跃基于尺度层级(例如,倍频程层级)变化,随着图像大小1741b的增大扫描窗口1739b的数目受到限制(或近似恒定),如在表(1)与图17B中所说明。

表(1)

图17C为说明其中扫描全部可能的窗口位置的方法的实例与其中扫描的窗口位置的数目是基于尺度层级均衡的本文中所公开的系统和方法的方法的另一实例相比的图。所述图是以扫描窗口1739c的数目对图像大小1741c(以像素计)说明的。在这些实例中,假设扫描窗口具有16x16像素的尺寸。表(2)提供当扫描全部窗口1743c时扫描窗口的数目与当扫描均衡窗口1745c时扫描窗口的数目之间的比较。在其中扫描全部窗口1743c(例如,扫描阶跃=1)并且其中一个扫描窗口是针对每两个像素放置的实例中,扫描窗口1739c的总数随着图像大小1741c的增大而显著增大。然而,在均衡窗口1745c方法中,其中扫描阶跃基于尺度层级(例如,倍频程层级)变化,随着图像大小1741c的增大扫描窗口1739c的数目受到限制(或近似恒定),如表(2)与图17C中所说明。

表(2)

图18说明可包括于电子装置和/或无线装置1802内的某些组件。电子装置/无线装置1802可以是存取终端、移动台、用户设备(UE)、智能电话、数码相机、摄像机、平板计算机装置、膝上型计算机等,(例如,在图1和/或图14中说明的电子装置102、1402)。电子装置/无线装置1802包括处理器1835。处理器1835可以是通用单芯片或多芯片微处理器(例如,ARM)、专用微处理器(例如,数字信号处理器(DSP))、微控制器、可编程门阵列等。处理器1835可被称为中央处理单元(CPU)。虽然在电子装置/无线装置1802中仅示出单个处理器1835,但在替代配置中,可使用处理器的组合(例如,ARM和DSP)。

电子装置/无线装置1802还包括存储器1817。存储器1817可以是能够存储电子信息的任何电子组件。存储器1817可体现为随机存取存储器(RAM)、只读存储器(ROM)、磁盘存储媒体、光学存储媒体、RAM中的快闪存储器装置、随处理器包含的机载存储器、EPROM存储器、EEPROM存储器、寄存器等,包含其组合。

数据1821a和指令1819a可以存储于存储器1817中。指令1819a可以是可由处理器1835执行的以实施本文所描述的方法中的一或多个。执行指令1819a可涉及使用存储于存储器1817中的数据。当处理器1835执行指令1819时,可将指令1819b的各种部分加载到处理器1835上且可将数据1821b的各种片段加载到处理器1835上。

电子装置/无线装置1802还可以包括发射器1825及接收器1827以允许将信号发射到电子装置/无线装置1802且从所述电子装置/无线装置接收信号。发射器1825及接收器1827可统称为收发器1829。多个天线1837a到1837b可电耦合到收发器1829。电子装置/无线装置1802还可以包括(未示出)多个发射器、多个接收器、多个收发器和/或额外天线。

电子装置/无线装置1802可以包括数字信号处理器(DSP)1831。电子装置/无线装置1802还可以包括通信接口1833。通信接口1833可允许启用一或多个种类的输入和/或输出。举例来说,通信接口1833可以包括一或多个端口和/或通信装置以用于将其它装置连接到电子装置/无线装置1802。额外地或替代地,通信接口1933可以包括一或多个其它接口(例如,触摸屏、小键盘、键盘、麦克风、相机等)。举例来说,通信接口1833可允许用户与电子装置/无线装置1802交互。

电子装置/无线装置1802的各种组件可通过一或多个总线耦合在一起,所述总线可包含电力总线、控制信号总线、状态信号总线、数据总线等。为清楚起见,各种总线在图18中说明为总线系统1823。

根据本发明,在电子装置中电路可以适用于获得帧(例如,图像帧)。相同电路、不同电路或相同电路或不同电路的第二区段可以适用于获得图像金字塔,其包括具有尺度层级以及用于帧的第一金字塔层级的多个。第二区段可有利地耦合到第一区段,或所述第二区段可以作为第一部分实施于相同的电路中。另外,相同电路、不同电路或相同电路或不同电路的第三区段可适于扫描尺度层级中的每一个,其中在第一金字塔层级处扫描窗口的数目针对每个尺度层级是相等的。另外,相同电路、不同电路或相同或不同电路的第四区段可适于控制提供上文所描述功能性的电路或电路区段的配置。

术语“确定”涵盖多种多样的动作,且因此“确定”可包括计算、运算、处理、导出、调查、查找(例如,在表、数据库或另一数据结构中查找)、查实及类似者。并且,“确定”可包含接收(例如,接收信息)、存取(例如,在存储器中存取数据)及类似者。并且,“确定”可包括解析、选择、挑选、建立等等。

除非以其它方式明确地指定,否则短语“基于”并不意味着“仅基于”。换句话说,短语“基于”描述“仅基于”与“至少基于”两者。

术语“处理器”应广义上解释为涵盖通用处理器、中央处理单元(CPU)、微处理器、数字信号处理器(DSP)、控制器、微控制器、状态机等。在一些情况下,“处理器”可以指专用集成电路(ASIC)、可编程逻辑装置(PLD)、现场可编程门阵列(FPGA)等。术语“处理器”可指代处理装置的组合,例如,DSP和微处理器的组合、多个微处理器的组合、一或多个微处理器结合DSP核心,或任何其它此类配置。

术语“存储器”应广义上解释为涵盖能够存储电子信息的任何电子组件。术语存储器可指各种类型的处理器可读媒体,例如,随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除PROM(EEPROM)、快闪存储器、磁性或光学数据存储器、寄存器等。如果处理器可从存储器读取信息和/或将信息写入到存储器,那么存储器被称为与处理器电子通信。与处理器集成的存储器与处理器进行电子通信。

术语“指令”和“代码”应该广义地解释为包含任何类型的计算机可读语句。举例来说,术语“指令”和“代码”可指代一或多个程序(program)、例程、子例程、函数、过程(procedure)等。“指令”和“代码”可以包括单个计算机可读语句或许多计算机可读语句。

本文中所描述的功能可在通过硬件执行的软件或固件中实施。所述功能可以存储为计算机可读媒体上的一或多个指令。术语“计算机可读媒体”或“计算机程序产品”是指可通过计算机或处理器存取的任何实体存储媒体。作为实例而非限制,计算机可读媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于运载或存储呈指令或数据结构的形式的所要程序代码且可由计算机存取的任何其它媒体。本文中使用的磁盘和光盘包含压缩光盘(CD)、激光盘、光盘、数字通用光盘(DVD)、软盘及蓝光盘,其中磁盘通常是以磁性方式再现数据,而光盘是用激光以光学方式再现数据。应注意,计算机可读媒体可为有形且非暂时性的。术语“计算机程序产品”是指与可由计算装置或处理器执行、处理或计算的代码或指令(例如,“程序”)组合的计算装置或处理器。如本文中所使用,术语“代码”可指可由计算装置或处理器执行的软件、指令、代码或数据。

还可通过传输媒体传输软件或指令。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线路(DSL)或无线技术(例如,红外线、无线电及微波)从网站、服务器或其它远程源传输软件,那么同轴电缆、光纤电缆、双绞线、DSL或无线技术(例如,红外线、无线电及微波)包含在传输媒体的定义中。

本文中所公开的方法包括用于实现所描述的方法的一或多个步骤或动作。在不脱离权利要求书的范围的情况下,方法步骤和/或动作可彼此互换。换句话说,除非正描述的方法的适当操作需要步骤或动作的特定次序,否则在不脱离权利要求书的范围的情况下,可修改特定步骤及/或动作的次序及/或使用。

另外,应了解用于执行本文中描述的方法和技术的模块和/或其它适当装置可以下载和/或通过装置获得。举例来说,装置可耦合到服务器以促进用于执行本文中所描述的方法的装置的传递。替代地,本文中所描述的各种方法可经由存储装置(例如,随机存取存储器(RAM)、只读存储器(ROM)、例如压缩光盘(CD)或软盘等物理存储媒体等等)提供,使得装置可在将存储装置耦合或提供到所述装置后获得各种方法。

应理解,所附权利要求书不限于上文所说明的精确配置和组件。在不脱离权利要求书的范围的情况下,可在本文中所描述的系统、方法和设备的布置、操作和细节方面进行各种修改、改变和变更。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1