将骨架数据实时重新定标到游戏化身.pdf

上传人:r7 文档编号:4246205 上传时间:2018-09-11 格式:PDF 页数:35 大小:1.15MB
返回 下载 相关 举报
摘要
申请专利号:

CN201080024688.7

申请日:

2010.05.26

公开号:

CN102448565A

公开日:

2012.05.09

当前法律状态:

授权

有效性:

有权

法律详情:

专利权的转移IPC(主分类):G06T 13/40变更事项:专利权人变更前权利人:微软公司变更后权利人:微软技术许可有限责任公司变更事项:地址变更前权利人:美国华盛顿州变更后权利人:美国华盛顿州登记生效日:20150430|||授权|||实质审查的生效IPC(主分类):A63F 13/00申请日:20100526|||公开

IPC分类号:

A63F13/00; A63F13/06

主分类号:

A63F13/00

申请人:

微软公司

发明人:

A·A·基普曼; K·兹努达; J·N·马戈利斯; S·W·西姆斯; N·D·伯顿; A·威尔逊

地址:

美国华盛顿州

优先权:

2009.05.29 US 61/182,505; 2009.08.26 US 12/548,251

专利代理机构:

上海专利商标事务所有限公司 31100

代理人:

杨洁

PDF下载: PDF下载
内容摘要

在此揭示了用于在应用运行时期间生成化身模型的技术。该化身模型可从由捕捉设备捕捉的图像生成。可定位末端效应物反向运动学可被用来确定化身模型中的其他节点的位置。

权利要求书

1: 一种系统, 包括 : 用于在应用的实时执行期间接收化身末端效应物 ( 图 7 的 j1, j11, j12, j17, 或 j18) 的位置的电路 (304), 所述化身末端效应物 ( 图 7 的 j1, j11, j12, j17, 或 j18) 被设置到使 用用户末端效应物 ( 图 6 的 j1, j11, j12, j17, 或 j18) 所计算的位置, 所述用户末端效应物 ( 图 6 的 j1, j11, j12, j17, 或 j18) 的位置是从先前用户的图像中生成的 ; 以及 用于在应用的实时执行期间确定化身模型关节 ( 图 7 的 j2-j10 和 j13-j16) 的位置 以获取化身模型 (702) 的解剖学上可能的姿态的电路 (590), 所述化身模型关节 ( 图 7 的 j2-j10 和 j13-j16) 的位置至少从所述化身末端效应物 ( 图 7 的 j1, j11, j12, j17, 或 j18) 的位置来确定。
2: 如权利要求 1 所述的系统, 其特征在于, 所述用于确定化身模型关节的位置的电路 还包括 : 用于确定特定化身模型关节的方向以至少逼近用户关节的方向的电路, 所述用户关节 的方向从由用户图像生成的数据获得。
3: 如权利要求 1 所述的系统, 其特征在于, 还包括 : 用于从用户的图像生成用户模型的电路, 所述用户模型包括所述用户末端效应物的位 置。
4: 如权利要求 1 所述的系统, 其特征在于, 还包括 : 用于生成动画流的电路, 所述动画流包括所述化身模型关节的位置和所述末端效应物 的位置 ; 以及 用于将所述动画流发送到图形处理器的电路。
5: 如权利要求 1 所述的系统, 其特征在于, 所述用于确定化身模型关节的位置的电路 还包括 : 用于确定特定化身模型关节与特定用户关节不相关联的电路, 其中在数据不包括特定 用户关节的位置信息时特定化身模型关节与特定用户关节不相关联 ; 以及 用于将特定化身模型关节的位置设置为逼近默认位置的电路。
6: 如权利要求 1 所述的系统, 其特征在于, 还包括 : 用于在应用执行期间从所述应用接收对化身模型的请求的电路 ; 以及 用于在应用执行期间从模型的库选择化身模型的电路。
7: 如权利要求 1 所述的系统, 其特征在于, 还包括 : 用于生成特定用户关节和特定模型关节之间的关系的电路 ; 以及 用于生成将用户末端效应物与用户关节耦合的互连以拟合所述化身模型的大小的电 路。
8: 如权利要求 1 所述的系统, 其特征在于, 还包括 : 用于将用户末端效应物映射到具有与所述用户不同的骨架构造的化身模型的电路。
9: 如权利要求 1 所述的系统, 其特征在于, 还包括 : 用于生成包括用户末端效应物的用户模型的电路 ; 以及 用于从所述用户模型确定所述用户末端效应物的位置的电路。
10: 如权利要求 1 所述的系统, 其特征在于, 所述化身模型包括非人类化身模型。
11: 如权利要求 1 所述的系统, 其特征在于, 还包括 : 2 用于接收定义由应用使用的化身类型的信息的电路 ; 以及 用于在应用执行期间基于定义了由应用使用的化身类型的信息从化身模型的库中选 择化身模型的电路。
12: 如权利要求 1 所述的系统, 其特征在于, 还包括 : 用于调整将用户末端效应物与关节耦合的互连的大小以拟合所述化身模型的大小的 电路。
13: 如权利要求 1 所述的系统, 还包括 : 用于将用户末端效应物映射到具有与所述用户模型不同的骨架构造的化身模型的电 路。
14: 一种方法, 包括 : 执行视频游戏 (304) ; 基于从所述视频游戏接收的信息加载化身模型 (570), 所述化身模型 (700) 包括化身 末端效应物 ( 图 7 的 j1) 和多个化身关节 ( 图 7 的 j2-j10 和 j13-j16) ; 接收用户末端效应物 ( 图 6 的 j1) 的位置信息 ; 在所述视频游戏实时执行期间, 确定化身末端效应物 ( 图 7 的 j1) 的位置, 其中所述化 身末端效应物 ( 图 7 的 j1) 的位置使用用户末端效应物 ( 图 6 的 j1) 的位置信息来计算 ; 接收所述用户末端效应物 ( 图 6 的 j1) 的第二位置信息 ; 在所述视频游戏实时执行期间, 将化身末端效应物 ( 图 7 的 j1) 的位置更新到第二位 置, 其中化身末端效应物 ( 图 7 的 j1) 的位置使用所述用户末端效应物 ( 图 6 的 j1) 的第 二位置信息来计算 ; 以及 在所述视频游戏实时执行期间, 确定所述化身关节 ( 图 7 的 j2-j10 和 j13-j16) 的位 置以获取所述化身模型 (700) 的解剖学上可能的姿态, 其中所述姿态维持所述化身末端效 应物 ( 图 7 的 j1) 的已更新位置。
15: 根据权利要求 14 所述的方法, 其特征在于, 还包括 : 将特定模型关节的方向设置为至少逼近用户关节的方向, 所述用户关节的方向从已生 成的用户模型中确定。

说明书


