姿势教练的制作方法

文档序号:6349417阅读:279来源:国知局
专利名称:姿势教练的制作方法
背景技术
诸如计算机游戏、多媒体应用、办公应用等许多计算应用使用控制来允许用户操纵游戏角色或应用的其他方面。通常使用例如控制器、遥控器、键盘、鼠标等等来输入这样的控制。不幸的是,这些控制可能是难以学习的,由此造成了用户和这些游戏及应用之间的障碍。此外,这些控制可能与这些控制所用于的实际游戏动作或其他应用动作不同。例如, 使得游戏角色挥动棒球拍的游戏控制可能不与挥动棒球拍的实际运动相对应。

发明内容
在某些系统中,显示设备可显示映射到已由系统捕捉的用户运动的模型。例如,该模型可被显示为屏幕上的化身,其中该化身的运动可通过将该化身在应用空间中的运动映射到用户在物理空间中的运动来得到控制。用户可能不熟悉对用户的运动进行映射的系统。例如,用户可能不知道什么姿势适用于正在执行的应用。在一些情况下,用户不了解或不知道如何执行适用于正在执行的应用的姿势。手册中的手写或图片描述可能不足以教导用户如何正确地作出姿势。此处公开了用于姿势训练的系统和方法。用户试图作出姿势时,可以分析所捕捉的用户数据以及来自与该所捕捉的用户数据相对应的姿势过滤器的输出,以确定用户正在试图但未能执行姿势,以及向用户提供帮助是合适的。该帮助可以包括教导用户执行该姿势的正确方法。例如,对过滤器的输出包括执行对应的姿势的置信度水平,并且该置信度水平低于识别阈值时,可以确定该帮助对于教导用户以对应的置信度水平处于或超过该识别阈值的方式执行姿势是适合的。提供本发明内容以便以简化形式介绍在以下具体实施方式
中进一步描述的一些概念。本发明内容并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。此外,所要求保护的主题不限于解决在本发明的任一部分中提及的任何或所有缺点的实现。


