运动估计系统中使用图形引擎获取的矢量的对象跟踪的制作方法

文档序号:7848302阅读:145来源:国知局
专利名称:运动估计系统中使用图形引擎获取的矢量的对象跟踪的制作方法
技术领域
本发明涉及输入图像序列的运动估计,尤其涉及与基于相机/观察者的方向和位置产生的候选运动矢量相关联的方法。
背景技术
运动估计,图像、帧或视频场序列中的运动的识别是众所周知的。运动估计的现有方法一般考虑序列中的两个或更多个帧,并创建表示图像区域的从ー个帧到下一个帧的2D平移运动的运动矢量集。运动估计的ー种可能技术是运动搜索,在该技术中,捜索之前的帧以发现与当前帧中的特定区域最佳匹配的图像区域。两个匹配区域的位置差异给出了当前位置的运动矢量。不同的系统具有不同的运动估计需求。在诸如视频编码器的压缩系统中,该需求 是通过參考序列中的先前帧来形成帧的最紧凑表示。该需求通常用于发现给出当前帧与參考帧中的像素区域之间的最佳匹配的运动矢量,因为这导致最紧凑编码。虽然所得到的运动矢量通常表示场景中对象的实际运动,但是并不需要情况总是如此。在其他应用中,诸如对象跟踪或帧率转换,即使视频中的其他失真意味着相应图像区域中的像素并不可能总是彼此最佳匹配,运动矢量表示场景的真实运动仍然是更加重要的。通过在运动搜索过程期间应用合适的约束,结果能够在需要时被指引向“最佳像素匹配”或“真实运动”。帧中的运动矢量集被共同地称为用于那个巾贞的运动矢量场(motion vector field)。注意,如下文所描述的,术语“矢量场”的使用不应与用于描述交织视频序列中的数据的“场”或“视频场”的使用混淆。虽然存在用于运动估计的许多方法,但是共有的实施例是基于块的运动估计器。将通过显示本发明如何与基于块的运动估计器一起使用来描述本专利中公开的发明,虽然本发明的原理也可以应用于其他类型的运动估计器。在基于块的运动估计器中,帧典型地被再划分成称为块或宏块的矩形区域的规则网格。在运动搜索过程中,每个块的像素数据与来自之前帧中的各种候选位置的像素数据进行比较,并计算每个候选的得分函数。具有最佳得分的块的相对位置给出了当前块位置的运动矢量。图I示出了块匹配运动估计器的典型示例。在包括图I的所有附图中,运动矢量用箭头的头位于该矢量所对应的块的中心处示出。帧被分成块,并且之前帧中的对象101已经移动到当前帧中的位置102。该对象的之前位置被示为叠加在当前帧上,并用103表示。针对块而非针对对象执行运动估计,其中当前帧中的一批像素与之前帧中的块大小的像素区域相匹配,其不必是块对准的。例如,块104被移动的对象102部分覆盖,并具有如105处所示的内容。如果执行得好的话,针对块104的运动估计将发现之前帧中的像素数据区域106,也能看到该像素数据区域106包含105中所示的像素,也就是好的匹配已经被发现。通过被叠加回当前帧上,匹配的像素数据区域位于107处。因此,与块104相关联的运动矢量由箭头108示出。不是穷举性地考虑每ー个可能的位置,许多基于块的运动估计器通过用诸如绝对差和(SAD)或平均平方差(MSD)的得分函数对运动矢量候选集进行测试来选择他们的输出运动矢量,以识别给出最低误差块匹配的运动矢量。图2示出了针对当前帧中的块201的候选评估进程,其中块201具有在211中所示的像素内容。在该简单的示例性系统中,考虑了三个运动矢量候选206、207和208,这三个运动矢量候选对应于之前帧中的位置202、203和204处的候选像素数据区域。这些像素数据区域的像素内容分别如212、213和214中所见。显然,位置202处的像素数据提供了针对块201的最佳匹配,因此应该被选为最佳匹配/最低差别候选。通过叠加回当前帧上,匹配的像素数据区域位于205处,并且相关联的运动矢量是206。已知运动矢量在时间和空间上与相邻块中的矢量高度相关,那么这些邻近矢量常常被用作运动估计中所考虑的用于特定块的候选运动矢量集的基础。当视频中的运动改变吋,随机元素也可以被合并到候选中以允许该系统适应。在块具有不能由其邻近块简单预测的运动时,系统可以依赖于矢量候选的随机扰动,称为抖动。这对于缓慢变化的矢量场是好的,但倾向于不允许运动估计器快速聚合于与其邻近块非常不同的新矢量。依赖于随机性的系统可以随时间的推移朝正确的运动游荡,但是易于在局部最小值中形成阻塞,或聚 合得太慢以至于等其到达那里的时候该运动已经再次改变了。因此希望引入能够更准确地预测新的和改变的运动的候选或者改进候选运动矢量的选择以改进矢量场的聚合速度。针对每个块所测试的候选运动矢量的数目常常是在选择足够大以识别真实运动和/或提供具有低残差的良好匹配同时足够小以最小化计算开销的集合之间的折中。视频序列典型地包括视频数据的一系列非交织帧,或视频数据的一系列交织场。交织序列由在显示器的交替行上携帯数据的场产生,以便第一场将携带用于交替行的数据,且第二场将携帯用于缺失行的数据。因此将这些场在时间和空间上分隔开。序列中的每个交替场都将携帯同一空间位置处的数据。不是所有的视频序列都由诸如可由视频相机产生的“真实”图像构成。诸如游戏、虚拟现实环境、计算机辅助设计(CAD)系统等的应用典型地输出可被称为人工生成的视频序列的一系列图像。在计算机图形尤其是在3D计算机图形中,通常使用多个坐标系统。图8示出了三个重要的坐标系统。自然空间是具有任意原点800的空间,在该自然空间中,相机(或眼睛)点810、屏幕位置820以及三个对象830、840和850在平面视图中示出。相机正在指向的方向用860表示。呈现该场景的初始步骤是将对象变换到相机空间。在也以平面视图示出的相机空间中,相机处于原点并沿着z轴指向。屏幕820垂直于观察方向。第二步骤将对象投影到平面空间,其中屏幕上对象的X,y位置并不仅依赖于其x、y位置,而是还依赖于相机空间中他的z坐标。因此这是透视投影,这有助于向该场景提供“三維”外观。在处理传统视频序列的运动估计系统中,对象的运动被认为是对象在显示屏幕上的表示在帧之间移动的距离。运动估计进程在整个屏幕空间中出现。实际上,显示屏幕上对象的运动是通过自然空间中对象的运动、那个运动在屏幕上的投影以及相机的位置和方向的任意改变来确定的。对于视频序列和人工生成的序列而言都是如此,但是在人工生成的序列中可能呈现出特定的问题,诸如3D游戏,其中快速运动常常与观察方向的突然改变相结合。这些相机移动不能由运动估计器容易地进行预測,并因而影响了运动估计性能。为了呈现人工场景,负责创建帧序列的图形引擎必须具有关于场景中的对象的知识(knowledge)以及关于相机位置和方向的细节。虽然场景中的对象的位置和运动通常不能位于图形引擎的外部,但是图形引擎提供API (应用编程接口)是普遍的,该API允许一些信息能够由其他应用使用。方便的是,许多API常常以矩阵的形式提供相机位置和方向的细节,这些细节描述了从自然到相机空间的变换以及到屏幕空间的投影。访问深度(或“Z”)缓冲器信息常常是可能的,该深度缓冲器信息存储屏幕空间呈现的图像中的每个像素位置处对象的深度。在已经使用传统的2D视频相机产生视频序列的情况中,相机位置和深度信息不是常规可用的。尽管如此,如果该信息或该信息的近似信息能够产生,则本发明仍然可以用于改进运动估计。用于近似场景中相机位置、方向以及到对象的距离的可能的方法可以使用计算机视觉中的“运动结构”技术获取。
现有技术Agrawala, Beers 和 Chadda, Model-Based Motion Estimation for Synthetic Animations,ACM Multimedia 1995。

