视觉目标跟踪的制作方法

文档序号:6348249阅读:229来源:国知局
专利名称:视觉目标跟踪的制作方法
视觉目标跟踪背景许多计算机游戏和其他计算机视觉应用利用复杂的控制来允许用户操纵游戏人物或应用的其他方面。这些控制可能难以学习,从而对许多游戏或其他应用造成了进入障碍。此外,这些控制可能与这些控制所用于的实际游戏动作或其他应用动作非常不同。例如,使得游戏人物挥动棒球拍的游戏控制可能完全不类似于挥动棒球拍的实际运动。概述提供本概述以便以简化形式介绍将在以下的具体实施方式
中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本发明的任一部分中提及的任何或所有缺点的实现。这里讨论了与视觉目标跟踪有关的各种实施例。所公开的一个实施例包括通过从源接收观察到的目标的深度图像以及获得目标的姿态模型来跟踪目标。姿态模型被光栅化成合成的深度图像。然后至少部分地基于观察到的深度图像和合成的深度图像之间的差异来调整模型的姿态。附图简述图IA示出了跟踪玩拳击游戏的游戏玩家的示例性目标识别、分析和跟踪系统的实施例。图IB示出了图IA的游戏玩家挥出重拳,该重拳被跟踪并且被解释成致使玩家化身在游戏空间中挥出重拳的游戏控制。图2示意性示出根据本发明的一实施例的计算系统。图3示出了用于表示人类目标的示例性身体模型。图4示出了用于表示人类目标的示例性骨架模型的基本上正面的视图。图5示出了用于表示人类目标的示例性骨架模型的斜视图。图6示出了用于表示人类目标的示例性网格模型。图7示出了在视觉上跟踪目标的示例方法的流程图。图8示出了示例性的观察到的深度图像。图9示出了示例性的合成的深度图像。