将骨架数据实时重新定标到游戏化身

    背景技术 诸如计算机游戏、 多媒体应用等许多计算应用包括使用典型的运动捕捉技术来动 画化的化身或人物。 例如, 在开发高尔夫球游戏时, 可以将专业高尔夫球手带入具有运动捕 捉设备的工作室, 该运动捕捉设备包括例如朝向工作室中的特定点的多个照相机。专业高 尔夫球手然后可以装备具有多个点指示器的运动捕捉套装, 这些点指示器可以用照相机来 配置并由照相机跟踪, 以使得照相机可捕捉例如专业高尔夫球手的运动。这些运动然后能 够在开发高尔夫球游戏期间被应用于化身或人物。当完成高尔夫球游戏后, 化身或人物然 后能够在执行高尔夫球游戏期间用专业高尔夫球手的运动来动画化。不幸的是, 典型的运 动捕捉技术是昂贵的, 依靠特定应用的开发, 并且不包括与应用的实际玩家或用户相关联 的运动。
     发明内容 本发明的一个示例性实施例描述了一种方法。 在该示例中, 该方法包括但不限于, 在应用的实时执行期间, 接收化身末端效应物的位置 ; 化身末端效应物被设置到使用用户 末端效应物的位置计算的位置 ; 用户末端效应物的位置先前从用户的图像生成 ; 并在应用 的实时执行期间, 确定化身模型关节的位置以获得化身模型解剖学上可能的姿态, 该化身 模型关节的位置至少从该化身末端效应物的位置确定。除了上述方面, 构成本公开的一部 分的权利要求、 附图、 以及文本还描述了其他方面。
     本发明的一个示例性实施例描述了一种方法。在该示例中, 该方法包括但不限 于, 执行视频游戏 ; 基于从视频游戏接收的信息加载化身模型, 该化身模型包括化身末端效 应物和多个化身节点 ; 接收用户末端效应物的位置信息 ; 在视频游戏实时执行期间, 确定 化身末端效应物的位置, 其中化身末端效应物的位置使用用户末端效应物的位置信息来计 算; 接收用户末端效应物的第二位置信息 ; 在视频游戏实时执行期间, 将化身末端效应物 的位置更新到第二位置, 其中化身末端效应物的位置使用用户末端效应物的第二位置信息 来计算 ; 并且在视频游戏实时执行期间, 确定化身节点的位置来获得化身模型解剖学上可 能的姿态, 其中姿态维持化身末端效应物的已更新位置。 除了上述方面, 构成本公开的一部 分的权利要求、 附图、 以及文本还描述了其他方面。
     本发明的一个示例性实施例描述了一种方法。 在该示例中, 该方法包括但不限于, 从图像生成用户模型, 其中用户模型包括用户末端效应物 ; 在应用的运行时执行期间, 将用 户末端效应物映射到化身模型 ; 在应用的运行时执行期间, 设置化身关节的位置来获得模 型的解剖学上可能的姿态 ; 并且在应用的运行时执行期间, 基于对用户模型的改变, 修改化 身末端效应物的位置和化身关节。除了上述方面, 构成本公开的一部分的权利要求、 附图、 以及文本还描述了其他方面。
     本领域技术人员之一可理解, 本公开的一个或更多个方面可包括但不限于用于实 现本公开的本文所提及的各方面的电路和 / 或编程 ; 该电路和 / 或编程实质上可以是配置 成实现本文所提及的方面的硬件、 软件和 / 或固件的任何组合, 这取决于系统设计者的设
     计选择。
     以上是发明内容, 并且因此必然包含细节的简化、 一般化及省略。 本领域技术人员 将明白, 本发明内容只是说明性的并且决不旨在是限制性的。附图说明
     图 1 描绘其中可实现本发明的各方面的示例多媒体控制台。
     图 2 描绘其中可实现本发明的各方面的示例计算机系统。
     图 3 示出目标识别、 分析和跟踪系统的配置的一示例实施例。
     图 4 示出目标识别、 分析和跟踪系统的配置的一示例实施例。
     图 5 示出耦合到计算环境的捕捉设备的一示例实施例。
     图 6 示出了示例用户模型。
     图 7 示出了示例化身模型。
     图 8A 示出了用户模型。
     图 8B 示出了可能已经从用户模型中生成的化身模型。
     图 9 示出了示例化身。
     图 10 描绘了用于实施本公开的各方面的操作过程。
     图 11 描绘了图 10 的操作过程的替换实施例。
     图 12 描绘了用于实施本公开的各方面的操作过程。
     图 13 描绘了图 12 的操作过程的替换实施例。
     图 14 用于实施本公开的各方面的操作过程。
     图 15 描绘了图 14 的操作过程的替换实施例。 具体实施方式
     如本文中将描述的, 用户可通过执行一个或多个姿势和 / 或移动来控制在诸如游 戏控制台、 计算机等计算环境上执行的应用和 / 或动画化化身或屏幕上人物。根据一个实 施例, 姿势和 / 或移动可由例如捕捉设备来检测。例如, 捕捉设备可捕捉场景的深度图像并 且将图像发送到计算环境。可生成模型, 该模型可被用来在应用中动画化化身。
     图 1 和 2 示出了其中可实现本发明的示例计算环境。 本领域的技术人员可以理解, 计算环境可具有参照图 1 的多媒体控制台 100 和图 2 的计算机系统 200 描述的组件中的一 部分或全部。
     贯穿本公开使用的术语电路可包括诸如专用集成电路、 硬件中断控制器、 硬盘驱 动器、 网络适配器、 图形处理器、 基于硬件的视频 / 音频编解码器等硬件组件, 以及用于操 作这些硬件的固件 / 软件。术语电路还可包括被配置成通过固件或通过开关集来以特定方 式执行功能的微处理器, 或一个或多个逻辑处理器, 例如, 多核通用处理单元的一个或多个 核。此示例中的逻辑处理器可以通过从存储器, 例如, RAM、 ROM、 固件等中加载的体现可操 作以执行功能的逻辑的软件指令来配置。在其中电路包括硬件和软件的组合的示例实施 例中, 实现者可以编写具体化逻辑的源代码, 该源代码随后被编译成可由逻辑处理器执行 的机器可读代码。因为本领域技术人员可以明白现有技术已经进化到硬件、 软件或硬件 / 软件的组合之间几乎没有差别的地步, 因而选择硬件还是软件来实现功能只是一个设计选择。 因此, 由于本领域的技术人员可以理解软件进程可被变换成等效的硬件结构, 且硬件结 构本身可被变换成等效的软件进程, 因此选择硬件实现或是软件实现对本发明是无关紧要 的且留给了实现者。
     图 1 示出了计算环境的示例实施例, 其可被用来动画化图 4 的目标识别、 分析和跟 踪系统所显示的屏幕上人物或化身。 如此计算环境可以是诸如游戏控制台之类的多媒体控 制台 100。 如图 1 所示, 多媒体控制台 100 具有可含有 1 级高速缓存 102、 2 级高速缓存 104, 和闪存 ROM( 只读存储器 )106 的逻辑处理器 101。1 级高速缓存 102 和 2 级高速缓存 104 临 时存储数据, 并因此减少存储器访问周期数, 由此改进处理速度和吞吐量。逻辑处理器 101 可以设置成具有一个以上的内核, 以及由此的附加的 1 级和 2 级高速缓存 102 和 104。闪存 ROM 106 可存储在多媒体控制台 100 通电时引导过程的初始阶段期间加载的可执行代码。
     图形处理单元 (GPU)108 和视频编码器 / 视频编解码器 ( 编码器 / 解码器 )114 形 成用于高速和高分辨率图形处理的视频处理流水线。经由总线从图形处理单元 108 向视频 编码器 / 视频编解码器 114 运送数据。视频处理流水线向 A/V( 音频 / 视频 ) 端口 140 输 出数据, 用于传输至电视或其他显示器。存储器控制器 110 连接到 GPU 108 以方便处理器 访问各种类型的存储器 112, 诸如但不局限于 RAM( 随机存取存储器 )。 多媒体控制台 100 包括较佳地在模块 118 上实现的 I/O 控制器 120、 系统管理控 制器 122、 音频处理单元 123、 网络接口控制器 124、 第一 USB 主控制器 126、 第二 USB 控制器 128 和前面板 I/O 子部件 130。USB 控制器 126 和 128 用作外围控制器 142(1)-142(2)、 无 线适配器 148、 和外置存储器设备 146( 例如闪存、 外置 CD/DVD ROM 驱动器、 可移动介质等 ) 的主机。网络接口 124 和 / 或无线适配器 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 内的电路。
     逻辑处理器 101、 GPU108、 存储器控制器 110、 和多媒体控制台 100 内的各种其他 组件经由一条或多条总线互连, 总线包括串行和并行总线、 存储器总线、 外围总线、 和使用 各种总线架构中任一种的处理器或局部总线。作为示例, 这些架构可以包括外围部件互连 (PCI) 总线、 PCI-Express 总线等。
     当多媒体控制台 100 通电时, 应用数据可从系统存储器 143 加载到存储器 112 和
     / 或高速缓存 102、 104 中并在逻辑处理器 101 上执行。应用可呈现在导航到多媒体控制台 100 上可用的不同媒体类型时提供一致的用户体验的图形用户界面。 在操作中, 介质驱动器 144 中包含的应用和 / 或其他介质可从介质驱动器 144 启动或播放, 以向多媒体控制台 100 提供附加功能。
     多媒体控制台 100 可通过将该系统简单地连接到电视机或其他显示器而作为独 立系统来操作。在该独立模式中, 多媒体控制台 100 允许一个或多个用户与该系统交互、 看 电影、 或听音乐。然而, 随着通过网络接口 124 或无线适配器 148 可用的宽带连接的集成, 多媒体控制台 100 还可作为更大网络社区中的参与者来操作。
     当多媒体控制台 100 通电时, 可以保留设定量的硬件资源以供多媒体控制台操作 系统作系统使用。这些资源可包括存储器的保留量 ( 诸如, 16MB)、 CPU 和 GPU 周期的保留 量 ( 诸如, 5% )、 网络带宽的保留量 ( 诸如, 8kbs), 等等。因为这些资源是在系统引导时间 保留的, 所保留的资源对于应用视角而言是不存在的。
     具体而言, 存储器保留优选地足够大, 以包含启动内核、 并发系统应用和驱动程 序。CPU 保留优选地为恒定, 使得若所保留的 CPU 用量不被系统应用使用, 则空闲线程将消 耗任何未使用的周期。 对于 GPU 保留, 通过使用 GPU 中断来调度代码来将弹出窗口呈现为覆盖图以显示 由系统应用生成的轻量消息 ( 例如, 弹出窗口 )。 覆盖图所需的存储器量取决于覆盖区域大 小, 并且覆盖图优选地与屏幕分辨率成比例缩放。在并发系统应用使用完整用户界面的情 况下, 优选使用独立于应用分辨率的分辨率。 定标器可用于设置该分辨率, 从而无需改变频 率并引起 TV 重新同步。
     在多媒体控制台 100 引导且系统资源被保留之后, 就执行并发系统应用来提供系 统功能。系统功能被封装在上述所保留的系统资源中执行的一组系统应用中。操作系统内 核标识是系统应用线程而非游戏应用线程的线程。 系统应用优选地被调度为在预定时间并 以预定时间间隔在逻辑处理器 101 上运行, 以便为应用提供一致的系统资源视图。进行调 度是为了把由在控制台上运行的游戏应用所引起的高速缓存分裂最小化。
     当并发系统应用需要音频时, 则由于时间敏感性而将音频处理异步地调度给游戏 应用。多媒体控制台应用管理器 ( 如下所述 ) 在系统应用活动时控制游戏应用的音频水平 ( 例如, 静音、 衰减 )。
     输入设备 ( 例如, 控制器 142(1) 和 142(2)) 由游戏应用和系统应用共享。输入设 备不是保留资源, 而是在系统应用和游戏应用之间切换以使其各自具有设备的焦点。应用 管理器较佳地控制输入流的切换, 而无需知晓游戏应用的知识, 并且驱动程序维护有关焦 点切换的状态信息。相机 26、 28 和捕捉设备 306 可为控制台 100 定义额外的输入设备。
     现在参考图 2, 描绘了示例性计算系统 200。计算机系统 200 可包括逻辑处理器 202, 如执行核。尽管示出了一个逻辑处理器 202, 但在其他实施例中, 计算机系统 200 可具 有多个逻辑处理器, 例如每一处理器基板有多个执行核, 和 / 或各自可具有多个执行核的 多个处理器基板。如图所示, 各种计算机可读存储介质 210 可由一系统总线互联, 系统总 线将各种系统组件耦合到逻辑处理器 202。系统总线可以是几种类型的总线结构中的任 何一种, 包括存储器总线或存储器控制器、 外围总线、 以及使用各种总线体系结构中的任一 种的局部总线。在示例实施例中, 计算机可读存储介质 210 可以包括例如随机存取存储器
     (RAM)204、 存储设备 206( 例如电机硬盘驱动器、 固态硬盘驱动器等 )、 固件 208( 例如闪速 RAM 或 ROM)、 以及可移动存储设备 218( 例如 CD-ROM、 软盘、 DVD、 闪速驱动器、 外部存储设备 等 )。 本领域的技术人员应当理解, 可使用其他类型的计算机可读存储介质, 如磁带盒、 闪存 卡、 数字视频盘、 柏努利盒式磁带等, 来存储数据。
     计算机可读存储介质提供对计算机可读指令、 数据结构、 程序模块、 和计算机 200 的其它数据的存储。基本输入 / 输出系统 (BIOS)220 可被存储在固件 208 中, 它包含帮助 在诸如启动期间在计算机系统 200 内的各元件之间传递信息的基本例程。若干个应用和操 作系统 222 可被存储在固件 208、 存储设备 206、 RAM 204, 和 / 或可移动存储设备 218 上, 并 且可由逻辑处理器 202 来执行。
     可由计算机 200 通过输入设备 216 接收命令和信息, 其可包括但不限于, 键盘和 定点设备、 操纵杆, 和 / 或图 5 的捕捉设备 306。其他输入设备可包括麦克风、 扫描仪, 等。 这些和其他输入设备常通过耦合到系统总线的串行端口接口连接到逻辑处理器 202, 但也 可通过其他接口连接, 如并行端口、 游戏端口或通用串行总线 (USB)。显示器或其他类型的 显示设备也可经由诸如视频适配器等可以是图形处理器 212 的一部分或可连接到图形处 理器 112 的接口来连接到系统总线。除了显示器之外, 计算机通常包括其他外围输出设备 ( 未示出 ), 如扬声器和打印机。图 1 的示例性系统还可包括主适配器、 小型计算机系统接 口 (SCSI) 总线和连接到 SCSI 总线的外部存储设备。 计算机系统 200 可使用至一个或多个远程计算机, 如远程计算机, 的逻辑连接在 网络化环境中操作。 远程计算机可以是另一计算机、 服务器、 路由器、 网络 PC、 对等设备或其 他常见的网络节点, 并且通常可包括上面关于计算机系统 200 所述的许多或全部元件。
     当在 LAN 或 WAN 联网环境中使用时, 计算机系统 100 可通过网络接口卡 214(NIC) 连接至 LAN 或 WAN。 NIC 214( 可以是内部或外部的 ) 可以连接到系统总线。 在联网环境中, 相对于计算机系统 100 所描述的程序模块或其部分可被储存在远程存储器存储设备中。可 以理解, 所描述的网络连接是示例性的, 且可以使用在计算机之间建立通信链路的其他手 段。 此外, 虽然构想本公开的许多实施例尤其适用于计算机化的系统, 然而在本文中没有任 何表述旨在将本公开限于那些实施例。
     图 3 和 4 示出伴随用户 302 玩拳击游戏的目标识别、 分析和跟踪系统 300 的配置 的示例实施例。在一示例实施例中, 目标识别、 分析和跟踪系统 300 可用于识别、 分析和 / 或跟踪诸如用户 302 等的人类目标。
     如图 3 所示, 目标识别、 分析及跟踪系统 300 可包括计算环境 304。计算环境 304 可以是计算机、 游戏系统或控制台等, 包括类似图 1 和 2 中描述的那些组件。
     如图 3 所示, 目标识别、 分析及跟踪系统 300 还可包括捕捉设备 306。 捕捉设备 306 可以是例如照相机, 所述照相机可用于在视觉上监视诸如用户 302 等的一个或多个用户从 而可以捕捉、 分析并跟踪一个或多个用户所执行的姿势和 / 或移动, 来执行应用中的一个 或多个控制命令或动作和 / 或动画化化身或屏幕上人物, 如将在下面更详细地描述的。
     根据一个实施例, 目标识别、 分析及跟踪系统 300 可连接到可向诸如用户 302 等用 户提供游戏或应用视觉和 / 或音频的视听设备 320, 如电视机、 监视器、 高清电视机 (HDTV) 等。例如, 计算环境 304 可包括诸如图形卡等视频适配器和 / 或诸如声卡等音频适配器, 这 些适配器可提供与游戏应用、 非游戏应用等相关联的视听信号。视听设备 320 可从计算环
     境 304 接收视听信号, 然后可向用户 302 输出与该视听信号相关联的游戏或应用视觉和 / 或音频。根据一个实施例, 视听设备 320 可经由例如, S- 视频电缆、 同轴电缆、 HDMI 电缆、 DVI 电缆、 VGA 电缆等连接到计算环境 304。
     如图 3 和 4 所示, 在一示例实施例中, 在计算环境 304 上执行的应用可以是用户 302 可能正在玩的拳击游戏。例如, 计算环境 304 可使用视听设备 320 来向用户 302 提供拳 击对手 338 的视觉表示。计算环境 304 还可使用视听设备 320 来提供用户 302 可通过他的 或她的移动来控制的玩家化身 324 的视觉表示。例如, 如图 3 所示, 用户 302 可在物理空间 中挥拳来使得玩家化身 324 在游戏空间中挥拳。因此, 根据一示例实施例, 目标识别、 分析 和跟踪系统 300 的计算环境 304 和捕捉设备 306 可用于识别和分析物理空间中用户 302 的 重拳从而使得该重拳可被解释为对游戏空间中的玩家化身 324 的游戏控制和 / 或该重拳的 运动可用于动画化游戏空间中的玩家化身 324。
     用户 302 的其他移动也可被解释为其他控制命令或动作, 和 / 或用于动画化玩家 化身 324, 如上下快速摆动、 闪避、 滑步、 封堵、 用拳猛击或挥动各种不同的有力重拳的控制 命令。此外, 某些移动可被解释为可对应于除控制玩家化身 324 之外的动作的控制。例如, 玩家可以使用移动来结束、 暂停或保存游戏、 选择级别、 查看高分、 与朋友交流等。另外, 用 户 302 的全范围运动可以用任何合适的方式来获得、 使用并分析以与应用进行交互。
     在示例实施例中, 诸如用户 302 的人类目标控制化身 324 以与应用中的对象进行 交互。例如, 用户 302 可伸手拿游戏中的对象以使用该对象。在此示例中, 目标识别、 分析 和跟踪系统 300 可被配置来允许化身 324 拿起该对象并在游戏中使用该对象。在特定示例 中, 用户的化身 324 可拿起并握住电子运动游戏中使用的球拍。
     根据其他示例实施例, 目标识别、 分析及跟踪系统 300 还可用于将目标移动解释 为游戏领域之外的操作系统和 / 或应用控制。例如, 事实上操作系统和 / 或应用的任何可 控方面可由诸如用户 302 等目标的移动来控制。
     图 5 示出可在目标识别、 分析及跟踪系统 300 中使用的捕捉设备 306 的示例实施 例。根据一示例实施例, 捕捉设备 306 可被配置成经由任何合适的技术, 包括例如飞行时 间、 结构化光、 立体图像等来捕捉包括深度图像的带有深度信息的视频, 该深度信息可包括 深度值。根据一实施例, 捕捉设备 306 可将深度信息组织为 “Z 层” 或者可与从深度相机沿 其视线延伸的 Z 轴垂直的层。
     如图 5 所示, 捕捉设备 306 可包括图像相机组件 502。根据一个示例实施例, 图像 相机组件 502 可以是可捕捉场景的深度图像的深度相机。深度图像可包括所捕捉的场景的 二维 (2-D) 像素区域, 其中 2-D 像素区域中的每一像素可表示深度值, 诸如例如以厘米、 毫 米等计的、 所捕捉的场景中的对象距相机的长度或距离。
     如图 5 所示, 根据一示例实施例, 图像相机组件 502 可包括可用于捕捉场景的深 度图像的 IR 光组件 524、 三维 (3-D) 相机 526、 和 RGB 相机 528。例如, 在飞行时间分析中, 捕捉设备 306 的 IR 光组件 524 可以将红外光发射到场景上, 然后, 可以使用传感器 ( 未示 出 ), 用例如 3-D 相机 526 和 / 或 RGB 相机 528, 来检测从场景中的一个或多个目标和物体 的表面反向散射的光。 在某些实施例中, 可以使用脉冲红外光, 使得可以测量出射光脉冲和 相应的入射光脉冲之间的时间差并将其用于确定从捕捉设备 306 到场景中的目标或物体 上的特定位置的物理距离。 附加地, 在其他示例实施例中, 可将出射光波的相位与入射光波的相位进行比较来确定相移。 然后可以使用该相移来确定从捕捉设备到目标或物体上的特 定位置的物理距离。
     根据另一示例实施例, 可使用飞行时间分析, 通过经由包括例如快门式光脉冲成 像在内的各种技术来分析反射光束随时间的强度变化以间接地确定从捕捉设备 306 到目 标或物体上的特定位置的物理距离。
     在另一示例实施例中, 捕捉设备 306 可使用结构化光来捕捉深度信息。在这一分 析中, 图案化光 ( 即, 被显示为诸如网格图案或条纹图案等已知图案的光 ) 可经由例如 IR 光组件 524 被投影到场景上。在落到场景中的一个或多个目标或物体的表面上时, 作为响 应, 图案可变形。图案的这种变形可由例如 3-D 相机 526 和 / 或 RGB 相机 528 来捕捉, 然后 可被分析来确定从捕捉设备到目标或物体上的特定位置的物理距离。
     根据另一实施例, 捕捉设备 306 可包括两个或更多个物理上分开的相机, 这些相 机可从不同角度查看场景以获得视觉立体数据, 该视觉立体数据可被解析以生成深度信 息。
     捕捉设备 306 还可包括话筒 530。话筒 530 可包括可接收声音并将其转换成电信 号的换能器或传感器。根据一个实施例, 话筒 530 可以被用来减少目标识别、 分析及跟踪系 统 300 中的捕捉设备 306 和计算环境 304 之间的反馈。另外, 话筒 530 可用于接收也可由 用户提供的音频信号, 以控制可由计算环境 304 执行的诸如游戏应用、 非游戏应用等应用。 在示例实施例中, 捕捉设备 306 还可以包括可与图像相机组件 502 进行可操作的 通信的逻辑处理器 532。捕捉设备 306 还可以包括存储器组件 534, 该存储器组件 534 可以 存储可以由处理器 532 执行的指令、 由 3-D 相机或 RGB 相机捕捉到的图像或图像的帧、 或任 何其他合适的信息、 图像等等。根据一个示例实施例, 存储器组件 534 可包括随机存取存储 器 (RAM)、 只读存储器 (ROM)、 高速缓存、 闪存、 硬盘或任何其他合适的存储组件。如图 5 所 示, 在一个实施例中, 存储器组件 534 可以是与图像捕捉组件 520 和逻辑处理器 532 进行通 信的单独的组件。根据另一实施例, 存储器组件 534 可被集成到处理器 532 和 / 或图像捕 捉组件 520 中。
     捕捉设备 306 可被配置来获取由例如, 捕捉设备 306 的 3-D 相机 426 和 / 或 RGB 相机 528 捕捉到的场景的图像或帧。在示例实施例中, 深度图像可包括所捕捉的场景中的 人类目标和一个或多个非人类目标, 诸如墙壁、 桌子、 监视器等。深度图像可包括多个观测 到的像素, 其中每一观测到的像素具有与其相关联的观测到的深度值。 例如, 深度图像可包 括所捕捉的场景的二维 (2-D) 像素区域, 其中 2-D 像素区域中的每一像素可表示深度值, 诸 如例如以厘米、 毫米等计的、 所捕捉的场景中的对象或目标距捕捉设备的长度或距离。 在一 示例实施例中, 深度图像可被着色从而使得深度图像的像素的不同颜色对应于人类目标和 非人类目标离捕捉设备的不同距离。 例如, 根据一个实施例, 深度图像中与最接近捕捉设备 的目标相关联的像素可用红色和 / 或橙色阴影来着色, 而深度图像中与较远的目标相关联 的像素可用绿色和 / 或蓝色阴影来着色。
     另外, 如上所述, 捕捉设备可将包括深度图像的所计算的深度信息组织成 “Z 层” , 即可垂直于从相机沿着其视线延伸到观察者的 Z 轴的层。可基于所确定的边缘来对 Z 层的 可能 Z 值进行泛色填充。例如, 与所确定的边相关联的像素以及该所确定的边内的区域的 像素可互相关联来定义可与模式进行比较的场景中的目标或对象。如以下所描述, 图像可
     接着被用来生成用户的骨架模型。
     继续图 5 的一般描述, 捕捉设备 306 可以经由通信链路 536 与计算环境 304 通信。 通信链路 536 可以是包括例如 USB 连接、 火线连接、 以太网电缆连接等的有线连接和 / 或诸 如无线 802.11b、 802.11g、 802.11a 或 802.11n 连接等的无线连接。根据一个实施例, 计算 环境 304 可以经由通信链路 536 向捕捉设备 306 提供时钟, 可以使用该时钟来确定何时捕 捉例如场景。
     另外, 捕捉设备 306 可经由通信链路 536 向计算环境 304 提供深度信息和由例如 3-D 相机 526 和 / 或 RGB 相机 528 捕捉的图像, 和 / 或可由捕捉设备 306 生成的骨架模型。 计算环境 304 然后可使用该模型、 深度信息、 以及所捕捉的图像来例如控制诸如游戏或文 字处理程序等的应用和 / 或动画化化身或屏幕上人物。
     例如, 如图 5 所述, 计算环境 304 可包括应用 560、 模型库 570、 映射系统 580, 和/ 或反向运动学系统 509。通常, 元件 560-590 的每一个可通过电路实现, 并且为了解释方便 将元件 560-590 表示为分立元件, 在其他实施例中, 结合元件 560-590 描述的功能的一些或 全部可由相同或不同电路执行。
     通常, 应用 560 可以是视频游戏或任何其他包含化身的应用。在一实施例中, 计 算环境 304 可包括可存储不同化身的模型库 570。可在应用中动画化化身以匹配由目标识 别、 分析和跟踪系统 300 捕捉的用户运动。特定示例可包括, 包括怪物人物模型和该怪物的 一系列默认姿态的模型库 570。怪物人物模型可被用来定义在此特定应用中怪物看起来如 何。化身可被用来生成具有特定姿态的怪物的游戏内副本。在一个示例实施例中, 模型库 570 可与应用 560 相关联, 然而在其他实施例中模型库 570 可从应用 560 分离而仅被应用 560 使用。 继续图 5 的描述, 映射系统 580 可被配置来将反映用户空间中的用户位置的用户 模型映射到从模型库 570 获得的化身模型。例如, 在下文中更详细地描述, 用户模型可被生 成为包括节点。 用户模型中的每个节点可与用户的一部分相关联, 例如, 一些节点可以是关 节节点, 如, 代表两个或更多骨骼交互的位置的节点, 或诸如手的附属肢体。节点可以由互 连相连接, 例如, 骨骼, 并且可以建立定义类似树的父子系统的分级关系。父节点本身可以 是子并且可以连接到其他节点。在特定示例中, 手腕可以是肘之子, 而肘可以是肩之子。该 递归关系可以继续到一个或多个根节点, 其可被用作基准框架, 用于从用户模型到化身模 型映射节点。通常, 模型可包括末端效应物, 其为层级结构内的任何节点, 动画设计者想要 直接安置这些节点来, 例如, 与环境交互。例如, 手、 脚, 和头是典型的末端效应物。然而, 动 画设计者可能希望依据应用在特定情况中操作肩、 膝或胸甲。
     如前实施例中所述, 化身模型 700 可具有至少一个根节点, 并且可以使用化身的 根节点以及用户模型 600 的对应的一个 ( 或多个 ) 根节点建立关系。可以从用户模型节点 的位置计算出化身节点的位置。 例如, 可获取末端效应物的父节点和祖父节点的位置信息, 并且可在对应的父节点和祖父节点之间建立关系。
     除了映射系统 580, 图 5 示出了反向运动学系统 590。通常, 反向运动学被用来基 于分级结构中给定节点的位置来确定节点的一组位置。例如, 由于用户模型是从较少标记 系统生成的, 一些节点角度可能没有被接收, 或者化身可能具有远多于用户模型的节点。 因 此, 在示例实施例中, 反向运动学系统 590 可被使用。反向运动学系统 590 可从映射系统
     580 接收末端效应物位置, 并且可生成至少模拟了末端效应物的位置的化身模型的姿态。 在 一些实施例中, 除末端效应物以外的位置可被用来模拟用户模型的姿态。反向运动学系统 590 的输出可被馈送到应用 560, 在那里可使用标准动画来混合或修改它。
     在示例实施例中, 反向运动学系统 590 可接收一组希望的末端效应物位置 / 定向 目标作为输入。 从该组, 反向运动学系统 590 可提供允许这些目标相遇的一组节点角度。 反 向运动学问题与正向运动学问题紧密相关, 其可由以下等式简单描述 :
     x = f(θ) (1)
     在此等式中, 末端效应物位置的矢量 x 可以通过某个 ( 通常复杂且几乎总是非线 性 ) 函数 f 与全部的关节角度的矢量 θ 相关。因此, 反向运动学等式可由以下描述 : -1
     θ = f (x) (2)
     从这一点, 其中有许多方法来求解该系统。 在示例实施例中, 可用基于雅可比行列 式的线性化技术来求解等式 2, 然而本发明不限于求解 IK 等式的任何特定方式。
     通常, 雅可比行列式 IK 包含关于当前感兴趣姿态的问题的线性化。为此, 可构建 一雅可比矩阵作为全部末端效应物维度相对于全部关节角度的导数的矩阵。
     如果用户模型是非冗余人物骨架 ( 末端效应物维度等于关节角度维度, 在线性代 数术语中, 我们具有相同数量的等式作为未知 ), 那么反向运动学系统 590 可被配置来使用 标准矩阵求逆来求解 IK 问题 : 然而, 在一些示例实施例中, 标准矩阵求逆不可被使用是因为存在无穷多关节角 对于给定末端效应物速度 其满足等式 5。在这些情况中, 代替标准矩阵可使用
     度速度替换矩阵, 以获得根据某性能准则的 “最佳” 解。在一实施例中, 该准则为最少均方误差, 并 且可使用 Moore-Penrose 伪逆 ( 用上标 + 来表示 ) 来求解它。例如, 可描述对于被破坏的 系统的解, 并且特解和齐次解两者之和, 这可以被表示为 :
     这里, (1-J+(θ)J(θ)) 是零空间投影, 且 y 是不对末端效应物的速度作出贡献但 允许我们利用骨架中的任何冗余性的任意矢量。
     在一实施例中, 矢量 可被用来控制末端效应物位置且矢量 y 被用作驱动姿态以 匹配源骨架关节角度 ( 倘若它们不干扰末端效应物定位 )。
     图 6 示出了可由目标识别、 分析和跟踪系统 300 生成的用户模型。例如, 可配置目 标识别、 分析和跟踪系统 300 来从由捕捉设备 306 获取的深度图像生成模型 600。 在此示例 中, 目标识别、 分析和跟踪系统 300 可以通过对深度图像中的每一个目标或对象进行泛色 填充并将每一个经泛色填充的目标或对象与同处于各种位置或姿态的人类的身体模型相 关联的图案进行比较, 确定深度图像是否包括对应于例如诸如以上参考图 3-4 描述的用户 302 等用户的人类目标。然后可以隔离并扫描匹配图案的经泛色填充的目标或对象以确定 包括例如对各身体部位的度量的各个值。根据一示例实施例, 然后可基于该扫描来生成模 型, 诸如骨架模型、 网格模型等。 例如, 根据一个实施例, 可通过扫描来确定的度量值可被存
     储在可用于定义模型中的一个或多个关节的一个或多个数据结构中。 可以使用一个或多个 关节来定义可以对应于人类的身体部位的一个或多个骨骼。
     继续图 6 的描述, 模型 600 可包括可将例如人类目标表示为三维模型的一个或多 个数据结构。每个身体部位可被表征为定义模型 600 的节点和互连的数学矢量。如图 6 所 示, 模型 600 可包括一个或多个节点, 诸如关节 j1-j18。 根据一示例实施例, 关节 j1-j18 中 的每一个可使得在这些关节之间定义的一个或多个身体部位能相对于一个或多个其他身 体部位移动。例如, 表示人类目标的模型可包括多个刚性和 / 或可变形身体部位, 这些身体 部位由一个或多个诸如 “骨骼” 等结构件来定义, 而关节 j1-j18 位于毗邻骨骼的交叉点处。 关节 j1-18 可使得与骨骼和关节 j1-j18 相关联的各个身体部位能够彼此独立地移动。例 如, 如图 6 中所示的, 在关节 j7 与 j11 之间定义的骨骼可对应于前臂, 该前臂可独立于例如 在关节 j15 与 j17 之间定义的骨骼 ( 可对应于小腿 ) 而移动。
     如上所述, 每一个身体部位都可被表征为具有定义图 6 所示的关节和骨骼的 X 值、 Y 值和 Z 值的数学矢量。 在一示例实施例中, 与图 6 所示的骨骼相关联的矢量的相交可定义 与关节 j1-j18 相关联的相应点。
     通常, 目标识别、 分析和跟踪系统 300 从用户捕捉移动, 该移动可用于调节模型。 例如, 诸如以上描述的捕捉设备 306 等捕捉设备可以捕捉可用于调整模型的场景的多个图 像, 如深度图像、 RGB 图像等。根据一实施例, 可基于所定义的频率来观察或捕捉每一图像。 例如, 捕捉设备可每毫秒、 每微秒等观察或捕捉一次场景的新图像。在接收到每一图像后, 可将与特定图像相关联的信息与和模型相关联的信息进行比较来确定用户是否已经执行 了移动。例如, 在一个实施例中, 该模型可被光栅化成诸如合成深度图像等合成图像。合成 图像中的像素可以与和每一接收到的图像中的人类目标相关联的像素进行比较来确定所 接收的图像中的人类目标是否已移动。
     根据一示例实施例, 可以基于在合成图像和所接收的图像之间比较的像素来计算 一个或多个力矢量。 可向诸如该模型的关节等一个或多个受力方面施加或映射一个或多个 力, 来将该模型调整成更接近地对应于物理空间中的人类目标或用户姿态的姿态。 例如, 模 型可以如上所述基于在各时间点接收到的深度图像中观测和捕捉到的在各个点处的用户 移动或姿势来调节。在特定示例中, 当用户抬起他或她的左臂时可捕捉图像。图像跟踪系 统可应用一个或多个力矢量或调节该用户模型 600 来拟合用户的姿态。
     图 7 示出了示例化身模型 700, 其可包括可将例如人类目标表示为三维模型的一 个或多个数据结构。可由映射系统 580 通过将用户模型 600 的节点映射到化身模型 700 的 节点上来生成化身模型 700。在所描绘的实施例中, 化身模型 700 可具有类似用户模型 600 的构架, 然而, 化身模型可具有与用户模型 600 略微不同的架构或节点分层结构。此外, 化 身模型 700 可具有比用户模型多的节点, 或它可能比用户模型 600 更大或更小。在所描绘 的示例中, 化身模型更矮和更宽。与以上类似, 每个身体部位可被表征为定义化身模型 700 的节点和互连的数学矢量。
     可配置映射系统 580 来在应用 560 实时执行期间接收用户节点的位置, 并将它们 重新映射到化身节点。在一实施例中, 化身模型 700 可具有根节点并且可在其与用户模块 的根节点之间建立关系。 例如, 模型库 570 可包括定义在运行时要被使用的关系的信息。 使 用该关系, 化身节点的位置可从用户节点的位置中计算出来。图 8A 示出了用户模型 600 且图 8B 示出了可能已经从模型 600 中生成的化身模型 700。例如, 在图 8A 中, 用户模型 600 可被生成为他或她左臂挥动。映射系统 580 可被用 来调整用户模型 600 的大小以拟合, 例如, 图 8B 的更小的化身模型 700。在一实施例中, 例 如, 节点 j12 可以是末端效应物且其位置可被馈入反向运动学系统 590。反向运动学系统 590 可确定 j8 的位置, 使得化身模型摆出解剖学上可能的姿态并且仍然够得到末端效应物 的位置。如图所述, 在一些实施例中, 由于化身 700 是不同大小的这一事实, 化身 700 的姿 态可能不匹配于用户模型 600 的姿态。例如, 化身 700 的手臂可能比用户模型 600 的手臂 更直以够到位置。
     图 9 示出了可能从化身模型 700 动画化得到的化身或游戏人物 900 的一示例实施 例。 如图 9 所示, 可对化身或游戏人物 700 动画化来模拟对以上所描述的所跟踪的模型 600 捕捉的挥手运动。例如, 图 8A 和 8B 中所示模型 600 的关节 j8 和 j12 以及它们之间定义的 骨骼可被映射到左肘关节 j8′和左手腕关节 j12′。化身或游戏人物 900 可接着被动画化 为姿态 902。
     以下是描绘过程实现的一系列流程图。为便于理解, 流程图被组织成使得初始流 程图通过总体 “大图” 视点来演示各实现, 并且后续的流程图提供进一步的附加物和 / 或细 节。此外, 本领域的技术人员可以理解, 虚线所描绘的操作流程被认为是任选的。
     图 10 它示出了用于实施本发明的各方面的操作过程, 包括操作 1000、 1002, 和 1004。如图所示, 操作 1000 启动操作过程, 并且操作 1002 示出在应用实时执行期间接收化 身末端效应物的位置, 化身末端效应物被设置到使用用户末端效应物计算所得的位置, 用 户末端效应物的位置先前从用户的图像生成。 例如, 转向图 5, 在本发明的一实施例中, 从用 户的图像生成的数据, 例如, 用户模型 600, 可被用来在诸如视频游戏的应用 560 执行期间, 生成化身末端效应物的位置。例如, 计算环境 304 可包括映射系统 580, 其可被用来例如, 将根节点用作基准点, 将节点从用户模型 600 映射到化身模型 700。数据结构中的每个节 点可具有可以是例如与其父的偏移 ( 包括长度值、 垂直角度, 和水平角度 ) 的位置。在另一 实施例中, 每个节点可以具有空间内的地理坐标, 例如 X 值、 Y 值, 和 Z 值。在此示例实施例 中, 映射系统 580 可接收标识用户的末端效应物的位置的信息。
     在一实施例中, 用户末端效应物的位置可从存储在计算环境 304 的存储器 RAM、 ROM 中的图像生成。在该实施例中, 捕捉设备 306 可使用照相机组件 502 捕捉用户 302 的图 像。该图像可被用来使用上述技术生成用户模型 600。
     继续对图 10 的描述, 操作 1004 示出了在应用的实时执行期间, 确定化身模型关节 的位置以获得化身模型的解剖学上可能的姿态, 化身模型关节的位置至少从化身末端效应 物的位置确定。例如, 继续上述示例, 一旦映射系统 580 获取应用空间中的末端效应物的位 置, 该位置可被馈送到反向运动学系统 190。 反向运动学系统 590 可被配置为使用上述技术 确定考虑末端效应物的位置的化身的姿态。
     在一实施例中, 反向运动学系统 590 可使用定义可由各节点执行的移动的信息来 确定模型的解剖学上可能的姿态。例如, 代表肘的节点可与定义在该节点可能的两个移动 的信息相关联 : 类似铰链的弯曲和伸直, 以及将前臂翻转的移动。 反向运动学系统 590 可使 用此信息来生成基于此信息有效的节点的位置, 并允许末端效应物够到所希望的位置。
     现在转向图 11, 其示出图 10 的操作过程的替换实施例, 包括操作 1106-1118。现在转到操作 1106, 它示出了确定特定化身模型关节的方向以至少逼近用户关节的方向, 用 户关节的方向从由用户图像生成的数据获得。例如, 在一实施例中, 用户模型 600 可被生成 并存储在存储器中。在此示例中, 用户模型 600 可具有标识出末端效应物以外的节点的位 置的信息。 例如, 末端效应物可以是手, 且用户模型可能具有代表用户的肘和用户的肩的节 点的位置信息。映射系统 580 可被执行并且这些附加节点的坐标可被变换为化身模型 700 的位置。 这些位置, 以及末端效应物的位置可接着被发送到反向运动学系统 590。 反向运动 学系统 590 可接着确定考虑关于其他节点的位置信息的化身模型 700 的姿态。 在此示例中, 反向运动学系统 590 可被区分优先级以正确地定位末端效应物, 并尝试匹配任何其它节点 的方向, 无需移动末端效应物。因此, 在一些示例实施例中, 反向运动学系统 590 能够准确 放置节点以模拟用户的方向, 或可将节点放置为逼近用户的方向。
     继续图 11 的描述, 操作 1108 示出了从用户的图像生成用户模型, 用户模型包括用 户末端效应物的位置。例如, 在该实施例中, 可使用上面结合图 5 和 6 描述的技术生成用户 模型。 在此示例实施例中, 用户模型 600 可包括可通过互连 ( 例如骨骼 ) 连接的节点, 例如, 末端效应物和多个关节。
     转向操作 1110, 它示出了生成动画流, 动画流包括模型关节的位置和末端效应物 的位置 ; 并将动画流发送到图形处理器。例如, 在一实施例中, 化身模型 700 可被用来生成 动画流。在该示例中, 动画流可被变换为, 例如, 图元并发送到图形处理器。图形处理器可 接着执行该图元, 使用化身模型呈现存储器中游戏中的人物, 并接着将指示已呈现的人物 的信息发到视听设备 320。 继续图 11 的描述, 操作 1112 示出了一实施例, 其中确定化身模型关节的位置包 括, 但不限于, 确定特定化身模型关节与特定用户关节不相关联, 其中在数据不包括特定用 户关节的位置信息时特定化身模型关节与特定用户关节不相关联 ; 并将特定化身模型关节 的位置设置为逼近默认位置。 例如, 在一实施例中, 信息可被存储在定义化身模型的默认姿 态和化身模型中的关节的位置信息的模型库 570 中。例如, 可将化身模型与定义形成类似 “T” 的姿态的关节的位置的信息相关联。模型库 570 也可能包括各其他姿态, 诸如奔跑或走 路姿态或示出化身握住物体的姿态。在该示例中, 可向反向运动学系统 590 馈送末端效应 物的位置以及被捕捉的任何关节的位置。反向运动学系统 590 也可接收定义了系统缺乏其 位置信息的关节的默认位置的信息。 例如, 右膝可能是感兴趣的关节, 然而已捕捉的图像可 能不具有右膝的任何信息或者因各种原因信息不可用。在此示例中, 默认位置信息可由反 向运动学系统 590 使用, 来生成考虑默认位置的化身模型的姿态。
     在此示例中, 可由映射系统 580 基于用户模型 600 和模型库 570 中的模型之间的 比较来选择默认位置。在该示例中, 定义末端效应物和任何关节的已知位置的信息可与库 比较, 并可使用具有最佳拟合的默认模型。 默认的关节位置可被发送到反向运动学系统 590 中用于任何未知用户关节。
     在一示例实施例中, 反向运动学系统 590 可被配置来使用优先级设定来确定如何 摆化身模型的姿势。例如, 末端效应物可与将它们标识为最高优先级的信息相关联。在此 情况中, 反向运动学系统 590 将对将末端效应物拟合到希望的点区分优先级。 映射系统 580 具有关于其的信息的关节可被设置到低于末端效应物的优先级级别。在此情况中, 反向运 动学系统 590 可尝试将这些关节拟合到至少类似用户模型关节但是不与末端效应物的定
     位冲突的位置。最后, 可以拟合没有信息被接收到的关节。在此情况中, 反向运动学系统 590 将尝试将这些关节拟合到至少类似默认位置但是不与末端效应物的定位冲突的位置。
     继续图 11 的描述, 操作 1114 示出了在应用的执行期间, 接收来自应用的对于化身 模型的请求, 并在应用的执行期间, 从模型的库中选择化身模型。 例如, 在一实施例中, 模型 的类型可在应用被执行时从模型库 570 中加载。在该示例实施例中, 应用可定义将要被使 用模型的类型, 例如似人的模型、 马模型、 龙模型等。映射系统 580 可接收定义将要被使用 的模型的类型的请求, 并从模型库 570 中选择化身模型。
     映射系统 580 还可基于从应用给予它的参数调整化身模型的大小。例如, 模型可 以是某一大小, 应用可请求大许多倍或小许多倍的模型。 在此情况中, 应用可指定所想要的 大小并且映射系统 580 可适当缩放该模型。
     操作 1116 示出了在特定用户关节和特定模型关节之间生成关系 ; 并且生成将用 户末端效应物耦合到用户关节以拟合化身模型的大小的互连。 在一实施例中, 映射系统 580 可包括将特定关节映射到模型的已知关节的信息。 例如, 每个模型可具有映射到用户膝盖、 手腕、 脚踝、 肘部, 或其他特定关节的节点。可在这些节点和化身模型 700 的节点之间建立 关系。一旦关系被建立, 可生成互连 ( 例如, 骨骼 ) 来将模型中的各节点链接在一起。映射 系统 580 可获得用户模型节点的位置, 并且计算化身模型节点的位置。化身模型节点然后 可被馈送到反向运动学系统 590 以生成模型的姿态。 继续图 11 的描述, 操作 1118 示出了将用户末端效应物映射到具有与用户不同的 骨架构造的化身模型。例如, 在一实施例中, 模型可具有不同于用户的骨架构造。在此示例 中, 化身模型可以不具有似人的骨架构造。例如, 化身模型可具有半人马 ( 部分人部分马的 神话生物 ) 的构造。因此, 在该示例中, 化身模型具有不同于人类的骨骼或关节。在该实施 例中, 映射系统 580 可包括定义人类的各节点和半人马的节点之间关系的信息。例如, 人类 的腿的节点可被映射到半人马的全部四条腿, 而用户的手臂可被映射到半人马的手臂。
     转向图 12, 它示出了包括操作 1200-1214 的操作过程。操作 1200 开始操作过程, 并且操作 1202 示出执行视频游戏。例如, 在一实施例中, 应用 160 可以是视频游戏。该视 频游戏可被配置来使用目标识别、 分析和跟踪系统 300 来确定在游戏中如何动画化化身。
     继续图 12 的描述, 操作 1204 示出了基于从视频游戏接收的信息加载化身模型, 该 化身模型包括化身末端效应物和多个化身节点。 例如, 在一实施例中, 化身模型可在视频游 戏被执行时从模型库 570 中加载。在该示例实施例中, 视频游戏可向计算环境 304 发送信 号, 指示它使用什么类型的化身模型, 例如似人模型、 马模型、 龙模型等。映射系统 580 可接 收定义将要被使用的模型的类型的请求, 并从模型库 570 中选择模型。
     映射系统 580 还可基于从视频游戏给予它的参数调整化身模型的大小。例如, 化 身模型可以是某一大小, 应用可请求大许多倍或小许多倍的化身模型。 在此情况中, 应用可 指定所想要的大小并且映射系统 580 可适当缩放该模型。
     继续图 12 的描述, 操作 1206 示出接收用户末端效应物的位置信息。例如, 在一实 施例中, 捕捉设备 306 可使用上述技术捕捉用户 302 的图像, 并且可从该图像生成用户模 型。
     模型中的每个节点可具有可以是例如与其父的偏移 ( 包括长度值、 垂直角度, 和 水平角度 ) 的位置。在另一实施例中, 每个节点可以具有空间内的地理坐标, 例如 X 值、 Y
     值, 和 Z 值。在此示例实施例中, 映射系统 580 可接收标识已由动画设计者选择的用户的末 端效应物的位置的信息。例如, 用户的 3D 模型可连同从基准点 ( 例如根节点 ) 延伸的坐标 系统一起被存储在存储器中。末端效应物的位置可被跟踪且坐标可被存储在存储器中。
     继续图 12 的描述, 操作 1208 在视频游戏实时执行期间, 确定化身末端效应物的位 置, 其中化身末端效应物的位置是使用用户末端效应物的位置信息来计算的。 例如, 映射系 统 580 可被配置来在视频游戏实时执行期间, 接收用户末端效应物的位置并将其重新映射 到合适的化身末端效应物。例如, 在一实施例中, 化身可具有根节点, 并且可使用化身的根 节点和用户模型的根节点建立关系。使用该关系, 化身末端效应物的位置可从用户末端效 应物的位置中计算出来。在另一实施例中, 其他节点的位置可被用来确定化身末端效应物 的位置。 例如, 可获取末端效应物的父节点和祖父节点的位置信息, 并且可在对应的父节点 和祖父节点之间建立关系。使用该关系, 化身末端效应物的位置可从用户末端效应物的位 置中计算出来。
     转到操作 1210, 它示出了接收用户末端效应物的第二位置信息。某点之后, 例如 5ms 之后, 或以捕捉设备可获取新图像且已更新模型可被生成的速度, 照相机可捕捉用户 302 的图像并且映射系统 580 可接收标识用户的末端效应物的已更新位置的信息。 例如, 用 户的 3D 模型可连同从基准点 ( 例如根节点 ) 延伸的坐标系统一起被存储在存储器中。末 端效应物的第二位置可被跟踪且坐标可被存储在存储器中。
     操作 1212 接着示出, 在视频游戏实时执行期间, 将化身末端效应物的位置更新到 第二位置, 其中化身末端效应物的位置使用用户末端效应物的第二位置信息来计算。 例如, 映射系统 580 可被配置来在视频游戏实时执行期间, 接收用户末端效应物的已更新位置并 更新合适的化身末端效应物的位置。
     操作 1214 示出了, 在视频游戏实时执行期间, 确定化身节点的位置, 以获得化身 模型的解剖学上可能的姿态, 其中姿态维持化身末端效应物的已更新位置。 例如, 末端效应 物的已更新位置可被馈送到反向运动学系统 590, 且该系统可确定没有被动画设计者直接 放置的化身节点 ( 诸如关节和 / 或任何末端效应物 ) 的位置。反向运动学系统 590 可被 配置为使用上述技术确定与化身末端效应物的位置匹配的化身模型的姿态。例如, 代表肘 的节点可与定义在该节点可能的两个移动 ( 类似铰链的弯曲和伸直, 以及将前臂翻转的移 动 ) 的信息相关联。反向运动学系统 590 可使用此信息来生成基于此信息有效的节点的位 置, 并仍然允许末端效应物够到所希望的位置。 因此, 该示例中的末端效应物可被定位在正 确位置, 然而化身模型中的其他节点可能不需要反映用户模型的方向。
     现在转向图 13, 其示出图 12 的操作过程的替换实施例, 包括操作 1316-1322。 操作 1316 示出了由照相机捕捉用户的图像 ; 生成包括用户末端效应物的用户模型 ; 并从用户模 型确定用户末端效应物的位置信息。例如, 在一实施例中, 捕捉设备 306 可用来捕捉图像。 在该示例中, 目标识别、 分析和跟踪系统 300 可捕捉图像并用它生成用户模型 600。用户模 型 600 可被存储在存储器中, 并且映射系统 580 可被执行来确定末端效应物的位置。
     继续图 13 的描述, 细化 1318 示出了在一实施例中, 化身模型包括非人类化身模 型。类似于上述, 在一实施例中, 化身可具有非似人骨架构造和 / 或不同节点分级结构, 例 如非似人构造可包括具有与人类相当的部位不同的运动范围的节点, 或构造可具有以不同 于似人的方式连接的更多或更少节点。例如, 化身可以是有四条手臂和鳍的海怪。在该示例中, 用户模型 600 上代表用户手臂的节点可被映射到四条手臂, 映射到用户的腿的节点 可被映射到鳍。 在该示例中, 由于用户腿的节点可以这样的方式映射到化身的鳍上 : 当用户 提起放下他的腿时使得鳍向后向前。
     继续图 13 的描述, 操作 1320 示出将特定模型关节的方向设置为至少逼近用户关 节的方向, 用户关节的方向从所生成的用户模型确定。例如, 在一实施例中, 用户模型可被 生成并存储在存储器中。在此示例中, 用户模型可具有标识出末端效应物以外的节点的位 置的信息。 例如, 末端效应物可以是手, 且用户模型可能具有代表用户的肘和用户的肩的节 点的位置信息。映射系统 580 可被执行并且这些附加节点的坐标可被变换为化身的位置。
     继续图 13 的描述, 操作 1322 示出了从化身模型生成动画流 ; 并将动画流与预定 义的动画混合。例如, 在一实施例中, 化身模型 700 可被用来生成动画流。动画设计者可将 预定义的动画添加到动画流, 以向动画添加附加效果。例如, 预定义动画可包括呼吸动画。 动画可与化身混合使得在呈现时化身显得在呼吸。 一旦动画流最终确定, 其可被变换为, 例 如, 图元并发送到图形处理器。图形处理器可接着执行该图元, 呈现存储器中的化身, 并且 已呈现的化身可被发送到监视器。
     现在转向图 14, 它示出了包括操作 1400-1410 的操作过程。操作 1400 开始过程, 且操作 1402 示出从图像生成用户模型, 其中用户模型包括用户末端效应物。例如, 在一实 施例中, 图 5 的目标识别、 分析和跟踪系统 300 可被用来捕捉图像。在该示例中, 目标识别、 分析和跟踪系统 300 可捕捉图像并用它生成用户模型 600。用户模型 600 可被存储在存储 器中, 并且映射系统 580 可被执行来确定末端效应物的位置。
     数据结构中的每个节点可具有可以是例如与其父的偏移 ( 包括长度值、 垂直角 度, 和水平角度 ) 的位置。在另一实施例中, 每个节点可以具有空间内的地理坐标, 例如 X 值、 Y 值和 Z 值。在此示例实施例中, 映射系统 580 可接收标识已由动画设计者选择的用户 的末端效应物的位置的信息。例如, 用户的 3D 模型可连同从基准点 ( 例如根节点 ) 延伸的 坐标系统一起被存储在存储器中。末端效应物的位置可被跟踪且坐标可被存储在存储器 中。
     继续图 14 的描述, 操作 1404 示出了在应用运行时执行期间, 将用户末端效应物映 射到化身模型。例如, 可配置映射系统 580 来在应用 560 实时执行期间接收用户末端效应 物的位置, 并将它们重新映射到化身末端效应物。例如, 在一实施例中, 化身模型 700 可具 有根节点, 并且可使用化身的根节点和用户模型的根节点建立关系。类似于上面结合图 5 和 6 的描述, 使用该关系, 可从用户末端效应物的位置计算化身末端效应物的位置。
     继续图 14 的描述, 操作 1406 示出了在应用运行时执行期间, 设置化身关节的位置 以获得模型的解剖学上可能的姿态。例如, 末端效应物的位置可被馈送到反向运动学系统 590, 且该系统可确定没有被动画设计者直接放置的化身节点 ( 诸如关节和 / 或任何末端效 应物 ) 的位置。反向运动学系统 590 可被配置为使用上述技术来确定与化身末端效应物的 位置匹配的模型的姿态。反向运动学系统 590 可使用此信息来生成基于此信息有效的节点 的位置, 并仍然允许末端效应物够到所希望的位置。 因此, 该示例中的末端效应物可被定位 在正确位置, 然而化身模型中的其他节点可能不需要反映用户模型的方向。
     继续图 14 的描述, 操作 1408 示出了在应用的运行时执行期间, 基于对用户模型的 改变来修改化身末端效应物的位置和化身关节。例如, 映射系统 580 可被配置来接收用户模型末端效应物的已更新位置信息, 且反向运动学系统 590 可被配置为基于对用户模型的 改变来生成关节的已更新位置。在一实施例中, 用户模型可例如, 每 5ms 或以捕捉设备可获 取新图像且已更新模型可被生成的速度发生改变。在该示例中, 执行环境 12 可被配置为基 于对用户模型的改变来修改化身。
     现在转向图 15, 其示出操作过程 1400 的替换实施例, 包括操作 1510-1520。例如, 操作 1410 示出将特定化身关节的方向设置为逼近用户关节的方向, 用户关节的方向从用 户模型中获得。例如, 在一实施例中, 用户模型可被生成并存储在存储器中。在此示例中, 用户模型可具有标识出末端效应物以外的节点的位置的信息。 例如, 末端效应物可以是手, 且用户模型可能具有代表用户的肘和用户的肩的节点的位置信息。映射系统 580 可被执行 并且这些附加节点的坐标可被变换为化身模型的位置。这一个或多个位置, 以及末端效应 物的位置可接着被发送到反向运动学系统 190。 反向运动学系统 590 可被执行, 并且可以确 定考虑关于其他节点的位置信息的化身的姿态。在此示例中, 反向运动学系统 590 可被区 分优先级以正确地定位末端效应物, 并尝试匹配节点的方向, 无需移动末端效应物。因此, 在一些示例实施例中, 反向运动学系统 590 能够准确放置节点或可将节点放置为逼近用户 的方向。
     继续图 15 的描述, 操作 1512 示出了从化身模型生成动画流 ; 并将动画流与预定 义的动画混合。例如, 在一实施例中, 化身模型可被用来生成动画流。动画设计者可将预定 义的动画添加到动画流, 以向动画添加附加效果。例如, 预定义动画可包括呼吸动画。动画 可与化身模型混合使得在呈现时化身显得在呼吸。 一旦动画流最终确定, 其可被变换为, 例 如, 图元并发送到图形处理器。图形处理器可接着执行该图元, 呈现存储器中的化身, 并且 已呈现的化身可被发送到监视器。
     转到操作 1514, 其示出了确定特定化身关节与特定用户关节不相关联, 其中当用 户模型不包括特定用户关节的位置信息时特定化身关节不与特定用户关节相关联 ; 并将特 定化身关节设置到默认位置。 例如, 在一实施例中, 信息可被存储在定义化身模型的默认姿 态和化身模型中的关节的位置信息的模型库 570 中。例如, 可将化身模型与定义形成类似 “T” 的姿态的关节的位置的信息相关联。模型库 570 也可包括各其他姿态, 诸如奔跑或走路 姿态或握住某些普通物体的姿态。在该示例中, 可向反向运动学系统 590 馈送末端效应物 的位置以及被捕捉的任何关节的位置。反向运动学系统 590 也可接收定义了系统缺乏其位 置信息的关节的默认位置的信息。 例如, 右膝可能是感兴趣的关节, 然而已捕捉的图像可能 不具有右膝的任何信息或者因各种原因信息不可用。在此示例中, 默认位置信息可由反向 运动学系统 590 使用, 来生成考虑默认位置的模型的姿态。
     在此示例中, 可由映射系统 580 基于用户模型 600 和模型库 570 中的模型之间的 比较来选择默认位置。在该示例中, 定义末端效应物和任何关节的已知位置的信息可与库 比较, 并可使用具有最佳拟合的默认模型。 默认的关节位置可被发送到反向运动学系统 590 中用于任何未知用户关节。
     在一示例实施例中, 反向运动学系统 590 可被配置来使用优先级设定来确定如何 摆化身模型的姿势。例如, 末端效应物可与将它们标识为最高优先级的信息相关联。在此 情况中, 反向运动学系统 590 将对将末端效应物拟合到希望的点区分优先级。 映射系统 580 具有关于其的信息的关节可被设置到低于末端效应物的优先级级别。在此情况中, 反向运动学系统 590 可尝试拟合这些关节, 或如果这样做将改变任何末端效应物的位置则不拟合 这些关节。最后, 可以拟合没有信息被接收到的关节。在此情况中, 反向运动学系统 590 将 尝试拟合这些关节, 但将不改变任何末端效应物或系统具有位置信息的任何关节的位置。
     继续图 15 的描述, 操作 1516 示出接收定义由应用使用的化身类型的信息 ; 并在应 用执行期间, 基于定义由应用使用的化身类型的信息从化身模型的库中选择化身模型。例 如, 在一实施例中, 化身模型可在应用被执行时从模型库 570 中加载。在该示例实施例中, 应用可请求模型, 例如似人模型、 马模型、 龙模型等。映射系统 580 可接收定义将要被使用 的模型的类型的请求, 并可从模型库 570 中选择模型。
     映射系统 580 还可基于从应用给予它的参数调整模型的大小。例如, 模型可以是 某一大小, 应用可请求大许多倍或小许多倍的模型。 在此情况中, 应用可指定所想要的大小 并且映射系统 580 可适当缩放该模型。
     继续图 15 的描述, 操作 1518 示出调整将用户末端效应物耦合到关节的互连的大 小, 以拟合化身模型的大小。在一实施例中, 映射系统 580 可包括将特定关节映射到模型的 已知关节的信息。例如, 每个模型可具有映射到用户膝盖、 手腕、 脚踝、 肘部, 或其他特定关 节的节点。可在这些节点和用户模型 600 的节点之间建立关系。一旦在用户模型 600 的节 点和化身模型 700 中的节点之间建立关系, 例如骨骼的互连可被生成以将化身 700 中的各 种节点链接在一起。在这一点上, 映射系统 580 可获得用户模型节点的位置, 并且计算化身 模型节点的位置。化身模型节点然后可被馈送到反向运动学系统 590 以生成模型的姿态。
     继续图 15 的描述, 操作 1520 示出了将用户末端效应物映射到具有与用户模型不 同的骨架构造的化身模型。类似于上述, 在一实施例中, 化身可具有非似人骨架构造和 / 或不同节点分级结构, 例如非似人构造可包括具有与人类相当的部位不同的运动范围的节 点, 或构造可具有以不同于似人的方式连接的更多或更少节点。
     上述详细描述通过示例和 / 或操作图阐明了系统和 / 或过程的各种实施例。就这 些框图和 / 或示例包含一个或多个功能和 / 或操作而言, 本领域技术人员将理解, 这些框图 或示例中的每一功能和 / 或操作都可由各种各样的硬件、 软件、 固件、 或实际上其任意组合 来单独地和 / 或共同地实现。
     尽管示出和描述了此处所描述的本主题的特定方面, 但是, 对于本领域的技术人 员显而易见的是, 基于此处的原理, 在不偏离此处所描述的主题以及其广泛的方面的情况 下, 可以作出更改和修改, 因此, 所附权利要求书将包含在它们的范围内, 所有这样的更改 和修改都将在此处所描述的主题的真正的精神和范围内。