发明内容
本发明引入了生成候选运动矢量的有效方法,该候选运动矢量从相机的位置和方向中获取并可选择地从场景中的相机与对象之间的距离中获取。相机位置和方向的改变有助于以能够用于指导运动矢量候选的选择的可预测方式进行对象的屏幕空间运动。当相机运动与对象深度信息结合时,所得到的屏幕空间对象运动能够在数学上被确定。通过将屏幕空间中的对象运动表示为因相机移动导致的运动和因自然空间中对象移动导致的运动的组合,能够实现运动估计性能的进一步改进。这些方法可以通过依赖于时间和空间上获取的候选来引入以其他方式通过其他矢量传播技术尚未可用的运动矢量候选来进行工作,并提供跟踪顺应因相机/观察者位置改变导致的视运动的运动的更有效的方法。本发明可以克服由用户控制的相机引入的不稳定的运动,允许快速或正在改变的运动区域中的更快聚合,允许考虑更少的候选,和/或补偿观察者位置的改变,所有这些都导致更精确的运动矢量场。


现在将参考附图通过示例的方式详细描述本发明的优选实施例,其中图I示出了典型的块匹配运动估计器;图2示出了块匹配运动估计器如何从候选运动矢量集中选择“最佳”运动矢量;图3示出了由相机位置沿着平行于屏幕的矢量平移造成的屏幕空间运动;图4示出了由相机位置沿着垂直于屏幕的矢量平移造成的屏幕空间运动;图5示出了由相机方向绕着平行于屏幕的轴旋转造成的屏幕空间运动;图6示出了由相机绕着垂直于屏幕的轴旋转造成的屏幕空间运动;图7示出了由相机移动造成的屏幕空间运动对相机至对象的距离的依赖性;图8示出了 3D计算机图形中使用的不同坐标系统的示例;图9示出了屏幕空间运动矢量,该矢量是自然空间中的对象运动导致的矢量与相机的观察位置和方向的变换导致的矢量的和;图10示出了根据像素的深度值的像素分类如何允许多个运动矢量被分配给单个块;图11示出了现有系统中的动量候选矢量查找的示例;图12示出了对相机运动进行补偿的动量候选矢量查找的示例;图13示出了传统运动估计器的系统级框图;图14示出了运动估计器的系统级框图,其中外部“视频结构”系统用于计算近似的相机位置和方向,而且该信息用于在运动估计期间改进候选矢量;图15示出了运动估计器的系统级框图,其中关于相机/观察者位置和方向以及场 景的深度缓冲器的完整信息由图形引擎提供并用于改进在运动估计期间使用的候选矢量。
具体实施例方式在所有附图中,运动矢量用箭头的头位于矢量所对应的块的中心处示出,而且为了简单起见,认为对象具有点的大小。典型相机移动的示例图3至图6示出各种典型相机移动的示例,而且示出了期望产生的视运动矢量。图3示出了在与屏幕的Y轴平行的方向上移动的相机。对于在点301处指出并在由矢量302所示的方向(即向下)上平移的相机,屏幕上的对象的视运动是向上的,如矢量303所示。对于沿着平行于屏幕平面的其他矢量的平移,存在类似的情况。图4示出了在垂直于屏幕的方向上移动的相机。相机在点401处指出并向着场景移动。该场景中的对象的视运动因此是从中心向外的,如由矢量403和404所示的。更接近于屏幕中心的对象将具有更小的矢量,例如403,而更接近于屏幕边缘的对象将具有更大的矢量,例如404。图5示出了绕着大体上平行于屏幕的X轴的轴旋转的相机。相机在点501处指出,并在向上方向上旋转,如502所示。屏幕上的对象的视运动是向下的,如矢量503所示。图6示出了绕着大体上垂直于屏幕的轴旋转的相机。相机在点601处指出并如602所示那样旋转。场景中的对象看起来沿着弧形移动而且运动矢量与弧形相切,诸如603和604。更接近于屏幕中心的对象将具有更小的矢量,例如603,而更接近于屏幕边缘的对象将具有更大的矢量,例如604。3D几何图形三维计算机应用(诸如游戏)中的几何图形典型地在齐次坐标中给出。该表示将允许定义变换矩阵,该变换矩阵包括了相机位置的6个自由度(三个平移和三个旋转)。对于自然空间中的点P,对于相机空间中的相应点q的变换由下式给出
Px
Pvp = J
Pz
I>! h r3 (C= ^ ^ ^ ^
r7 r8 r9 tz
0 0 0 1q=Cp在相机矩阵C中,项tx、ty和tz表示平移,以及项!T1至r9表示旋转。本领域技术人员将意识到,该矩阵还能够表示诸如缩放和剪切之类的变换,但是这些在相机变换中很少使用。然后由投影矩阵P给出q向齐性屏幕空间矢量r的投影,其中矢量d包括dx、dy和 dz,dx和dy是对屏幕的角的补偿,dz是从相机到屏幕的距离
10 0 d:
0 I 0 dv尸=00 I 0
0 0及0r=Pq最后,除以齐次坐标得到2D屏幕上的点s的位置。没有示出比例因子,但是可能还需要该比例因子以将图像正确地映射到显示设备的坐标系统上
「 n^JrwS= ,
Lrv/v典型地,深度缓冲器将存储齐性深度坐标rw。相机移动假设相机矩阵从Clri变成Cn,则必须解决的问题是确定当前帧中的点Sn的之前帧中的屏幕空间位置Sm。随后我们将看到对象Slri的实际屏幕空间位置可以如何区别于预测位置。Slri的计算可以通过第一次从Sn来重构rn并将其变换回自然空间位置? 来实现。假设所述点在自然空间中没有移动,即Pn=Plri,则之后可以使用以上所示的方法将点Plri变换回屏幕空间坐标sn_lt)注意,为了从2D矢量Sn构建4D矢量rn,我们必须使用来自其他位置的信息。齐性深度rw从深度缓冲器获取。rz项看起来已经丢失了,但是能够被重新计算,因为我们从投影矩阵P知道rz=qz以及rw=qz/dz。在下面的等式中,注意,我们使用不同的投影矩阵Pn和Pn+以允许不可能的可能性,即投影可以在帧之间改变
Sxjt ■ rw,
S * r
rnv.n w.nK1= ■
_ _Pn^CrlP;lrnIV1=PlriClriPlri如果自然空间位置pn等于Plri,则rn_x =P _lC _lpn_l
权利要求
1.一种用于图像序列的运动估计的方法,该方法包括以下步骤 a)确定表示所述图像序列中的每对场或帧之间相机或观察者位置和方向的移动的一个或多个运动矢量; b)确定用于从之前场或帧中的对象位置获取场或帧中的对象位置的候选运动矢量集; c)使用表示相机或观察者位置的移动的运动矢量调整所述候选运动矢量集;以及 d)使用调整的候选运动矢量集由运动估计获取所述图像序列的运动矢量集。
2.根据权利要求I所述的方法,其中,使用相机或观察者位置的移动来调整所述候选运动矢量集通过由从由相机位置或方向的改变预测的所述运动矢量中获取的量对常规搜索范围进行偏移来实现。
3.根据权利要求I或2所述的方法,其中,在运动估计进程期间测试的矢量在由相机位置或方向的改变预测的所述运动矢量的方向上被偏置。
4.根据权利要求I、2或3中任一项权利要求所述的方法,其中,用于在运动估计过程期间从候选集中选择矢量的得分函数被修改成与由相机位置或方向的改变预测的运动矢量相类似的有利候选矢量。
5.根据权利要求I所述的方法,其中,所述图像序列中像素的深度信息用于计算因相机位置或方向的改变导致的预测运动。
6.根据权利要求5所述的方法,其中,由调整步骤获取的每个候选运动矢量包括因相机位置或方向的改变导致的矢量与因场景中所述对象的移动导致的矢量之和。
7.根据权利要求6所述的方法,其中,从邻近位置选择的候选运动矢量不利用表示相机或观察者位置的运动的矢量进行调整。
8.根据权利要求7所述的方法,其中,候选运动矢量被存储在由等于因场景中对象的移动导致的运动的分量的矢量所偏移的位置。
9.根据权利要求5或8所述的方法,其中,之前存储在偏移位置的候选运动矢量的获得进一步由从因相机位置或方向的改变而计算的运动中获取的量进行补偿。
10.根据权利要求5所述的方法,其中,所述场景的深度信息的可用性允许根据像素群的类似深度对所述像素群进行分类。
11.根据权利要求10所述的方法,其中,运动估计处理针对多个像素群中的每个像素群而发生,以使每个像素群被分配不同的运动矢量。
12.根据权利要求11所述的方法,其中,分辨率比所述运动估计器通常操作的分辨率更高的深度信息的可用性允许以所述更高分辨率生成运动矢量场。
13.根据权利要求7所述的方法,其中,矢量候选的选择从与当前像素群共享类似深度的邻近位置选择矢量。
14.根据权利要求7所述的方法,其中,用于在所述运动估计进程期间从候选集中选择矢量的得分函数被修改成源自与当前像素群共享类似深度的位置的有利候选矢量。
15.一种用于图像序列的运动估计的设备,该设备包括 用于确定表示所述图像序列中的每对场或帧之间相机或观察者位置和方向的移动的一个或多个运动矢量的装置; 用于确定用于从之前场或帧中的对象位置获取场或帧中的对象位置的候选运动矢量集的装置; 用于使用表示相机或观察者位置的移动的运动矢量调整候选运动矢量集的装置;以及 用于使用调整的候选运动矢量集由运动估计获取图像序列的运动矢量集的装置。
16.根据权利要求15所述的设备,该设备包括用于通过由相机位置或方向的改变预测的量对常规搜索范围进行偏移的装置。
17.根据权利要求15或16所述的设备,其中,由用于通过估计进行获取的装置所测试的矢量在由相机位置或方向的改变所预测的所述运动矢量的方向上被偏置。
18.根据权利要求15、16或17中任一项权利要求所述的设备,其中,用于由通过运动估计进行获取的装置从候选矢量集中选择矢量的得分函数被修改成与由相机位置或方向的改变预测的运动矢量相类似的有利候选矢量。
19.根据权利要求15所述的设备,其中,所述图像序列中的像素的深度信息用于计算因相机位置或方向的改变导致的预测运动。
20.根据权利要求19所述的设备,其中,由所述用于调整所述候选运动矢量集的装置获取的每个候选运动矢量包括因相机位置或方向的改变导致的矢量与因场景中所述对象的移动导致的矢量之和。
21.根据权利要求20所述的设备,其中,从邻近位置选择的候选运动矢量不利用表示相机或观察者位置的运动的矢量进行调整。
22.根据权利要求21所述的设备,其中,候选运动矢量被存储在由等于因场景中对象的移动导致的运动的分量的矢量所偏移的位置。
23.根据权利要求19或22所述的设备,其中,之前存储在所述偏移位置的候选运动矢量的获得进一步由从因相机位置或方向的改变而计算的运动中获取的量进行补偿。
全文摘要
提供了用于图像序列中的运动估计的方法和设备。确定表示图像序列中的每对场或帧之间相机或观察者位置或方向的移动的一个或多个运动矢量。然后确定用于从之前场或帧中的对象位置获取场或帧中的对象位置的候选运动矢量集。该候选运动矢量集使用表示相机或观察者位置的移动的运动矢量进行调整,从而使用所调整的候选运动矢量集获取用于图像序列的运动矢量集。
文档编号H04N5/14GK102771110SQ201180011195
公开日2012年11月7日 申请日期2011年2月18日 优先权日2010年2月25日
发明者S·莫费特, S·菲什威克 申请人:想象技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1