图10示意性地示出了构成合成的深度图像的像素中的某一些。图IlA示意性地示出了向模型的受力位置施加力。图IlB示意性地示出了向图IlA的模型的受力位置施加力的结果。图12A示出了从图IlA的模型渲染的玩家化身。图12B示出了从图IlB的模型渲染的玩家化身。详细描述本公开内容涉及目标识别、分析和跟踪。具体来所,公开了使用深度相机或其他源来获取一个或多个目标的深度信息。如下文详细描述的,这些深度信息然后可被用于高效且准确地对一个或多个目标进行建模以及跟踪一个或多个目标。这里所述的目标识别、
4分析和跟踪提供了一种健壮的平台,其中可以相对较快的帧率来一致地跟踪一个或多个目标,即使目标移动成已被认为是使用其他方法难于分析的姿态(例如,当两个或更多个目标部分地互相重叠和/或遮挡时;当目标的一部分遮挡同一目标的另一部分时;当目标改变其局部解剖(topographical)外观(如某人触摸他的或她的头)时,等等)。图IA示出目标识别、分析和跟踪系统10的一非限制性示例。具体而言,图IA示出了计算机游戏系统12,该计算机游戏系统12可以用于玩各种各样不同的游戏、播放一个或多个不同的媒体类型、和/或控制或操纵非游戏应用。图IA还示出了高清晰度电视即HDTV 16形式的显示器14,该高清晰度电视可以用于向诸如游戏玩家18之类的游戏玩家呈现游戏视觉。此外,图IA示出了深度相机20形式的捕获设备,其可以用于视觉地监视诸如游戏玩家18之类的一个或多个游戏玩家。图IA中所示的示例是非限制性的。如下面参考图2 所述,在不偏离本公开的范围的情况下可以使用各种不同类型的目标识别、分析和跟踪系统。目标识别、分析和跟踪系统可以用于识别、分析和/或跟踪诸如游戏玩家18之类的一个或多个目标。图IA示出了如下的场景使用深度相机20跟踪游戏玩家18,使得游戏玩家18的运动可以被游戏系统12解释成可以用于影响由游戏系统12执行的游戏的控制。换言之,游戏玩家18可以使用其运动来控制游戏。游戏玩家18的运动基本上可以被解释成任何类型的游戏控制。图IA中示出的示例场景示出了游戏玩家18正在玩正由游戏系统12执行的拳击游戏。游戏系统使用HDTV 16来在视觉上向游戏玩家18呈现拳击对手22。此外,游戏系统使用HDTV 16来在视觉上呈现游戏玩家18用其运动控制的玩家化身对。如图IB中所示, 游戏玩家18可以在物理空间中挥出重拳来作为对玩家化身M在游戏空间中挥出重拳的指令。游戏系统12和深度相机20可以用于识别和分析游戏玩家18在物理空间中的重拳,从而使得该重拳可以被解释成使得游戏化身M在游戏空间中挥出重拳的游戏控制。例如,图 IB示出了 HDTV 16响应于游戏玩家18在物理空间中挥出重拳而在视觉上呈现游戏化身M 挥出袭击拳击对手22的重拳。游戏玩家18的其他运动也可以被解释成其他控制,诸如上下快速摆动、闪避、滑步、格挡、用拳猛击或挥动各种不同力度的重拳等控制。此外,一些运动可以被解释成用于除了控制游戏化身M之外的目的的控制。例如,玩家可以使用运动来结束、暂停或保存游戏、选择级别、查看高分、与朋友交流等。在某些实施例中,目标可包括人类和物体。在这些实施例中,例如,电子游戏的玩家可手持物体,从而可以使用玩家和物体的运动来调整和/或控制电子游戏的参数。例如, 可以跟踪并利用玩家手持球拍的运动来控制电子运动游戏中的屏幕上球拍。在另一示例中,可以跟踪并利用玩家手持物体的运动来控制电子格斗游戏中的屏幕上的武器。目标识别、分析和跟踪系统还可以用于将目标运动解释成游戏领域之外的操作系统和/或应用控制。基本上,操作系统和/或诸如图IA和IB中所示拳击游戏之类的应用的任何可控制的方面都可以由诸如游戏玩家18之类的目标的运动来控制。所示出的拳击场景是作为示例来提供的,但决不意味着以任何方式进行限制。相反,所示出的场景旨在展示可以在不背离本公开的范围的情况下应用于各种各样不同的应用程序的一般概念。在此所述的方法和过程可以绑定到各种不同类型的计算系统。图IA和IB示出了游戏系统12、HDTV 16和深度相机20形式的非限制性示例。作为另一更一般的示例,图2 示意性地示出可以执行这里所述的一个或多个目标识别、跟踪和分析方法和过程的计算系统40。计算系统40可以采取各种不同的形式,尤其包括但不限于游戏控制台、个人计算游戏系统、军用跟踪和/或定标系统、以及提供绿屏或者运动捕获功能的特征采集系统。计算系统40可包括逻辑子系统42、数据保持子系统44、显示子系统46和/或捕捉设备48。计算系统可任选地包括图2中未示出的组件,和/或图2中所示的某些组件可以是不集成在计算系统中的外围组件。逻辑子系统42可包括被配置成执行一个或多个指令的一个或多个物理设备。例如,逻辑子系统可以被配置成执行一个或多个指令,该一个或多个指令是一个或多个程序、 例程、对象、组件、数据结构或其它逻辑构造的一部分。可以实现这样的指令以执行任务、实现数据类型、变换一个或多个设备的状态、或以其它方式得到所需结果。逻辑子系统可以包括被配置为执行软件指令的一个或多个处理器。附加地或可替代地,逻辑子系统可包括被配置为执行硬件或固件指令的一个或多个硬件或固件逻辑机器。逻辑子系统可以任选地包括分布在两个或多个设备上的独立组件,这些独立组件在某些实施例中可远程放置。数据保持子系统44可包括被配置为保持可由逻辑子系统执行以实现此处所述的方法和过程的数据和/或指令。在实现此类方法和过程时,可以变换数据保持子系统44的状态(例如,保持不同数据)。数据保持子系统44可以包括可移动介质和/或内置设备。数据保持子系统44可以包括光学存储器设备、半导体存储器设备(如RAM、EEPR0M、闪存等)、 和/或磁存储器设备等。数据保持子系统44可以包括具有以下特性中的一个或多个特性的设备易失性、非易失性、动态、静态、读/写、只读、随机存取、顺序存取、位置可寻址、文件可寻址、以及内容可寻址。在某些实施例中,可以将逻辑子系统42和数据保持子系统44 集成到一个或多个常见设备中,如专用集成电路或片上系统。图2还示出使用计算机可读可移动介质50形式的数据保持子系统的一方面,该方面可以用于存储和/或传送可执行以实现此处所述的方法和过程的数据和/或指令。显示子系统46可被用于呈现由数据保持子系统44保持的数据的可视表示。由于此处所描述的方法和过程改变由数据保持子系统保持的数据,并由此变换数据保持子系统的状态,因此同样可以变换显示子系统46的状态以视觉地表示底层数据的改变。作为一个非限制性示例,可通过显示子系统46以响应于游戏玩家在物理空间中的移动来改变游戏空间中的姿态的游戏人物的形式来反映这里所述的目标识别、跟踪和分析。显示子系统46 可以包括使用基本上任何类型的技术的一个或多个显示设备。可将这些显示设备与逻辑子系统42和/或数据保持子系统44 一起组合在共享封装中,或这些显示设备可以是外围显示设备,如图IA和IB所示。计算系统40还包括被配置成获得一个或多个目标的深度图像的捕捉设备48。捕捉设备48可以被配置成通过任何合适的技术(例如,飞行时间、结构化光、立体图像等等) 捕捉具有深度信息的视频。如此,捕捉设备48可包括深度相机、摄像机、立体相机、和/或其他合适的捕捉设备。例如,在飞行时间分析中,捕捉设备48可以向目标发射红外光,然后使用传感器来检测从目标的表面反向散射的光。在一些情况下,可以使用脉冲式红外光,其中可以测量出射光脉冲和相应的入射光脉冲之间的时间差并将其用于确定从捕捉设备到目标上的某一位置的物理距离。在一些情况下,出射光波的相位可以与入射光波的相位相比较以确定相移,并且该相移可以用于确定从捕捉设备到目标上的某一位置的物理距离。在另一示例中,飞行时间分析可用于通过经由诸如快门式光脉冲成像之类的技术分析反射光束随时间的强度,来间接地确定从捕捉设备到目标上的某一位置的物理距离。在另一示例中,结构化光分析可以被捕捉设备48用于捕捉深度信息。在这样的分析中,图案化光(即被显示为诸如网格图案或条纹图案之类的已知图案的光)可以被投影到目标上。在落到目标的表面上时,作为响应,该图案可能变形,并且图案的这种变形可以被研究以确定从捕捉设备到目标上的某一位置的物理距离。在另一示例中,捕捉设备可以包括两个或更多个物理上分开的相机,这些相机从不同角度查看目标以获得视觉立体数据。这这种情况下,视觉立体数据可以被解析以生成深度图像。 在其他实施例中,捕捉设备48可以使用其他技术来测量和/或计算深度值。此外, 捕捉设备48可以将所计算的深度信息组织为“Z层”,即与从深度相机沿其视线延伸到观察者的Z轴垂直的层。在一些实施例中,两个或更多个不同的相机可以被合并到一集成捕捉设备中。例如,深度相机和摄像机(例如RGB摄像机)可以被合并到共同的捕捉设备中。在一些实施例中,可以协作式地使用两个或更多个分开的捕捉设备。例如,可以使用深度相机和分开的摄像机。当使用摄像机时,可以将其用于提供目标跟踪数据、对目标跟踪进行纠错的确认数据、图像捕获、面部识别、高精度手指(或其他小特征)跟踪、光感测和/或其他功能。要理解,至少一些目标分析和跟踪操作可以由一个或多个捕捉设备的逻辑机来执行。捕捉设备可以包括被配置成执行一个或多个目标分析和/或跟踪功能的一个或多个板载处理单元。捕捉设备可以包括促进更新这样的板载处理逻辑的固件。计算系统40可任选地包括诸如控制器52和控制器M之类的一个或多个输入设备。输入设备可被用于控制计算系统的操作。在游戏的上下文中,诸如控制器52和/或控制器M之类的输入设备可被用于控制游戏的那些不是通过这里所述的目标识别、跟踪和分析方法和过程来控制的方面。在某些实施例中,诸如控制器52和/或控制器M之类的输入设备可包括可用于测量控制器在物理空间中的移动的加速计、陀螺仪、红外目标/传感器系统等中的一个或多个。在某些实施例中,计算系统可任选地包括和/或利用输入手套、键盘、鼠标、跟踪垫、轨迹球、触屏、按钮、开关、拨盘、和/或其他输入设备。如将理解的, 目标识别、跟踪和分析可被用于控制或扩充游戏或其他应用的常规上由诸如游戏控制器之类的输入设备控制的方面。在某些实施例中,这里所述的目标跟踪可被用作对其他形式的用户输入的完全替代,而在其他实施例中,这种目标跟踪可被用于补充一个或多个其他形式的用户输入。计算系统40可被配置成执行这里所述的目标跟踪方法。然而,应理解,计算系统 40是作为可执行这种目标跟踪的设备的非限制性示例而提供的。其他设备也在本公开的范围之内。计算系统40或另一合适的设备可被配置成用模型来表示每个目标。如下面更详细地描述的,从这样一种模型导出的信息可与从诸如深度相机之类的捕捉设备获得信息相比较,使得模型的基本比例或形状以及其当前姿态可被调整成更准确地表示被建模的目标。模型可由一个或多个多边形网格、由一组数学图元、和/或通过被建模的目标的其他合适的机器表示来表示。图3示出了示例身体模型70的非限制视觉表示。身体模型70是被建模的目标 (例如,图IA和IB的游戏玩家18)的机器表示。该身体模型可包括一个或多个数据结构, 这些数据结构包括以游戏或其他应用/操作系统的语言来共同定义被建模的目标的一组变量。目标的模型可在不脱离本发明的范围的情况下不同地配置。在某些示例中,模型可包括将目标表示为包括刚性和/或可变形形状,即身体部位的三维模型的一个或多个数据结构。每一身体部位可被表征为数学图元,其示例包括但不限于球体、各向异性地缩放的球体、圆柱体、各向异性圆柱体、平滑圆柱体、方形、斜面方形、棱柱等。例如,图3的身体模型70包括身体部位bpl到bpl4,其每一个都表示被建模的目标的一不同部分。每一身体部位是一三维形状。例如,bp3是表示被建模的目标的左手的矩形棱柱,而bp5是表示被建模的目标的左上臂的八面棱柱。身体模型70的示例性表现在身体模型可包含任何数量的身体部位,其每一个都可以是被建模的目标的对应部分的任何机器可理解的表示。包括两个或更多个身体部位的模型还可包括一个或多个关节。每一关节可允许一个或多个身体部位相对于一个或多个其他身体部位移动。例如,表示人类目标的模型可包括多个刚性和/或可变形身体部位,其中某些身体部位可表示人类目标的对应的解剖学身体部位。此外,该模型的每一身体部位可包括一个或多个结构件(即,“骨骼”),且关节位于相邻骨骼的交叉点处。可以理解,某些骨骼可对应于人类目标中的解剖学骨骼,和/或某些骨骼可能不具有人类目标中的对应的解剖学骨骼。骨骼和关节可共同构成骨架模型,其可以是该模型的构成元素。骨架模型可包括对应于每一身体部位的一个或多个骨架构件以及相邻骨架构件之间的关节。示例性骨架模型80和示例性骨架模型82分别在图4和5中示出。图4示出了从正面看的具有关节jl到 j33的骨架模型80。图5示出了从斜视图看的也具有关节j 1到j33的骨架模型82。骨架模型82还包括滚动关节j34到j47,其中每一滚动关节可用于跟踪轴向滚动角。例如, 轴向滚动角可用于相对于其源肢和/或躯干来定义肢的旋转定向。例如,如果骨架模型示出手臂的轴向旋转,则可使用滚动关节j40来指示相关联的腕所指向的方向(例如,手掌向上)。由此,尽管关节可受力并调整骨架模型,但如下所述,可改为构造并利用滚动关节来跟踪轴向滚动角。更一般地,通过检查肢相对于其源肢和/或躯干的定向,可确定轴向滚动角。例如,如果正在检查小腿,则可检查小腿相对于相关联的大腿和髋部的定向来确定轴向滚动角。如上所述,某些模型可包括用作被建模的目标的机器表示的骨架和/或身体部位。在某些实施例中,模型可另选地或另外地包括线框网格,该线框网格可包括刚性多边形网格、一个或多个可变形网格或两者的任意组合的分层结构。作为一个非限制性示例,图6 示出了包括排列成定义身体模型的形状的网格的多个三角形(例如,三角形9 的模型90。 这一网格可包括每一多边形边处的弯曲限制。当使用网格时,可选择共同构成该网格的三角形和/或其他多边形的数量来达到质量和计算开销之间的所需平衡。更多三角形可提供更高的质量和/或更准确的模型,而更少三角形可需要更少的计算。包括多边形网格的身体模型不需要包括骨架,但在某些实施例中可包括骨架。上述身体部位模型、骨架模型和多边形网格是可用作被建模的目标的机器表示的非限制示例模型类型。其他模型也在本发明的范围之内。例如,某些模型可包括片、非均勻理性B样条、细分表面、或其他高阶表面。模型还可包括表面纹理和/或其他信息来更准确地表示被建模的目标的衣着、头发和/或其他方面。模型可任选地包括与当前姿态、一个或多个过去的姿态和/或模型物理学有关的信息。要理解,可摆姿态并然后可被光栅化成合成的深度图像(或以其他方式由合成的深度图像呈现或表达)的任何模型与这里所述的目标识别、分析和跟踪兼容。如上所述,模型用作诸如图IA和IB中的游戏玩家18等目标的表示。当目标在物理空间中移动时,来自诸如图IA和IB中的深度相机20等捕捉设备的信息可用于调整模型的姿态和/或基本大小/形状,以使其更准确地表示该目标。具体地,可向该模型的一个或多个受力方面施加一个或多个力,来将该模型调整成更接近地对应于物理空间中的目标的姿态的姿态。取决于所使用的模型的类型,可向模型的关节、身体部位的质心、三角形的顶点、或任何其他合适的受力方面施加力。此外,在某些实施例中,在确定力的方向和/或大小时可使用两个或更多个不同的计算。如以下更详细描述的,捕捉设备所检索的目标的观察到的图像与模型的光栅化(即,合成的)图像之间的差异可用于确定施加于该模型的力以将身体调整到不同的姿态。图7示出了使用模型(例如,图3的身体模型70)来跟踪目标的示例方法100的流程图。在某些实施例中,该目标可以是人类,并且该人类可以是所跟踪的两个或更多个目标中的一个。如此,在某些实施例中,方法100可由计算系统(如图1所示的游戏系统12 和/或图2所示的计算系统40)执行来跟踪一个或多个玩家与计算系统上正在玩的电子游戏的交互。如以上所介绍的,对玩家的跟踪允许这些玩家的物理移动用作调整和/或控制电子游戏的参数的实时用户接口。例如,所跟踪的玩家的运动可用于移动电子角色扮演游戏中的屏幕上的人物或化身。在另一示例中,所跟踪的玩家的运动可用于控制电子赛车游戏中的屏幕上的车辆。在又一示例中,所跟踪的玩家的运动可用于控制虚拟环境中的物体的建筑或组织。在102,该方法100包括从源接收目标的观察到的深度图像。在某些实施例中,源可以是配置成通过诸如飞行时间分析、结构化光分析、立体视觉分析之类的合适的技术或其他合适的技术获得关于目标的深度信息的深度相机。观察到的深度图像可以包括多个观察到的像素,其中每个观察到的像素具有观察到的深度值。观察到的深度值包括从源查看到的目标的深度信息。图8示出了示例性的观察到的深度图像140的视觉表示。如所示, 观察到的深度图像140捕捉手臂举起的站立的人(例如,游戏玩家18)的示例性的观察到的姿态。如图7的104处所示,在接收到观察到的深度图像之后,方法100可任选地包括将观察到的深度图像降采样到较低的处理分辨率。降采样到较低的处理分辨率可允许以更少的计算开销来更容易地使用和/或更快速地处理观察到的深度图像。如106处所示,在接收到观察到的深度图像之后,方法100可任选地包括从观察到的深度图像中移除非玩家背景元素。移除这些背景元素可包括将观察到的深度图像的各个区域分隔成背景区域和目标的图像所占据的区域。背景区域可从图像中被移除或被标识以使其可在一个或多个后续处理步骤期间被忽略。实际上可使用任何背景移除技术,且来自跟踪(以及来自前一帧)的信息可任选地被用于帮助和提高背景移除的质量。如108处所示,在接收到观察到的深度图像之后,方法100可任选地包括从观察到的深度图像中移除和/或平滑掉一个或多个高变度和/或含噪声的深度值。观察到的深度图像中的此类高变度和/或含噪声的深度值可源自多个不同来源,如在图像捕捉过程期间发生的随机和/或系统性误差、因捕捉设备而导致的缺陷和/或畸变,等等。由于此类高变度和/或含噪声的深度值可以是图像捕捉过程的伪像,因此在图像的任何将来的分析中包括这些值会使结果偏斜和/或使计算变慢。由此,移除此类值可为将来的计算提供更好的数据完整性。还可过滤掉其他深度值。例如,下文参考步骤118所述的增长操作的准确度可通过选择性地移除满足一个或多个移除准则的像素来得到增强。例如,如果一深度值处于手和手所遮挡的躯干之间的中间,移除该像素可防止在后续处理步骤期间增长操作将一个身体部位溢出(spill)在另一身体部位之上。如110处所示,方法100可任选地包括填入和/或重构丢失和/或移除的深度信息的各部分。此类回填可通过对最近邻居求平均、过滤和/或任何其他合适的方法来实现。如图7的112处所示,方法100可包括获得模型(例如,图3的身体模型70)。如上所述,该模型可包括一个或多个多边形网格、一个或多个数学图元、一个或多个高阶表面、 和/或用于提供目标的机器表示的其他特征。此外,该模型可作为计算系统上存在的一个或多个数据结构的实例来存在。在方法100的一些实施例中,该模型可以是从前一时间步获得的姿态模型。例如, 如果方法100是连续执行的,则可获得从方法100的前一次迭代得到的、对应于前一时间步的姿态模型。在某些实施例中,姿态可由一个或多个算法来确定,这些算法可分析深度图像并以粗略水平标识所感兴趣的目标(例如人)位于哪里和/或这(些)目标的姿态。在初始迭代期间或每当相信算法可选择比前一时间步期间计算的姿态更准确的姿态时,可使用算法选择姿态。在某些实施例中,该模型可以从数据库和/或其他程序获得。例如,模型可能在方法100的第一次迭代期间不可用,在这一情况下该模型可从包括一个或多个模型的数据库获得。在这一情况下,可使用被设计成选择展示与目标的姿态相似的姿态的模型的搜索算法来从数据库选择模型。即使来自前一时间步的模型是可用的,也可使用来自数据库的模型。例如,如果目标已改变姿态超过预定阈值,和/或根据其他准则,则可在特定帧数之后使用来自数据库的模型。在其他实施例中,可合成模型或其各部分。例如,如果目标的身体核心(躯干、上腹部和髋部)是由可变形的多边形模型来表示的,则可使用观察到的深度图像的内容来最初地构造该模型,其中该图像中的目标的轮廓(即,侧影)可用于形成X和Y维度中的网格。 另外,在这一方法中,观察到的深度图像的该区域中观察到的深度值可用于在模型的XY方向以及Z方向上“塑造”网格,以更令人满意地表示目标的身体形状。方法100还可包括使用合适的方法来表示出现在目标上的任何衣物。这一合适的方法可包括向模型添加图元或多边形网格形式的辅助几何形状,以及任选地基于姿态来调整该辅助几何形状来反映重力、衣料仿真等等。这一方法可方便将模型塑造成目标的更真实表示。如114所示,方法100可任选地包括向模型应用动量算法。由于目标的各个部位的动量可以预测图像序列的变化,因此这一算法可助于获得模型的姿态。动量算法可使用模型的每一关节或顶点在多个固定数量的先前帧上的轨迹,以帮助获得模型。在某些实施例中,关于目标的不同部分可以在一时间帧(例如,一秒的1/30或 1/60)内移动有限距离的知识可用作获得模型时的约束。这一约束可用于在前一帧已知时排除特定姿态。在图7的116,方法100还可包括将模型光栅化成合成的深度图像。光栅化允许由数学图元、多边形网格或其他对象描述的模型被转换成由多个像素描述的合成的深度图像。光栅化可以使用一个或多个不同的技术和/或算法来进行。例如,光栅化模型可包括将模型的表示投影到二维平面上。在包括多个身体部位形状的模型(例如,图3的身体模型70)的情况下,光栅化可包括将身体部位形状的集合投影并光栅化到二维平面上。对于模型投影到其上的二维平面中的每一像素,可存储各种不同类型的信息。图9示出了对应于图3的身体模型70的示例性合成的深度图像的视觉表示150。 图10示出了同一合成的深度图像的一部分的像素矩阵160。如在170所指示的,合成的深度图像中的每一合成的像素可包括合成的深度值。如光栅化期间所确定的,给定的合成的像素的合成的深度值可以是来自由该合成的像素表示的模型的对应部位的深度值。换言之,如果前臂身体部位(例如,图3的前臂身体部位bp4)的一部分被投影到二维平面上, 则对应的合成的像素(例如,图10的合成的像素162)可被给予等于前臂身体部位的该部分的深度值的合成的深度值(例如,图10的合成的深度值164)。在所示示例中,合成的像素162具有合成的深度值382cm。同样,如果相邻的手身体部位(例如,图3的手身体部位 bp3)被投影到二维平面上,则对应的合成的像素(例如,图10的合成的像素166)可被给予等于手身体部位的该部分的深度值的合成的深度值(例如,图10的合成的深度值168)。 在所示示例中,合成的像素166具有合成的深度值383cm。可以理解,以上是作为示例提供的。合成的深度值可以用任何度量单位来保存,或作为无量纲数来保存。如170处所指示的,合成的深度图像中的每一合成的像素可包括光栅化期间确定的原始身体部位索引。这一原始身体部位索引可指示像素对应于模型的哪些身体部位。在图10所示的示例中,合成的像素162具有原始身体部位索引bp4,而合成的像素166具有原始身体部位索引bp3。在某些实施例中,如果合成的像素不对应于目标的身体部位(例如, 如果合成的像素是背景像素),则合成的像素的原始身体部位索引可以为0 (nil)。在某些实施例中,不对应于某一身体部位的合成的像素可被给予一不同类型的索引。如170处所指示的,合成的深度图像中的每一合成的像素可包括光栅化期间确定的原始玩家索引,该原始玩家索引对应于该目标。例如,如果有两个目标,则对应于第一目标的合成的像素将具有第一玩家索引,而对应于第二目标的合成的像素将具有第二玩家索引。在所示示例中,像素矩阵160仅对应于一个目标,因此合成的像素162具有原始玩家索引P1,而合成的像素166具有原始玩家索引P1。可使用其他类型的索引系统而不背离本发明的范围。
如170处所指示的,合成的深度图像中的每一合成的像素可包括一像素地址。该像素地址可定义像素相对于其他像素的位置。在所示示例中,合成的像素162具有像素地址[5,7],而合成的像素166具有像素地址W,8]。可以理解,可使用其他定址方案而不背离本发明的范围。如在170处所指示的,每个合成的像素可任选地包括其他类型的信息,这些信息中的一些可在光栅化后获得。例如,每个合成的像素可包括更新的身体部位索引,该更新的身体部位索引可作为光栅化期间执行的咬合(snap)操作的一部分来确定,如下所述。每个合成的像素可包括更新的玩家索引,该更新的玩家索引可作为光栅化期间执行的咬合操作的一部分来确定每个合成的像素可包括更新的身体部位索引,该更新的身体部位索引可作为增长/修补(fix)操作的一部分来获得,如下所述。每个合成的像素可包括更新的玩家索引,该更新的玩家索引可作为增长/修补(fix)操作的一部分来获得,如下所述。以上提供的示例类型的像素信息并非限制。可存储各种不同类型的信息来作为每一像素的一部分。这些信息可被存储为公共数据结构的一部分,或者不同类型的信息可被存储在可(例如通过像素地址)被映射到具体像素位置的不同数据结构。作为一示例,作为光栅化期间的咬合操作的一部分获得的玩家索引和/或身体部位索引可被存储在光栅化映射和/或咬合映射中,而作为光栅化之后的增长/修补操作的一部分获得的玩家索引和/或身体部位索引可被存储在增长映射中,如下所述。可被分配给每一像素的其他类型的像素信息的非限制示例包括但不限于,关节索引、骨骼索引、顶点索引、三角形索引、质心索引等等。在118,图7的方法100可任选地包括咬合和/或增长身体部位索引和/或玩家索引。换言之,可扩大合成的深度图像以使某些像素的身体部位索引和/或玩家索引改变来试图更接近地对应于被建模的目标。在执行上述光栅化时,可构造一个或多个Z缓存和/或身体部位/玩家索引映射。 作为一个非限制示例,这一缓存/映射的第一版本可通过执行如下的Z测试来构造选择最接近观看者(例如,深度相机)的表面并且将与该表面相关联的身体部位索引和/或玩家索引写入对应的像素。该映射可被称为光栅化映射或原始合成的深度映射。这一缓存/映射的第二版本可通过执行如下的Z测试来构造选择最接近该像素处的观察到的深度值的表面,并且将与该表面相关联的身体部位索引和/或玩家索引写入对应的像素。这可被称为咬合映射。可约束这些测试,以便拒绝合成的深度值和观察到的深度值之间超过预定阈值的Z距离。在某些实施例中,可维护两个或更多个Z缓存和/或两个或更多个身体部位 /玩家索引映射,从而允许进行两个或更多个上述测试。缓存/映射的第三版本可通过增长和/或纠正身体部位/玩家索引映射来构造。 这可被称为增长映射。以上述咬合映射的副本开始,可在预定Z距离内在任何“未知的”值上增长各值,使得被目标占据但未被身体模型占据的空间可以用适合的身体部位/玩家索引来填充。这一方法还可包括如果标识了更满意的匹配则不取(overtake)已知值。增长映射可以从在咬合映射的合成的像素上过一遍来检测具有带有不同身体部位/玩家索引的相邻像素的像素开始。这些可被认为是“边”像素,即,可任选地沿着其来传播值的边界。如上所述,增长像素值可包括增长成“未知的”或“已知的”像素。对于“未知的”像素,例如,在一个场景中,身体部位/玩家索引值之前可能为0,但是现在可具有非零相邻像素。在这一情况下,可检查四个直接相邻像素,并且可选择具有更接近地类似于感兴趣的像素的深度值的观察到的深度值的相邻像素并将其分配给感兴趣的像素。在“已知的” 像素的情况下,可能的是如果具有已知非零身体部位/玩家索引值的像素的一个相邻像素具有在光栅化期间写入的、比该像素的合成的深度值更接近地匹配感兴趣的像素的观察到的深度值的深度值,则可不取(overtake)该具有已知非零身体部位/玩家索引值的像素。另外,出于效率的目的,更新合成的像素的身体部位/玩家索引值可包括将其相邻的四个像素添加到要在后一遍重新访问的像素的队列。如此,值可沿着边界持续传播而不用在所有像素上完整地过一遍。作为另一优化,可跟踪感兴趣的目标所占据的不同的 NXN的像素块(例如16X16的像素块),使得不被感兴趣的目标占据的其他块可被忽略。 可在光栅化之后在目标分析期间的任何点上用各种形式来应用这种优化。然而,要注意的是增长操作可采用各种不同的形式。例如,可首先执行各种泛色填充以标识相似值的区域,然后可决定哪些区域属于哪些身体部位。此外,任何身体部位/玩家索引对象(例如,图3的左前臂身体部位bp4)可增长的像素数量可基于预期这一对象占据多少像素(例如,给定其形状、距离和角度)对比咬合映射中有多少像素被分配该身体部位/玩家索引来得到限制。另外,上述方法可包括对于某些姿态添加优点或缺点来偏移对某些身体部位的增长,使得增长可正确。如果确定来自某一身体部位的像素的分布被分组成一个深度,而来自同一身体部位的像素的另一分布被分组成另一深度,从而在这两个分布之间存在间隙,则可以对咬合映射作出渐进咬合调整。例如,在躯干前且靠近躯干挥动的手臂可“溢出到”(spill into) 躯干中。这一情况可产生一组具有一身体部位索引的躯干像素,该身体部位索引指示这些像素是手臂像素,而实际上它们应是躯干像素。通过检查小臂中的合成的深度值的分布,可以确定某些手臂像素可被分组成一个深度,而其余可被分组成另一深度。这两组深度值之间的间隙指示手臂像素和应该是躯干像素的像素之间的跳跃。由此,响应于标识这一间隙, 然后可通过向溢出像素分配躯干身体部位索引来补救该溢出。作为另一示例,渐进咬合调整在“手臂在背景对象上”(arm-over-background-object)情况中可能是有帮助的。在该情况中,可使用直方图来标识感兴趣的像素(即被认为属于手臂的像素)的观察到的深度中的间隙。基于这一间隙,一组或多组像素可被标识为正确地属于手臂,和/或其他组可作为背景像素而被拒绝。直方图可基于各种度量,例如绝度深度;深度误差(合成的深度一观察到的深度)等。在任何增长操作之前,可在光栅化期间内联地执行渐进咬合调整。在120处,图7的方法100可任选地包括从上述三个阶段的处理处的观察到的深度图像、合成的深度图像、以及身体部位/玩家索引映射创建高度映射。这一高度映射的梯度和/或这一高度映射的模糊版本可在确定要对模型作出的调整的方向时使用,如下文所描述的。然而,高度映射仅仅是一种优化;另选地或另外地,可执行所有方向上的搜索来标识可应用调整的最接近的关节和/或要作出这些调整的方向。当使用高度映射时,可以在以下描述的像素类确定之前、之后或同时创建高度映射。当被使用时,高度映射被设计成将玩家的实际身体设为低标高(elevation),而将背景元素设为高标高。然后可使用分水岭样式的技术来跟踪高度映射中的“下坡”,以找到玩家上离背景最近的点,或反之亦然(即搜寻高度映射中的“上坡”以找到最接近于给定玩家像素的背景像素)。合成的深度图像和观察到的深度图像可能不相同的,且因此合成的深度图像可使用调整和/或修改以使其更接近地匹配观察到的深度图像且因此更准确地表示目标。要理解,可通过首先对模型作出调整(例如改变模型的姿态),然后将经调整的模型合成为合成的深度图像的新版本来对合成的深度图像作出调整。可采取多种不同方法来修改合成的深度图像。在一种方法中,可获得并光栅化两个或更多个不同的模型来产生两个或更多个合成的深度图像。每一合成的深度图像然后可以按照预定的一组比较度量来与观察到的深度图像进行比较。可选择展示出与观察到的深度图像最接近的匹配的合成的深度图像,且该过程可任选地被重复来改进该模型。当被使用时,该过程可尤其有用于精制该身体模型以匹配玩家的体型和/或身体尺寸。在另一方法中,可经由内插或外插来混合两个或更多个合成的深度图像以产生混合的合成的深度图像。在又一方法中,可按混合技术和参数跨混合的合成的深度图像变化的方式来混合两个或更多个合成的深度图像。例如,如果第一合成的深度图像在一个区域中令人满意地匹配到观察到的深度图像,而第二合成的深度图像在第二区域中令人满意地匹配,则混合的合成的深度图像中所选的姿态可以是类似于用于创建第一区域中的第一合成的深度图像的姿态和用于创建第二区域中的第二合成的深度图像的姿态的混合。在再一方法中,如图7的122处所示,可将合成的深度图像与观察到的深度图像进行比较。合成的深度图像的每一合成的像素可基于比较的结果来分类。这一分类可被称为为每一像素确定像素例(Pixel case)。用于创建合成的深度图像的模型(例如,图3的身体模型70)可根据所确定的像素例来系统地调整。具体地,可基于所确定的像素例来计算力矢量(大小和方向),并且取决于模型的类型,可将所计算的力矢量施加于最接近的关节、 身体部位的质心、身体部位的某一点、三角形的顶点、或用于生成合成的深度图像的模型的另一预定受力位置。在某些实施例中,归因于给定像素的力可被分布在模型上的两个或更多个受力位置之间。可基于一个或多个因素对每个合成的像素选择一个或多个像素例,这些因素包括但不限于一合成的像素的观察到的深度值和合成的深度值之间的差;合成的像素的原始身体部位索引、(咬合)身体部位索引、和/或(增长)身体/部位索引之间的差;和/或合成的像素的原始玩家索引、(咬合)玩家索引和/或(增长)玩家索引之间的差。如图7的IM处所示,确定像素例可包括选择精制ζ (refine-z)像素例。可在观察到的深度图像的一观察到的像素(或多个观察到的像素的区域中)的观察到的深度值不匹配合成的深度图像中的合成的深度值、但足够接近而可能属于两个图像中的同一对象, 且身体部位索引匹配(或在某些情况下对应于相邻身体部位或区域)时,选择精制ζ像素例。如果合成的像素的观察到的深度值和合成的深度值之间的差在预定范围内,且(任选地)该合成的像素的(增长)身体部位索引对应于还未被指定用于接收磁性力的身体部位,则可对该合成的像素选择精制Z像素例。该精制Z像素例对应于可对模型施加力来将模型移至正确位置的计算出的力矢量。计算出的力矢量可沿着垂直于图像平面的ζ轴、沿着模型的某一方面(例如,对应身体部位的脸部)的法向的矢量、和/或沿着附近的观察到像素的法向的矢量来施加。力矢量的大小基于观察到的深度值和合成的深度值的差,越大的差对应于越大的力。施加力的受力位置可被选为感兴趣的像素的最近的有资格的受力位置(如最近的躯干关节),或该力可被分布在多个最近的受力位置的加权混合之间。最近的受力位置可被选择,但是,在某些情况下,应用偏移可能是有帮助的。例如,如果某一像素位
14于大腿向下一半位置处且已确定髋关节比膝更不易于活动(或灵活),则可能有帮助的是将对于中间腿像素的关节力偏移到膝部而不是髋部。利用或不利用上述的偏移,对于哪个受力位置最接近于感兴趣的像素的确定可通过强力搜索来找到。为了加速搜索,所搜索的受力位置的集合可被限于仅仅位于或接近于与该像素的身体位置索引相关联的身体部位的那些受力位置。每次姿态变化时,也可设置 BSP(二叉空间划分)树来帮助加速这些搜索。身体上的每个区域或对应于某一身体部位索引的每个身体部位可被给予其自己的BSP树。如果这样,则可对每个身体部位不同地施加偏移,这进一步允许对合适的受力位置的明智选择。如图7的1 处所示,确定像素例可包括选择磁性像素例。当(增长/)映射中正被检查的合成的像素对应于某一预定子集的身体部位(如手臂或图3的bp3、bp4、bp5、bp7、 bp8和bp9)时,可使用磁性像素例。尽管提供手臂作为示例,但在某些场景中,诸如腿或整个身体之类的其他身体部位可任选地与磁性像素例相关联。同样,在某些场景中,手臂可能不与磁性像素例相关联。为磁性例标记的像素可被分组成区域,每个区域与特定的身体部位相关联(在该示例中例如左上臂、左下臂、左手等等)。像素属于哪个区域可由其身体部位索引来确定, 或可通过将像素的位置与身体模型中或身体模型上的各种点(但不限于像素的身体部位索引所指示的身体部位)进行比较来执行更准确的测试(以减少增长操作中可能引入的误差)。例如,对于左臂上某处的像素,可使用各种度量来确定该像素最可能属于哪一骨骼段 (肩到肘、肘到腕、或腕到手末端)。这些骨骼段的每一个可被认为是“区域”。对于这些磁性区域中的每一个,可计算属于该区域的像素的质心。这些质心可以是正统的(所有起作用的像素被同等地加权),或偏移的,其中某些像素带有比其他像素更重的权重。例如,对于上臂,可跟踪三个质心1)无偏移的质心;2) “近”质心,其起作用的像素在更接近于肩部时被更重的加权;以及3) “远”质心,其起作用的像素在更接近于肘时被更重地加权。这些权重可以是线性的(如2X)或非线性的(如χ2)或遵循任何曲线。一旦计算出这些质心,各种选项是可用的(并可被动态地选择)以用于计算感兴趣的身体部位的位置和定向,即使某些被部分地遮挡。例如,当试图确定肘的新位置时,如果该区域中的质心足够可见(如果起作用的像素的权重的和超过预定阈值),则该质心本身标记肘(估计#1)。然而,如果肘区域不可见(可能由于它被某一其他物体或身体部位遮挡),肘位置仍然可被常常确定,如下面的非限制性示例所述。如果上臂的远质心可见,则可从肩部辨认出通过该质心达上臂的长度的投影,以获得肘的非常可能的位置(估计#2)。 如果下臂的近质心可见,则可从腕构成通过该质心达下臂的长度的投影,以获得肘的非常可能的位置(估计#3)。向具有更高可见性、置信度、像素计数或任何数量的其他度量的估计给予优先级 (或更高的权重),可作出对三个可能的估计之一的选择,或可作出三个可能的估计之间的混合。最后,在该示例中,可在肘的位置向模型施加单个力矢量;然而,它可被更重地加权 (当与产生于其他像素例的像素力矢量累计但作用于该相同受力位置时),以表示许多像素被用于构造它的事实。当施加时,计算出的力矢量可移动模型,使得相应的模型可更令人满意地匹配观察到的图像中所示的目标。磁性像素例的一个优点是其对诸如手臂等高度灵活的身体部位表现良好的能力。
在某些实施例中,可仅使用磁性像素例来调整没有定义的关节或身体部位的模型。如图7的1 和130处所示,确定像素例可包括选择拉像素例和/或推像素例。这些像素例可在合成的深度值和观察到的深度值可能在同一像素地址处严重失配的轮廓处被调用。要注意,拉像素例和推像素例也可在原始玩家索引不匹配(增长)玩家索引时被使用。是推还是拉的确定如下。如果同一像素地址处合成的深度图像包含比观察到的深度图像中的深度值更大(更远)的深度值,则该模型可被拉向增长的图像中所见的真实轮廓。 相反,如果原始合成的图像包含比观察到的深度图像中的深度值更小(更近)的深度值,则该模型可被推出玩家不再占据的空间之外(且朝向增长的图像中的真实轮廓)。在任一种情况中,对于这些像素或像素区域中的每一个,可对模型施加二维或三维计算出的力矢量以纠正轮廓失配,将身体模型的部分推到或拉到更精确地匹配观察到的深度图像中的目标的位置的位置。这一推和/或拉的方向通常主要在XY平面中,但在某些场景中可向该力添加Z分量。为了对推或拉例产生合适的力矢量,合成的深度图像中玩家轮廓(对于拉例)或观察到的深度图像中玩家的轮廓(对于推例)上的最近点可首先被找到。对于每个源像素 (或对于每组源像素),可通过对最近点(在所希望的轮廓上)执行满足下列准则的强力穷举2D搜索来找到该点。在拉像素例中,具有原始映射中与增长映射中的玩家索引(在源像素或区域处)相匹配的玩家索引(在搜寻位置处)的最近像素被找到。在推像素例中,具有增长映射中与原始映射中的玩家索引(在源像素或区域处)相匹配的玩家索引(在搜寻位置处)的最近像素被找到。然而,强力搜索在计算上花费可能是非常高的,可使用优化来减少计算花费。用于更高效地找到该点的一个非限制示例性优化是遵循上述高度映射的梯度或其模糊版本,以及仅在梯度方向中检查直线中的像素。在该高度映射中,在玩家索引在原始玩家索引映射和增长玩家索引映射中相同时,高度值低,而在玩家索引(在两个映射中)为零时,高度值高。在任一给定像素处,梯度可被定义为在该高度映射中指向“下坡”的矢量。如上所述,然后拉像素和推像素两者可沿该梯度(下坡)搜寻,直到它们到达它们的相应停止条件。这种搜寻操作的其他基本优化包括使用间隔对分或使用基于斜率的近似来跳过像素;随着搜寻的进行,每隔一定间隔重新采样梯度;以及一旦满足停止准则则在附近检查以找到更好 /更近的匹配(不是直接沿着梯度)。不管使用什么技术来找到感兴趣的轮廓上的最近点,可使用行进的距离(源像素和轮廓像素之间的距离)Dl来计算将推或拉该模型的力矢量的大小(长度)D2。在某些实施例中,D2可以是与Dl线性或非线性地相关的(如D2 = 2*D1或D2 = D12)。作为一个非限制示例,可使用下列公式D2= (D1-0.5像素)*2。例如,如果在两个深度图像中的轮廓之间有5像素的间隙,则该间隙中的每个像素可执行小“搜寻”并产生力矢量。在真实轮廓附近的像素可仅按1个像素搜寻以到达轮廓,使得那些像素处的力大小为(1-0. 5)*2 = I0 远离真实轮廓的像素可按5个像素搜寻,使得力大小将为(5-0.5)*2 = 9。一般来说,从最接近真实轮廓的像素到最远的那些,搜寻距离将为Dl = {1,2,3,4,5},且因此产生的力大小将为D2= {1,3,5,7,9} 0该例中的D2的平均为5,如所希望的一产生的力矢量的平均大小相当于轮廓(接近每个受力位置)之间的距离,它是模型可被移动以将模型放在合适
16的场所的距离。对于每个源像素,然后可用方向和大小(即长度)来构造最终力矢量。对于拉像素,方向是由从轮廓像素到源像素的矢量确定的;对于推像素,它是反向矢量。该力矢量的长度为D2。在每个像素,然后可将该力施加于最合格的(如最近的)受力位置(或分布在若干受力位置之间),且在每个受力位置可将这些力平均以产生身体模型的合适的局部移动。如图7的132和134处所示,确定像素例可包括选择自遮挡推和/或拉像素例。尽管在上述推像素例和拉像素例中身体部位可在前景中相对于背景或另一目标移动,但自遮挡推像素例和拉像素例考虑了该身体部位在同一目标的另一身体部位的前方(例如,一条腿在另一条腿前方,手臂在躯干前方等等)的情况。可在像素的(咬合)玩家索引匹配其对应的(增长)玩家索引,但该(咬合)身体部位索引不匹配其对应的(增长)身体部位索引时标识这些例。在这些例中,搜寻方向(以找到轮廓)可用若干方式得出。作为非限制性示例,可执行强力2D搜索;可对该例调整第二组“遮挡”高度映射使得梯度可指导ID 搜索;或可将方向设置为朝向最近的骨架构件上的最近点。这两种例的细节在其他方面与标准拉例和推例类似。如果合成的像素的(增长)身体部位索引对应于还未被指定来接收磁性力的身体部位,则可对该合成的像素选择推、拉、自遮挡推和/或自遮挡拉例。要理解,在某些情况下,单个像素可负责一个或多个像素例。作为一非限制示例, 一像素可负责自遮挡推像素力和精制ζ像素力两者,其中自遮挡推像素力施加于遮挡身体部位上的受力位置,而精制ζ像素力施加于被遮挡身体部位上的受力位置。如图7的136处所示,确定像素例可包括对合成的像素不选择像素例。经常会不需要对合成的深度图像的所有合成的像素计算力矢量。例如,更远离合成的深度图像中所示的身体模型的合成的像素以及更远离观察到的深度图像中所示的目标的观察到的像素 (即,背景像素)可能不会影响任何受力位置或身体部位。不需要对这些像素确定像素例, 但在某些场景中也可以确定。作为另一示例,合成的像素的观察到的深度值和合成的深度值之间的差异可能低于预定阈值(例如,模型已经匹配了观察到的图像)。由此,不需要对这些像素确定像素例,但在某些场景中也可以确定。以下提供的表详述了上述像素例与图5的骨架模型82中所示的关节之间的示例关系。在该表中,像素例1-7被如下缩写1-拉(规则的)、2_拉(遮挡)、3_推(规则的)、 4-推(遮挡)、5_精制Z、6-磁性拉、以及7-遮挡(无动作)。“受力?”列中的“是”条目指示该行的关节可接收来自力矢量的力。像素例列中的“X”条目表示该行的关节可接收来自对应于该列的像素例的力矢量的力。可以理解,下表是作为示例提供的。其不被认为是限制。可建立模型和像素例之间的其他关系而不背离本发明的范围。
权利要求
1.一种跟踪目标的方法,所述方法包括从源(20)接收(102)目标(18)的观察到的深度图像(140);获得(112)目标的模型(70),该模型具有姿态;将该模型光栅化(116)成合成的深度图像(150);至少部分地基于观察到的深度图像和合成的深度图像之间的差异来调整(14 模型的姿态。
2.如权利要求6所述的方法,其特征在于,观察到的深度图像包括多个观察到的像素, 一个或多个观察到的像素包括观察到的深度值,观察到的深度值指示出所述源和对应于该观察到的像素的目标的一部分之间的距离。
3.如权利要求1所述的方法,其特征在于,所述源包括深度相机。
4.如权利要求1所述的方法,其特征在于,所述源包括立体相机。
5.如权利要求1所述的方法,其特征在于,所述模型包括由多个关节可调整地连接的多个身体部位。
6.如权利要求1所述的方法,其特征在于,所述模型包括由多个关节可调整地连接的多个骨架构件。
7.如权利要求1所述的方法,其特征在于,所述模型包括线框网格,该线框网格包括在多边形边处可调整地连接的多个多边形。
8.如权利要求1所述的方法,其特征在于,所述合成的深度图像包括多个合成的像素, 一个或多个合成的像素包括合成的深度值,合成的深度值指示出所述源和由该合成的像素所表示的目标的一部分之间的距离。
9.如权利要求1所述的方法,其特征在于,所述合成的深度图像包括多个合成的像素, 一个或多个合成的像素包括身体部位索引,身体部位索引指示出该合成的像素所对应的目标的一部分。
10.如权利要求1所述的方法,其特征在于,所述合成的深度图像包括多个合成的像素,每个合成的像素包括指示出该合成的像素所对应的目标的目标索引。
11.如权利要求1所述的方法,其特征在于,调整模型的姿态基于观察到的像素的观察到的深度值和对应的合成的像素的合成的深度值之间的差异。
12.如权利要求1所述的方法,其特征在于,调整模型的姿态还基于与对应的合成的像素不同的观察到的像素的身体部位索引。
13.如权利要求1所述的方法,其特征在于,调整模型的姿态包括对模型的受力位置施加一个或多个力,以及允许模型响应于这些力而移动。
14.如权利要求1所述的方法,其特征在于,调整模型的姿态包括根据一个或多个约束来校正模型。
15.一种计算系统,包括配置成捕捉深度信息的源G8);在操作上被连接到所述源的逻辑子系统G2);以及保持指令的数据保持子系统(44),所述指令能由逻辑子系统执行以从源接收(102)目标的观察到的深度图像;获得(112)目标的模型,该模型具有姿态;将该模型光栅化(116)成合成的深度图像;至少部分地基于观察到的深度图像和合成的深度图像之间的差异来调整(14 模型的姿态。
全文摘要
一种跟踪目标的方法包括从源接收目标的观察到的深度图像以及获得目标的姿态模型。该模型被光栅化成合成的深度图像,至少部分地基于观察到的深度图像和合成的深度图像之间的差异来调整模型的姿态。
文档编号G06K9/00GK102301313SQ201080006305
公开日2011年12月28日 申请日期2010年1月12日 优先权日2009年1月30日
发明者R·M·盖斯 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1