将骨架数据实时重新定标到游戏化身.pdf_第1页
第1页 / 共35页
将骨架数据实时重新定标到游戏化身.pdf_第2页
第2页 / 共35页
将骨架数据实时重新定标到游戏化身.pdf_第3页
第3页 / 共35页
点击查看更多>>
资源描述

《将骨架数据实时重新定标到游戏化身.pdf》由会员分享,可在线阅读,更多相关《将骨架数据实时重新定标到游戏化身.pdf(35页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 102448565 A (43)申请公布日 2012.05.09 C N 1 0 2 4 4 8 5 6 5 A *CN102448565A* (21)申请号 201080024688.7 (22)申请日 2010.05.26 61/182,505 2009.05.29 US 12/548,251 2009.08.26 US A63F 13/00(2006.01) A63F 13/06(2006.01) (71)申请人微软公司 地址美国华盛顿州 (72)发明人 AA基普曼 K兹努达 JN马戈利斯 SW西姆斯 ND伯顿 A威尔逊 (74)专利代理机构上海专利商标事务所有。

2、限公 司 31100 代理人杨洁 (54) 发明名称 将骨架数据实时重新定标到游戏化身 (57) 摘要 在此揭示了用于在应用运行时期间生成化身 模型的技术。该化身模型可从由捕捉设备捕捉的 图像生成。可定位末端效应物反向运动学可被用 来确定化身模型中的其他节点的位置。 (30)优先权数据 (85)PCT申请进入国家阶段日 2011.11.28 (86)PCT申请的申请数据 PCT/US2010/036192 2010.05.26 (87)PCT申请的公布数据 WO2010/138582 EN 2010.12.02 (51)Int.Cl. (19)中华人民共和国国家知识产权局 (12)发明专利申请。

3、 权利要求书 2 页 说明书 17 页 附图 15 页 CN 102448588 A 1/2页 2 1.一种系统,包括: 用于在应用的实时执行期间接收化身末端效应物(图7的j1,j11,j12,j17,或j18) 的位置的电路(304),所述化身末端效应物(图7的j1,j11,j12,j17,或j18)被设置到使 用用户末端效应物(图6的j1,j11,j12,j17,或j18)所计算的位置,所述用户末端效应物 (图6的j1,j11,j12,j17,或j18)的位置是从先前用户的图像中生成的;以及 用于在应用的实时执行期间确定化身模型关节(图7的j2-j10和j13-j16)的位置 以获取化身模。

4、型(702)的解剖学上可能的姿态的电路(590),所述化身模型关节(图7的 j2-j10和j13-j16)的位置至少从所述化身末端效应物(图7的j1,j11,j12,j17,或j18) 的位置来确定。 2.如权利要求1所述的系统,其特征在于,所述用于确定化身模型关节的位置的电路 还包括: 用于确定特定化身模型关节的方向以至少逼近用户关节的方向的电路,所述用户关节 的方向从由用户图像生成的数据获得。 3.如权利要求1所述的系统,其特征在于,还包括: 用于从用户的图像生成用户模型的电路,所述用户模型包括所述用户末端效应物的位 置。 4.如权利要求1所述的系统,其特征在于,还包括: 用于生成动画流的。

5、电路,所述动画流包括所述化身模型关节的位置和所述末端效应物 的位置;以及 用于将所述动画流发送到图形处理器的电路。 5.如权利要求1所述的系统,其特征在于,所述用于确定化身模型关节的位置的电路 还包括: 用于确定特定化身模型关节与特定用户关节不相关联的电路,其中在数据不包括特定 用户关节的位置信息时特定化身模型关节与特定用户关节不相关联;以及 用于将特定化身模型关节的位置设置为逼近默认位置的电路。 6.如权利要求1所述的系统,其特征在于,还包括: 用于在应用执行期间从所述应用接收对化身模型的请求的电路;以及 用于在应用执行期间从模型的库选择化身模型的电路。 7.如权利要求1所述的系统,其特征在。

6、于,还包括: 用于生成特定用户关节和特定模型关节之间的关系的电路;以及 用于生成将用户末端效应物与用户关节耦合的互连以拟合所述化身模型的大小的电 路。 8.如权利要求1所述的系统,其特征在于,还包括: 用于将用户末端效应物映射到具有与所述用户不同的骨架构造的化身模型的电路。 9.如权利要求1所述的系统,其特征在于,还包括: 用于生成包括用户末端效应物的用户模型的电路;以及 用于从所述用户模型确定所述用户末端效应物的位置的电路。 10.如权利要求1所述的系统,其特征在于,所述化身模型包括非人类化身模型。 11.如权利要求1所述的系统,其特征在于,还包括: 权 利 要 求 书CN 10244856。

7、5 A CN 102448588 A 2/2页 3 用于接收定义由应用使用的化身类型的信息的电路;以及 用于在应用执行期间基于定义了由应用使用的化身类型的信息从化身模型的库中选 择化身模型的电路。 12.如权利要求1所述的系统,其特征在于,还包括: 用于调整将用户末端效应物与关节耦合的互连的大小以拟合所述化身模型的大小的 电路。 13.如权利要求1所述的系统,还包括: 用于将用户末端效应物映射到具有与所述用户模型不同的骨架构造的化身模型的电 路。 14.一种方法,包括: 执行视频游戏(304); 基于从所述视频游戏接收的信息加载化身模型(570),所述化身模型(700)包括化身 末端效应物(图。

8、7的j1)和多个化身关节(图7的j2-j10和j13-j16); 接收用户末端效应物(图6的j1)的位置信息; 在所述视频游戏实时执行期间,确定化身末端效应物(图7的j1)的位置,其中所述化 身末端效应物(图7的j1)的位置使用用户末端效应物(图6的j1)的位置信息来计算; 接收所述用户末端效应物(图6的j1)的第二位置信息; 在所述视频游戏实时执行期间,将化身末端效应物(图7的j1)的位置更新到第二位 置,其中化身末端效应物(图7的j1)的位置使用所述用户末端效应物(图6的j1)的第 二位置信息来计算;以及 在所述视频游戏实时执行期间,确定所述化身关节(图7的j2-j10和j13-j16)的。

9、位 置以获取所述化身模型(700)的解剖学上可能的姿态,其中所述姿态维持所述化身末端效 应物(图7的j1)的已更新位置。 15.根据权利要求14所述的方法,其特征在于,还包括: 将特定模型关节的方向设置为至少逼近用户关节的方向,所述用户关节的方向从已生 成的用户模型中确定。 权 利 要 求 书CN 102448565 A CN 102448588 A 1/17页 4 将骨架数据实时重新定标到游戏化身 背景技术 0001 诸如计算机游戏、多媒体应用等许多计算应用包括使用典型的运动捕捉技术来动 画化的化身或人物。例如,在开发高尔夫球游戏时,可以将专业高尔夫球手带入具有运动捕 捉设备的工作室,该运动。

10、捕捉设备包括例如朝向工作室中的特定点的多个照相机。专业高 尔夫球手然后可以装备具有多个点指示器的运动捕捉套装,这些点指示器可以用照相机来 配置并由照相机跟踪,以使得照相机可捕捉例如专业高尔夫球手的运动。这些运动然后能 够在开发高尔夫球游戏期间被应用于化身或人物。当完成高尔夫球游戏后,化身或人物然 后能够在执行高尔夫球游戏期间用专业高尔夫球手的运动来动画化。不幸的是,典型的运 动捕捉技术是昂贵的,依靠特定应用的开发,并且不包括与应用的实际玩家或用户相关联 的运动。 发明内容 0002 本发明的一个示例性实施例描述了一种方法。在该示例中,该方法包括但不限于, 在应用的实时执行期间,接收化身末端效应。

11、物的位置;化身末端效应物被设置到使用用户 末端效应物的位置计算的位置;用户末端效应物的位置先前从用户的图像生成;并在应用 的实时执行期间,确定化身模型关节的位置以获得化身模型解剖学上可能的姿态,该化身 模型关节的位置至少从该化身末端效应物的位置确定。除了上述方面,构成本公开的一部 分的权利要求、附图、以及文本还描述了其他方面。 0003 本发明的一个示例性实施例描述了一种方法。在该示例中,该方法包括但不限 于,执行视频游戏;基于从视频游戏接收的信息加载化身模型,该化身模型包括化身末端效 应物和多个化身节点;接收用户末端效应物的位置信息;在视频游戏实时执行期间,确定 化身末端效应物的位置,其中化。

12、身末端效应物的位置使用用户末端效应物的位置信息来计 算;接收用户末端效应物的第二位置信息;在视频游戏实时执行期间,将化身末端效应物 的位置更新到第二位置,其中化身末端效应物的位置使用用户末端效应物的第二位置信息 来计算;并且在视频游戏实时执行期间,确定化身节点的位置来获得化身模型解剖学上可 能的姿态,其中姿态维持化身末端效应物的已更新位置。除了上述方面,构成本公开的一部 分的权利要求、附图、以及文本还描述了其他方面。 0004 本发明的一个示例性实施例描述了一种方法。在该示例中,该方法包括但不限于, 从图像生成用户模型,其中用户模型包括用户末端效应物;在应用的运行时执行期间,将用 户末端效应物。

13、映射到化身模型;在应用的运行时执行期间,设置化身关节的位置来获得模 型的解剖学上可能的姿态;并且在应用的运行时执行期间,基于对用户模型的改变,修改化 身末端效应物的位置和化身关节。除了上述方面,构成本公开的一部分的权利要求、附图、 以及文本还描述了其他方面。 0005 本领域技术人员之一可理解,本公开的一个或更多个方面可包括但不限于用于实 现本公开的本文所提及的各方面的电路和/或编程;该电路和/或编程实质上可以是配置 成实现本文所提及的方面的硬件、软件和/或固件的任何组合,这取决于系统设计者的设 说 明 书CN 102448565 A CN 102448588 A 2/17页 5 计选择。 0。

14、006 以上是发明内容,并且因此必然包含细节的简化、一般化及省略。本领域技术人员 将明白,本发明内容只是说明性的并且决不旨在是限制性的。 附图说明 0007 图1描绘其中可实现本发明的各方面的示例多媒体控制台。 0008 图2描绘其中可实现本发明的各方面的示例计算机系统。 0009 图3示出目标识别、分析和跟踪系统的配置的一示例实施例。 0010 图4示出目标识别、分析和跟踪系统的配置的一示例实施例。 0011 图5示出耦合到计算环境的捕捉设备的一示例实施例。 0012 图6示出了示例用户模型。 0013 图7示出了示例化身模型。 0014 图8A示出了用户模型。 0015 图8B示出了可能已。

15、经从用户模型中生成的化身模型。 0016 图9示出了示例化身。 0017 图10描绘了用于实施本公开的各方面的操作过程。 0018 图11描绘了图10的操作过程的替换实施例。 0019 图12描绘了用于实施本公开的各方面的操作过程。 0020 图13描绘了图12的操作过程的替换实施例。 0021 图14用于实施本公开的各方面的操作过程。 0022 图15描绘了图14的操作过程的替换实施例。 具体实施方式 0023 如本文中将描述的,用户可通过执行一个或多个姿势和/或移动来控制在诸如游 戏控制台、计算机等计算环境上执行的应用和/或动画化化身或屏幕上人物。根据一个实 施例,姿势和/或移动可由例如捕。

16、捉设备来检测。例如,捕捉设备可捕捉场景的深度图像并 且将图像发送到计算环境。可生成模型,该模型可被用来在应用中动画化化身。 0024 图1和2示出了其中可实现本发明的示例计算环境。本领域的技术人员可以理解, 计算环境可具有参照图1的多媒体控制台100和图2的计算机系统200描述的组件中的一 部分或全部。 0025 贯穿本公开使用的术语电路可包括诸如专用集成电路、硬件中断控制器、硬盘驱 动器、网络适配器、图形处理器、基于硬件的视频/音频编解码器等硬件组件,以及用于操 作这些硬件的固件/软件。术语电路还可包括被配置成通过固件或通过开关集来以特定方 式执行功能的微处理器,或一个或多个逻辑处理器,例如。

17、,多核通用处理单元的一个或多个 核。此示例中的逻辑处理器可以通过从存储器,例如,RAM、ROM、固件等中加载的体现可操 作以执行功能的逻辑的软件指令来配置。在其中电路包括硬件和软件的组合的示例实施 例中,实现者可以编写具体化逻辑的源代码,该源代码随后被编译成可由逻辑处理器执行 的机器可读代码。因为本领域技术人员可以明白现有技术已经进化到硬件、软件或硬件/ 软件的组合之间几乎没有差别的地步,因而选择硬件还是软件来实现功能只是一个设计选 说 明 书CN 102448565 A CN 102448588 A 3/17页 6 择。因此,由于本领域的技术人员可以理解软件进程可被变换成等效的硬件结构,且硬。

18、件结 构本身可被变换成等效的软件进程,因此选择硬件实现或是软件实现对本发明是无关紧要 的且留给了实现者。 0026 图1示出了计算环境的示例实施例,其可被用来动画化图4的目标识别、分析和跟 踪系统所显示的屏幕上人物或化身。如此计算环境可以是诸如游戏控制台之类的多媒体控 制台100。如图1所示,多媒体控制台100具有可含有1级高速缓存102、2级高速缓存104, 和闪存ROM(只读存储器)106的逻辑处理器101。1级高速缓存102和2级高速缓存104临 时存储数据,并因此减少存储器访问周期数,由此改进处理速度和吞吐量。逻辑处理器101 可以设置成具有一个以上的内核,以及由此的附加的1级和2级高。

19、速缓存102和104。闪存 ROM 106可存储在多媒体控制台100通电时引导过程的初始阶段期间加载的可执行代码。 0027 图形处理单元(GPU)108和视频编码器/视频编解码器(编码器/解码器)114形 成用于高速和高分辨率图形处理的视频处理流水线。经由总线从图形处理单元108向视频 编码器/视频编解码器114运送数据。视频处理流水线向A/V(音频/视频)端口140输 出数据,用于传输至电视或其他显示器。存储器控制器110连接到GPU 108以方便处理器 访问各种类型的存储器112,诸如但不局限于RAM(随机存取存储器)。 0028 多媒体控制台100包括较佳地在模块118上实现的I/O控。

20、制器120、系统管理控 制器122、音频处理单元123、网络接口控制器124、第一USB主控制器126、第二USB控制器 128和前面板I/O子部件130。USB控制器126和128用作外围控制器142(1)-142(2)、无 线适配器148、和外置存储器设备146(例如闪存、外置CD/DVD ROM驱动器、可移动介质等) 的主机。网络接口124和/或无线适配器148提供对网络(例如,因特网、家庭网络等)的 访问,并且可以是包括以太网卡、调制解调器、蓝牙模块、电缆调制解调器等的各种不同的 有线或无线适配器组件中任何一种。 0029 提供系统存储器143来存储在引导过程期间加载的应用数据。提供介。

21、质驱动器 144,且其可包括DVD/CD驱动器、硬盘驱动器、或其他可移动介质驱动器等。介质驱动器144 可以是对多媒体控制器100内置的或外置的。应用数据可经由介质驱动器144访问,以由 多媒体控制台100执行、回放等。介质驱动器144经由诸如串行ATA总线或其他高速连接 (例如IEEE 1394)等总线连接到I/O控制器120。 0030 系统管理控制器122提供涉及确保多媒体控制台100的可用性的各种服务功能。 音频处理单元123和音频编解码器132形成具有高保真度和立体声处理的对应的音频处理 流水线。音频数据经由通信链路在音频处理单元123与音频编解码器132之间传输。音频 处理流水线将。

22、数据输出到A/V端口140以供外置音频播放器或具有音频能力的设备再现。 0031 前面板I/O子部件130支持暴露在多媒体控制台100的外表面上的电源按钮150 和弹出按钮152以及任何LED(发光二极管)或其他指示器的功能。系统供电模块136向 多媒体控制台100的组件供电。风扇138冷却多媒体控制台100内的电路。 0032 逻辑处理器101、GPU108、存储器控制器110、和多媒体控制台100内的各种其他 组件经由一条或多条总线互连,总线包括串行和并行总线、存储器总线、外围总线、和使用 各种总线架构中任一种的处理器或局部总线。作为示例,这些架构可以包括外围部件互连 (PCI)总线、PC。

23、I-Express总线等。 0033 当多媒体控制台100通电时,应用数据可从系统存储器143加载到存储器112和 说 明 书CN 102448565 A CN 102448588 A 4/17页 7 /或高速缓存102、104中并在逻辑处理器101上执行。应用可呈现在导航到多媒体控制台 100上可用的不同媒体类型时提供一致的用户体验的图形用户界面。在操作中,介质驱动器 144中包含的应用和/或其他介质可从介质驱动器144启动或播放,以向多媒体控制台100 提供附加功能。 0034 多媒体控制台100可通过将该系统简单地连接到电视机或其他显示器而作为独 立系统来操作。在该独立模式中,多媒体控制。

24、台100允许一个或多个用户与该系统交互、看 电影、或听音乐。然而,随着通过网络接口124或无线适配器148可用的宽带连接的集成, 多媒体控制台100还可作为更大网络社区中的参与者来操作。 0035 当多媒体控制台100通电时,可以保留设定量的硬件资源以供多媒体控制台操作 系统作系统使用。这些资源可包括存储器的保留量(诸如,16MB)、CPU和GPU周期的保留 量(诸如,5)、网络带宽的保留量(诸如,8kbs),等等。因为这些资源是在系统引导时间 保留的,所保留的资源对于应用视角而言是不存在的。 0036 具体而言,存储器保留优选地足够大,以包含启动内核、并发系统应用和驱动程 序。CPU保留优选。

25、地为恒定,使得若所保留的CPU用量不被系统应用使用,则空闲线程将消 耗任何未使用的周期。 0037 对于GPU保留,通过使用GPU中断来调度代码来将弹出窗口呈现为覆盖图以显示 由系统应用生成的轻量消息(例如,弹出窗口)。覆盖图所需的存储器量取决于覆盖区域大 小,并且覆盖图优选地与屏幕分辨率成比例缩放。在并发系统应用使用完整用户界面的情 况下,优选使用独立于应用分辨率的分辨率。定标器可用于设置该分辨率,从而无需改变频 率并引起TV重新同步。 0038 在多媒体控制台100引导且系统资源被保留之后,就执行并发系统应用来提供系 统功能。系统功能被封装在上述所保留的系统资源中执行的一组系统应用中。操作。

26、系统内 核标识是系统应用线程而非游戏应用线程的线程。系统应用优选地被调度为在预定时间并 以预定时间间隔在逻辑处理器101上运行,以便为应用提供一致的系统资源视图。进行调 度是为了把由在控制台上运行的游戏应用所引起的高速缓存分裂最小化。 0039 当并发系统应用需要音频时,则由于时间敏感性而将音频处理异步地调度给游戏 应用。多媒体控制台应用管理器(如下所述)在系统应用活动时控制游戏应用的音频水平 (例如,静音、衰减)。 0040 输入设备(例如,控制器142(1)和142(2)由游戏应用和系统应用共享。输入设 备不是保留资源,而是在系统应用和游戏应用之间切换以使其各自具有设备的焦点。应用 管理器。

27、较佳地控制输入流的切换,而无需知晓游戏应用的知识,并且驱动程序维护有关焦 点切换的状态信息。相机26、28和捕捉设备306可为控制台100定义额外的输入设备。 0041 现在参考图2,描绘了示例性计算系统200。计算机系统200可包括逻辑处理器 202,如执行核。尽管示出了一个逻辑处理器202,但在其他实施例中,计算机系统200可具 有多个逻辑处理器,例如每一处理器基板有多个执行核,和/或各自可具有多个执行核的 多个处理器基板。如图所示,各种计算机可读存储介质210可由一系统总线互联,系统总 线将各种系统组件耦合到逻辑处理器202。系统总线可以是几种类型的总线结构中的任 何一种,包括存储器总线。

28、或存储器控制器、外围总线、以及使用各种总线体系结构中的任一 种的局部总线。在示例实施例中,计算机可读存储介质210可以包括例如随机存取存储器 说 明 书CN 102448565 A CN 102448588 A 5/17页 8 (RAM)204、存储设备206(例如电机硬盘驱动器、固态硬盘驱动器等)、固件208(例如闪速 RAM或ROM)、以及可移动存储设备218(例如CD-ROM、软盘、DVD、闪速驱动器、外部存储设备 等)。本领域的技术人员应当理解,可使用其他类型的计算机可读存储介质,如磁带盒、闪存 卡、数字视频盘、柏努利盒式磁带等,来存储数据。 0042 计算机可读存储介质提供对计算机可。

29、读指令、数据结构、程序模块、和计算机200 的其它数据的存储。基本输入/输出系统(BIOS)220可被存储在固件208中,它包含帮助 在诸如启动期间在计算机系统200内的各元件之间传递信息的基本例程。若干个应用和操 作系统222可被存储在固件208、存储设备206、RAM 204,和/或可移动存储设备218上,并 且可由逻辑处理器202来执行。 0043 可由计算机200通过输入设备216接收命令和信息,其可包括但不限于,键盘和 定点设备、操纵杆,和/或图5的捕捉设备306。其他输入设备可包括麦克风、扫描仪,等。 这些和其他输入设备常通过耦合到系统总线的串行端口接口连接到逻辑处理器202,但也。

30、 可通过其他接口连接,如并行端口、游戏端口或通用串行总线(USB)。显示器或其他类型的 显示设备也可经由诸如视频适配器等可以是图形处理器212的一部分或可连接到图形处 理器112的接口来连接到系统总线。除了显示器之外,计算机通常包括其他外围输出设备 (未示出),如扬声器和打印机。图1的示例性系统还可包括主适配器、小型计算机系统接 口(SCSI)总线和连接到SCSI总线的外部存储设备。 0044 计算机系统200可使用至一个或多个远程计算机,如远程计算机,的逻辑连接在 网络化环境中操作。远程计算机可以是另一计算机、服务器、路由器、网络PC、对等设备或其 他常见的网络节点,并且通常可包括上面关于计。

31、算机系统200所述的许多或全部元件。 0045 当在LAN或WAN联网环境中使用时,计算机系统100可通过网络接口卡214(NIC) 连接至LAN或WAN。NIC 214(可以是内部或外部的)可以连接到系统总线。在联网环境中, 相对于计算机系统100所描述的程序模块或其部分可被储存在远程存储器存储设备中。可 以理解,所描述的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其他手 段。此外,虽然构想本公开的许多实施例尤其适用于计算机化的系统,然而在本文中没有任 何表述旨在将本公开限于那些实施例。 0046 图3和4示出伴随用户302玩拳击游戏的目标识别、分析和跟踪系统300的配置 的示例。

32、实施例。在一示例实施例中,目标识别、分析和跟踪系统300可用于识别、分析和/ 或跟踪诸如用户302等的人类目标。 0047 如图3所示,目标识别、分析及跟踪系统300可包括计算环境304。计算环境304 可以是计算机、游戏系统或控制台等,包括类似图1和2中描述的那些组件。 0048 如图3所示,目标识别、分析及跟踪系统300还可包括捕捉设备306。捕捉设备306 可以是例如照相机,所述照相机可用于在视觉上监视诸如用户302等的一个或多个用户从 而可以捕捉、分析并跟踪一个或多个用户所执行的姿势和/或移动,来执行应用中的一个 或多个控制命令或动作和/或动画化化身或屏幕上人物,如将在下面更详细地描述。

33、的。 0049 根据一个实施例,目标识别、分析及跟踪系统300可连接到可向诸如用户302等用 户提供游戏或应用视觉和/或音频的视听设备320,如电视机、监视器、高清电视机(HDTV) 等。例如,计算环境304可包括诸如图形卡等视频适配器和/或诸如声卡等音频适配器,这 些适配器可提供与游戏应用、非游戏应用等相关联的视听信号。视听设备320可从计算环 说 明 书CN 102448565 A CN 102448588 A 6/17页 9 境304接收视听信号,然后可向用户302输出与该视听信号相关联的游戏或应用视觉和/ 或音频。根据一个实施例,视听设备320可经由例如,S-视频电缆、同轴电缆、HDM。

34、I电缆、 DVI电缆、VGA电缆等连接到计算环境304。 0050 如图3和4所示,在一示例实施例中,在计算环境304上执行的应用可以是用户 302可能正在玩的拳击游戏。例如,计算环境304可使用视听设备320来向用户302提供拳 击对手338的视觉表示。计算环境304还可使用视听设备320来提供用户302可通过他的 或她的移动来控制的玩家化身324的视觉表示。例如,如图3所示,用户302可在物理空间 中挥拳来使得玩家化身324在游戏空间中挥拳。因此,根据一示例实施例,目标识别、分析 和跟踪系统300的计算环境304和捕捉设备306可用于识别和分析物理空间中用户302的 重拳从而使得该重拳可被。

35、解释为对游戏空间中的玩家化身324的游戏控制和/或该重拳的 运动可用于动画化游戏空间中的玩家化身324。 0051 用户302的其他移动也可被解释为其他控制命令或动作,和/或用于动画化玩家 化身324,如上下快速摆动、闪避、滑步、封堵、用拳猛击或挥动各种不同的有力重拳的控制 命令。此外,某些移动可被解释为可对应于除控制玩家化身324之外的动作的控制。例如, 玩家可以使用移动来结束、暂停或保存游戏、选择级别、查看高分、与朋友交流等。另外,用 户302的全范围运动可以用任何合适的方式来获得、使用并分析以与应用进行交互。 0052 在示例实施例中,诸如用户302的人类目标控制化身324以与应用中的对。

36、象进行 交互。例如,用户302可伸手拿游戏中的对象以使用该对象。在此示例中,目标识别、分析 和跟踪系统300可被配置来允许化身324拿起该对象并在游戏中使用该对象。在特定示例 中,用户的化身324可拿起并握住电子运动游戏中使用的球拍。 0053 根据其他示例实施例,目标识别、分析及跟踪系统300还可用于将目标移动解释 为游戏领域之外的操作系统和/或应用控制。例如,事实上操作系统和/或应用的任何可 控方面可由诸如用户302等目标的移动来控制。 0054 图5示出可在目标识别、分析及跟踪系统300中使用的捕捉设备306的示例实施 例。根据一示例实施例,捕捉设备306可被配置成经由任何合适的技术,包。

37、括例如飞行时 间、结构化光、立体图像等来捕捉包括深度图像的带有深度信息的视频,该深度信息可包括 深度值。根据一实施例,捕捉设备306可将深度信息组织为“Z层”或者可与从深度相机沿 其视线延伸的Z轴垂直的层。 0055 如图5所示,捕捉设备306可包括图像相机组件502。根据一个示例实施例,图像 相机组件502可以是可捕捉场景的深度图像的深度相机。深度图像可包括所捕捉的场景的 二维(2-D)像素区域,其中2-D像素区域中的每一像素可表示深度值,诸如例如以厘米、毫 米等计的、所捕捉的场景中的对象距相机的长度或距离。 0056 如图5所示,根据一示例实施例,图像相机组件502可包括可用于捕捉场景的深。

38、 度图像的IR光组件524、三维(3-D)相机526、和RGB相机528。例如,在飞行时间分析中, 捕捉设备306的IR光组件524可以将红外光发射到场景上,然后,可以使用传感器(未示 出),用例如3-D相机526和/或RGB相机528,来检测从场景中的一个或多个目标和物体 的表面反向散射的光。在某些实施例中,可以使用脉冲红外光,使得可以测量出射光脉冲和 相应的入射光脉冲之间的时间差并将其用于确定从捕捉设备306到场景中的目标或物体 上的特定位置的物理距离。附加地,在其他示例实施例中,可将出射光波的相位与入射光波 说 明 书CN 102448565 A CN 102448588 A 7/17页。

39、 10 的相位进行比较来确定相移。然后可以使用该相移来确定从捕捉设备到目标或物体上的特 定位置的物理距离。 0057 根据另一示例实施例,可使用飞行时间分析,通过经由包括例如快门式光脉冲成 像在内的各种技术来分析反射光束随时间的强度变化以间接地确定从捕捉设备306到目 标或物体上的特定位置的物理距离。 0058 在另一示例实施例中,捕捉设备306可使用结构化光来捕捉深度信息。在这一分 析中,图案化光(即,被显示为诸如网格图案或条纹图案等已知图案的光)可经由例如IR 光组件524被投影到场景上。在落到场景中的一个或多个目标或物体的表面上时,作为响 应,图案可变形。图案的这种变形可由例如3-D相机。

40、526和/或RGB相机528来捕捉,然后 可被分析来确定从捕捉设备到目标或物体上的特定位置的物理距离。 0059 根据另一实施例,捕捉设备306可包括两个或更多个物理上分开的相机,这些相 机可从不同角度查看场景以获得视觉立体数据,该视觉立体数据可被解析以生成深度信 息。 0060 捕捉设备306还可包括话筒530。话筒530可包括可接收声音并将其转换成电信 号的换能器或传感器。根据一个实施例,话筒530可以被用来减少目标识别、分析及跟踪系 统300中的捕捉设备306和计算环境304之间的反馈。另外,话筒530可用于接收也可由 用户提供的音频信号,以控制可由计算环境304执行的诸如游戏应用、非游。

41、戏应用等应用。 0061 在示例实施例中,捕捉设备306还可以包括可与图像相机组件502进行可操作的 通信的逻辑处理器532。捕捉设备306还可以包括存储器组件534,该存储器组件534可以 存储可以由处理器532执行的指令、由3-D相机或RGB相机捕捉到的图像或图像的帧、或任 何其他合适的信息、图像等等。根据一个示例实施例,存储器组件534可包括随机存取存储 器(RAM)、只读存储器(ROM)、高速缓存、闪存、硬盘或任何其他合适的存储组件。如图5所 示,在一个实施例中,存储器组件534可以是与图像捕捉组件520和逻辑处理器532进行通 信的单独的组件。根据另一实施例,存储器组件534可被集成。

42、到处理器532和/或图像捕 捉组件520中。 0062 捕捉设备306可被配置来获取由例如,捕捉设备306的3-D相机426和/或RGB 相机528捕捉到的场景的图像或帧。在示例实施例中,深度图像可包括所捕捉的场景中的 人类目标和一个或多个非人类目标,诸如墙壁、桌子、监视器等。深度图像可包括多个观测 到的像素,其中每一观测到的像素具有与其相关联的观测到的深度值。例如,深度图像可包 括所捕捉的场景的二维(2-D)像素区域,其中2-D像素区域中的每一像素可表示深度值,诸 如例如以厘米、毫米等计的、所捕捉的场景中的对象或目标距捕捉设备的长度或距离。在一 示例实施例中,深度图像可被着色从而使得深度图像。

43、的像素的不同颜色对应于人类目标和 非人类目标离捕捉设备的不同距离。例如,根据一个实施例,深度图像中与最接近捕捉设备 的目标相关联的像素可用红色和/或橙色阴影来着色,而深度图像中与较远的目标相关联 的像素可用绿色和/或蓝色阴影来着色。 0063 另外,如上所述,捕捉设备可将包括深度图像的所计算的深度信息组织成“Z层”, 即可垂直于从相机沿着其视线延伸到观察者的Z轴的层。可基于所确定的边缘来对Z层的 可能Z值进行泛色填充。例如,与所确定的边相关联的像素以及该所确定的边内的区域的 像素可互相关联来定义可与模式进行比较的场景中的目标或对象。如以下所描述,图像可 说 明 书CN 102448565 A 。

44、CN 102448588 A 8/17页 11 接着被用来生成用户的骨架模型。 0064 继续图5的一般描述,捕捉设备306可以经由通信链路536与计算环境304通信。 通信链路536可以是包括例如USB连接、火线连接、以太网电缆连接等的有线连接和/或诸 如无线802.11b、802.11g、802.11a或802.11n连接等的无线连接。根据一个实施例,计算 环境304可以经由通信链路536向捕捉设备306提供时钟,可以使用该时钟来确定何时捕 捉例如场景。 0065 另外,捕捉设备306可经由通信链路536向计算环境304提供深度信息和由例如 3-D相机526和/或RGB相机528捕捉的图像。

45、,和/或可由捕捉设备306生成的骨架模型。 计算环境304然后可使用该模型、深度信息、以及所捕捉的图像来例如控制诸如游戏或文 字处理程序等的应用和/或动画化化身或屏幕上人物。 0066 例如,如图5所述,计算环境304可包括应用560、模型库570、映射系统580,和/ 或反向运动学系统509。通常,元件560-590的每一个可通过电路实现,并且为了解释方便 将元件560-590表示为分立元件,在其他实施例中,结合元件560-590描述的功能的一些或 全部可由相同或不同电路执行。 0067 通常,应用560可以是视频游戏或任何其他包含化身的应用。在一实施例中,计 算环境304可包括可存储不同化。

46、身的模型库570。可在应用中动画化化身以匹配由目标识 别、分析和跟踪系统300捕捉的用户运动。特定示例可包括,包括怪物人物模型和该怪物的 一系列默认姿态的模型库570。怪物人物模型可被用来定义在此特定应用中怪物看起来如 何。化身可被用来生成具有特定姿态的怪物的游戏内副本。在一个示例实施例中,模型库 570可与应用560相关联,然而在其他实施例中模型库570可从应用560分离而仅被应用 560使用。 0068 继续图5的描述,映射系统580可被配置来将反映用户空间中的用户位置的用户 模型映射到从模型库570获得的化身模型。例如,在下文中更详细地描述,用户模型可被生 成为包括节点。用户模型中的每个。

47、节点可与用户的一部分相关联,例如,一些节点可以是关 节节点,如,代表两个或更多骨骼交互的位置的节点,或诸如手的附属肢体。节点可以由互 连相连接,例如,骨骼,并且可以建立定义类似树的父子系统的分级关系。父节点本身可以 是子并且可以连接到其他节点。在特定示例中,手腕可以是肘之子,而肘可以是肩之子。该 递归关系可以继续到一个或多个根节点,其可被用作基准框架,用于从用户模型到化身模 型映射节点。通常,模型可包括末端效应物,其为层级结构内的任何节点,动画设计者想要 直接安置这些节点来,例如,与环境交互。例如,手、脚,和头是典型的末端效应物。然而,动 画设计者可能希望依据应用在特定情况中操作肩、膝或胸甲。。

48、 0069 如前实施例中所述,化身模型700可具有至少一个根节点,并且可以使用化身的 根节点以及用户模型600的对应的一个(或多个)根节点建立关系。可以从用户模型节点 的位置计算出化身节点的位置。例如,可获取末端效应物的父节点和祖父节点的位置信息, 并且可在对应的父节点和祖父节点之间建立关系。 0070 除了映射系统580,图5示出了反向运动学系统590。通常,反向运动学被用来基 于分级结构中给定节点的位置来确定节点的一组位置。例如,由于用户模型是从较少标记 系统生成的,一些节点角度可能没有被接收,或者化身可能具有远多于用户模型的节点。因 此,在示例实施例中,反向运动学系统590可被使用。反向。

49、运动学系统590可从映射系统 说 明 书CN 102448565 A CN 102448588 A 9/17页 12 580接收末端效应物位置,并且可生成至少模拟了末端效应物的位置的化身模型的姿态。在 一些实施例中,除末端效应物以外的位置可被用来模拟用户模型的姿态。反向运动学系统 590的输出可被馈送到应用560,在那里可使用标准动画来混合或修改它。 0071 在示例实施例中,反向运动学系统590可接收一组希望的末端效应物位置/定向 目标作为输入。从该组,反向运动学系统590可提供允许这些目标相遇的一组节点角度。反 向运动学问题与正向运动学问题紧密相关,其可由以下等式简单描述: 0072 xf() (1) 0073 在此等式中,末端效应物位置的矢量x可以通过某个(通常复杂且几乎总是非线 性)函数f与全部的关节角度的矢量相关。因此,反向运动学等式可由以下描述: 0074 f -1 (x) (2) 0075 从这一点,其中有许多方法来求解该系统。在。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人类生活必需 > 运动;游戏;娱乐活动


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1