参考附图来进一步描述根据本说明书的用于姿势训练的系统、方法和计算机可读介质图IA和IB示出了关于用户玩游戏的目标识别、分析和跟踪系统的示例实施例。图2示出了可在目标识别、分析和跟踪系统中使用并且包括姿势训练的捕捉设备的示例实施例。图3示出了其中可实现此处公开的用于姿势训练的技术的计算环境的另一个示例实施例。图4示出了其中可实现此处公开的用于姿势训练的技术的计算环境的另一个示例实施例。图5A示出了从深度图像生成的用户的骨架映射。
图5B示出了图2所示的姿势识别器体系结构的进一步细节。图6A-6D示出其中用户正在玩拳击游戏的目标识别、分析及跟踪的另一示例实施例。图7A-7D示出与用户的姿势的视觉表示并排的视觉帮助的示例显示。图8A示出叠加在用户的姿势的视觉表示之上的视觉帮助的示例显示。图8B示出包括姿势的示范的视觉帮助的示例显示。图9示出用于进入练习模式以接收视觉帮助的选项的示例显示。图10示出通过网络连接进行交互的远程用户,其中一个用户的运动的视觉帮助被提供给第二用户。图IlA描绘用于姿势训练的示例操作过程。图IlB和IlC描绘了与姿势识别器引擎和应用集成的用于姿势训练的示例体系结构。图12A和12B描绘了示例过滤器输出,从其可以确定姿势训练是合适的。
具体实施例方式如本文中将描述的,用户可通过执行一个或多个姿势来控制在诸如游戏控制台、 计算机等计算环境上执行的应用。本文公开了用于向用户示范所需姿势的运动的系统和方法。例如,该计算环境可提供用于训练用户如何作出适用于正在执行的应用的适当运动的视觉帮助。为了生成表示物理空间中的目标或物体的模型,捕捉设备可以捕捉该物理空间的深度图像并扫描该场景中的各个目标。目标可包括该场景中的人类或其他物体。在一个实施例中,捕捉设备可以确定场景中的一个或多个目标是否对应于诸如用户等人类目标。为了确定场景中的目标是否对应于人类目标,可对每个目标进行泛色填充并将其与人体模型的图案作比较。可扫描被标识为人类的目标来生成与其相关联的骨架模型。然后可将该骨架模型提供给计算环境来跟踪该骨架模型并呈现与该骨架模型相关联的化身。该计算环境可将用户在物理空间中的运动映射到显示设备上的诸如化身等视觉表示。该计算环境可基于例如识别出并被映射到骨架模型的用户的姿势来确定在计算机环境上执行的应用中要执行哪些控制命令。因此,可以显示用户帮助,如经由屏幕上的化身,并且用户可控制该化身的运动并执行对操作系统或正在执行的应用的控制,例如通过在物理空间中作出各个姿势。在一些情况下,提供用于教导用户如何正确地作出姿势来控制正在执行的应用的视觉帮助是合乎需要的。例如,用户可能不知道与适用于正在执行的应用的特定姿势相对应的运动或不知道如何执行该运动。该系统可以检测用户的姿势中的错误,从而指示该用户需要练习来正确地作出姿势。本说明书中描述的功能单元中的一些被标记为模块以更具体地强调它们的实现独立性。例如,模块可被实现为硬件电路,该硬件电路包括自定义VLSI电路或门阵列,诸如逻辑芯片、晶体管等现货半导体,或其他分立组件。模块还可用可编程硬件器件来实现,如现场可编程门阵列、可编程阵列逻辑、可编程逻辑器件等。模块也可以用由各种类型的处理器来执行的软件来实现。所标识的可执行代码的模块例如包括计算机指令的一个或多个物理或逻辑块,该计算机指令例如可被组织成目标、过程、或函数。然而,所标识的模块的可执行代码不必在物理上位于一处,而是可包括存储在不同位置的不同指令,当这些指令在逻辑上联合在一起时组成该模块并实现该模块的规定目的。本文描述的提供视觉练习帮助的系统、方法和组件可在诸如游戏控制台之类的多媒体控制台中实施,或可在需要提供视觉帮助的任何其他计算设备中实施,作为示例但非预期的限制,这些其他计算设备包括卫星接收机、机顶盒、电子游戏机、个人计算机(PC)、便携式电话、个人数字助理(PDA)、以及其他手持式设备。图IA和IB示出伴随用户18玩拳击游戏的目标识别、分析和跟踪系统10的配置的示例实施例。在一示例实施例中,系统10可识别、分析和/或跟踪诸如用户18之类的人类目标。系统10可以收集与用户在物理空间中的姿势相关的信息。系统10可以向用户提供示范所需姿势的视觉帮助。可以用多种方式来触发对视觉帮助的提供。例如,该系统可检测到用户运动中的错误或与预期运动的偏差。检测到这样的错误或偏差可触发示范所需姿势的视觉帮助。在另一示例中,正在执行的应用可以提供用于练习目的的、示范适当控制运动的视觉帮助。帮助可以采取各种形式,如触觉、听觉、 以及视觉。在一实施例中,帮助包括音频帮助、视觉帮助、改变显示元素的色彩、显示元素的衬里、显示元素的褪色、显示元素的闪光、这些形式的帮助的某种组合的追踪模式。如图IA所示,目标识别、分析及跟踪系统10可包括计算环境12。计算环境12可以是计算机、游戏系统或控制台等等。根据一示例实施例,计算环境12可包括硬件组件和 /或软件组件,使得计算环境12可用于执行诸如游戏应用、非游戏应用等应用。如图IA所示,目标识别、分析及跟踪系统10还可包括捕捉设备20。捕捉设备20 可以是例如相机,该相机可用于在视觉上监视诸如用户18等一个或多个用户,以使得可以捕捉、分析并跟踪一个或多个用户所执行的姿势以执行应用中的一个或多个控制或动作, 如将在下面更详细地描述的。根据一个实施例,目标识别、分析及跟踪系统10可连接到可向诸如用户18等用户提供游戏或应用视觉和/或音频的视听设备16,如电视机、监视器、高清电视机(HDTV)等。 例如,计算环境12可包括诸如图形卡等视频适配器和/或诸如声卡等音频适配器,这些适配器可提供与游戏应用、非游戏应用等相关联的视听信号。视听设备16可从计算环境12接收视听信号,然后可向用户18输出与该视听信号相关联的游戏或应用视觉和/或音频。根据一个实施例,视听设备16可经由例如,S-视频电缆、同轴电缆、HDMI电缆、DVI电缆、VGA 电缆等连接到计算环境12。如图IA和IB所示,目标识别、分析和跟踪系统10可用于识别、分析和/或跟踪诸如用户18等的人类目标。例如,可使用捕捉设备20来跟踪用户18,以使得可将用户18的移动解释为可用于影响由计算机环境12执行的应用的控制。因而,根据一个实施例,用户 18可移动他或她的身体来控制应用。如图IA和IB所示,在一示例实施例中,在计算环境12上执行的应用可以是用户 18可能正在玩的拳击游戏。例如,计算环境12可使用视听设备16来向用户18提供拳击对手38的视觉表示。计算环境12还可使用视听设备16来提供用户18可通过他的或她的移动来控制的玩家化身40的视觉表示。例如,如图IB所示,用户18可在物理空间中挥拳
6来使得玩家化身40在游戏空间中挥拳。因此,根据一示例实施例,目标识别、分析及跟踪系统10的计算环境12和捕捉设备20可用于识别和分析用户18在物理空间中的出拳,从而使得该出拳可被解释为对游戏空间中的玩家化身40的游戏控制。用户18的其他移动也可被解释为其他控制或动作,诸如上下快速摆动、闪避、滑步、格挡、直拳或挥动各种不同力度的拳等控制。此外,某些移动可被解释为可对应于除控制玩家化身40之外的动作的控制。例如,玩家可以使用移动来结束、暂停或保存游戏、选择级别、查看高分、与朋友交流等。如下文更详细地描述的,系统10可以向用户18提供用于示范适用于正在执行的应用的姿势的视觉帮助。在一示例实施例中,视觉帮助是骨架表示、重影图像、或玩家化身等形式的预记录内容。在另一示例实施例中,可向用户呈现实况内容。在各示例实施例中,诸如用户18等人类目标可持有一物体。在这些实施例中,电子游戏的用户可手持物体从而可以使用玩家和物体的运动来调整和/或控制游戏的参数。 例如,可以跟踪并利用玩家手持球拍的运动来控制电子运动游戏中的屏幕上球拍。在另一示例实施例中,可以跟踪并利用玩家手持物体的运动来控制电子格斗游戏中的屏幕上武器。系统10可以提供用于示范与用户相对于该玩家所持物体的在物理空间中和/或在应用空间中的运动相关的姿势的视觉帮助。根据其他示例实施例,目标识别、分析及跟踪系统10还可用于将目标移动解释为游戏领域之外的操作系统和/或应用控制。例如,事实上操作系统和/或应用的任何可控方面可由诸如用户18等目标的移动来控制。并且系统10可以提供用于示范与操作系统和 /或应用的任何可控制方面相关的姿势的视觉帮助。图2示出可在目标识别、分析及跟踪系统10中使用的捕捉设备20的示例实施例。 根据一示例实施例,捕捉设备20可被配置成经由任何合适的技术,包括例如飞行时间、结构化光、立体图像等来捕捉包括深度图像的带有深度信息的视频,该深度信息可包括深度值。根据一个实施例,捕捉设备20可将所计算的深度信息组织为“Z层”,或与从深度相机沿其视线延伸的Z轴垂直的层。如图2所示,捕捉设备20可包括图像相机组件22。根据一示例实施例,图像相机组件22可以是可捕捉场景的深度图像的深度相机或可捕捉来自该场景的色彩的RGB相机观。深度图像可包括被捕捉的场景的二维O-D)像素区域,其中2-D像素区域中的每一个像素都可以(例如以厘米、毫米等等为单位)表示来自相机的被捕捉的场景中的物体的长度。如图2所示,根据一示例实施例,图像相机组件22可包括可用于捕捉场景的深度图像的顶光组件对、三维(3-D)相机沈、和RGB相机观。例如,在飞行时间分析中,捕捉设备20的顶光组件M可以将红外光发射到场景上,然后,可以使用传感器(未示出),用例如三维相机沈和/或RGB相机观,来检测从场景中的一个或多个目标和物体的表面反向散射的光。在某些实施例中,可以使用脉冲红外光,使得可以测量出射光脉冲和相应的入射光脉冲之间的时间差并将其用于确定从捕捉设备20到场景中的目标或物体上的特定位置的物理距离。另外,在其他示例性实施例中,可将出射光波的相位与入射光波的相位进行比较来确定相移。然后可以使用该相移来确定从捕捉设备到目标或物体上的特定位置的物理距
根据另一示例实施例,可使用飞行时间分析,通过经由包括例如快门式光脉冲成像在内的各种技术来随时间分析反射光束的强度以间接地确定从捕捉设备20到目标或物体上的特定位置的物理距离。在另一示例实施例中,捕捉设备20可使用结构化光来捕捉深度信息。在该分析中,图案化光(即,被显示为例如网格图案或条纹图案的已知图案的光)可经由例如顶光组件M被投影到场景上。在落到场景中的一个或多个目标或物体的表面上时,作为响应, 图案可变形。图案的这种变形可由例如3-D相机沈和/或RGB相机观来捕捉,然后可被分析来确定从捕捉设备到目标或物体上的特定位置的物理距离。根据另一实施例,捕捉设备20可包括两个或更多个物理上分开的相机,这些相机可从不同角度查看场景来获得可被解析以生成深度信息的视觉立体数据。捕捉设备20还可包括话筒30。话筒30可包括可接收声音并将其转换成电信号的换能器或传感器。根据一个实施例,话筒30可以被用来减少目标识别、分析及跟踪系统10 中的捕捉设备20和计算环境12之间的帮助。另外,话筒30可用于接收也可由用户提供的音频信号,以控制可由计算环境12执行的诸如游戏应用、非游戏应用等应用。在示例实施例中,捕捉设备20还可以包括可与图像相机组件22进行可操作的通信的处理器32。处理器32可包括可执行指令的标准处理器、专用处理器、微处理器等,这些指令可包括用于接收深度图像的指令、用于确定合适的目标是否可被包括在深度图像中的指令、用于将合适的目标转换成该目标的骨架表示或模型的指令、或任何其他合适的指令。捕捉设备20还可以包括存储器组件34,该存储器组件34可以存储可以由处理器 32执行的指令、由3-D相机或RGB相机捕捉到的图像或图像的帧、或任何其他合适的信息、 图像等等。根据一个示例实施例,存储器组件34可包括随机存取存储器(RAM)、只读存储器 (ROM)、高速缓存、闪存、硬盘或任何其他合适的存储组件。如图2所示,在一个实施例中,存储器组件34可以是与图像捕捉组件22和处理器32进行通信的单独的组件。根据另一实施例,存储器组件34可被集成到处理器32和/或图像捕捉组件22中。如图2所示,捕捉设备20可经由通信链路36与计算环境12进行通信。通信链路36可以是包括例如USB连接、火线连接、以太网电缆连接等的有线连接和/或诸如无线 802. lib,802. llg、802. Ila或802. Iln连接等的无线连接。根据一个实施例,计算环境12 可以经由通信链路36向捕捉设备20提供时钟,可以使用该时钟来确定何时捕捉例如场景。另外,捕捉设备20可以通过通信链路36向计算环境12提供深度信息和由例如 3-D相机沈和/或RGB相机观捕捉到的图像,以及可以由捕捉设备20生成的骨架模型。 计算环境12然后可使用该骨架模型、深度信息和捕捉的图像来例如识别用户姿势以及作为响应来控制诸如游戏或文字处理程序等应用。例如,如图所示,在图2中,计算环境12可包括姿势识别引擎190和包含一个或多个姿势过滤器192的姿势库190。每一过滤器191可包括定义姿势以及该姿势的参数或元数据的信息。可以将由相机沈、观和设备20以骨架模型及与之相关联的移动的形式捕捉的数据与姿势库192中的姿势过滤器进行比较,以标识(如由骨架模型所表示的)用户何时执行了一个或多个姿势。 对诸如过滤器191等过滤器的输入可包括诸如关于用户的关节位置的关节数据,像在关节处相交的骨所形成的角度、来自场景的RGB色彩数据、以及用户的某一方面的变化速率等内容。
例如,包括一只手从身体背后到身体前方的运动的投掷可被实现为包括表示用户的一只手从身体背后到身体前方的移动的信息的姿势过滤器,该移动将由深度相机来捕捉。来自该场景的图像数据也可以从RGB相机来捕捉。如所提到的,可为姿势设置参数。在姿势是投掷的情况下,参数可以是该手必须达到的阈值速度、该手必须行进的距离(绝对的,或相对于用户的整体大小)、以及识别器引擎对发生了该姿势的置信评级。用于姿势的这些参数可以随时间在各应用之间、在单个应用的各上下文之间、或在一个应用的一个上下文内变化。来自过滤器191的输出可包括诸如正作出给定姿势的置信度、作出姿势运动的速度、以及作出姿势运动的时间等内容。这些姿势可与应用的各种控制相关联。因此,计算环境12可使用姿势识别器引擎190来解释骨架模型的移动并基于该移动来控制应用。在实施例中,姿势过滤器包括算法,该算法接受关于用户的一个或多个数据作为输入,并且返回关于对应的姿势的一个或多个输出。例如,“用户身高”姿势过滤器算法可以将用户的骨架映射作为输入,处理该数据,并且返回由该算法计算出的用户身高的输出。计算环境12可包括处理器195,处理器195可处理深度图像来确定场景中有什么目标,如房间中的用户18或物体。这可例如通过将深度图像中共享相似距离值的像素分组在一起来实现。该图像也可被解析来产生用户的骨架表示,其中标识诸如关节和关节之间的组织等特征。存在骨架映射技术,其使用深度相机来捕捉个人,并从中确定该用户骨架上的多个点,手、腕、肘、膝、鼻、踝、肩的关节,以及骨盆与脊椎相交之处。其他技术包括将图像转换为人的人体模型表示以及将图像转换为人的网格模型表示。在一个实施例中,处理是在捕捉设备20本身上执行的,且深度和色彩(其中捕捉设备20包括3-D相机)值的原始图像数据经由链路36被发送到计算环境12。在另一实施例中,处理由耦合到相机402的处理器32来执行,然后经解析的图像数据被发送到计算环境12。在又一实施例中,原始图像数据和经解析的图像数据两者被发送到计算环境12。计算环境12可接收经解析的图像,但是它仍可接收原始数据来执行当前过程或应用。例如, 如果场景的图像通过计算机网络发送到另一用户,则计算环境12可发送供另一计算环境处理的原始数据。计算环境12可使用姿势库192来解释骨架模型的移动并基于该移动来控制应用。 计算环境12可对用户的表示进行建模和显示,例如采用诸如显示设备194之类的显示器上的化身或指针的形式。显示设备194可包括计算机监视器、电视机屏幕、或任何合适的显示设备。例如,相机控制的计算机系统可捕捉用户图像数据,并在电视机屏幕上显示映射到用户的姿势的用户帮助。用户帮助可被显示为屏幕上的化身,如图IA和IB中所示。视觉帮助库193可包括与一组姿势的视觉帮助相关的信息。视觉帮助库193可以向显示设备194提供用以显示指导性姿势数据的视觉表示的信息。例如,显示设备可以显示可示范姿势的骨架表示、重影图像、或玩家化身。如在下文更详细地描述的,图7A-7D示出用户帮助和包括指导性姿势数据的视觉帮助两者,这两者是并排示出的。图8A示出叠加在用户的姿势的视觉表示之上的视觉帮助的示例显示。图8B示出包括姿势的示范的视觉帮助的示例显示。图9示出用于进入练习模式以接收视觉帮助的选项的示例显示。图10 示出通过网络连接进行交互的远程用户,其中一个用户向第二用户提供实况视觉帮助。各种事件都可以触发用于姿势示范的视觉帮助的显示。该系统可以检测用户运动
9中的错误,用户运动可能不与已识别的姿势相对应,用户可以请求练习来学习特定姿势等。 对用户运动的分析可以触发应用向用户提供视觉帮助,或提供查看视觉帮助的选项,以教导例如用于该应用所识别的投掷姿势的正确运动。如上所述,视觉帮助可以是示范例如正确的举手过肩投掷姿势的骨架表示的形式。用于该姿势的这些参数和错误标识符可以随时间在各应用之间、在单个应用的各上下文之间、或在一个应用的一个上下文内变化。可以提供视觉帮助信息来用于练习、校正、修改、或教导用户在物理空间中正确地移动以触发特定运动,或正确地移动来在应用中成功。例如,用户可能正在玩拳击游戏。计算环境12可以标识适用于正在执行的应用的姿势,如上勾拳,并指导显示设备194来提供包括如何执行该上勾拳的指示的视觉帮助。视觉帮助可以是屏幕上的示范该上勾拳的正确运动的化身。姿势库192中的可识别、跟踪、或标识姿势的姿势过滤器191还可标识何时应当提供视觉帮助。例如,当姿势是举手过肩投掷时,相机26J8和设备20以骨架模型为形式来捕捉的数据以及与它相关联的移动可以与姿势库192中的姿势过滤器进行比较。过滤器的输出可以是标识出用户(如由骨架模型所表示的)正在执行举手过肩投掷姿势。包括一只手从身体背后到身体前方的运动的举手过肩投掷可被实现为包括表示用户的一只手从身体背后到身体前方的移动的信息的姿势过滤器,该移动将由深度相机来捕捉。用户的姿势与过滤器中为举手过肩投掷姿势所设置的参数之间的差异可以指示用户姿势中的失败,并触发进入练习模式来教导用户正确的运动。基于过滤器参数检测到所标识的姿势中的错误或变化可触发视觉帮助的显示。可为举手过肩投掷设置帮助标识用户姿势中的错误的各参数。例如,该系统可以是正在执行棒球游戏的应用。举手过肩投掷姿势可以将用户手臂应当在其中移动的空间体作为参数。如果姿势过滤器191在所标识的举手过肩投掷运动中标识出用户的手臂移出该空间体之外,则这可指示用户运动中的错误而非转变到不同姿势。该应用可能在期待举手过肩投掷姿势,因为该游戏正处于用户向击球手投球的时刻。未能将用户的姿势识别为预期举手过肩投掷姿势可触发视觉帮助的显示。 姿势过滤器可能不再能将该姿势识别为举手过肩投掷姿势,因为该运动不再满足举手过肩投掷的参数,而是改为满足不同姿势的过滤器参数,如手不过肩投掷运动。不同姿势之间的非预期转变可触发视觉帮助的显示。如所提到的,可为姿势设置参数。例如,在姿势是投掷的情况下,参数可以是该手必须达到的阈值速度、该手必须行进的距离(绝对的,或相对于用户的整体大小)、以及识别器引擎对发生了该姿势的置信评级。可为指示用户注释中的错误的各参数设置各种阈值和范围。例如,取决于用户的技能水平,用户手臂应当通过的空间体的大小可以变化。与每一姿势相对应的参数可以基于用户的表现、正在执行的应用、上下文、技能水平等而变化。例如,“新手”技能水平的举手过肩橄榄球投掷的参数可包括手可通过的较大空间体,使得该系统将举手过肩投掷与该姿势进行关联并相应地处理它。通过改变与一姿势相关联的特定参数,该系统可以适应具有较少经验的玩家。若干可能的姿势可以对应于该用户的姿势。例如,在物理空间中测量到的用户姿势可以满足若干过滤器的准则,每一过滤器包括可能姿势的参数。表示测量到的姿势的数据与可能姿势的过滤器参数之间的差异可以指示测量到的姿势的执行中的失败。如果表示用户姿势的数据不与可能姿势的任何过滤器参数相对应,则用户可能没有正确地执行该姿势,因为它与正在执行的应用相关。如果用户的姿势未被注册为各可能姿势之一,则为该用户触发练习会话是合乎需要的。如果用户的姿势不与任何过滤器数据相对应,则该系统可以预测该用户姿势的意图。该系统可以基于在当时什么姿势将适用于正在执行的应用来预测预期姿势。该预测可以基于表示测量到的姿势的数据与过滤器参数之间的比较并标识带有最接近地匹配测量到的姿势数据的姿势。表示测量到的姿势的数据与可能姿势的过滤器参数之间的差异可以指示测量到的姿势的执行中的失败。该差异可以与阈值接受水平进行比较,其中低于该阈值的差异量可以触发带有指导性姿势数据的视觉帮助。阈值接受水平可以与置信度评级相关。如上所述,来自过滤器的输出可包括诸如正在作出给定姿势的置信度等事物。低置信度评级可以是用户没有正确地作出姿势的指示。阈值接受水平可以基于置信度评级来设置。例如,如果姿势被姿势识别器引擎标识为举手过肩投掷,而置信度评级是低的,则该系统可以触发具有指导性姿势数据的视觉帮助的显示。或者,该系统可能需要高置信度评级以使得存在用户正在尝试特定姿势的较高置信度。在表示测量到的姿势的数据与过滤器参数之间的差异低于阈值接受水平时,视觉帮助可以触发。阈值接受水平可以是为特定过滤器参数设置的值。表示一姿势的过滤器的每一参数可具有阈值接受水平。阈值接受水平可以是单个阈值或可接受的值范围。如果对用户的测量到的姿势的测量不满足阈值水平或未落在可接受范围内,则显示包括指导性姿势数据的视觉帮助是合乎需要的。例如,举手过肩投掷的阈值接受水平(在它适用于棒球游戏中的投球运动时)可被设为速度等于25mph。因此,如果用户的姿势被标识为举手过肩投掷, 则举手过肩投掷的过滤器的速度参数可以与用户的测量到的姿势的速度进行比较。如果用户的测量到的速度不满足25mph,则这可触发视觉帮助的显示,以教导用户如何正确地作运动来达到正确速度。取决于上下文、用户、基于姿势的系统、用户的历史数据、应用的历史数据、改进的身份等,阈值接受水平可被设置、修改、或改变。阈值水平可以是与优选参数的或与关联于可能姿势的参数值范围的可接受的差异量。阈值接受水平的值可以基于用户的表现、正在执行的应用、上下文、技能水平等。阈值接受水平可以基于特定姿势的单个过滤器参数或多个过滤器参数。类似地,该系统可以适应一姿势的阈值接受水平。例如,阈值水平可以随时间被修改,例如由用户、该系统或应用改变。过滤器参数和阈值接受水平可被设置成使得视觉帮助的触发不会过度或根据用户偏好。例如,一些用户可能不想要任何练习帮助或用户可能不想要因练习会话而中断正在执行的应用,而是改为选择用于指导目的的练习模式。并非在每次存在与姿势的过滤器数据的差异时都触发视觉帮助,该系统可以基于各种触发来确定是否显示指导性姿势数据。过滤器参数和用于错误标识的阈值接受水平可被修改,使得视觉帮助只在有用的时刻触发。例如,在提供帮助之前,举手过肩投掷的姿势可能需要被识别X次。因此,该系统可以监视用户的运动,并且不给出帮助直至不正确或有变化的运动做了特定次数为止。这样,如果作出了一次失误的投掷,它不触发。但是,如果该程序标识出用户可以改变的一些事物,则即使用户成功执行了该姿势,该系统也可提供用于练习的选项。例如,在标识出了用户的举手过肩投掷的情况下,该系统可以标识对用户的较低身体的改变可以产生更大速度,或用户的击球完成运动中的改变会产生曲线球运动。在没有经验的用户或新手用户在玩投掷游戏的情况下,定义空间体的过滤器参数可以较大,从而在触发该姿势的视觉帮助之前允许较大的错误余量。在用户没有满足特定技能水平时,该用户还可请求提供视觉帮助。用户可以请求视觉帮助来帮助达到更高的技能水平。取决于用户的技能水平,参数的阈值可以改变。例如,对于新手玩家而言,出拳或举手过肩投掷的空间体可具有更大的可接受错误余量。因此,取决于应用的参数、用户所选择的设置、该应用可用的练习类型等,进入练习模式的触发或提供视觉帮助的触发会改变。视觉帮助库193可包括提供对存储的访问权并处理用于对姿势进行示范的视觉帮助信息的各模块。视觉帮助可以专用于应用、用户、或特定姿势。一些姿势适用于特定应用,其中另一应用中的同一姿势造成不同的控制。例如,在一个应用中,挥手可以是表示飞翔的姿势;在另一应用中,抬起双臂并缓慢地来回摆动可以是表示飞翔的姿势。与视觉帮助库193中的视觉反馈相关的信息可以采取任何合适的形式。在一示例实施例中,视觉帮助是预记录内容的形式,即这一内容是在使用该内容之前的一阶段期间记录的内容。预记录内容模块196可以记录或存储支持显示姿势的示范的预记录内容,如与一姿势相关的预记录音频或视频。预记录内容模块196可以提供用于连接到网络并从远程服务器或经由联网用户的计算环境来接收预记录姿势信息的技术。预记录内容模块196 可以处理预记录内容来提供该姿势的视觉帮助,如通过显示示范该姿势的骨架表示、重影图像、或玩家化身。预记录内容可以专用于应用、用户、姿势,或预记录内容可以适用于各应用或适用于各用户的组合。预记录内容可以是打包在特定应用的视觉帮助库193中的姿势信息。例如,如果应用是网球游戏应用,则该应用可包括具有用于显示网球相关姿势的预记录姿势信息的视觉帮助库。预记录内容可包括用户记录的内容,其中用户选择记录他或她自己的姿势以用于审阅或稍后使用。例如,用户可能在网球游戏中成功作出特定运动并记录它,使得该用户稍后可以访问该预记录内容以查看该预记录姿势。用户随后可以查看他或她自己的用于用户已经在过去成功了的姿势的示范的预记录姿势。用户可以记录该系统可用于向没有经验的用户示范姿势的姿势内容。例如,父母可以记录他或她自己的成功的姿势以供孩子回顾。该孩子稍后可以查看并使用该预记录姿势练习,以学习要在物理空间中作出的正确运动。在另一示例实施例中,视觉帮助是实况内容的形式,即与提供一姿势的实时视觉帮助相关的任何信息。实时显示指的是姿势的视觉表示的显示或视觉帮助的显示,其中该显示与该姿势在物理空间中的执行同时或几乎同时显示。对实时的引用包括执行,其中无关紧要的处理延迟造成最小的显示延迟或者对用户而言根本不可见。因此,实时包括与被自动数据处理所需的时间延迟了的数据的及时性有关的任何无关紧要的延迟。实况内容模块197可以提供用于接收、处理、以及传送实况内容的技术。例如,实况内容模块197可以提供用于连接到网络并从远程服务器或从联网用户的计算环境来接收包含姿势信息的实况馈源的技术。实况内容模块197可以处理包含姿势信息的实况馈源,以实时显示姿势的示范。例如,远程用户可以示范一姿势,其中与该远程用户的姿势相关的信息通过网络传送并由本地用户的计算环境接收。本地计算环境可以处理该实况馈
12源,如经由实况内容模块,并且向本地用户实时地显示视觉帮助。视觉帮助可以是用户的姿势的重放或实况表示,经由该用户的视觉表示来表示。实况内容模块197可以用任何合适的方式来显示视觉帮助,如通过显示示范该姿势的骨架表示、重影图像、或玩家化身。实况内容可以专用于应用或用户,或实况内容可以适用于各应用或适用于各用户的组合。例如,对于特定应用,可以从远程计算环境访问实况顾客支持,其中实况顾客支持提供姿势信息的实况馈源。实况内容模块197可以接收实况馈源并在用户作出姿势时向用户实时地提供表示该姿势的视觉帮助。在实况帮助的另一示例中,用户可以远程地连接或联网,使得多个用户可以经由他们各自的计算环境来进行交互。第一用户可以识别出位于第一用户的远处的第二用户正在不正确地执行姿势。第一用户可以经由网络连接向该用户提供该姿势的示范。第二用户的计算环境例如经由实况内容模块197接收与所示范的姿势相关的信息并向第二用户提供视觉帮助。因此,第一用户可以向第二用户提供实况姿势信息以帮助第二用户学习要在物理空间中作出的正确运动。姿势识别引擎192、姿势库190、以及视觉帮助库193可以用硬件、软件或两者的组合来实现。例如,姿势识别引擎192、姿势库190以及视觉帮助库193可被实现为在计算环境的诸如处理器195等处理器上、捕捉设备20的处理器32上、图3的处理单元101上、或图4的处理单元259上执行的软件。要强调的是,图2-4中描绘的框图是示例性的,且不旨在暗示一具体实现。由此, 图1的处理器195或32、图3的处理单元101和图4的处理单元259可被实现为单个处理器或多个处理器。多个处理器可以分布式或集中式地定位。例如,姿势识别引擎190可被实现为在捕捉设备的处理器32上执行的软件,而姿势库和视觉帮助库193可被实现为在计算环境中的处理器195上执行的软件。构想了适用于执行此处公开的技术的处理器的任意组合。多个处理器可无线地、经由硬连线、或以其组合来通信。图2分开描绘了捕捉设备20和计算环境12,但构想了包括任何数量的设备的系统可以执行图2所示的功能。例如,该计算环境可以合并到捕捉设备20中,使得捕捉设备可以担当具有一个或多个处理器的单个单元。因此,尽管在本文中计算环境12和捕捉设备20 被分开描述,但这是出于说明的目的。可以使用能执行所公开的技术的任何合适的设备、系统、或设备和系统的组合。图3示出可用于实现图2的计算环境12来解释目标识别、分析及跟踪系统中的一个或多个姿势的计算环境的示例实施例。如图3所示,该计算环境可以是诸如游戏控制台等多媒体控制台100。还如图3所示,多媒体控制台100具有含有一级高速缓存102、二级高速缓存104和闪存ROM(只读存储器)106的中央处理单元(CPU) 101。一级高速缓存102 和二级高速缓存104临时存储数据并因此减少存储器访问周期数,由此改进处理速度和吞吐量。CPU 101可以设置成具有一个以上的内核,以及由此的附加的一级和二级高速缓存 102和104。闪存ROM 106可存储在多媒体控制台100通电时引导过程的初始阶段期间加载的可执行代码。图形处理单元(GPU) 108和视频编码器/视频编解码器(编码器/解码器)114形成用于高速和高分辨率图形处理的视频处理流水线。经由总线从图形处理单元108向视频编码器/视频编解码器114运送数据。视频处理流水线向A/V(音频/视频)端口 140输
13出数据,用于传输至电视或其他显示器。存储器控制器110连接到GPU 108以方便处理器访问各种类型的存储器112,诸如但不局限于RAM(随机存取存储器)。多媒体控制台100包括较佳地在模块118上实现的I/O控制器120、系统管理控制器122、音频处理单元123、网络接口控制器124、第一 USB主控制器126、第二 USB控制器 1 和前面板I/O子部件130。USB控制器126和1 用作外围控制器142⑴-142 O)、无线适配器148、和外置存储器设备146 (例如闪存、外置⑶/DVD ROM驱动器、可移动介质等) 的主机。网络接口 1 和/或无线适配器148提供对网络(例如,因特网、家庭网络等)的访问并且可以是包括以太网卡、调制解调器、蓝牙模块、电缆调制解调器等的各种不同的有线或无线适配器组件中任何一种。提供系统存储器143来存储在引导过程期间加载的应用数据。提供媒体驱动器 144,且其可包括DVD/⑶驱动器、硬盘驱动器、或其他可移动媒体驱动器等。媒体驱动器144 可以是对多媒体控制器100内置的或外置的。应用数据可经由媒体驱动器144访问,以由多媒体控制台100执行、回放等。介质驱动器144经由诸如串行ATA总线或其他高速连接 (例如IEEE 1394)等总线连接到I/O控制器120。系统管理控制器122提供涉及确保多媒体控制台100的可用性的各种服务功能。 音频处理单元123和音频编解码器132形成具有高保真度和立体声处理的对应的音频处理流水线。音频数据经由通信链路在音频处理单元123与音频编解码器132之间传输。音频处理流水线将数据输出到A/V端口 140以供外置音频播放器或具有音频能力的设备再现。前面板I/O子部件130支持暴露在多媒体控制台100的外表面上的电源按钮150 和弹出按钮152以及任何LED(发光二极管)或其他指示器的功能。系统供电模块136向多媒体控制台100的组件供电。风扇138冷却多媒体控制台100内的电路。CPU 101、GPU 108、存储器控制器110、和多媒体控制台100内的各个其他组件经由一条或多条总线互连,包括串行和并行总线、存储器总线、外围总线、和使用各种总线架构中任一种的处理器或局部总线。作为示例,这些架构可以包括外围部件互连(PCI)总线、 PCI-Express 总线等。当多媒体控制台100通电时,应用数据可从系统存储器143加载到存储器112和/ 或高速缓存102、104中并在CPU 101上执行。应用可呈现在导航到多媒体控制台100上可用的不同媒体类型时提供一致的用户体验的图形用户界面。在操作中,媒体驱动器144中包含的应用和/或其他媒体可从媒体驱动器144启动或播放,以向多媒体控制台100提供附加功能。多媒体控制台100可通过将该系统简单地连接到电视机或其他显示器而作为独立系统来操作。在该独立模式中,多媒体控制台100允许一个或多个用户与该系统交互、看电影、或听音乐。然而,随着通过网络接口 1 或无线适配器148可用的宽带连接的集成, 多媒体控制台100还可作为较大网络社区中的参与者来操作。当多媒体控制台100通电时,可以保留设定量的硬件资源以供多媒体控制台操作系统作系统使用。这些资源可以包括存储器保留量(例如,16MB)、CPU和GPU周期保留量 (例如,5% )、网络带宽保留量(例如,SlAs)等。因为这些资源是在系统引导时保留的,所以所保留的资源从应用的角度而言是不存在的。具体而言,存储器保留优选地足够大,以包含启动内核、并发系统应用和驱动。CPU保留优选地为恒定,使得若所保留的CPU用量不被系统应用使用,则空闲线程将消耗任何未使用的周期。对于GPU保留,通过使用GPU中断来调度代码以将弹出窗口呈现为覆盖图,显示由系统应用生成的轻量消息(例如,弹出窗口)。覆盖图所需的存储器量取决于覆盖区域大小,并且覆盖图优选地与屏幕分辨率成比例缩放。在并发系统应用使用完整用户界面的情况下,优选使用独立于应用分辨率的分辨率。定标器可用于设置该分辨率,从而无需改变频率并引起TV重新同步。在多媒体控制台100引导且系统资源被保留之后,就执行并发系统应用来提供系统功能。系统功能被封装在上述所保留的系统资源中执行的一组系统应用中。操作系统内核标识是系统应用线程而非游戏应用线程的线程。系统应用优选地被调度为在预定时间并以预定时间间隔在CPU 101上运行,以便为应用提供一致的系统资源视图。进行调度是为了把由在控制台上运行的游戏应用所引起的高速缓存中断最小化。当并发系统应用需要音频时,则由于时间敏感性而将音频处理异步地调度给游戏应用。多媒体控制台应用管理器(如下所述)在系统应用活动时控制游戏应用的音频水平 (例如,静音、衰减)。输入设备(例如,控制器142(1)和142( )由游戏应用和系统应用共享。输入设备不是保留资源,而是在系统应用和游戏应用之间切换以使其各自具有设备的焦点。应用管理器较佳地控制输入流的切换,而无需知晓游戏应用的知识,并且驱动维护有关焦点切换的状态信息。相机26J8和捕捉设备20可为控制台100定义额外的输入设备。图4示出了计算环境220的另一示例实施例,该计算环境可被用于实现图1A-2中所示的用于解释目标识别、分析及跟踪系统中的一个或多个姿势的计算环境12。计算系统环境220只是合适的计算环境的一个示例,并且不旨在对所公开的主题的使用范围或功能提出任何限制。也不应该将计算环境220解释为对示例性操作环境220中示出的任一组件或其组合有任何依赖性或要求。在某些实施例中,所描绘的各种计算元素可包括被配置成实例化本发明的各具体方面的电路。例如,本公开中使用的术语电路可包括被配置成通过固件或开关来执行功能的专用硬件组件。其他示例中,术语电路可包括由实施可用于执行功能的逻辑的软件指令配置的通用处理单元、存储器等。在电路包括硬件和软件的组合的示例实施例中,实施者可以编写体现逻辑的源代码,且源代码可以被编译为可以由通用处理单元处理的机器可读代码。因为本领域技术人员可以明白现有技术已经进化到硬件、软件或硬件/软件组合之间几乎没有差别的地步,因而选择硬件或是软件来实现具体功能是留给实现者的设计选择。更具体地,本领域技术人员可以明白软件进程可被变换成等价的硬件结构,而硬件结构本身可被变换成等价的软件进程。因此,对于硬件实现还是软件实现的选择是设计选择并留给实现者。在图4中,计算环境220包括计算机Ml,计算机241通常包括各种计算机可读介质。计算机可读介质可以是能由计算机241访问的任何可用介质,而且包含易失性和非易失性介质、可移动和不可移动介质。系统存储器222包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM) 223和随机存取存储器(RAM06O。基本输入/输出系统224 (BIOS)包含诸如在启动期间帮助在计算机Ml内的元件之间传输信息的基本例程,基本输入/输出系统224¢10 通常储存储在ROM 223中。RAM 260通常包含处理单元259可立即访问和/或目前正在由处理单元操作的数据和/或程序模块。作为示例而非限制,图4示出了操作系统225、应用程序226、其他程序模块227和程序数据228。计算机241也可以包括其他可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图4示出了从不可移动、非易失性磁介质中读取或向其写入的硬盘驱动器 238,从可移动、非易失性磁盘2M中读取或向其写入的磁盘驱动器239,以及从诸如⑶ROM 或其他光学介质等可移动、非易失性光盘253中读取或向其写入的光盘驱动器M0。可在示例性操作环境中使用的其他可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器 238通常由例如接口 234等不可移动存储器接口连接至系统总线221,而磁盘驱动器239和光盘驱动器240通常由例如接口 235等可移动存储器接口连接至系统总线221。以上讨论并在图4中示出的驱动器及其相关联的计算机存储介质为计算机241提供了对计算机可读指令、数据结构、程序模块和其他数据的存储。在图4中,例如,硬盘驱动器238被示为存储操作系统258、应用程序257、其他程序模块256和程序数据255。注意, 这些组件可以与操作系统225、应用程序226、其他程序模块227和程序数据2 相同,也可以与它们不同。在此操作系统258、应用程序257、其他程序模块256以及程序数据255在此被给予了不同的编号,以说明至少它们是不同的副本。用户可以通过输入设备,诸如键盘 251和定点设备252(通常指的是鼠标、跟踪球或触摸垫)向计算机241输入命令和信息。 其他输入设备(未示出)可包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。这些和其他输入设备通常通过耦合至系统总线的用户输入接口 236连接至处理单元259,但也可以由其他接口和总线结构,例如并行端口、游戏端口或通用串行总线(USB)来连接。相机 26,28和捕捉设备20可为控制台100定义额外的输入设备。监视器242或其他类型的显示设备也通过诸如视频接口 232之类的接口连接至系统总线221。除监视器之外,计算机还可以包括可以通过输出外围接口 233连接的诸如扬声器244和打印机243之类的其他外围输出设备。计算机241可以使用到一个或多个远程计算机(如远程计算机M6)的逻辑连接, 以在联网环境中操作。远程计算机246可以是个人计算机、服务器、路由器、网络PC、对等设备或其他常见网络节点,并且通常包括许多或所有以上关于计算机241所描述的元件, 但在图4中仅示出了存储器存储设备M7。图2中所描绘的逻辑连接包括局域网(LAN) 245 和广域网(WAN) M9,但还可包括其他网络。这些联网环境在办公室、企业范围计算机网络、 内联网和因特网中是常见的。当用于LAN网络环境中时,计算机241通过网络接口或适配器237连接到LAN 2450当在WAN联网环境中使用时,计算机241通常包括调制解调器250或用于通过诸如因特网等WAN 249建立通信的其他手段。调制解调器250,可以是内置的或外置的,可以经由用户输入接口 236或其他适当的机制,连接到系统总线221。在联网环境中,相对于计算机 241所描述的程序模块或其部分可被存储在远程存储器存储设备中。作为示例而非限制, 图4示出了远程应用程序248驻留在存储器设备247上。应当理解,所示的网络连接是示例性的,并且可使用在计算机之间建立通信链路的其他手段。上述计算机可读存储介质上可存储有用于扫描所捕捉场景中的人的指令。该计算机可执行指令可包括用于接收物理空间的深度图像以及呈现表示一姿势的指导性姿势数据的视觉帮助的指令,其中该深度图像包括表示该姿势的数据。上述计算机可读存储介质上可存储有用于确定是否提供指导性数据的指令。这些指令可包括接收一场景的图像数据 (其中该图像数据包括该姿势的表示),将表示该姿势的数据与姿势过滤器的至少一个输出进行比较,检测表示该姿势的数据与姿势过滤器的该至少一个输出之间的差异(其中该差异指示该姿势的执行中的失败),以及基于该差异来确定是否提供指导性姿势数据。图5A描绘了可从捕捉设备20生成的用户的示例骨架映射。在该实施例中,标识出各个关节和骨骼每一手502、每一前臂504、每一肘506、每一二头肌508、每一肩510、每一髋512、每一大腿514、每一膝516、每一小腿518、每一足520、头522、躯干524、脊椎的顶部5 和底部528,以及腰530。在跟踪更多点的情况下,可标识出附加的特征,比如手指或脚趾的骨骼和关节,或脸部的各个特征,如鼻和眼。用户可通过移动他的身体创建姿势。姿势包括用户的运动或姿态,其可被捕捉为图像数据并解析其意义。姿势可以是动态的,包括运动,如模仿投球。姿势可以是静态姿态, 如在一个人的躯干5M前面交叉握住他的前臂504。姿势可以是单个移动(例如,跳跃)或连续的姿势(例如,驾驶),并且在持续时间上可短可长(例如,驾驶20分钟)。姿势也可结合道具,如通过挥动仿制的剑。姿势可包括多于一个身体部位,如拍双手502,或是较微小的运动,如撅起一个人的嘴唇。用户的姿势可用作一般计算上下文中的输入。例如,手502或其他身体部位的各种运动可对应于常见的系统级任务,如在分层列表中向上或向下导航、打开文件、关闭文件和保存文件。例如,用户能以手指向上指且掌心面向捕捉设备20来使他的手保持不动。他然后可以将手指朝向手掌收拢来形成拳头,并且这可以是指示基于窗口的用户界面计算环境中的焦点窗口应被关闭的姿势。姿势也可在视频游戏专用上下文中取决于游戏来使用。 例如,对于驾驶游戏,手502和脚520的各种运动可对应于在一方向上操控车辆、换挡、加速和刹车。由此,姿势可指示映射到所显示的用户表示的、在诸如视频游戏、文本编辑器、文字处理、数据管理等各种各样应用中的各种各样的运动。用户可通过自己在原地行走或奔跑来生成对应于行走或奔跑的姿势。例如,用户可另选地提起并放下每一腿512-520来在不移动的情况下模拟行走。系统可通过分析每一髋512和每一大腿514来解析该姿势。当一个髋部-大腿角(如相对于垂直线测量的,其中站立的腿具有0°的髋部-大腿角,而向前水平伸展的腿具有90°的髋部-大腿角)超过相对于另一大腿的特定阈值时,可识别一步。行走或奔跑可在交替腿的某一数量的连续步之后被识别。两个最近的步之间的时间可被认为是一周期。在不满足阈值角度达某一数量的周期之后,系统可确定行走或奔跑姿势已停止。给定“行走或奔跑”姿势,应用可为与该姿势相关联的参数设定值。这些参数可包括上述阈值角度、发起行走或奔跑姿势所需的步数、结束姿势的没有发生步的周期数、以及确定姿势是行走还是奔跑的阈值周期。快周期可对应于奔跑,因为用户将快速地移动他的腿,而较慢的周期可对应于行走。姿势最初可以与一组默认参数相关联,应用可用其自己的参数来覆盖该组默认参数。在这一场景中,不迫使应用提供参数,而是应用可改为使用一组允许在没有应用定义的参数的情况下识别姿势的默认参数。与姿势有关的信息可被存储用于预录制的姿势动画的目的。
17
有各种可以与姿势相关联的输出。可以有关于姿势是否正在发生的基线“是或否”。还可以有置信度水平,其对应于用户跟踪的移动对应于姿势的可能性。这可以是范围为0和1之间(包括端点)的浮点数的线性标度。在接收该姿势信息的应用不能接受假肯定作为输入的应用中,它可仅使用具有高置信度水平,如至少0.95的已识别的姿势。在应用必须识别姿势的每一实例的情况下,即使以假肯定为代价,它可使用至少具有低得多的置信度水平的姿势,如仅仅大于0. 2的那些姿势。姿势可具有在两个最近步之间的时间的输出,并且在仅注册了第一步的情况下,这可被设为保留值,如-1(因为任何两步之间的时间必须为正)。姿势也可具有关于在最近一步期间达到的最高大腿角的输出。另一示例性姿势是“脚跟提起跳”。在该姿势中,用户可通过将他的脚跟提离地面, 但保持他的脚趾着地来创建该姿势。另选地,用户可跳向空中,其中他的脚520完全离开地面。该系统可通过分析肩510、髋512和膝516的角度关系来解析该姿势的骨架,以查看它们是否是等于直立的对齐位置。然后,可监视这些点和较高5 和较低5 脊椎点来发现任何向上加速。足够的加速组合可触发跳跃姿势。加速度与某一姿势的足够的组合可满足转变点的参数。给定该“脚跟提起跳”姿势,应用可为与该姿势相关联的参数设定值。参数可包括上述加速阈值,其确定用户的肩510、髋512和膝516的某种组合必须向上移动多快来触发该姿势;以及肩510、髋512和膝516之间仍可触发跳跃的最大对齐角。输出可包括置信度水平,以及用户在跳跃时的身体角度。基于将接收姿势的应用的细节来为姿势设定参数对于准确地标识姿势而言是重要的。正确地标识姿势以及用户的意图极大地有助于创建积极的用户体验。应用可以为与各种转变点相关联的参数设置值来标识使用预录制的动画的点。转变点可由各种参数来定义,如某一姿势的标识、速度、目标或物体的角度、或其任何组合。如果转变点至少部分地由某一姿势的标识来定义,则正确地标识姿势有助于提高转变点的参数已被满足的置信水平。对于姿势的另一参数可以是移动的距离。在用户的姿势控制虚拟环境中的化身的动作的情况下,该化身可以是手臂离球的长度。如果用户希望与该球交互并抓住它,则这可要求用户伸展他的手臂502-510到全长同时作出抓握姿势。在这一情形中,用户仅部分地伸展他的手臂502-510的类似的抓握姿势可能无法达到与球交互的结果。类似地,转变点的参数可以是对抓握姿势的标识,其中如果用户仅部分地伸展他的手臂502-510,从而没有实现与球交互的结果,则用户的姿势将不满足转变点的参数。姿势或其一部分可将它必须在其中发生的空间体作为参数。在姿势包括身体移动的情况下,该空间体通常可相对于身体来表达。例如,对于惯用右手的用户的美式足球投掷姿势可仅在不低于右肩510a、且与投掷手臂5(^a-310a在头522的相同侧的空间体中识别。可能不必要定义空间体的所有边界,如对于该投掷姿势,其中从身体向外的边界留着不被定义,并且该空间体无限地向外延伸,或者延伸到正被监视的场景的边缘。图5B提供了图2的姿势识别器引擎190的一个示例性实施例的进一步细节。如图所示,姿势识别器引擎190可包括用于确定一个或多个姿势的至少一个过滤器518。过滤器518包括定义姿势526(以下称为“姿势”)的信息,并可包括用于该姿势的至少一个参数 5 或元数据。例如,包括一只手从身体背后越过身体前方的运动的投掷可被实现为包括表1示用户的一只手从身体背后越过身体前方的移动的信息的姿势526,该移动将由深度相机来捕捉。然后可为该姿势5 设定参数526。在姿势5 是投掷的情况下,参数5 可以是该手必须达到的阈值速度、该手必须行进的距离(绝对的,或相对于用户的整体大小)、以及识别器引擎对发生姿势的置信度评级。姿势528的这些参数5 可以在各应用之间、在单个应用的各上下文之间、或在一个应用的一个上下文内随着时间而变化。过滤器可以是模块化的或是可互换的。在一个实施例中,过滤器具有多个输入和多个输出,这些输入中的每一个具有一类型,这些输出中的每一个具有一类型。在这一情形中,第一过滤器可用具有与第一过滤器相同数量和类型的输入和输出的第二过滤器来替换而不更改识别器引擎体系结构的其他方面。例如,可能具有要驱动的第一过滤器,该第一过滤器将骨架数据作为输入,并输出与该过滤器相关联的姿势正在发生的置信度和转向角。 在希望用第二驱动过滤器来替换该第一驱动过滤器的情况下(这可能是因为第二驱动过滤器更高效且需要更少的处理资源),可以通过简单地用第二过滤器替换第一过滤器来这样做,只要第二过滤器具有同样的输入和输出——骨架数据类型的一个输入、以及置信度类型和角度类型的两个输出。过滤器不需要具有参数。例如,返回用户的高度的“用户高度”过滤器可能不允许可被调节的任何参数。替代的“用户高度”过滤器可具有可调节参数,比如在确定用户的高度时是否考虑用户的鞋、发型、头饰以及体态。对过滤器的输入可包括诸如关于用户的关节位置的关节数据,像在关节处相交的骨所形成的角度、来自场景的RGB色彩数据、以及用户的某一方面的变化速率等内容。来自过滤器的输出可包括诸如正作出给定姿势的置信度、作出姿势运动的速度、以及作出姿势运动的时间等内容。上下文可以是文化上下文,并且可以是环境上下文。文化上下文指的是使用系统的用户的文化。不同的文化可使用相似的姿势来赋予显著不同的含义。例如,希望叫另一个用户“看”或“使用他的眼睛”的美国用户可将他的食指放在他头上靠近他的眼睛的远端处。然而,对意大利用户而言,该姿势可被解释为对黑手党的引用。类似地,在单个应用的不同环境之中可能有不同的上下文。以涉及操作摩托车的第一人称射击游戏为例。当用户在走路时,将手指朝向地面握拳并向前且从身体向外伸出拳头可表示出拳姿势。当用户在驾驶上下文中时,相同的运动可表示“换挡”姿势。可能还有一个或多个菜单环境,其中用户可保存他的游戏、在他的人物装备之间选择或执行类似的不包括直接玩游戏的动作。在该环境中,该游戏姿势可具有第三个含义,如选择某样东西或前进到另一屏幕。过滤器可以并排运行,并且多个过滤器可寻找相同的事物但不同的执行。因而,取决于可定义姿势的运动的排列,过滤器的数量可以增加。例如,曲线球可以是举手过肩姿势,但随后玩家更喜欢手不过肩地投球(当他们这样做很成功的情况下)。姿势识别器引擎190可具有向姿势过滤器516提供功能的基础识别器引擎518。 在一实施例中,识别器引擎516实现的功能包括跟踪已识别的姿势和其他输入的随时间输入(input-over-time)存档、隐马尔可夫模型实现(其中模型化系统被假定为具有未知参数的马尔可夫过程一其中当前状态封装了确定将来状态所需的任何过去状态信息,因此不必为此目的而维护任何其它过去状态信息的过程,并且隐藏参数从可观察数据来确定)、以
19及求解姿势识别的特定实例所需的其他功能。过滤器518在基础识别器引擎516之上加载并实现,并且可利用引擎516提供给所有过滤器518的服务。在一实施例中,基础识别器引擎516处理所接收到的数据来确定它是否满足任何过滤器518的要求。由于这些诸如解析输入等所提供的服务是由基础识别器引擎516 —次性提供而非由每一过滤器518提供的,因此这一服务在一段时间内只需被处理一次而不是对该时间段对每一过滤器518处理一次,由此减少了确定姿势所需的处理。应用可使用姿势识别器引擎190所提供的过滤器518,或者它可提供其自己的过滤器518,该过滤器被插入到基础识别器引擎516中。在一实施例中,所有过滤器518具有启用该插入特性的通用接口。此外,所有过滤器518可利用参数528,因此可使用如下所述的单个姿势工具来诊断并调节整个过滤器系统518。这些参数5 可由姿势工具520为应用或应用的上下文来调节。在一实施例中, 姿势工具520包括多个滑块522以及身体524的图表示,每一滑块522对应于一参数528。 当用相应的滑块522来调整参数528时,身体5M可展示将用这些参数5 被识别为姿势的动作以及使用这些参数5 将不被识别为姿势的动作,如所标识的。姿势的参数528的这一可视化提供了调试并细化调节姿势的有效手段。在图6A-6C中所示的计算环境上执行的应用的示例是用户正在玩的拳击游戏。图 6A-6C表示用户在物理空间中的出拳姿势62a、62b、62c,其中用户的视觉表示64a、64b、64c 映射到物理空间中用户的运动。图6A-6C中的每一个示出在用户作出出拳姿势期间用户在三个离散的时间点在物理空间中的位置62a、62b、62c以及被显示在应用空间中的用户的视觉表示的示例64a、64b、64c。捕捉并显示图像数据帧的速率确定视觉表示的所显示的运动的连续性水平。虽然可以捕捉并显示附加图像数据帧,但图6A-6C中描绘的帧是出于示例性的目的来选择的。捕捉设备20可以捕捉、分析、并跟踪用户在物理空间中作出的运动,如用户的挥拳姿势62a、62b、62c。根据一示例实施例,捕捉设备20可被配置成捕捉带有深度信息的视频,包括场景的深度图像。捕捉设备20可以提供所捕捉的深度信息和图像以及可由捕捉设备20生成的骨架模型以供视听组件16显示。用户可以在诸如图6D中示出的电视机屏幕等视听设备16上查看该图像或用户的视觉表示64a。视听设备16可以提供用户可使用他或她的移动来控制的玩家化身的视觉表示 64a、64b、64c。用户的运动可映射到应用空间中的视觉表示,以在应用内执行一个或多个控制或动作。例如,可使用捕捉设备20来跟踪用户18,以使得可将用户18的姿势解释为可影响由该计算环境执行的应用的控制。在拳击游戏应用中,用户在物理空间中的挥拳运动形式的姿势62a、62b、62c控制视觉表示64a、64b、6k所作出的姿势,使得在游戏空间中发生出拳。因此,根据一示例实施例,目标识别、分析及跟踪系统10的计算环境和捕捉设备20 可用于识别和分析用户18在物理空间中的出拳,从而使得该出拳可被解释为对游戏空间中的玩家化身40的游戏控制。视觉表示可被映射到用户的姿势并相对于该姿势在物理空间中的执行来实时地显示。在一些情况下,提供表示用于教导用户如何正确地作出姿势的指导性姿势数据的视觉帮助是合乎需要的。指导性姿势数据可以教导用户如何正确地作出姿势来控制正在执行的应用。在一示例实施例中,计算环境或正在执行的应用可以标识用户的姿势中的错误并提供指导性姿势数据来突出显示这些错误。在另一示例实施例中,用户选择练习会话或进入练习模式来学习如何正确地作出姿势。图7A-C描绘用于作为化身来重放用户的姿势并与该化身并排显示指导性姿势数据的示例分屏屏幕截图。每一分屏的左侧呈现在用户挥拳姿势期间在三个离散的时间点的用户的姿势的视觉表示64a、64b、64c,如图6A-6C所示。每一分屏的右侧呈现表示与图像数据帧的每个64a、64b、6k相对应的指导性姿势数据74a、74b、7k的视觉帮助的示例实施例。图7D描绘来自图IA和IB的系统10的显示器部分,其示出用于显示分屏的示例实施例。在该示例中,图7A-7C中的每一个的左侧对应于由深度相机、并行RGB相机捕捉到的快照或图像数据帧,或对应于从这两种相机组合的图像。在分屏的右侧,该系统显示突出显示用户的姿势中的错误的视觉帮助。视觉帮助可以是正确运动的示范。例如,用户可以选择用于出拳的练习会话并且该系统可以启动教导该用户特定出拳的正确运动的交互式练习会话。该系统可以与视觉帮助一起显示用户的运动(实况或重放),从而突出显示用户的运动中的任何错误。各种显示技术突出显示用户的姿势中的错误。该帮助可以描绘用户的实际位置与理想位置之间的增量。例如,图7B和7C中的箭头指向化身的身体64a、64b、64c的表示用户在物理空间中的定位的一部分,从而示出在该时刻用户的定位与理想姿势位置74a、74b、7k之间的差异。该系统可以提供用于练习目的的视觉帮助,以示范用于控制该系统或正在执行的应用的适当运动。练习可以是用户主动选择进入的练习模式的一部分。用户也可以请求练习,如在用户首次执行应用时。各种事件都可以触发用于姿势示范的视觉帮助的显示。该系统可检测到用户运动中的错误或与预期运动的偏差。该系统可以标识该姿势中的可以被改进以在正在执行的应用中达到更高成功的用户定位区域。用户的姿势可不是与已识别姿势相对应的姿势,从而指示该用户不熟悉适用的姿势。该系统可预测用户的预期姿势,并提供用于训练该用户来正确地作出该姿势的选项。该系统可以识别没有经验的用户并提供练习。这些事件中的任一个可以触发包括指导性姿势数据的视觉帮助的显示。该系统或应用可包括练习模式和执行模式。作为诸如上述触发等触发的结果,可自动进入练习模式。例如,如果用户18在物理空间中挥出不与已识别姿势相对应的出拳, 则系统10可以中断该应用、进入练习模式、并向用户提供示范适当姿势的视觉帮助。该系统可通过评估用户在单个所捕捉的数据帧中或在一系列帧中的位置来标识用户运动中的错误。例如,该系统可将用户的姿势识别为上勾拳运动,由相对于用户的特定空间体内的移动来标识。该系统还可标识在模型图像数据帧中,用户没有在物理空间中正确地移动他们的手臂或对用户运动的改变可在拳击游戏中给出更大成功。该系统可以基于用户的测量到的姿势的某些参数来标识错误,如与理想速度范围的偏差或用户的测量到的姿势是否落在预期空间体之外。例如,棒球应用可以指令用户作出举手过肩投掷运动来向击球手投球。深度相机或RGB相机可以标识用户在物理空间中的运动的各方面,并且姿势过滤器191可以将该运动标识为处于投掷姿势类中。基于所监视的在用户的头部周围的空间体,各类投掷姿势的参数可以不同。举手过肩投掷可以是用户头部前方和后方但在用户的投掷肩之上的空间体。手不过肩投掷可以由用户腰部前方和后方的空间体来定义,该空间体在肩和用户的腰之间。姿势过滤器可以基于用户在物理空间中的运动的各参数来标识举手过肩投掷。由于在应用中执行的时间点(例如,用户处于棒球应用中的该用户被指令向击球手投球的时间点),姿势过滤器可能期望举手过肩投掷 (或尝试的举手过肩投掷)。与过滤器参数的偏差或未能满足阈值接受水平可触发视觉帮助的显示。包括指导性姿势数据的视觉帮助的显示可采取任何合适的形式。在该实施例中, 指导性姿势数据74a、74b、7k被显示为线条画表示,但构想了视觉表示可以采取任何合适的表示。例如,箭头或用户的视觉表示的突出显示的部分可以指示正确的姿势,如图7A-7D 所示。同样如图7A-7D所示,该显示可以是用户的姿势与理想姿势的并排表示。视觉帮助可以是重放的运动的形式(以捕捉速率、减缓速率、快速速率等)或被实时地显示。如图8A 所示,表示指导性姿势数据的图像可以重影或叠加在视觉表示之上。图7A-7C中的每一个的左侧可直接对应于深度相机和/或RGB相机捕捉到的快照或图像数据帧。所选择的各图像数据帧能以任何速度重放,并且能以运动的连续重放被查看或作为分开的屏幕捕捉来一次一帧地查看。图像数据帧能以与捕捉的每秒帧率相对应的速度来重放。诸如在图7A-7C中的每一个的右手侧上示出的指导性姿势数据等指导性姿势数据可以与在左侧上示出的图像数据帧相对应。对于任何给定姿势,可以捕捉任何数量的图像数据帧并且可以生成任何数量的对应的指导性姿势数据帧。因而,附加图像数据帧和对应的指导性姿势数据可能是可用的。用户可以对视觉帮助的显示进行暂停、滚动、查看、 缩放等。图7B的左侧上的图像数据的快照描绘在第二时间点处的用户的姿势64b。在分屏的右侧,该系统显示突出显示用户的姿势中的错误的视觉帮助。与突出显示用户的姿势中的错误的指导性姿势数据并排地显示用户的姿势的视觉表示可以帮助用户校正他或她在物理空间中的运动。例如,图7B通过使用箭头指向用户手臂的位置来突出显示用户姿势中的错误。在该示例中,视觉帮助指向在该姿势中的该点处用户手臂的更好位置以教导用户如何正确地做出上勾拳运动或在拳击游戏中更成功。类似地,图7C描绘用户的图像数据的快照,指出在上勾拳姿势的此点处,如果用户在使他的手臂处于更高的位置的情况下来完成该运动,则他或她将达到更好的成功。并排描绘可以示范用户的实际位置与理想位置之间的增量。该系统可以与实况或实时视觉帮助一起显示用户的运动来突出显示用户的运动中的错误。因而,图7A-7C中的图像数据的快照并非用户姿势的重放,该用户可以在物理空间中作出姿势并查看每一分屏的右侧上的实况视觉帮助。例如,可以在交互式练习会话中提供指导性姿势数据。练习会话可以示范在上勾拳姿势中各离散时间点处的正确定位。在每一离散的点处,用户可以在物理空间中作出姿势,并且在该用户的姿势与示出正确的姿势位置的视觉帮助相比较时实时地观察该姿势。用户可以在各时间点间循环,从而学习并执行每一点处的正确姿势并且接收关于用户在此时应当处于的理想位置的实时视觉帮助。 用户可以逐帧校正他或她的运动。尽管图7A-7C描绘用户的视觉表示与指导性姿势数据的分屏显示,但构想了指导性姿势数据可以用任何合适的形式来提供。例如,并非分屏,可只显示图7A-7C中的分屏的左侧以突出显示用户姿势中的错误。在该示例中,错误被突出显示成指向用户姿势的偏差的箭头。在另一示例中,或与另一形式的指导性姿势数据相组合,诸如画外音等听觉帮助可为该用户用言语表现错误或可能的校正。
指导性姿势数据可以指示用户在物理空间中的正确对准,以通知用户如何移动到捕捉设备的捕捉视野的正确视野中。例如,如果特定姿势过滤器因为捕捉设备捕捉到的肢体的运动移出捕捉设备的捕捉视野的视野之外而未能对于一姿势提供一致的结果,则指导性姿势数据可包括通知用户他们需要在物理空间中移动才能更好地与捕捉设备对准的一组练习数据或帮助。例如,画外音可以说“请向左移”,或用户在屏幕上的视觉表示(诸如 64a、64b、6k所示的视觉表示)可以只示出屏幕上表示的一部分,从而指示用户需要在物理空间中重新对准他或她自己。图8A和8B描绘向用户提供指导性姿势数据的附加示例。在图8A中,经校正的姿势动画的表示804(如线条画表示所示)叠加或覆盖在用户的视觉表示之上。因此,正确运动的指示覆盖在用户的图像数据之上。用户可以重放他或她的运动并查看覆盖在用户的姿势的视觉表示之上的指导性姿势数据。用户随后可以观察用户的实际位置与理想位置之间的增量。箭头只是用于提供用户的手臂位置与视觉帮助之间的增量的视觉表示的一个示例。突出显示该增量允许用户确定物理空间中的什么修改可以改进该姿势。在应用(诸如正在进行的游戏)的执行期间,练习数据可以作为覆盖来显示,如图 8A所示。因此,中断该游戏以进入单独的练习模式可能是不必要的。指导性姿势数据可包括对用户运动的提示或小建议,并且该提示可以在游戏中作为覆盖来表达,使得在提供指导性姿势数据时游戏继续而不中断。图8B中的视觉帮助的示例显示是包括通过姿势的示范的指导性姿势数据的视觉表示。该示范可被分解成各阶段或者是连续的视频剪辑。指导性姿势数据的视觉表示可以是任何合适的形式,如骨架表示、重影图像、或玩家化身的形式。作为用户选择练习模式、检测到用户姿势错误、启动应用等的结果,该应用可以触发进入练习模式。例如,在检测到用户姿势中的错误时,可向用户提供到练习模式的可任选入口。该系统可能识别不出用户作出的姿势,并基于对用户的预期运动的预测来提供练习建议。该系统可识别出该姿势并提供关于在此时适用于该应用的更好姿势的建议,或提供用于练习来更好地作出该由用户作出的姿势的建议以在该应用中更成功。图9描绘该系统可在拳击游戏中显示给用户的选项9(^a、902b、902c、902d的示例。显示设备16可以显示预测姿势的选项,并且用户可以选择选项来接收练习以正确地执行该姿势或改进该姿势的执行。可能姿势可以是适用于基于姿势的系统、正在执行的应用、 具有补充姿势的插件等的任何姿势。图9中示出的选项9(^a、902b、902c、902d适用于该正在执行的应用——拳击游戏。在该示例中,用户在物理空间中的姿势被标识为出拳姿势。如上所述,姿势识别引擎190可包括姿势过滤器191的集合。每一过滤器191可包括定义姿势以及该姿势的参数或元数据的信息。可以将由相机沈、观和设备20以骨架模型及与之相关联的移动的形式捕捉的数据与姿势库190中的姿势过滤器进行比较,以标识用户何时执行了一个或多个姿势。在一示例实施例中,该系统收集并存储特定用户的历史数据,如将历史数据存储在用户简档中。该系统可以基于这一历史数据来适应过滤器参数和该用户的阈值水平。例如,根据研究或仿真数据,被用来标识该姿势是举手过肩投掷的空间体的过滤器参数可被设为默认值。然而,与一般相比,用户的手可能往往距用户的头更远,并且因此超出为举手
23过肩投掷设置的空间体的边界之外。一开始,该差异可以指示该姿势的执行中的失败,从而触发用于进入练习模式以学习如何执行该姿势的显示或选项。该系统可随时间收集关于该用户的数据并修改过滤器参数以适应该用户的倾向。例如,定义空间体的参数可被修改以将空间体移动得与用户的身体位置更紧密地对准。阈值接受水平也可相应地改变。练习会话可以是交互式的,以便诸如以在图7A-7C中描述的方式来对用户的实际运动进行评估、突出显示、校正等。视觉帮助可以是适用于应用的用户可以在物理空间中实施的正确姿势的示范,而不带有用户运动的视觉表示。图8B经由分开的各运动帧来描绘正确姿势的示范的示例。该示范可以突出显示用户应当放置他或她的身体来正确地执行该姿势的位置。该示范可以不管用户的姿势。或者,视觉帮助可以是对用户的姿势的评估的结果,其中视觉帮助指出用于该用户所专用的改进的特定区域。用于显示视觉帮助的其他技术是可能的。例如,指导性姿势数据的视觉表示可以在显示空间的一部分上,其中该部分小于总显示空间。提供指导性姿势数据的视觉帮助可包括教练,如用户创建的教练、人类教练、预记录教练等。教练可以作为视频馈源弹出。教练可以提供与所示范的姿势相对应的语音指令。用户可以通过访问练习程序来学习一姿势,诸如如何投棒球。基本上,教练可以使用户排练组成投掷的各姿势。用户可以选择特定教练,如从表示真实或虚拟人物的化身的集合中选择。可以使用不同人物,如著名棒球运动员。教练的表示可以是与所示范的姿势一起显示的预记录数据。或者,视觉帮助可以是与另一用户实时地实况显示的人类教练。视觉帮助可以是画外音的形式或经由网络提供姿势示范的实况教练。图10描绘远程连接并通过拳击游戏应用进行交互的两个用户的示例。远程连接例如可通过网络。该网络可由主机管理并且可以是基于订阅的系统。这样的连接允许用户远程连接或联网,以便多个用户可以经由他们各自的计算环境来进行交互。例如,考虑第一和第二远程用户正在执行游戏应用,通过远程连接作为团队对抗其他用户。第一用户认识到第二用户正在不正确地执行某一运动并且因而造成该团队在游戏中失败。第一用户可以实时提供姿势的示范1002a,使得第二用户可以在第二用户的计算环境中的显示器上观察该视觉帮助1002b。第二用户的计算环境可以接收与所示范的姿势相关的信息并向第二用户提供视觉帮助。视觉帮助可以实况地提供给第二用户,只延迟了从第一用户传送所花费的时间,并且处理并向第二用户显示该信息。可以实现合适的技术, 以使得传输和处理时间是快速的,从而基于第一用户的实况姿势示范来最小化视觉帮助到第二用户的延迟。将用户#1的视觉表示实时地显示给用户#2可以是多个触发的结果。例如,用户 #1可以从用户#2请求指示,用户#2可以识别出用户#1的姿势中的错误,这两个用户可以出于彼此学习战术的目的来交互等。用户可以暂停应用并进行交互式练习会话。用户#1 的计算环境可以显示用户#2的视觉表示,从而模拟现场练习会话。用户#2可以与用户#2 类似地交流、显示运动等。图IlA描绘用于姿势教练的示例性操作过程。操作1102描绘了接收由捕捉设备20捕捉的数据,该数据对应于用户执行的姿势。 远处的捕捉设备可以捕捉包含全部用户的场景,诸如从地面到天花板以及到用户所处房间的每侧的墙壁。捕捉设备也可以捕捉仅包含用户的部分的场景,诸如他或她坐在桌边时腹部以上的用户。捕捉设备还可以捕捉由用户控制的对象,诸如用户握在他或她手中的道具相机。操作1104描绘了分析数据以产生与数据是否对应于系统识别的姿势相对应的输出。在实施例中,该分析可以与由姿势识别器引擎190应用于数据的过滤器518执行。操作1106描绘了从该输出确定用户不太可能正确地执行了系统识别的姿势。在实施例中,系统识别的姿势包括与过滤器相对应的姿势。在实施例中,输出包括置信度水平。在实施例中,当置信度水平低于阈值时,用户不太可能正确地执行了与过滤器相对应的姿势。该阈值可以是用户可能正确地执行姿势的水平。在高于阈值水平时用户可能正确地执行姿势的阈值水平与低于阈值水平时用户不太可能执行姿势的阈值水平之间可能存在差别,那两个阈值之间的水平既不被认为是可能的,也不被认为是不太可能的。在姿势过滤器包括多个输出的实施例中,当至少一个输出与用户不太可能正确地执行姿势相对应时,用户不太可能正确地执行姿势。例如,“汽车驾驶”过滤器可以包括用于用户双手之间的距离、用户的手部相对于他身体其他部分的位置、以及手部倾斜的角度的输出。用户使他的手分开12-18”、位于他的胸前、并且每只手显示与相同的驾驶角度相对应的离开垂直的旋转角度时,用户有可能在执行驾驶姿势。用户正确地分开他的手并将其置于他的胸前、向外旋转双手,使得他的左手指示驾驶向左并且他的右手指示驾驶向右,只要没有满足这些参数中的一个就足以确定用户不太可能正确地执行姿势。操作1108从输出确定用户有可能想要执行系统识别的姿势。在用户必须维持姿势的实施例中,诸如通过用户驾驶时保持驾驶位置达到延长的时间段,可以确定用户有可能想要执行姿势,其中输出至少偶尔地与正被执行的姿势相对应,但与正被执行达延长的时间段的姿势不对应。在姿势过滤器包括多个输出的实施例中,当输出与用户执行姿势相对应时,用户有可能想要执行该姿势。例如,给定以上讨论过的“汽车驾驶”过滤器,有可能用户具有正确的手部间隔,并且他的相应的手旋转角度对应于相同的驾驶方向,但他将双手置于他两侧的近乎放松的位置,而不是在他体前握住他的手。在该实例中,输出中的两个(手部间隔与手旋转角度)表明用户有可能想要作出驾驶姿势,但第三个输出(手部位置)没有表明时,可以确定用户想要执行该姿势。操作1110描绘了提供有关用户执行的姿势的帮助。在实施例中,提供帮助包括调整输出,以及将经调整的输出发送到与用户执行的姿势相对应的应用。这可以类似于放松应用的参数或容忍度。当确定用户想要执行姿势时, 用于对应的姿势过滤器的输出可被改变为与可能正被执行的姿势相对应的输出,而仍然维护用户的意图。例如,用户表现为想要驾驶车辆急速向左,但具有不正确的手部位置时,与手部位置相对应的输出可以被调整,而仍然对应于车辆驾驶急速向左(而不是缓慢向左转,或向右转)。在实施例中,调整输出包括提高过滤器的响应性。例如,用户可以做出有可能与用户意图相对应的小移动,但未能执行姿势。对于驾驶姿势,这可以包括当他想要转弯时仅旋转他的手较小的量,无论多么急速。这些移动可以被放大。用户旋转他的手最大20°,并且90°旋转对应于最急速的转弯时,用户的实际旋转可被乘以因子4. 5,使得他的20°旋转被当作它是90°旋转来对待。从实际移动到预期移动的该映射可以是线性或非线性的。有可能用户近似正确地执行了非常细微的驾驶运动,并且未能执行更急速的转弯。在此情形中,细微的驾驶运动的响应性可以仅被略微地提高,或者没有提高,而想要传达急速驾驶的运动的响应性可以被极大地提高。在实施例中,仅在确定过滤器是可被调整的过滤器之后,才调整输出。某些过滤器可以从调整受益。例如,糟糕地作出“开火武器”姿势并且频繁地错过他的预期目标的用户可能对控制感到沮丧,并且具有糟糕的用户体验。由此,调整“开火武器”过滤器以帮助用户的瞄准可能是有益的,并且“开火武器”过滤器可以是可被调整的过滤器。然而,对于“汽车驾驶”姿势,这可以不为真。在传统意义上,用户可能驾驶得非常糟糕——他频繁地碰撞或离开轨道。然而,某些用户喜欢忽略场景的已声明的目标,并且故意地糟糕地执行。在这种情形中,调整“汽车驾驶”过滤器可能实际上损害了用户体验,因为这阻止他做他想做的。 此处,“汽车驾驶”姿势可以是可不被调整的姿势。可以确定过滤器是否可被调整,例如,通过可由调整过滤器的实体读取的过滤器的布尔输出,或者通过与可由调整过滤器的实体读取的过滤器相对应的数据结构中的布尔集。在实施例中,提供帮助包括使用第二过滤器代替过滤器。例如,用户可能难于执行与“专家驾驶”过滤器相关联的姿势,该过滤器具有对示例性运动的变化的较低的容忍度。 这可以被确定,并且“专家驾驶”过滤器可以被替换为“初学者驾驶”过滤器,后者相比“专家驾驶”过滤器对变化具有更高的容忍度。例如,可以通过指示相关联的应用它要使用该新的过滤器的输出来代替之前的过滤器的输出,或者通过从姿势识别引擎移除之前的过滤器并其在位置上放置新的过滤器来代替过滤器。在实施例中,提供帮助包括挂起与用户执行的姿势相对应的应用。例如,确定应当给出教导用户如何正确地执行姿势的帮助时,用户将很难学习该姿势并仍然与该应用交互。因此,该应用可以被暂停或挂起,给出帮助达一定时间,诸如直到用户已经证明能够一致地执行姿势,并且在帮助会话之后继续该应用。在实施例中,提供帮助包括在显示设备上向用户显示输出。例如,输出包括置信度水平时,在用户试图执行姿势时,可以作出置信度水平与时间的曲线图。当他正确地执行姿势时,他将看到置信度水平相应地提高,并且将能够将那些移动与正确地执行姿势相关联。 该显示还可以包括对该输出何时是可接受的的指示,诸如经由颜色改变、警告音、或屏幕上的闪光。对输出手部距离与时间作出曲线图并且手部距离必须位于12”和18”之间时,该曲线图可在用户的手部距离位于12”和18”之间时是绿色的,并且在全部其他时间是红色的。在实施例中,提供帮助包括显示用户执行的姿势的表示以及姿势的示范。这可以包括并排显示两个姿势,使得用户可视地标识他正在不正确地移动之处。此外,用户正确地执行姿势的一部分并且不正确地执行姿势的一部分时,可以存在对用户正在正确地执行的那些时刻的指示,诸如通过播放声音。另外,帮助可以包括关于两个姿势之间的差别的直接指导,诸如内容为“您的双手必须分开12-18”。您的双手表现得过于分开。试着将它们靠近一些。”的显示器上的文本。
26
在实施例中,提供帮助包括显示用户执行的姿势与姿势的示范之间的差别。这可以包括将示范叠加在用户执行的姿势的上方,使得差别是明显的。这可以包括突出显示差别存在的身体的区域。在实施例中,不同地显示用户执行的姿势和姿势的示范以使它们更容易被独立地标识。例如,一个被叠加在另一个上时,用户执行的姿势可被显示为用户的视频或化身表示,并且示范可被显示为线框化身,反之亦然。在实施例中,帮助源自另一个用户。在实施例中,所源自的帮助是来自集合中的至少一个,该集合包括位于或接近排行榜顶部的帮助、已被高度评级的帮助、由将其作为适合于帮助来创建的用户已经标识的帮助、第二用户已经标识为适合于用户的帮助、来自与用户相同文化的用户的帮助、来自与用户相同语言的用户的帮助、来自与用户相似年龄的用户的帮助、以及来自与用户相似位置的用户的帮助。在实施例中,提供帮助包括放松与过滤器相关联的容忍度水平。图IlB和IlC描绘了与姿势识别器引擎190和应用1152集成的用于姿势训练1150 的示例体系结构。在图IlB中,姿势教练1150和应用1152 二者从每个过滤器518接收每个过滤器 518的输出。该体系结构允许姿势教练1150监控过滤器输出以确定帮助是否是适合的,而同时允许应用1152接收输出。可选地,姿势教练1150可与应用1152通信,诸如发送由应用1152使用的经修改的输出。在图IlC中,姿势教练1150从那些过滤器518接收每个过滤器518的输出,并且随后将输出传递给应用1152。在该体系结构中,姿势教练1150可以在将输出发送到应用 1152之前修改任何已接收的输出。图12A和12B描绘了从其可以确定姿势训练是合适的的示例过滤器输出。每个曲线图对用户的手部距离与时间进行制图,如来自“汽车驾驶”姿势过滤器的输出。图12A描绘不熟练用户的一定时间内的示例性手部距离,该不熟练用户在将要被执行的姿势所需要的维持大致统一的手部距离方面有困难。可以从这种输出确定帮助是适合的。同样,手部距离必须位于给定范围内时,如果用户维持大致统一的手部距离,并且如果该大致统一的距离位于给定范围之上或之下,则仍然可以确定帮助是适合的。图12B描绘熟练用户的一定时间内的示例性手部距离,该熟练用户能够如将要被执行的姿势所需要的维持大致统一的手部距离。尽管手部距离不是恒定的,但过滤器可以允许这种变化,只要它足够小。Mrk尽管已经结合各附图所示的较佳方面描述了本发明,但要理解,可使用其它相似方面或者可对所述方面进行修改或添加来执行本发明的相同功能而不脱离本发明。因此, 本发明不应该仅限于任何单个方面,而是应该在根据所附权利要求书的广度和范围内解释。例如,本文描述的各种过程可用硬件或软件、或两者的组合来实现。因此,所公开的各实施例的方法和装置或其某些方面或部分可采用包含在诸如软盘、CD-ROM、硬盘驱动器或任何其他机器可读存储介质等有形介质中的程序代码(即,指令)的形式。当程序代码被加载到诸如计算机等机器并由其执行时,该机器变为被配置成实施所公开的各实施例的装置。除了此处明确阐述的具体实现之外,考虑此处所公开的说明书,其它方面和实现将对本领域的技术人员是显而易见的。说明书和所示实现旨在仅被认为是示例。
权利要求
1.一种用于提供关于用户执行的姿势的帮助的方法,包括接收由捕捉设备00)捕捉的数据,所述数据对应于用户执行的姿势(518) (1102); 分析所述数据以产生与所述数据是否对应于系统识别的姿势相对应的输出(1104); 从所述输出确定所述用户不太可能正确地执行所述系统识别的姿势(1106); 从所述输出确定所述用户有可能想要执行所述系统识别的姿势(1108);以及提供有关所述用户执行的姿势的帮助(1110)。
2.如权利要求1所述的方法,其特征在于,提供帮助包括 调整所述输出;以及将经调整的输出发送到与所述系统识别的姿势相对应的应用。
3.如权利要求2所述的方法,其特征在于,调整所述输出包括 提高输出与用户正确地执行所述系统执行的姿势相对应的可能性。
4.如权利要求2所述的方法,其特征在于,还包括 在调整所述输出之前确定所述输出能够被调整。
5.如权利要求1所述的方法,其特征在于,所述输出包括置信度水平。
6.如权利要求5所述的方法,其特征在于,当所述置信度水平低于阈值时,用户不太可能正确地执行所述系统识别的姿势。
7.如权利要求1所述的方法,其特征在于,分析所述数据以产生与数据是否对应于所述系统识别的姿势相对应的输出还包括由过滤器分析所述数据以产生与所述数据是否对应于所述系统识别的姿势相对应的输出还包括提供帮助包括用第二过滤器代替所述过滤器。
8.如权利要求1所述的方法,其特征在于,提供帮助包括 挂起与所述用户执行的姿势相对应的应用。
9.如权利要求1所述的方法,其特征在于,提供帮助包括显示所述用户执行的姿势的表示以及所述系统识别的姿势的示范。
10.如权利要求9所述的方法,其特征在于,还包括显示所述用户执行的姿势与所述系统识别的姿势的示范之间的差别。
11.一种用于提供关于用户执行的姿势的帮助的系统,包括 处理器(259);接收由相机捕捉的数据的组件,所述数据对应于用户执行的姿势(1102); 分析所述数据以产生与所述数据是否对应于系统识别的姿势相对应的输出的组件 (1104);从所述输出确定所述用户不太可能正确地执行所述系统识别的姿势的组件(1106); 从所述输出确定所述用户有可能想要执行所述系统识别的姿势的组件(1108);以及提供有关所述用户执行的姿势的帮助的组件(1110)。
12.如权利要求11所述的系统,其特征在于,提供帮助的组件还包括 放松与分析所述数据的所述组件相关联的容忍度水平。
13.如权利要求11所述的系统,其特征在于,提供帮助的组件还包括调整所述输出的组件;以及将经调整的输出发送到与所述用户执行的姿势相对应的应用的组件。
14.如权利要求13所述的系统,其特征在于,调整所述输出的组件包括 提高分析所述数据的组件的响应性的组件。
15.如权利要求11所述的系统,其特征在于,所述输出包括置信度水平。
全文摘要
捕捉设备可以捕捉用户的运动并且显示设备可以显示映射到用户的运动(包括适用于控制的姿势)的模型。用户可能不熟悉映射用户的运动的系统或不知道什么姿势适用于正在执行的应用。用户可能不了解或不知道如何执行适用于正在执行的应用的姿势。可以分析与姿势相对应的用户运动数据和/或过滤器的输出以确定给用户的有关执行姿势的帮助是适合的那些情形。
文档编号G06K9/46GK102448561SQ201080024659
公开日2012年5月9日 申请日期2010年5月25日 优先权日2009年5月29日
发明者A·基普曼, D·A·贝内特, G·N·斯努克, K·S·佩雷, K·兹努达, K·盖斯那, S·拉塔 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1