姿势风格识别和奖励的制作方法

文档序号:6340846阅读:180来源:国知局
专利名称:姿势风格识别和奖励的制作方法
姿势风格识别和奖励
背景技术
在过去,诸如计算机游戏和多媒体应用程序等计算应用程序使用控制命令来允许 用户操纵游戏人物或应用程序的其他方面。通常,此类控制命令使用例如控制器、遥控器、 键盘、鼠标等来输入。近来,计算机游戏和多媒体应用程序已开始使用照相机和软件姿势识 别引擎来提供人机接口(“HCI”)。使用HCI,检测、解释用户姿势并将其用于控制游戏人物 或应用程序的其他方面。在常规的游戏和多媒体应用程序中,HCI用于在通过/失败的基础上测量用户是 否响应于提示或场景适当地执行了给定姿势。相反,常规系统不测量姿势是如何执行的。只 要HCI系统确定所请求的姿势被执行到一阈值水平,就根据游戏/应用程序度量来奖励用 户。然而,用户的移动可提供远多于所请求的姿势是否被执行到阈值水平的大量信息。不 同用户以不同方式执行姿势。一些用户可比另一些用户更优美地执行给定姿势。一些用户 可能在执行一姿势时比另一些用户更努力地尝试并尽更大的全力。常规的HCI系统在测量 给定姿势的通过/失败状态时未将这些参数考虑在内。

发明内容
此处所公开的是用于确定一给定姿势是否是采用一特定风格来执行的系统和方 法。该附加信息然后可用于个性化游戏或多媒体体验,从而因用户的个人风格而奖励用户。 在一个实施例中,本发明的技术涉及一种游戏系统,该游戏系统包括用于捕捉与用户的运 动有关的数据的图像捕捉设备、用于从该捕捉设备接收图像数据并主存游戏应用程序的计 算环境、以及耦合到该计算环境的视听设备。该计算环境包括一阶姿势识别引擎,用于接收与用户的运动有关的数据并在通过 /失败的基础上确定用户的运动作为预定义姿势是否是合格的。该计算环境还包括用于接 收数据或从该数据导出的信息的二阶姿势识别引擎。二阶姿势识别引擎除了对用户的运动 作为预定义姿势是否是合格的阈值判定之外还确定用户的运动是否包括作为与用户运动 相关联的预定义风格是合格的风格属性。该计算环境还存储二阶姿势识别引擎使用的一组 规则。该组存储的规则包括对一组预定义用户运动何时被解释为预定义风格的定义。该视听设备基于从计算环境接收到的信息来呈现用户和用户的运动的图形表示。 用户或用户周围的图形标识可通过以表示被二阶姿势识别引擎确定为存在的风格的图形 来示出用户的运动来增强。


