估计图象中物体的位置的制作方法

文档序号:6456536阅读:256来源:国知局
专利名称:估计图象中物体的位置的制作方法
技术领域
申请文件中的至少一个实现与动态状态估计相关。
背景技术
动态系统涉及其状态随着时间变化而变化的系统。该系统表现为其状 态为任意选择的变量的集合,但是该状态通常包括感兴趣的变量。例如, 一个动态系统被用于表现一个视频。例如,视频可能描述一个网球比赛, 状态可能被选择用于网球的位置。该系统之所以为动态的是因为网球的位 置随着时间而变化。令人感兴趣的是估计该系统的状态,即在视频的一个新帧中网球的位置。

发明内容
根据本发明的一个总的方面, 一个轨迹被确定。该轨迹用于数字图象 序列的一个特定图象中的物体,并且该轨迹是基于该物体在数字图象序列 的一个或多个在前图象中的一个或多个在前位置。基于该轨迹到一个粒子 的距离,在用于追踪物体的基于粒子的框架中确定该粒子的权重。使用基 于粒子的框架确定物体的位置估计,该位置估计基于确定的粒子权重。
下面结合附图来阐释一个或多个实现的细节。尽管这些实现是以某一 特定的方式来阐释的,但是这些实现可以以其它不同的方式配置或者具体 化。例如, 一个实现做为方法执行,或者具体化为用于执行一个操作集合 的设备,或者具体化为用于存储用于执行一个操作集合的指令的设备,或 者具体化为信号。通过结合附图、权利要求和下面的具体描述来考虑本发 明,就能够了解本发明的其它方面和特征。


