基于回环运动的用户选择和导航的制作方法

文档序号:6432872阅读:178来源:国知局
专利名称:基于回环运动的用户选择和导航的制作方法
技术领域
本发明涉及计算机技术,尤其涉及基于回环运动的用户选择和导航。
背景技术
诸如计算机游戏、多媒体应用等的许多计算应用使用控制来允许用户操纵游戏角色或应用的其他方面。通常使用,例如,控制器、遥控器、键盘、鼠标等等,来输入这样的控制。不幸的是,这些控制可能是难以学习的,由此造成了用户和这些游戏及应用之间的障碍。

发明内容
公开了这样的技术可藉由该技术来在无需传统控制器或定点设备的情况下使用回环运动(looped motion)来自动导航和选择在计算设备中执行的应用中显示的用户选项。回环运动是这样的运动该运动结束于起始之处并被重复。回环运动的示例包括锻炼套路或舞步。在本发明技术的一个实施例中,经由计算设备中的用户界面提示用户执行由选项显示的回环运动序列。当用户成功完成由选项显示的回环运动序列时,自动触发对选项的选择。在一个实施例中,由应用显示的选项还可包括一个或多个基于技能的选项。基于技能的选项向用户显示不同的回环运动序列。每个基于技能的选项具有与执行回环运动序列相关联的不同技能水平。当用户成功完成由基于特定技能的选项显示的回环运动序列时,自动触发对该基于技能的选项的选择。在另一实施例中,取决于与应用同时交互的用户的数目自动触发对选项的单玩家模式或多玩家模式的选择。在一个实施例中,公开了一种用于执行用户对选项的选择的方法。经由计算设备的用户界面提示用户执行回环运动序列。用户界面向用户显示回环运动序列。从连接到计算设备的传感器接收用户运动数据。基于用户运动数据匹配于与执行回环运动相关联的一个或多个回环运动准则来确定用户执行回环运动序列的进度。向用户显示用户执行回环运动序列的进度。响应于确定用户已完成回环运动序列,自动触发对选项的选择。提供本概述以便以简化的形式介绍将在以下详细描述中进一步描述的一些概念。 本发明内容并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本公开的任何部分中提及的任何或所有缺点的各实现。


