基于关节跳过的姿势检测的利记博彩app

文档序号:6354805阅读:385来源:国知局
专利名称:基于关节跳过的姿势检测的利记博彩app
技术领域
本发明涉及运动捕捉系统,尤其涉及运动捕捉系统中的姿势检测。
背景技术
在过去,诸如计算机游戏和多媒体应用等计算应用程序使用控制命令来允许用户 操纵游戏人物或应用的其他方面。通常,此类控制命令使用例如控制器、遥控器、键盘、鼠标 等来输入。近来,计算机游戏和多媒体应用已开始使用照相机和软件姿势识别引擎来提供 人机接口(“HCI”)。使用HCI,检测、解释用户姿势并将其用于控制游戏人物或应用的其他 方面。在常规的游戏和多媒体应用中,通常使用用户的身体位置来测量用户是否执行了 给定姿势。具体地,HCI系统可以测量穿过一对相邻关节的向量相对于诸如水平等基准平 面形成的角度。该角度自身或与其他姿态或运动信息一起用于标识用户执行了的姿势。由 此,作为一示例,HCI系统可测量用户的前臂(如腕和肘的位置所指示的)与水平基准平面 形成的角度来标识用户是否执行了给定姿势。这一传统的姿势检测方法的问题是在两个相邻的端部关节之间形成的角度遭受 大量的抖动和噪声。由此,使用相邻关节有时候可能对于姿势检测是不可靠的。

发明内容
本发明的技术一般涉及通过标识非相邻关节形成的向量并标识这些向量与基准 点、面或线形成的角度来检测或确认姿势。由此,本发明的技术的各实施例跳过了端部关节 和较靠近用户的身体核心的邻近关节之间的一个或多个中间关节。跳过一个或多个中间关 节导致对用户执行的位置或移动的更可靠指示,并且因此导致对给定姿势的更可靠指示。 该姿势检测方法可代替传统的端部关节姿势检测来使用,或作为对传统的端部关节姿势检 测的确认来使用。在一个实施例中,提供了用于检测用户在真实世界空间中执行的姿势的本系统。 该系统包括用于捕捉视野和计算环境内的用户的深度图像的捕捉设备。该计算环境从捕捉 设备接收深度图像,并确定用户的多个关节的位置。多个关节包括端部关节、该端部关节附 近的至少一个中间关节、以及该至少一个中间关节附近的核心身体关节。该系统还包括用 于生成非相邻关节位置向量的、捕捉设备中的处理器或处理器。非相邻关节位置向量具有 位于端部关节处以及来自中间关节和核心身体关节之一的、与端部关节不相邻的关节处的 端点。非相邻关节位置向量用于确定用户是否执行了预定义姿势。


