通过虚拟骨架的驾驶模拟器控制

当前位置:首页w88手机网页版 >

w88手机网页版

通过虚拟骨架的驾驶模拟器控制

时间:2019-11-26本站浏览次数:364

       

通过虚拟骨架的驾驶模拟器控制

本文描述了通过虚拟骨架的驾驶模拟器控制。用通过从所观察的场景中捕捉包括深度信息的深度图像来分析所观察的场景内的人类目标的设备来执行深度图像分析。用包括多个关节的虚拟骨架来对人类目标建模。虚拟骨架被用作用于控制驱动模拟的输入。

通过虚拟骨架的驾驶模拟器控制技术领域本发明涉及通过虚拟骨架的驾驶模拟器控制。背景技术 虽然相机技术允许记录人类的图像,但计算机传统上可能无法使用这样的图像来准确地评估人类在图像中如何移动。最近,技术已经进展成使得可在特殊相机以及一个或多个跟踪标签的帮助下解释人类移动的某些方面。例如,可用若干跟踪标签(例如,向后反射器)来仔细地装饰演员,这些跟踪标签可由若干相机从若干不同位置来跟踪。随后可使用三角测量来计算每一反射器的三维位置。因为标签被仔细地放置于演员上,且每一标签与演员身体的对应部位的相对位置是已知的,所以可使用对标签位置的三角测量来推断演员身体的位置。然而,这一技术需要使用特殊反射的标签或其他标记物。 在科幻电影方面,计算机已经被描绘成足够的智能以在没有反射性标签或其他标记物的帮助下实际查看人类并解释人类的运动和姿势。然而,使用特殊效果创建这样的场景:其中演员遵循使得看起来就像该演员正在控制计算机的脚本动作一样的预定移动脚本仔细地表演。演员实际上并未控制计算机,而是试图创建控制的幻象。发明内容 提供本发明内容以便以简化形式介绍在以下具体实施方式中进一步描述的一些概念。本发明内容并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。此外,所要求保护的主题不限于解决在本发明的任一部分中提及的任何或所有缺点的实现。 用通过从所观察的场景中捕捉包括深度信息的深度图像来分析所观察的场景内的人类目标的设备来执行深度图像分析。用包括多个关节的虚拟骨架来对人类目标建模。虚拟骨架被用作用于控制驾驶模拟的输入。附图说明 图1根据本发明的一实施例示出查看所观察的场景的深度图像分析系统。 图2在某种程度上示意性地示出用虚拟骨架来对人类目标建模。 图3A-3F在某种程度上示意性示出了从虚拟骨架转换的姿势转向角(steeringanglecontrol)控制。 图4示出根据本发明的实施例的虚拟车辆驾驶。 图5-9在某种程度上示意性示出了从虚拟骨架转换的姿势驾驶控制。 图10示意性地示出被配置成将虚拟骨架转换成姿势驾驶控制的计算系统。具体实施方式 诸如3D视觉游戏系统等深度图像分析系统可包括能够观察一个或多个玩家的深度相机。在深度相机捕捉所观察的场景内的玩家的图像时,那些图像可被解释并用一个或多个虚拟骨架来建模。如以下更详细描述的,虚拟骨架可被用作控制驾驶模拟器的输入。换言之,深度相机可观察正在执行被设计成控制驾驶模拟器的人类并对其建模,且可用驾驶模拟器可将其解释为不同控制的虚拟骨架来对人类目标建模。由此,人类可单单用姿势来控制驾驶模拟器,从而避免常规方向盘、踏板、操纵杆和/或其他控制器。 图1示出了深度图像分析系统10的非限制性示例。具体而言,图1示出了游戏系统12,该游戏系统12可以用于玩各种不同的游戏、播放一个或多个不同的媒体类型、和/或控制或操纵非游戏应用。图1还示出了诸如电视机或计算机监视器之类的可用于向游戏玩家呈现游戏画面的显示设备16。作为一个示例,显示设备16可用于在视觉上呈现人类目标32用其移动来控制的虚拟化身50。深度图像分析系统10可包括捕捉设备,诸如在视觉上监视或跟踪所观察的场景14内的人类目标32的深度相机22。参考图2和10更详细地讨论深度相机22。 人类目标32这里被示为所观察的场景14内的游戏玩家。人类目标32由深度相机22来跟踪,使得人类目标32的移动可由游戏系统12解释成可被用于影响游戏系统12正在执行的游戏的控制。换言之,人类目标32可使用他或她的移动来控制游戏。人类目标32的移动可以被解释成几乎任何类型的游戏控制。人类目标32的某些移动可被解释成服务于除控制虚拟化身50以外的目的的控制。作为非限制性示例,人类目标32的移动可被解释为操纵虚拟赛车、开火虚拟武器、以第一人视角导航虚拟世界、或者操纵模拟世界的各个方面的控制。移动还可被解释为辅助游戏管理控制。例如,人类目标32可以使用移动来结束、暂停、保存、选择级别、查看高分、与其他玩家交流等。 深度相机22还可以用于将目标移动解释成游戏领域之外的操作系统和/或应用控制。事实上,操作系统和/或应用的任何可控方面都可以由人类目标32的移动来控制。图1中所示出的场景是作为示例来提供的,但并不意味着以任何方式进行限制。相反,所示出的场景旨在展示可以在不背离本公开的范围的情况下应用于各种各样不同的应用的一般概念。 在此所述的方法和过程可以绑定到各种不同类型的计算系统。图1示出了游戏系统12、显示设备16和深度相机22的形式的非限制性示例。一般而言,深度图像分析系统可包括图10中以简化形式示出的计算系统60,计算系统60将在下文更详细地讨论。 图2示出了简化的处理流水线,其中所观察的场景14中的人类目标32被建模为虚拟骨架46,该虚拟骨架46可被用于牵引显示设备16上的虚拟化身50和/或用作控制游戏、应用、和/或操作系统的其他方面的控制输入。可以理解,处理流水线可包括比图2中所描述的更多的步骤和/或图2中所描述的替换步骤,而不背离本发明的范围。 如图2所示,人类目标32和所观察的场景14中的其余部分可由诸如深度相机22之类的捕捉设备来成像。深度相机可为每一像素确定在所观察的场景中的表面相对于深度相机的深度。在不偏离本公开的范围的情况下,可以使用实际上任何深度寻找技术。示例深度寻找技术参考图10的捕捉设备68来更详细地讨论。 为每一像素所确定的深度信息可用于生成深度图42。这样的深度图可采用实际上任何合适的数据结构的形式,包括但不限于包括所观察的场景的每个像素的深度值的矩阵。在图2中,深度图42被示意性地示为人类目标32的轮廓的像素化网格。这一例示是出于理解简明的目的,而不是技术准确性。可以理解,深度图一般包括所有像素(不仅是对人类目标32进行成像的像素)的深度信息,并且深度相机22的透视不会得到图2中所描绘的轮廓。 虚拟骨架46可从深度图42导出,以提供对人类目标32的机器可读表示。换言之,从深度图42导出虚拟骨架46以便对人类目标32建模。虚拟骨架46可以按任何合适的方式从深度图中导出。在某些实施例中,可将一个或多个骨架拟合算法应用于深度图。本发明与实际上任何骨架建模技术兼容。 虚拟骨架46可包括多个关节,每一关节对应于人类目标的一部分。在图2中,虚拟骨架46被示为十五个关节的线条画。这一例示是出于理解简明的目的,而不是技术准确性。根据本发明的虚拟骨架可包括实际上任何数量的关节,每一关节都可与实际上任何数量的参数(例如,三维关节位置、关节旋转、对应身体部位的身体姿势(例如,手打开、手合上等)等)相关联。可以理解,虚拟骨节可采用数据结构的形式,该数据结构包括多个骨架关节中的每一个的一个或多个参数(例如,包括每一关节的χ位置、y位置、ζ位置和旋转的骨架矩阵)。在某些实施例中,可使用其他类型的虚拟骨架(例如,线框、一组形状图元寸Jο 如图2所示,可将虚拟化身50呈现在显示设备16上作为虚拟骨架46的视觉表示。由于虚拟骨架46对人类目标32进行建模,并且对虚拟化身50的呈现基于虚拟骨架46,因此虚拟化身50用作人类目标32的可视的数字表示。由此,虚拟化身50在显示设备16上的移动反映人类目标32的移动。 在某些实施例中,只有虚拟化身的部分将呈现在显示设备16上。作为一个非限制性示例,显示设备16可呈现人类目标32的第一人视角,并因此可呈现可通过虚拟化身的虚拟眼睛来查看的虚拟化身的各部分(例如,握有方向盘的伸出的手、握有步枪的伸出的手、抓住三维虚拟世界中的物体的伸出的手等)。 尽管将虚拟化身50用作可经由深度图的骨架建模由人类目标的移动来控制的游戏的一示例方面,但这并不旨在限制。人类目标可以用虚拟骨架来建模,而虚拟骨架可用于控制除虚拟化身以外的游戏或其他应用的各方面。例如,即使虚拟化身没有被呈现到显示设备,人类目标的移动也可控制游戏或其他应用。 如上介绍的,驾驶模拟或游戏可经由深度图的骨架建模由人类目标的移动来控制。例如,图3-9示意性地示出在不同时刻(例如,时间、、时间、和时间t2)对人类目标的不同姿势建模的虚拟骨架46。如上讨论的,虚拟骨架46可从深度信息中导出,深度信息从观察人类目标的深度相机获取。虽然虚拟骨架46被示为具有关节的线条画,但应该理解,虚拟骨架可由任何何时的机器可读数据结构来表示。例如,图3A中示为点的关节可由位置坐标和/或其他机器可读信息来表示。由此,计算系统的逻辑子系统可接收虚拟骨架(即,以机器可读形式表示虚拟骨架的数据结构)并处理一个或多个关节的位置和/或其他属性。以此方式,骨架位置/移动并因此被建模的人类目标的姿势可被解释为用于控制计算系统的不同姿势控制。 作为第一示例,图3A示出了在时间t0处于就座位置且放下手臂的虚拟骨架46。在所示实施例中,虚拟骨架尤其包括左手关节82、右手关节84、第一躯干关节88、左脚关节92、以及右脚关节94。在时间、,虚拟骨架的手臂被抬高,就像要持握方向盘。在时间t2,转动手臂,就像转动方向盘。图3B示意性示出了时间、的左手关节82和右手关节84的正面图。图3C示意性示出了时间t2的左手关节82和右手关节84的正面图。 计算系统可被配置成将参考线(例如,水平线)与连接左手关节和右手关节的线之间的角度转换成姿势转向角控制。在一些实施例中,此类转换可仅在右手关节和左手关节在一个或多个躯干关节的前面伸出(即,双手处于要持握方向盘的位置)时执行。 例如,如图;3B中最佳地示出的,在时间t1;参考线302与连接左手关节82与右手关节84的线304之间的角度300是大致-2.0°。由此,所观测和建模的-2.0°相对关节位置可被建模为-2.0°转向角控制(例如,方向盘转到-2.0°)。 作为另一示例,且如图3C中最佳地例示地,在时间t2,参考线302与连接左手关节82和右手关节84的线304之间的角度300为大致观.0°。由此,所观测和建模的观.0°相对关节位置可被建模为观.0°转向角控制(例如,方向盘转到观.0°)。 转换不必是1:1。在一些实施例中,所观测的关节角度可使用线性或非线性转换函数来解释成转向角控制。 在一些实施例中,如图3D中所例示的,可从手臂相对于躯干位置的位置解释姿势转向角控制。例如,在时间、,虚拟骨架46处于驾驶位置。在时间t1;在左手臂越来越靠近躯干90地移动时,右手臂76远离躯干90地移动。计算机系统可被配置成将右手臂和/左手臂相对于至少一个躯干关节的位置转换成姿势转向角控制。在此情形中,姿势可被转换成向右转。类似地,在左手臂78远离躯干90地移动时右手臂76越来越靠近躯干90地移动可对用于向左转的姿势转向角控制作出贡献。 图3E提供了从躯干和/或肩膀的位置解释姿势转向角控制的示例。例如,在时间tQ,虚拟骨架46处于驾驶位置。在时间^,躯干90旋转到右边。计算系统可被配置成将至少一个躯干关节或躯干旋转的另一指示转换成姿势转向角控制。在图3E所示的姿势可被转换成向右转。类似地,躯干旋转到左侧可被解释为向左转。在一些实施例中,手相对于躯干的定位可被解释为姿势转向角控制。例如,当在操纵姿态中手在躯干的前面伸出并在随后移至右边时,这可被解释为向右转,即使躯干随着手移动而扭转。类似地手移至左边可被解释为向左转。 图3F提供了从躯干的侧向倾斜解释姿势转向角控制的示例。例如,在时间、,虚拟骨架46处于驾驶位置。在时间^,躯干90倾向右边。计算系统可被配置成将躯干的倾斜位置转换成姿势转向角控制。在图3F中所示的姿势可被转换成向右转。类似地,躯干倾向左边可被解释为向左转。 在一些情形中,驾驶游戏和/或其他驾驶模拟可被配置成将以上所描述的姿势的两个或多个转换成转向角控制。由此,游戏玩家可使用不同类型的姿势来使虚拟车辆转向。 姿势转向角控制可被用于操纵驾驶游戏或其他驾驶模拟的虚拟车辆。此类操纵可与姿势转向角控制的量值成比例——即,更大角度的操纵姿势会导致虚拟车辆的更急剧的转向。 在一些实施例中,姿势转向角控制不是用来操纵虚拟车辆的唯一操纵控制。计算系统可被编程为具有可确定虚拟车辆的操纵控制、加速度控制和其他控制的人工智能。例如,此类人工智能可被用来在虚拟赛车游戏中自动驾驶对方赛车。人工智能可被调成遵从特定驾驶简档(即,谨慎、鲁莽、熟练等)。此类人工智能还可被用于帮助游戏玩家在驾驶模8拟或游戏中驾驶虚拟车辆。 换言之,还可与人工智能推荐的控制成比例地操纵虚拟车辆。当以此方式控制时,虚拟车辆与姿势转向角控制和人工智能推荐的控制两者的混合成比例地转向。由此,游戏玩家可控制车辆,但是人工智能可辅助游戏玩家,以使得游戏玩家具有更愉快的体验。 图4示出了可在显示设备上显示的驾驶游戏,该显示设备示出了虚拟道路402上的示例虚拟车辆400A。虚拟车辆400A可由所建模的人类目标的姿势来控制,如以上所描述的。此外,可与人工智能推荐的控制和姿势转向角控制成比例地操纵虚拟车辆400A。 姿势转向角控制和人工智能推荐的控制的相对百分比可根据一个或多个可改变游戏参数来动态地设置。换言之,驾驶模拟器可实时地修改多少百分比的操纵控制来自游戏玩家以及多少百分比来自人工智能。 在一些实施例中,驾驶员级别(例如,初学者、中级、高级、专业等)可用作可改变游戏参数,该参数可被用来动态地设置玩家控制与人工智能控制之间的平衡。在此类实施例中,姿势转向角控制的相对百分比可被减小以向初学者驾驶员提供更大的辅助。 在一些实施例中,虚拟车辆的速度可用作可改变游戏参数,该参数可被用来动态地设置玩家控制与人工智能控制之间的平衡。在此类实施例中,姿势转向角控制的相对百分比可随着虚拟车辆的速度的增加而减小。 在一些实施例中,虚拟车道的转弯半径可用作可改变游戏参数,该参数可被用来动态地设置玩家控制与人工智能控制之间的平衡。在此类实施例中,姿势转向角控制的相对百分比可随着虚拟车道的转弯半径的增加而减小。换言之,像车道。 在一些实施例中,与推荐的路径的偏差可用作可改变游戏参数,该参数可被用来动态地设置玩家控制与人工智能控制之间的平衡。在此类实施例中,姿势转向角控制的相对百分比可随着与推荐的路径的偏差的增大而减小。换言之,随着虚拟车辆更远离推荐的驾驶路径(例如,赛车道上的最优线路)地移动,人工智能可施加更多控制以将虚拟车辆推回到车道上。通过使用图4的示例,由于虚拟车辆400A处于推荐的路径410上,,可主要依照玩家控制的结果来操纵虚拟车辆400A。另一方面,由于虚拟车辆400B严重偏离推荐的路径410,可针对虚拟车辆400B增大人工智能控制的百分比。 虽然操纵是作为可以是从虚拟骨架解释的姿势控制和人工智能控制的混合的示例控制形式来提供的,但是这并不进行任何限制。驾驶模拟器或游戏的其他方面可经由混合控制来实现。例如,油门控制和/或刹车控制可经由混合控制来实现。一般而言,虚拟骨架的一个或多个关节的位置可被转换成姿势游戏控制,并且作为姿势游戏控制和人工智能推荐的控制的组合的混合游戏控制可被执行。 作为下一示例,图5、5A和6B示出了可如何实现油门和刹车控制。具体地,图5示意性地示出在不同时刻(例如,时间、、时间、和时间t2)对人类目标的不同加速姿势建模的虚拟骨架46。计算系统可被配置成将虚拟骨架的左脚关节相对于虚拟骨架的右脚关节位置的位置转换成姿势加速度控制。此外,可与姿势加速度控制成比例地加速虚拟车辆。 在时间、,虚拟骨架46被示为具有处于空档位置的左脚和右脚关节。例如,这可对应于空档加速度控制——即,滑行,而没有任何油门或任何刹车。 在时间^,右脚关节94在左脚关节92的前面。右脚关节在左脚关节的前面可被解释为正加速度一即,踩油门。右脚在左脚前面移开的距离可对应于油门控制的量值。 在时间t2,右脚关节94在左脚关节92后面。右脚关节在左脚关节的后面可被解释为负加速度——即,踩刹车。右脚在左脚后面移开的距离可对应于刹车控制的量值。 可以理解,对“左”、“右”、“前”、“后”等的引用可可基于虚拟骨架的解剖。此外,虽然在此示例中使用活动的右脚,但是应当理解,加速度控制可另外或替换地通过左脚来实现。此外,虽然讨论了绝对控制(即,油门开/关、刹车开/关),应当理解,姿势加速度控制可以是相对于默认速度,诸如由人工智能选择的默认速度。 图6A示意性地示出在不同时刻(例如,时间tQ、时间、和时间t2)对人类目标的不同加速度姿势建模的虚拟骨架46。计算系统可被配置成将左脚关节和右手关节远离一个或多个躯干关节的距离转换成姿势加速度控制。此外,可与姿势加速度控制成比例地加速虚拟车辆。 在时间、,虚拟骨架46被示为具有处于空档位置的左脚和右脚关节。例如,这可对应于空档加速度控制——即,滑行,而没有任何油门或任何刹车。在时间、,手(S卩,左手关节82和右手关节84)移动成更靠近躯干。在时间t2,手远离躯干90移动。 可与左手关节和右手关节远离一个或多个躯干关节的距离成比例地增大正加速度。例如,正加速度可以在时间t2处比在时间、和、处更高。类似地,正加速度可以是在时间、处比在时间、和t2处更低。在一些实施例中,手从躯干伸出越过阈值距离可被解释为正加速度,且手相对于阈值距离朝躯干收回可被解释为负加速度(例如,刹车)。 图6B提供了从躯干的位置解释姿势加速度控制的示例。例如,在时间、,虚拟骨架46处于驾驶位置。在时间^,躯干90向前倾斜。换言之,躯干90超捕捉设备倾斜,如箭头72所标示的,由此定位躯干90更靠近捕捉设备(例如,图1的深度相机2¾。计算系统可被配置成将躯干距捕捉设备的距离转换成姿势加速度控制。如图6B所示的姿势可被转换为正加速度。类似地,躯干向后倾斜可被解释为负加速度。 在一些情形中,驾驶游戏和/或其他驾驶模拟可被配置成将以上所描述的姿势的两个或多个转换成加速度控制。由此,游戏玩家可导致虚拟车辆使用不同类型的姿势来加速或减速。 如之前一样,应当理解,姿势加速度控制可相对于默认速度,诸如由人工智能选择的默认速度。此外,虽然手位置在以上是参照一个或多个躯干关节来描述的,但是应当理解,可使用任何其他相当和/或相似的参考,包括手关节的绝对位置。 虽然姿势操纵和加速度控制是可从虚拟骨架转换的控制的两个示例类型,但是其他姿势控制也落在本公开的范围内。以下非线性示例被提供来建议可用的姿势控制的宽度,但是这决不意味着进行限制。 图7示意性地示出在不同时刻(例如,时间、、时间、和时间t2)对人类目标的示例涡轮增压(turboboost)姿势建模的虚拟骨架46。计算系统可被配置成将手关节(例如,右手关节84)从一个或多个躯干关节附近(即,在时间、)突然移至远离一个或多个躯干关节的位置(即,在时间t2)转换成姿势涡轮增压控制。此外,可响应于姿势涡轮增压控制来迅速地加速虚拟车辆。 图8示意性地示出在不同时刻(例如,时间、、时间、和时间t2)对人类目标的示例换档姿势建模的虚拟骨架46。计算系统可被配置成将手关节(例如,右手关节84)靠近髋关节(例如,髋关节98)的移动转换成姿势换档控制。由此,可响应于姿势换档控制来改变虚拟车辆的排档。 在时间、,虚拟骨架46被示为具有处于空档换档位置的右手关节84。在时间t1;右手关节84可相对于髋关节98向前移动,其可转换为排档增加。在时间t2,右手关节84可相对于髋关节98向后移动,其可转换为排档减小。图9示意性地示出在不同时刻(例如,时间、、时间、和时间t2)对人类目标的其他示例换档姿态建模的虚拟骨架46。在时间、,虚拟骨架46被示为具有处于空档换档位置的手。计算系统可被配置成将由相对应的手关节(例如,左手关节8¾建模的一只或多只手的姿态转换成姿势换档控制。由此,可响应于姿势换档控制来改变虚拟车辆的排档。例如,可响应于打开和合拢左手902来减小排档。作为另一示例,可响应于打开和合拢右手来增大排档。 手的姿态可用任何合适的方式来确定。在某些实施例中,可用足够的骨架关节来建模手以仅从骨架数据中识别出手的姿态。在某些实施例中,手关节的位置可被用来在对应深度图和/或对应色彩图像中定位手的位置。在这样的情况下,随后可评估深度图和/或色彩图像中包括手的部分以确定手是张开的姿态还是合拢的姿态。例如,可参照已知手姿态的在先训练的集合来分析深度图和/或色彩图像中包括手的部分以寻找最佳匹配的手姿态。 上述姿势/控制是非限制性示例。其他姿势和控制也在本发明的范围之内。此外,可同时执行和转换上述姿势中的两个或更多个。例如,游戏玩家可导致虚拟车辆通过在打开和合拢伸出的右手时,同时向前移动右脚、相对于伸出的右手抬高伸出的左手,来绕着角落加速。 虽然参考了驾驶游戏进行了描述,但上述姿势还可应用于其他游戏或应用。此外,上述姿势可用于控制物理对象,诸如远程操作的车辆或无人驾驶飞机。 虽然参考虚拟骨架的虚拟表示来描述了上述姿势,应该理解,可参考构成虚拟骨架的骨架数据来分析姿势。可使用一个或多个测试来分析每一姿势。每一个这样的测试可考虑一个或多个关节的位置、速度、加速度、方向或其他属性。可在绝对意义上考虑这样的属性,或者参考一个或多个其他关节。作为非限制性示例,姿势可由关节的绝对位置来标识、由两个或更多个关节相对于彼此的相对位置来标识、由连接两个关节的骨骼段相对于连接两个关节的另一骨骼段的角度的角度来标识、和/或由以上或其他属性的组合来标识。 在某些实施例中,以上所描述的方法和过程可捆绑到包括一个或多个计算机的计算系统。具体而言,此处所述的方法和过程可被实现为计算机应用、计算机服务、计算机API、计算机库、和/或其他计算机程序产品。 图10示意性示出了可以执行上述方法和过程之中的一个或多个的非限制性计算系统60。以简化形式示出了计算系统60。应当理解,可使用基本上任何计算机架构而不背离本公开的范围。在不同的实施例中,计算系统60可以采取大型计算机、服务器计算机、台式计算机、膝上型计算机、平板计算机、家庭娱乐计算机、网络计算设备、移动计算设备、移动通信设备、游戏设备等等的形式。 计算系统60包括逻辑子系统62和数据保持子系统64。计算系统60可以任选地包括显示子系统66、捕捉子系统68和/或在图10中未示出的其他组件。计算系统60还可以任选地包括诸如下列用户输入设备:例如键盘、鼠标、游戏控制器、相机、话筒和/或触摸屏等等。 逻辑子系统62可包括被配置为执行一个或多个指令的一个或多个物理设备。例如,逻辑子系统可被配置为执行一个或多个指令,该一个或多个指令是一个或多个应用、服务、程序、例程、库、对象、组件、数据结构、或其它逻辑构造的部分。可实现此类指令以执行任务、实现数据类型、变换一个或多个设备的状态、或以其他方式得到所需结果。 逻辑子系统可包括被配置成执行软件指令的一个或多个处理器。另外地或替换地,逻辑子系统可包括被配置成执行硬件或固件指令的一个或多个硬件或固件逻辑机器。逻辑子系统的处理器可以是单核或多核,且在其上执行的程序可被配置为并行或分布式处理。逻辑子系统可以任选地包括遍布两个或多个设备的独立组件,所述设备可远程放置和/或被配置为进行协同处理。该逻辑子系统的一个或多个方面可被虚拟化并由以云计算配置进行配置的可远程访问的联网计算设备执行。 数据保持子系统64可包括一个或更多个物理、非瞬时设备,这些设备被配置成保持数据和/或可由该逻辑子系统执行的指令,以实现此处描述的方法和过程。当实现了此类方法和过程时,可变换数据保存子系统64的状态(例如,以保存不同数据)。 数据保持子系统64可包括可移动介质和/或内置设备。数据保持子系统64尤其是可以包括光学存储器设备(例如,⑶、DVD,HD-DVD、蓝光盘等)、半导体存储器设备(例如,RAM、EPROM、EEPROM等)和/或磁存储器设备(例如,硬盘驱动器、软盘驱动器、磁带驱动器、MRAM等)。数据保持子系统64可包括具有以下特性中的一个或多个特性的设备:易失性、非易失性、动态、静态、读/写、只读、随机存取、顺序存取、位置可寻址、文件可寻址、以及内容可寻址。在某些实施例中,可以将逻辑子系统62和数据保持子系统64集成到一个或更多个常见设备中,如专用集成电路或片上系统。 图10还示出以可移动计算机可读存储介质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可以向目标发射红外光,然后使用传感器来检测从目标的表面反向散射的光。在一些情况下,可以使用脉冲式红外光,其中可以测量出射光脉冲和相应的入射光脉冲之间的时间并将该时间用于确定从该捕捉设备到目标上的特定位置的物理距离。在一些情况下,出射光波的相位可以与入射光波的相位相比较以确定相移,并且该相移可以用于确定从该捕捉设备到目标上的特定位置的物理距离。 在另一示例中,飞行时间分析可用于通过经由诸如快门式光脉冲成像之类的技术分析反射光束随时间的强度,来间接地确定从该捕捉设备到目标上的特定位置的物理距1¾O 在另一示例中,结构化光分析可以被捕捉设备68利用来捕捉深度信息。在这样的分析中,图案化光(即被显示为诸如网格图案、条纹图案或星座点之类的已知图案的光)可以被投影到目标上。在落到目标的表面上以后,该图案可能变为变形的,并且可以研究该图案的这种变形以确定从该捕捉设备到目标上的某一位置的物理距离。 在另一示例中,捕捉设备可以包括两个或更多个物理上分开的相机,这些相机从不同角度查看目标以获得视觉立体数据。在这种情况下,该视觉立体数据可以被解析以生成深度图像。 在其他实施例中,捕捉设备68可以使用其他技术来测量和/或计算深度值。此外,捕捉设备68可以将所计算的深度信息组织为“Z层”,即与从深度相机沿其视线延伸到目标的Z轴垂直的层。 在一些实施例中,两个或更多个不同的相机可以被合并到一集成的捕捉设备中。例如,深度相机和视频相机(例如RGB视频相机)可以被合并到共同的捕捉设备中。在一些实施例中,可以协作式地使用两个或更多个分开的捕捉设备。例如,可以使用深度相机和分开的视频相机。当使用视频相机时,该视频相机可用于提供:目标跟踪数据、对目标跟踪进行纠错的确认数据、图像捕捉、面部识别、对手指(或其他小特征)的高精度跟踪、光感测和/或其他功能。 要理解,至少一些目标分析和跟踪操作可以由一个或多个捕捉设备的逻辑机来执行。捕捉设备可以包括被配置成执行一个或多个目标分析和/或跟踪功能的一个或多个板载处理单元。捕捉设备可以包括便于更新这样的板载处理逻辑的固件。计算系统60可任选地包括诸如控制器52和控制器M之类的一个或多个输入设备。输入设备可被用于控制计算系统的操作。在游戏的上下文中,诸如控制器52和/或控制器M之类的输入设备可被用于控制游戏的那些不是通过这里所述的目标识别、跟踪和分析方法和过程来控制的方面。在某些实施例中,诸如控制器52和/或控制器M之类的输入设备可包括可用于测量控制器在物理空间中的移动的加速计、陀螺仪、红外目标/传感器系统等中的一个或多个。在某些实施例中,计算系统可任选地包括和/或利用输入手套、键盘、鼠标、跟踪垫、轨迹球、触屏、按钮、开关、拨盘、和/或其他输入设备。如将理解的,目标识别、跟踪和分析可被用于控制或扩充游戏或其他应用的常规上由诸如游戏控制器之类的输入设备控制的方面。在某些实施例中,这里所述的目标跟踪可被用作对其他形式的用户输入的完全替代,而在其他实施例中,这种目标跟踪可被用于补充一个或多个其他形式的用户输入。 应该理解,此处所述的配置和/或方法在本质上是示例性的,并且这些特定实施例或示例不是限制意义,因为多个变体是可能的。此处所述的特定例程或方法可表示任意数量的处理策略中的一个或多个。由此,所示出的各个动作可按所示顺序执行、按其他顺序执行、并行地执行、或者在一些情况下省略。同样,可改变上述过程的次序。 本公开的主题包括各种过程、系统和配置的所有新颖和非显而易见的组合和子组合,和此处所公开的其他特征、功能、动作、和/或特性、以及其任何和全部等效物。

Description

通过虚拟骨架的驾驶模拟器控制技术领域本发明涉及通过虚拟骨架的驾驶模拟器控制。背景技术 虽然相机技术允许记录人类的图像,但计算机传统上可能无法使用这样的图像来准确地评估人类在图像中如何移动。最近,技术已经进展成使得可在特殊相机以及一个或多个跟踪标签的帮助下解释人类移动的某些方面。例如,可用若干跟踪标签(例如,向后反射器)来仔细地装饰演员,这些跟踪标签可由若干相机从若干不同位置来跟踪。随后可使用三角测量来计算每一反射器的三维位置。因为标签被仔细地放置于演员上,且每一标签与演员身体的对应部位的相对位置是已知的,所以可使用对标签位置的三角测量来推断演员身体的位置。然而,这一技术需要使用特殊反射的标签或其他标记物。 在科幻电影方面,计算机已经被描绘成足够的智能以在没有反射性标签或其他标记物的帮助下实际查看人类并解释人类的运动和姿势。然而,使用特殊效果创建这样的场景:其中演员遵循使得看起来就像该演员正在控制计算机的脚本动作一样的预定移动脚本仔细地表演。演员实际上并未控制计算机,而是试图创建控制的幻象。发明内容 提供本发明内容以便以简化形式介绍在以下具体实施方式中进一步描述的一些概念。本发明内容并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。此外,所要求保护的主题不限于解决在本发明的任一部分中提及的任何或所有缺点的实现。 用通过从所观察的场景中捕捉包括深度信息的深度图像来分析所观察的场景内的人类目标的设备来执行深度图像分析。用包括多个关节的虚拟骨架来对人类目标建模。虚拟骨架被用作用于控制驾驶模拟的输入。附图说明 图1根据本发明的一实施例示出查看所观察的场景的深度图像分析系统。 图2在某种程度上示意性地示出用虚拟骨架来对人类目标建模。 图3A-3F在某种程度上示意性示出了从虚拟骨架转换的姿势转向角(steeringanglecontrol)控制。 图4示出根据本发明的实施例的虚拟车辆驾驶。 图5-9在某种程度上示意性示出了从虚拟骨架转换的姿势驾驶控制。 图10示意性地示出被配置成将虚拟骨架转换成姿势驾驶控制的计算系统。具体实施方式 诸如3D视觉游戏系统等深度图像分析系统可包括能够观察一个或多个玩家的深度相机。在深度相机捕捉所观察的场景内的玩家的图像时,那些图像可被解释并用一个或多个虚拟骨架来建模。如以下更详细描述的,虚拟骨架可被用作控制驾驶模拟器的输入。换言之,深度相机可观察正在执行被设计成控制驾驶模拟器的人类并对其建模,且可用驾驶模拟器可将其解释为不同控制的虚拟骨架来对人类目标建模。由此,人类可单单用姿势来控制驾驶模拟器,从而避免常规方向盘、踏板、操纵杆和/或其他控制器。 图1示出了深度图像分析系统10的非限制性示例。具体而言,图1示出了游戏系统12,该游戏系统12可以用于玩各种不同的游戏、播放一个或多个不同的媒体类型、和/或控制或操纵非游戏应用。图1还示出了诸如电视机或计算机监视器之类的可用于向游戏玩家呈现游戏画面的显示设备16。作为一个示例,显示设备16可用于在视觉上呈现人类目标32用其移动来控制的虚拟化身50。深度图像分析系统10可包括捕捉设备,诸如在视觉上监视或跟踪所观察的场景14内的人类目标32的深度相机22。参考图2和10更详细地讨论深度相机22。 人类目标32这里被示为所观察的场景14内的游戏玩家。人类目标32由深度相机22来跟踪,使得人类目标32的移动可由游戏系统12解释成可被用于影响游戏系统12正在执行的游戏的控制。换言之,人类目标32可使用他或她的移动来控制游戏。人类目标32的移动可以被解释成几乎任何类型的游戏控制。人类目标32的某些移动可被解释成服务于除控制虚拟化身50以外的目的的控制。作为非限制性示例,人类目标32的移动可被解释为操纵虚拟赛车、开火虚拟武器、以第一人视角导航虚拟世界、或者操纵模拟世界的各个方面的控制。移动还可被解释为辅助游戏管理控制。例如,人类目标32可以使用移动来结束、暂停、保存、选择级别、查看高分、与其他玩家交流等。 深度相机22还可以用于将目标移动解释成游戏领域之外的操作系统和/或应用控制。事实上,操作系统和/或应用的任何可控方面都可以由人类目标32的移动来控制。图1中所示出的场景是作为示例来提供的,但并不意味着以任何方式进行限制。相反,所示出的场景旨在展示可以在不背离本公开的范围的情况下应用于各种各样不同的应用的一般概念。 在此所述的方法和过程可以绑定到各种不同类型的计算系统。图1示出了游戏系统12、显示设备16和深度相机22的形式的非限制性示例。一般而言,深度图像分析系统可包括图10中以简化形式示出的计算系统60,计算系统60将在下文更详细地讨论。 图2示出了简化的处理流水线,其中所观察的场景14中的人类目标32被建模为虚拟骨架46,该虚拟骨架46可被用于牵引显示设备16上的虚拟化身50和/或用作控制游戏、应用、和/或操作系统的其他方面的控制输入。可以理解,处理流水线可包括比图2中所描述的更多的步骤和/或图2中所描述的替换步骤,而不背离本发明的范围。 如图2所示,人类目标32和所观察的场景14中的其余部分可由诸如深度相机22之类的捕捉设备来成像。深度相机可为每一像素确定在所观察的场景中的表面相对于深度相机的深度。在不偏离本公开的范围的情况下,可以使用实际上任何深度寻找技术。示例深度寻找技术参考图10的捕捉设备68来更详细地讨论。 为每一像素所确定的深度信息可用于生成深度图42。这样的深度图可采用实际上任何合适的数据结构的形式,包括但不限于包括所观察的场景的每个像素的深度值的矩阵。在图2中,深度图42被示意性地示为人类目标32的轮廓的像素化网格。这一例示是出于理解简明的目的,而不是技术准确性。可以理解,深度图一般包括所有像素(不仅是对人类目标32进行成像的像素)的深度信息,并且深度相机22的透视不会得到图2中所描绘的轮廓。 虚拟骨架46可从深度图42导出,以提供对人类目标32的机器可读表示。换言之,从深度图42导出虚拟骨架46以便对人类目标32建模。虚拟骨架46可以按任何合适的方式从深度图中导出。在某些实施例中,可将一个或多个骨架拟合算法应用于深度图。本发明与实际上任何骨架建模技术兼容。 虚拟骨架46可包括多个关节,每一关节对应于人类目标的一部分。在图2中,虚拟骨架46被示为十五个关节的线条画。这一例示是出于理解简明的目的,而不是技术准确性。根据本发明的虚拟骨架可包括实际上任何数量的关节,每一关节都可与实际上任何数量的参数(例如,三维关节位置、关节旋转、对应身体部位的身体姿势(例如,手打开、手合上等)等)相关联。可以理解,虚拟骨节可采用数据结构的形式,该数据结构包括多个骨架关节中的每一个的一个或多个参数(例如,包括每一关节的χ位置、y位置、ζ位置和旋转的骨架矩阵)。在某些实施例中,可使用其他类型的虚拟骨架(例如,线框、一组形状图元寸Jο 如图2所示,可将虚拟化身50呈现在显示设备16上作为虚拟骨架46的视觉表示。由于虚拟骨架46对人类目标32进行建模,并且对虚拟化身50的呈现基于虚拟骨架46,因此虚拟化身50用作人类目标32的可视的数字表示。由此,虚拟化身50在显示设备16上的移动反映人类目标32的移动。 在某些实施例中,只有虚拟化身的部分将呈现在显示设备16上。作为一个非限制性示例,显示设备16可呈现人类目标32的第一人视角,并因此可呈现可通过虚拟化身的虚拟眼睛来查看的虚拟化身的各部分(例如,握有方向盘的伸出的手、握有步枪的伸出的手、抓住三维虚拟世界中的物体的伸出的手等)。 尽管将虚拟化身50用作可经由深度图的骨架建模由人类目标的移动来控制的游戏的一示例方面,但这并不旨在限制。人类目标可以用虚拟骨架来建模,而虚拟骨架可用于控制除虚拟化身以外的游戏或其他应用的各方面。例如,即使虚拟化身没有被呈现到显示设备,人类目标的移动也可控制游戏或其他应用。 如上介绍的,驾驶模拟或游戏可经由深度图的骨架建模由人类目标的移动来控制。例如,图3-9示意性地示出在不同时刻(例如,时间、、时间、和时间t2)对人类目标的不同姿势建模的虚拟骨架46。如上讨论的,虚拟骨架46可从深度信息中导出,深度信息从观察人类目标的深度相机获取。虽然虚拟骨架46被示为具有关节的线条画,但应该理解,虚拟骨架可由任何何时的机器可读数据结构来表示。例如,图3A中示为点的关节可由位置坐标和/或其他机器可读信息来表示。由此,计算系统的逻辑子系统可接收虚拟骨架(即,以机器可读形式表示虚拟骨架的数据结构)并处理一个或多个关节的位置和/或其他属性。以此方式,骨架位置/移动并因此被建模的人类目标的姿势可被解释为用于控制计算系统的不同姿势控制。 作为第一示例,图3A示出了在时间t0处于就座位置且放下手臂的虚拟骨架46。在所示实施例中,虚拟骨架尤其包括左手关节82、右手关节84、第一躯干关节88、左脚关节92、以及右脚关节94。在时间、,虚拟骨架的手臂被抬高,就像要持握方向盘。在时间t2,转动手臂,就像转动方向盘。图3B示意性示出了时间、的左手关节82和右手关节84的正面图。图3C示意性示出了时间t2的左手关节82和右手关节84的正面图。 计算系统可被配置成将参考线(例如,水平线)与连接左手关节和右手关节的线之间的角度转换成姿势转向角控制。在一些实施例中,此类转换可仅在右手关节和左手关节在一个或多个躯干关节的前面伸出(即,双手处于要持握方向盘的位置)时执行。 例如,如图;3B中最佳地示出的,在时间t1;参考线302与连接左手关节82与右手关节84的线304之间的角度300是大致-2.0°。由此,所观测和建模的-2.0°相对关节位置可被建模为-2.0°转向角控制(例如,方向盘转到-2.0°)。 作为另一示例,且如图3C中最佳地例示地,在时间t2,参考线302与连接左手关节82和右手关节84的线304之间的角度300为大致观.0°。由此,所观测和建模的观.0°相对关节位置可被建模为观.0°转向角控制(例如,方向盘转到观.0°)。 转换不必是1:1。在一些实施例中,所观测的关节角度可使用线性或非线性转换函数来解释成转向角控制。 在一些实施例中,如图3D中所例示的,可从手臂相对于躯干位置的位置解释姿势转向角控制。例如,在时间、,虚拟骨架46处于驾驶位置。在时间t1;在左手臂越来越靠近躯干90地移动时,右手臂76远离躯干90地移动。计算机系统可被配置成将右手臂和/左手臂相对于至少一个躯干关节的位置转换成姿势转向角控制。在此情形中,姿势可被转换成向右转。类似地,在左手臂78远离躯干90地移动时右手臂76越来越靠近躯干90地移动可对用于向左转的姿势转向角控制作出贡献。 图3E提供了从躯干和/或肩膀的位置解释姿势转向角控制的示例。例如,在时间tQ,虚拟骨架46处于驾驶位置。在时间^,躯干90旋转到右边。计算系统可被配置成将至少一个躯干关节或躯干旋转的另一指示转换成姿势转向角控制。在图3E所示的姿势可被转换成向右转。类似地,躯干旋转到左侧可被解释为向左转。在一些实施例中,手相对于躯干的定位可被解释为姿势转向角控制。例如,当在操纵姿态中手在躯干的前面伸出并在随后移至右边时,这可被解释为向右转,即使躯干随着手移动而扭转。类似地手移至左边可被解释为向左转。 图3F提供了从躯干的侧向倾斜解释姿势转向角控制的示例。例如,在时间、,虚拟骨架46处于驾驶位置。在时间^,躯干90倾向右边。计算系统可被配置成将躯干的倾斜位置转换成姿势转向角控制。在图3F中所示的姿势可被转换成向右转。类似地,躯干倾向左边可被解释为向左转。 在一些情形中,驾驶游戏和/或其他驾驶模拟可被配置成将以上所描述的姿势的两个或多个转换成转向角控制。由此,游戏玩家可使用不同类型的姿势来使虚拟车辆转向。 姿势转向角控制可被用于操纵驾驶游戏或其他驾驶模拟的虚拟车辆。此类操纵可与姿势转向角控制的量值成比例——即,更大角度的操纵姿势会导致虚拟车辆的更急剧的转向。 在一些实施例中,姿势转向角控制不是用来操纵虚拟车辆的唯一操纵控制。计算系统可被编程为具有可确定虚拟车辆的操纵控制、加速度控制和其他控制的人工智能。例如,此类人工智能可被用来在虚拟赛车游戏中自动驾驶对方赛车。人工智能可被调成遵从特定驾驶简档(即,谨慎、鲁莽、熟练等)。此类人工智能还可被用于帮助游戏玩家在驾驶模8拟或游戏中驾驶虚拟车辆。 换言之,还可与人工智能推荐的控制成比例地操纵虚拟车辆。当以此方式控制时,虚拟车辆与姿势转向角控制和人工智能推荐的控制两者的混合成比例地转向。由此,游戏玩家可控制车辆,但是人工智能可辅助游戏玩家,以使得游戏玩家具有更愉快的体验。 图4示出了可在显示设备上显示的驾驶游戏,该显示设备示出了虚拟道路402上的示例虚拟车辆400A。虚拟车辆400A可由所建模的人类目标的姿势来控制,如以上所描述的。此外,可与人工智能推荐的控制和姿势转向角控制成比例地操纵虚拟车辆400A。 姿势转向角控制和人工智能推荐的控制的相对百分比可根据一个或多个可改变游戏参数来动态地设置。换言之,驾驶模拟器可实时地修改多少百分比的操纵控制来自游戏玩家以及多少百分比来自人工智能。 在一些实施例中,驾驶员级别(例如,初学者、中级、高级、专业等)可用作可改变游戏参数,该参数可被用来动态地设置玩家控制与人工智能控制之间的平衡。在此类实施例中,姿势转向角控制的相对百分比可被减小以向初学者驾驶员提供更大的辅助。 在一些实施例中,虚拟车辆的速度可用作可改变游戏参数,该参数可被用来动态地设置玩家控制与人工智能控制之间的平衡。在此类实施例中,姿势转向角控制的相对百分比可随着虚拟车辆的速度的增加而减小。 在一些实施例中,虚拟车道的转弯半径可用作可改变游戏参数,该参数可被用来动态地设置玩家控制与人工智能控制之间的平衡。在此类实施例中,姿势转向角控制的相对百分比可随着虚拟车道的转弯半径的增加而减小。换言之,像车道。 在一些实施例中,与推荐的路径的偏差可用作可改变游戏参数,该参数可被用来动态地设置玩家控制与人工智能控制之间的平衡。在此类实施例中,姿势转向角控制的相对百分比可随着与推荐的路径的偏差的增大而减小。换言之,随着虚拟车辆更远离推荐的驾驶路径(例如,赛车道上的最优线路)地移动,人工智能可施加更多控制以将虚拟车辆推回到车道上。通过使用图4的示例,由于虚拟车辆400A处于推荐的路径410上,,可主要依照玩家控制的结果来操纵虚拟车辆400A。另一方面,由于虚拟车辆400B严重偏离推荐的路径410,可针对虚拟车辆400B增大人工智能控制的百分比。 虽然操纵是作为可以是从虚拟骨架解释的姿势控制和人工智能控制的混合的示例控制形式来提供的,但是这并不进行任何限制。驾驶模拟器或游戏的其他方面可经由混合控制来实现。例如,油门控制和/或刹车控制可经由混合控制来实现。一般而言,虚拟骨架的一个或多个关节的位置可被转换成姿势游戏控制,并且作为姿势游戏控制和人工智能推荐的控制的组合的混合游戏控制可被执行。 作为下一示例,图5、5A和6B示出了可如何实现油门和刹车控制。具体地,图5示意性地示出在不同时刻(例如,时间、、时间、和时间t2)对人类目标的不同加速姿势建模的虚拟骨架46。计算系统可被配置成将虚拟骨架的左脚关节相对于虚拟骨架的右脚关节位置的位置转换成姿势加速度控制。此外,可与姿势加速度控制成比例地加速虚拟车辆。 在时间、,虚拟骨架46被示为具有处于空档位置的左脚和右脚关节。例如,这可对应于空档加速度控制——即,滑行,而没有任何油门或任何刹车。 在时间^,右脚关节94在左脚关节92的前面。右脚关节在左脚关节的前面可被解释为正加速度一即,踩油门。右脚在左脚前面移开的距离可对应于油门控制的量值。 在时间t2,右脚关节94在左脚关节92后面。右脚关节在左脚关节的后面可被解释为负加速度——即,踩刹车。右脚在左脚后面移开的距离可对应于刹车控制的量值。 可以理解,对“左”、“右”、“前”、“后”等的引用可可基于虚拟骨架的解剖。此外,虽然在此示例中使用活动的右脚,但是应当理解,加速度控制可另外或替换地通过左脚来实现。此外,虽然讨论了绝对控制(即,油门开/关、刹车开/关),应当理解,姿势加速度控制可以是相对于默认速度,诸如由人工智能选择的默认速度。 图6A示意性地示出在不同时刻(例如,时间tQ、时间、和时间t2)对人类目标的不同加速度姿势建模的虚拟骨架46。计算系统可被配置成将左脚关节和右手关节远离一个或多个躯干关节的距离转换成姿势加速度控制。此外,可与姿势加速度控制成比例地加速虚拟车辆。 在时间、,虚拟骨架46被示为具有处于空档位置的左脚和右脚关节。例如,这可对应于空档加速度控制——即,滑行,而没有任何油门或任何刹车。在时间、,手(S卩,左手关节82和右手关节84)移动成更靠近躯干。在时间t2,手远离躯干90移动。 可与左手关节和右手关节远离一个或多个躯干关节的距离成比例地增大正加速度。例如,正加速度可以在时间t2处比在时间、和、处更高。类似地,正加速度可以是在时间、处比在时间、和t2处更低。在一些实施例中,手从躯干伸出越过阈值距离可被解释为正加速度,且手相对于阈值距离朝躯干收回可被解释为负加速度(例如,刹车)。 图6B提供了从躯干的位置解释姿势加速度控制的示例。例如,在时间、,虚拟骨架46处于驾驶位置。在时间^,躯干90向前倾斜。换言之,躯干90超捕捉设备倾斜,如箭头72所标示的,由此定位躯干90更靠近捕捉设备(例如,图1的深度相机2¾。计算系统可被配置成将躯干距捕捉设备的距离转换成姿势加速度控制。如图6B所示的姿势可被转换为正加速度。类似地,躯干向后倾斜可被解释为负加速度。 在一些情形中,驾驶游戏和/或其他驾驶模拟可被配置成将以上所描述的姿势的两个或多个转换成加速度控制。由此,游戏玩家可导致虚拟车辆使用不同类型的姿势来加速或减速。 如之前一样,应当理解,姿势加速度控制可相对于默认速度,诸如由人工智能选择的默认速度。此外,虽然手位置在以上是参照一个或多个躯干关节来描述的,但是应当理解,可使用任何其他相当和/或相似的参考,包括手关节的绝对位置。 虽然姿势操纵和加速度控制是可从虚拟骨架转换的控制的两个示例类型,但是其他姿势控制也落在本公开的范围内。以下非线性示例被提供来建议可用的姿势控制的宽度,但是这决不意味着进行限制。 图7示意性地示出在不同时刻(例如,时间、、时间、和时间t2)对人类目标的示例涡轮增压(turboboost)姿势建模的虚拟骨架46。计算系统可被配置成将手关节(例如,右手关节84)从一个或多个躯干关节附近(即,在时间、)突然移至远离一个或多个躯干关节的位置(即,在时间t2)转换成姿势涡轮增压控制。此外,可响应于姿势涡轮增压控制来迅速地加速虚拟车辆。 图8示意性地示出在不同时刻(例如,时间、、时间、和时间t2)对人类目标的示例换档姿势建模的虚拟骨架46。计算系统可被配置成将手关节(例如,右手关节84)靠近髋关节(例如,髋关节98)的移动转换成姿势换档控制。由此,可响应于姿势换档控制来改变虚拟车辆的排档。 在时间、,虚拟骨架46被示为具有处于空档换档位置的右手关节84。在时间t1;右手关节84可相对于髋关节98向前移动,其可转换为排档增加。在时间t2,右手关节84可相对于髋关节98向后移动,其可转换为排档减小。图9示意性地示出在不同时刻(例如,时间、、时间、和时间t2)对人类目标的其他示例换档姿态建模的虚拟骨架46。在时间、,虚拟骨架46被示为具有处于空档换档位置的手。计算系统可被配置成将由相对应的手关节(例如,左手关节8¾建模的一只或多只手的姿态转换成姿势换档控制。由此,可响应于姿势换档控制来改变虚拟车辆的排档。例如,可响应于打开和合拢左手902来减小排档。作为另一示例,可响应于打开和合拢右手来增大排档。 手的姿态可用任何合适的方式来确定。在某些实施例中,可用足够的骨架关节来建模手以仅从骨架数据中识别出手的姿态。在某些实施例中,手关节的位置可被用来在对应深度图和/或对应色彩图像中定位手的位置。在这样的情况下,随后可评估深度图和/或色彩图像中包括手的部分以确定手是张开的姿态还是合拢的姿态。例如,可参照已知手姿态的在先训练的集合来分析深度图和/或色彩图像中包括手的部分以寻找最佳匹配的手姿态。 上述姿势/控制是非限制性示例。其他姿势和控制也在本发明的范围之内。此外,可同时执行和转换上述姿势中的两个或更多个。例如,游戏玩家可导致虚拟车辆通过在打开和合拢伸出的右手时,同时向前移动右脚、相对于伸出的右手抬高伸出的左手,来绕着角落加速。 虽然参考了驾驶游戏进行了描述,但上述姿势还可应用于其他游戏或应用。此外,上述姿势可用于控制物理对象,诸如远程操作的车辆或无人驾驶飞机。 虽然参考虚拟骨架的虚拟表示来描述了上述姿势,应该理解,可参考构成虚拟骨架的骨架数据来分析姿势。可使用一个或多个测试来分析每一姿势。每一个这样的测试可考虑一个或多个关节的位置、速度、加速度、方向或其他属性。可在绝对意义上考虑这样的属性,或者参考一个或多个其他关节。作为非限制性示例,姿势可由关节的绝对位置来标识、由两个或更多个关节相对于彼此的相对位置来标识、由连接两个关节的骨骼段相对于连接两个关节的另一骨骼段的角度的角度来标识、和/或由以上或其他属性的组合来标识。 在某些实施例中,以上所描述的方法和过程可捆绑到包括一个或多个计算机的计算系统。具体而言,此处所述的方法和过程可被实现为计算机应用、计算机服务、计算机API、计算机库、和/或其他计算机程序产品。 图10示意性示出了可以执行上述方法和过程之中的一个或多个的非限制性计算系统60。以简化形式示出了计算系统60。应当理解,可使用基本上任何计算机架构而不背离本公开的范围。在不同的实施例中,计算系统60可以采取大型计算机、服务器计算机、台式计算机、膝上型计算机、平板计算机、家庭娱乐计算机、网络计算设备、移动计算设备、移动通信设备、游戏设备等等的形式。 计算系统60包括逻辑子系统62和数据保持子系统64。计算系统60可以任选地包括显示子系统66、捕捉子系统68和/或在图10中未示出的其他组件。计算系统60还可以任选地包括诸如下列用户输入设备:例如键盘、鼠标、游戏控制器、相机、话筒和/或触摸屏等等。 逻辑子系统62可包括被配置为执行一个或多个指令的一个或多个物理设备。例如,逻辑子系统可被配置为执行一个或多个指令,该一个或多个指令是一个或多个应用、服务、程序、例程、库、对象、组件、数据结构、或其它逻辑构造的部分。可实现此类指令以执行任务、实现数据类型、变换一个或多个设备的状态、或以其他方式得到所需结果。 逻辑子系统可包括被配置成执行软件指令的一个或多个处理器。另外地或替换地,逻辑子系统可包括被配置成执行硬件或固件指令的一个或多个硬件或固件逻辑机器。逻辑子系统的处理器可以是单核或多核,且在其上执行的程序可被配置为并行或分布式处理。逻辑子系统可以任选地包括遍布两个或多个设备的独立组件,所述设备可远程放置和/或被配置为进行协同处理。该逻辑子系统的一个或多个方面可被虚拟化并由以云计算配置进行配置的可远程访问的联网计算设备执行。 数据保持子系统64可包括一个或更多个物理、非瞬时设备,这些设备被配置成保持数据和/或可由该逻辑子系统执行的指令,以实现此处描述的方法和过程。当实现了此类方法和过程时,可变换数据保存子系统64的状态(例如,以保存不同数据)。 数据保持子系统64可包括可移动介质和/或内置设备。数据保持子系统64尤其是可以包括光学存储器设备(例如,⑶、DVD,HD-DVD、蓝光盘等)、半导体存储器设备(例如,RAM、EPROM、EEPROM等)和/或磁存储器设备(例如,硬盘驱动器、软盘驱动器、磁带驱动器、MRAM等)。数据保持子系统64可包括具有以下特性中的一个或多个特性的设备:易失性、非易失性、动态、静态、读/写、只读、随机存取、顺序存取、位置可寻址、文件可寻址、以及内容可寻址。在某些实施例中,可以将逻辑子系统62和数据保持子系统64集成到一个或更多个常见设备中,如专用集成电路或片上系统。 图10还示出以可移动计算机可读存储介质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可以向目标发射红外光,然后使用传感器来检测从目标的表面反向散射的光。在一些情况下,可以使用脉冲式红外光,其中可以测量出射光脉冲和相应的入射光脉冲之间的时间并将该时间用于确定从该捕捉设备到目标上的特定位置的物理距离。在一些情况下,出射光波的相位可以与入射光波的相位相比较以确定相移,并且该相移可以用于确定从该捕捉设备到目标上的特定位置的物理距离。 在另一示例中,飞行时间分析可用于通过经由诸如快门式光脉冲成像之类的技术分析反射光束随时间的强度,来间接地确定从该捕捉设备到目标上的特定位置的物理距1¾O 在另一示例中,结构化光分析可以被捕捉设备68利用来捕捉深度信息。在这样的分析中,图案化光(即被显示为诸如网格图案、条纹图案或星座点之类的已知图案的光)可以被投影到目标上。在落到目标的表面上以后,该图案可能变为变形的,并且可以研究该图案的这种变形以确定从该捕捉设备到目标上的某一位置的物理距离。 在另一示例中,捕捉设备可以包括两个或更多个物理上分开的相机,这些相机从不同角度查看目标以获得视觉立体数据。在这种情况下,该视觉立体数据可以被解析以生成深度图像。 在其他实施例中,捕捉设备68可以使用其他技术来测量和/或计算深度值。此外,捕捉设备68可以将所计算的深度信息组织为“Z层”,即与从深度相机沿其视线延伸到目标的Z轴垂直的层。 在一些实施例中,两个或更多个不同的相机可以被合并到一集成的捕捉设备中。例如,深度相机和视频相机(例如RGB视频相机)可以被合并到共同的捕捉设备中。在一些实施例中,可以协作式地使用两个或更多个分开的捕捉设备。例如,可以使用深度相机和分开的视频相机。当使用视频相机时,该视频相机可用于提供:目标跟踪数据、对目标跟踪进行纠错的确认数据、图像捕捉、面部识别、对手指(或其他小特征)的高精度跟踪、光感测和/或其他功能。 要理解,至少一些目标分析和跟踪操作可以由一个或多个捕捉设备的逻辑机来执行。捕捉设备可以包括被配置成执行一个或多个目标分析和/或跟踪功能的一个或多个板载处理单元。捕捉设备可以包括便于更新这样的板载处理逻辑的固件。计算系统60可任选地包括诸如控制器52和控制器M之类的一个或多个输入设备。输入设备可被用于控制计算系统的操作。在游戏的上下文中,诸如控制器52和/或控制器M之类的输入设备可被用于控制游戏的那些不是通过这里所述的目标识别、跟踪和分析方法和过程来控制的方面。在某些实施例中,诸如控制器52和/或控制器M之类的输入设备可包括可用于测量控制器在物理空间中的移动的加速计、陀螺仪、红外目标/传感器系统等中的一个或多个。在某些实施例中,计算系统可任选地包括和/或利用输入手套、键盘、鼠标、跟踪垫、轨迹球、触屏、按钮、开关、拨盘、和/或其他输入设备。如将理解的,目标识别、跟踪和分析可被用于控制或扩充游戏或其他应用的常规上由诸如游戏控制器之类的输入设备控制的方面。在某些实施例中,这里所述的目标跟踪可被用作对其他形式的用户输入的完全替代,而在其他实施例中,这种目标跟踪可被用于补充一个或多个其他形式的用户输入。 应该理解,此处所述的配置和/或方法在本质上是示例性的,并且这些特定实施例或示例不是限制意义,因为多个变体是可能的。此处所述的特定例程或方法可表示任意数量的处理策略中的一个或多个。由此,所示出的各个动作可按所示顺序执行、按其他顺序执行、并行地执行、或者在一些情况下省略。同样,可改变上述过程的次序。 本公开的主题包括各种过程、系统和配置的所有新颖和非显而易见的组合和子组合,和此处所公开的其他特征、功能、动作、和/或特性、以及其任何和全部等效物。

通过虚拟骨架的驾驶模拟器控制技术领域本发明涉及通过虚拟骨架的驾驶模拟器控制。背景技术 虽然相机技术允许记录人类的图像,但计算机传统上可能无法使用这样的图像来准确地评估人类在图像中如何移动。最近,技术已经进展成使得可在特殊相机以及一个或多个跟踪标签的帮助下解释人类移动的某些方面。例如,可用若干跟踪标签(例如,向后反射器)来仔细地装饰演员,这些跟踪标签可由若干相机从若干不同位置来跟踪。随后可使用三角测量来计算每一反射器的三维位置。因为标签被仔细地放置于演员上,且每一标签与演员身体的对应部位的相对位置是已知的,所以可使用对标签位置的三角测量来推断演员身体的位置。然而,这一技术需要使用特殊反射的标签或其他标记物。 在科幻电影方面,计算机已经被描绘成足够的智能以在没有反射性标签或其他标记物的帮助下实际查看人类并解释人类的运动和姿势。然而,使用特殊效果创建这样的场景:其中演员遵循使得看起来就像该演员正在控制计算机的脚本动作一样的预定移动脚本仔细地表演。演员实际上并未控制计算机,而是试图创建控制的幻象。发明内容 提供本发明内容以便以简化形式介绍在以下具体实施方式中进一步描述的一些概念。本发明内容并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。此外,所要求保护的主题不限于解决在本发明的任一部分中提及的任何或所有缺点的实现。 用通过从所观察的场景中捕捉包括深度信息的深度图像来分析所观察的场景内的人类目标的设备来执行深度图像分析。用包括多个关节的虚拟骨架来对人类目标建模。虚拟骨架被用作用于控制驾驶模拟的输入。附图说明 图1根据本发明的一实施例示出查看所观察的场景的深度图像分析系统。 图2在某种程度上示意性地示出用虚拟骨架来对人类目标建模。 图3A-3F在某种程度上示意性示出了从虚拟骨架转换的姿势转向角(steeringanglecontrol)控制。 图4示出根据本发明的实施例的虚拟车辆驾驶。 图5-9在某种程度上示意性示出了从虚拟骨架转换的姿势驾驶控制。 图10示意性地示出被配置成将虚拟骨架转换成姿势驾驶控制的计算系统。具体实施方式 诸如3D视觉游戏系统等深度图像分析系统可包括能够观察一个或多个玩家的深度相机。在深度相机捕捉所观察的场景内的玩家的图像时,那些图像可被解释并用一个或多个虚拟骨架来建模。如以下更详细描述的,虚拟骨架可被用作控制驾驶模拟器的输入。换言之,深度相机可观察正在执行被设计成控制驾驶模拟器的人类并对其建模,且可用驾驶模拟器可将其解释为不同控制的虚拟骨架来对人类目标建模。由此,人类可单单用姿势来控制驾驶模拟器,从而避免常规方向盘、踏板、操纵杆和/或其他控制器。 图1示出了深度图像分析系统10的非限制性示例。具体而言,图1示出了游戏系统12,该游戏系统12可以用于玩各种不同的游戏、播放一个或多个不同的媒体类型、和/或控制或操纵非游戏应用。图1还示出了诸如电视机或计算机监视器之类的可用于向游戏玩家呈现游戏画面的显示设备16。作为一个示例,显示设备16可用于在视觉上呈现人类目标32用其移动来控制的虚拟化身50。深度图像分析系统10可包括捕捉设备,诸如在视觉上监视或跟踪所观察的场景14内的人类目标32的深度相机22。参考图2和10更详细地讨论深度相机22。 人类目标32这里被示为所观察的场景14内的游戏玩家。人类目标32由深度相机22来跟踪,使得人类目标32的移动可由游戏系统12解释成可被用于影响游戏系统12正在执行的游戏的控制。换言之,人类目标32可使用他或她的移动来控制游戏。人类目标32的移动可以被解释成几乎任何类型的游戏控制。人类目标32的某些移动可被解释成服务于除控制虚拟化身50以外的目的的控制。作为非限制性示例,人类目标32的移动可被解释为操纵虚拟赛车、开火虚拟武器、以第一人视角导航虚拟世界、或者操纵模拟世界的各个方面的控制。移动还可被解释为辅助游戏管理控制。例如,人类目标32可以使用移动来结束、暂停、保存、选择级别、查看高分、与其他玩家交流等。 深度相机22还可以用于将目标移动解释成游戏领域之外的操作系统和/或应用控制。事实上,操作系统和/或应用的任何可控方面都可以由人类目标32的移动来控制。图1中所示出的场景是作为示例来提供的,但并不意味着以任何方式进行限制。相反,所示出的场景旨在展示可以在不背离本公开的范围的情况下应用于各种各样不同的应用的一般概念。 在此所述的方法和过程可以绑定到各种不同类型的计算系统。图1示出了游戏系统12、显示设备16和深度相机22的形式的非限制性示例。一般而言,深度图像分析系统可包括图10中以简化形式示出的计算系统60,计算系统60将在下文更详细地讨论。 图2示出了简化的处理流水线,其中所观察的场景14中的人类目标32被建模为虚拟骨架46,该虚拟骨架46可被用于牵引显示设备16上的虚拟化身50和/或用作控制游戏、应用、和/或操作系统的其他方面的控制输入。可以理解,处理流水线可包括比图2中所描述的更多的步骤和/或图2中所描述的替换步骤,而不背离本发明的范围。 如图2所示,人类目标32和所观察的场景14中的其余部分可由诸如深度相机22之类的捕捉设备来成像。深度相机可为每一像素确定在所观察的场景中的表面相对于深度相机的深度。在不偏离本公开的范围的情况下,可以使用实际上任何深度寻找技术。示例深度寻找技术参考图10的捕捉设备68来更详细地讨论。 为每一像素所确定的深度信息可用于生成深度图42。这样的深度图可采用实际上任何合适的数据结构的形式,包括但不限于包括所观察的场景的每个像素的深度值的矩阵。在图2中,深度图42被示意性地示为人类目标32的轮廓的像素化网格。这一例示是出于理解简明的目的,而不是技术准确性。可以理解,深度图一般包括所有像素(不仅是对人类目标32进行成像的像素)的深度信息,并且深度相机22的透视不会得到图2中所描绘的轮廓。 虚拟骨架46可从深度图42导出,以提供对人类目标32的机器可读表示。换言之,从深度图42导出虚拟骨架46以便对人类目标32建模。虚拟骨架46可以按任何合适的方式从深度图中导出。在某些实施例中,可将一个或多个骨架拟合算法应用于深度图。本发明与实际上任何骨架建模技术兼容。 虚拟骨架46可包括多个关节,每一关节对应于人类目标的一部分。在图2中,虚拟骨架46被示为十五个关节的线条画。这一例示是出于理解简明的目的,而不是技术准确性。根据本发明的虚拟骨架可包括实际上任何数量的关节,每一关节都可与实际上任何数量的参数(例如,三维关节位置、关节旋转、对应身体部位的身体姿势(例如,手打开、手合上等)等)相关联。可以理解,虚拟骨节可采用数据结构的形式,该数据结构包括多个骨架关节中的每一个的一个或多个参数(例如,包括每一关节的χ位置、y位置、ζ位置和旋转的骨架矩阵)。在某些实施例中,可使用其他类型的虚拟骨架(例如,线框、一组形状图元寸Jο 如图2所示,可将虚拟化身50呈现在显示设备16上作为虚拟骨架46的视觉表示。由于虚拟骨架46对人类目标32进行建模,并且对虚拟化身50的呈现基于虚拟骨架46,因此虚拟化身50用作人类目标32的可视的数字表示。由此,虚拟化身50在显示设备16上的移动反映人类目标32的移动。 在某些实施例中,只有虚拟化身的部分将呈现在显示设备16上。作为一个非限制性示例,显示设备16可呈现人类目标32的第一人视角,并因此可呈现可通过虚拟化身的虚拟眼睛来查看的虚拟化身的各部分(例如,握有方向盘的伸出的手、握有步枪的伸出的手、抓住三维虚拟世界中的物体的伸出的手等)。 尽管将虚拟化身50用作可经由深度图的骨架建模由人类目标的移动来控制的游戏的一示例方面,但这并不旨在限制。人类目标可以用虚拟骨架来建模,而虚拟骨架可用于控制除虚拟化身以外的游戏或其他应用的各方面。例如,即使虚拟化身没有被呈现到显示设备,人类目标的移动也可控制游戏或其他应用。 如上介绍的,驾驶模拟或游戏可经由深度图的骨架建模由人类目标的移动来控制。例如,图3-9示意性地示出在不同时刻(例如,时间、、时间、和时间t2)对人类目标的不同姿势建模的虚拟骨架46。如上讨论的,虚拟骨架46可从深度信息中导出,深度信息从观察人类目标的深度相机获取。虽然虚拟骨架46被示为具有关节的线条画,但应该理解,虚拟骨架可由任何何时的机器可读数据结构来表示。例如,图3A中示为点的关节可由位置坐标和/或其他机器可读信息来表示。由此,计算系统的逻辑子系统可接收虚拟骨架(即,以机器可读形式表示虚拟骨架的数据结构)并处理一个或多个关节的位置和/或其他属性。以此方式,骨架位置/移动并因此被建模的人类目标的姿势可被解释为用于控制计算系统的不同姿势控制。 作为第一示例,图3A示出了在时间t0处于就座位置且放下手臂的虚拟骨架46。在所示实施例中,虚拟骨架尤其包括左手关节82、右手关节84、第一躯干关节88、左脚关节92、以及右脚关节94。在时间、,虚拟骨架的手臂被抬高,就像要持握方向盘。在时间t2,转动手臂,就像转动方向盘。图3B示意性示出了时间、的左手关节82和右手关节84的正面图。图3C示意性示出了时间t2的左手关节82和右手关节84的正面图。 计算系统可被配置成将参考线(例如,水平线)与连接左手关节和右手关节的线之间的角度转换成姿势转向角控制。在一些实施例中,此类转换可仅在右手关节和左手关节在一个或多个躯干关节的前面伸出(即,双手处于要持握方向盘的位置)时执行。 例如,如图;3B中最佳地示出的,在时间t1;参考线302与连接左手关节82与右手关节84的线304之间的角度300是大致-2.0°。由此,所观测和建模的-2.0°相对关节位置可被建模为-2.0°转向角控制(例如,方向盘转到-2.0°)。 作为另一示例,且如图3C中最佳地例示地,在时间t2,参考线302与连接左手关节82和右手关节84的线304之间的角度300为大致观.0°。由此,所观测和建模的观.0°相对关节位置可被建模为观.0°转向角控制(例如,方向盘转到观.0°)。 转换不必是1:1。在一些实施例中,所观测的关节角度可使用线性或非线性转换函数来解释成转向角控制。 在一些实施例中,如图3D中所例示的,可从手臂相对于躯干位置的位置解释姿势转向角控制。例如,在时间、,虚拟骨架46处于驾驶位置。在时间t1;在左手臂越来越靠近躯干90地移动时,右手臂76远离躯干90地移动。计算机系统可被配置成将右手臂和/左手臂相对于至少一个躯干关节的位置转换成姿势转向角控制。在此情形中,姿势可被转换成向右转。类似地,在左手臂78远离躯干90地移动时右手臂76越来越靠近躯干90地移动可对用于向左转的姿势转向角控制作出贡献。 图3E提供了从躯干和/或肩膀的位置解释姿势转向角控制的示例。例如,在时间tQ,虚拟骨架46处于驾驶位置。在时间^,躯干90旋转到右边。计算系统可被配置成将至少一个躯干关节或躯干旋转的另一指示转换成姿势转向角控制。在图3E所示的姿势可被转换成向右转。类似地,躯干旋转到左侧可被解释为向左转。在一些实施例中,手相对于躯干的定位可被解释为姿势转向角控制。例如,当在操纵姿态中手在躯干的前面伸出并在随后移至右边时,这可被解释为向右转,即使躯干随着手移动而扭转。类似地手移至左边可被解释为向左转。 图3F提供了从躯干的侧向倾斜解释姿势转向角控制的示例。例如,在时间、,虚拟骨架46处于驾驶位置。在时间^,躯干90倾向右边。计算系统可被配置成将躯干的倾斜位置转换成姿势转向角控制。在图3F中所示的姿势可被转换成向右转。类似地,躯干倾向左边可被解释为向左转。 在一些情形中,驾驶游戏和/或其他驾驶模拟可被配置成将以上所描述的姿势的两个或多个转换成转向角控制。由此,游戏玩家可使用不同类型的姿势来使虚拟车辆转向。 姿势转向角控制可被用于操纵驾驶游戏或其他驾驶模拟的虚拟车辆。此类操纵可与姿势转向角控制的量值成比例——即,更大角度的操纵姿势会导致虚拟车辆的更急剧的转向。 在一些实施例中,姿势转向角控制不是用来操纵虚拟车辆的唯一操纵控制。计算系统可被编程为具有可确定虚拟车辆的操纵控制、加速度控制和其他控制的人工智能。例如,此类人工智能可被用来在虚拟赛车游戏中自动驾驶对方赛车。人工智能可被调成遵从特定驾驶简档(即,谨慎、鲁莽、熟练等)。此类人工智能还可被用于帮助游戏玩家在驾驶模8拟或游戏中驾驶虚拟车辆。 换言之,还可与人工智能推荐的控制成比例地操纵虚拟车辆。当以此方式控制时,虚拟车辆与姿势转向角控制和人工智能推荐的控制两者的混合成比例地转向。由此,游戏玩家可控制车辆,但是人工智能可辅助游戏玩家,以使得游戏玩家具有更愉快的体验。 图4示出了可在显示设备上显示的驾驶游戏,该显示设备示出了虚拟道路402上的示例虚拟车辆400A。虚拟车辆400A可由所建模的人类目标的姿势来控制,如以上所描述的。此外,可与人工智能推荐的控制和姿势转向角控制成比例地操纵虚拟车辆400A。 姿势转向角控制和人工智能推荐的控制的相对百分比可根据一个或多个可改变游戏参数来动态地设置。换言之,驾驶模拟器可实时地修改多少百分比的操纵控制来自游戏玩家以及多少百分比来自人工智能。 在一些实施例中,驾驶员级别(例如,初学者、中级、高级、专业等)可用作可改变游戏参数,该参数可被用来动态地设置玩家控制与人工智能控制之间的平衡。在此类实施例中,姿势转向角控制的相对百分比可被减小以向初学者驾驶员提供更大的辅助。 在一些实施例中,虚拟车辆的速度可用作可改变游戏参数,该参数可被用来动态地设置玩家控制与人工智能控制之间的平衡。在此类实施例中,姿势转向角控制的相对百分比可随着虚拟车辆的速度的增加而减小。 在一些实施例中,虚拟车道的转弯半径可用作可改变游戏参数,该参数可被用来动态地设置玩家控制与人工智能控制之间的平衡。在此类实施例中,姿势转向角控制的相对百分比可随着虚拟车道的转弯半径的增加而减小。换言之,像车道。 在一些实施例中,与推荐的路径的偏差可用作可改变游戏参数,该参数可被用来动态地设置玩家控制与人工智能控制之间的平衡。在此类实施例中,姿势转向角控制的相对百分比可随着与推荐的路径的偏差的增大而减小。换言之,随着虚拟车辆更远离推荐的驾驶路径(例如,赛车道上的最优线路)地移动,人工智能可施加更多控制以将虚拟车辆推回到车道上。通过使用图4的示例,由于虚拟车辆400A处于推荐的路径410上,,可主要依照玩家控制的结果来操纵虚拟车辆400A。另一方面,由于虚拟车辆400B严重偏离推荐的路径410,可针对虚拟车辆400B增大人工智能控制的百分比。 虽然操纵是作为可以是从虚拟骨架解释的姿势控制和人工智能控制的混合的示例控制形式来提供的,但是这并不进行任何限制。驾驶模拟器或游戏的其他方面可经由混合控制来实现。例如,油门控制和/或刹车控制可经由混合控制来实现。一般而言,虚拟骨架的一个或多个关节的位置可被转换成姿势游戏控制,并且作为姿势游戏控制和人工智能推荐的控制的组合的混合游戏控制可被执行。 作为下一示例,图5、5A和6B示出了可如何实现油门和刹车控制。具体地,图5示意性地示出在不同时刻(例如,时间、、时间、和时间t2)对人类目标的不同加速姿势建模的虚拟骨架46。计算系统可被配置成将虚拟骨架的左脚关节相对于虚拟骨架的右脚关节位置的位置转换成姿势加速度控制。此外,可与姿势加速度控制成比例地加速虚拟车辆。 在时间、,虚拟骨架46被示为具有处于空档位置的左脚和右脚关节。例如,这可对应于空档加速度控制——即,滑行,而没有任何油门或任何刹车。 在时间^,右脚关节94在左脚关节92的前面。右脚关节在左脚关节的前面可被解释为正加速度一即,踩油门。右脚在左脚前面移开的距离可对应于油门控制的量值。 在时间t2,右脚关节94在左脚关节92后面。右脚关节在左脚关节的后面可被解释为负加速度——即,踩刹车。右脚在左脚后面移开的距离可对应于刹车控制的量值。 可以理解,对“左”、“右”、“前”、“后”等的引用可可基于虚拟骨架的解剖。此外,虽然在此示例中使用活动的右脚,但是应当理解,加速度控制可另外或替换地通过左脚来实现。此外,虽然讨论了绝对控制(即,油门开/关、刹车开/关),应当理解,姿势加速度控制可以是相对于默认速度,诸如由人工智能选择的默认速度。 图6A示意性地示出在不同时刻(例如,时间tQ、时间、和时间t2)对人类目标的不同加速度姿势建模的虚拟骨架46。计算系统可被配置成将左脚关节和右手关节远离一个或多个躯干关节的距离转换成姿势加速度控制。此外,可与姿势加速度控制成比例地加速虚拟车辆。 在时间、,虚拟骨架46被示为具有处于空档位置的左脚和右脚关节。例如,这可对应于空档加速度控制——即,滑行,而没有任何油门或任何刹车。在时间、,手(S卩,左手关节82和右手关节84)移动成更靠近躯干。在时间t2,手远离躯干90移动。 可与左手关节和右手关节远离一个或多个躯干关节的距离成比例地增大正加速度。例如,正加速度可以在时间t2处比在时间、和、处更高。类似地,正加速度可以是在时间、处比在时间、和t2处更低。在一些实施例中,手从躯干伸出越过阈值距离可被解释为正加速度,且手相对于阈值距离朝躯干收回可被解释为负加速度(例如,刹车)。 图6B提供了从躯干的位置解释姿势加速度控制的示例。例如,在时间、,虚拟骨架46处于驾驶位置。在时间^,躯干90向前倾斜。换言之,躯干90超捕捉设备倾斜,如箭头72所标示的,由此定位躯干90更靠近捕捉设备(例如,图1的深度相机2¾。计算系统可被配置成将躯干距捕捉设备的距离转换成姿势加速度控制。如图6B所示的姿势可被转换为正加速度。类似地,躯干向后倾斜可被解释为负加速度。 在一些情形中,驾驶游戏和/或其他驾驶模拟可被配置成将以上所描述的姿势的两个或多个转换成加速度控制。由此,游戏玩家可导致虚拟车辆使用不同类型的姿势来加速或减速。 如之前一样,应当理解,姿势加速度控制可相对于默认速度,诸如由人工智能选择的默认速度。此外,虽然手位置在以上是参照一个或多个躯干关节来描述的,但是应当理解,可使用任何其他相当和/或相似的参考,包括手关节的绝对位置。 虽然姿势操纵和加速度控制是可从虚拟骨架转换的控制的两个示例类型,但是其他姿势控制也落在本公开的范围内。以下非线性示例被提供来建议可用的姿势控制的宽度,但是这决不意味着进行限制。 图7示意性地示出在不同时刻(例如,时间、、时间、和时间t2)对人类目标的示例涡轮增压(turboboost)姿势建模的虚拟骨架46。计算系统可被配置成将手关节(例如,右手关节84)从一个或多个躯干关节附近(即,在时间、)突然移至远离一个或多个躯干关节的位置(即,在时间t2)转换成姿势涡轮增压控制。此外,可响应于姿势涡轮增压控制来迅速地加速虚拟车辆。 图8示意性地示出在不同时刻(例如,时间、、时间、和时间t2)对人类目标的示例换档姿势建模的虚拟骨架46。计算系统可被配置成将手关节(例如,右手关节84)靠近髋关节(例如,髋关节98)的移动转换成姿势换档控制。由此,可响应于姿势换档控制来改变虚拟车辆的排档。 在时间、,虚拟骨架46被示为具有处于空档换档位置的右手关节84。在时间t1;右手关节84可相对于髋关节98向前移动,其可转换为排档增加。在时间t2,右手关节84可相对于髋关节98向后移动,其可转换为排档减小。图9示意性地示出在不同时刻(例如,时间、、时间、和时间t2)对人类目标的其他示例换档姿态建模的虚拟骨架46。在时间、,虚拟骨架46被示为具有处于空档换档位置的手。计算系统可被配置成将由相对应的手关节(例如,左手关节8¾建模的一只或多只手的姿态转换成姿势换档控制。由此,可响应于姿势换档控制来改变虚拟车辆的排档。例如,可响应于打开和合拢左手902来减小排档。作为另一示例,可响应于打开和合拢右手来增大排档。 手的姿态可用任何合适的方式来确定。在某些实施例中,可用足够的骨架关节来建模手以仅从骨架数据中识别出手的姿态。在某些实施例中,手关节的位置可被用来在对应深度图和/或对应色彩图像中定位手的位置。在这样的情况下,随后可评估深度图和/或色彩图像中包括手的部分以确定手是张开的姿态还是合拢的姿态。例如,可参照已知手姿态的在先训练的集合来分析深度图和/或色彩图像中包括手的部分以寻找最佳匹配的手姿态。 上述姿势/控制是非限制性示例。其他姿势和控制也在本发明的范围之内。此外,可同时执行和转换上述姿势中的两个或更多个。例如,游戏玩家可导致虚拟车辆通过在打开和合拢伸出的右手时,同时向前移动右脚、相对于伸出的右手抬高伸出的左手,来绕着角落加速。 虽然参考了驾驶游戏进行了描述,但上述姿势还可应用于其他游戏或应用。此外,上述姿势可用于控制物理对象,诸如远程操作的车辆或无人驾驶飞机。 虽然参考虚拟骨架的虚拟表示来描述了上述姿势,应该理解,可参考构成虚拟骨架的骨架数据来分析姿势。可使用一个或多个测试来分析每一姿势。每一个这样的测试可考虑一个或多个关节的位置、速度、加速度、方向或其他属性。可在绝对意义上考虑这样的属性,或者参考一个或多个其他关节。作为非限制性示例,姿势可由关节的绝对位置来标识、由两个或更多个关节相对于彼此的相对位置来标识、由连接两个关节的骨骼段相对于连接两个关节的另一骨骼段的角度的角度来标识、和/或由以上或其他属性的组合来标识。 在某些实施例中,以上所描述的方法和过程可捆绑到包括一个或多个计算机的计算系统。具体而言,此处所述的方法和过程可被实现为计算机应用、计算机服务、计算机API、计算机库、和/或其他计算机程序产品。 图10示意性示出了可以执行上述方法和过程之中的一个或多个的非限制性计算系统60。以简化形式示出了计算系统60。应当理解,可使用基本上任何计算机架构而不背离本公开的范围。在不同的实施例中,计算系统60可以采取大型计算机、服务器计算机、台式计算机、膝上型计算机、平板计算机、家庭娱乐计算机、网络计算设备、移动计算设备、移动通信设备、游戏设备等等的形式。 计算系统60包括逻辑子系统62和数据保持子系统64。计算系统60可以任选地包括显示子系统66、捕捉子系统68和/或在图10中未示出的其他组件。计算系统60还可以任选地包括诸如下列用户输入设备:例如键盘、鼠标、游戏控制器、相机、话筒和/或触摸屏等等。 逻辑子系统62可包括被配置为执行一个或多个指令的一个或多个物理设备。例如,逻辑子系统可被配置为执行一个或多个指令,该一个或多个指令是一个或多个应用、服务、程序、例程、库、对象、组件、数据结构、或其它逻辑构造的部分。可实现此类指令以执行任务、实现数据类型、变换一个或多个设备的状态、或以其他方式得到所需结果。 逻辑子系统可包括被配置成执行软件指令的一个或多个处理器。另外地或替换地,逻辑子系统可包括被配置成执行硬件或固件指令的一个或多个硬件或固件逻辑机器。逻辑子系统的处理器可以是单核或多核,且在其上执行的程序可被配置为并行或分布式处理。逻辑子系统可以任选地包括遍布两个或多个设备的独立组件,所述设备可远程放置和/或被配置为进行协同处理。该逻辑子系统的一个或多个方面可被虚拟化并由以云计算配置进行配置的可远程访问的联网计算设备执行。 数据保持子系统64可包括一个或更多个物理、非瞬时设备,这些设备被配置成保持数据和/或可由该逻辑子系统执行的指令,以实现此处描述的方法和过程。当实现了此类方法和过程时,可变换数据保存子系统64的状态(例如,以保存不同数据)。 数据保持子系统64可包括可移动介质和/或内置设备。数据保持子系统64尤其是可以包括光学存储器设备(例如,⑶、DVD,HD-DVD、蓝光盘等)、半导体存储器设备(例如,RAM、EPROM、EEPROM等)和/或磁存储器设备(例如,硬盘驱动器、软盘驱动器、磁带驱动器、MRAM等)。数据保持子系统64可包括具有以下特性中的一个或多个特性的设备:易失性、非易失性、动态、静态、读/写、只读、随机存取、顺序存取、位置可寻址、文件可寻址、以及内容可寻址。在某些实施例中,可以将逻辑子系统62和数据保持子系统64集成到一个或更多个常见设备中,如专用集成电路或片上系统。 图10还示出以可移动计算机可读存储介质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可以向目标发射红外光,然后使用传感器来检测从目标的表面反向散射的光。在一些情况下,可以使用脉冲式红外光,其中可以测量出射光脉冲和相应的入射光脉冲之间的时间并将该时间用于确定从该捕捉设备到目标上的特定位置的物理距离。在一些情况下,出射光波的相位可以与入射光波的相位相比较以确定相移,并且该相移可以用于确定从该捕捉设备到目标上的特定位置的物理距离。 在另一示例中,飞行时间分析可用于通过经由诸如快门式光脉冲成像之类的技术分析反射光束随时间的强度,来间接地确定从该捕捉设备到目标上的特定位置的物理距1¾O 在另一示例中,结构化光分析可以被捕捉设备68利用来捕捉深度信息。在这样的分析中,图案化光(即被显示为诸如网格图案、条纹图案或星座点之类的已知图案的光)可以被投影到目标上。在落到目标的表面上以后,该图案可能变为变形的,并且可以研究该图案的这种变形以确定从该捕捉设备到目标上的某一位置的物理距离。 在另一示例中,捕捉设备可以包括两个或更多个物理上分开的相机,这些相机从不同角度查看目标以获得视觉立体数据。在这种情况下,该视觉立体数据可以被解析以生成深度图像。 在其他实施例中,捕捉设备68可以使用其他技术来测量和/或计算深度值。此外,捕捉设备68可以将所计算的深度信息组织为“Z层”,即与从深度相机沿其视线延伸到目标的Z轴垂直的层。 在一些实施例中,两个或更多个不同的相机可以被合并到一集成的捕捉设备中。例如,深度相机和视频相机(例如RGB视频相机)可以被合并到共同的捕捉设备中。在一些实施例中,可以协作式地使用两个或更多个分开的捕捉设备。例如,可以使用深度相机和分开的视频相机。当使用视频相机时,该视频相机可用于提供:目标跟踪数据、对目标跟踪进行纠错的确认数据、图像捕捉、面部识别、对手指(或其他小特征)的高精度跟踪、光感测和/或其他功能。 要理解,至少一些目标分析和跟踪操作可以由一个或多个捕捉设备的逻辑机来执行。捕捉设备可以包括被配置成执行一个或多个目标分析和/或跟踪功能的一个或多个板载处理单元。捕捉设备可以包括便于更新这样的板载处理逻辑的固件。计算系统60可任选地包括诸如控制器52和控制器M之类的一个或多个输入设备。输入设备可被用于控制计算系统的操作。在游戏的上下文中,诸如控制器52和/或控制器M之类的输入设备可被用于控制游戏的那些不是通过这里所述的目标识别、跟踪和分析方法和过程来控制的方面。在某些实施例中,诸如控制器52和/或控制器M之类的输入设备可包括可用于测量控制器在物理空间中的移动的加速计、陀螺仪、红外目标/传感器系统等中的一个或多个。在某些实施例中,计算系统可任选地包括和/或利用输入手套、键盘、鼠标、跟踪垫、轨迹球、触屏、按钮、开关、拨盘、和/或其他输入设备。如将理解的,目标识别、跟踪和分析可被用于控制或扩充游戏或其他应用的常规上由诸如游戏控制器之类的输入设备控制的方面。在某些实施例中,这里所述的目标跟踪可被用作对其他形式的用户输入的完全替代,而在其他实施例中,这种目标跟踪可被用于补充一个或多个其他形式的用户输入。 应该理解,此处所述的配置和/或方法在本质上是示例性的,并且这些特定实施例或示例不是限制意义,因为多个变体是可能的。此处所述的特定例程或方法可表示任意数量的处理策略中的一个或多个。由此,所示出的各个动作可按所示顺序执行、按其他顺序执行、并行地执行、或者在一些情况下省略。同样,可改变上述过程的次序。 本公开的主题包括各种过程、系统和配置的所有新颖和非显而易见的组合和子组合,和此处所公开的其他特征、功能、动作、和/或特性、以及其任何和全部等效物。

通过虚拟骨架的驾驶模拟器控制技术领域本发明涉及通过虚拟骨架的驾驶模拟器控制。背景技术 虽然相机技术允许记录人类的图像,但计算机传统上可能无法使用这样的图像来准确地评估人类在图像中如何移动。最近,技术已经进展成使得可在特殊相机以及一个或多个跟踪标签的帮助下解释人类移动的某些方面。例如,可用若干跟踪标签(例如,向后反射器)来仔细地装饰演员,这些跟踪标签可由若干相机从若干不同位置来跟踪。随后可使用三角测量来计算每一反射器的三维位置。因为标签被仔细地放置于演员上,且每一标签与演员身体的对应部位的相对位置是已知的,所以可使用对标签位置的三角测量来推断演员身体的位置。然而,这一技术需要使用特殊反射的标签或其他标记物。 在科幻电影方面,计算机已经被描绘成足够的智能以在没有反射性标签或其他标记物的帮助下实际查看人类并解释人类的运动和姿势。然而,使用特殊效果创建这样的场景:其中演员遵循使得看起来就像该演员正在控制计算机的脚本动作一样的预定移动脚本仔细地表演。演员实际上并未控制计算机,而是试图创建控制的幻象。发明内容 提供本发明内容以便以简化形式介绍在以下具体实施方式中进一步描述的一些概念。本发明内容并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。此外,所要求保护的主题不限于解决在本发明的任一部分中提及的任何或所有缺点的实现。 用通过从所观察的场景中捕捉包括深度信息的深度图像来分析所观察的场景内的人类目标的设备来执行深度图像分析。用包括多个关节的虚拟骨架来对人类目标建模。虚拟骨架被用作用于控制驾驶模拟的输入。附图说明 图1根据本发明的一实施例示出查看所观察的场景的深度图像分析系统。 图2在某种程度上示意性地示出用虚拟骨架来对人类目标建模。 图3A-3F在某种程度上示意性示出了从虚拟骨架转换的姿势转向角(steeringanglecontrol)控制。 图4示出根据本发明的实施例的虚拟车辆驾驶。 图5-9在某种程度上示意性示出了从虚拟骨架转换的姿势驾驶控制。 图10示意性地示出被配置成将虚拟骨架转换成姿势驾驶控制的计算系统。具体实施方式 诸如3D视觉游戏系统等深度图像分析系统可包括能够观察一个或多个玩家的深度相机。在深度相机捕捉所观察的场景内的玩家的图像时,那些图像可被解释并用一个或多个虚拟骨架来建模。如以下更详细描述的,虚拟骨架可被用作控制驾驶模拟器的输入。换言之,深度相机可观察正在执行被设计成控制驾驶模拟器的人类并对其建模,且可用驾驶模拟器可将其解释为不同控制的虚拟骨架来对人类目标建模。由此,人类可单单用姿势来控制驾驶模拟器,从而避免常规方向盘、踏板、操纵杆和/或其他控制器。 图1示出了深度图像分析系统10的非限制性示例。具体而言,图1示出了游戏系统12,该游戏系统12可以用于玩各种不同的游戏、播放一个或多个不同的媒体类型、和/或控制或操纵非游戏应用。图1还示出了诸如电视机或计算机监视器之类的可用于向游戏玩家呈现游戏画面的显示设备16。作为一个示例,显示设备16可用于在视觉上呈现人类目标32用其移动来控制的虚拟化身50。深度图像分析系统10可包括捕捉设备,诸如在视觉上监视或跟踪所观察的场景14内的人类目标32的深度相机22。参考图2和10更详细地讨论深度相机22。 人类目标32这里被示为所观察的场景14内的游戏玩家。人类目标32由深度相机22来跟踪,使得人类目标32的移动可由游戏系统12解释成可被用于影响游戏系统12正在执行的游戏的控制。换言之,人类目标32可使用他或她的移动来控制游戏。人类目标32的移动可以被解释成几乎任何类型的游戏控制。人类目标32的某些移动可被解释成服务于除控制虚拟化身50以外的目的的控制。作为非限制性示例,人类目标32的移动可被解释为操纵虚拟赛车、开火虚拟武器、以第一人视角导航虚拟世界、或者操纵模拟世界的各个方面的控制。移动还可被解释为辅助游戏管理控制。例如,人类目标32可以使用移动来结束、暂停、保存、选择级别、查看高分、与其他玩家交流等。 深度相机22还可以用于将目标移动解释成游戏领域之外的操作系统和/或应用控制。事实上,操作系统和/或应用的任何可控方面都可以由人类目标32的移动来控制。图1中所示出的场景是作为示例来提供的,但并不意味着以任何方式进行限制。相反,所示出的场景旨在展示可以在不背离本公开的范围的情况下应用于各种各样不同的应用的一般概念。 在此所述的方法和过程可以绑定到各种不同类型的计算系统。图1示出了游戏系统12、显示设备16和深度相机22的形式的非限制性示例。一般而言,深度图像分析系统可包括图10中以简化形式示出的计算系统60,计算系统60将在下文更详细地讨论。 图2示出了简化的处理流水线,其中所观察的场景14中的人类目标32被建模为虚拟骨架46,该虚拟骨架46可被用于牵引显示设备16上的虚拟化身50和/或用作控制游戏、应用、和/或操作系统的其他方面的控制输入。可以理解,处理流水线可包括比图2中所描述的更多的步骤和/或图2中所描述的替换步骤,而不背离本发明的范围。 如图2所示,人类目标32和所观察的场景14中的其余部分可由诸如深度相机22之类的捕捉设备来成像。深度相机可为每一像素确定在所观察的场景中的表面相对于深度相机的深度。在不偏离本公开的范围的情况下,可以使用实际上任何深度寻找技术。示例深度寻找技术参考图10的捕捉设备68来更详细地讨论。 为每一像素所确定的深度信息可用于生成深度图42。这样的深度图可采用实际上任何合适的数据结构的形式,包括但不限于包括所观察的场景的每个像素的深度值的矩阵。在图2中,深度图42被示意性地示为人类目标32的轮廓的像素化网格。这一例示是出于理解简明的目的,而不是技术准确性。可以理解,深度图一般包括所有像素(不仅是对人类目标32进行成像的像素)的深度信息,并且深度相机22的透视不会得到图2中所描绘的轮廓。 虚拟骨架46可从深度图42导出,以提供对人类目标32的机器可读表示。换言之,从深度图42导出虚拟骨架46以便对人类目标32建模。虚拟骨架46可以按任何合适的方式从深度图中导出。在某些实施例中,可将一个或多个骨架拟合算法应用于深度图。本发明与实际上任何骨架建模技术兼容。 虚拟骨架46可包括多个关节,每一关节对应于人类目标的一部分。在图2中,虚拟骨架46被示为十五个关节的线条画。这一例示是出于理解简明的目的,而不是技术准确性。根据本发明的虚拟骨架可包括实际上任何数量的关节,每一关节都可与实际上任何数量的参数(例如,三维关节位置、关节旋转、对应身体部位的身体姿势(例如,手打开、手合上等)等)相关联。可以理解,虚拟骨节可采用数据结构的形式,该数据结构包括多个骨架关节中的每一个的一个或多个参数(例如,包括每一关节的χ位置、y位置、ζ位置和旋转的骨架矩阵)。在某些实施例中,可使用其他类型的虚拟骨架(例如,线框、一组形状图元寸Jο 如图2所示,可将虚拟化身50呈现在显示设备16上作为虚拟骨架46的视觉表示。由于虚拟骨架46对人类目标32进行建模,并且对虚拟化身50的呈现基于虚拟骨架46,因此虚拟化身50用作人类目标32的可视的数字表示。由此,虚拟化身50在显示设备16上的移动反映人类目标32的移动。 在某些实施例中,只有虚拟化身的部分将呈现在显示设备16上。作为一个非限制性示例,显示设备16可呈现人类目标32的第一人视角,并因此可呈现可通过虚拟化身的虚拟眼睛来查看的虚拟化身的各部分(例如,握有方向盘的伸出的手、握有步枪的伸出的手、抓住三维虚拟世界中的物体的伸出的手等)。 尽管将虚拟化身50用作可经由深度图的骨架建模由人类目标的移动来控制的游戏的一示例方面,但这并不旨在限制。人类目标可以用虚拟骨架来建模,而虚拟骨架可用于控制除虚拟化身以外的游戏或其他应用的各方面。例如,即使虚拟化身没有被呈现到显示设备,人类目标的移动也可控制游戏或其他应用。 如上介绍的,驾驶模拟或游戏可经由深度图的骨架建模由人类目标的移动来控制。例如,图3-9示意性地示出在不同时刻(例如,时间、、时间、和时间t2)对人类目标的不同姿势建模的虚拟骨架46。如上讨论的,虚拟骨架46可从深度信息中导出,深度信息从观察人类目标的深度相机获取。虽然虚拟骨架46被示为具有关节的线条画,但应该理解,虚拟骨架可由任何何时的机器可读数据结构来表示。例如,图3A中示为点的关节可由位置坐标和/或其他机器可读信息来表示。由此,计算系统的逻辑子系统可接收虚拟骨架(即,以机器可读形式表示虚拟骨架的数据结构)并处理一个或多个关节的位置和/或其他属性。以此方式,骨架位置/移动并因此被建模的人类目标的姿势可被解释为用于控制计算系统的不同姿势控制。 作为第一示例,图3A示出了在时间t0处于就座位置且放下手臂的虚拟骨架46。在所示实施例中,虚拟骨架尤其包括左手关节82、右手关节84、第一躯干关节88、左脚关节92、以及右脚关节94。在时间、,虚拟骨架的手臂被抬高,就像要持握方向盘。在时间t2,转动手臂,就像转动方向盘。图3B示意性示出了时间、的左手关节82和右手关节84的正面图。图3C示意性示出了时间t2的左手关节82和右手关节84的正面图。 计算系统可被配置成将参考线(例如,水平线)与连接左手关节和右手关节的线之间的角度转换成姿势转向角控制。在一些实施例中,此类转换可仅在右手关节和左手关节在一个或多个躯干关节的前面伸出(即,双手处于要持握方向盘的位置)时执行。 例如,如图;3B中最佳地示出的,在时间t1;参考线302与连接左手关节82与右手关节84的线304之间的角度300是大致-2.0°。由此,所观测和建模的-2.0°相对关节位置可被建模为-2.0°转向角控制(例如,方向盘转到-2.0°)。 作为另一示例,且如图3C中最佳地例示地,在时间t2,参考线302与连接左手关节82和右手关节84的线304之间的角度300为大致观.0°。由此,所观测和建模的观.0°相对关节位置可被建模为观.0°转向角控制(例如,方向盘转到观.0°)。 转换不必是1:1。在一些实施例中,所观测的关节角度可使用线性或非线性转换函数来解释成转向角控制。 在一些实施例中,如图3D中所例示的,可从手臂相对于躯干位置的位置解释姿势转向角控制。例如,在时间、,虚拟骨架46处于驾驶位置。在时间t1;在左手臂越来越靠近躯干90地移动时,右手臂76远离躯干90地移动。计算机系统可被配置成将右手臂和/左手臂相对于至少一个躯干关节的位置转换成姿势转向角控制。在此情形中,姿势可被转换成向右转。类似地,在左手臂78远离躯干90地移动时右手臂76越来越靠近躯干90地移动可对用于向左转的姿势转向角控制作出贡献。 图3E提供了从躯干和/或肩膀的位置解释姿势转向角控制的示例。例如,在时间tQ,虚拟骨架46处于驾驶位置。在时间^,躯干90旋转到右边。计算系统可被配置成将至少一个躯干关节或躯干旋转的另一指示转换成姿势转向角控制。在图3E所示的姿势可被转换成向右转。类似地,躯干旋转到左侧可被解释为向左转。在一些实施例中,手相对于躯干的定位可被解释为姿势转向角控制。例如,当在操纵姿态中手在躯干的前面伸出并在随后移至右边时,这可被解释为向右转,即使躯干随着手移动而扭转。类似地手移至左边可被解释为向左转。 图3F提供了从躯干的侧向倾斜解释姿势转向角控制的示例。例如,在时间、,虚拟骨架46处于驾驶位置。在时间^,躯干90倾向右边。计算系统可被配置成将躯干的倾斜位置转换成姿势转向角控制。在图3F中所示的姿势可被转换成向右转。类似地,躯干倾向左边可被解释为向左转。 在一些情形中,驾驶游戏和/或其他驾驶模拟可被配置成将以上所描述的姿势的两个或多个转换成转向角控制。由此,游戏玩家可使用不同类型的姿势来使虚拟车辆转向。 姿势转向角控制可被用于操纵驾驶游戏或其他驾驶模拟的虚拟车辆。此类操纵可与姿势转向角控制的量值成比例——即,更大角度的操纵姿势会导致虚拟车辆的更急剧的转向。 在一些实施例中,姿势转向角控制不是用来操纵虚拟车辆的唯一操纵控制。计算系统可被编程为具有可确定虚拟车辆的操纵控制、加速度控制和其他控制的人工智能。例如,此类人工智能可被用来在虚拟赛车游戏中自动驾驶对方赛车。人工智能可被调成遵从特定驾驶简档(即,谨慎、鲁莽、熟练等)。此类人工智能还可被用于帮助游戏玩家在驾驶模8拟或游戏中驾驶虚拟车辆。 换言之,还可与人工智能推荐的控制成比例地操纵虚拟车辆。当以此方式控制时,虚拟车辆与姿势转向角控制和人工智能推荐的控制两者的混合成比例地转向。由此,游戏玩家可控制车辆,但是人工智能可辅助游戏玩家,以使得游戏玩家具有更愉快的体验。 图4示出了可在显示设备上显示的驾驶游戏,该显示设备示出了虚拟道路402上的示例虚拟车辆400A。虚拟车辆400A可由所建模的人类目标的姿势来控制,如以上所描述的。此外,可与人工智能推荐的控制和姿势转向角控制成比例地操纵虚拟车辆400A。 姿势转向角控制和人工智能推荐的控制的相对百分比可根据一个或多个可改变游戏参数来动态地设置。换言之,驾驶模拟器可实时地修改多少百分比的操纵控制来自游戏玩家以及多少百分比来自人工智能。 在一些实施例中,驾驶员级别(例如,初学者、中级、高级、专业等)可用作可改变游戏参数,该参数可被用来动态地设置玩家控制与人工智能控制之间的平衡。在此类实施例中,姿势转向角控制的相对百分比可被减小以向初学者驾驶员提供更大的辅助。 在一些实施例中,虚拟车辆的速度可用作可改变游戏参数,该参数可被用来动态地设置玩家控制与人工智能控制之间的平衡。在此类实施例中,姿势转向角控制的相对百分比可随着虚拟车辆的速度的增加而减小。 在一些实施例中,虚拟车道的转弯半径可用作可改变游戏参数,该参数可被用来动态地设置玩家控制与人工智能控制之间的平衡。在此类实施例中,姿势转向角控制的相对百分比可随着虚拟车道的转弯半径的增加而减小。换言之,像车道。 在一些实施例中,与推荐的路径的偏差可用作可改变游戏参数,该参数可被用来动态地设置玩家控制与人工智能控制之间的平衡。在此类实施例中,姿势转向角控制的相对百分比可随着与推荐的路径的偏差的增大而减小。换言之,随着虚拟车辆更远离推荐的驾驶路径(例如,赛车道上的最优线路)地移动,人工智能可施加更多控制以将虚拟车辆推回到车道上。通过使用图4的示例,由于虚拟车辆400A处于推荐的路径410上,,可主要依照玩家控制的结果来操纵虚拟车辆400A。另一方面,由于虚拟车辆400B严重偏离推荐的路径410,可针对虚拟车辆400B增大人工智能控制的百分比。 虽然操纵是作为可以是从虚拟骨架解释的姿势控制和人工智能控制的混合的示例控制形式来提供的,但是这并不进行任何限制。驾驶模拟器或游戏的其他方面可经由混合控制来实现。例如,油门控制和/或刹车控制可经由混合控制来实现。一般而言,虚拟骨架的一个或多个关节的位置可被转换成姿势游戏控制,并且作为姿势游戏控制和人工智能推荐的控制的组合的混合游戏控制可被执行。 作为下一示例,图5、5A和6B示出了可如何实现油门和刹车控制。具体地,图5示意性地示出在不同时刻(例如,时间、、时间、和时间t2)对人类目标的不同加速姿势建模的虚拟骨架46。计算系统可被配置成将虚拟骨架的左脚关节相对于虚拟骨架的右脚关节位置的位置转换成姿势加速度控制。此外,可与姿势加速度控制成比例地加速虚拟车辆。 在时间、,虚拟骨架46被示为具有处于空档位置的左脚和右脚关节。例如,这可对应于空档加速度控制——即,滑行,而没有任何油门或任何刹车。 在时间^,右脚关节94在左脚关节92的前面。右脚关节在左脚关节的前面可被解释为正加速度一即,踩油门。右脚在左脚前面移开的距离可对应于油门控制的量值。 在时间t2,右脚关节94在左脚关节92后面。右脚关节在左脚关节的后面可被解释为负加速度——即,踩刹车。右脚在左脚后面移开的距离可对应于刹车控制的量值。 可以理解,对“左”、“右”、“前”、“后”等的引用可可基于虚拟骨架的解剖。此外,虽然在此示例中使用活动的右脚,但是应当理解,加速度控制可另外或替换地通过左脚来实现。此外,虽然讨论了绝对控制(即,油门开/关、刹车开/关),应当理解,姿势加速度控制可以是相对于默认速度,诸如由人工智能选择的默认速度。 图6A示意性地示出在不同时刻(例如,时间tQ、时间、和时间t2)对人类目标的不同加速度姿势建模的虚拟骨架46。计算系统可被配置成将左脚关节和右手关节远离一个或多个躯干关节的距离转换成姿势加速度控制。此外,可与姿势加速度控制成比例地加速虚拟车辆。 在时间、,虚拟骨架46被示为具有处于空档位置的左脚和右脚关节。例如,这可对应于空档加速度控制——即,滑行,而没有任何油门或任何刹车。在时间、,手(S卩,左手关节82和右手关节84)移动成更靠近躯干。在时间t2,手远离躯干90移动。 可与左手关节和右手关节远离一个或多个躯干关节的距离成比例地增大正加速度。例如,正加速度可以在时间t2处比在时间、和、处更高。类似地,正加速度可以是在时间、处比在时间、和t2处更低。在一些实施例中,手从躯干伸出越过阈值距离可被解释为正加速度,且手相对于阈值距离朝躯干收回可被解释为负加速度(例如,刹车)。 图6B提供了从躯干的位置解释姿势加速度控制的示例。例如,在时间、,虚拟骨架46处于驾驶位置。在时间^,躯干90向前倾斜。换言之,躯干90超捕捉设备倾斜,如箭头72所标示的,由此定位躯干90更靠近捕捉设备(例如,图1的深度相机2¾。计算系统可被配置成将躯干距捕捉设备的距离转换成姿势加速度控制。如图6B所示的姿势可被转换为正加速度。类似地,躯干向后倾斜可被解释为负加速度。 在一些情形中,驾驶游戏和/或其他驾驶模拟可被配置成将以上所描述的姿势的两个或多个转换成加速度控制。由此,游戏玩家可导致虚拟车辆使用不同类型的姿势来加速或减速。 如之前一样,应当理解,姿势加速度控制可相对于默认速度,诸如由人工智能选择的默认速度。此外,虽然手位置在以上是参照一个或多个躯干关节来描述的,但是应当理解,可使用任何其他相当和/或相似的参考,包括手关节的绝对位置。 虽然姿势操纵和加速度控制是可从虚拟骨架转换的控制的两个示例类型,但是其他姿势控制也落在本公开的范围内。以下非线性示例被提供来建议可用的姿势控制的宽度,但是这决不意味着进行限制。 图7示意性地示出在不同时刻(例如,时间、、时间、和时间t2)对人类目标的示例涡轮增压(turboboost)姿势建模的虚拟骨架46。计算系统可被配置成将手关节(例如,右手关节84)从一个或多个躯干关节附近(即,在时间、)突然移至远离一个或多个躯干关节的位置(即,在时间t2)转换成姿势涡轮增压控制。此外,可响应于姿势涡轮增压控制来迅速地加速虚拟车辆。 图8示意性地示出在不同时刻(例如,时间、、时间、和时间t2)对人类目标的示例换档姿势建模的虚拟骨架46。计算系统可被配置成将手关节(例如,右手关节84)靠近髋关节(例如,髋关节98)的移动转换成姿势换档控制。由此,可响应于姿势换档控制来改变虚拟车辆的排档。 在时间、,虚拟骨架46被示为具有处于空档换档位置的右手关节84。在时间t1;右手关节84可相对于髋关节98向前移动,其可转换为排档增加。在时间t2,右手关节84可相对于髋关节98向后移动,其可转换为排档减小。图9示意性地示出在不同时刻(例如,时间、、时间、和时间t2)对人类目标的其他示例换档姿态建模的虚拟骨架46。在时间、,虚拟骨架46被示为具有处于空档换档位置的手。计算系统可被配置成将由相对应的手关节(例如,左手关节8¾建模的一只或多只手的姿态转换成姿势换档控制。由此,可响应于姿势换档控制来改变虚拟车辆的排档。例如,可响应于打开和合拢左手902来减小排档。作为另一示例,可响应于打开和合拢右手来增大排档。 手的姿态可用任何合适的方式来确定。在某些实施例中,可用足够的骨架关节来建模手以仅从骨架数据中识别出手的姿态。在某些实施例中,手关节的位置可被用来在对应深度图和/或对应色彩图像中定位手的位置。在这样的情况下,随后可评估深度图和/或色彩图像中包括手的部分以确定手是张开的姿态还是合拢的姿态。例如,可参照已知手姿态的在先训练的集合来分析深度图和/或色彩图像中包括手的部分以寻找最佳匹配的手姿态。 上述姿势/控制是非限制性示例。其他姿势和控制也在本发明的范围之内。此外,可同时执行和转换上述姿势中的两个或更多个。例如,游戏玩家可导致虚拟车辆通过在打开和合拢伸出的右手时,同时向前移动右脚、相对于伸出的右手抬高伸出的左手,来绕着角落加速。 虽然参考了驾驶游戏进行了描述,但上述姿势还可应用于其他游戏或应用。此外,上述姿势可用于控制物理对象,诸如远程操作的车辆或无人驾驶飞机。 虽然参考虚拟骨架的虚拟表示来描述了上述姿势,应该理解,可参考构成虚拟骨架的骨架数据来分析姿势。可使用一个或多个测试来分析每一姿势。每一个这样的测试可考虑一个或多个关节的位置、速度、加速度、方向或其他属性。可在绝对意义上考虑这样的属性,或者参考一个或多个其他关节。作为非限制性示例,姿势可由关节的绝对位置来标识、由两个或更多个关节相对于彼此的相对位置来标识、由连接两个关节的骨骼段相对于连接两个关节的另一骨骼段的角度的角度来标识、和/或由以上或其他属性的组合来标识。 在某些实施例中,以上所描述的方法和过程可捆绑到包括一个或多个计算机的计算系统。具体而言,此处所述的方法和过程可被实现为计算机应用、计算机服务、计算机API、计算机库、和/或其他计算机程序产品。 图10示意性示出了可以执行上述方法和过程之中的一个或多个的非限制性计算系统60。以简化形式示出了计算系统60。应当理解,可使用基本上任何计算机架构而不背离本公开的范围。在不同的实施例中,计算系统60可以采取大型计算机、服务器计算机、台式计算机、膝上型计算机、平板计算机、家庭娱乐计算机、网络计算设备、移动计算设备、移动通信设备、游戏设备等等的形式。 计算系统60包括逻辑子系统62和数据保持子系统64。计算系统60可以任选地包括显示子系统66、捕捉子系统68和/或在图10中未示出的其他组件。计算系统60还可以任选地包括诸如下列用户输入设备:例如键盘、鼠标、游戏控制器、相机、话筒和/或触摸屏等等。 逻辑子系统62可包括被配置为执行一个或多个指令的一个或多个物理设备。例如,逻辑子系统可被配置为执行一个或多个指令,该一个或多个指令是一个或多个应用、服务、程序、例程、库、对象、组件、数据结构、或其它逻辑构造的部分。可实现此类指令以执行任务、实现数据类型、变换一个或多个设备的状态、或以其他方式得到所需结果。 逻辑子系统可包括被配置成执行软件指令的一个或多个处理器。另外地或替换地,逻辑子系统可包括被配置成执行硬件或固件指令的一个或多个硬件或固件逻辑机器。逻辑子系统的处理器可以是单核或多核,且在其上执行的程序可被配置为并行或分布式处理。逻辑子系统可以任选地包括遍布两个或多个设备的独立组件,所述设备可远程放置和/或被配置为进行协同处理。该逻辑子系统的一个或多个方面可被虚拟化并由以云计算配置进行配置的可远程访问的联网计算设备执行。 数据保持子系统64可包括一个或更多个物理、非瞬时设备,这些设备被配置成保持数据和/或可由该逻辑子系统执行的指令,以实现此处描述的方法和过程。当实现了此类方法和过程时,可变换数据保存子系统64的状态(例如,以保存不同数据)。 数据保持子系统64可包括可移动介质和/或内置设备。数据保持子系统64尤其是可以包括光学存储器设备(例如,⑶、DVD,HD-DVD、蓝光盘等)、半导体存储器设备(例如,RAM、EPROM、EEPROM等)和/或磁存储器设备(例如,硬盘驱动器、软盘驱动器、磁带驱动器、MRAM等)。数据保持子系统64可包括具有以下特性中的一个或多个特性的设备:易失性、非易失性、动态、静态、读/写、只读、随机存取、顺序存取、位置可寻址、文件可寻址、以及内容可寻址。在某些实施例中,可以将逻辑子系统62和数据保持子系统64集成到一个或更多个常见设备中,如专用集成电路或片上系统。 图10还示出以可移动计算机可读存储介质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可以向目标发射红外光,然后使用传感器来检测从目标的表面反向散射的光。在一些情况下,可以使用脉冲式红外光,其中可以测量出射光脉冲和相应的入射光脉冲之间的时间并将该时间用于确定从该捕捉设备到目标上的特定位置的物理距离。在一些情况下,出射光波的相位可以与入射光波的相位相比较以确定相移,并且该相移可以用于确定从该捕捉设备到目标上的特定位置的物理距离。 在另一示例中,飞行时间分析可用于通过经由诸如快门式光脉冲成像之类的技术分析反射光束随时间的强度,来间接地确定从该捕捉设备到目标上的特定位置的物理距1¾O 在另一示例中,结构化光分析可以被捕捉设备68利用来捕捉深度信息。在这样的分析中,图案化光(即被显示为诸如网格图案、条纹图案或星座点之类的已知图案的光)可以被投影到目标上。在落到目标的表面上以后,该图案可能变为变形的,并且可以研究该图案的这种变形以确定从该捕捉设备到目标上的某一位置的物理距离。 在另一示例中,捕捉设备可以包括两个或更多个物理上分开的相机,这些相机从不同角度查看目标以获得视觉立体数据。在这种情况下,该视觉立体数据可以被解析以生成深度图像。 在其他实施例中,捕捉设备68可以使用其他技术来测量和/或计算深度值。此外,捕捉设备68可以将所计算的深度信息组织为“Z层”,即与从深度相机沿其视线延伸到目标的Z轴垂直的层。 在一些实施例中,两个或更多个不同的相机可以被合并到一集成的捕捉设备中。例如,深度相机和视频相机(例如RGB视频相机)可以被合并到共同的捕捉设备中。在一些实施例中,可以协作式地使用两个或更多个分开的捕捉设备。例如,可以使用深度相机和分开的视频相机。当使用视频相机时,该视频相机可用于提供:目标跟踪数据、对目标跟踪进行纠错的确认数据、图像捕捉、面部识别、对手指(或其他小特征)的高精度跟踪、光感测和/或其他功能。 要理解,至少一些目标分析和跟踪操作可以由一个或多个捕捉设备的逻辑机来执行。捕捉设备可以包括被配置成执行一个或多个目标分析和/或跟踪功能的一个或多个板载处理单元。捕捉设备可以包括便于更新这样的板载处理逻辑的固件。计算系统60可任选地包括诸如控制器52和控制器M之类的一个或多个输入设备。输入设备可被用于控制计算系统的操作。在游戏的上下文中,诸如控制器52和/或控制器M之类的输入设备可被用于控制游戏的那些不是通过这里所述的目标识别、跟踪和分析方法和过程来控制的方面。在某些实施例中,诸如控制器52和/或控制器M之类的输入设备可包括可用于测量控制器在物理空间中的移动的加速计、陀螺仪、红外目标/传感器系统等中的一个或多个。在某些实施例中,计算系统可任选地包括和/或利用输入手套、键盘、鼠标、跟踪垫、轨迹球、触屏、按钮、开关、拨盘、和/或其他输入设备。如将理解的,目标识别、跟踪和分析可被用于控制或扩充游戏或其他应用的常规上由诸如游戏控制器之类的输入设备控制的方面。在某些实施例中,这里所述的目标跟踪可被用作对其他形式的用户输入的完全替代,而在其他实施例中,这种目标跟踪可被用于补充一个或多个其他形式的用户输入。 应该理解,此处所述的配置和/或方法在本质上是示例性的,并且这些特定实施例或示例不是限制意义,因为多个变体是可能的。此处所述的特定例程或方法可表示任意数量的处理策略中的一个或多个。由此,所示出的各个动作可按所示顺序执行、按其他顺序执行、并行地执行、或者在一些情况下省略。同样,可改变上述过程的次序。 本公开的主题包括各种过程、系统和配置的所有新颖和非显而易见的组合和子组合,和此处所公开的其他特征、功能、动作、和/或特性、以及其任何和全部等效物。

通过虚拟骨架的驾驶模拟器控制技术领域本发明涉及通过虚拟骨架的驾驶模拟器控制。背景技术 虽然相机技术允许记录人类的图像,但计算机传统上可能无法使用这样的图像来准确地评估人类在图像中如何移动。最近,技术已经进展成使得可在特殊相机以及一个或多个跟踪标签的帮助下解释人类移动的某些方面。例如,可用若干跟踪标签(例如,向后反射器)来仔细地装饰演员,这些跟踪标签可由若干相机从若干不同位置来跟踪。随后可使用三角测量来计算每一反射器的三维位置。因为标签被仔细地放置于演员上,且每一标签与演员身体的对应部位的相对位置是已知的,所以可使用对标签位置的三角测量来推断演员身体的位置。然而,这一技术需要使用特殊反射的标签或其他标记物。 在科幻电影方面,计算机已经被描绘成足够的智能以在没有反射性标签或其他标记物的帮助下实际查看人类并解释人类的运动和姿势。然而,使用特殊效果创建这样的场景:其中演员遵循使得看起来就像该演员正在控制计算机的脚本动作一样的预定移动脚本仔细地表演。演员实际上并未控制计算机,而是试图创建控制的幻象。发明内容 提供本发明内容以便以简化形式介绍在以下具体实施方式中进一步描述的一些概念。本发明内容并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。此外,所要求保护的主题不限于解决在本发明的任一部分中提及的任何或所有缺点的实现。 用通过从所观察的场景中捕捉包括深度信息的深度图像来分析所观察的场景内的人类目标的设备来执行深度图像分析。用包括多个关节的虚拟骨架来对人类目标建模。虚拟骨架被用作用于控制驾驶模拟的输入。附图说明 图1根据本发明的一实施例示出查看所观察的场景的深度图像分析系统。 图2在某种程度上示意性地示出用虚拟骨架来对人类目标建模。 图3A-3F在某种程度上示意性示出了从虚拟骨架转换的姿势转向角(steeringanglecontrol)控制。 图4示出根据本发明的实施例的虚拟车辆驾驶。 图5-9在某种程度上示意性示出了从虚拟骨架转换的姿势驾驶控制。 图10示意性地示出被配置成将虚拟骨架转换成姿势驾驶控制的计算系统。具体实施方式 诸如3D视觉游戏系统等深度图像分析系统可包括能够观察一个或多个玩家的深度相机。在深度相机捕捉所观察的场景内的玩家的图像时,那些图像可被解释并用一个或多个虚拟骨架来建模。如以下更详细描述的,虚拟骨架可被用作控制驾驶模拟器的输入。换言之,深度相机可观察正在执行被设计成控制驾驶模拟器的人类并对其建模,且可用驾驶模拟器可将其解释为不同控制的虚拟骨架来对人类目标建模。由此,人类可单单用姿势来控制驾驶模拟器,从而避免常规方向盘、踏板、操纵杆和/或其他控制器。 图1示出了深度图像分析系统10的非限制性示例。具体而言,图1示出了游戏系统12,该游戏系统12可以用于玩各种不同的游戏、播放一个或多个不同的媒体类型、和/或控制或操纵非游戏应用。图1还示出了诸如电视机或计算机监视器之类的可用于向游戏玩家呈现游戏画面的显示设备16。作为一个示例,显示设备16可用于在视觉上呈现人类目标32用其移动来控制的虚拟化身50。深度图像分析系统10可包括捕捉设备,诸如在视觉上监视或跟踪所观察的场景14内的人类目标32的深度相机22。参考图2和10更详细地讨论深度相机22。 人类目标32这里被示为所观察的场景14内的游戏玩家。人类目标32由深度相机22来跟踪,使得人类目标32的移动可由游戏系统12解释成可被用于影响游戏系统12正在执行的游戏的控制。换言之,人类目标32可使用他或她的移动来控制游戏。人类目标32的移动可以被解释成几乎任何类型的游戏控制。人类目标32的某些移动可被解释成服务于除控制虚拟化身50以外的目的的控制。作为非限制性示例,人类目标32的移动可被解释为操纵虚拟赛车、开火虚拟武器、以第一人视角导航虚拟世界、或者操纵模拟世界的各个方面的控制。移动还可被解释为辅助游戏管理控制。例如,人类目标32可以使用移动来结束、暂停、保存、选择级别、查看高分、与其他玩家交流等。 深度相机22还可以用于将目标移动解释成游戏领域之外的操作系统和/或应用控制。事实上,操作系统和/或应用的任何可控方面都可以由人类目标32的移动来控制。图1中所示出的场景是作为示例来提供的,但并不意味着以任何方式进行限制。相反,所示出的场景旨在展示可以在不背离本公开的范围的情况下应用于各种各样不同的应用的一般概念。 在此所述的方法和过程可以绑定到各种不同类型的计算系统。图1示出了游戏系统12、显示设备16和深度相机22的形式的非限制性示例。一般而言,深度图像分析系统可包括图10中以简化形式示出的计算系统60,计算系统60将在下文更详细地讨论。 图2示出了简化的处理流水线,其中所观察的场景14中的人类目标32被建模为虚拟骨架46,该虚拟骨架46可被用于牵引显示设备16上的虚拟化身50和/或用作控制游戏、应用、和/或操作系统的其他方面的控制输入。可以理解,处理流水线可包括比图2中所描述的更多的步骤和/或图2中所描述的替换步骤,而不背离本发明的范围。 如图2所示,人类目标32和所观察的场景14中的其余部分可由诸如深度相机22之类的捕捉设备来成像。深度相机可为每一像素确定在所观察的场景中的表面相对于深度相机的深度。在不偏离本公开的范围的情况下,可以使用实际上任何深度寻找技术。示例深度寻找技术参考图10的捕捉设备68来更详细地讨论。 为每一像素所确定的深度信息可用于生成深度图42。这样的深度图可采用实际上任何合适的数据结构的形式,包括但不限于包括所观察的场景的每个像素的深度值的矩阵。在图2中,深度图42被示意性地示为人类目标32的轮廓的像素化网格。这一例示是出于理解简明的目的,而不是技术准确性。可以理解,深度图一般包括所有像素(不仅是对人类目标32进行成像的像素)的深度信息,并且深度相机22的透视不会得到图2中所描绘的轮廓。 虚拟骨架46可从深度图42导出,以提供对人类目标32的机器可读表示。换言之,从深度图42导出虚拟骨架46以便对人类目标32建模。虚拟骨架46可以按任何合适的方式从深度图中导出。在某些实施例中,可将一个或多个骨架拟合算法应用于深度图。本发明与实际上任何骨架建模技术兼容。 虚拟骨架46可包括多个关节,每一关节对应于人类目标的一部分。在图2中,虚拟骨架46被示为十五个关节的线条画。这一例示是出于理解简明的目的,而不是技术准确性。根据本发明的虚拟骨架可包括实际上任何数量的关节,每一关节都可与实际上任何数量的参数(例如,三维关节位置、关节旋转、对应身体部位的身体姿势(例如,手打开、手合上等)等)相关联。可以理解,虚拟骨节可采用数据结构的形式,该数据结构包括多个骨架关节中的每一个的一个或多个参数(例如,包括每一关节的χ位置、y位置、ζ位置和旋转的骨架矩阵)。在某些实施例中,可使用其他类型的虚拟骨架(例如,线框、一组形状图元寸Jο 如图2所示,可将虚拟化身50呈现在显示设备16上作为虚拟骨架46的视觉表示。由于虚拟骨架46对人类目标32进行建模,并且对虚拟化身50的呈现基于虚拟骨架46,因此虚拟化身50用作人类目标32的可视的数字表示。由此,虚拟化身50在显示设备16上的移动反映人类目标32的移动。 在某些实施例中,只有虚拟化身的部分将呈现在显示设备16上。作为一个非限制性示例,显示设备16可呈现人类目标32的第一人视角,并因此可呈现可通过虚拟化身的虚拟眼睛来查看的虚拟化身的各部分(例如,握有方向盘的伸出的手、握有步枪的伸出的手、抓住三维虚拟世界中的物体的伸出的手等)。 尽管将虚拟化身50用作可经由深度图的骨架建模由人类目标的移动来控制的游戏的一示例方面,但这并不旨在限制。人类目标可以用虚拟骨架来建模,而虚拟骨架可用于控制除虚拟化身以外的游戏或其他应用的各方面。例如,即使虚拟化身没有被呈现到显示设备,人类目标的移动也可控制游戏或其他应用。 如上介绍的,驾驶模拟或游戏可经由深度图的骨架建模由人类目标的移动来控制。例如,图3-9示意性地示出在不同时刻(例如,时间、、时间、和时间t2)对人类目标的不同姿势建模的虚拟骨架46。如上讨论的,虚拟骨架46可从深度信息中导出,深度信息从观察人类目标的深度相机获取。虽然虚拟骨架46被示为具有关节的线条画,但应该理解,虚拟骨架可由任何何时的机器可读数据结构来表示。例如,图3A中示为点的关节可由位置坐标和/或其他机器可读信息来表示。由此,计算系统的逻辑子系统可接收虚拟骨架(即,以机器可读形式表示虚拟骨架的数据结构)并处理一个或多个关节的位置和/或其他属性。以此方式,骨架位置/移动并因此被建模的人类目标的姿势可被解释为用于控制计算系统的不同姿势控制。 作为第一示例,图3A示出了在时间t0处于就座位置且放下手臂的虚拟骨架46。在所示实施例中,虚拟骨架尤其包括左手关节82、右手关节84、第一躯干关节88、左脚关节92、以及右脚关节94。在时间、,虚拟骨架的手臂被抬高,就像要持握方向盘。在时间t2,转动手臂,就像转动方向盘。图3B示意性示出了时间、的左手关节82和右手关节84的正面图。图3C示意性示出了时间t2的左手关节82和右手关节84的正面图。 计算系统可被配置成将参考线(例如,水平线)与连接左手关节和右手关节的线之间的角度转换成姿势转向角控制。在一些实施例中,此类转换可仅在右手关节和左手关节在一个或多个躯干关节的前面伸出(即,双手处于要持握方向盘的位置)时执行。 例如,如图;3B中最佳地示出的,在时间t1;参考线302与连接左手关节82与右手关节84的线304之间的角度300是大致-2.0°。由此,所观测和建模的-2.0°相对关节位置可被建模为-2.0°转向角控制(例如,方向盘转到-2.0°)。 作为另一示例,且如图3C中最佳地例示地,在时间t2,参考线302与连接左手关节82和右手关节84的线304之间的角度300为大致观.0°。由此,所观测和建模的观.0°相对关节位置可被建模为观.0°转向角控制(例如,方向盘转到观.0°)。 转换不必是1:1。在一些实施例中,所观测的关节角度可使用线性或非线性转换函数来解释成转向角控制。 在一些实施例中,如图3D中所例示的,可从手臂相对于躯干位置的位置解释姿势转向角控制。例如,在时间、,虚拟骨架46处于驾驶位置。在时间t1;在左手臂越来越靠近躯干90地移动时,右手臂76远离躯干90地移动。计算机系统可被配置成将右手臂和/左手臂相对于至少一个躯干关节的位置转换成姿势转向角控制。在此情形中,姿势可被转换成向右转。类似地,在左手臂78远离躯干90地移动时右手臂76越来越靠近躯干90地移动可对用于向左转的姿势转向角控制作出贡献。 图3E提供了从躯干和/或肩膀的位置解释姿势转向角控制的示例。例如,在时间tQ,虚拟骨架46处于驾驶位置。在时间^,躯干90旋转到右边。计算系统可被配置成将至少一个躯干关节或躯干旋转的另一指示转换成姿势转向角控制。在图3E所示的姿势可被转换成向右转。类似地,躯干旋转到左侧可被解释为向左转。在一些实施例中,手相对于躯干的定位可被解释为姿势转向角控制。例如,当在操纵姿态中手在躯干的前面伸出并在随后移至右边时,这可被解释为向右转,即使躯干随着手移动而扭转。类似地手移至左边可被解释为向左转。 图3F提供了从躯干的侧向倾斜解释姿势转向角控制的示例。例如,在时间、,虚拟骨架46处于驾驶位置。在时间^,躯干90倾向右边。计算系统可被配置成将躯干的倾斜位置转换成姿势转向角控制。在图3F中所示的姿势可被转换成向右转。类似地,躯干倾向左边可被解释为向左转。 在一些情形中,驾驶游戏和/或其他驾驶模拟可被配置成将以上所描述的姿势的两个或多个转换成转向角控制。由此,游戏玩家可使用不同类型的姿势来使虚拟车辆转向。 姿势转向角控制可被用于操纵驾驶游戏或其他驾驶模拟的虚拟车辆。此类操纵可与姿势转向角控制的量值成比例——即,更大角度的操纵姿势会导致虚拟车辆的更急剧的转向。 在一些实施例中,姿势转向角控制不是用来操纵虚拟车辆的唯一操纵控制。计算系统可被编程为具有可确定虚拟车辆的操纵控制、加速度控制和其他控制的人工智能。例如,此类人工智能可被用来在虚拟赛车游戏中自动驾驶对方赛车。人工智能可被调成遵从特定驾驶简档(即,谨慎、鲁莽、熟练等)。此类人工智能还可被用于帮助游戏玩家在驾驶模8拟或游戏中驾驶虚拟车辆。 换言之,还可与人工智能推荐的控制成比例地操纵虚拟车辆。当以此方式控制时,虚拟车辆与姿势转向角控制和人工智能推荐的控制两者的混合成比例地转向。由此,游戏玩家可控制车辆,但是人工智能可辅助游戏玩家,以使得游戏玩家具有更愉快的体验。 图4示出了可在显示设备上显示的驾驶游戏,该显示设备示出了虚拟道路402上的示例虚拟车辆400A。虚拟车辆400A可由所建模的人类目标的姿势来控制,如以上所描述的。此外,可与人工智能推荐的控制和姿势转向角控制成比例地操纵虚拟车辆400A。 姿势转向角控制和人工智能推荐的控制的相对百分比可根据一个或多个可改变游戏参数来动态地设置。换言之,驾驶模拟器可实时地修改多少百分比的操纵控制来自游戏玩家以及多少百分比来自人工智能。 在一些实施例中,驾驶员级别(例如,初学者、中级、高级、专业等)可用作可改变游戏参数,该参数可被用来动态地设置玩家控制与人工智能控制之间的平衡。在此类实施例中,姿势转向角控制的相对百分比可被减小以向初学者驾驶员提供更大的辅助。 在一些实施例中,虚拟车辆的速度可用作可改变游戏参数,该参数可被用来动态地设置玩家控制与人工智能控制之间的平衡。在此类实施例中,姿势转向角控制的相对百分比可随着虚拟车辆的速度的增加而减小。 在一些实施例中,虚拟车道的转弯半径可用作可改变游戏参数,该参数可被用来动态地设置玩家控制与人工智能控制之间的平衡。在此类实施例中,姿势转向角控制的相对百分比可随着虚拟车道的转弯半径的增加而减小。换言之,像车道。 在一些实施例中,与推荐的路径的偏差可用作可改变游戏参数,该参数可被用来动态地设置玩家控制与人工智能控制之间的平衡。在此类实施例中,姿势转向角控制的相对百分比可随着与推荐的路径的偏差的增大而减小。换言之,随着虚拟车辆更远离推荐的驾驶路径(例如,赛车道上的最优线路)地移动,人工智能可施加更多控制以将虚拟车辆推回到车道上。通过使用图4的示例,由于虚拟车辆400A处于推荐的路径410上,,可主要依照玩家控制的结果来操纵虚拟车辆400A。另一方面,由于虚拟车辆400B严重偏离推荐的路径410,可针对虚拟车辆400B增大人工智能控制的百分比。 虽然操纵是作为可以是从虚拟骨架解释的姿势控制和人工智能控制的混合的示例控制形式来提供的,但是这并不进行任何限制。驾驶模拟器或游戏的其他方面可经由混合控制来实现。例如,油门控制和/或刹车控制可经由混合控制来实现。一般而言,虚拟骨架的一个或多个关节的位置可被转换成姿势游戏控制,并且作为姿势游戏控制和人工智能推荐的控制的组合的混合游戏控制可被执行。 作为下一示例,图5、5A和6B示出了可如何实现油门和刹车控制。具体地,图5示意性地示出在不同时刻(例如,时间、、时间、和时间t2)对人类目标的不同加速姿势建模的虚拟骨架46。计算系统可被配置成将虚拟骨架的左脚关节相对于虚拟骨架的右脚关节位置的位置转换成姿势加速度控制。此外,可与姿势加速度控制成比例地加速虚拟车辆。 在时间、,虚拟骨架46被示为具有处于空档位置的左脚和右脚关节。例如,这可对应于空档加速度控制——即,滑行,而没有任何油门或任何刹车。 在时间^,右脚关节94在左脚关节92的前面。右脚关节在左脚关节的前面可被解释为正加速度一即,踩油门。右脚在左脚前面移开的距离可对应于油门控制的量值。 在时间t2,右脚关节94在左脚关节92后面。右脚关节在左脚关节的后面可被解释为负加速度——即,踩刹车。右脚在左脚后面移开的距离可对应于刹车控制的量值。 可以理解,对“左”、“右”、“前”、“后”等的引用可可基于虚拟骨架的解剖。此外,虽然在此示例中使用活动的右脚,但是应当理解,加速度控制可另外或替换地通过左脚来实现。此外,虽然讨论了绝对控制(即,油门开/关、刹车开/关),应当理解,姿势加速度控制可以是相对于默认速度,诸如由人工智能选择的默认速度。 图6A示意性地示出在不同时刻(例如,时间tQ、时间、和时间t2)对人类目标的不同加速度姿势建模的虚拟骨架46。计算系统可被配置成将左脚关节和右手关节远离一个或多个躯干关节的距离转换成姿势加速度控制。此外,可与姿势加速度控制成比例地加速虚拟车辆。 在时间、,虚拟骨架46被示为具有处于空档位置的左脚和右脚关节。例如,这可对应于空档加速度控制——即,滑行,而没有任何油门或任何刹车。在时间、,手(S卩,左手关节82和右手关节84)移动成更靠近躯干。在时间t2,手远离躯干90移动。 可与左手关节和右手关节远离一个或多个躯干关节的距离成比例地增大正加速度。例如,正加速度可以在时间t2处比在时间、和、处更高。类似地,正加速度可以是在时间、处比在时间、和t2处更低。在一些实施例中,手从躯干伸出越过阈值距离可被解释为正加速度,且手相对于阈值距离朝躯干收回可被解释为负加速度(例如,刹车)。 图6B提供了从躯干的位置解释姿势加速度控制的示例。例如,在时间、,虚拟骨架46处于驾驶位置。在时间^,躯干90向前倾斜。换言之,躯干90超捕捉设备倾斜,如箭头72所标示的,由此定位躯干90更靠近捕捉设备(例如,图1的深度相机2¾。计算系统可被配置成将躯干距捕捉设备的距离转换成姿势加速度控制。如图6B所示的姿势可被转换为正加速度。类似地,躯干向后倾斜可被解释为负加速度。 在一些情形中,驾驶游戏和/或其他驾驶模拟可被配置成将以上所描述的姿势的两个或多个转换成加速度控制。由此,游戏玩家可导致虚拟车辆使用不同类型的姿势来加速或减速。 如之前一样,应当理解,姿势加速度控制可相对于默认速度,诸如由人工智能选择的默认速度。此外,虽然手位置在以上是参照一个或多个躯干关节来描述的,但是应当理解,可使用任何其他相当和/或相似的参考,包括手关节的绝对位置。 虽然姿势操纵和加速度控制是可从虚拟骨架转换的控制的两个示例类型,但是其他姿势控制也落在本公开的范围内。以下非线性示例被提供来建议可用的姿势控制的宽度,但是这决不意味着进行限制。 图7示意性地示出在不同时刻(例如,时间、、时间、和时间t2)对人类目标的示例涡轮增压(turboboost)姿势建模的虚拟骨架46。计算系统可被配置成将手关节(例如,右手关节84)从一个或多个躯干关节附近(即,在时间、)突然移至远离一个或多个躯干关节的位置(即,在时间t2)转换成姿势涡轮增压控制。此外,可响应于姿势涡轮增压控制来迅速地加速虚拟车辆。 图8示意性地示出在不同时刻(例如,时间、、时间、和时间t2)对人类目标的示例换档姿势建模的虚拟骨架46。计算系统可被配置成将手关节(例如,右手关节84)靠近髋关节(例如,髋关节98)的移动转换成姿势换档控制。由此,可响应于姿势换档控制来改变虚拟车辆的排档。 在时间、,虚拟骨架46被示为具有处于空档换档位置的右手关节84。在时间t1;右手关节84可相对于髋关节98向前移动,其可转换为排档增加。在时间t2,右手关节84可相对于髋关节98向后移动,其可转换为排档减小。图9示意性地示出在不同时刻(例如,时间、、时间、和时间t2)对人类目标的其他示例换档姿态建模的虚拟骨架46。在时间、,虚拟骨架46被示为具有处于空档换档位置的手。计算系统可被配置成将由相对应的手关节(例如,左手关节8¾建模的一只或多只手的姿态转换成姿势换档控制。由此,可响应于姿势换档控制来改变虚拟车辆的排档。例如,可响应于打开和合拢左手902来减小排档。作为另一示例,可响应于打开和合拢右手来增大排档。 手的姿态可用任何合适的方式来确定。在某些实施例中,可用足够的骨架关节来建模手以仅从骨架数据中识别出手的姿态。在某些实施例中,手关节的位置可被用来在对应深度图和/或对应色彩图像中定位手的位置。在这样的情况下,随后可评估深度图和/或色彩图像中包括手的部分以确定手是张开的姿态还是合拢的姿态。例如,可参照已知手姿态的在先训练的集合来分析深度图和/或色彩图像中包括手的部分以寻找最佳匹配的手姿态。 上述姿势/控制是非限制性示例。其他姿势和控制也在本发明的范围之内。此外,可同时执行和转换上述姿势中的两个或更多个。例如,游戏玩家可导致虚拟车辆通过在打开和合拢伸出的右手时,同时向前移动右脚、相对于伸出的右手抬高伸出的左手,来绕着角落加速。 虽然参考了驾驶游戏进行了描述,但上述姿势还可应用于其他游戏或应用。此外,上述姿势可用于控制物理对象,诸如远程操作的车辆或无人驾驶飞机。 虽然参考虚拟骨架的虚拟表示来描述了上述姿势,应该理解,可参考构成虚拟骨架的骨架数据来分析姿势。可使用一个或多个测试来分析每一姿势。每一个这样的测试可考虑一个或多个关节的位置、速度、加速度、方向或其他属性。可在绝对意义上考虑这样的属性,或者参考一个或多个其他关节。作为非限制性示例,姿势可由关节的绝对位置来标识、由两个或更多个关节相对于彼此的相对位置来标识、由连接两个关节的骨骼段相对于连接两个关节的另一骨骼段的角度的角度来标识、和/或由以上或其他属性的组合来标识。 在某些实施例中,以上所描述的方法和过程可捆绑到包括一个或多个计算机的计算系统。具体而言,此处所述的方法和过程可被实现为计算机应用、计算机服务、计算机API、计算机库、和/或其他计算机程序产品。 图10示意性示出了可以执行上述方法和过程之中的一个或多个的非限制性计算系统60。以简化形式示出了计算系统60。应当理解,可使用基本上任何计算机架构而不背离本公开的范围。在不同的实施例中,计算系统60可以采取大型计算机、服务器计算机、台式计算机、膝上型计算机、平板计算机、家庭娱乐计算机、网络计算设备、移动计算设备、移动通信设备、游戏设备等等的形式。 计算系统60包括逻辑子系统62和数据保持子系统64。计算系统60可以任选地包括显示子系统66、捕捉子系统68和/或在图10中未示出的其他组件。计算系统60还可以任选地包括诸如下列用户输入设备:例如键盘、鼠标、游戏控制器、相机、话筒和/或触摸屏等等。 逻辑子系统62可包括被配置为执行一个或多个指令的一个或多个物理设备。例如,逻辑子系统可被配置为执行一个或多个指令,该一个或多个指令是一个或多个应用、服务、程序、例程、库、对象、组件、数据结构、或其它逻辑构造的部分。可实现此类指令以执行任务、实现数据类型、变换一个或多个设备的状态、或以其他方式得到所需结果。 逻辑子系统可包括被配置成执行软件指令的一个或多个处理器。另外地或替换地,逻辑子系统可包括被配置成执行硬件或固件指令的一个或多个硬件或固件逻辑机器。逻辑子系统的处理器可以是单核或多核,且在其上执行的程序可被配置为并行或分布式处理。逻辑子系统可以任选地包括遍布两个或多个设备的独立组件,所述设备可远程放置和/或被配置为进行协同处理。该逻辑子系统的一个或多个方面可被虚拟化并由以云计算配置进行配置的可远程访问的联网计算设备执行。 数据保持子系统64可包括一个或更多个物理、非瞬时设备,这些设备被配置成保持数据和/或可由该逻辑子系统执行的指令,以实现此处描述的方法和过程。当实现了此类方法和过程时,可变换数据保存子系统64的状态(例如,以保存不同数据)。 数据保持子系统64可包括可移动介质和/或内置设备。数据保持子系统64尤其是可以包括光学存储器设备(例如,⑶、DVD,HD-DVD、蓝光盘等)、半导体存储器设备(例如,RAM、EPROM、EEPROM等)和/或磁存储器设备(例如,硬盘驱动器、软盘驱动器、磁带驱动器、MRAM等)。数据保持子系统64可包括具有以下特性中的一个或多个特性的设备:易失性、非易失性、动态、静态、读/写、只读、随机存取、顺序存取、位置可寻址、文件可寻址、以及内容可寻址。在某些实施例中,可以将逻辑子系统62和数据保持子系统64集成到一个或更多个常见设备中,如专用集成电路或片上系统。 图10还示出以可移动计算机可读存储介质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可以向目标发射红外光,然后使用传感器来检测从目标的表面反向散射的光。在一些情况下,可以使用脉冲式红外光,其中可以测量出射光脉冲和相应的入射光脉冲之间的时间并将该时间用于确定从该捕捉设备到目标上的特定位置的物理距离。在一些情况下,出射光波的相位可以与入射光波的相位相比较以确定相移,并且该相移可以用于确定从该捕捉设备到目标上的特定位置的物理距离。 在另一示例中,飞行时间分析可用于通过经由诸如快门式光脉冲成像之类的技术分析反射光束随时间的强度,来间接地确定从该捕捉设备到目标上的特定位置的物理距1¾O 在另一示例中,结构化光分析可以被捕捉设备68利用来捕捉深度信息。在这样的分析中,图案化光(即被显示为诸如网格图案、条纹图案或星座点之类的已知图案的光)可以被投影到目标上。在落到目标的表面上以后,该图案可能变为变形的,并且可以研究该图案的这种变形以确定从该捕捉设备到目标上的某一位置的物理距离。 在另一示例中,捕捉设备可以包括两个或更多个物理上分开的相机,这些相机从不同角度查看目标以获得视觉立体数据。在这种情况下,该视觉立体数据可以被解析以生成深度图像。 在其他实施例中,捕捉设备68可以使用其他技术来测量和/或计算深度值。此外,捕捉设备68可以将所计算的深度信息组织为“Z层”,即与从深度相机沿其视线延伸到目标的Z轴垂直的层。 在一些实施例中,两个或更多个不同的相机可以被合并到一集成的捕捉设备中。例如,深度相机和视频相机(例如RGB视频相机)可以被合并到共同的捕捉设备中。在一些实施例中,可以协作式地使用两个或更多个分开的捕捉设备。例如,可以使用深度相机和分开的视频相机。当使用视频相机时,该视频相机可用于提供:目标跟踪数据、对目标跟踪进行纠错的确认数据、图像捕捉、面部识别、对手指(或其他小特征)的高精度跟踪、光感测和/或其他功能。 要理解,至少一些目标分析和跟踪操作可以由一个或多个捕捉设备的逻辑机来执行。捕捉设备可以包括被配置成执行一个或多个目标分析和/或跟踪功能的一个或多个板载处理单元。捕捉设备可以包括便于更新这样的板载处理逻辑的固件。计算系统60可任选地包括诸如控制器52和控制器M之类的一个或多个输入设备。输入设备可被用于控制计算系统的操作。在游戏的上下文中,诸如控制器52和/或控制器M之类的输入设备可被用于控制游戏的那些不是通过这里所述的目标识别、跟踪和分析方法和过程来控制的方面。在某些实施例中,诸如控制器52和/或控制器M之类的输入设备可包括可用于测量控制器在物理空间中的移动的加速计、陀螺仪、红外目标/传感器系统等中的一个或多个。在某些实施例中,计算系统可任选地包括和/或利用输入手套、键盘、鼠标、跟踪垫、轨迹球、触屏、按钮、开关、拨盘、和/或其他输入设备。如将理解的,目标识别、跟踪和分析可被用于控制或扩充游戏或其他应用的常规上由诸如游戏控制器之类的输入设备控制的方面。在某些实施例中,这里所述的目标跟踪可被用作对其他形式的用户输入的完全替代,而在其他实施例中,这种目标跟踪可被用于补充一个或多个其他形式的用户输入。 应该理解,此处所述的配置和/或方法在本质上是示例性的,并且这些特定实施例或示例不是限制意义,因为多个变体是可能的。此处所述的特定例程或方法可表示任意数量的处理策略中的一个或多个。由此,所示出的各个动作可按所示顺序执行、按其他顺序执行、并行地执行、或者在一些情况下省略。同样,可改变上述过程的次序。 本公开的主题包括各种过程、系统和配置的所有新颖和非显而易见的组合和子组合,和此处所公开的其他特征、功能、动作、和/或特性、以及其任何和全部等效物。

Description




公司地址:贵州省贵阳市云岩区盐务街33号盐天下专卖店
联系人:王伊伟 15229798163
吴勇 15296458926
电话:18806883581 传真:pvnls@163.com
邮箱:owel0ybwin@sohu.com

粤公网安备 44030702001579号

w88娱乐@