图1示出了其中用户与应用进行交互的跟踪系统的一个实施例。图2示出了可用作跟踪系统的一部分的捕捉设备的一个实施例。图3示出了可用来跟踪运动并基于所跟踪的运动来更新应用的计算设备的一个实施例。图4示出了可用来跟踪运动并基于所跟踪的运动来更新应用的计算设备的一个实施例。图5是描述了用于允许用户通过使用回环运动在用户界面中选择选项的过程的一个实施例的流程图。图6是描述了用于从捕捉设备中的传感器接收用户运动数据的过程的一个实施例的流程图。图7示出了表示所扫描的人类目标的骨架模型或映射的示例。图8提供了图2中示出的姿势识别引擎的示例性实施例的进一步细节。图9是描述确定用户是否执行回环运动的过程的一个实施例的流程图。图10是描述了用于确定用户运动数据是否匹配一个或多个回环运动准则的过程的一个实施例的流程图。图11A-11F示出了根据本发明的一个实施例的描绘用户与在计算机设备上执行的应用的交互的各种用户界面屏幕。图12是描述允许用户使用回环运动作出选择的过程的另一实施例的流程图。图13A-13C示出了根据本发明的另一实施例的描绘用户与在计算机设备上执行的应用的交互的各种用户界面屏幕。图14是描述了用于执行所公开技术的各操作的过程的又一实施例的流程图。图15A和15B示出了根据本发明的又一实施例的描绘用户与在计算机设备上执行的应用的交互的各种用户界面屏幕。
具体实施例方式公开了藉由其使用回环运动来自动触发对在执行于计算设备中的应用中显示的用户选项的选择和导航的技术。经由计算设备中的用户界面向用户显示回环运动序列。使用连接到计算设备的捕捉设备来捕捉用户运动数据。基于用户运动数据来确定用户执行回环运动序列的进度,并经由用户界面向用户显示用户的进度。当用户成功地完成执行回环运动序列时,自动地触发对经由用户界面显示的选项的选择。图1示出了用于执行本公开技术的各操作的目标识别、分析和跟踪系统10的一个实施例(下文中通常称为跟踪系统)。目标识别、分析和跟踪系统10可用来识别、分析和/ 或跟踪诸如用户18等的人类目标。如图1所示,跟踪系统10可包括计算设备12。计算设备12可以是计算机、游戏系统或控制台等等。根据一个实施例,计算设备12可以包括硬件组件和/或软件组件,从而使得计算设备12可用来执行诸如游戏应用、非游戏应用之类的应用。在一个实施例中,计算设备12可包括可执行在处理器可读存储设备上存储的、用于执行在此描述的过程的指令的处理器,诸如标准化处理器、专用处理器、微处理器等。如图1所示,跟踪系统10还可包括捕捉设备20。捕捉设备20可以是例如照相机, 该照相机可用于在视觉上监视诸如用户18等的一个或多个用户,从而使得可以捕捉、分析并跟踪由所述一个或多个用户执行的姿势,以便控制在计算设备12上执行的应用的各个方面。根据一个实施例,跟踪系统10可连接至可向诸如用户18等的用户提供游戏或应用视觉和/或音频的视听设备16,诸如电视机、监视器、高清电视机(HDTV)等。例如,计算设备12可包括诸如图形卡等视频适配器和/或诸如声卡等音频适配器,这些适配器可提供与游戏应用、非游戏应用等相关联的视听信号。视听设备16可从计算设备12接收视听信号,然后可向用户18输出与视听信号相关联的游戏或应用视觉和/或音频。根据一个实施例,视听设备16可经由例如,S-视频电缆、同轴电缆、HDMI电缆、DVI电缆、VGA电缆等连接到计算设备12。该目标识别、分析和跟踪系统10可用来识别、分析和/或跟踪诸如用户18之类的一个或多个人类目标。例如,可使用捕捉设备20来跟踪用户18,使得可将用户18的移动解释为可用于影响由计算设备12执行的应用或操作系统的控制。在一个实施例中,以及如以下所讨论的,应用程序可包括交互式锻炼游戏或交互式跳舞游戏。图2示出了捕捉设备20和计算设备12的一个实施例,它们可以在目标识别、分析和跟踪系统10中使用,以便识别捕捉区域中的人类或非人类目标,并在三维空间中唯一地标识他们及跟踪他们。根据一个实施例,捕捉设备20可被配置成经由任何合适的技术,包括例如飞行时间、结构化光、立体图像等来捕捉具有深度信息的视频,该深度信息包括可以包括深度值的深度图像。根据一实施例,捕捉设备20可将所计算的深度信息组织为“Z层” 或可垂直于从深度相机沿其视线延伸的Z轴的层。如图2所示,捕获设备20可以包括图像相机组件32。根据一个实施例,图像相机组件32可以是可捕捉场景的深度图像的深度相机。深度图像可包括所捕捉的场景的二维 (2-D)像素区域,其中2-D像素区域中的每一像素可表示深度值,诸如例如以厘米、毫米等计的所捕捉的场景中的对象距相机的距离。如图2所示,图像相机组件32可包括可被用来捕捉捕捉区域的深度图像的IR光组件34、三维(3-D)相机36、以及RGB相机38。例如,在飞行时间分析中,捕捉设备20的IR 光组件34可以将红外光发射到捕捉区域上,然后可以使用传感器,用例如3-D相机36和/ 或RGB相机38来检测从捕捉区域中的一个或多个目标和对象的表面反向散射的光。在某些实施例中,可以使用脉冲式红外光从而可以测量出射光脉冲和相应的入射光脉冲之间的时间差并将其用于确定从捕捉设备20到捕捉区域中的目标或对象上的特定位置的物理距离。此外,可将出射光波的相位与入射光波的相位进行比较来确定相移。然后可以使用该相移来确定从捕捉设备到目标或对象上的特定位置的物理距离。根据另一个实施例,可使用飞行时间分析,通过经由包括例如快门式光脉冲成像的各种技术来分析反射光束随时间的强度变化以间接地确定从捕捉设备20到目标或对象上的特定位置的物理距离。在另一示例中,捕捉设备20可使用结构化光来捕捉深度信息。在该分析中,图案化光(即,被显示为诸如网格图案或条纹图案等已知图案的光)可经由例如IR光组件34 被投影到捕捉区域上。在撞击到捕捉区域中的一个或多个目标或对象的表面时,作为响应, 图案可变形。图案的这种变形可由例如3-D相机36和/或RGB相机38来捕捉,然后可被分析来确定从捕捉设备到目标或对象上的特定位置的物理距离。根据一个实施例,捕捉设备20可包括可以从不同的角度观察捕捉区域的两个或更多在物理上分离的相机,以获取可以被解析以生成深度信息的视觉立体数据。也可使用其他类型的深度图像传感器来创建深度图像。
捕捉设备20还可包括话筒40。话筒40可包括可接收声音并将其转换成电信号的换能器或传感器。根据一个实施例,话筒40可用来减少在目标识别、分析和跟踪系统10中的捕捉设备20与计算设备12之间的反馈。另外,话筒40可用来接收也可由用户提供的音频信号,以控制可由计算设备12执行的诸如游戏应用、非游戏应用等应用。在一个实施例中,捕捉设备20还可以包括可以与图像相机组件32进行可操作的通信的处理器42。处理器42可包括可执行指令的标准处理器、专用处理器、微处理器等,这些指令可包括用于存储简档的指令、用于接收深度图像的指令、用于确定合适的目标是否被包括在深度图像中的指令、用于将合适的目标转换成该目标的骨架表示或模型的指令、 或任何其他合适的指令。捕捉设备20还可包括存储器组件44,存储器组件44可存储可由处理器42执行的指令、由3-D相机或RGB相机所捕捉的图像或图像的帧、用户简档、或任何其他合适的信息、 图像等等。根据一个示例,存储器组件44可包括随机存取存储器(RAM)、只读存储器(ROM)、 高速缓存、闪存、硬盘或任何其他合适的存储组件。如图2所示,存储器组件44可以是与图像捕捉组件32和处理器42进行通信的单独的组件。在另一实施例中,存储器组件44可被集成到处理器42和/或图像捕捉组件32中。在一个实施例中,图2中示出的捕捉设备20 的组件32、34、36、38、40、42和44中的一些或全部被容纳在单个外壳中。捕捉设备20可以经由通信链路46来与计算设备12进行通信。通信链路46可以是包括例如USB连接、火线连接、以太网电缆连接等的有线连接和/或诸如无线802. lib、 802. llg、802. Ila或802. Iln连接等无线连接。计算设备12可以向捕捉设备20提供时钟, 该时钟可以用来确定何时经由通信链路46来捕捉例如场景。捕捉设备20可经由通信链路46来向计算设备12提供由例如3-D相机36和/或 RGB相机38捕捉的深度信息和图像,包括可由捕捉设备20生成的骨架模型。计算设备12 然后可使用该骨架模型、深度信息和所捕捉的图像来例如创建视觉屏幕,并控制诸如游戏或文字处理程序之类的应用。计算设备12包括姿势库192、结构数据198和姿势识别引擎190。姿势库192可包括姿势过滤器的集合,每一姿势过滤器包括和骨架模型可执行(在用户移动时)的运动或姿势有关的信息。在一个实施例中,姿势过滤器可包括与可由用户执行的一个或多个回环运动或姿势有关的信息。回环运动可包括例如可重复运动,诸如锻炼套路中的膝盖弯曲、 跳跃运动、仰卧起坐、俯卧撑、腿部伸展、或脚尖触碰,或者跳舞套路中诸如手臂滚转(arm roll)、开式转身、自由旋转、或足跟转之类的舞步。结构数据198包括关于可被跟踪的对象的结构信息。例如,可以存储人类的骨架模型以帮助理解用户的移动并识别身体部位。还可以存储关于非生命对象的结构信息以帮助识别这些对象并帮助理解移动。在一个实施例中,姿势识别引擎190可将由相机36、38和设备20捕捉的骨架模型以及与其相关联的移动形式的数据与姿势库192中的姿势过滤器进行比较来标识用户(如骨架模型所表示的)何时执行了一个或多个姿势。计算设备12可使用姿势库192来解释骨架模型的移动并基于该移动来控制应用。关于姿势识别引擎190的更多信息参见2009年4 月 13 日提交的美国专利申请 12/422,661“Gesture Recognition System Architecture(姿势识别系统架构)”,该申请通过整体引用合并于此。关于识别姿势的更多信息参见2009年2月23日提交的美国专利申请12/391,150 "Standard Gestures (标准姿势)”;以及2009 年5月29日提交的美国专利申请12/474,655“GestUre Tool (姿势工具)”,这两个申请都通过整体引用结合于此。关于运动检测和跟踪的更多信息可在2009年12月18日提交的美国专利申请12/641,788 “Motion Detection UsingDepth Images (使用深度图像的运动检测)”,以及美国专利申请 12/475,308“Device for Identifying and Tracking Multiple Humans over Time (用于随时间标识和跟踪多个人类的设备)”中找到,这两个申请通过整体引用合并于此。计算设备12可以包括应用202。在一个示例中,应用202可以是包括各种锻炼套路的交互式锻炼游戏应用,或者包括各种舞步的交互式跳舞游戏应用。在一个实施例中,用户可执行由应用202描绘的一个或多个锻炼套路或舞步,并且用户朝着成功完成各种锻炼套路或舞步的进度可经由该应用来跟踪。在一个示例中,用户可通过执行回环运动来与应用202交互。回环运动可包括例如可重复运动,诸如锻炼套路中的膝盖弯曲、跳跃运动、仰卧起坐、俯卧撑、腿部伸展、或脚尖触碰,或者跳舞套路中诸如手臂滚转、开式转身、自由旋转、或足跟转之类的舞步。在所公开技术的一个实施例中,以及如将在以下详细讨论的,用户可执行回环运动来自动选择由应用显示的一个或多个用户选项。用户可经由计算设备中的用户界面来与应用202交互。在一个示例中,用户界面可向用户显示一个或多个选项,其中每个选项显示回环运动序列。回环运动序列可包括例如必须由用户成功地重复预定次数的可重复运动序列。在一个示例中,经由用户界面描绘的选项可显示执行回环运动的屏幕上角色画像,并且用户可被提示执行由该屏幕上画像所描绘的回环运动序列。在用户成功完成选项所描绘的回环运动序列时,可由应用202自动触发对该选项的选择。在所公开技术的另一实施例中,用户界面也可向用户显示一个或多个基于技能的选项。每个基于技能的选项可向用户显示不同的回环运动序列,其中不同的回环运动序列各自具有与执行回环运动序列相关联的不同技能水平。在此实施例中,用户可通过执行由特定的基于技能的选项所描绘的回环运动序列来执行由基于技能的选项中的任一个所描绘的回环运动序列。在用户成功完成特定的基于技能的选项所描绘的回环运动序列时,可由应用202自动触发对该特定的基于技能的选项的选择。在一个实施例中,应用202可包括回环运动识别引擎194、显示模块196、和应用控制逻辑200。回环运动识别引擎194、显示模块196和应用控制逻辑200可以作为软件模块来实现,以执行所公开技术的一个或多个操作。应用控制逻辑200可包括与应用202的执行有关的预编程规则的集合。在一个实施例中,应用控制逻辑202可从姿势识别引擎190 接收用户正执行诸如回环运动之类的姿势的信息。例如,姿势识别引擎190可将接收自捕捉设备20中的一个或多个传感器的用户运动数据与一个或多个姿势过滤器进行比较,以确定用户运动数据是否匹配姿势识别引擎190中所存储的一个或多个姿势或回环运动。在图9中讨论了姿势识别引擎190确定用户运动数据是否匹配回环运动的方式。在一个实施例中,应用控制逻辑200还可从姿势识别引擎190接收用户运动捕捉文件(或其他数据容器/结构)。用户运动捕捉文件可包括例如关于用户运动数据的信息, 诸如例如与用户相关联的每个身体部位的位置、方向、加速度和曲率。应用控制逻辑200可在从姿势识别引擎190接收到用户正执行回环运动的信息之际向回环运动识别引擎194提供用户运动捕捉文件。回环运动识别引擎196可利用用户运动捕捉文件中的信息来确定所捕捉的用户运动数据是否匹配与回环运动相关联的一个或多个回环运动准则。在一个示例中,特定回环运动的回环运动准则可被存储在回环运动识别引擎196中的回环运动数据结构中。在一个实施例中,回环运动识别引擎196将回环运动数据结构中的信息与用户运动捕捉文件中的信息进行关联,以确定用户运动数据是否匹配与回环运动相关联的一个或多个回环运动准则。在图10中详细讨论了回环运动识别引擎196确定所捕捉用户运动匹配一个或多个回环运动准则的方式。应用控制逻辑200可利用由回环运动识别引擎194所提供的信息来确定用户执行回环运动序列的进度。显示模块196可显示用户执行回环运动序列的进度。应用控制逻辑 200还可基于确定用户执行回环运动序列的进度来确定用户已完成回环运动序列。在一个实施例中,响应于确定用户已完成由选项所描绘的回环运动序列,应用控制逻辑200可触发对用户界面中显示的选项的选择。可经由显示模块196向用户显示用户对选项的选择。 在图5-10中详细描述了模块190、194、196和200彼此交互以执行所公开技术的一个或多个操作的方式。图3示出了可用来实现图1-2的计算设备12的计算设备100的示例。图3的计算设备100可以是诸如游戏控制台等多媒体控制台100。如图3所示,多媒体控制台100具有中央处理单元(CPU) 200以及便于处理器访问各种类型存储器的存储器控制器202,各种类型存储器包括闪速只读存储器(ROM) 204、随机存取存储器(RAM) 206、硬盘驱动器208、以及便携式媒体驱动器106。在一种实现中,CPU 200包括1级高速缓存210和2级高速缓存 212,用于临时存储数据,并且因此减少对硬盘驱动器208进行的存储器访问周期的数量, 从而提高处理速度和吞吐量。CPU 200、存储器控制器202、以及各种存储器设备经由一个或多个总线(未示出) 互连在一起。在此实现中所使用的总线的细节对理解此处所讨论的主题不是特别相关。然而,应该理解,这样的总线可以包括串行和并行总线、存储器总线、外围总线、使用各种总线体系结构中的任何一种的处理器或局部总线中的一个或多个。作为示例,这样的体系结构可以包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线、以及也称为夹层总线的外围部件互连(PCI)总线。在一种实现中,CPU 200、存储器控制器202、ROM 204、以及RAM 206被集成到通用模块214上。在此实现中,ROM 204被配置为通过PCI总线和ROM总线(两者都没有示出)连接到存储器控制器202的闪速ROM。RAM 206被配置为多个双倍数据速率同步动态 RAM (DDR SDRAM)模块,它们被存储器控制器202通过分开的总线(未示出)独立地进行控制。硬盘驱动器208和便携式媒体驱动器106被示为通过PCI总线和AT Attachment (ΑΤΑ) 总线216连接到存储器控制器202。然而,在其他实现中,也可以备选地应用不同类型的专用数据总线结构。图形处理单元220和视频编码器222构成了用于进行高速度和高分辨率(例如, 高清晰度)的图形处理的视频处理流水线。数据通过数字视频总线(未示出)从图形处理单元220传输到视频编码器222。音频处理单元224和音频编码解码器(编码器/解码器)226构成了对应的音频处理流水线,用于对各种数字音频格式进行多通道音频处理。通过通信链路(未示出)在音频处理单元224和音频编码解码器226之间传输音频数据。视频和音频处理流水线向A/V(音频/视频)端口 2 输出数据,以便传输到电视机或其他显示器。在所示出的实现中,视频和音频处理组件220-2 安装在模块214上。图3示出了包括USB主控制器230和网络接口 232的模块214。USB主控制器230 被示为通过总线(例如,PCI总线)与CPU 200和存储器控制器202进行通信,并作为外围控制器104(1)-104 )的主机。网络接口 232提供对网络(例如因特网、家庭网络等)的访问,并且可以是包括以太网卡、调制解调器、无线接入卡、蓝牙模块、电缆调制解调器等各种有线或无线接口组件中的任一种。在图3中所描绘的实现中,控制台102包括用于支持四个控制器104(1)-104(4) 的控制器支持子组件对0。控制器支持子组件240包括支持与诸如,例如,媒体和游戏控制器之类的外部控制设备的有线和无线操作所需的任何硬件和软件组件。前面板I/O子部件 242支持电源按钮112、弹出按钮114,以及任何LED(发光二极管)或暴露在控制台102的外表面上的其他指示灯等多个功能。子部件240和242通过一个或多个电缆部件244与模块214进行通信。在其他实现中,控制台102可以包括另外的控制器子部件。所示出的实现还示出了被配置成发送和接收可以传递到模块214的信号的光学I/O接口 235。MU 140(1)和 140(2)被示为可以分别连接到 MU 端口 “A” 130 (1)和 “B” 130 (2)。 附加MU(例如,MU 140(3)-140(6))被示为可连接到控制器104(1)和104(3),即每一个控制器两个MU。控制器104(2)和104(4)也可以被配置成接纳MU (未示出)。每一个MU 140 都提供附加存储器,在其上面可以存储游戏、游戏参数、及其他数据。在一些实现中,其他数据可以包括数字游戏组件、可执行的游戏应用,用于扩展游戏应用的指令集、以及媒体文件中的任何一种。当被插入到控制台102或控制器中时,MU 140可以被存储器控制器202访问。系统供电模块250向游戏系统100的组件供电。风扇252可冷却控制台102内的电路。包括机器指令的应用程序260被存储在硬盘驱动器208上。当控制台102被接通电源时,应用260的各个部分被加载到RAM 206,和/或高速缓存210以及212中以在CPU 200上执行,其中应用260是一个这样的示例。各种应用可以存储在硬盘驱动器208上以用于在CPU 200上执行。通过简单地将游戏和媒体系统100连接到监视器150 (图1)、电视机、视频投影仪或其他显示设备,该系统100就可以作为独立系统来操作。在此独立模式下,游戏和媒体系统100允许一个或多个玩家玩游戏或欣赏数字媒体,例如观看电影或欣赏音乐。然而,随着宽带连接的集成通过网络接口 232而成为可能,游戏和媒体系统100还可以作为较大的网络游戏社区的参与者来操作。图4示出了可被用于实现计算设备12的另一实施例的通用计算设备。参考图4, 用于实现本公开技术的示例性系统包括以计算机310的形式呈现的通用计算设备。计算机310的组件可以包括,但不仅限于,处理单元320、系统存储器330,以及将包括系统存储器的各种系统组件耦合到处理单元320的系统总线321。系统总线321可以是若干类型的总线结构中的任一种,包括使用各种总线体系结构中的任一种的存储器总线或存储器控制器、外围总线,以及局部总线。作为示例而非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会 (VESA)局部总线,以及也称为夹层总线的外围部件互连(PCI)总线。计算机310通常包括各种计算机可读介质。计算机可读介质可以是能由计算机310访问的任何可用介质,而且包含易失性和非易失性介质、可移动和不可移动介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于, RAM、ROM、EEPR0M、闪存或其他存储器技术,CD-ROM、数字多功能盘(DVD)或其他光盘存储设备,磁带盒、磁带、磁盘存储设备或其他磁存储设备,或者能用于存储所需信息且可以由计算机310访问的任何其他介质。通信介质通常以诸如载波或其他传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并包括任意信息传送介质。术语“已调制数据信号”指的是一个或多个特征以在信号中编码信息的方式被设定或更改的信号。作为示例而非限制,通信介质包括如有线网络或直接线连接之类的有线介质,以及如声学、RF、红外及其他无线介质之类的无线介质。上述中任一组合也应包括在计算机可读介质的范围之内。系统存储器330包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM) 331和随机存取存储器(RAM) 332。基本输入/输出系统333 ¢10 包括如在启动时帮助在计算机310内的元件之间传输信息的基本例程,它通常储存在ROM 331中。 RAM 332通常包含处理单元320可以立即访问和/或目前正在操作的数据和/或程序模块。 作为示例而非限制,图4示出了操作系统334、应用程序335、其他程序模块336,以及程序数据 337。计算机310也可以包括其他可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图4示出了对不可移动、非易失性磁介质进行读写的硬盘驱动器340,对可移动、非易失性磁盘352进行读写的磁盘驱动器351,以及对例如CD ROM或其它光学介质等可移动、非易失性光盘356进行读写的光盘驱动器355。可以在示例性操作环境中使用的其他可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器341通常由诸如接口 340的不可移动存储器接口连接至系统总线321,并且磁盘驱动器351和光盘驱动器355通常由诸如接口 350的可移动存储器接口连接至系统总线321。上文所讨论的并且在图4中示出的驱动器及其相关联的计算机存储介质为计算机310提供了对计算机可读的指令、数据结构、程序模块及其他数据的存储。例如,图4中, 硬盘驱动器341被示为存储操作系统344、应用程序345、其它程序模块346和程序数据 347。注意,这些组件可以与操作系统334、应用程序335、其他程序模块336和程序数据337 相同,也可以与它们不同。在此操作系统344、应用程序345、其他程序模块346以及程序数据347被给予了不同的编号,以说明至少它们是不同的副本。用户可以通过诸如键盘362 和定点设备361 (通常被称为鼠标、跟踪球或触摸垫)之类的输入设备向计算机20输入命令和信息。其他输入设备(未示出)可以包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等等。这些和其他输入设备通常由耦合至系统总线的用户输入接口 360连接至处理单元320,但也可以由诸如并行端口、游戏端口或通用串行总线(USB)等其他接口和总线结构来进行连接。监视器391或其他类型的显示设备也通过诸如视频接口 390的接口连接至系统总线321。除监视器之外,计算机也可以包括诸如扬声器397和打印机396之类的其他外围输出设备,它们可以通过输出外围接口 390来连接。
计算机310可使用至诸如远程计算机380之类的一个或多个远程计算机的逻辑连接在网络化环境中操作。远程计算机380可以是个人计算机、服务器、路由器、网络PC、 对等设备或其他公共网络节点,并且通常包括上文参考计算机310所描述的许多或全部元件,但图4中只示出了存储器设备381。图4中所描述的逻辑连接包括局域网(LAN)371和广域网(WAN)373,但是,也可以包括其他网络。这样的联网环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。当在LAN联网环境中使用时,计算机310通过网络接口或适配器370连接至LAN 371。当在WAN联网环境中使用时,计算机310通常包括调制解调器372或用于通过诸如因特网等WAN 373建立通信的其他手段。调制解调器372可以是内置或外置的,它可以经由用户输入接口 360或其他适当的机制连接至系统总线321。在网络化环境中,相对于计算机 310所描述的程序模块或其部分可被存储在远程存储器存储设备中。作为示例而非限制,图 4示出了驻留在存储器设备381上的远程应用程序385。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其他手段。如以上所讨论的,图1-4的硬件设备可被用于实现允许用户通过执行回环运动来选择应用中描绘的选项的系统。图5是描述了用于允许用户通过使用回环运动在用户界面中选择选项的过程的一个实施例的流程图。在一个实施例中,图5的步骤可由姿势识别引擎190、应用控制逻辑200、回环识别引擎194和/或显示模块196中的软件模块来执行。图 5的过程是在使用软件应用程序期间执行的。例如,在视频游戏或视频锻炼程序期间,游戏或程序可向用户提供可选的一个、两个或更多个选项。对一个、两个或更多个选项的选择机会可被显示在用户界面上(例如,图1的监视器16上)。在一些实施例中,应用可利用与该应用交互的人的用户身份。用户身份可包括身份/联系人信息、偏好、用户执行该应用(或其他应用)的历史、购买信息等。在一个实施例中,通过用户提供用户名和口令来确定用户身份。在另一实施例中,面部识别可被用来将来自接收到的视觉图像的用户的脸与参考视觉图像进行相关,以确定用户的身份。在另一实施例中,确定用户身份可包括从用户处接收标识他们身份的输入。例如,可由计算机设备12 来存储用户简档,并且用户可在屏幕上作出选择以将他们自己标识为对应于该用户简档。在步骤500,在用户界面上向用户提供一组一个或多个选项。在用户界面上向用户显示与应用202相关联的一个或多个回环运动。在一个实施例中,用户界面将为每个选项显示一个回环运动。例如,基于跳舞的视频游戏可显示具有两个选项的菜单。第一选项是玩游戏。作为第二选项的是接收如何玩游戏的演示。用户界面将在文本“想玩游戏? ”的附近显示第一回环运动(例如,第一舞步),并且在文本“想看如何玩的演示? ”的附近显示第二回环运动(例如,第二舞步)。在步骤502,提示用户执行由选项显示的回环运动序列。在一个示例中,可使用指令用户执行回环运动序列的指导文本来提示用户。在步骤504,从传感器(例如,深度传感器、视觉相机、话筒等)接收用户运动数据。 在一个实施例中,捕捉设备20中的一个或多个传感器可接收关于用户运动的信息。在图6 中讨论了由捕捉设备20来捕捉并接收用户运动数据的过程。在步骤506,基于接收到的用户运动数据确定用户是否正执行回环运动。在一个实施例中,步骤506可以包括确定用户运动数据是否匹配姿势识别引擎190中的一个或多个预定义回环运动。在图9中讨论了姿势识别引擎190确定用户是否正执行回环运动的过程。如果确定用户未执行回环运动中的任一个,则在步骤508,向用户提供关于回环运动的反馈。在一个示例中,可向用户提供描述用户可准确执行回环运动的方式的指导文本。或者,例如,可通过突出显示或圈出执行回环运动的屏幕上角色画像中的相应的身体部位来显示在执行回环运动时特定身体部位的正确移动的指示。在一个实施例中,一旦确定用户正执行回环运动中的一个,就在步骤510确定用户运动数据是否匹配于关于所检测到的回环运动的一个或多个回环运动准则。在一个示例中,回环运动准则可包括与执行回环运动序列相关联的音乐节拍序列,执行回环运动序列所涉及的身体部位的移动期间所产生的能量,以及与回环运动序列相关联的匹配阈值。在图10中详细描述了确定用户运动数据是否匹配于一个或多个回环运动准则的过程。如果确定用户正执行回环运动,但是并非根据一个或多个运动准则,则在步骤508,向用户提供关于可执行回环运动的方式的反馈。如以上所描述的,可向用户提供描述用户可执行回环运动的方式的指导文本。在步骤512,基于用户运动数据与回环运动准则匹配来确定用户执行回环运动序列的进度。回环运动序列是被执行χ次的回环运动,其中χ是预定整数。在一个实施例中, 用户执行回环运动序列的进度可在用户完成回环运动序列中的第一迭代时被确定,并且可被计算为完成回环运动序列的百分比。例如,如果回环运动序列包括三次手臂滚转,并且如果确定用户已成功执行了一次手臂滚转,则在此示例中,被计算为完成回环运动序列的百分比的用户执行手臂滚转序列的进度为33. 33%。在步骤514,经由用户界面向用户显示用户执行回环运动序列的进度。在一个示例中,当用户完成回环运动序列的第一迭代时,进度跟踪条被图形地显示给用户。用户执行回环运动序列的进度是通过基于用户成功完成回环运动序列的迭代来填充进度跟踪条的一小部分来指示的,其中已填充部分指示完成回环运动序列的百分比。在另一示例中,可基于用户执行回环运动序列的进度来提升描绘回环运动序列的选项的视觉强度,其中选项的视觉强度的程度指示完成回环运动的百分比。在另一实施例中,显示表示完成回环运动序列的百分比的分数或百分点。在步骤516,可基于用户执行回环运动序列的进度来确定用户是否已完成回环运动序列。如果确定用户尚未完成回环运动序列,则由传感器来捕捉用户运动数据,如在步骤 504所讨论的。例如,在包括三次手臂滚转的手臂滚转序列中,当用户已成功完成三次手臂滚转时可确定用户已完成回环运动序列。如果确定用户已完成回环运动序列,则在步骤518 中自动触发对与所执行回环运动相关联的选项的选择,并且应用将执行与所选选项相关联的功能。功能的示例包括通过与用户进行交互显示游戏的一部分(例如,响应于用户输入显示图像)、示出视频、接收用户输入等。图6-10是提供图5的各个步骤的更多细节的流程图。图6是描述了用于从捕捉设备中的传感器接收用户运动数据的过程(图5的步骤504)的一个实施例的流程图。在步骤520,捕捉设备20的处理器42从图像捕捉组件32处接收视觉图像和深度图像。在其他示例中,在步骤520仅接收深度图像。深度图像和视觉图像可由图像捕捉组件32中的任何传感器或本领域中已知的其他适合的传感器来捕捉。在一个实施例中,深度图像与视觉图像是分开被捕捉的。在某些实现中,深度图像和视觉图像是同时被捕捉的,而在其他实现中,它们是顺序地或在不同时刻被捕捉的。在其他实施例中,深度图像是与视觉图像一起被捕捉的,或者与视觉图像组合成一个图像文件,使得每个像素具有R值、G值、B值和Z值 (表示距离)。在步骤522,确定对应于视觉图像和深度图像的深度信息。可分析在步骤520接收到的视觉图像和深度图像,以确定图像内的一个或多个目标的深度值。捕捉设备20可捕捉或观察可包括一个或多个目标的捕捉区域。在步骤524,捕捉设备确定深度图像是否包括人类目标。在一个实施例中,可对深度图像中的每一目标进行泛色填充并将其与一图案进行比较来确定该深度图像是否包括人类目标。在一个实施例中,可确定深度图像的被捕捉场景中的每个目标的边缘。深度图像可包括被捕捉场景的二维像素区域。在2D像素区域中的每个像素可表示诸如例如可测量到的距相机的长度或距离等深度值。可以通过将与例如深度图像的相邻或邻近的像素相关联的各种深度值进行比较来确定边缘。如果正被比较的各种深度值大于预定边容差,则这些像素可定义一条边缘。捕捉设备可将包括深度图像的所计算的深度信息组织成“Z层” 或可垂直于沿着其视线从相机延伸到观察者的Z轴的各层。可以基于所确定的边缘,对Z 层的可能的Z值进行泛色填充。例如,可将与所确定的边缘相关联的像素和在所确定的边缘内的区域中的像素互相关联,以定义捕捉区域中的目标或对象。在步骤526,捕捉设备扫描人类目标以寻找一个或多个身体部位。可以扫描人类目标来提供与用户的一个或多个身体部位相关联的诸如长度、宽度等的度量,使得可基于这些度量来生成该用户的准确模型。在一个示例中,隔离人类目标,并创建位掩模来扫描一个或多个身体部位。可例如通过对人类目标进行泛色填充来创建位掩模,使得该人类目标与捕捉区域元素中的其他目标或对象相分离。在步骤528,基于在步骤5 执行的扫描来生成人类目标的模型。可分析该位掩模来寻找一个或多个身体部位,以生成诸如人类目标的骨架模型、网格人类模型等模型。例如,可使用由所扫描的位掩模确定的度量值来定义骨架模型中的一个或多个关节。位掩模可包括人类目标沿X、Y和Z轴的值。该一个或多个关节可用于定义可对应于人类的身体部位的一根或多根骨骼。根据一个实施例,为了确定人类目标的颈部、肩膀等的位置,可以将例如在被扫描的位置处的位掩模的宽度与关联于例如颈部、肩膀等的典型宽度的阈值进行比较。在一替换实施例中,可以使用与扫描的并与位掩模中的身体部位相关联的先前位置的距离来确定颈部、肩膀等的位置。在一个实施例中,为了确定肩膀的位置,可将肩膀位置处的位掩模的宽度与阈值肩膀值进行比较。例如,可以将肩膀位置处的位掩模的X值处的两个最外部Y值之间的距离与例如人类肩膀之间的典型距离的阈值肩膀值进行比较。由此,根据一示例实施例,该阈值肩膀值可以是与人类的身体模型中的肩膀相关联的典型宽度或宽度范围。在一个实施例中,诸如腿、脚等的某些身体部位可基于例如其他身体部位的位置来计算。例如,如上所述,可以扫描与人类目标相关联的诸如位、像素等信息,以确定人类目标的各个身体部位的位置。基于这些位置,随后可以为人类目标计算诸如腿、脚等的后续身体部位。根据一个实施例,在确定了例如某身体部位的值后,可以创建一数据结构,该数据结构可包括与人类目标的位掩模的扫描相关联的身体部位的诸如长度、宽度等的度量值。 在一个实施例中,该数据结构可包括对多个深度图像求平均所得的扫描结果。例如,捕捉设备可捕捉各帧中的捕捉区域,每个帧包括深度图像。可按如上所述来分析每个帧的深度图像,以确定是否包括人类目标。如果帧的深度图像包括人类目标,则可扫描与该帧相关联的深度图像的人类目标的位掩模来寻找一个或多个身体部位。然后可以对为每一帧所确定的身体部位的值求平均,从而使得该数据结构可包括与每一帧的扫描相关联的身体部位的诸如长度、宽度等的平均度量值。根据一个实施例,可调整所确定的身体部位的度量值,如放大、缩小等,使得数据结构中的度量值更接近地对应于人类身体的典型模型。在步骤5 中,可使用由所扫描的位掩模确定的度量值来定义骨架模型中的一个或多个关节。在步骤530,使用骨架映射来跟踪在步骤528中创建的模型。例如,可在用户在视野内在相机前的物理空间中移动时调整和更新用户18的骨架模型。来自捕捉设备的信息可用于调整模型,使得骨架模型准确地表示用户。在一个示例中,这是通过向该骨架模型的一个或多个受力方面施加一个或多个力,以将该骨架模型调整成更接近地对应于人类目标和物理空间的姿态的姿态来实现的。在步骤532中,基于骨架映射来捕捉运动,以生成用户运动捕捉文件。在一个实施例中,捕捉运动的步骤532可包括计算由所述扫描标识的一个或多个身体部位的位置、方向、加速度和曲率。在X、Y、Z空间中计算身体部位的位置,以创建该身体部位在相机的视野内的三维位置表示。根据该位置来计算身体部位移动的方向。方向性移动可具有在X、Y 和Z方向的任何一个或其组合上的分量。确定该身体部位在X、Y、Z空间中的移动的曲率, 例如以表示身体部位在捕捉区域内的非线性移动。速度、加速度和曲率计算并不取决于方向。可以理解,对Χ、Υ、Ζ笛卡尔映射的使用仅仅是作为示例来提供的。在其他实施例中,可使用不同的坐标映射系统来计算移动、速度和加速度。当检查身体部位自然地绕关节旋转的移动时,例如球面坐标映射可能是有用的。一旦分析了在扫描中的所有身体部位以后,就可以为目标更新在步骤532生成的用户运动捕捉文件。在一个示例中,用户运动捕捉文件是基于与所跟踪的模型相关联的信息来实时生成的。例如,在一个实施例中,运动捕捉文件可包括含X、Y和Z值的矢量,这些矢量在模型于各个时间点被跟踪时用于定义该模型的关节和骨骼。如上所述,被跟踪的模型可基于各个时间点的用户运动来进行调整,并且可生成并存储运动的模型的运动捕捉文件。在与目标识别、分析和跟踪系统交互的用户进行自然移动期间,该用户运动捕捉文件可捕捉所跟踪的模型。例如,可生成用户运动捕捉文件,使得该用户运动捕捉文件可自然地捕捉用户在与目标识别、分析和跟踪系统交互期间进行的任何移动或运动。该用户运动捕捉文件可包括与例如用户在不同时间点的运动的快照相对应的帧。在捕捉了所跟踪的模型之后,可在用户运动捕捉文件的一帧中呈现与模型相关联的信息,该信息包括在一特定时间点应用于该模型的任何移动或调整。该帧中的信息可包括例如含χ、γ和Z值的矢量以及一时间戳,这些矢量定义所跟踪的模型的关节和骨骼,该时间戳可指示例如用户执行了对应于所跟踪的模型的姿态的移动的时间点。在一个实施例中,步骤520-532是由捕捉设备20执行的。此外,尽管步骤520-532 被描述为是由捕捉设备20来执行的,但这些步骤中的各个步骤均可由诸如计算环境12之类的其他组件来执行。例如,捕捉设备20可向计算设备12提供视觉和/或深度图像,计算设备12接着将确定深度信息、检测人类目标、扫描目标、生成并跟踪模型、以及捕捉人类目标的运动。 图7示出了通过图6的过程生成的、表示所扫描的人类目标的骨架模型或映射533 的示例。根据一个实施例,骨架模型540可包括可将人类目标表示为三维模型的一个或多个数据结构。每个身体部位可被表征为定义骨架模型533的关节和骨骼的数学矢量。骨架模型533包括关节nl-nl8。关节nl-nl8中的每一个可使得在这些关节之间定义的一个或多个身体部位能相对于一个或多个其他身体部位移动。表示人类目标的模型可包括多个刚性和/或可变形身体部位,这些身体部位可由诸如“骨骼”等的一个或多个结构件来定义,而关节nl-nl8位于相邻骨骼的交叉点处。关节nl-nl8可使得与骨骼和关节 nl-nl8相关联的各个身体部位能够彼此独立地或彼此相对地移动。例如,在关节n7与nil 之间定义的骨骼对应于前臂,该前臂可独立于例如在关节nl5与nl7之间定义的对应于小腿的骨骼而移动。可以理解,某些骨骼可对应于人类目标中的解剖学骨骼,和/或某些骨骼在人类目标中可能不具有对应的解剖学骨骼。骨骼和关节可共同构成骨架模型,它们可以是该模型的构成元素。轴向滚动角可用于定义肢相对于其父肢和/或躯干的旋转定向。例如,如果骨架模型正示出手臂的轴向旋转,则滚动关节可用来指示相关联的腕所指的方向(例如,手掌向上)。通过检查肢相对于其父肢和/或躯干的定向,可确定轴向滚动角。例如,如果正在检查小腿,则可检查小腿相对于相关联的大腿和髋部的定向以便确定轴向滚动角。作为为识别回环运动的过程的部分,系统可随时间跟踪关节的运动以标识用户的运动。图8提供了如图2所示的姿势识别引擎190的示例性实施例的进一步细节。在一个实施例中,姿势识别引擎190可被用于识别回环运动。如所示出的,姿势识别引擎190可包括确定诸如回环运动之类的一个或多个姿势的至少一个过滤器450。过滤器450包括定义姿势452 (以下称为“姿势”)以及该姿势的元数据454的参数。过滤器可包括可识别姿势或以其他方式处理深度、RGB或骨架数据的代码和相关联的数据。例如,包括一只手从身体背后越过身体前方的运动的手臂滚转可被实现为包括表示用户的一只手或双手从身体背后越过身体前方的移动的信息的姿势452,该移动将由深度相机来捕捉。然后可为该姿势 452设定参数454。在姿势452是手臂滚转的情况下,参数454可以是该手必须达到的阈值速度、该手必须行进的距离(或者是绝对的,或者是作为整体相对于用户的大小)、以及由识别引擎来作出评级的姿势发生的置信度。姿势452的这些参数454可以在各应用之间、 在单个应用的各上下文之间、或在一个应用的一个上下文内随着时间而变化。姿势参数可包括阈值角度(例如髋部_大腿角度、前臂_ 二头肌角度等)、运动发生或不发生的周期数、 阈值周期、阈值位置(开始、结束)、移动方向、速度、加速度、移动的坐标等。过滤器不需要具有参数。例如,返回用户的高度的“用户高度”过滤器可能不允许可被调节的任何参数。替换的“用户高度”过滤器可具有可调节参数,如在确定用户的高度时是否考虑用户的鞋、发型、头饰以及体态。过滤器的输入可包括诸如关于用户的关节位置的关节数据、如在关节处相交的骨骼所形成的角度、来自捕捉区域的RGB色彩数据、以及用户的一方面的变化率等内容。来自过滤器的输出可包括诸如正作出给定姿势的置信度、作出姿势运动的速度、以及作出姿势运动的时间等内容。
姿势识别引擎190可具有向姿势过滤器450提供功能的基础识别引擎456。在一个实施例中,基础识别引擎456实现的功能包括跟踪所识别的姿势和其他输入的随时间输入(input-over-time)存档、隐马尔可夫模型实现(其中模型化系统被假定为具有未知参数的马尔可夫过程(当前状态封装了确定将来状态所需的任何过去状态信息,因此不必为此目的而维护任何其它过去状态信息的过程),并且隐藏参数从可观察数据中确定)、以及解决姿势识别的特定实例所需的其他功能。