图IA和IB示出了伴随用户玩游戏的目标识别、分析和跟踪系统的示例实施例。图2示出了可在目标识别、分析和跟踪系统中使用的捕捉设备的示例实施例。图3A示出了可用于在目标识别、分析和跟踪系统中解释一个或多个姿势的计算环境的示例实施例。图;3B示出了可用于在目标识别、分析和跟踪系统中解释一个或多个姿势的计算 环境的另一示例实施例。图4示出了从图2的目标识别、分析和跟踪系统生成的用户的骨架映射。图5示出了执行姿势的用户以及对相邻关节位置向量的测量。图6示出了根据本发明的技术的一个实施例的执行姿势的用户以及对非相邻和 相邻关节位置向量的测量。图7示出了根据本发明的技术的一个替换实施例的执行姿势的用户以及对非相 邻和相邻关节位置向量的测量。图8示出了根据本发明的技术的另一替换实施例的执行姿势的用户以及对非相 邻和相邻关节位置向量的测量。图9示出了根据本发明的技术的另一替换实施例的执行姿势的用户以及对非相 邻和相邻关节位置向量的测量。图10是示出根据本发明的技术的一个实施例的对非相邻关节位置向量的测量的 流程图。图11是示出根据本发明的技术的一个替换实施例的对非相邻关节位置向量的测 量的流程图。图12是示出用于确定姿态信息是否匹配存储的姿势的姿势识别引擎的框图。图13是示出姿势识别引擎的操作的流程图。
具体实施例方式现在将参考图1-13来描述本发明的技术的各实施例,本发明的技术一般涉及用 于从姿态信息中标识姿势的系统,姿态信息包括使用穿过一对彼此不相邻的关节的向量获 得的关节位置向量。在各实施例中,该系统可测量基准点、面或线与一对非相邻关节之间形 成的角。例如,该系统可使用诸如踝等端部关节,以及诸如髋等较靠近身体核心的邻近关 节。该系统跳过邻近关节和端部关节之间的一个或多个中间关节。使用邻近关节并跳过一 个或多个中间关节导致对用户执行的姿态或移动的更可靠指示,并且因此导致对给定姿势 的更可靠指示。该姿势检测方法可代替传统的相邻关节姿势检测来使用,或作为对传统的 相邻关节姿势检测的确认来使用。最初参考图1A-2,用于实现本发明的技术的硬件包括目标识别、分析和跟踪系统 10,该系统可用于识别、分析和/或跟踪诸如用户18等的人类目标。目标识别、分析和跟踪 系统10的各实施例包括用于执行游戏或其他应用的计算环境12,以及用于从游戏或其他 应用提供音频和视觉表示的视听设备16。系统10还包括用于捕捉用户执行的位置和移动 的捕捉设备20,计算环境接收、解释并使用这些位置和移动来控制游戏或其他应用。这些组 件中的每一个都会在以下详细描述。如图IA和IB所示,在一示例实施例中,在计算环境12上执行的应用可以是用户 18可能正在玩的拳击游戏。例如,计算环境12可使用视听设备16来向用户18提供拳击对 手19的视觉表示。计算环境12还可使用视听设备16来提供用户18可通过他的或她的移 动来控制的玩家化身21的视觉表示。例如,如图IB所示,用户18可在物理空间中挥重拳来使得玩家化身21在游戏空间中挥重拳。因此,根据一示例实施例,目标识别、分析和跟踪 系统10的计算环境12和捕捉设备20可用于识别和分析用户18在物理空间中的重拳,从 而使得该重拳可被解释为对游戏空间中的玩家化身21的游戏控制。用户18的其他移动也可被解释为其他控制命令或动作,诸如上下快速摆动、闪 避、滑步、格挡、用拳猛击或挥动各种不同力度的重拳等控制。在各示例实施方式中,诸如用 户18等的人类目标可持有一物体。在这些实施方式中,电子游戏的用户可手持该物体,以 使得玩家和物体的运动可被用来调整和/或控制游戏的参数。例如,可以跟踪并利用手持 球拍的玩家的运动来控制电子运动游戏中的屏上球拍。在另一示例实施方式中,可以跟踪 并利用手持物体的玩家的运动来控制电子格斗游戏中的屏上武器。图2示出可在目标识别、分析和跟踪系统10中使用的捕捉设备20的示例实施例。 关于与本发明的技术一起使用的捕捉设备的进一步细节在题为“Device For Identifying And Tracking Multiple Humans Over Time”(用于随时间标识和跟踪多个人的设备)的 共同待审的专利申请第12/475,308号中有阐述,该申请通过整体引用结合于此。然而,在 一示例实施例中,捕捉设备20可被配置成经由任何合适的技术——包括例如飞行时间、结 构化光、立体图像等——捕捉带有深度图像的视频,该深度图像可包括深度值。根据一实施 例,捕捉设备20可将所计算的深度信息组织为“Z层”,即可与从深度照相机沿其视线延伸 的Z轴垂直的层。如图2所示,捕捉设备20可包括图像相机组件22。根据一示例实施例,图像相机 组件22可以是可捕捉场景的深度图像的深度相机。深度图像可包括所捕捉的场景的二维 (2-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)、高
6速缓存、闪存、硬盘、或任何其他合适的存储组件。如图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、 28和捕捉设备20捕捉的骨架模型以及与其相关联的移动的形式的数据与姿势识别引擎 190中的姿势过滤器进行比较来标识用户(如骨架模型所表示的)何时执行了一个或多个 姿势。那些姿势可与应用的各种控制命令相关联。因此,计算环境12可使用姿势识别引擎 190来解释骨架模型的移动并基于该移动来控制应用。图3A示出了可用于在目标识别、分析和跟踪系统中解释一个或多个姿势的计算 环境的示例实施例。上面参考图1A-2所描述的诸如计算环境12等的计算环境可以是诸如 游戏控制台等的多媒体控制台100。如图3A所示,多媒体控制台100包括具有一级高速缓 存102、二级高速缓存104和闪存ROM 106的中央处理单元(CPU) 101。一级高速缓存102 和二级高速缓存104临时存储数据并因此减少存储器访问周期数,由此改进处理速度和吞 吐量。CPU 101可以设置成具有一个以上的核,以及由此的附加的一级和二级高速缓存102 和104。闪存ROM 106可存储在多媒体控制台100通电时在引导过程的初始化阶段加载的 可执行代码。图形处理单元(GPU) 108和视频编码器/视频编解码器(编码器/解码器)114形 成用于高速、高分辨率图形处理的视频处理流水线。数据经由总线从GPU108输送到视频编 码器/视频编解码器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中断来显示由系统应用生成的轻量消息(例如,弹出 窗口),以调度代码来将弹出窗口呈现为覆盖图。覆盖图所需的存储器量取决于覆盖区域大 小,并且覆盖图较佳地与屏幕分辨率成比例缩放。在并发系统应用使用完整用户界面的情 况下,优选使用独立于应用分辨率的分辨率。定标器可用于设置该分辨率,从而无需改变频
8率,也就不会引起TV重新同步。在多媒体控制台100引导且系统资源被保留之后,就执行并发系统应用来提供系 统功能。系统功能被封装在一组在上述所保留的系统资源中执行的系统应用中。操作系统 内核标识是系统应用线程而非游戏应用线程的线程。系统应用优选地被调度为在预定时间 并以预定时间间隔在CPU 101上运行,以便为应用提供一致的系统资源视图。进行调度是 为了把由在控制台上运行的游戏应用所引起的高速缓存破坏最小化。当并发系统应用需要音频时,则由于时间敏感性而异步调度音频处理给游戏应 用。多媒体控制台应用管理器(如下所述)在系统应用活动时控制游戏应用的音频级(例 如,静音、衰减)。输入设备(例如,控制器142(1)和142( )由游戏应用和系统应用共享。输入设 备不是所保留的资源,但却在系统应用和游戏应用之间切换以使其各自具有设备的焦点。 应用管理器较佳地控制输入流的切换,而无需知晓游戏应用的知识,并且驱动程序维护有 关焦点切换的状态信息。相机26J8和捕捉设备20可定义控制台100的附加输入设备。图:3B示出了可用于在目标识别、分析和跟踪系统中解释一个或多个姿势的计算 环境的计算环境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)连接。相机 26,28和捕捉设备20可定义控制台100的附加输入设备。监视器242或其他类型的显示设 备也经由接口,诸如视频接口 232连接至系统总线221。除监视器以外,计算机还可以包括 其他外围输出设备,如扬声器244和打印机对3,它们可以通过输出外围接口 233连接。计算机241可使用至一个或多个远程计算机,如远程计算机M6的逻辑连接在网 络化环境中操作。远程计算机246可以是个人计算机、服务器、路由器、网络PC、对等设备或 其他常见的网络节点,且通常包括许多或所有以上相对于计算机241描述的元件,尽管在 图3B中仅示出了存储器存储设备M7。图:3B中所示的逻辑连接包括局域网(LAN) 245和广 域网(WAN) M9,但也可以包括其他网络。这样的联网环境在办公室、企业范围计算机网络、 内联网和因特网中是常见的。当在LAN联网环境中使用时,计算机241通过网络接口或适配器245连接至LAN 237。当在WAN联网环境中使用时,计算机241通常包括调制解调器250或用于通过诸如因 特网等WAN 249建立通信的其他装置。调制解调器250可以是内置或外置的,它可以经由 用户输入接口 236或其他适当的机制连接至系统总线221。在网络化环境中,关于计算机 241所描述的程序模块或其部分可被储存在远程存储器存储设备中。作为示例而非限制,图 3B示出了远程应用程序248驻留在存储器设备247上。可以理解,所示的网络连接是示例 性的,且可以使用在计算机之间建立通信链路的其他手段。如在下文中更详细解释的,计算环境12中的姿势识别引擎190被提供来接收位置 和/或移动信息并从该信息中标识姿势。图4A描绘了可从捕捉设备20生成的用户的示 例骨架映射。在该实施例中,标识各种关节和骨骼每一手302、每一前臂304、每一肘306、 每一二头肌308、每一肩310、每一髋312、每一大腿314、每一膝316、每一前腿318、每一脚 320、头322、中脊椎324、脊椎的顶部3 和底部328、以及腰330。在跟踪多个点的情况下, 可标识另外的特征,如手指或脚趾的骨骼和关节,或脸部的个别特征,如鼻和眼。—般而言,系统10可以被视为使用三个参考系来工作。第一个参考系是用户在其 中移动的真实世界3D空间。第二个参考系是3D游戏空间或机器空间,其中计算环境使用 姿态信息和运动方程来定义用户和游戏或其他应用创建的虚拟对象的3D位置、速度和加 速度。第三个参考系是2D屏幕空间,其中用户的化身和其他对象在显示画面中呈现。计算环境CPU或图形卡处理器将对象的3D机器空间位置、速度和加速度转换成2D屏幕空间位 置、速度和加速度,且使用这些2D屏幕空间位置、速度和加速度来在视听设备16上显示对象。通过以给定姿态移动并定位他/她的身体,用户可创建姿势。姿势可以通过各种 用户位置和/或移动的任一种来表现。作为几个示例,姿势可通过将一个人的前臂304交 叉在他的脊椎3M前面来指示。或者,姿势可以是动态运动,如模仿投球或一起拍手302。 姿势也可结合道具,如通过挥动仿制的剑。已知通过测量两个相邻关节之间的身体部分的位置以及它与基准形成的角来标 识某些姿势。例如,图5示出了左脚提起的用户300的图示。如图5所示,膝关节316b和 踝关节320b的位置通常可用于定义相邻关节之间的关节位置向量:^2,从而给出了用户的 小腿在3D机器空间中相对于基准的定向,该基准可以是3D机器空间中具有笛卡尔坐标(0, 0,0)的任意原点。使小腿以某一向量定向可用于标识某一姿势,例如用户300正在执行踢 姿势。现在参考图6来描述本发明的技术的一个实施例,图6中示出了与图5处于相同 位置的用户300。然而,根据本发明的技术,膝关节316b可被跳过,即从关节位置向量的测 量中省略。测量改为沿着用户的髋关节312b和用户的踝关节320b之间的关节位置向量 巧:进行。如在背景技术一节中讨论的,邻近关节(较靠近身体核心)较不易于遭受抖动和 噪声,且更可能产生对用户执行的姿势的可靠指示。由此,在姿势可能常规地在3D机器空 间中由相邻关节之间的给定向量定义的情况下,相同的姿势可改为根据本发明的技术在3D 机器空间中由非相邻关节之间的不同向量来定义。在各实施例中,非相邻关节位置向量的 端点是端部关节。然而,可以理解,在替换实施例中,非相邻关节位置向量可以从两个关节 形成,其中没有一个关节是端部关节。作为达到相同结果的替换,本发明的技术的非相邻位 置向量可使用端部关节来作为开始或结束点之一,但是代替踝或腕,端部关节可以是肘或 膝。图6示出了用于测量姿势的、相邻的膝和踝关节之间的常规相邻关节位置向量5 。 代替常规向量茲,可测量根据本发明的技术的非相邻关节位置向量G,或者可以除了向量 茲之外测量向量C,作为对使用相邻关节测量的姿势识别的确认或可靠性检验。反过来也 可以是对的——可以测量非相邻关节位置向量$,并且可使用相邻关节位置向量H 来作为 确认或可靠性检验。一般而言,本发明的技术的各实施例可包括按照非相邻关节之间的向 量来定义姿势,并且其他实施例可改为包括按照至少两个向量来定义姿势,该至少两个向 量中的至少一个在非相邻关节之间,而另一向量则在相邻关节之间。图10是根据图6所示的实施例的用于生成一个或多个非相邻关节位置向量的流 程图。在各实施例中,非相邻关节位置向量可由捕捉设备20的处理器32或计算环境12的 CPU 101(图3幻/处理单元四9(图38)来生成。如图10的流程图中所描述的,本发明的技 术的各实施例可以计算所有可能的非相邻关节位置向量以便稍后用于确定一组这些向量 是否描述了存储的姿势(如下文更详细阐明的)。本领域的技术人员可以理解其他实施例 中的用于计算少于全部这样的非相邻关节位置向量的方法。在步骤400,系统标识端部关节并将任意计数器j关联到该端部关节。端部关节例如可以是踝320a、320b (图4)、腕3(^a、302b或头322。有可能在其他实施例中手和脚可以 是端部关节。系统接着在步骤404标识邻近关节j+Ι。邻近关节是比端部关节更靠近身体 核心的关节。在各实施例中,身体核心可被定义为根关节,例如上脊椎326、中脊椎3M或下 脊椎328(图4)中的任一个。在其他实施例中,关节324、3沈和328中的两个或三个可一 起被认为是身体核心或根关节。名称j+Ι指示该邻近关节是距离端部关节j 一个关节远的 下一相邻关节。系统接着在步骤406确定是否有邻近关节j+2。这将是距离端部关节两个关节远 的关节。如果关节j+Ι本身是核心关节(例如,上脊椎3 或下脊椎328),则没有上游关节 j+2。在一个实施例中,如果端部关节是腕或踝,则将有接近该端部关节的、相距两个关节的 关节j+2。肩310距离腕301为两个关节,髋312距离踝320为两个关节。在各实施例中, 端部关节可能没有关节j+2。如果端部关节是头326,则该关节可以与核心相距一个关节, 且在各实施例中,将没有接近该端部关节的、相距两个关节的关节。在其他实施例中情况可 能不是如此。如果在步骤406中没有上游关节j+2,系统去往步骤414来查看是否有尚未被 检查的任何其他端部关节。然而,如果有接近该端部关节的、相距两个关节的关节j+2,则系统在步骤408标 识该关节,且系统定义并存储关节j+2和端部关节j之间的非相邻关节位置向量。在步骤 414,系统检查是否有尚未被检查的、可能是非相邻关节位置向量的一部分的任何其他端部 关节。如果有,则系统返回到步骤400并重复该过程。如果没有其他端部关节要检查,则系 统结束对非相邻关节位置向量的定义。在图6的实施例中,在测量非相邻关节位置向量g时跳过单个关节(即,316b)。然 而,可以理解,在其他实施例中可跳过多于一个关节。例如,图7示出了用户300再次将他或 她的左腿定位在空中的实施例。在图7的实施例中,在用户的下脊椎3 和用户的踝关节 320b之间测量非相邻关节位置向量O上所述,在定义给定姿势时,代替常规的相邻关节 位置向量茲或作为其补充,可使用非相邻关节位置向fi:f。在图8所示的另一实施例中,姿势可由多于两个非相邻关节位置向量来定义。图8 包括如图7所示的从下脊椎到踝的向量g和从膝到踝的向量但是还包括在髋关节312b 和踝关节320b之间测量的另一非相邻关节位置向量5 。图11的流程图描述了如何生成根据图7和8所示的实施例的一个或多个非相邻 关节位置向量。步骤400到410与以上关于图10描述的步骤相同。在步骤400,系统标识 端部关节并将任意计数器j关联到该端部关节。系统接着在步骤404标识下一邻近关节 j+Ι。系统接着在步骤406确定是否有另外的邻近关节j+2。再一次,这可以是距离身体核 心比所考虑的当前关节(在该实施例中,可以是或不是端部关节)近两个关节的关节。如 果在步骤406中没有邻近关节j+2,则系统去往步骤414来查看是否有尚未被检查的任何其 他端部关节。然而,如果有与所考虑的关节相距两个关节的关节j+2,则系统在步骤408标 识该关节,且系统定义并存储关节j+2和端部关节j之间的非相邻关节位置向量。系统接着检查端部关节可与其一起定义非相邻关节位置向量的其他邻近关节。 即,系统接着检查是否有可能在形成非相邻关节位置向量时跳过一个以上关节。关节j递 增1。在首次通过该循环之后,j将被递增到2,且对于通过步骤404到412的下一循环,第 二关节(端部关节上游的关节)将被设为j。如果第二次(或后面几次)通过循环导致没有邻近关节j+2 (注意,每次通过循环时j递增),则系统在步骤406中结束对该关节链的考 虑,并在步骤414中检查其他端部关节。如果还有更多端部关节,则系统返回到步骤400并 重复该过程,再次以端部关节设为j = 1开始。果没有其他端部关节要检查,则系统结束对 非相邻关节位置向量的定义。上述步骤将导致所有可能的非相邻关节位置向量被定义,不论是跳过了一个关 节、两个关节、还是更多。这是图8中所示的情形本领域的技术人员将认识到,图11的流 程图可被修改以使得仅形成表示最大关节跳过的一个向量。这将在端部关节和核心关节之 间,例如如图7中所示。尽管图5-8使用了涉及腿关节的姿势的示例,但可以理解,本发明的技术可单独 或结合其他非相邻关节位置向量和/或相邻关节位置向量来使用任何非相邻关节位置向 量,来测量单个姿势。图9是本发明的技术的一个实施例的另一示例,其中给定姿势可以由 以下非相邻关节位置向量中的一个或多个来定义右肩310a和右腕30 之间的向量W;用户的头322和中脊椎324之间的向量S;左髋312b和左踝320b之间的向量益。—个或多个相邻关节位置向量可以与以上非相邻关节位置向量中的一个或多个
一起使用右肘306a和右腕30 之间的向量高;左肘306b和左腕302b之间的向量5/;左髋312b和左踝320b之间的向量益。其他非相邻和相邻关节位置向量可形成一起定义单个姿势的位置的一部分。尽管上述示例示出了仅在使用毗邻的非相邻关节位置向量时使用相邻关节位置 向量,但情况不必如此。例如,仍参考图9,可定义包括从左髋312b到左踝320b的非相邻关 节位置向量丽和从右膝316a到右踝320a的相邻位置向量g。本领域的技术人员将认识到 各种各样的用于定义各种姿势中的任一种的其他关节位置向量,包括至少一个非相邻关节 位置向量。如同常规的相邻关节位置向量一样,在各实施例中,姿势并不是简单地通过检查 3D机器空间中的非相邻关节位置向量的开始和结束点的绝对位置来定义的。相反,使用向 量中的两个绝对位置来定义这些点与某一基准形成的角。该基准可以是3D机器空间中的 诸如原点等点、线或面。用户不需要将他或她的身体定位在用于定义姿势的精确关节位置向量处。相反, 存储的姿势(下文解释)将包括用户必须用其关节来达到以便被认为是存储的姿势的阈值 或值范围。由此,例如在图6中,可使用非相邻关节位置向量g来定义关于左踝320b必须 相对于左髋312b抬起多高以便被认为是踢姿势的阈值。左踝320b可相对于左髋312b抬 起比存储的向量g中所指定的更高,且该位置将被认为是踢姿势。此外,可以理解,并非一向量的所有部分都需要具有指定的x、y和ζ值。存储的姿 势可以仅对关节位置向量的开始和结束点的相对X位置感兴趣。存储的姿势可以仅对关节 位置向量的开始和结束点的相对y位置感兴趣。且存储的姿势可以仅对关节位置向量的开始和结束点的相对ζ位置感兴趣。例如,再次参考图6,在用户将其左踝320b定位在相对于 左髋312b足够高(例如,沿着ζ轴)的情况下,可满足该姿势,而不管χ方向或y方向上的 踝/膝位置。由此,用户可靠近或远离捕捉设备20 (例如,沿着χ轴)、或在捕捉设备的左边 或右边(例如,沿着y轴)来执行姿势,且系统将仍检测到该姿势。以上图6-11的描述阐明了如何生成非相邻关节位置向量,以便单独使用或与其 他非相邻或相邻关节位置向量一起使用来描述用户姿势。由关节位置向量定义的这些姿势 可在一般计算上下文中用于供姿势识别引擎190输入。例如,手302或其他身体部位的各 种运动可对应于常见的系统级任务,如在分层列表中向上或向下导航、打开文件、关闭文件 和保存文件。姿势也可由姿势识别引擎190取决于游戏在视频游戏专用上下文中使用。例 如,对于驾驶游戏,手302和脚320的各种运动可对应于在一方向上操控车辆、换挡、加速和 刹车。本领域的技术人员将理解各种分析包括关节位置向量在内的测得参数来确定 该参数是否符合预定义姿势的方法。这些方法例如在以上合并的申请第12/475,308号 以及题为 “Gesture-Controlled Interfaces For Self-Service Machines And Other Applications”(用于自助机器和其他应用的姿势控制的界面)的美国专利申请公开第 2009/0074248号中有公开,该公开通过整体引用结合于此。然而,一般而言,用户位置和移 动由捕捉设备20来检测。从该数据中,可确定上述关节位置向量。关节位置向量然后连同 其他姿态信息一起传递给姿势识别引擎190。姿势识别引擎190的操作参考图12的框图和 图13的流程图来更详细地解释。姿势识别引擎190在步骤550接收姿态信息500。姿态信息可包括除了关节位置 向量之外的大量参数。这些另外的参数可以包括捕捉设备20检测的χ、y和ζ最小和最大 图像平面位置。参数还可包括对离散时间间隔在每一关节的基础上对速度和加速度的测 量。由此,在各实施例中,姿势识别引擎190可接收用户的身体中的所有点的位置和动力活 动的完全描绘。姿势识别引擎190在步骤5M分析所接收的姿态信息500,来查看该姿态信息是否 匹配存储在姿势库MO中的任何预定义规则M2。存储的规则542描述了姿态信息500所 指示的特定位置和/或动力运动何时好被解释为预定义姿势。在各实施例中,每一姿势可 具有不同的、独特的规则或规则集M2。每一规则可具有关于图4所示的一个或多个身体部 位的多个参数(关节位置向量、最大/最小位置、位置变化等)。存储的规则可对每一参数 并对图4所示的每一身体部位(部位302-330)定义单个值、值范围、最大值、最小值、或关 于该身体部位的参数与该规则所覆盖的姿势的判定无关的指示。规则可由游戏作者、各种 游戏平台的主机或用户自己来创建。姿势识别引擎190可输出所标识的姿势和对应于用户的位置/移动与该姿势相对 应的可能性的置信水平。具体地,除了定义姿势所需的参数之外,规则还可包括在将姿态信 息500解释为姿势之前所需的阈值置信水平。某些姿势可具有更大影响来作为系统命令或 游戏指令,且因此在姿态被解释为该姿势之前需要更高的置信水平。姿态信息与存储的规 则参数的比较导致关于姿态信息是否指示姿势的累积置信水平。一旦确定了关于给定姿态或运动是否满足给定姿势规则的置信水平,姿势识别引 擎190然后就在步骤556确定该置信水平是否超过关于所考虑的规则的预定阈值。阈值置
14信水平可与所考虑的规则相关联地存储。如果置信水平低于该阈值,则检测不到任何姿势 (步骤560)并且不采取任何动作。另一方面,如果置信水平高于阈值,则确定用户的运动满 足所考虑的姿势规则,且姿势识别引擎190返回所标识的姿势。给定以上公开内容,可以理解,可以使用关节位置向量,尤其是非相邻关节位置向 量来标识大量姿势。作为许多示例中的一个,用户可提起并放下每一条腿312-320来在不 移动的情况下模拟行走。姿势识别引擎190可以通过分析来自每一髋相对于每一踝关节 320的信息来解析该姿势。特别地,站立的腿具有例如0°的髋-踝角,且前向水平伸出的 腿具有例如相对于垂直基准线或面的90°的髋-踝角。在这一示例中,可在一个髋-踝角 超过相对于基准线或面(其可以是垂直的、水平的或其他)的某一阈值时识别一步。行走 或奔跑可在交替腿的某一数量的连续步之后被识别。两个最近的步之间的时间可被认为是 周期。在不满足阈值角度达某一数量的周期之后,系统可确定行走或奔跑姿势已停止。给定“行走或奔跑”姿势,应用可为与该姿势相关联的参数设定值。这些参数可包 括上述阈值角度、发起行走或奔跑姿势所需的步数、结束姿势的没有发生步的周期数、以及 确定姿势是行走还是奔跑的阈值周期。快周期可对应于奔跑,因为用户将快速地移动他的 腿,而较慢的周期可对应于行走。在又一示例中,踢可以是包括踝以相对于髋的超过阈值的给定角提供的姿势。关 于该姿势的姿态信息500可以包括各种数据,包括上述阈值关节位置向量。在姿势是踢的 情况下,例如,姿态信息500可以是或可以包括定义踝相对于髋的阈值位置的向量。这些 示例不是限制性的,且姿势识别引擎190可以使用非相邻关节位置向量来标识大量其他姿 势。本发明系统的前述详细描述是出于说明和描述的目的而提供的。这并不旨在穷举 本发明系统或将本发明系统限于所公开的精确形式。鉴于上述教导,许多修改和变型都是 可能的。选择所述实施例以最好地解释本发明系统的原理及其实践应用,从而允许本领域 技术人员能够在各种实施例中并采用各种适于所构想的特定用途的修改来最好地利用本 发明系统。本发明系统的范围旨在由所附权利要求书来定义。
权利要求
1.一种在包括计算环境(1 的系统(10)中的方法,所述计算环境耦合到用于捕捉用 户位置的捕捉设备(20),所述方法生成用于确定用户是否执行了给定姿势的姿态信息,所 述方法包括(a)经由所述捕捉设备00)检测所述用户位置的第一骨架关节(302^32 的位置;(b)经由所述捕捉设备00)检测所述用户位置的第二骨架关节(302^32 的位置,所 述第二骨架关节不是与所述第一骨架关节(302^32 相邻的关节;以及(c)生成所述姿态信息,包括相对于所述第二骨架关节(302^32 的位置的、所述第 一骨架关节(302^32 的位置,以便用于确定用户是否执行了给定姿势。
2.如权利要求1所述的方法,其特征在于,所述检测第一骨架关节的位置的步骤(a)包 括检测端部关节的位置的步骤。
3.如权利要求1所述的方法,其特征在于,所述检测不与所述第一骨架关节相邻的第 二骨架关节的位置的步骤(b)包括检测离所述第一骨架关节两个关节的第二骨架关节的 位置的步骤。
4.如权利要求1所述的方法,其特征在于,所述检测不与所述第一骨架关节相邻的第 二骨架关节的位置的步骤(b)包括检测离所述第一骨架关节三个关节的第二骨架关节的 位置的步骤。
5.如权利要求1所述的方法,其特征在于,所述生成包括所述第一骨架关节和第二骨 架关节的相对位置的姿态信息的步骤(c)包括生成与预定义基准形成一角度的非相邻关 节位置向量的步骤。
6.如权利要求1所述的方法,其特征在于,还包括(d)检测第三关节的位置;以及(e)生成所述姿态信息,包括相对于所述第三骨架关节的位置的、所述第一骨架关节的位置。
7.如权利要求6所述的方法,其特征在于,所述检测所述第三关节的位置的步骤(d)包 括检测在与所述第一关节相邻的位置处的所述第三关节的步骤。
8.如权利要求6所述的方法,其特征在于,所述检测所述第三关节的位置的步骤(d)包 括检测在与所述第一关节隔开两个或更多关节的位置处的所述第三关节的步骤。
9.一种用于计算环境(1 的处理器可读存储介质(112、238),所述计算环境耦合到用 于捕捉用户位置的捕捉设备(20),所述存储介质对处理器(101、259)编程来执行一种检测 用户是否执行了给定姿势的方法,所述方法包括(a)检测所述用户位置的第一骨架关节(302^32 的位置;(b)检测所述用户位置的第二骨架关节(302^32 的位置,所述第二骨架关节不是与 所述第一骨架关节(302^32 相邻的关节;(c)生成非相邻关节位置向量,所述非相邻关节位置向量将在步骤(a)和(b)中检测到 的所述第一骨架关节和第二骨架关节(302^32 的位置作为端点;以及(d)使用在所述步骤(c)中生成的所述非相邻关节位置向量来确定所述用户是否执行 了给定姿势。
10.如权利要求9所述的处理器可读存储介质,其特征在于,还包括(e)检测所述用户位置的第三骨架关节(302^32 的第三位置,所述第三骨架关节不是与所述第一骨架关节相邻的关节;(f)生成将在步骤(a)和(e)中检测到的所述第一骨架关节和第三骨架关节的位置作 为端点的非相邻关节位置向量。
11.如权利要求9所述的处理器可读存储介质,其特征在于,还包括(g)检测除了第二关节之外的每一其他关节的一个或多个附加位置,所述每一其他关 节邻近所述第一关节直到位于所述用户的身体的核心处的距离所述第一关节至少两个关 节的关节且包括该位于用户的身体的核心处的关节;(h)生成附加的非相邻关节位置向量,对所述步骤(g)中检测到的每一附加位置有一 个附加的非相邻关节位置向量,每一附加的非相邻关节位置向量在所述步骤(g)中检测到 的附加位置与所述第一关节的位置之间延伸。
12.如权利要求11所述的处理器可读存储介质,其特征在于,还包括在确定用户是否 执行了给定姿势时使用在所述步骤(e)中生成的所述附加的非相邻关节位置向量中的一 个或多个的步骤。
13.一种用于检测用户在真实世界空间中执行的姿势的系统(10),所述系统包括用于捕捉视野内的用户的深度图像的捕捉设备00);用于从所述捕捉设备00)接收深度图像并确定多个关节(3023-32 的位置的计算环 境(12),所述多个关节(3023-32 包括端部关节(302、320、322)、邻近所述端部关节的至 少一个中间关节(306、316)、以及邻近所述至少一个中间关节的核心身体关节(324、326、 328);以及所述捕捉设备00)和计算设备(1 之一内的处理器(101、259),所述处理器用于生成 非相邻关节位置向量,所述非相邻关节位置向量具有端部关节处的以及不与所述端部关节 相邻的关节处的端点,所述不与端部关节相邻的关节来自至少一个中间关节和核心身体关 节中的一个,所述非相邻关节位置向量用于确定用户是否执行了预定义姿势。
14.如权利要求13所述的系统,其特征在于,所述非相邻关节位置向量包括第一非相 邻关节位置向量,所述处理器还生成第二非相邻位置向量,所述第二非相邻位置向量将所 述端部关节和另一关节作为端点,所述另一关节不是与所述端部关节相邻的关节,且不是 形成所述第一非相邻关节位置向量的一部分的关节。
15.如权利要求13所述的系统,其特征在于,所述处理器被包括在所述计算环境中,所 述处理器还生成包括所述非相邻关节位置向量的姿态信息,将所述姿态信息与存储的姿势 进行比较,以及确定所述姿态信息是否指示已经执行了所述存储的姿势的给定姿势。
全文摘要
本发明公开了基于关节跳过的姿势检测方法和装置。公开了用于通过标识由非相邻关节形成的向量并标识该向量与基准点形成的角来检测或确认用户执行的姿势的系统。由此,该系统跳过端部关节和较靠近用户的身体核心的邻近关节之间的一个或多个中间关节。跳过一个或多个中间关节导致对用户执行的位置或移动的更可靠指示,且因此导致对给定姿势的更可靠指示。
文档编号G06K9/00GK102129551SQ201110043269
公开日2011年7月20日 申请日期2011年2月15日 优先权日2010年2月16日
发明者A·威尔逊, P·托塞尔 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1