图1的块图示出状态估计器的一个实现;
图2的块图示出了用于实现图1的状态估计器的设备的一个实现; 图3的块图示出了基于图1状态估计器估计的状态用于编码数据的系 统的一个实现;
图4的块图示出了基于图1状态估计器估计的状态用于处理数据的系 统的一个实现;图5示例性的示出图1状态估计器的实现执行的各种功能; 图6的流程图示出用于在数字图象序列的一个图象中确定物体的位置 的方法的一个实现;
图7的流程图示出用于实现粒子滤波器的方法的一个实现;
图8的流程图示出了用于实现离子滤波器的另一个方法;
图9的流程图示出了用于实现图8方法中动态模型的方法的一个实
现;
图10的流程图示出用于在粒子滤波器中实现包括计算运动估计的动 态模型的方法的一个实现;
图11的流程图示出了用于在粒子滤波器中实现测量模型的方法的一 个实现;
图12示例性示出带有阻挡的物体位置的投影轨迹的一个实施例;
图13的流程图示出了在使用粒子滤波器估计状态后,用于确定是否 更新模板的方法的一个实现;
图14的流程图示出了在使用粒子滤波器估计状态后,用于确定是否 更新模板和改进物体位置的方法的一个实现;
图15示例性示出了相对于投影轨迹用于改进物体的估计位置的方法 的一个实现;
图16的流程图示出了用于估计物体位置的方法的一个实现; 图17的流程图示出了用于选择位置估计的方法的一个实现; 图18的流程图示出了用于在粒子滤波器中确定粒子位置的方法的一 个实现;图19的流程图示出了用于确定是否更新模板的方法的一个实现; 图20的流程图示出了用于在粒子滤波器中检测粒子阻挡的方法的一 个实现;
图21的流程图示出了基于粒子滤波器输出的粒子,用于估计状态的 方法的一个实现;
图22的流程图示出了用于改变物体的估计位置的方法的一个实现; 图23的流程图示出了用于确定物体位置的方法的一个实现。
具体实施例方式
一个或者多个实施方式提供了用于动态状态估计的方法。 一个或者多 个实施方式提供了用于估计动态状态的方法。 一个使用动态状态估计实施 例被用来在帧间预测视频的一个特征的运动。 一个视频的例子是压缩视 频,例如,使用MPEG—2格式来压縮的视频。在压縮视频中, 一般只有帧 的子集才包括与帧相关的图象的全部信息。包括全部信息的这类帧在MPEG 一2格式中被称作I帧。大部分帧仅仅提供指示该帧和一个或多个邻近帧 (例如邻近I帧)的区别的信息。在MPEG-2格式中,该类帧被称作P帧和B 帧。在保持数据压縮的基础上,提供足够多的信息用于预测视频中一个特 征的变化是一个挑战。
例如,在运动赛事中的一个球可以是视频的一个特征。这样的球包括 网球、足球和篮球。本方法的一个应用实例被用来在一个多帧视频的帧间 预测球的位置。这个球可以是相对较小的物体,例如,其占据的空间小于 30像素。视频的特征的另一个例子是运动赛事中的运动员或者裁判员。在视频帧之间追踪(track)物体的运动的困难在于一个或者多个帧 内存在物体的阻挡(occlusion)。阻挡的一种形式为该物体隐藏在前景的 一个特征的后面。这种阻挡被称作"实阻挡"(real occlusion)。例如, 在网球比赛中,网球可能从运动员的后面经过。这种阻挡有着多种方式, 比如,该物体被隐藏、阻碍或者覆盖。在另一种情况下,阻挡可能以背景 的形式存在,并且该背景致使难于或者不能确定物体位置。这种阻挡被称 作"虚阻挡"(virtual occlusion)。例如,网球可能在杂乱的背景前面 经过,比如人群,由于人群中包括很多和网球大小以及颜色都很接近的物 体,因此很难或者不能把网球从其它类似的物体中选择出来。在另一个例 子中,网球可能在和网球有着同样颜色的区域前面经过,因此这时也很难 或者不能确定网球的位置。包括杂乱的阻挡使得在粒子滤波器中生成粒子 的正确可能性估计变得困难。包括杂乱的阻挡经常导致物体追踪的不确 定。
对于小物体或者快速移动的物体,这些问题通常变得更加严重。例如, 其中的一个原因是小物体的位置通常在视频的连续图象(例如帧)之中不 重叠。当物体位置不重叠时,物体本身也不重叠。这就意味着物体在两个 连续图象的时间间隔中移动了至少其本身宽度的距离。由于没有重叠,通 常很难在下一个图象中找到物体,或者没有很大程度的把握在下个图象中 找到物体。
物体追踪的不确定并不仅限于小物体。例如, 一个杂乱的背景可能包 含与要追踪的物体类似的特征。在这种情况下,无论物体大小有多少,都 会导致追踪的不确定。确定物体是否被阻挡可能也是一个难题。例如, 一个用于确定物体阻
挡的已知方法是通常点/孤立点比(inlier/outlier ratio)。但是,在存 在小物体和/或杂乱背景的情况下,通常点/孤立点比可能也很难确定物体 是否被阻挡。
一个实现通过在基于粒子的框架(particle — based framework)中 形成度量面(metric surface)来解决这些难题。另一个实现通过在基于 粒子的框架中使用和计算运动估计来解决这些难题。还有一个实现通过在 可能性估计中使用多假设(multiple hypotheses)来解决这些难题。
在基于粒子的框架中,通常对很多粒子使用蒙特卡罗模拟(Monte Carlo simulation)。例如,这些粒子代表物体在一个帧中不同的可能存 在的位置。基于蒙特卡罗模拟确定的可能性,选择出一个特定粒子。粒子 滤波器(particle filter, PF)是一个典型的基于粒子的框架。在粒子 滤波器中,生成一些代表可能状态的粒子,这些可能状态对应于物体在一 个图象中可能存在的位置。在粒子滤波器中每一个粒子都和一个可能性 (也被称作权重)相关联。在粒子滤波器中,在一个或者多个再抽样步 骤中排除掉带有较低可能性或者较小权重的粒子。例如,代表粒子滤波器 的输出的状态可能是粒子的加权平均量。
在图l所示的一个实现中,系统100包括状态估计器110,该状态估计 器可在计算机上实现。该状态估计器110包括粒子算法模块120、本地模式 模块130和数量适配模块140。粒子算法模块120执行基于粒子的算法用于 估计动态系统状态,例如,该算法为粒子滤波器。本地模式模块130应用 本地查寻机制,例如,通过在PF的粒子上执行均值移动分析(mean-shiftanalysis)。数量适配模块140修改基于粒子的算法使用的粒子数量,例如 通过对PF的粒子应用库尔贝克一莱布勒距离(Kullback-Leibler distance, KLD)抽样处理。在一个实现中,粒子滤波器根据粒子所在的 状态空间的大小能够实现自适应抽样。例如,如果发现粒子存在于状态空 间的很小一部分,则抽样少量的粒子。如果状态空间大或者状态不确定性 高,则抽样大量的粒子。模块120 — 140可以单独的实现或者集成到一个算 法中。
状态估计器110把起始状态150和数据输入160做为输入,并提供估计 的状态170做为输出。例如,可以通过起始状态检测器或者人工过程来确 定起始状态150。通过考虑一个以数字图象序列的一个图象(例如视频的 一个帧)中的一个物体的位置为其状态的系统,本发明提供了更具体的例 子。在这样的系统中,起始物体位置可以通过一个使用边缘检测和模板比 较的自动物体检测方法来确定,或者通过用户观看视频来人工确定。数据 输入160可以是一个视频图象序列。估计的状态170可以是在某一特定视频 图象中网球位置的估计。
图2示出了用于实现图1的状态估计器110的示例性设备190。设备190 包括处理装置180,处理装置180用于接收起始状态150和数据输入160,以 及提供估计的状态170做为输出。处理装置180对存储装置185进行存取, 存储装置185用于对数字图象序列中的某一特定图象相关的数据执行存 储。
估计的状态170可以被应用于多种用途。为提供进一步的上下文环境, 使用图3和图4来描述几种应用实例。在图3所示的一种实现中,系统200包括一个连接到发送/存储装置220 的编码器210。编码器210和发送/存储装置220可以使用计算机或者通信编 码器来实现。编码器210读取由图1中系统100的状态估计器110提供的估计 状态170,以及读取由状态估计器110使用的数据输入160。编码器210根据 多种编码算法中一种或多种对数据输入160编码,并提供经过编码的数据 输出230给发送/存储装置220。
进一步地,编码器210使用估计状态170对数据输入160的不同部分进 行有区别地编码。例如,如果状态所表示的为视频中物体的位置,编码器 210则使用第一编码算法对与估计的位置相对的视频的部分进行编码,以 及使用第二编码算法对不与估计的位置相对的视频的另一部分进行编码。 第一编码算法可能比第二编码算法提供更多的编码冗余,从而估计的物体 的位置(最好是物体)在再生成的过程中会具有比视频其它部分更多的细 节和更好的分辨率。
因此,低分辨率传输可以为被追踪的物体提供较高的分辨率,从而允 许用户更容易的观看高尔夫比赛中高尔夫球。 一个这样的实现允许用于在 较小的带宽(低数据率)的情况下在移动设备上观看高尔夫比赛。移动设 备可以是蜂窝电话或个人数字助理。通过使用低数据率对高尔夫比赛的视 频进行编码,从而把数据率维持在较低的水平,但是相对于图象的其它部 分,额外的比特被用来编码高尔夫球。
传输/存储装置220可能包括存储装置和传输装置 的一个或多个。相 应地,传输/存储装置220读取经过编码的数据230,并或者传输数据230, 或者存储数据230。在图4所示的一个实现中,系统300包括连接到本地存储装置315和显 示器320的处理装置310。处理装置310读取图1系统100的状态估计器110提 供的估计的状态170,以及读取状态估计器110使用的数据输入160。处理 装置310使用估计的状态170来增强数据输入160,并提供增强的数据输出 330。处理装置310可以把包括估计的状态、数据输入以及它们的元素的数 据存储到本地存储装置315,并能从本地存储装置315中重新获得这些数 据。显示器320读取增强的数据输出330,并把这些增强的数据在显示器320 上显示出来。
在图5中,图400为动态系统的状态的概率分布函数410。图400示意性 地描述了状态估计器110的一个实现执行的各种函数。图400示出了在A、 B、 C和D级别处的一个或多个函数。
级别A示出了通过使用PF, 4个粒子A1、 A2、 A3和A4的生成。方便起见, 使用垂直虚线指示4个粒子A1、 A2、 A3和A4的每一个粒子在概率分布函数 410上对应的位置。
级别B示出了基于均值移动分析通过使用本地模式査寻算法,4个粒子 A1—A4到其对应粒子B1—B4的转移。方便起见,使用垂直实线指示4个粒 子B1、 B2、 B3和B4的每一个粒子在概率分布函数410上对应的位置。使用 相应的箭头MS1—MS4来图形化地示意出粒子A1—A4中每一个粒子的转移, 这些箭头分别指示了从由粒子A1—A4指示的位置到由粒子B1—B4指示的 位置的粒子移动。
级别C示出了经过加权的粒子C2—C4,它们分别和粒子B2—B4有同样 的位置。粒子C2—C4有着不同的大小,其大小指示了在PF中确定的用于粒子B2—B4的权重。级别C还反映出根据一个抽样处理粒子数量的减少,例 如,该抽样处理为KLD抽样处理,其中,粒子B1在该抽样处理中被丢弃。 级别D示出了在一个再抽样处理中生成的三个新的粒子。如箭头R所示 (R代表再抽样),在级别D中生成的粒子的数量和级别C中生成的粒子数量 相同。
图6示出了用于在数字图象序列的图象中确定物体位置的方法的处理 流程600。基于前帧的位置信息估计物体的轨迹605。本领域的技术人员知 晓轨迹估计方法。运行粒子滤波器610。下面会描述粒子滤波器的各种实 现。检查由粒子滤波器的输出预测的物体的位置是否被阻挡615。下面会 对用于检査是否被阻挡的方法的实现进行说明。如果发现阻挡620,那么 使用车九迹投影禾口插值(trajectory projection and interpolation)来 确定一个位置625。下面会结合图16说明位置确定的一个实现。如果没有 发现阻挡,那么粒子滤波器的输出被用于确定粒子位置630。如果没有发 现阻挡,那么为了偏差(drift)对模板进行检测635。偏差为在模板中的 变化,例如,物体变远、变近或者颜色变化,会引起模板的变化。如果发 现偏差超过一个阈值635,那么就不更新物体模板640。因为大的偏差值意
味着存在粒子阻挡,所以这一措施将会很有用。基于粒子阻挡来更新模板 会致使差模板被使用。相反地,如果偏差没有超过该阈值,则对模板进行 更新645。当小的变化(小的偏差值)发生时,这些变化在很大程度上是 发生在物体上的真实的变化,并且该变化也不是由于阻挡引起的。
图7示出实现粒子滤波器的方法500。方法500包括从前一状态 (previous state)中读取粒子的一个起始集合和累积加权因子510。累积加权因子可以从一个粒子权重集合中生成,并且通常允许快速处理。值 得注意的是,当第一次执行方法500时,前一状态为起始状态,并且粒子 的起始集合和权重(累积加权因子)需要被生成。例如,该起始状态可以 被用来做为图1的起始状态150。
再转回图7,对循环控制变量"it"进行初始化515,并在确定当前状 态之前重复执行循环520。循环520使用循环控制变量"it",并执行 "iterate"次。在循环520中,对粒子的起始集合中的每一个粒子都单独 使用一个循环525中进行处理。在一个实现中,对以网球比赛的视频应用 PF用于追踪网球。对于每一个新帧把循环520执行预先确定的次数(循环 重复变量"iterate"的值)。循环520的每一次执行都会改进粒子的位置, 从而,当为每一帧估计网球的位置的时,该估计被推定是基于良好的粒子。 循环525包括基于累积加权因子选择粒子530。 一个选择的方法是选择 带有最大权重的剩余的粒子位置。值得注意的是,同一个位置可能存在很 多粒子,在这种情况下,只需要对每一个位置执行一次循环525。然后, 循环525包括通过对选择的粒子在状态空间里预测一个新的位置来对粒子 进行更新535。该预测使用PF的动态模型。下文将会对这一步进行详细地 说明。
动态模型以帧和帧之间物体状态的变化为特征。例如,可以使用反映 物体运动量的运动模型或着运动估计。在一个实现中,带有固定噪点变化 的固定常量速度模型(fixed constant velocity model with fixed noise variance)在过去的帧中被适应于物体的位置。
然后,循环525包括使用PF的测量模型确定更新的粒子的权重540。确定权重包括对观测/测量的数据(例如当前帧的视频数据)进行分析。继 续以网球比赛为例,把当前帧中粒子指示位置的数据和网球前一个位置的 数据相比较。这个比较可能包括分析颜色直方图或者执行边缘检测。基于 比较的结果确定这个粒子的权重。操作540也包括为粒子位置确定累积加 权因子。
然后,循环525包括确定是否有别的粒子要进行处理542。如果有更多 的粒子要进行处理,那么循环525要被重复执行,并且方法500跳转到操作 530。在对粒子的起始集合(或者旧的集合)中的所有粒子执行完循环525 之后,更新粒子的一个完整的集合会被生成。
然后,循环520包括使用再抽样算法来生成粒子的一个新的集合和新 的累积加权因子545。再抽样算法是基于粒子的权重,从而关注带有较大 权重的粒子。再抽样算法生成粒子的一个集合,在这个集合中,所有的粒 子都具有相同的权重,但是很多粒子都位于某些位置上。因此这些位置一 般具有不同的累积加权因子。
再抽样还可以减轻PF中常见的退化问题。有很多方法可以用于再抽 样,比如多项再抽样、剩余再抽样、分层再抽样和系统再抽样。因为剩余 再抽样对于粒子次序不敏感,所以一个实现使用剩余再抽样。
循环520通过增加循环控制变量"it" 550和把"it"与重复变量 "iterate"比较555来继续运行。如果还需要继续运行循环520,则把粒 子的新的集合及其累积加权因子变为可使用560。
在把循环520执行"iterate"次后,这个粒子集合应该为良好的粒子 集合,并且确定当前的状态565。通过对新的粒子集合中的粒子进行平均来确定新的状态。
图8说明了包括粒子滤波器的处理流程的另一个实现。其整体处理流 程与上面结合图7介绍的处理流程类似。因此下面将不会详细描述图7和图
8中相同的元素。方法800包括从前一状态中获取粒子的起始集合和累积加 权因子805。对循环控制变量"it"进行初始化810,并且在确定当前状态 之前重复地执行循环。在该循环中,根据累积加权因子选择出一个粒子。 该方法然后通过为该选择出的粒子在状态空间中预测一个新的位置来对 粒子进行更新820。该预测使用PF的动态模型。
然后,使用相关面(correlation surface)查寻粒子的本地模式, 例如基于SSD的相关面825。先识别出SSD的本地最小量(local minimum), 然后把粒子的位置改变为识别出的SSD的本地最小量。另一个实现使用合 适的表面识别这个表面的本地最大量(local maximum),然后把粒子的位 置改变为识别出的本地最大量。然后在测量模型中确定这个移动的粒子的 权重830。作为例子,下面将描述使用相关面和多假设来计算权重的方法。 如果有别的粒子要进行处理835,那么该循环返回去挑选一个粒子。如果 已经处理完所有的粒子,那么基于新的权重对粒子进行再抽样,并且生成 一个新的粒子组840。增加循环控制变量"it"的值845。如果"it"小于 重复阈值850,那么该方法把旧的粒子组和新的粒子组进行转换870,并且 重复上述处理过程。
如果所有的重复己经执行完毕,那么在获得当前状态之前还需要执行 一个步骤。在前帧中检查用于物体的阻挡指示器(occlusion indicator) 855。如果阻挡指示器表明前帧中存在阻挡,那么考虑粒子的一个子集用于选择当前状态860。具体最大权重的粒子被选入到粒子的子集中。在一 个实施方式中,粒子的子集为带有最大权重的一个粒子。如果具有相同的 最大权重的粒子数量超过l个,那么这些具有最大权重的粒子都被选入到 粒子的子集中。粒子的状态可能被视为检测状态。之所以选择出粒子的子 集,是因为阻挡降低了带有较低权重的粒子的可靠性。如果阻挡指示器表 明前帧中不存在阻挡,那么新的粒子组的平均量会被用来确定当前状态
865。在这种情况下,粒子的状态是追踪状态。能够认识到,根据粒子的 权重可能对平均量进行加权。还能够认识到,可以使用除了平均量(比如 平均数)外的其它统计测量来确定当前的状态。
图9示出了图8的动态模型820的一个实现900。在动态模型中,前帧中 的运动信息会被使用。通过使用前帧的运动信息,粒子将更加可能接近物 体的实际位置,从而提高效率、准确性或者两者兼顾。在动态模型中,做 为一种替代方案,可以使用随机行走来生成粒子。
动态模型可能使用用于小物体追踪的状态空间模型。例如,在时间t, 用于在数字图像序列的一个图象中追踪小物体的状态空间模型用公式表 达为-