图IA和IB示出了伴随用户玩游戏的目标识别、分析和跟踪系统的示例实施例。图2示出了可在目标识别、分析和跟踪系统中使用的捕捉设备的示例实施例。图3A示出了可用于在目标识别、分析和跟踪系统中解释一个或多个姿势的计算 环境的示例实施例。图IBB示出了可用于在目标识别、分析和跟踪系统中解释一个或多个姿势的计算环境的另一示例实施例。图4A示出了从图2的目标识别、分析和跟踪系统生成的用户的骨架映射。图4B示出了图2所示的姿势识别器体系结构的进一步细节。图5A和5B示出了可如何堆叠姿势过滤器来创建更复杂的姿势过滤器。图6A、6B、6C、6D和6E示出了用户502在橄榄球视频游戏中可以作出以便发出“完 全接球”信号的示例姿势。图7A、7B、7C、7D和7E示出了在解析图像数据的每一帧来产生用户的骨架图时图 6A、6B、6C、6D和6E的示例“完全接球”姿势。图8是包括一阶和二阶姿势识别引擎的姿势识别器引擎的框图。图9是示出二阶姿势识别引擎的框图。图10是示出二阶姿势识别引擎的操作的流程图。图11是示出用于确定给定移动是否如二阶姿势识别引擎所检测的满足所存储的 与风格有关的规则的详细步骤的流程图。
具体实施例方式现在将参考图1-11来描述本发明的技术的各实施例,本发明一般涉及其中用户 姿势控制在诸如游戏控制台、计算机等计算环境上执行的应用程序的系统。在各实施例中, 本发明的系统以两个过程检测并解释用户移动。第一个过程由标识用户作出的特定姿势的 一阶姿势识别弓I擎来执行。在各实施例中,一旦一姿势被一阶识别弓I擎识别出,二阶姿势识 别引擎就可以执行确定是否能够得出关于所检测到的姿势的性质方面的任何结论的第二 个过程。这些性质方面在本文中有时被称为姿势风格。姿势风格可涉及姿势的各种属性, 例如包括·执行姿势的优美度;·用户执行姿势所尽的努力;·用户在执行姿势时的身体控制;·用户在执行姿势时的移动的精确度;·用户在执行姿势时的移动的效率;·用户在执行姿势时的爆发或剧烈移动;·姿势的缓慢和平稳程度的测量;·姿势的冷静和放松程度的测量;构想了其他风格。以下详细讨论包括用于执行本发明的技术的一阶和二阶姿势识 别引擎在内的硬件和软件。最初参考图1A-2,用于实现本发明的技术的硬件包括目标识别、分析和跟踪系统 10,该系统可用于识别、分析和/或跟踪诸如用户18等的人类目标。目标识别、分析和跟踪 系统10的各实施例包括用于执行游戏或其他应用程序的计算环境12,以及用于从游戏或 其他应用程序提供音频和视觉表示的视听设备16。系统10还包括用于检测设备20捕捉的 用户的姿势的捕捉设备20,计算环境接收并使用该姿势来控制游戏或其他应用程序。这些 组件中的每一各都会在以下详细描述。如图IA和IB所示,在一示例实施例中,在计算环境12上执行的应用程序可以是用户18可能正在玩的拳击游戏。例如,计算环境12可使用视听设备16来向用户18提供 拳击对手22的视觉表示。计算环境12还可使用视听设备16来提供用户18可通过他的或 她的移动来控制的玩家化身M的视觉表示。例如,如图IB所示,用户18可在物理空间中 挥重拳来使得玩家化身M在游戏空间中挥重拳。因此,根据一示例实施例,目标识别、分析 和跟踪系统10的计算环境12和捕捉设备20可用于识别和分析用户18在物理空间中的重 拳,从而使得该重拳可被解释为对游戏空间中的玩家化身40的游戏控制。用户18的其他移动也可被解释为其他控制命令或动作,诸如上下快速摆动、闪 避、滑步、格挡、用拳猛击或挥动各种不同力度的重拳等控制。此外,如以下所解释的,一旦 系统确定姿势是重拳、上下快速摆动、闪避、滑步、格挡等中的一个,则可确定该姿势在物理 空间中的附加性质方面。这些性质方面可影响该姿势(或其他音频或视觉特征)如何在游 戏空间中显示,如以下所解释的。在各示例实施例中,诸如用户18等的人类目标可具有一物体。在这些实施例中, 电子游戏的用户可手持物体从而可以使用玩家和物体的运动来调整和/或控制游戏的参 数。例如,可以跟踪并利用玩家手持球拍的运动来控制电子运动游戏中的屏幕上球拍。在 另一示例实施例中,可以跟踪并利用玩家手持物体的运动来控制电子格斗游戏中的屏幕上 武器。图2示出可在目标识别、分析和跟踪系统10中使用的捕捉设备20的示例实施例。 关于用于本发明的技术的捕捉设备的进一步细节在共同待审的题为“GESTURE TOOL(姿势
工具),,的专利申请第_号和共同待审的题为“STANDARD GESTURES(标准姿
势)”的专利申请第_号中阐明,这些申请的每一个都通过整体引用结合于此。
然而,在一示例实施例中,捕捉设备20可被配置成捕捉带有深度图像视频,该深度图像可 包括经由任何合适的技术——包括例如飞行时间、结构化光、立体图像等——的深度值。根 据一实施例,捕捉设备20可将所计算的深度信息组织为“Z层”,即可与从深度照相机沿其 视线延伸的Z轴垂直的层。如图2所示,捕捉设备20可包括图像照相机组件22。根据一示例实施例,图像照 相机组件22可以是可捕捉场景的深度图像的深度照相机。深度图像可包括所捕捉的场景 的二维0-D)像素区域,其中2-D像素区域中的每一像素可表示来自照相机的所捕捉的场 景中的对象的长度,该长度可采用例如厘米、毫米等单位。如图2所示,根据一示例实施例,图像照相机组件22可包括可用于捕捉场景的深 度图像的顶光组件对、三维(3-D)照相机沈、和RGB照相机观。例如,在飞行时间分析中, 捕捉设备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生成的骨架模型。存在 各种用于确定捕捉设备20所检测的目标或对象是否对应于人类目标的已知技术。骨架映 射技术因而可用于确定该用户的骨架上的各个点,手、腕、肘、膝、鼻、踝、肩的关节,以及骨 盆与脊椎相交之处。其他技术包括将图像变换成该人的身体模型表示以及将图像变换成该 人的网格模型表示。骨架模型然后可被提供给计算环境12,使得计算环境可跟踪骨架模型并呈现与该 骨架模型相关联的化身。计算环境还可基于例如从骨架模型中识别出的用户的姿势和姿势 风格来确定在计算机环境上执行的应用程序中要执行哪些控制命令。例如,如图2所示,计 算环境12可包括姿势识别器引擎190。姿势识别器引擎190将在下文解释,但一般可包括 姿势过滤器集合,每一姿势过滤器包括关于骨架模型可执行(在用户移动时)的姿势的信 息。可将由照相机26 J8和捕捉设备20捕捉的骨架模型形式的数据以及与其相关联的移 动同姿势识别器引擎190中的姿势过滤器进行比较来标识用户(如骨架模型所表示的)何 时执行了一个或多个姿势。那些姿势可与应用程序的各种控制命令相关联。因此,计算环 境12可使用姿势识别器引擎190来解释骨架模型的移动并基于该移动来控制应用程序。图3A示出了可用于在目标识别、分析和跟踪系统中解释一个或多个姿势的计算 环境的示例实施例。诸如以上参考图1A-2描述的计算环境12等计算环境可以是诸如游戏 控制台等多媒体控制台100。如图3A所示,多媒体控制台100包括具有1级高速缓存102、 2级高速缓存104和闪存ROM 106的中央处理单元(CPU) 101。1级高速缓存102和2级高 速缓存104临时存储数据并因此减少存储器访问周期数,从而改进处理速度和吞吐量。CPU 101可以被设置成具有一个以上的核,以及附加的1级和2级高速缓存102和104。闪存 R0M106可存储在多媒体控制台100通电时在引导进程的初始阶段加载的可执行代码。图形处理单元(GPU) 108和视频编码器/视频编解码器(编码器/解码器)114形 成用于高速、高分辨率图形处理的视频处理流水线。数据经由总线从GPU108输送到视频编
8码器/视频编解码器114。视频处理流水线将数据输出到A/V(音频/视频)端口 140以传 输到电视机或其它显示器。存储器控制器110连接到GPU 108以方便处理器访问各种类型 的存储器112,诸如但不局限于RAM。多媒体控制台100包括较佳地在模块118上实现的I/O控制器120、系统管理控制 器122、音频处理单元123、网络接口控制器124、第一 USB主控制器126、第二 USB主控制器 1 和前面板I/O子部件130。USB控制器126和1 用作外围控制器142 (1)-142 (2)、无 线适配器148、和外置存储器设备146(例如闪存、外置⑶/DVD ROM驱动器、可移动介质等) 的主机。网络接口 1 和/或无线适配器148提供对网络(例如因特网、家庭网络等)的 访问并且可以是包括以太网卡、调制解调器、蓝牙模块、电缆调制解调器等的各种不同有线 和无线适配器组件中任一种。提供系统存储器143以存储在引导进程期间加载的应用程序数据。提供媒体驱动 器144且其可包括DVD/CD驱动器、硬盘驱动器、或其它可移动媒体驱动器等。媒体驱动器 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( )由游戏应用程序和系统应用程序共 享。输入设备不是保留资源,但却在系统应用程序和游戏应用程序之间切换以使其各自具 有设备的焦点。应用程序管理器较佳地控制输入流的切换,而无需知晓游戏应用程序的知 识,并且驱动程序维护有关焦点切换的状态信息。照相机沈、观和捕捉设备20可定义控制 台100的附加输入设备。图IBB示出了可用于在目标识别、分析和跟踪系统中解释一个或多个姿势的计算 环境220的另一示例实施例,该计算环境可以是图1A-2所示的计算环境12。计算系统环 境220只是合适的操作环境的一个示例,并且不旨在对所公开的主题的使用范围或功能提 出任何限制。也不应该将计算环境220解释为对示例性操作环境220中示出的任一组件或 其组合有任何依赖性或要求。在某些实施例中,所描绘的各种计算元件可包括被配置成实 例化本发明的具体方面的电路。例如,本发明中使用的术语“电路”可包括被配置成通过固 件或开关来执行功能的专用硬件组件。在其他示例实施例中,术语“电路”可包括由具体化 可操作来执行功能的逻辑的软件指令来配置的通用处理单元等。在其中电路包括硬件和软 件的组合的实施例中,实现者可以便携具体化逻辑的源代码,并且该源代码可被编译成可 由通用处理单元来处理的机器可读代码。由于本领域的技术人员能理解,现有技术已经发 展到在硬件、软件或硬件/软件的组合之间几乎没有差别的地步,因此是选择硬件还是软 件来实现具体功能是留给实现者的设计选择。更具体地,本领域的技术人员可以理解,软件 进程可被变换成等效的硬件结构,而硬件结构本身可被变换成等效的软件进程。由此,对硬 件实现还是软件实现的选择是一个设计选择并留给实现者。在图;3B中,计算环境220包括计算机Ml,其通常包括各种计算机可读介质。计 算机可读介质可以是能由计算机241访问的任何可用介质,而且包含易失性和非易失性介 质、可移动和不可移动介质。系统存储器222包括诸如ROM 223和RAM 260等易失性和/或 非易失性存储器形式的计算机存储介质。基本输入/输出系统224 ¢10 包括如在启动时帮助在计算机Ml内的元件之间传输信息的基本例程,它通常储存在ROM 223中。RAM 260 通常包含处理单元259可以立即访问和/或目前正在操作的数据和/或程序模块。作为示 例而非局限,图3B示出了操作系统225、应用程序226、其它程序模块227和程序数据228。计算机241还可以包括其他可移动/不可移动、易失性/非易失性计算机存储介 质。仅作为示例,图3B示出了对不可移动、非易失性磁介质进行读写的硬盘驱动器238,对 可移动、非易失性磁盘邪4进行读写的磁盘驱动器239,以及对诸如CD ROM或其它光学介质 等可移动、非易失性光盘253进行读写的光盘驱动器M0。可以在示例性操作环境中使用 的其他可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存 卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器238通常由不可移动 存储器接口,如接口 234连接至系统总线221,磁盘驱动器239和光盘驱动器240通常由可 移动存储器接口,如接口 235连接至系统总线221。以上讨论并在图;3B中示出的驱动器及其相关联的计算机存储介质为计算机241 提供了对计算机可读指令、数据结构、程序模块和其他数据的存储。在图3B中,例如,硬盘 驱动器238被示为存储操作系统258、应用程序257、其他程序模块256和程序数据255。注 意,这些组件可以与操作系统225、应用程序226、其他程序模块227和程序数据2 相同, 也可以与它们不同。操作系统258、应用程序257、其他程序模块256和程序数据255在这里 被标注了不同的标号是为了说明至少它们是不同的副本。用户可以通过输入设备,如键盘 251和定点设备252(通常称为鼠标、跟踪球或触摸垫)向计算机241输入命令和信息。其 他输入设备(未示出)可以包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。这些 和其他输入设备通常由耦合至系统总线的用户输入接口 236连接至处理单元259,但也可 以由其他接口和总线结构,如并行端口、游戏端口或通用串行总线(USB)连接。照相机沈、 28和捕捉设备20可定义控制台100的附加输入设备。监视器242或其他类型的显示设备 也经由接口,如视频接口 232连接至系统总线221。除监视器以外,计算机还可以包括其他 外围输出设备,如扬声器244和打印机M3,它们可以通过输出外围接口 233连接。计算机241可使用至一个或多个远程计算机,如远程计算机M6的逻辑连接在网 络化环境中操作。远程计算机246可以是个人计算机、服务器、路由器、网络PC、对等设备或 其他常见的网络节点,且通常包括许多或所有以上相对于计算机241描述的元件,尽管在 图3B中仅示出了存储器存储设备M7。图:3B中所示的逻辑连接包括局域网(LAN) 245和广 域网(WAN049,但也可以包括其他网络。这样的联网环境在办公室、企业范围计算机网络、 内联网和因特网中是常见的。当在LAN联网环境中使用时,计算机241通过网络接口或适配器237连接至LAN 2450当在WAN联网环境中使用时,计算机241通常包括调制解调器250或用于通过诸如因 特网等WAN 249建立通信的其他装置。调制解调器250可以是内置或外置的,它可以经由 用户输入接口 236或其他适当的机制连接至系统总线221。在网络化环境中,关于计算机 241所描述的程序模块或其部分可被储存在远程存储器存储设备中。作为示例而非限制,图 3B示出了远程应用程序248驻留在存储器设备247上。可以理解,所示的网络连接是示例 性的,且可以使用在计算机之问建立通信链路的其他手段。如上所述,计算环境12内的姿势识别器引擎190被设置来接收姿势信息并从该信 息中标识姿势和姿势风格。具体地,姿势识别器引擎190包括用于检测姿势的一阶识别引擎190a,以及用于检测所检测到的姿势的性质方面的二阶识别引擎190b。现在将描述一阶 识别引擎190a,之后描述二阶识别引擎190b。图4A描绘了可从姿势设备20生成的用户的示例骨架映射。在该实施例中,标识 各种关节和骨骼每一手302、每一前臂304、每一肘306、每一二头肌308、每一肩310、每一 臀312、每一大腿314、每一膝316、每一前腿318、每一脚320、头322、躯干324、脊椎的顶部 326和底部328、以及腰330。在跟踪多个点的情况下,可标识另外的特征,如手指或脚趾的 骨骼和关节,或脸部的各个特征,如鼻和眼。用户可通过移动他/她的身体创建姿势。姿势包括用户的运动或姿态,其可被捕 捉为图像数据并解析其意义。姿势可以是动态的,包括运动,如模仿扔球。姿势可以是静态 姿态,如在一个人的躯干3 前面交叉握住他的前臂304。姿势也可包含道具,如通过挥动 仿制的剑。姿势可包括多于一个身体部位,如拍双手302,或是较微小的运动,如撅起一个人 的嘴唇。姿势可用于由一阶识别引擎190a在一般计算上下文中输入。例如,手302或其他 身体部位的各种运动可对应于常见的系统级任务,如在分层列表中向上或向下导航、打开 文件、关闭文件和保存文件。姿势也可由一阶识别引擎190a取决于游戏在视频游戏专用上 下文中使用。例如,对于驾驶游戏,手302和脚320的各种运动可对应于在一方向上操控车 辆、换挡、加速和刹车。用户可通过自己在原地行走或奔跑来生成对应于行走或奔跑的姿势。用户可另选 地提起并放下每一腿312-320来在不移动的情况下模拟行走。一阶识别引擎190a可通过 分析每一臀312和每一大腿314来解析该姿势。当一个臀-大腿角(如相对于垂直线测量 的,其中站立的腿具有0°的臀-大腿角,而向前水平伸展的腿具有90°的臀-大腿角)超 过相对于另一大腿的特定阈值时,可识别一步。行走或奔跑可在交替的腿的某一数量的连 续步之后被识别。两个最近的步之间的时间可被认为是周期。在不满足阈值角度的某一数 量的周期之后,系统可确定行走或奔跑姿势已停止。给定“行走或奔跑”姿势,应用程序可为与该姿势相关联的参数设定值。这些参数 可包括上述阈值角度、发起行走或奔跑姿势所需的步数、结束姿势的没有发生步的周期数、 以及确定姿势是行走还是奔跑的阈值周期。快周期可对应于奔跑,因为用户将快速地移动 他的腿,而较慢的周期可对应于行走。姿势最初可以与一组默认参数相关联,应用程序可用其自己的参数来覆盖该组默 认参数。在这一场景中,不迫使应用程序提供参数,但是应用程序可改为使用一组允许在没 有应用程序定义的参数的情况下识别姿势的默认参数。有各种可以与姿势相关联的输出。可以有关于姿势是否正在发生的基线“通过或 失败”。还可以有置信水平,其对应于用户跟踪的移动对应于姿势的可能性。这可以是范围 为0和1之间(包括端点)的浮点数的线性标度。在接收该姿势信息的应用程序不能接受 假肯定作为输入的应用程序中,它可仅使用具有高置信水平,如至少.95的已识别的姿势。 在应用程序必须识别姿势的每一实例、甚至是以假肯定为代价的情况下,它可使用至少具 有低得多的置信水平的姿势,如仅仅大于.2的那些姿势。姿势可具有关于两个最近步之间 的时间的输出,并且在仅注册第一步的情况下,这可被设为保留值,如-ι(因为任何两步之 间的时间必须为正)。姿势也可具有关于在最近一步期间达到的最高大腿角的输出。
12
另一示例性姿势是“脚跟提起跳”。在该姿势中,用户可通过将他的脚跟提离地面, 但保持他的脚趾着地来创建该姿势。另选地,用户可跳向空中,其中他的脚320完全离开地 面。该系统可通过分析肩310、臀312和膝316的角度关系来解析该姿势的骨架,以查看它 们是否在等于直立的对齐位置。然后,可监视这些点和较高3 和较低3 脊椎点来寻找 任何向上加速。足够的加速组合可触发跳跃姿势。给定该“脚跟提起跳”姿势,应用程序可为与该姿势相关联的参数设定值。参数可 包括上述加速阈值,其确定用户的肩310、臀312和膝316的某种组合必须向上移动多快来 触发该姿势;以及肩310、臀312和膝316之问仍可触发跳跃的最大对齐角。输出可包括置信水平,以及用户在跳跃时的身体角度。基于将接收姿势的应用程序的细节来为姿势设定参数对于准确地标识姿势而言 是重要的。正确地标识姿势以及用户的意图极大地有助于创建积极的用户体验。在姿势识 别器系统190太敏感、甚至手302的微小向前运动被解释为投掷的情况下,用户可能变得沮 丧,因为在他没有作出姿势的意图的情况下却识别出姿势,因此他缺乏对系统的控制。在姿 势识别器系统不够敏感的情况下,系统可能未识别出用户作出投掷姿势的刻意尝试,从而 类似地使用户感到沮丧。在敏感度范围的任一端,用户都会变得沮丧,因为他不能正确地向 系统提供输入。对于姿势的另一参数可以是移动的距离。在用户的姿势控制虚拟环境中的化身的 动作的情况下,该化身可以是手臂离球的长度。如果用户希望与该球交互并抓住它,则这可 要求用户伸展他的手臂302-310到全长同时作出抓握姿势。在这一情形中,用户仅部分地 伸展他的手臂302-310的类似的抓握姿势可能无法达到与球交互的结果。姿势或其一部分可具有它必须在其中发生的空间体来作为参数。在姿势包括身体 移动的情况下,该空间体通常可相对于身体来表达。例如,对于惯用右手的用户的橄榄球投 掷姿势可仅在不低于右肩310a、且与投掷手臂3(^a-310a在头322的相同侧的空间体中识 别。可能不必要定义空间体的所有边界,如对于该投掷姿势,其中从身体向外的边界留着不 被定义,并且该空间体无限地向外延伸,或者延伸到正被监视的场景的边缘。如以下所解释 的,即使在给定姿势是由空间体(如对于投掷运动从肩部向上)定义的情况下,其他关节的 运动、速度和加速度仍可在该姿势期间被监视来确定姿势风格。图4B提供了图2的一阶姿势识别引擎190a的一个示例性实施例的进一步细节。 如图所示,一阶姿势识别引擎190a可包括至少一个过滤器418来确定一个或多个姿势。过 滤器418包括定义姿势4 (以下称为“姿势”)以及该姿势的参数或元数据428的信息,以 供一阶和二阶姿势识别引擎190a和190b使用。例如,包括一只手从身体后部后面开始越 过身体前方的运动的投掷可被实现为包括表示用户的一只手从身体后部后面开始越过身 体前方的运动的信息的姿势426,该移动将由深度照相机来捕捉。然后可为该姿势似6设定 参数428。在姿势4 是投掷的情况下,一阶姿势识别引擎190a使用的参数4 可以是该 手必须达到的阈值速度、该手必须行进的距离(绝对的,或对于用户的整体大小相对的)、 以及识别器引擎对发生姿势的置信评级。用于姿势似6的这些参数4 可以在各应用程序 之间、在单个应用程序的各上下文之间、或在一个应用程序的一个上下文内随着时间变化。 如下所解释的,可以存储附加元数据428以供二阶姿势识别引擎190b使用。过滤器可以是模块化的或是可互换的。在一个实施例中,过滤器具有多个输入,这些输入中的每一个具有一类型;以及多个输出,这些输出中的每一个具有一类型。在这一情 形中,第一过滤器可用具有与第一过滤器相同数量和类型的输入和输出的第二过滤器来替 换而不更改识别器引擎体系结构的其他方面。例如,可以有用于驾驶的第一过滤器,该第一 过滤器取骨架数据作为输入并输出与该过滤器相关联的姿势正在发生的置信度以及转向 角。在希望用第二驾驶过滤器来替换该第一驾驶过滤器的情况下——这可能是因为第二驾 驶过滤器更高效且需要更少的处理资源——则可以通过简单地用第二过滤器替换第一过 滤器来这样做,只要第二过滤器具有相同的输入和输出一骨架数据类型的一个输入,以及 置信度类型和角度类型的两个输出。一阶姿势识别引擎190a可能没有利用与给定过滤器相关联的元数据428。例如, 返回用户的高度的“用户高度”过滤器可能不允许任何可调节的参数。替换的“用户高度”过 滤器可具有可调节参数,如在确定用户的高度时是否考虑用户的鞋、发型、头饰以及体态。对过滤器的输入可包括诸如关于用户的关节位置的关节数据如在关节处相交的 骨所形成的角度、来自场景的RGB色彩数据、以及用户的动力学方面的变化率等内容。来自 过滤器的输出可包括诸如正作出给定姿势的置信度、作出姿势运动的速度、以及作出姿势 运动的时间等内容。上下文可以是文化上下文,并且可以是环境上下文。文化上下文指的是使用系统 的用户的文化。不同的文化可使用相似的姿势来赋予显著不同的含义。例如,希望叫另一 个用户“看”或“使用他的眼睛”的美国用户可将他的食指放在他头上靠近他的眼睛的远端 处。然而,对意大利用户而言,该姿势可被解释为对黑手党的引用。类似地,在单个应用程序的不同环境之中可能有不同的上下文。取涉及操作摩托 车的第一人称射击游戏。当用户在走路时,将手指朝向地面握拳并向前且从身体向外伸出 拳头可表示重拳姿势。当用户在驾驶上下文中时,相同的运动可表示“换挡”姿势。可能还 有一个或多个菜单环境,其中用户可保存他的游戏、在他的人物装备之间选择或执行类似 的不包括直接玩游戏的动作。在该环境中,该游戏姿势可具有第三个含义,如选择某样东西 或前进到另一屏幕。一阶姿势识别引擎190a可具有向姿势过滤器418提供功能的基础识别器引擎 416。在一实施例中,识别器引擎416实现的功能包括跟踪所识别的姿势和其他输入的随 时间输入(input-over-time)存档、隐马尔可夫模型实现(其中模型化系统被假定为具有 未知参数的马尔可夫过程一其中当前状态封装了确定将来状态所需的任何过去状态信息, 因此不必为此目的而维护任何其它过去状态信息的过程,并且隐藏参数从可观察数据来确 定)、以及求解姿势识别的特定实例所需的其他功能。过滤器418在基础识别器引擎416之上加载并实现,并且可利用引擎416提供给 所有过滤器418的服务。在一实施例中,基础识别器引擎416处理所接收到的数据来确定它 是否满足任何过滤器418的要求。由于这些诸如解析输入等所提供的服务是由基础识别器 引擎416 —次性提供而非由每一过滤器418提供的,因此这一服务在一段时间内只需被处 理一次而不是对该时间段对每一过滤器418处理一次,因此减少了确定姿势所需的处理。应用程序可使用一阶姿势识别引擎190a所提供的过滤器418,或者它可提供其自 己的过滤器418,该过滤器被插入到基础识别器引擎416中。在一实施例中,所有过滤器418 具有启用该插入特性的通用接口。
图5A和5B描绘了从堆叠的姿势或过滤器418创建的更复杂的姿势或过滤器418。 姿势可堆叠在彼此之上。S卩,用户一次可表达多于一个姿势。例如,并非在作出投掷姿势时 不允许除了投掷之外的任何输入,或要求用户除了该姿势的分量之外保持不动(例如,在 作出仅涉及一条手臂的投掷姿势时站着不动)。在姿势堆叠时,用户可同时作出跳跃姿势和 投掷姿势,并且这两个姿势都将被姿势引擎识别出。图5A描绘了根据堆叠范例的简单姿势过滤器418。I过滤器(IFilter) 502是可在 每一姿势过滤器中使用的基本过滤器418。I过滤器502取用户位置数据504,并输出姿势 已发生的置信水平506。它还将该位置数据504馈入方向盘(SteeringWheel)过滤器508, 该过滤器508取该位置数据作为输入,并输出用户正在转向的角度(例如,向用户当前方向 右侧40度)510。图5B描绘了将过滤器418堆叠到图5A的姿势过滤器上的更复杂的姿势。除了 I 过滤器502和方向盘508之外,还存在I跟踪(ITracking)过滤器512,该过滤器512接收 来自I过滤器502的位置数据504,并输出用户通过姿势所作出的进展量514。I跟踪512 还将位置数据504馈送到润滑油减轻(GreaseLightning) 516和E刹车518,这些是关于可 在操作车辆时如使用紧急刹车作出的其他姿势的过滤器418。图6A-6E描绘了用户602在橄榄球视频游戏中可以作出以便发出“完全接球”信 号的示例姿势。这些图描绘了各个时间点的用户,其中图6A是第一时间点,而图6E是最后 一个时间点。这些图中的每一个可对应于深度照相机22捕捉的图像数据的一个快照或帧, 但不必是连续的图像数据帧,因为深度照相机22能够比用户可覆盖该距离更快地捕捉帧。 例如,该姿势可在3秒的时间段内发生,并且在深度照相机以每秒40帧来捕捉数据的情况 下,在用户602作出该完全接球姿势时它将捕捉60个图像数据帧。在图6A中,用户602以他的手臂604向下放于两侧开始。他然后将手臂举起超过 肩膀,如图6B所描绘的,然后进一步向上到大约他的头部的水平,如图6C所描绘的。从那 里,他将他的手臂604降下到肩膀水平,如图6D所描绘的,然后再一次将手臂举起到大约他 的头部的水平,如图6E所描绘的。在系统捕捉用户602的这些位置而没有可发出该姿势被 取消或正在作出另一姿势的信号的任何居间位置的情况下,可能会使得完全接球姿势过滤 器输出用户602作出了完全接球姿势的高置信水平。图7描绘了在解析每一图像数据帧来产生用户的骨架图时图5的示例“完全接球” 姿势。该系统在从用户的深度图像产生了骨架图之后,现在可确定用户的身体如何随时间 而移动,并且可从中解析姿势。在图7A中,用户的肩310在他的肘306上方,而肘306又在他的手302上方。肩 310、肘306和手302然后在图7B中处于一致水平。系统然后在图7C中检测到手302在肘 306上方,而肘306在肩310上方。在图7D中,用户返回到图7B的位置,其中肩310、肘306 和手302处于一致水平。在该姿势的最终位置,如图7E所示,用户返回到图7C的位置,其 中手302在肘306上方,而肘306在肩310上方。尽管捕捉设备20捕捉了一系列静止图像,使得在任何一个图像中用户看似为静 止的,但用户在执行该姿势的过程中在移动(而非如上所述的静止姿势)。该系统能够取每 一静止图像中的该一系列姿态,并从中确定用户正在作出的移动姿势的置信水平。此外,如 上所述并如下所解释的,一阶姿势识别引擎190a可另外存储与图7A-7E所示的姿势相关联的元数据4 来确定与用户的姿势相关联的姿势风格。在执行姿势时,用户可能无法创建如右肩310a、右肘306a和右手30 所示的角 度,例如在140°和145°之间。因此,对完全接球姿势4 使用过滤器418的应用程序可 调节相关联的参数4 来最好地满足应用程序的细节。例如,图7C和7E中的位置可在用 户将其手302放在其肩310上方的任何时刻被识别出,而不关注肘306的位置。更严格的 一组参数可能要求手302在头310上方,并且肘306既在肩310上方又在头322和手302 之间。另外,用于完全接球姿势426的参数4 可能要求用户在诸如1.5秒等一段指定时 间内从图7A的位置移动到图7E的位置,并且如果用户花费了多于1. 5秒来移动通过这些 位置,则它将不被识别为完全接球418,并且可输出非常低的置信水平。如上所述,除了检测姿势之外,本发明的技术还检查姿势的性质方面,并且基于对 一个或多个预定义性质属性的检测来向用户提供反馈。这些性质属性是执行给定姿势或用 户运动的风格。如图8和9的框图所示,给定姿势或运动的风格由二阶姿势识别引擎190b 基于从一阶姿势识别引擎190a接收到的信息来确定。参考图9,如上所述,给定过滤器418包括定义的姿势似6或由深度照相机22传 感的或从深度照相机22传感的数据中通过数学方法确定的元数据428。一般而言,元数据 428提供了关于姿势似6是如何执行的信息。在某一预定义时间段上,如执行姿势似6或运 动所花费的时间长度上,取得并存储元数据428。它还包含了在姿势或运动之前和/或之后 的预定义时间段。或者,该时间段可以是某一组预定义时间段,如从姿势结束开始反向计算 的一到五秒的数据量,或者另选地二到三秒的数据量。现在将参考图9的框图和图10的流程图来解释二阶姿势识别引擎190b的操作。 在一阶姿势识别引擎190a检测到姿势似6之后,在步骤650将与该姿势相关联的元数据 428传递到二阶姿势识别引擎190b。有各种可用于确定姿势或运动是否以预定义风格执行的元数据。该元数据是从用 户进行并由捕捉设备20捕捉的移动来生成的。在各实施例中,该元数据可以是对用户的最 大和最小位置的测量,这是在x,y,z空间中相对于深度照相机22的位置来测量的。这可以 是捕捉设备20检测的χ、y和ζ最小和最大图像平面位置。元数据还可包括对取得元数据 428的离散时间间隔随时间的位置变化dx/dt的一个或多个测量。离散时间间隔可以像执 行姿势或运动的整个时间那样长,或者像来自深度照相机22的单个帧那样短。该位置变化 元数据给出了在用户执行所检测到的姿势的时间(或上述其他定义的时间段)期间用户身 体的不同速度。在各实施例中,元数据还可包括在X,y,ζ空间中测量的用户的最大和最小速度的 测量。元数据还可包括对取得元数据4 的离散时间间隔随时间的速度变化dv/dt的一个 或多个测量。该速度变化元数据给出了在用户执行所检测到的姿势的时间(或上述其他定 义的时间段)期间用户身体的不同加速度。在各实施例中,元数据还可包括在X,y,ζ空间中测量的用户的最大和最小加速度 的测量。元数据还可包括对取得元数据4 的离散时间间隔随时间的加速度变化da/dt的 一个或多个测量。该加速度变化元数据给出了在用户执行所检测到的姿势的时间(或上述 其他定义的时间段)期间用户身体的不同加加速度率测量。可以理解,可使用除了一个或多个上述参数之外的或代替一个或多个上述参数的其他参数。在一个实施例中,可导出描述身体部位在其在3D空间中移动时的轨迹的二阶差 分等式。这些等式也可被用作引擎190b接收来检测预定义风格的元数据。在又一实施例 中,照相机22可取用户的面部表情的测量,该面部表情然后可与其他参数一起使用来作出 关于用户执行给定姿势或移动的风格的确定。在各实施例中,可对于以上参考图4A描述的身体部位302到330中的一个或多个 取得并存储上述涉及位置、速度和加速度的动力学参数中的每一个。由此,在各实施例中, 二阶姿势识别引擎190b可接收如图4A所示的用户身体中的所有点的动力学活动的全图。该元数据428由一阶姿势识别引擎190a传递给二阶姿势识别引擎190b。二阶姿 势识别引擎190b然后在步骤6M分析所接收到的元数据来看该元数据是否匹配存储在风 格库640中的任何预定义规则。步骤肪4在下文中参考图9和图11的流程图来描述。风格库640包括多个所存储的规则642,这些规则描述了元数据4 所指示的特 定动力学运动何时被解释为预定义风格。规则可由游戏作者、各种游戏平台的主人或用户 自己来创建。规则是对给定一组参数值或值范围的定义。当用户以满足规则的方式(考虑 了上述参数)来移动时,二阶姿势识别引擎190b将该移动识别为风格。换言之,规则是关 于一个或多个身体部位的一个或多个元数据参数(最大/最小位置、随时间的位置变化、最 大或最小速度、随时间的速度变化、最大或最小加速度、随时间的加速度变化)的一组预定 义存储的值或值范围,这些值或值范围在作为整体来看待时指示了与姿势相关联的特定风 格。以下是出于说明性目的对几个规则以及构成规则的通用参数的描述。可以理解, 根据本发明的技术可以有各种各样的覆盖了各种风格的附加规则。作为一个示例,一阶姿 势识别引擎190a可确定用户执行的闪避姿势,S卩,降低到接近地面。有各种各样的闪避风 格。第一个用户可能四肢着地地蹲下,而第二个用户可能“摔倒”以便快速在地面上平展开来。这些运动中的每一个可被一阶姿势识别引擎190a识别为闪避。然而,至少基于用 户身体的所有部分的随时间的位置变化和随时间的速度变化,二阶姿势识别引擎190b可 识别其中用户摔倒的闪避风格。该闪避风格可由规则来识别,即,有关距离变化、速度变化 等的定义了用户何时被认为是摔倒的参数可被量化并存储在规则中。当二阶姿势识别引擎 190b识别到用户以满足该规则的方式来动作时,则用户可接收到游戏度量下的某种奖励, 和/或用户的游戏体验可被个性化来显示出系统识别了他或她自己的闪避风格。例如,用 户的化身可用同一种风格来闪避并且地面可以摇动。还可提供其他游戏内风格识别指示。作为风格识别的另一示例,游戏可要求用户通过将他们的脚来回且左右移动来执 行舞蹈移动。一阶姿势识别引擎190a将能够确定用户是否正确执行了游戏所指示的舞蹈 步骤。然而,通过分析元数据,二阶姿势识别引擎190b可检查位置变化数据、速度变化数据 等,并且确定各步之间的过渡是平滑地执行的还是以更为急动的方式来执行的。当例如平 滑地执行的时候,速度导数参数可为0或近乎0。当二阶姿势识别引擎190b确定各步是平 滑地执行的时候,可在游戏内奖励用户,和/或用户的化身可采取某种动作,或者以个性化 用户的游戏体验的特定方式来呈现用户的化身。在诸如图IA和IB所示的拳击游戏内的示例中,用户可能正在一轮结束时积极地 来回移动,这指示用户不累。这一移动可由给定速度的许多位置变化来表征,并且可设置查找这一移动的规则。或者,用户可开始在拳击的一轮中间跳舞以嘲弄对手。此类跳舞可由 对不同身体部位的有节奏的和/或重复的移动模式、速度和加速度来表征。由此,可设置查 找这些动力学参数的规则。在检测到一轮的积极结束或者一轮期间的跳舞时,这些风格可 通过更改用户在游戏内的化身来反映以便个性化用户的体验。在涉及棒球游戏的又一示例中,一阶姿势识别引擎190a可识别到用户在正确的 时刻以给定速度挥棒,以便确定用户将虚拟棒球击打了特定距离,如本垒打。然而,二阶姿 势识别引擎190b可分析该挥棒之前、期间和/或之后的元数据,并确定用户在发起挥棒之 前等待最后一刻。这可被认为在风格上是重要的,并且可以有具有指示最后一刻挥棒的一 组元数据的规则。例如,它可以按照相对较小的运动直到就在需要对潜在姿势传感挥棒的 时刻之前的一刻来表征,在该时刻在位置、速度和/或加速度上都有一峰值。再一次,可设 置定义这些参数的规则,并且在二阶姿势识别引擎检测到满足该规则的元数据的情况下, 可在游戏内奖励用户,和/或用户的化身可采取某种动作,或者以个性化用户的游戏体验 的特定方式来呈现用户的化身。在另一棒球示例中,第一个用户可仅使用他的手臂来挥动球棒,并达到给定的挥 棒速度。然而,第一个用户可通过首先大步行走、旋转其臀部、旋转其肩部、然后挥动其手臂 (所有这些都以正确的连续次序)来执行更“教科书”的挥棒。二阶姿势识别引擎190b可 分析用户身体的不同点的动力学数据,并识别与上述教科书挥棒相关联的位置、速度、加速 度等。可在游戏内奖励用户,和/或用户的化身可采用某一动作,或以个性化用户的游戏体 验的特定方式来呈现用户的化身。在再一棒球示例中,在一阶姿势识别引擎190a检测到挥棒之后,二阶姿势识别引 擎190b可审阅该元数据并确定用户在挥棒之前所指方向,这类似于1932年世界职业棒球 大赛中Babe Ruth的预告本垒打击中。指向所涉及的运动可被编入规则中。在作出用户的 运动满足该规则的判定之后,可在游戏内奖励用户,和/或用户的化身可采用某一动作,或 以个性化用户的游戏体验的特定方式来呈现用户的化身。例如,用户的化身的外观可被变 换成Babe Ruth在绕着场地小跑时的形象。该示例示出了二阶姿势识别引擎所审阅的元数 据可能不仅限于在给定姿势期间获得的元数据。二阶姿势识别引擎所分析的元数据也可被 延伸到给定姿势的执行之前和/或之后的一段时间。由了上述公开内容的好处,本领域的技术人员将识别出可以与各种各样附加姿势 相关联的各种各样附加风格,这些风格可根据对与姿势、姿势之前的时间段和/或姿势之 后的时间段相关联的元数据的分析来识别。风格库640可存储多个规则642。在各实施例中,每一姿势可具有不同的、独特的 一组规则。由此,尽管给定一组元数据在结合第一姿势执行时在风格方面是显著的,但同样 的该组元数据可能不指示在与第二姿势相关联地执行时的该风格。单个姿势可具有与其相 关联的各种风格。在该实例中,风格库640将存储多个规则642,对可以与给定姿势相关联 的每一风格有一规则。每一预定义姿势可包括这样一组与其相关联的规则。在另外一些实施例中,单个风格可以与多于一个姿势相关联。此外,给定一组元 数据可以指示独立于任何相关联的姿势的特定风格。在此类实施例中,二阶姿势识别引擎 190b可识别与用户的移动相关联的特定风格,即使该移动可能不指示特定的所识别的姿 势。
此外,构想了二阶姿势识别引擎190b甚至在一阶姿势识别引擎确定用户未成功 执行所尝试的姿势的情况下也能检测到一个或多个风格。例如,可存在关于一个或多个姿 势的规则,指示许多移动要被解释为用户正非常努力地完成一个或多个姿势。由此,即使移 动未关于建立特定姿势而通过,二阶姿势识别引擎190b也可识别用户所作出的努力并通 过指示对用户努力的识别来个性化用户的游戏内体验。可被规则覆盖的某些风格包括但不限于·移动的优雅程度-其中元数据指示用户以相对平滑或恒定的速度和/或加速度 来执行移动或移动之间的过渡;·努力-例如,其中元数据指示与给定姿势相关联的高度移动;·身体控制-例如,其中元数据指示用户能够保持他或她的身体或他或她的身体 的各部分不动;·移动精度-其中元数据指示用户所执行的唯一运动是执行给定姿势所需的运 动;·移动效率-其中元数据例如指示用户所执行的唯一运动是执行给定姿势所需的 身体部位;·平稳移动-其中元数据指示执行给定姿势时一个或多个身体部位的相对恒定的 速度;·缓慢且平稳的移动-其中元数据指示在执行给定姿势时用户的一个或多个身体 部位在阈值之下的相对恒定的速度;·冷静、放松的移动-例如,其中元数据指示在准备执行给定姿势时低或恒定速度 的移动; 爆发或剧烈的移动-例如,其中用户具有与给定姿势相关联的过度和/或夸大的 移动。再次参考图11的流程图,每一规则可具有关于图4C中所示的一个或多个身体部 位的多个参数(最大/最小位置、位置变化等)。对于存储的姿势,关于图4B中所示的每一 身体部位302到330的每一参数可存储单个值、值范围、最大值、最小值、或关于该身体部位 的参数与该规则所覆盖的风格的判定无关的指示。在以下描述中,不同参数可由整数i(对第一个参数i = 1,对第二个参数i = 2, 以此类推)来指示。不同身体部位可由整数j来指示(对第一个身体部位j = 1,对第二个 身体部位j = 2,以此类推)。由此,Ri, j是与关于第j个身体部位的第i个参数相关联的 规则中所存储的值或值范围。Μ"是从与关于第j个身体部位的第i个参数相关联的用户 姿势或运动中测得或导出的值或值范围。在步骤700,在确定所接收到的元数据是否满足给定规则时,引擎190b最初检索 关于第一个参数(i = 1)的第一个身体部位(j = 1)的存储的规则值氏丨在步骤702,引 擎190b将所接收的测得元数据值Mi, j与存储的规则元数据值Ri, j进行比较。在步骤706, 引擎190b确定当前测得的元数据值Mi,j是否等于规则元数据值氏,」或在其预定范围内。可以理解,尽管规则可由一组具有给定值的参数构成,但这些参数中的一个或多 个在确定用户动作是否满足规定风格规则时可被加权更多。即,特定身体部位的特定参数 可以比其他参数更明确地指示特定风格。在各实施例中,关于所指示的身体部位的这些参数在对用户移动是否执行了给定风格的总体判定中可以被赋予较高的权重。由此,在步骤 710,引擎190b确定规则值Ri, j是否相对于其他规则值Ri, j被加权更多或更少。该权重信 息可与规则一起存储在库640中。即便有,也很少发生给定一组测得参数将匹配存储的规则中的所有值的情况。如 上关于姿势所解释的,二阶姿势识别引擎190b可输出风格和与用户的移动对应于该风格 的可能性相对应的置信水平。该置信度值可用如上所述对给定姿势计算置信度值的相同方 式来计算。在步骤712,使用步骤706和710的判定,引擎190b确定关于用户的移动达到所 考虑的规则覆盖的风格的累积置信水平。累积置信水平将包括通过该循环的所有先前旅程 的置信水平加上对当前I^j的考虑。在步骤716,引擎190b查看对给定参数i是否还有身体部位j未关于所存储的规 则来考虑。如果是,则在步骤718考虑下一身体部位(j = j+1),并且引擎190b返回到步骤 702来对下一身体部位j将下一测得的元数据值Miij与所存储的规则值I^j进行比较。或者,如果在步骤716确定对给定参数已经考虑了规则内的最后一个身体部位, 则引擎190b接着在步骤720确定在所存储的规则中是否还有参数要考虑。如果是,则在步 骤7M将参数值i递增1,并且引擎190b返回到步骤702来再一次对更新后的参数值i将 所接收的所测得的元数据值Mm与所存储的元数据规则值」进行比较。本领域的技术人 员可以理解将所测得的值Mm与所存储的规则值Rm进行比较的其他方法。如果在步骤720 确定在所存储的规则中没有更多参数要考虑,则引擎190b在步骤7 返回累积置信水平。再次参考图10,一旦确定了关于给定姿势或运动是否满足给定风格规则的置信水 平,二阶姿势识别引擎190b然后就在步骤656确定累积置信水平是否超过关于所考虑的规 则的预定阈值。阈值置信水平可与所考虑的规则相关联地存储。如果累积置信水平低于该 阈值,则未检测到任何风格(步骤660)并且不采取任何动作。另一方面,如果累积置信水 平高于阈值,则用户的运动被确定为满足所考虑的风格规则,并且二阶姿势识别引擎190b 如下所解释地个性化用户体验。二阶姿势识别引擎可在一旦检测到与姿势或运动相关联的 风格时停止其规则比较。或者,二阶姿势识别引擎可搜索所有规则来看是否有多于一个风 格适用于给定姿势或运动。本领域的技术人员可以理解对给定姿势或运动分析所测得的参数来确定参数 是否符合预定义风格的其他方法。一个此类另外的方法在题为“GESTURE-CONTROLLED INTERFACES FOR SELF-SERVICE MACHINESAND OTHER APPLICATIONS (用于自服务机器和其 他应用程序的姿势控制的接口)”的美国专利申请公开号2009/0074248中公开,该申请的 公开通过整体引用结合于此。对给定风格的检测可在游戏或多媒体平台内以各种方式来使用以便奖励用户和/ 或个性化用户体验。例如,当用户的化身被示为执行所检测的姿势时,该姿势可进一步由该 化身用所检测到的风格来执行。另外地和/或另选地,化身的外观可改变以反映所检测到 的风格。例如,如果用户的姿势是要保持静止不动,则如果用户能够不仅执行这一动作到一 阈值水平,而且到展现出高水平的身体控制的水平,则用户的化身可变为透明并部分消失。 给定以上公开内容,本领域的技术人员可以理解可被提供来示出与所执行的姿势相关联的 所检测到的风格的各种各样其他游戏内音频和/或视频效果。此外,除了以不同方式呈现 化身之外,化身在游戏内的周边环境可另选地或另外地以不同方式呈现以便进一步示出用
20户的风格并进一步个性化用户的游戏体验。根据本发明的技术检测给定用户的风格在概念上不同于检测用户是否执行了给 定姿势。给定姿势的执行通常是通过/失败,并且如果成功执行,则将导致附加得分或用户 在游戏度量中前进。相反,对风格的检测并不是关于用户是否执行了给定姿势,而是用户如 何执行该姿势。本发明的技术可在无论用户是否成功地执行了基本姿势的情况下检测风 格,并且对风格的检测不导致得分或玩家在游戏度量中的前进(尽管在其他实施例中以所 检测到的风格执行姿势会导致得分或前进)。此外,如上所述,给定风格可以与特定姿势相 关联,或者它可以独立于任何特定姿势或跨各种各样姿势来检测。一般而言,对各个玩家风 格的识别在玩游戏或使用多媒体应用程序时将个性化并增强用户体验。本发明系统的前述详细描述是出于说明和描述的目的而提供的。这并不旨在穷举 本发明系统或将本发明系统限于所公开的精确形式。鉴于上述教导,许多修改和变型都是 可能的。选择所述实施例以最好地解释本发明系统的原理及其实践应用,从而允许本领域 技术人员能够在各种实施例中并采用各种适于所构想的特定用途的修改来最好地利用本 发明系统。本发明系统的范围旨在由所附权利要求书来定义。
权利要求
1.一种在包括计算环境的系统中的方法,所述计算环境耦合到用于捕捉用户运动的捕 捉设备,所述方法个性化软件应用程序中的用户体验,所述方法包括以下步骤a)在通过/失败的基础上检测用户是否执行了姿势;b)除了检测用户是否执行了姿势之外,检测与用户如何执行所述姿势有关的至少一个 性质方面;以及c)基于在步骤b)中检测到的所述至少一个性质方面向用户提供反馈。
2.如权利要求1所述的方法,其特征在于,所述步骤b)包括将所述步骤a)中获得的参 数与关于所述至少一个性质方面的一组所存储的规则进行比较的步骤。
3.如权利要求1所述的方法,其特征在于,所述步骤b)包括将所述步骤a)中导出的参 数与关于所述至少一个性质方面的一组所存储的规则进行比较的步骤。
4.如权利要求1所述的方法,其特征在于,所述步骤b)包括分析以下的至少一项的步骤bl)沿着三条轴相对于所述捕捉设备的最大和最小位置;b2)沿着三条轴随时间的位置变化;b3)沿着三条轴的最大和最小速度;b4)沿着三条轴随时间的速度变化;b5)沿着三条轴的最大和最小加速度;b6)沿着三条轴随时间的加速度变化;以及b7)面部表情。
5.如权利要求4所述的方法,其特征在于,所述步骤b)还包括对多个不同身体部位分 析bl)到中的至少一项的步骤。
6.如权利要求5所述的方法,其特征在于,所述步骤b)还包括将所分析的bl)到b7) 中的至少一项的参数与定义与给定姿势相关联的风格的一组存储的规则进行比较的步骤。
7.如权利要求5所述的方法,其特征在于,所述步骤b)还包括对等于以下中的一项的 时间段分析bl)到b7)中的至少一项的步骤b8)完成所述姿势之前的预定时间段; b9)执行所检测的姿势所需的时间长度;以及blO)执行所检测的姿势所需的时间长度加上所述姿势之前和/或之后的预定时间段。
8.如权利要求1所述的方法,其特征在于,所述步骤b)包括检测与姿势相关联的以下 性质方面中的至少一个的步骤bll)与所述姿势相关联的优雅移动;bl2)执行所述姿势所花费的努力量;bl3)执行所述姿势时的身体控制;bl4)执行所述姿势时的移动精度;bl5)执行所述姿势时的移动效率;bl6)执行所述姿势时用户身体的各部分保持得有多平稳;bl7)执行所述姿势时用户身体的各部分保持得有多放松;bl8)执行所述姿势时用户的移动有多剧烈。
9.如权利要求1所述的方法,其特征在于,所述步骤c)包括基于所述步骤b)中检测到的性质方面来更改呈现给用户的软件应用程序的一部分以个性化呈现给用户的内容的步马聚ο
10.一种在游戏系统中的计算机可读存储介质,所述游戏系统包括耦合到用于捕捉用 户运动的捕捉设备,所述计算机可读存储介质承载计算机可读指令,所述计算机可读指令 当在处理器上执行时使得所述处理器执行一种方法,所述方法包括以下步骤a)接收与用户运动有关的数据;b)在通过/失败的基础上确定在所述步骤a)中接收的用户运动数据是否对应于预定 义姿势;c)除了确定在所述步骤a)中接收的用户运动数据是否对应于预定义姿势之外,确定 与用户用于在所述步骤a)中执行运动的风格有关的至少一个性质方面;以及d)基于在步骤c)中检测到的所述至少一个性质方面向用户提供反馈。
11.如权利要求10所述的方法,其特征在于,在所述步骤b)确定用户未执行预定义姿 势的情况下,所述步骤c)可确定至少一个性质方面。
12.如权利要求10所述的方法,其特征在于,所述步骤c)包括将与所述用户运动的性 质方面有关的元数据与定义用户运动何时作为预定义风格是合格的一组规则进行比较的 步骤。
13.如权利要求12所述的方法,其特征在于,所述步骤c)包括对不同的预定义姿势存 储不同的一组规则。
14.如权利要求12所述的方法,其特征在于,所述步骤c)包括存储跨不同预定义姿势 和/或不同用户运动应用的单个规则。
15.如权利要求12所述的方法,其特征在于,所述步骤c)包括存储具有与以下的至少 一个有关的预定义参数值的规则被解释为用于执行用户运动的特定风格的用户身体的一 个或多个部分的位置或位置变化、速度或速度变化、或加速度或加速度变化。
16.如权利要求12所述的方法,其特征在于,所述步骤c)包括存储定义用户运动何时 被解释为以下风格之一的规则cl)与用户运动相关联的优雅移动;c2)执行用户运动花费的努力量;c3)执行用户运动时的身体控制;c4)执行用户运动时的移动精度;c5)执行用户运动时的移动效率;c6)执行用户运动时用户身体的各部分保持得有多平稳;c6)执行用户运动时用户身体的各部分保持得有多放松;c8)执行用户运动时用户的移动有多剧烈。
17.一种游戏系统,包括用于捕捉与用户的运动有关的数据的图像捕捉设备;用于从所述捕捉设备接收图像数据并主存游戏应用程序的计算环境,所述计算环境包括,一阶姿势识别引擎,用于接收与用户的运动有关的数据并在通过/失败的基础上确定 用户的运动是否是作为预定义姿势合格的,二阶姿势识别引擎,用于接收所述数据和从所述数据导出的信息中的至少一个,并且 除了对用户的运动是否是作为预定义姿势合格的阈值判定之外还确定用户的运动是否包 括作为与用户运动相关联的预定义风格合格的风格属性,以及所述二阶姿势识别引擎使用的一组存储的规则,所述一组存储的规则包括一组预定义 用户运动何时被解释为预定义风格的定义;以及耦合到所述计算环境的视听设备,用于基于从所述计算环境接收的信息来呈现所述用 户和所述用户的运动的图形表示,所述图形表示通过以表示被所述二阶姿势识别引擎确定 为存在的风格的图形来示出用户的运动或周边环境来增强。
18.如权利要求17所述的游戏系统,其特征在于,所述计算环境使得所述视听设备示 出被所述一阶姿势识别引擎确定为存在的用户姿势,并且所述姿势以表示被所述二阶姿势 识别引擎确定为存在的风格的图形示出。
19.如权利要求17所述的游戏系统,其特征在于,在所述一阶姿势识别引擎确定用户 运动作为姿势不合格的情况下,所述计算环境使得所述视听设备示出表示与用户运动相关 联的风格的图形。
20.如权利要求17所述的游戏系统,其特征在于,所述二阶姿势识别引擎分析与用户 的运动相关联的参数并将这些参数与所述一组存储的规则中的参数进行比较,所述参数包 括以下的至少一个所述用户的身体的一个或多个部分的位置或位置变化、速度或速度变 化、以及加速度或加速度变化。
全文摘要
公开了用于确定一给定姿势是否是以特定风格来执行的系统、方法和计算机可读介质。该风格信息然后可用于个性化游戏或多媒体体验,从而因用户的个人风格而奖励用户。
文档编号G06T7/20GK102103408SQ201010616839
公开日2011年6月22日 申请日期2010年12月17日 优先权日2009年12月18日
发明者J·蒂亚奎罗 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1