过滤器450在基础识别引擎456之上加载并实现,并且可利用引擎456提供给所有过滤器450的服务。在一实施例中,基础识别引擎456处理所接收到的数据,以便确定它是否满足任何过滤器450的要求。由于这些诸如对输入进行解析等所提供的服务是由基础识别引擎456 —次性提供而不是由每一过滤器450来提供的,因此这种服务在一段时间内只需被处理一次而不是在该时间段期间由每一过滤器450处理一次,由此减少了确定姿势所需的处理。应用可使用由识别引擎190提供的过滤器450,或者该应用可提供它自己的过滤器450,该过滤器被插入到基础识别引擎456中。在一实施例中,所有过滤器450具有启用该插入特性的公共接口。此外,所有过滤器450可利用参数454,因此可使用如下所述的单个姿势工具来诊断并调节整个过滤器系统。这些参数454可由姿势工具为应用或应用的上下文来调节。有各种可以与姿势相关联的输出。在一个示例中,可以有关于姿势是否正在发生的基线“是或否”。在另一个示例中,还可以有置信水平,其对应于用户的被跟踪的移动对应于姿势的可能性。这可以是范围为0和1之间(包括端点)的浮点数的线性标度。在接收该姿势信息的应用不能接受假肯定作为输入的情况下,它可仅使用具有如至少0. 95的高置信水平的那些所识别的姿势。在应用甚至以假肯定为代价而必须识别姿势的每一实例的情况下,它可使用至少具有低得多的置信水平的姿势,如仅仅大于0. 2的那些姿势。姿势可具有在两个最近步之间的时间的输出,并且在仅注册了第一步的情况下,这可被设为保留值,如-1 (因为任何两步之间的时间必须为正)。姿势也可具有关于在最近一步期间达到的最高大腿角的输出。姿势或其一部分可将它必须在其中发生的空间体作为参数。在姿势包括身体移动的情况下,该空间体通常可相对于身体来表达。例如,对于惯用右手的用户的美式足球投掷姿势可仅在不低于右肩410a、且与投掷手臂402a-410a在头422的相同侧的空间体中识另IJ。可能不必要定义空间体的所有边界,如对于该投掷姿势,其中从身体向外的边界留着不被定义,并且该空间体无限地向外延伸,或者延伸到正被监视的捕捉区域的边缘。另外,姿势可堆叠在彼此之上。即,用户一次可表达多于一个的姿势。例如,并非在作出投掷姿势时不允许除了投掷之外的任何输入,也不要求用户除了该姿势的分量之外保持不动(例如,在作出仅涉及一条手臂的投掷姿势时站着不动)。在姿势堆叠时,用户可同时作出跳跃姿势和投掷姿势,并且这两个姿势都将被姿势弓I擎识别出。图9是描绘用于确定用户是否正执行回环运动的过程(图5的执行步骤506)的一个实施例的流程图。图9描述了一种基于规则的方法,该方法用于由姿势识别引擎190 应用一个或多个姿势过滤器来确定用户的运动数据是否匹配特定姿势。在一个实施例中, 姿势可对应于由用户执行的一个或多个回环运动。可以理解,尽管在该具体示例中描述了对单个姿势的检测,但是图9的过程可被多次执行以检测在活动姿势集中的多个姿势。所描述的过程可针对多个活动姿势而并行或顺序地执行。在步骤534,姿势识别引擎访问具体目标的骨架跟踪数据以开始确定该目标是否作出了所选的姿势或回环运动。如图6所述,可从用户运动捕捉文件处访问骨架跟踪数据。 在步骤536,姿势识别弓I擎针对一个或多个预先确定的身体部位来 过滤骨架跟踪数据,该一个或多个预先确定的身体部位与在所选的姿势过滤器中标识的所选的姿势或回环运动有关。步骤536可包括仅访问与所选的姿势有关的数据,或访问目标的全部骨架跟踪数据并忽略或丢弃与所选的姿势不相关的信息。例如,手臂滚转过滤器可指示出仅人类目标的手与所选的姿势或回环运动有关,从而使得与其他身体部位有关的数据可以被忽略。这种技术可通过将处理限于被预先确定为对所择的姿势是显著的信息来提高姿势识别引擎的性能。在步骤538,姿势识别引擎针对预先确定的轴向移动来过滤骨架跟踪数据。例如, 所选的姿势的过滤器可指定仅沿着轴的某一子集的移动是相关的。在步骤540,姿势识别引擎访问在姿势过滤器中指定的规则j。在图9的过程的第一次迭代中,j等于1。姿势或回环运动可包括为了姿势被识别而需要被满足的多个参数。 这些参数中的每个参数可在单独的规则中指定,虽然在单个规则中可包括多个分量。规则可指定目标的身体部位为了使姿势被满足而必须满足的阈值距离、位置、方向、曲率、速度和/或加速度以及其他参数。规则可应用于一个身体部位或多个身体部位。而且,规则可指定诸如位置之类的单个参数,或诸如位置、方向、距离、曲率、速度和加速度之类的多个参数。在步骤542,姿势识别引擎将在步骤536和538过滤的骨架跟踪数据与规则的指定参数进行比较,以确定该规则是否被满足。例如,姿势识别引擎可确定手的起始位置是否位于起始位置参数的阈值距离内。规则可进一步指定并且引擎确定手是否在指定方向上移动、在指定方向上从起始位置移动了阈值距离;沿指定轴在阈值曲率内移动、以指定速度或超过指定速度移动;达到或超过指定加速度。如果引擎确定骨架跟踪信息不满足过滤器规则中指定的参数,则在步骤544中引擎返回失败或姿势过滤器未匹配的响应。在一个实施例中,指示用户运动数据不匹配回环运动的响应可被返回给在计算设备12上执行的应用 202。在步骤546,姿势识别引擎确定姿势过滤器是否指定了对于要被完成的姿势必须被满足的附加规则。如果过滤器中包括附加规则,则j递增1且过程返回到步骤540,在步骤540访问下一规则。如果没有附加规则,则在步骤550姿势识别引擎返回姿势过滤器已被匹配的指示。在一个实施例中,指示用户运动数据匹配回环运动的响应可被返回给在计算设备12上执行的应用202。图9的步骤544和550对正被分析的姿势返回简单的通过/失败的响应。在其他示例中,图9并不返回简单的通过/失败的响应,而是将返回姿势过滤器被满足的置信水平。对于过滤器中的每个规则,确定目标的移动满足或不满足指定参数的量。基于这些量的聚集,识别引擎返回目标确实执行了姿势的置信水平。图10是描述了用于确定用户运动数据是否匹配一个或多个回环运动准则的过程 (图5的步骤510)的一个实施例的流程图。在步骤600,访问包括从捕捉设备20中的一个或多个传感器捕捉的用户运动数据的用户运动捕捉文件。在步骤602,访问与匹配的回环运动(在图5的步骤506中获得的)相关联的回环运动数据结构。在一个实施例中,回环运动数据结构可包括与在执行回环运动时所涉及的特定身体部位的移动相对应的一个或多个移动点以及与每个移动点相关联的回环运动准则。在一个实施例中,回环运动准则可包括与执行回环运动序列相关联的音乐节拍序列,执行回环运动序列所涉及的身体部位的移动期间所产生的能量,以及与回环运动序列相关联的匹配阈值。也可使用其他准则。在步骤604,将来自用户运动捕捉文件的身体部位的移动与同匹配的回环运动相关联的回环运动数据结构中的相对应的移动点进行关联。在步骤606,确定用户运动数据中身体部位的移动是否与同回环运动相关联的音乐节拍序列对齐。在一个实施例中,回环运动中的每个移动点可与特定音乐节拍序列相关联。例如,可通过确定身体部位的移动是否在与音乐节拍序列的发生时间相同的时刻发生来确立身体部位的移动与音乐节拍的对齐。 如果确定身体部位的移动与同回环运动相关联的音乐节拍序列不对齐,则系统在步骤616 返回音 乐节拍不匹配的响应,指示用户运动数据不匹配回环运动准则。在步骤608,确定用户运动数据中通过身体部位的移动所产生的能量匹配于回环运动中相对应的移动点的能量。在一个示例中,基于由用户执行回环运动序列所涉及的身体部位的移动期间所产生的动能来确定能量。根据身体部位的质量和身体部位的移动速度来推导动能。如将理解的,动能等于二分之一乘以对象的质量乘以对象的速度的平方。例如,如果身体部位具有质量5. 0磅,并且可按1. 0米/秒的速度移动,则通过身体部位的移动所产生的动能等于40焦耳。在一个实施例中,可将用户通过移动身体部位所产生的动能与同回环运动中相对应的移动点相关联的动能值范围进行比较,以确定用户运动数据中身体部位的移动的能量是否匹配于回环运动中相对应的移动点的能量。例如,如果确定与回环运动中的特定移动点相关联的典型动能值范围是在40-50焦耳范围之间——如果通过移动身体部位产生的动能被确定为比方说例如43焦耳,则用户移动身体部位的能量匹配于同该移动点相关联的能量。身体部位的质量可以是从深度信息估计的,或者其可以是用户简档信息的部分。在步骤608,如果确定用户运动数据中身体部位的移动的能量不匹配于同回环运动中相对应的移动点相关联的能量,则在步骤616,系统返回能量不匹配的响应,指示用户运动数据不匹配于回环运动准则。在步骤610,作出确定用户运动数据中身体部位的移动是否匹配于同回环运动相关联的阈值的检查。在一个实施例中,匹配阈值是对用户运动数据与回环运动的相关性的度量。在一个示例中,与特定回环运动相关联的匹配阈值可被定义为预定义匹配百分比。在此示例中,例如,如果与特定回环运动相关联的预定义匹配百分比为80%,并且如果用户移动8个身体部位已匹配于音乐节拍序列以及匹配于同回环运动相关联的10个移动点中的 8个相对应的移动点的能量,则确定用户运动数据满足同回环运动相关联的匹配阈值。在步骤612,作出确定用户运动数据中是否有附加身体部位要分析的检查。如果有附加身体部位要分析,则如步骤604中所描述地分析下一身体部位的移动。如果确定没有附加身体部位要分析且用户运动数据满足与回环运动相关联的匹配阈值,则在步骤614返回指示用户运动数据匹配于回环运动准则的响应。图11A-11F示出了根据本发明的一个实施例的描绘用户与在计算机设备上执行的应用的交互的各种用户界面屏幕。图IlA示出了计算设备12中向与计算设备12中的应用202进行交互的用户显示选项702的用户界面700。在所例示的示例中,选项702显示回环运动序列,诸如跳跃运动序列,其中回环运动序列是由屏幕上角色画像来执行的。如进一步例示的,用文本消息提示“模仿剪影的移动以开始游戏! ”来提示用户,该文本消息指令用户执行由屏幕上角色画像所显示的回环运动序列。在一个示例中,用户将需要正确地执行跳跃运动以开始游戏。图IlB和IlC示出了用户朝着执行回环运动序列的进度。如图所示,用户执行经由选项702所显示的“跳跃运动”回环运动序列的进度是由进度跟踪条704来描绘的。进度跟踪条704的已填充部分705指示用户已成功完成回环运动序列的一个或多个迭代。也可注意到,选项702的视觉强度的程度基于用户执行回环运动序列的进度而增加。如进一步例示的,可使用指示用户朝执行回环运动序列的进度的文本消息“你正取得进展! ”来提示用户。图IlD和IlE示出了可指导用户执行回环运动序列的方式。图IlD示出了在用户未准确地执行由选项702描绘的回环运动时提供给用户的指导文本。在一个示例中,可向用户提供指导文本,诸如“注意画圈区域以准确执行运动”,其描述了用户可执行回环运动的方式。类似地,图IlE示出了在用户未根据与回环运动相关联的一个或多个回环运动准则执行由选项702描绘的回环运动时提供给用户的指导文本。例如,可向用户提供指导文本,诸如“按音乐节拍移动并更用力地运动”,其描述了用户可执行回环运动的方式。还可注意到,当用户运动不匹配于回环运动时或当用户运动不匹配于一个或多个回环运动准则时,进度条704的已填充部分705或选项702的视觉强度减小。图IlF是用户完成回环运动序列的例示。如可观察到的,当用户成功地完成回环运动序列时,进度条704被完全填充。选项702的视觉强度也达到了最大强度,指示用户对选项702的自动选择。如进一步例示的,还可向用户显示诸如“你已成功选择了此选项!,, 之类的文本消息。图12是描述允许用户使用回环运动作出选择的过程的另一实施例的流程图。在一个实施例中,图12的步骤可由姿势识别引擎190、应用控制逻辑200、回环识别引擎194 和/或显示模块196中的软件模块来执行。在步骤620,经由计算设备12中的用户界面向用户呈现多个基于技能的选项。在步骤622,向用户显示与每个基于技能的选项相关联的不同的回环运动序列。不同的回环运动序列各自具有执行相关联回环运动序列的不同技能水平。在一个示例中,不同的技能水平可包括初学者水平(例如,容易)、中等水平(例如,较难)和高级水平(例如,最难)。在步骤624,从传感器接收用户运动数据。如图5中所讨论的,捕捉设备20中的一个或多个传感器可接收关于用户运动的信息。在步骤626,基于接收到的用户运动数据作出确定用户正执行由基于技能的选项描绘的回环运动中的一个的检查。步骤626可以包括确定用户运动数据是否匹配于姿势识别引擎190中定义的一个或多个回环运动。如果确定用户未执行由基于技能的选项描绘的回环运动中的任一个,则在步骤628,向用户提供关于回环运动的反馈。如果确定用户正执行回环运动中的一个,则在步骤630,确定用户运动数据是否匹配于关于所执行回环运动的一个或多个回环运动准则,如图5中所讨论的。如果确定用户正执行回环运动中的一个,但是并非根据一个或多个回环运动准则,则在步骤628,向用户提供关于可执行回环运动的方式的反馈。在步骤632和634,如图2所讨论地确定以及显示用户执 行由基于技能的选项描绘的回环运动序列的进度。在步骤636,作出确定用户已完成回环运动序列的检查。如果确定用户尚未完成回环运动序列,则由传感器来捕捉用户运动数据,如在步骤624所讨论的。如果确定用户已完成回环运动序列,则在步骤638自动地触发对经由用户界面显示的与所执行回环运动相关联的基于技能的选项的选择。图13A-13C示出了根据本发明的另一实施例的描绘用户与在计算机设备上执行的应用的交互的各种用户界面屏幕。图13A示出了向与计算设备12中的应用202进行交互的用户18显示一个或多个基于技能的选项802、804和806的用户界面700。如图所示, 基于技能的选项802、804和806显示不同的回环运动序列,这些回环运动序列具有与执行回环运动序列相关联的不同的技能水平。如进一步例示的,并且在一个示例中,技能水平可包括“初学者水平”、“中等水平”和“高级水平”。图13B示出了用户朝执行由图13A中所示的基于技能的选项中的一个描绘的回环运动序列的进度。一旦确定用户正执行由基于技能的选项802、804和806中的一个描绘的回环运动,就跟踪用户执行回环运动序列的进度。如图所示,进度跟踪条704的已填充部分 705指示用户已成功完成由基于“中等”技能的选项804描绘的回环运动序列的一个或多个迭代。也可注意到,选项804的视觉强度基于用户执行回环运动序列的进度而增加。如进一步例示的,可用指示用户朝执行回环运动序列的进度的文本消息“你正取得进展! ”来提示用户。图13C是用户完成由基于技能的选项描绘的回环运动序列的例示。如可观察到的,当用户成功地完成回环运动序列时,进度条704被完全填充。选项804的视觉强度也达到了最大强度,指示用户对选项804的自动选择。如进一步例示的,还可向用户显示诸如 “你已成功选择了此选项! ”之类的文本消息。图14是描述了用于执行所公开技术的各操作的过程的另一实施例的流程图。如图5中所讨论的,当用户成功执行由应用中所描绘的选项描绘的回环运动序列时,该选项被自动地选择。根据所公开技术的另一实施例,与选项相关联的诸如“单玩家”模式或“多玩家”模式之类的特定模式可取决于与应用同时交互的用户的数目而被自动触发。在一个实施例中,图14的步骤可由姿势识别引擎190、应用控制逻辑200、回环识别引擎194和/ 或显示模块196中的软件模块来执行。在步骤640,跟踪捕捉设备的视野中的一个或多个用户。如图6中所讨论的,捕捉设备20中的一个或多个传感器可被用来跟踪捕捉设备的视野内的一个或多个用户。在步骤642,经由计算设备中的用户界面向用户显示选项。在步骤644,如图5中讨论的,向被跟踪的用户提示执行由选项所显示的回环运动序列。在步骤645,从传感器接收到一个或多个被跟踪的用户的用户运动数据。在步骤 648,作出一个或多个被跟踪的用户是否正执行由选项描绘的回环运动的检查。如果确定一个或多个被跟踪的用户未执行由选项描绘的回环运动,则在步骤650向被跟踪的用户提供关于回环运动的反馈。在步骤652,作出确定一个或多个被跟踪的用户的用户运动数据是否匹配于一个或多个回环运动准则的检查,如图5中所讨论的。如果确定一个或多个被跟踪的用户正执行回环运动,但是并非根据一个或多个回环运动准则,则在步骤650,向用户提供关于回环运动应被执行的方式的反馈。在步骤654和656,如图5所讨论地确定以及显示一个或多个被跟踪的用户执行由选项描绘的回环运动序列的进度。在步骤658,作出确定一个或多个被跟踪的用户是否已完成回环运动序列的检查。如果确定一个或多个被跟踪的用户尚未完成回环运动序列,则由传感器来捕捉用户运动数据 ,如在步骤646所讨论的。如果确定一个或多个被跟踪的用户已成功完成回环运动序列,则在步骤660,确定已完成回环运动序列的该一个或多个被跟踪的用户的人数。在步骤662,响应于确定已完成执行回环运动序列的该一个或多个被跟踪的用户的人数,自动触发对选项的单玩家或多玩家模式的选择。图15A和15B示出了根据本发明的又一实施例的描绘用户与在计算机设备上执行的应用的交互的各种用户界面屏幕。图15A示出了与计算设备12中的应用202进行交互的三个用户18、19和21。用户界面700向用户18、19和21显示描绘回环运动序列的选项 702。图15A还示出显示用户执行回环运动序列的进度的进度跟踪条704。进度跟踪条704 的已填充部分705指示用户已成功完成回环运动序列的一个或多个迭代。图15B是被跟踪的用户完成回环运动序列的例示。如可观察到的,当被跟踪的用户成功地完成回环运动序列时,进度条704被完全填充。选项702的视觉强度也达到了最大强度,指示用户对选项702的自动选择。如可观察到的,自动触发对选项702的“多玩家” 模式的选择,因为一个以上的玩家同时与应用202进行交互。如进一步例示的,还可向用户显示诸如“选择了 3个玩家的多玩家模式”之类的文本消息。尽管用结构特征和/或方法动作专用的语言描述了本主题,但是可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。更确切而言,上述具体特征和动作是作为实现权利要求的示例形式公开的。本发明的范围由所附的权利要求进行定义。
权利要求
1.一种用于执行用户(18)对选项的选择的方法,包括经由计算设备(12)的用户界面(700)提示用户(18)执行回环运动序列(702),所述用户界面(700)显示选项,所述回环运动序列(702)与所述选项相关联;从连接到所述计算设备(12)的传感器(34,36,38)接收用户运动数据; 基于接收到的用户运动数据确定所述用户(18)是否正执行所述回环运动(702); 如果所述用户(18)正执行所述回环运动(702),则确定所述用户运动数据是否匹配于一个或多个回环运动准则;基于所述用户运动数据匹配于所述一个或多个回环运动准则,确定所述用户(18)执行所述回环运动序列(702)的进度(705);显示所述用户(18)执行所述回环运动序列(702)的进度(705); 基于所述用户(18)执行所述回环运动序列(702)的进度(705)确定所述用户(18)已完成所述回环运动序列(702);以及响应于确定所述用户已完成所述回环运动序列(702),自动触发对所显示的所述选项的选择以及执行与所述选择相关联的功能。
2.如权利要求1所述的方法,其特征在于,所述一个或多个回环运动准则包括以下各项中的至少一个与执行所述回环运动序列相关联的音乐节拍序列;执行所述回环运动序列所涉及的身体部位的移动期间所产生的能量;以及与所述回环运动序列相关联的匹配阈值。
3.如权利要求2所述的方法,其特征在于,确定用户运动数据是否匹配于所述一个或多个回环运动准则进一步包括确定用户运动数据中身体部位的移动是否与同所述回环运动相关联的所述音乐节拍序列对齐;确定用户运动数据中通过身体部位的移动所产生的能量是否匹配于所述回环运动中相对应的移动点的能量,其中所述能量是根据所述身体部位的质量和所述身体部位的移动速度来推导的;以及确定用户运动数据中身体部位的移动是否匹配于与所述回环运动相关联的所述匹配阈值,其中所述匹配阈值是对所述用户运动数据与所述回环运动的相关性的度量。
4.如权利要求1所述的方法,其特征在于所述回环运动包括由所述用户执行的可重复运动,所述可重复运动包括在所述计算设备中执行的应用中的锻炼套路或舞步中的至少一个。
5.如权利要求1所述的方法,其特征在于,显示所述用户执行所述回环运动序列的进度进一步包括向所述用户显示进度跟踪条,其中所述进度跟踪条的已填充部分指示完成所述回环运动序列的百分比。
6.如权利要求1所述的方法,其特征在于所述选项向所述用户描绘执行所述回环运动序列的屏幕上角色画像。
7.如权利要求1所述的方法,其特征在于显示所述选项包括经由所述计算设备中的所述用户界面向所述用户呈现多个基于技能的选项;每个基于技能的选项与不同的回环运动序列相关联;以及所述选项是所述基于技能的选项中的一个。
8.如权利要求1所述的方法,其特征在于提示所述用户包括向所述用户呈现指令所述用户执行所述选项中显示的所述回环运动序列的指导文本;显示所述选项包括描绘执行所述回环运动序列的屏幕上角色画像; 确定所述用户是否正执行所述回环运动包括确定所述用户运动数据是否匹配于一个或多个预定义回环运动;确定所述用户运动数据是否匹配于所述一个或多个回环运动准则包括确定所述用户运动数据中身体部位的移动是否与同所述回环运动相关联的音乐节拍序列对齐,确定所述用户运动数据中通过身体部位的移动所产生的能量是否匹配于所述回环运动中相对应的移动点的能量,以及确定所述用户运动数据中身体部位的移动是否匹配于与所述回环运动相关联的匹配阈值;以及显示所述用户执行所述回环运动序列的进度包括向所述用户显示进度跟踪条,其中所述进度跟踪条的已填充部分指示完成所述回环运动序列的百分比。
9.一个或多个包含处理器可读代码的处理器可读存储设备,所述处理器可读代码用于对一个或多个处理器进行编程以执行一种方法,所述方法包括经由计算设备(12)中的用户界面向用户(18)呈现多个基于技能的选项,每个基于技能的选项与不同的回环运动序列(802,804,806)相关联;显示所述不同的回环运动序列(802,804,806),所述不同的回环运动序列(802,804, 806)各自具有执行相关联回环运动序列的不同技能水平;从连接到所述计算设备(12)的传感器(34,36,38)接收用户运动数据; 基于接收到的用户运动数据确定所述用户(18)是否正执行由所述多个基于技能的选项描绘的所述回环运动序列(802,804,806)中的一个;如果所述用户(18)正执行所述回环运动(802,804,806)中的一个,则确定所述用户运动数据是否匹配于关于被执行的回环运动的一个或多个回环运动准则;基于所述用户运动数据匹配于所述一个或多个回环运动准则,确定所述用户(18)执行所述回环运动序列的进度(705);显示所述用户(18)执行所述回环运动序列的进度(705);基于所述用户执行所述回环运动序列的进度(705)确定所述用户(18)已完成所述回环运动序列;以及响应于确定所述用户已完成所述回环运动序列,自动触发对所述多个基于技能的选项中的一个的选择(804)。
10.如权利要求9所述的一个或多个处理器可读存储设备,其特征在于所述多个基于技能的选项包括与执行所述一个或多个回环运动相对应的初学者水平、 中等水平、和高级水平中的至少一个。
11.如权利要求9所述的一个或多个处理器可读存储设备,其特征在于,所述一个或多个回环运动准则包括以下各项中的至少一个与执行所述回环运动序列相关联的音乐节拍序列;执行所述回环运动序列所涉及的身体部位的移动期间所产生的能量;以及与所述回环运动序列相关联的匹配阈值。
12.如权利要求9所述的一个或多个处理器可读存储设备,其特征在于,显示所述用户执行所述回环运动序列的进度进一步包括向所述用户显示进度跟踪条,其中所述进度跟踪条的已填充部分指示完成所述回环运动序列的百分比。
13.一种用于执行用户对选项的选择的装置,包括深度相机(32),用于跟踪所述捕捉设备(20)的视野中的一个或多个用户(18,19,21);连接到所述深度相机(32)的计算设备(12),用于从所述捕捉设备(20)接收所述一个或多个被跟踪的用户(18,19,21)的用户运动数据,所述计算设备(12)确定所述一个或多个被跟踪的用户(18,19,21)是否正执行回环运动序列(702),如果所述一个或多个被跟踪的用户(18,19,21)正执行所述回环运动序列(702),则所述计算设备(12)确定正执行所述回环运动序列(702)的所述一个或多个被跟踪的用户(18,19,21)的人数,响应于并基于确定正执行所述回环运动序列(702)的所述一个或多个被跟踪的用户(18,19,21)的人数,所述计算设备(12)进入单玩家模式或多玩家模式中的至少一个。
14.如权利要求13所述的装置,其特征在于,还包括连接到所述计算设备的显示设备,所述显示设备提示所述一个或多个被跟踪的用户执行所述回环运动序列,所述回环运动序列是经由所述显示设备的用户界面在选项中显示的。
15.如权利要求14所述的装置,其特征在于所述显示设备经由所述用户界面显示所述一个或多个被跟踪的用户执行所述回环运动序列的进度。
全文摘要
本文描述了基于回环运动的用户选择和导航。提供了用于执行用户对选项的选择的系统。用户界面显示一个或多个选项。每个选项与回环运动序列相关联。作为响应,用户将执行所显示的回环运动序列中的一个。从连接到计算设备的一个或多个传感器接收用户运动数据。基于用户运动数据匹配于与所执行的回环运动相关联的一个或多个回环运动准则来确定用户执行回环运动序列的进度。向用户显示用户执行回环运动序列的进度。响应于确定用户已完成回环运动序列,自动触发对与所执行的回环运动相关联的选项的选择。
文档编号G06F19/00GK102331840SQ20111026640
公开日2012年1月25日 申请日期2011年8月30日 优先权日2010年8月31日
发明者C·伊萨基, K·矢野 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1