三维虚拟世界的骨架控制的制作方法

文档序号:6442351阅读:256来源:国知局
专利名称:三维虚拟世界的骨架控制的制作方法
技术领域
本发明涉及图像捕捉和处理,尤其涉及骨架控制。
背景技术
虽然相机技术允许记录人类的图像,但计算机可能难以使用这样的图像来准确地评估人类如何在图像中移动。最近,技术已经进展到可在特殊相机和跟踪标签的帮助下解释人类移动的某些方面。例如,可用若干跟踪标签(例如向后反射器)来仔细地装饰演员, 该跟踪标签可由若干相机从若干不同位置来跟踪。随后可使用三角测量来计算每一反射器的三维位置。因为标签被仔细地放置于演员上,且每一标签与演员身体的对应部位的相对位置是已知的,所以可使用对标签位置的三角测量来推断演员身体的位置。然而,这一技术需要使用特殊反射性标签或其他标记物。在科幻电影方面,计算机已经被描绘得足够智能以在没有反射性标签或其他标记物的帮助下实际查看人类并解释人类的运动和姿势。然而,使用特殊效果来创建这样的场景,其中演员连同预定移动脚本一起仔细地扮演,以使得看起来好像演员正在控制计算机的脚本动作一样。演员实际上并未控制计算机,而是试图创建控制的幻象。

发明内容
根据本发明的一个方面,虚拟骨架包括多个关节并提供用三维深度相机观察的人类目标的机器可读表示。虚拟骨架的手关节的相对位置被转换为姿势控制,且响应于该姿势控制来控制三维虚拟世界。提供本发明内容以便以简化的形式介绍在以下具体实施方式
中进一步描述的一些概念。本发明内容并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。此外,所要求保护的主题不限于解决在本发明的任一部分中提及的任何或所有缺点的实现。