其中,Zf表示物体状态向量,^表示观察向量,,和g表示两个向
量值函数(分别为动态模型和观察模型),^和《分别表示处理或动态噪 声和观察噪声。在运动估计中,物体状态向量被定义为X二 (x, y),其中
(x, y)是物体窗口中心的坐标。优选地,估计的运动从前帧的数据中获
得,以及可能使用光流等式(optic lfow equation)估计出来。用F表示物体在时间t时候的图象中估计的运动。动态模型可表示为
预测噪声方差(variance of prediction noise)"可以从运动数据 中估计出来,例如从运动估计的错误测量中估计预测噪声方差。可以使用 光流等式中的运动剩余。做为选择地,预测噪声方差可能为基于亮度的标 准,例如运动补偿剩余;但是,基于运动数据的方法可能会优于基于亮度 数据的方差。
如块905所示,为每一个粒子读取一个存储的阻挡指示器。阻挡指示 器指出物体在前帧中是否被阻挡。如果读取的阻挡指示器指出物体被阻挡 910,那么在动态模型中不应用运动估计925。能够认识到,阻挡会削弱运 动预测的正确性。粒子的预测噪声方差值会被设置为最大量930。与之相 对地,如果读取的阻挡指示器指出前帧中不存在阻挡,则使用运动预测来 生成粒子915。使用预测噪声方差的方法从运动数据中估计预测噪声方差 920。
图10示出了抽样前在粒子滤波器的动态模型中为每一个粒子执行的 处理流程的一个实现1000。最初,检査内存中的阻挡指示器1005。该阻挡 指示器用于指示前帧中物体的阻挡。如果在前帧中发现物体被阻挡1010, 那么在动态模型中不使用运动估计1030,并且粒子的预测噪声方差被设置 为最大量1035。如果存储的阻挡指示器没有指出物体在前帧中被阻挡,那 么执行运动估计1015。
运动估计可能基于在光流等式中使用以往帧中物体的位置。本领域的 技术人员知晓光流等式。运动估计之后,在由运动估计产生的粒子位置上 执行失败检测1020。多种度量方法可以用于失败检测。在一个实现中,计算模板对应的物体图象和其中心位于从运动估计获得的粒子位置周围的 图象块之间的绝对亮度差的平均量。如果该平均量超过了一个选定的阈 值,那么该运动预测就被视为是失败的1025,并且不为粒子使用运动预测
结果1030。粒子的预测噪声方差可能被设置为最大量1035。如果运动预测 没有被视为失败,则运动预测结果被保存1040,把其做为该粒子的预测。 然后对预测噪声方差进行估计1045。例如,可以使用光流等式来提供运动 剩余值,该运动剩余值可被用做预测噪声方差。
图11描述了使用测量模型计算粒子权重的一个实现。对每一个粒子执 行方法IIOO。方法1100以度量面的计算做为开始,例如,其可以是块1105 指示的相关面。度量面被用来测量模板或目标模型和当前候选粒子间的差 别。在一个实现中,可以按照下文所述的方法来生成度量面。
用于模板和侯选粒子之间差别的度量可以是度量面,例如相关面。本 发明的一个实现使用了平方差总和(sum of squared differences, SSD) 面,其公式如下,
<formula>formula see original document page 20</formula>
其中,W表示物体窗口, Neib为物体中心A周围小的周边区域。T是物 体模板,I是当前帧中的图象。在带有杂乱背景的小的物体中,这个面不 代表准确的可能性估计。进一步的示例性的相关面如下<formula>formula see original document page 20</formula>
相关面的大小可能会不同。基于运动估计的质量,相关面的大小会有 所不同。其中,运动估计的质量可以确定做为方差的倒数。 一般地,运动估计质量越高,相关面就越小。
基于度量面生成用于粒子运动的多假设iiio。侯选假设和相关面的本 地最小量或者最大量相关联。例如,如果J个SSD相关面的侯选在区域Neib
中被设别,那么J+1个假设被定义为 //0={。=C:_/ = 1, ...,/},
= (。 = r,c, = C:/ = Z#y二^ ... 乂
其中,。=7意味着第」'个侯选是真实匹配,。;e则相反。假设仏意
味着没有一个侯选是真实匹配。在这个实现中,我们假设杂乱均匀地分布
在周边区域Neib上。否则,面向真实匹配的测量(true match-oriented measurement)为高斯分布。
基于上述假设,与每一个粒子相关的可能性被表达为
尸o, i =《o"(.)+Cw Z!二力.w(。 , a )
其中,^为标准化因数,《。是假设仏的事前概率(prior
probability), ^是假设^的概率,j=l,…,J。相应地,通过多假设的 使用,使用SSD的可能性测量被进一步改进,从而能够把杂乱纳入到考虑范围。
在块1115中,估计响应分布方差(response distribution variance)。 执行用于确定粒子是否被阻挡的粒子阻挡确定。该粒子阻挡确定可以 依据基于亮度的评估1120,例如,平均差总和(sum of average differences, SAD)度量。该度量被用于比较物体模板和侯选粒子。本领域技术人员知晓 该基于亮度的评估。基于SAD,对那些很有可能被阻挡的粒子进行确定。阻挡的基于亮度的评估在计算量上相对简便,但是在具有杂乱背景的情况 下,该评估可能不是很准确。通过设置一个大的阈值,通过使用基于亮度 的评估1125, 一些粒子会被确定为被阻挡的粒子。对于这些粒子,把它们 的权重设置为最小量1130。在这种情况下,有很大可能发生了阻挡。例如, 选择一个阈值使其能够识别不带有杂乱的实阻挡的情况,但是识别不出其 它情况的阻挡。
如果基于亮度的评估指出没有阻挡,则执行概率粒子阻挡确定1135。
概率粒子阻挡检测可以基于生成的多假设和响应分布方差估计。生成一个
趋近于SSD表面的分布,并且基于该生成的分布,使用协方差矩阵的特征 值来确定阻挡的存在与否。下面将给出进一步的说明。
响应分布被定义用于在真实匹配位置上趋近于概率分布。换言之,粒
子位置是真实匹配位置的概率D为
D(A) = exp(-P'K义,)),
其中,p是标准化因子。标准化因子的选择要使得能够保证一个选择
的最大量响应,比如最大量响应为0.95。从响应分布中构造的与测量^相
关的协方差矩阵^为
'LZ(w"'",力"-、)("力) S(wA",力("6)2」"
其中,(、,力)是每个侯选的窗口中心,^ "2^,力E他,力A"力是协 方差标准化因子。使用协方差矩阵《的特征值的倒数做为与侯选相关的置
信度量(confidence metric)。在一个实现中,把协方差矩阵《的最大特 征值与一个阈值相比较。如果最大特征值超过了该阈值,那么检测为存在阻挡。响应于检测出阻挡1140,赋予粒子最小有效权重1130,该最小有效
权重通常不为o。如果检测出不存在阻挡,则计算一个可能性。
在一个实现中,如果检测出阻挡,该方法在不考虑轨迹的前提下基于 亮度和运动生成粒子可能性,而不是把权重或者可能性设置为最小值。另 一方面,如果没有检测出阻挡,那么基于亮度生成粒子的可能性。
在一个实现中,将要赋予给粒子的权重至少部分基于粒子指示位置的 周边的部分图象的考虑。例如,对于一个给定的粒子,把物体模板的一个
片,如5X5的像素块,和该粒子指示的位置以及其它区域相比较。该比较 可能基于绝对误差总和(sum of absolute differences, SAD)矩阵或者直 方图,对于大的物体尤其如此。把物体模板和粒子指示位置周围的图象相 比较。如果偏离位置比较(off-position comparison)显示明显的不同, 则赋予粒子一个较大的权重。另一方面,如果粒子指示的区域和其它区域 很相似,则相应地减少粒子的权重。基于比较,生成如SSD这样的相关面 来对偏离位置区域建模。
如果确定的结果是粒子没有被阻挡,则对轨迹可能性进行估计1145。 使用加权的确定来估计粒子权重1150。
加权的确定包括亮度可能性(例如,模板匹配),运动可能性(例如,
物体过去位置的线性外推)和轨迹可能性中的一个或多个。粒子滤波器可
能考虑这些因素来确定每一个粒子的可能性或权重。在一个实现中,我们
假设摄像机的运动不会影响轨迹平滑(trajectory smoothness),因而其
不会影响轨迹可能性。在一个实现中,粒子可能性的定义如下, I X,) = P(Z)加IX,)户(Z广'IX, )P(Z,'。 I)其中,Z'=『',Zm ^是基于ssD面的亮度测量,Z'自是运动可 能性,";是轨迹可能性。这三个值一般被认为是独立的。本领域的技术
人员知晓亮度可能性P(z"1 D的计算。
基于粒子位置变化(速度)和当前帧内物体位置的平均变化的差值来 计算运动可能性
L -flA^-^ + flAM-M, t>1
其中,C^i,Ajrf是关于O^^J的粒子位置变化,C3^5)是选择的当前
帧内的物体的平均速度,艮P,
因此,可以基于动态模型预测的位置和粒子位置之间的距离《。'(例 如,欧几里德距离)来计算运动可能性。该计算公式如下,
在一个实现中,可以从粒子相对于轨迹的接近度中估计轨迹平滑可能 性,该轨迹基于视频的当前帧中物体的一系列位置来计算。轨迹函数表达 为y二f (x),其参数形式如下,
其中,"'表示多项式参数,m是多项式函数的阶(例如,m=2)。在轨 迹函数的计算中,公式可能被修改。第一种修改的情况为,如果在过去的 一个帧中物体位置对应为阻挡状态,那么忽略或不考虑物体位置。第二 修改的情况为, 一个叫做遗忘因子的权重因子被计算用来对粒子相对于轨 迹的接近度进行加权。在其中物体被阻挡的帧的数量越多,估计的轨迹就越不可靠,相应地,遗忘因子也就越大。
遗忘因子只是一个置信值。用户基于多方面的考虑为遗忘因子赋值。 例如,这些考虑包括前一图像中物体是否被阻挡,在其中物体被阻挡的在 前的帧的数量,在其中物体连续被阻挡的在前的帧的数量,以及非阻挡数 据的可靠度。每一个图象可能具有一个不同的遗忘因子。
在一个示例的实现中,给出如下的轨迹平滑可能性
,. i y-ocT p(z;。 i《)=Ti-eXpf L "丄 J)
",■ 2c^乂
其中,接近度的值为《。=|;; —/(X)I, ^是人为选择的遗忘比率, 0〈、<1 (例如,~=0.9), t—ocl是在其中物体被阻挡的最近的帧的数量。
在一个实现中,如果确定在前一帧中物体被阻挡,则基于亮度可能性 和轨迹可能性来确定粒子可能性,在这里,粒子可能性的确定不考虑运动 可能性。如果确定在前一帧中物体没被阻挡,则基于亮度可能性和运动可 能性来确定粒子可能性,在这里,粒子可能性的确定不考虑轨迹可能性。 通常这么做是有益的。这是因为当在前一帧中知道物体位置的时候,提供 轨迹限制通常带来的好处比较少。并且轨迹限制的引进会破坏时间马尔可 夫链假设,即,轨迹限制的使用使得后续的状态依据帧中的状态,而不是 依据前一帧。如果物体被阻挡或者运动估计被确定低于一个阈值,那么在 粒子可能性的确定中包括运动可能性不会有任何好处。在这个实现中,粒 子可能性表达如下,
其中,如果物体被阻挡,那么0,=0,否则其值为l。 图12示出了相对于视频帧中物体的位置对物体的轨迹进行适应。元素
251205、 1206和1207代表了一个小物体在视频的三个帧中的位置。元素1205、1206和1207在一个区1208中,并且没有被阻挡。元素1230和1231代表小物体在元素1205、 1206和1207代表的帧之后的两个视频帧中的位置。元素1230和1231在区1232中,并且确定为被阻挡,从而对于确定的位置有着等级很高的不确定性。因此,在图12中,t—ocl=2。 1210为实际的轨迹。实际的轨迹被投影到一个预测的轨迹1220。
图13示出了模板的一个实现的处理流程。在图13处理流程的开始,估计物体的一个新的状态。例如,可以使用粒子滤波器来进行估计。这个新的估计的状态与物体在新的一个帧中的估计位置相对应。图13的处理流程1300可以用来确定是否使用现有的模板估计下一帧的状态。如步骤1305所示,在当前帧中物体新估计的位置上执行阻挡检测。如果检测出阻挡1310,则在内存中设置一个阻挡指示器1330。例如,该阻挡指示器的指示可能被粒子滤波器用于后续帧。如果没有检测出阻挡,那么处理流程继续检测偏差(drift) 1315。在一个实现中,偏差可能以新帧中物体的图象和起始模板之间的运动剩余的形式存在。如果偏差超过一个阈值1320,则不更新模板1335。如果偏差没有超过阈值,则使用当前帧的物体窗口更新模板。并且对物体运动参数也进行更新。
图14的流程图示出了用于更新物体模板和改进位置估计的处理流程1300的另一个实现。在处理流程1400中,在确定当前物体状态后,对确定的物体位置和当前帧执行阻挡检测1405。如果检测出阻挡1410,则修改已经估计出的物体位置。因为阻挡会降低"确定的物体位置 计是有用的。在一个例子中,阻挡的确定可能是基于杂乱的存在,并且确定的物体位置可 能实际上是一些杂乱的位置。
通过使用和轨迹平滑相关的信息来实现修改。通过使用前帧的位置数 据的信息,物体位置被投影在一个确定的轨迹上1415。例如,可以采用使 用常速度的直线投影。对位置进行改进1420。
图15示出了在轨迹上投影物体位置和改进该物体位置的过程。1505为 一条轨迹。位置1510代表先前的一个帧中物体的位置。数据点1515代表在 j时刻的一个先前帧中的位置^。数据点1520代表在i时刻的一个先前帧中 的位置《。数据点1510、 1515和1520代表了没有被阻挡的物体位置,因此, 其为相对高质量的数据。数据点1525、 1530、 1535和1540代表了物体在先 前帧中的位置,但是都遭受了阻挡。相应地,这些数据点在轨迹计算过程 中或者被忽视或者被赋予小的权重。轨迹1505通过适应这些数据点被生 成,其中,这些数据点中的一些数据点因为阻挡而被加权。
使用直线和常速度来执行在时刻为cur的当前帧中物体位置的起始计 算。其使用的公式如下
<formula>formula see original document page 27</formula>
这是一个直线投影1550 (也被称为线性外推)。通过使用直线预测获 得当前帧的估计的起始位置1545 (也被称为线性位置估计)。然后,当前
帧的估计的起始位置被投影到计算后的轨迹的位置A"r (也被称为投影 点)。^"r是轨迹上距离Z,最近的点。该预测使用的公式如下<formula>formula see original document page 27</formula>
其中,^是遗忘比率,0<々<1 (例如,、=0.9), t—ocl是从上一次物体可见开始在其中物体被阻挡的帧的数量。在一个实现中,投影可能为 Z,和^^之间以内插值替换的轨迹上的一点。因而,投影将位于^^和 之^之间的一条线上。在这个实现中,投影表示如下
在图15中,物体在最近的两个帧中被阻挡,这两个帧为1530和1535。 因此,t_ocl=2。通过应用这个公式,物体位置被移动到轨迹和直线投影 之间的一个位置。t一ocl的值越大,轨迹就越不确定,相应地,物体位置 也就越接近直线投影。在图15给出的例子中,确定了以内插值替换的位置 1540。因为位置1540在被阻挡区1560中,因此位置1540被阻挡。
再转回到图14,当阻挡检测结果为没有阻挡的时候,下面对其后续流 程进行说明。确定物体模板的偏差1425。通过对当前模板和起始模板应用 运动估计来检测模板的偏差。比较它们的结果。如果在应用运动估计后两 个模板之间的差值超过一个阈值1430,则存在着偏差。在该情况下,则不 对先前模板进行更新1445,并获得一个新的模板。如果差值不超过该阈值, 则对模板进行更新1435。
这个处理流程中也包括了对内存中的阻挡指示器进行更新1440。在对 后一帧进行位置估计的时候,在粒子滤波器中对前一帧的阻挡指示器进行 检测。
图16示出了方法1600。该方法包括在用于追踪物体的基于粒子的框架 中生成度量面1605。该度量面与数字图象序列中的某一特定图象相关。基 于该度量面,生成该图象的物体位置的多假设1610。基于多假设的概率估 计物体的位置1615。在图17中,方法1700包括对用于数字图象序列的某一特定图象中物体 的运动估计进行评估1705,该运动估计基于该数字图象序列的前一个图 象。基于计算的结果为该物体选择至少一个位置估计1710。该位置估计为
用于追踪物体的基于粒子的框架的一部分。
在图18中,方法1800包括在用于在数字图像序列的图象之间追踪物体 的基于粒子的框架中选择一个粒子1805,该粒子有一个位置。方法1800还 包括读取一个面,该面指示了一个或多个粒子与物体相匹配的程度1810。 方法1800还包括在该面上确定一个位置1815,这个位置与所选粒子相关, 并且这个位置还指示了所选粒子与物体相匹配的程度。方法1800还包括把 确定的位置与该面的本地最小量或者本地最大量相关联1820。方法1800还 包括对应着确定的本地最小量或者本地最大量对所选粒子的位置进行移 动1825。
在图19中,方法1900包括为数字图象序列中的物体生成一个物体模板 1905。方法1900还包括在数字图象序列的一个特定图象中生成估计的物体 位置,其中,通过使用基于粒子的框架来生成该估计。把物体模板与在估 计位置处的图象部分相比较1915。基于比较的结果来确定是否对物体模板 进行更新1920。
在图20中,方法2000包括在用于在数字图象序列的图象之间追踪物体 的基于粒子的框架中,执行基于亮度的评估来检测阻挡2005。在一个实现 中,基于亮度的评估可能是基于数据关联。如果没有检测出阻挡2010,则 执行概率评估来检测阻挡2015。在一个实现中,概率评估可能包括上述的 基于相关面的方法。选择性地存储阻挡检测处理结果的指示器2020.在图21中,方法2100包括选择有效粒子的一个子集用于在数字图像序
列的图象之间追踪物体2105。在一个实现中,如图21所示,选择具有最高 可能性的粒子。基于所选的粒子的子集对状态进行估计2110。
在图22中,方法2200包括确定数字图像序列的某一帧中估计的物体位 置是否被阻挡2205。为该物体估计轨迹2210。基于估计的轨迹改变估计的 物体位置2215。
在图23中,方法2300包括确定一个物体轨迹2310。例如,物体在数字 图象序列的某一特定图象中,并且轨迹是基于数字图像序列中一个或者多 个在前图象中的一个或多个在前位置。方法2300还包括基于粒子到轨迹的 距离确定粒子权重2320。例如,该粒子在用于追踪物体的基于粒子的框架 中被使用。方法2300还包括基于确定的粒子权重确定物体位置2330。例如, 可以使用基于粒子的框架来确定物体位置。
例如,本发明的实现可以用于生成物体的位置估计。位置估计可以被 用于对包含物体的图象进行编码。编码可能使用MPEG—1、 MPEG—2、 MPEG —4、 H. 264或其它编码技术。可以在信号介质或者处理器可读介质上提供 位置估计或者编码。这些实现也可被修改用于非物体追踪的应用或者非视 频的应用。例如,状态代表的是一个特征而不是物体位置,并且其也不必 和物体有关。
这里所描述的实现可以实现在方法、流程、设备或者软件程序中。即 使仅仅以某一种形式对实现进行了描述(例如,仅仅使用方法进行描述), 实现还可以以其它形式进行实现(例如,设备或者程序)。例如,设备可 以在适当的硬件、软件和固件中实现。方法可以在一个设备中实现,例如,设备为处理器。处理器一般也被称作处理装置。其通常包括计算机、微处 理器、集成电路和编程逻辑装置。处理装置还包括通信装置,例如,计算 机、蜂窝电话、移动数字助理/个人数字助理,和其它用于终端用户间信 息交换的装置。
本发明描述的各种处理流程和特征的实现可能被包含在各种设备或 者应用中。例如,与数据编解码相关的设备或者应用。设备的例子包括视 频编码器、视频解码器、视频编解码器、网络服务器、机顶盒、笔记本、
个人电脑、蜂窝电话、个人数字助理和其它通信设备。应该清楚的是,设 备可以是移动的,甚至可以安装到移动的交通工具中。
此外,可以通过可由处理器执行的指令来实现本发明的方法,并且这 些指令可以被存储在处理器可读介质上,例如,集成电路,软件载体或者
其它存储设备,例如,硬盘、光盘、随机存取存储器(random access memory, RAM)或者只读存储器(read-only memory, R0M)。这些指令可以形成应 用软件,然后有形地存储在处理器可读介质上。指令可以存在于硬件、固 件、软件及其组合中。指令可以在操作系统、单独的应用程序或者两者的 组合中被发现。处理器表现为用于执行处理流程的装置或者包括具有执行 处理流程指令的计算机可读介质的装置。
本领域的技术人员能够认识到,本发明的实现能够生成信号,用于承 载被存储或传输的信息。其中,信息包括用于执行方法的指令或者由上文 描述的一个实现产生的数据。信号可以被格式转换为电磁波(例如,使用 频谱的射频部分)或基带信号。格式转换步骤可能包括对数据流进行编码, 以及使用编码后的数据流对载波进行调制。信号承载的信息可能为模拟信息或者数字信息。信号可能在多种不同的有线链路或者无线链路上传输。
本发明描述了多种实现。但是,应该认识到,可以对这些实现做不同
的修改。例如,不同的实现的组成部分可以组合、添加、修改或者移除,
从而生成其它的实现。另外,本领域的技术人员能够认识到可以使用其它
结构和处理流程来代替本发明描述的结构和流程,并且能够至少能够以基
本相同方式,实现基本上相同的功能,并达到基本相同的效果。相应地,
这些实现能够被发明所预见,并且被本发明的权利要求的保护范围所覆 生
权利要求
1.一种方法,包括确定数字图像序列的一个特定图象中的物体的轨迹,所述轨迹基于在所述数字图像序列的一个或多个在前图象中的一个或多个在前的物体位置;在用于追踪物体的基于粒子的框架中为一个粒子确定一个权重,所述权重的确定基于所述轨迹到所述粒子的距离;和使用所述基于粒子的框架为所述物体确定一个位置估计,所述位置估计基于确定的粒子权重。
2. 如权利要求l所述的方法,进一步包括 确定包括所述物体的位置估计的所述特定图象的物体部分; 确定和所述物体部分相分离的所述特定图象的非物体部分;和 对所述物体部分和所述非物体部分进行编码,使得所述物体部分的编码比所述非物体部分的编码带有更多的编码冗余。
3. 如权利要求l所述的方法,其中,所述物体足够的小,使得所 述物体的一个或多个在前位置在一个图象中互相不重叠。
4. 如权利要求l所述的方法,其中,在所述基于粒子的框架中为 所述粒子确定权重也基于下面的一个或多个在所述数字图像序列的一个或多个在前图象中的一个或多个在前 的物体位置的线性外推;和一个模板和对应于粒子位置的所述特定图象的部分的比较。
5. 如权利要求l所述的方法,其中,确定的轨迹是非线性的。
6. 如权利要求l所述的方法,其中,用于确定所述轨迹的一个或 多个在前的物体位置是非阻挡的位置。
7. 如权利要求l所述的方法,其中,所述轨迹的确定至少部分地 基于所述数字图像序列的在前图象中加权后的物体阻挡出现率。
8. 如权利要求l所述的方法,其中,在生成轨迹的过程中不考虑在所述数字图像序列的在前图象中处于阻挡状态的物体位置。
9. 如权利要求l所述的方法,其中,使用和在一个或多个在前图象中的物体阻挡相关的信息对估计的轨迹的可靠性进行加权。
10. 如权利要求1所述的方法,其中所述物体的大小小于30像素。
11. 如权利要求1所述的方法,其中,所述基于粒子的框架包括 粒子滤波器。
12. 如权利要求l所述的方法,其中所述方法被实现在编码器中。
13. —种设备,包括存储装置,用于存储和数字图象序列相关的数据;和 处理器,用于(1)确定数字图象序列的一个特定图象中物体的轨 迹,所述轨迹基于在所述数字图象序列的一个或多个在前图象中的一 个或多个在前的物体位置;(2)在用于追踪物体的基于粒子的框架中 为一个粒子确定一个权重,所述权重的确定基于所述轨迹到所述粒子 的距离;和(3)使用所述基于粒子的框架为所述物体确定一个位置估 计,所述位置估计基于确定的粒子权重。
14. 如权利要求13所述的设备,进一步包括编码器,所述编码器 包括所述存储装置和所述处理器。
15. —种处理器可读介质,包括存储在所述处理器可读介质上的 指令,所述指令用于执行确定数字图像序列的一个特定图象中的物体的轨迹,所述轨迹基 于在所述数字图像序列的一个或多个在前图象中的一个或多个在前的 物体位置;在用于追踪物体的基于粒子的框架中为一个粒子确定一个权重,所述权重的确定基于所述轨迹到所述粒子的距离;和使用所述基于粒子的框架为所述物体确定一个位置估计,所述位 置估计基于确定的粒子权重。
16. —种设备,包括用于存储和数字图象序列相关的数据的装置;和 用于执行如下步骤的装置(1)确定数字图象序列的一个特定图象中的物体的轨迹,所述轨迹基于在所述数字图象序列的一个或多个在前图象中的一个或多个在前的物体位置;(2)在用于追踪物体的基于粒子的框架中为一个粒子确定一个权重,所述权重的确定基于所述轨迹到所述粒子的距离;和(3)使用所述基于粒子的框架为所述物体 确定一个位置估计,所述位置估计基于确定的粒子权重。
全文摘要
本发明的一个实现提供了一种用于确定数字图象序列的某一特定图象中的物体的轨迹的方法,该轨迹基于该序列的一个或多个在前图象中的一个或多个在前的物体位置;在用于追踪物体的基于粒子的框架中,基于轨迹到一个粒子的距离确定该粒子的权重;使用该基于粒子的框架为物体确定位置估计,该位置估计基于确定的粒子权重。
文档编号G06T7/20GK101681517SQ200780043400
公开日2010年3月24日 申请日期2007年11月30日 优先权日2006年12月1日
发明者琼·利亚奇, 宇 黄 申请人:汤姆逊许可公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1