图1示出根据本发明的一实施例的查看观察到的场景的深度图像分析系统。图2在某种程度上示意性地示出用虚拟骨架来对人类目标建模。图3A-13D在某种程度上示意性地示出从虚拟骨架转换的姿势上帝游戏控制。图14示意性地示出被配置为将虚拟骨架转换成姿势上帝游戏控制的计算系统。
具体实施例方式诸如3D视觉游戏系统等深度图像分析系统可包括能够观察一个或多个玩家的深度相机。在深度相机捕捉所观察的场景内的玩家的图像时,那些图像可被解释并用一个或多个虚拟骨架来建模。如下文更详细地描述的,虚拟骨架可被用作用于控制诸如上帝游戏之类的三维虚拟游戏世界的输入。换言之,深度相机可观察正在执行被设计为控制三维虚拟游戏世界的所有方面的姿势的人类并对其建模,且可用上帝游戏可将其解释为不同控制的虚拟骨架来对人类目标建模。以此方式,人类可仅用姿势来控制三维虚拟游戏世界,从而避免了常规的键盘、鼠标、跟踪垫和其他控制器。图1示出了深度图像分析系统10的非限制性示例。具体而言,图1示出了游戏系统12,该游戏系统12可以用于玩各种不同的游戏、播放一个或多个不同的媒体类型、和/或控制或操纵非游戏应用和/或操作系统。图1还示出了诸如电视机或计算机监视器之类的可用于向游戏玩家呈现游戏视觉的显示设备16。作为一个示例,显示设备16可用于在视觉上呈现人类目标32用他或她的移动来控制的虚拟化身50。深度图像分析系统10可包括捕捉设备,诸如在视觉上监视或跟踪观察到的场景14内的人类目标32的深度相机22。参考图2和14更详细地讨论深度相机22。人类目标32这里被示为所观察的场景14内的游戏玩家。人类目标32由深度相机22来跟踪,使得人类目标32的移动可由游戏系统12解释成可用于影响游戏系统12正在执行的游戏的控制。换言之,人类目标32可使用他或她的移动来控制游戏。人类目标32 的移动可以被解释成几乎任何类型的游戏控制。人类目标32的某些移动可被解释成服务于除控制虚拟化身50以外的目的的控制。作为非限制性示例,人类目标32的移动可被解释为驾驶虚拟赛车、使虚拟武器发射、以第一人视角在虚拟世界中导航、或者操纵模拟世界的各个方面的控制。移动还可被解释为辅助游戏管理控制。例如,人类目标32可以使用移动来结束、暂停、保存、选择级别、查看高分、与其他玩家交流等。深度相机22还可以用于将目标移动解释成游戏领域之外的操作系统和/或应用控制。操作系统和/或应用的实际上任何可控方面都可以由人类目标32的移动来控制。图 1中所示出的场景是作为示例来提供的,但并不意味着以任何方式进行限制。相反,所示出的场景旨在展示可以在不背离本公开的范围的情况下应用于各种各样不同的应用的一般概念。在此所述的方法和过程可以绑定到各种不同类型的计算系统。图1示出了以游戏系统12、显示设备16和深度相机22为形式的非限制性示例。一般而言,深度图像分析系统可包括图14中以简化形式示出的计算系统60,计算系统60将在下文更详细地讨论。图2示出了简化的处理流水线,其中所观察的场景14中的人类目标32被建模为虚拟骨架46,该虚拟骨架46可被用于在显示设备16上绘制虚拟化身50和/或用作控制游戏、应用、和/或操作系统的其他方面的控制输入。可以理解,处理流水线可包括比图2中所描绘的更多的步骤和/或图2中所描绘的替换步骤,而不背离本发明的范围。如图2所示,人类目标32和所观察的场景14中的其余部分可由诸如深度相机22 之类的捕捉设备来成像。深度相机可为每一像素确定在所观察的场景中一表面相对于深度相机的深度。在不偏离本公开的范围的情况下,可以使用实际上任何深度寻找技术。示例深度寻找技术参考图14的捕捉设备68更详细地讨论。现在回到图2,为每一像素所确定的深度信息可用于生成深度图42。这样的深度图可采用实际上任何合适的数据结构的形式,包括但不限于包括所观察的场景的每个像素的深度值的矩阵。在图2中,深度图42被示意性地示为人类目标32的轮廓的像素化网格。 这一例示是出于理解简明的目的,而不是技术准确性。可以理解,深度图一般包括所有像素 (不仅仅是对应于人类目标32的像素)的深度信息,并且深度相机22的透视可能不会得到CN 102542160 A
图2中所描绘的轮廓。虚拟骨架46可从深度图42导出,以提供对人类目标32的机器可读表示。换言之, 从深度图42导出虚拟骨架46以便对人类目标32建模。虚拟骨架46可以按任何合适的方式从深度图中导出。在某些实施例中,可将一个或多个骨架拟合算法应用于深度图。本发明与实际上任何骨架建模技术兼容。虚拟骨架46可包括多个关节,每一关节对应于人类目标的一部分。在图2中,虚拟骨架46被示为十五个关节的线条画。这一例示是出于理解简明的目的,而不是技术准确性。根据本发明的虚拟骨架可包括实际上任何数量的关节,每一关节都可与实际上任何数量的参数(例如,三维关节位置、关节旋转、对应身体部位的身体姿态(例如,手张开、手合拢等)等)相关联。可以理解,虚拟骨架可采用包括多个骨架关节中的每个关节的一个或多个参数的数据结构的形式(例如,包括每个关节的χ位置、y位置、ζ位置、以及至少一个旋转的关节矩阵)。在某些实施例中,可使用其他类型的虚拟骨架(例如,线框、一组形状图元等)。如图2所示,可将虚拟化身50呈现在显示设备16上作为虚拟骨架46的视觉表示。由于虚拟骨架46对人类目标32进行建模,并且由于对虚拟化身50的呈现基于虚拟骨架46,因此虚拟化身50用作人类目标32的可视的数字表示。由此,虚拟化身50在显示设备16上的移动反映人类目标32的移动。在某些实施例中,只有虚拟化身的部分将呈现在显示设备16上。作为一个非限制性示例,显示设备16可呈现人类目标32的第一人视角,并因此可呈现可通过虚拟化身的虚拟眼睛来查看的虚拟化身的各部分(例如,三维虚拟世界中握有方向盘的伸出的手、握有步枪的伸出的手、抓取物体的伸出的手等)。尽管将虚拟化身50用作可经由深度图的骨架建模由人类目标的移动来控制的游戏的一示例方面,但这并不旨在限制。人类目标可以用虚拟骨架来建模,而虚拟骨架可用于控制除虚拟化身以外的游戏或其他应用的各方面。例如,即使虚拟化身没有被呈现到显示设备,人类目标的移动也可控制游戏或其他应用。如上介绍的,上帝游戏可经由深度图的骨架建模由人类目标的移动来控制。例如, 图3-13示意性地示出在不同时刻(例如,时间、、时间、和时间t2)对人类目标的不同姿势建模的虚拟骨架46。如上讨论的,虚拟骨架46可从深度信息中导出,深度信息从观察人类目标的深度相机获取。虽然虚拟骨架46被示为具有关节的线条画,但应该理解,虚拟骨架可由任何合适的机器可读数据结构来表示。例如,图3A中示为点的关节可由位置坐标和 /或其他机器可读信息来表示。由此,计算系统的逻辑子系统可接收虚拟骨架(即,以机器可读形式表示虚拟骨架的数据结构)并处理一个或多个关节的位置和/或其他属性。以此方式,骨架位置/移动并因此被建模的人类目标的姿势可被解释为用于控制计算系统的不同姿势控制。虽然使用上帝游戏作为一说明性示例,但可以理解,本文描述的姿势解释可被应用于任何多维虚拟环境。作为第一示例,图3A示出面对中间方向(由箭头36表示)的虚拟骨架46。例如, 中间方向可以是沿着深度相机的光轴的朝着深度相机。在时间、,抬起虚拟骨架的右臂(包括右手关节72)并向中间方向伸展。这样的位置可被转换为中间姿势控制。例如,图:3B示出可经由显示设备(例如,图1的显示设备16)呈现给游戏玩家的三维(3D)虚拟游戏世界界面300。图;3B对应于图3A的时间、,如图;3B所示,右控光标82可由右手关节72来建模。可以理解,对“左”、“右”、“前”、“后”等的引用可基于虚拟骨架的解剖。右控光标82以及3D虚拟游戏世界的附加的和/或替换的控制光标可位于显示设备(例如,图1的显示设备16)的屏幕空间位置302中。屏幕空间位置302可使用例如包括χ轴和y轴的笛卡尔坐标系来表征。屏幕空间位置可跟踪如从人类目标(例如,图1的人类目标32)的对应右手的世界空间位置建模的、虚拟骨架46的右手关节72的位置。图 3B在对应于中间位置的屏幕空间位置302处示出右控光标82。屏幕空间位置302可与例如控制光标的质心对齐。虽然在图3B中示出了笛卡尔坐标轴,但这样的轴可从视野中隐藏且不在3D虚拟游戏世界界面中示出。可以明白,左控光标可另外地或另选地跟踪如从人类目标的对应左手的世界空间位置建模的、虚拟骨架的左手关节的位置。例如,如图3A中在时间^处所示,虚拟骨架46将包括右手关节72的右臂向右上方移动,从而使得右手关节 72远离躯干48伸展。这可被解释为滚动姿势。由此,右控光标82的屏幕空间位置302可通过跟踪右手关节72并到达在如图3C所示的3D虚拟游戏世界界面300的可视边缘处的滚动阈值304来作出响应。越过滚动阈值的控制光标滚动3D虚拟游戏世界,以使得与3D 虚拟游戏世界的可视边缘相邻的3D虚拟游戏世界的先前被隐藏的部分变得不隐藏。换言之,计算系统将手关节的相对位置转换为姿势控制并滚动以查看虚拟世界的不同区域。如所示的,右控光标82的至少某一部分可到达右边的滚动阈值304以便发起向右边的滚动控制。越过滚动阈值可包括检测到超出滚动阈值的预定距离(例如,像素数)。此外,滚动速度可与超出滚动阈值的距离成比例,其中越长的距离可对应于越快的滚动速度,而越短的距离可对应于越慢的滚动速度。作为另一示例,确定滚动速度可包括检测到达滚动阈值的手关节的速度。虽然在图3C中示出滚动阈值304,但可以理解,阈值可在没有相应的可视指示符的情况下实现。在某些实施例中,一只或多只手的姿态可有助于滚动姿势或其他计算机控制。例如在某些实施例中,如果手具有特定姿态,则手关节的位置和姿势可使得界面滚动,但如果手具有不同的手姿态,则相同的手关节位置和姿势可能不会使得界面滚动。在图3A-3C的非限制性示例中,张开的手姿态实现滚动。例如,在时间t1;图3A示出具有张开的手姿态的右手92。因此,如图3C所示,3D虚拟游戏世界界面300可用对应的方式向右滚动,如上所述的。虽然在某些实施例中手姿态可有助于滚动和/或其他控制,但在某些实施例中可不考虑手姿态。例如,在某些实施例中,界面可仅响应于手关节位置而不考虑手姿态来滚动。手的姿态可用任何合适的方式来确定。在某些实施例中,可用足够的骨架关节来对手进行建模以仅从骨架数据中识别出手的姿态。在某些实施例中,手关节的位置可被用来在对应深度图和/或对应色彩图像中定位手的位置。在这样的情况下,随后可评估深度图和/或色彩图像中包括手的部分以确定手是张开的姿态还是合拢的姿态。例如,可参照已知手姿态的在先训练的集合来分析深度图和/或色彩图像中包括手的部分以寻找最佳匹配的手姿态。作为另一滚动姿势示例,在图3A的时间t2,虚拟骨架46将右手关节72和左手关节74向上移动至基本上接近头关节44的平面上。图3D对应于图3A的时间t2,在图3D中, 这样的姿势控制可被解释为向上平摇3D虚拟游戏世界界面300。如所示的,右控光标82和左控光标84的至少某一部分可到达上部滚动阈值306以便发起将3D虚拟游戏世界界面 300向上平遥的控制。在另一示例中,左手或右手单独动作可被解释为向上滚动控制。此外,对应于右手关节72和左手关节74的右手92和左手94的姿态可有助于滚动姿势。例如,在时间t2,图3A示出具有张开的手的姿态的右手92和左手94。然而,可以明白,其他的手姿态也可有助于滚动姿势。虽然提供手关节作为一个示例,但可以理解,其他骨架关节在转换平遥虚拟世界的视图时可等效地良好地工作。在某些实施例中,可考虑一个或多个关节的位置、速度和/ 或其他属性。如上文所介绍的,虚拟骨架对游戏玩家(例如,图1的人类目标32)的对应移动进行建模。由此,用虚拟骨架对游戏玩家建模并将骨架移动转换成游戏动作(例如,滚动视图)允许游戏玩家用身体上的移动和姿势来控制游戏。图4A示出用于姿势放大视图控制的示例骨架放大姿势。在时间、,虚拟骨架46 处在中间位置,从而得到图4B中示出的3D虚拟游戏世界界面400。在时间、,虚拟骨架46 将右手关节72和左手关节74带到躯干48前方。换言之,右手关节72和左手关节74可比躯干48更靠近深度相机。图4C(对应于时间、)可分别示出从右手关节72和左手关节74 建模的右控光标82和左控光标84。在时间t2,虚拟骨架46将右手关节72和左手关节74分开,以使得右手关节72和左手关节74移开并远离躯干48。这样的移动可被转换为放大姿势。计算系统可被配置为将放大姿势转换为姿势放大查看控制,并放大3D虚拟游戏世界界面400的视图,如图4D所示。换言之,随着3D虚拟游戏世界的视图放大,右控光标的屏幕空间位置和左控光标的屏幕空间位置移开。虽然提供了使右手关节和左手关节移开作为放大姿势的一个示例,但其他姿势也可被转换为放大虚拟世界的视图,且图4A中示出的姿势是作为一个非限制性示例来提供的。此外,右手92和/或左手94的姿态可有助于放大姿势。例如,图4A将右手92和左手 94示为握紧的拳头,尽管其他姿态也可有助于放大姿势。可以明白,一个或多个其他关节可用于放大姿势且可被转换为姿势放大视图控制。图5A示出用于姿势收缩视图控制的示例骨架缩小姿势。在时间、,虚拟骨架46 处在中间位置,从而得到图5B中示出的3D虚拟游戏世界界面500。在时间A,虚拟骨架46 将右手关节72和左手关节74移离躯干48。图5C(对应于时间、)可分别示出从右手关节 72和左手关节74建模的右控光标82和左控光标84。在时间t2,虚拟骨架46将右手关节72和左手关节74移动到一起,以使得右手关节72和左手关节74位于躯干48前方。这样的移动可被转换为缩小姿势。计算系统可被配置为将缩小姿势转换为姿势收缩视图控制,并响应于该姿势收缩视图控制来收缩3D虚拟游戏世界界面500的视图,如图5D所示。换言之,随着3D虚拟游戏世界的视图收缩,右控光标的屏幕空间位置和左控光标的屏幕空间位置移动到一起。虽然提供了将右手关节和左手关节移动到一起作为缩小姿势的一个示例,但其他姿势也可被转换为收缩虚拟世界的视图,且图5A中示出的姿势是作为一个非限制性示例来提供的。此外,右手92和/或左手94的姿态可有助于缩小姿势。例如,图5A将右手92 和左手94示为握紧的拳头,尽管其他姿态也可有助于缩小姿势。可以明白,一个或多个其
9他关节可用于缩小姿势且可被转换为姿势收缩视图控制。图6A示出用于将控制光标锁定到3D虚拟游戏世界的屏幕空间位置中的对象的示例骨架姿势。在时间、,虚拟骨架46处在中间位置,从而得到图6B中示出的3D虚拟游戏世界界面600。在时间^,虚拟骨架46朝着显示设备(例如,图1的显示设备16)上显示的对象40伸出右手关节72。在时间t1;由右手关节72建模的右手92具有张开的姿态。这样的张开的姿态可由图6C中示出的右控光标82来建模。在时间t2,由右手关节72建模的右手92以抓取运动合拢。计算系统可被配置为响应于抓取手姿态来将控制光标锁定到对象。 例如,右控光标82可被锁定到对象40,如图6D所示。如果越过对象的抓取阈值602,则右控光标82可被锁定到3D虚拟游戏世界中的对象。作为一个示例,如果在光标充分靠近对象40时用户将手合拢的,则手的世界空间参数可越过对象的抓取阈值。例如,用户可在光标占据与对象相同的屏幕空间坐标时合拢他或她的手以便将光标锁定到该对象。作为另一示例,如果手的屏幕空间位置(如被光标可视化的)在对象的阈值距离以内持续了一持续时间阈值,则手的世界空间参数可越过对象的抓取阈值。例如,用户可在世界空间中移动他的手以使光标的屏幕空间位置在对象的屏幕空间位置的阈值距离内。一旦光标已在该阈值距离内持续了长于持续时间阈值,光标以及因此用户的手就被锁定到对象。作为又一示例,如果手的屏幕空间位置在对象的阈值距离内并且手的速度小于速度阈值持续了一持续时间阈值,则手的世界空间参数可越过对象的抓取阈值。例如,用户可在世界空间里移动他或她的手以使得当光标处在对象的阈值距离内时减缓手移动的速度。 当手的速度低于速度阈值持续了长于持续时间阈值(例如,光标悬浮于对象上方)时,光标以及因此用户的手就被锁定到该对象。可以明白,其他关节和/或这些关节的其他姿态可被建模为控制光标并在越过对象的抓取阈值时被锁定到对象。当控制光标被锁定到对象时,游戏玩家(例如,图1的人类目标3 执行的姿势可用于控制3D虚拟游戏世界中的对象的移动。换言之,姿势可用于将对象向前、向后、向左、 向右、向上、向下移动等,以使得控制光标和对象作为一个单元来移动。此外,姿势可用于旋转对象、改变对象的比例或以其他方式控制对象。例如,图7A示出移动被锁定到对象的控制光标并从控制光标释放对象的示例。在时间tQ,虚拟骨架46已经如上所述地抓取了一对象。由此,在图7B中,右控光标82被锁定到对象40。在时间、,虚拟骨架46将包括右手关节72的右臂向左下方移动。由此,被锁定到对象40的右控光标82向左下方移动,如图7C所示。以此方式,被锁定到对象的控制光标可用控制光标来移动对象,以使得人类目标的对应的手的世界空间位置在3D虚拟游戏世界中移动对象。作为另一移动姿势示例,虚拟骨架46可将包括右手关节72的右臂向右移动,如时间t2所示。由此,右控光标82和对象40在3D虚拟游戏世界界面700中向右移动,如图7D 所示。如果游戏玩家(例如,图1的人类目标32)对对象的位置满意,则对象可从控制光标解锁。例如,图7A在时间t3处示出具有由具有张开姿态的右手92建模的右手关节72的虚拟骨架46。这样的姿势可被转换为解锁姿势,因此从右控光标82释放对象40,如图7E 所示。如果越过对象的释放阈值702,则可在3D虚拟游戏世界中释放该对象。例如,当用户张开他的手时,手的世界空间参数可越过对象的释放阈值,如图7E所示。作为另一示例,如果非抓取的手(例如,左手)执行释放姿势,则手的世界空间参数可越过对象的释放阈值。图8A示出用于在3D虚拟游戏世界中旋转对象的示例骨架姿势。在时间、,虚拟骨架46已经如上所述地抓取了一对象。由此,在图8B中,右控光标82被锁定到对象40。 在时间^,虚拟骨架46将包括右手关节72的右臂向左旋转。换言之,右手关节72向内朝着躯干48旋转。这样的移动可被转换为旋转姿势。如在图8C的3D虚拟游戏世界界面800 中所示,被锁定到对象40的右控光标82响应于虚拟骨架46在时间^的旋转姿势而向左旋转。换言之,人类目标的世界空间姿势在3D虚拟游戏世界中旋转对象。在时间t2,如果游戏玩家对对象的位置满意,则游戏玩家可通过执行解锁姿势来从控制光标释放对象。图9A示出用于在3D虚拟游戏世界中缩放对象的示例骨架姿势。在时间、,虚拟骨架46被示为具有处于张开姿态的分别由右手92和左手94建模的右手关节72和左手关节74。图9B示出对应于时间tQ的3D虚拟游戏世界界面900。在时间、,右手92和左手 94移动到合拢的姿态。由此,右控光标82和左控光标84锁定到对象40,如图9C所示。在时间t2,右手关节72向右上方移动,同时左手关节74向左下方移动。这样的移动可被转换为缩放姿势。3D虚拟游戏世界中的对象的比例可响应于虚拟骨架的缩放姿势来改变,以使得人类目标的世界空间姿势在3D虚拟游戏世界中缩放对象。如图9D所示,对象40响应于该缩放姿势而变得更大。作为另一示例,如果对象最初由分得很开的右手关节和左手关节抓取,则对象可被缩放以使得对象变得更小,从而允许右手关节和左手关节朝着彼此移动以执行缩放姿势。在某些场景中,游戏玩家可选择3D虚拟游戏世界中的多个对象,从而将控制光标锁定到该多个对象。此外,由虚拟骨架建模的姿势可通过移动、旋转和缩放对象来控制该多个对象,类似于对移动、旋转和缩放一个对象描述的以上姿势。例如,图IOA示出用于选择多个对象的示例骨架姿势。在时间、,虚拟骨架46处在中间位置,从而得到图IOB中示出的3D虚拟游戏世界界面100。在时间、,虚拟骨架46被示为具有右手关节72环状移动以使得多个对象38被右控光标82环绕,如图IOC所示。这样的移动可被转换为选择姿势,且3D虚拟游戏世界界面可包括对所选的多个对象的指示。 例如,图IOC示出围绕所选的多个对象的虚线。在t2,虚拟骨架46可如上所述地通过将右手92的姿态改变成合拢的姿态来抓取多个对象38。因此,多个对象38可被锁定到右控光标82,如图IOD所示。换言之,如果越过多个对象的抓取阈值,则在3D虚拟游戏世界中多个对象可被锁定到控制光标。此外,3D虚拟游戏世界界面100可包括多个对象38被锁定到右控光标82的指示。例如,图IOD示出围绕所选的多个对象38的实线。在被锁定时,多个对象可在3D虚拟游戏世界中被移动,类似于对移动一个对象的以上描述。例如,表示图IlA的虚拟骨架46的图IlB示出在时间、被锁定到右控光标82 的多个对象38。在时间、,虚拟骨架46将右手关节72向右移动。作为结果,右控光标82向右移动,如图IlC所示。多个对象与控制光标一起移动,以使得人类目标的对应的手的世界空间位置移动3D虚拟游戏世界中的多个对象。在时间t2,虚拟骨架46用解锁姿势释放多个对象38。多个对象可响应于手越过多个对象的释放阈值来被释放。图12A示出用于在3D虚拟游戏世界中旋转多个对象的示例骨架姿势。在时间、, 虚拟骨架46已经抓取了多个对象。由此,右控光标82被锁定到多个对象38,如图12B所示。在时间A,虚拟骨架46将包括右手关节72的右臂向左旋转。换言之,右手关节72向内朝着躯干48旋转。这样的移动可被转换为旋转姿势。如在图12C的3D虚拟游戏世界界面120中所示,右控光标82和多个对象38响应于虚拟骨架46在时间、的旋转姿势而向左旋转。换言之,人类目标的世界空间姿势旋转3D虚拟游戏世界中的多个对象。在时间t2, 如果游戏玩家对多个对象的位置满意,则游戏玩家可通过执行解锁姿势来从控制光标释放该多个对象。图13示出用于在3D虚拟游戏世界中缩放多个对象的示例骨架姿势。在时间tQ, 虚拟骨架46被示为具有处于张开姿态的分别由右手92和左手94建模的右手关节72和左手关节74。图1 示出对应于时间、的3D虚拟游戏世界界面130。在时间、,右手92和左手94移动到合拢的姿态。由此,右控光标82和左控光标84被锁定到多个对象38,如图 13C所示。在时间t2,右手关节72向右上方移动,同时左手关节74向左下方移动。这样的移动可被转换为缩放姿势。人类目标的世界空间姿势缩放3D虚拟游戏世界中的多个对象。 如对应于时间t2的图13D所示,响应于该缩放姿势,多个对象38作为一个集合单元而变得更大。作为另一示例,多个对象可被缩放以使得对象变得更小。上述姿势/控制是非限制性示例。其他姿势和控制也在本发明的范围之内。此外, 可同时执行和转换上述姿势中的两个或更多个。在某些实施例中,一个或多个姿势可以是模态相关的——S卩,同一姿势可取决于系统的模式而产生不同的结果。在某些场景中,可响应于识别虚拟骨架的第一模式发起姿势来设置第一输入模态。例如,第一输入模态可通过包括虚拟骨架用左手轻击左腿的姿势来设置。在设置第一输入模态的同时,将虚拟骨架的特定动作姿势解释为第一姿势控制。 例如,第一输入模态可以是军队命令模态,而第一姿势可以是挑选军队并将他们移动到所需战斗位置的抓取姿势。可响应于识别虚拟骨架的第二模式发起姿势来设置第二输入模态。例如,第二输入模态可通过包括虚拟骨架用左手轻击左肩的姿势来设置。在设置第二输入模态的同时,将虚拟骨架的同一特定动作姿势解释为与第一姿势控制不同的第二姿势控制。换言之,第一姿势控制和第二姿势控制可产生对三维虚拟世界的不同控制。继续以上示例,第二输入模态可以是统计模态,而在第一模态中用于挑选和移动军队的同一抓取姿势可改为用于在第二模态中显示军队的战斗统计。在某些实施例中,一个或多个姿势可以是上下文相关的——即,取决于屏幕的部分和/或姿势针对的虚拟目标,同一姿势可产生不同结果。例如,在抓取大楼的同时作出特定姿势可使得该大楼开始生产资源,而在抓取士兵的同时作出同一特定姿势可使得士兵进行攻击。类似地,屏幕上的不同类型的目标和/或屏幕上不同位置处的相同类型的目标可对相同类型的姿势指示作出不同的响应。
虽然参考了上帝游戏进行了描述,但上述姿势还可应用于其他游戏或应用。此外, 上述姿势可用于控制物理对象,诸如机器人。虽然参考虚拟骨架的虚拟表示来描述了上述姿势,应该理解,可参考构成虚拟骨架的骨架数据来分析姿势。可使用一个或多个测试来分析每一姿势。每一个这样的测试可考虑一个或多个关节的位置、速度、加速度、方向或其他属性。可在绝对意义上、或者参考一个或多个其他关节来考虑这样的属性。作为非限制性示例,姿势可由关节的绝对位置来标识、由两个或更多个关节相对于彼此的相对位置来标识、由连接两个关节的骨骼段的角度相对于连接两个关节的另一骨骼段的角度来标识、和/或由以上或其他属性的组合来标识。在某些实施例中,以上所描述的方法和过程可与包括一个或多个计算机的计算系统关联。特别地,此处描述的方法和过程可被实现为计算机应用、计算机服务、计算机API、 计算机库和/或其他计算机程序产品。图14示意性示出了可以执行上述方法和过程之中的一个或更多个的非限制性计算系统60。以简化形式示出了计算系统60。应当理解,可使用基本上任何计算机架构而不背离本公开的范围。在不同的实施例中,计算系统60可以采取大型计算机、服务器计算机、 台式计算机、膝上型计算机、平板计算机、家庭娱乐计算机、网络计算设备、移动计算设备、 移动通信设备、游戏设备等等的形式。计算系统60包括逻辑子系统62和数据保持子系统64。计算系统60可以任选地包括显示子系统66、捕捉子系统68和/或在图14中未示出的其他组件。计算系统60还可以任选地包括诸如下列用户输入设备例如键盘、鼠标、游戏控制器、相机、话筒和/或触摸
屏等等。逻辑子系统62可包括被配置为执行一个或多个指令的一个或多个物理设备。例如,逻辑子系统可被配置为执行一个或多个指令,该一个或多个指令是一个或多个应用、服务、程序、例程、库、对象、组件、数据结构、或其它逻辑构造的部分。可实现此类指令以执行任务、实现数据类型、变换一个或多个设备的状态、或以其它方式得到所需结果。逻辑子系统可包括被配置成执行软件指令的一个或多个处理器。另外或另选地, 逻辑子系统可包括被配置成执行硬件或固件指令的一个或多个硬件或固件逻辑机器。逻辑子系统的处理器可以是单核或多核,且在其上执行的程序可被配置为并行或分布式处理。 逻辑子系统可以任选地包括遍布两个或多个设备的独立组件,所述设备可远程放置和/或被配置为进行协同处理。该逻辑子系统的一个或多个方面可被虚拟化并由以云计算配置进行配置的可远程访问的联网计算设备执行。数据保持子系统64可包括一个或更多个物理、非瞬时设备,这些设备被配置成保持数据和/或可由该逻辑子系统执行的指令,以实现此处描述的方法和过程。当实现了此类方法和过程时,可变换数据保存子系统64的状态(例如,以保存不同数据)。数据保持子系统64可以包括可移动介质和/或内置设备。数据保持子系统64尤其是可以包括光学存储器设备(例如,⑶、DVD、HD-DVD、蓝光盘等)、半导体存储器设备(例如,RAM、EPROM、EEPROM等)和/或磁存储器设备(例如,硬盘驱动器、软盘驱动器、磁带驱动器、MRAM等)。数据保持子系统64可以包括具有以下特性中的一个或更多个特性的设备易失性、非易失性、动态、静态、读/写、只读、随机存取、顺序存取、位置可寻址、文件可寻址、以及内容可寻址。在某些实施例中,可以将逻辑子系统62和数据保持子系统64集成到一个或更多个常见设备中,如专用集成电路或片上系统。图14还示出以可移动计算机可读存储介质70形式的数据保持子系统的一方面, 该可移动计算机可读存储介质70可用于存储和/或传输可执行以实现此处所述的方法和过程的数据和/或指令。可移动计算机可读存储介质70尤其是可以采取CD、DVD、HD-DVD、 蓝光盘、EEPROM和/或软盘形式。可以明白,数据保持子系统64包括一个或多个方面物理非瞬态设备。相反,在一些实施例中,本文描述的指令的各方面可以按暂态方式通过不由物理设备在至少有限持续时间期间保持的纯信号(例如电磁信号、光信号等)传播。此外,与本公开有关的数据和/ 或其他形式的信息可以通过纯信号传播。在包括显示子系统66时,显示子系统66可用于呈现由数据保持子系统64保持的数据的视觉表示(例如,虚拟化身和/或三维虚拟世界)。由于此处所描述的方法和过程改变由数据保持子系统保持的数据,并由此变换数据保持子系统的状态,因此同样可以变换显示子系统66的状态以在视觉上表示底层数据中的改变。例如,计算系统60可被配置为呈现驾驶游戏以供在显示子系统66的显示设备上显示。由此,计算系统60可包括显示输出以将驾驶游戏界面输出到显示设备。显示子系统66可以包括使用实际上任何类型的技术的一个或多个显示设备。可将这样的显示设备与逻辑子系统62和/或数据保存子系统 64组合在共享封装中,或这样的显示设备可以是经由显示输出连接到逻辑子系统的外围显示设备。在包括通信子系统时,通信子系统可以被配置成将计算系统60与一个或多个其他计算设备可通信地耦合。通信子系统可包括与一个或多个不同的通信协议相兼容的有线和/或无线通信设备。作为非限制性示例,该通信子系统可以被配置成经由无线电话网、无线局域网、有线局域网、无线广域网、有线广域网等进行通信。在一些实施例中,该通信子系统可允许计算系统60经由网络(比如因特网)向其他设备发送消息和/或从其他设备接收消息
计算系统60还可包括被配置成获得一个或多个目标的深度图像的集成和/或外围捕捉设备68。在任一种情况下,计算系统60可包括外围输入以从深度相机接收深度图像并将接收到的深度图像传递到逻辑子系统以供处理。捕捉设备68可以被配置成通过任何合适的技术(例如,飞行时间、结构化光、立体图像等等)捕捉具有深度信息的视频。如此, 捕捉设备68可包括深度相机、摄像机、立体相机、和/或其他合适的捕捉设备。例如,在飞行时间分析中,捕捉设备68可以向目标发射红外光,然后使用传感器来检测从目标的表面反向散射的光。在一些情况下,可以使用脉冲式红外光,其中可以测量出射光脉冲和相应的入射光脉冲之间的时间并将该时间用于确定从该捕捉设备到目标上的特定位置的物理距离。在一些情况下,出射光波的相位可以与入射光波的相位相比较以确定相移,并且该相移可以用于确定从该捕捉设备到目标上的特定位置的物理距离。在另一示例中,飞行时间分析可用于通过经由诸如快门式光脉冲成像之类的技术分析反射光束随时间的强度,来间接地确定从该捕捉设备到目标上的特定位置的物理距
离在另一示例中,结构化光分析可以被捕捉设备68利用来捕捉深度信息。在这样的分析中,图案化光(即被显示为诸如网格图案、条纹图案或星座点之类的已知图案的光)可以被投影到目标上。在落到目标的表面上以后,该图案可能变为变形的,并且可以研究该图案的这种变形以确定从该捕捉设备到目标上的某一位置的物理距离。在另一示例中,捕捉设备可以包括两个或更多个物理上分开的相机,这些相机从不同角度查看目标以获得视觉立体数据。在这种情况下,该视觉立体数据可以被解析以生成深度图像。在其他实施例中,捕捉设备68可以使用其他技术来测量和/或计算深度值。此外, 捕捉设备68可以将所计算的深度信息组织为“Z层”,即与从深度相机沿其视线延伸到目标的Z轴垂直的层。在一些实施例中,两个或更多个不同的相机可以被合并到一集成的捕捉设备中。 例如,深度相机和视频相机(例如RGB视频相机)可以被合并到共同的捕捉设备中。在一些实施例中,可以协作式地使用两个或更多个分开的捕捉设备。例如,可以使用深度相机和分开的视频相机。当使用视频相机时,该视频相机可用于提供目标跟踪数据、对目标跟踪进行纠错的确认数据、图像捕捉、面部识别、对手指(或其他小特征)的高精度跟踪、光感测和/或其他功能。要理解,至少一些目标分析和跟踪操作可以由一个或多个捕捉设备的逻辑机来执行。捕捉设备可以包括被配置成执行一个或多个目标分析和/或跟踪功能的一个或多个板载处理单元。捕捉设备可以包括便于更新这样的板载处理逻辑的固件。计算系统60可任选地包括诸如控制器52和控制器M之类的一个或多个输入设备。输入设备可被用于控制计算系统的操作。在游戏的上下文中,诸如控制器52和/或控制器M之类的输入设备可被用于控制游戏的那些不是通过这里所述的目标识别、跟踪和分析方法和过程来控制的方面。在某些实施例中,诸如控制器52和/或控制器M之类的输入设备可包括可用于测量控制器在物理空间中的移动的加速计、陀螺仪、红外目标/传感器系统等中的一个或多个。在某些实施例中,计算系统可任选地包括和/或利用输入手套、键盘、鼠标、跟踪垫、轨迹球、 触屏、按钮、开关、拨盘、和/或其他输入设备。如将理解的,目标识别、跟踪和分析可被用于控制或扩充游戏或其他应用的常规上由诸如游戏控制器之类的输入设备控制的方面。在某些实施例中,这里所述的目标跟踪可被用作对其他形式的用户输入的完全替代,而在其他实施例中,这种目标跟踪可被用于补充一个或多个其他形式的用户输入。应该理解,此处所述的配置和/或方法在本质上是示例性的,且这些具体实施例或示例不是限制意义,因为多个变体是可能的。此处所述的具体例程或方法可表示任何数量的处理策略中的一个或更多个。由此,所示出的各个动作可以按所示顺序执行、按其他顺序执行、并行地执行、或者在某些情况下省略。同样,可以改变上述过程的次序。本发明的主题包括各种过程、系统和配置的所有新颖和非显而易见的组合和子组合、和此处所公开的其他特征、功能、动作、和/或特性、以及其任何和全部等效物。
权利要求
1.一种保持可由逻辑子系统执行的指令的数据保持设备,所述指令用于呈现三维虚拟游戏世界以供在显示设备上显示;接收包括多个关节的虚拟骨架,所述多个关节包括左手关节和右手关节,所述虚拟骨架提供用三维深度相机观察的人类目标的机器可读表示;在所述三维虚拟游戏世界中呈现控制光标以供在所述显示设备上显示,所述控制光标的屏幕空间位置跟踪如从所述人类目标的对应的手的世界空间位置建模的、所述虚拟骨架的所述左手关节或所述右手关节的位置;如果越过所述三维虚拟游戏世界中的对象的抓取阈值,则将所述控制光标锁定到所述对象;当所述控制光标被锁定到所述对象时,用所述控制光标来移动所述对象,以使得所述人类目标的对应的手的世界空间位置移动所述三维虚拟游戏世界中的对象;以及如果越过所述对象的释放阈值,则在所述三维虚拟游戏世界内的所述对象的释放位置处从所述对象解锁所述控制光标。
2.如权利要求1所述的数据保持设备,其特征在于,如果所述对应的手被所述人类目标合拢,则所述对应的手的世界空间参数越过所述对象的所述抓取阈值。
3.如权利要求1所述的数据保持设备,其特征在于,如果所述对应的手的屏幕空间位置在所述对象的阈值距离之内持续了一持续时间阈值,则所述对应的手的世界空间参数越过所述对象的所述抓取阈值。
4.如权利要求1所述的数据保持设备,其特征在于,如果所述对应的手的屏幕空间位置在所述对象的阈值距离内并且所述对应的手的速度小于速度阈值持续了一持续时间阈值,则所述对应的手的世界空间参数越过所述对象的所述抓取阈值。
5.如权利要求1所述的数据保持设备,其特征在于,如果所述对应的手被所述人类目标张开,则所述对应的手的世界空间参数越过所述对象的所述释放阈值。
6.如权利要求1所述的数据保持设备,其特征在于,还保持可由所述逻辑子系统执行以执行以下操作的指令当所述控制光标被锁定到所述对象时,响应于所述虚拟骨架的旋转姿势来旋转所述三维虚拟游戏世界中的对象,以使得所述人类目标的世界空间姿势旋转所述三维虚拟游戏世界中的对象。
7.如权利要求1所述的数据保持设备,其特征在于,还保持可由所述逻辑子系统执行以执行以下操作的指令当所述控制光标被锁定到所述对象时,响应于所述虚拟骨架的缩放姿势来缩放所述三维虚拟游戏世界中的对象,以使得所述人类目标的世界空间姿势缩放所述三维虚拟游戏世界中的对象。
8.如权利要求1所述的数据保持设备,其特征在于,还保持可由所述逻辑子系统执行以执行以下操作的指令响应于所述虚拟骨架的选择姿势来选择所述三维虚拟游戏世界中的多个对象;如果越过所述多个对象的抓取阈值,则将所述控制光标锁定到所述多个对象;当所述控制光标被锁定到所述多个对象时,用所述控制光标来移动所述多个对象,以使得所述人类目标的对应的手的世界空间位置移动所述三维虚拟游戏世界中的所述多个CN 102542160 A对象;以及如果越过所述多个对象的释放阈值,则在所述三维虚拟游戏世界内的所述多个对象的释放位置处从所述多个对象解锁所述控制光标。
9.如权利要求8所述的数据保持设备,其特征在于,还保持可由所述逻辑子系统执行以执行以下操作的指令当所述控制光标被锁定到所述多个对象时,响应于所述虚拟骨架的旋转姿势来旋转所述三维虚拟游戏世界中的所述多个对象,以使得所述人类目标的世界空间姿势旋转所述三维虚拟游戏世界中的所述多个对象。
10.如权利要求8所述的数据保持设备,其特征在于,还保持可由所述逻辑子系统执行以执行以下操作的指令当所述控制光标被锁定到所述多个对象时,响应于所述虚拟骨架的缩放姿势来缩放所述三维虚拟游戏世界中的所述多个对象,以使得所述人类目标的世界空间姿势缩放所述三维虚拟游戏世界中的所述多个对象。
11.一种保持可由逻辑子系统执行的指令的数据保持设备,所述指令用于呈现三维虚拟游戏世界以供在显示设备上显示;接收包括多个关节的虚拟骨架,所述多个关节包括左手关节和右手关节,所述虚拟骨架提供用三维深度相机观察的人类目标的机器可读表示;在所述三维虚拟游戏世界中呈现控制光标以供在所述显示设备上显示,所述控制光标的屏幕空间位置跟踪如从所述人类目标的对应的手的世界空间位置建模的、所述虚拟骨架的所述左手关节或所述右手关节的位置;以及响应于所述控制光标的屏幕空间位置到达所述三维虚拟游戏世界的可视边界处的滚动阈值,滚动所述三维虚拟游戏世界,以使得与所述三维虚拟游戏世界的可视边界相邻的所述三维虚拟游戏世界的先前被隐藏的部分变得不隐藏。
12.如权利要求11所述的数据保持设备,其特征在于,还保持可由所述逻辑子系统执行以执行以下操作的指令将放大姿势转换为姿势放大视图控制;以及响应于所述姿势放大视图控制来放大所述三维虚拟游戏世界的视图。
13.如权利要求12所述的数据保持设备,其特征在于,还保持可由所述逻辑子系统执行以执行以下操作的指令在所述三维虚拟游戏世界中呈现左控光标以供在所述显示设备上显示,所述左控光标的屏幕空间位置跟踪如从所述人类目标的左手的世界空间位置建模的、所述虚拟骨架的左手关节的位置;在所述三维虚拟游戏世界中呈现右控光标以供在所述显示设备上显示,所述右控光标的屏幕空间位置跟踪如从所述人类目标的右手的世界空间位置建模的、所述虚拟骨架的右手关节的位置;响应于所述放大姿势,随着所述三维虚拟游戏世界的视图放大,所述左控光标的屏幕空间位置和所述右控光标的屏幕空间位置移开。
14.如权利要求11所述的数据保持设备,其特征在于,还保持可由所述逻辑子系统执行以执行以下操作的指令将缩小姿势转换为姿势收缩视图控制;以及响应于所述姿势收缩视图控制来收缩所述三维虚拟游戏世界的视图。
15.如权利要求14所述的数据保持设备,其特征在于,还保持可由所述逻辑子系统执行以执行以下操作的指令在所述三维虚拟游戏世界中呈现左控光标以供在所述显示设备上显示,所述左控光标的屏幕空间位置跟踪如从所述人类目标的左手的世界空间位置建模的、所述虚拟骨架的左手关节的位置;在所述三维虚拟游戏世界中呈现右控光标以供在所述显示设备上显示,所述右控光标的屏幕空间位置跟踪如从所述人类目标的右手的世界空间位置建模的、所述虚拟骨架的右手关节的位置;响应于所述缩小姿势,随着所述三维虚拟游戏世界的视图收缩,所述左控光标的屏幕空间位置和所述右控光标的屏幕空间位置移动到一起。
16.如权利要求11所述的数据保持设备,其特征在于,还保持可由所述逻辑子系统执行以执行以下操作的指令如果越过所述三维虚拟游戏世界中的对象的抓取阈值,则将所述控制光标锁定到所述对象;当所述控制光标被锁定到所述对象时,用所述控制光标来移动所述对象,以使得所述人类目标的对应的手的世界空间位置移动所述三维虚拟游戏世界中的对象;以及如果越过所述对象的释放阈值,则在所述三维虚拟游戏世界内的所述对象的释放位置处从所述对象解锁所述控制光标。
17.如权利要求16所述的数据保持设备,其特征在于,如果所述对应的手被所述人类目标合拢,则所述对应的手的世界空间参数越过所述对象的所述抓取阈值。
18.如权利要求16所述的数据保持设备,其特征在于,如果所述对应的手的屏幕空间位置在所述对象的阈值距离之内持续了一持续时间阈值,则所述对应的手的世界空间参数越过所述对象的所述抓取阈值。
19.如权利要求16所述的数据保持设备,其特征在于,如果所述对应的手被所述人类目标张开,则所述对应的手的世界空间参数越过所述对象的所述释放阈值。
20.一种保持可由逻辑子系统执行的指令的数据保持设备,所述指令用于呈现三维虚拟游戏世界以供在显示设备上显示;接收包括多个关节的虚拟骨架,所述虚拟骨架提供用三维深度相机观察的人类目标的机器可读表示;响应于识别所述虚拟骨架的第一模式发起姿势,设置第一输入模态;在设置第一输入模态的同时,将所述虚拟骨架的特定动作姿势解释为第一姿势控制;响应于识别所述虚拟骨架的第二模式发起姿势,设置第二输入模态;以及在设置所述第二输入模态的同时,将所述虚拟骨架的特定动作姿势解释为第二姿势控制,所述第一姿势控制和所述第二姿势控制产生对所述单位虚拟世界的不同控制。
全文摘要
本发明描述了三维虚拟世界的骨架控制。虚拟骨架包括多个关节并提供用三维深度相机观察的人类目标的机器可读表示。虚拟骨架的手关节的相对位置被转换为姿势控制,且响应于该姿势控制来控制三维虚拟世界。
文档编号G06F19/00GK102542160SQ201110430789
公开日2012年7月4日 申请日期2011年12月20日 优先权日2010年12月21日
发明者D·本内特, K·盖斯纳, R·马尔科维奇, S·拉塔 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1