虚拟对象操纵的制作方法

文档序号:6348705阅读:217来源:国知局
专利名称:虚拟对象操纵的制作方法
虚拟对象操纵
背景技术
诸如计算机游戏之类的许多计算应用向用户呈现虚拟环境或世界。这些环境通常包含用户可与之交互的虚拟对象。通常,这种交互通过诸如控制器、遥控器、键盘、鼠标等之类的输入设备而发生。不幸的是,这些输入方法并不很好地与诸如按压控制器上的按钮以打开门之类的正被执行的动作相关。发明概述因此,使得用户能够使用用户控制的物理对象(如他的手)与虚拟环境中的光标之间的映射来与虚拟环境中的虚拟对象交互将是一个改进。本文揭示了执行这种虚拟对象操纵的方法、系统和计算机可读介质。在一示例性实施例中,用户的物理控制器与虚拟环境中的光标相关联。接收用户控制器输入,从中确定相应的光标操纵。在光标操纵对应于对虚拟对象的操纵时,对该虚拟对象执行该操纵,且结果显示在显示设备上。本领域技术人员之一可理解,本公开的一个或更多个方面可包括但不限于用于实现本公开的本文所提及的电路和/或编程;该电路和/或编程实质上可以是配置成实现本文所提及的方面的硬件、软件和/或固件的任何组合,这取决于系统设计者的设计选择。以上是概述,并且因此必然包含细节的简化、一般化及省略。本领域技术人员将明白,本概述只是说明性的并且决不旨在是限制性的。


参考附图来进一步描述根据本说明书的用于虚拟对象操纵的系统、方法和计算机可读介质,在附图中图IA和IB示出了伴随用户玩游戏的目标识别、分析和跟踪系统的示例实施例。图2示出了可在目标识别、分析和跟踪系统中使用的捕捉设备的示例实施例。图3A示出了可用于在目标识别、分析和跟踪系统中解释一个或多个姿势的计算环境的示例实施例。图IBB示出了可用于在目标识别、分析和跟踪系统中解释一个或多个姿势的计算环境的另一示例实施例。图4A示出了从图2的目标识别、分析和跟踪系统生成的用户的骨架映射。图5示出了捕捉用户控制器操纵并将其映射到对虚拟对象的光标操纵的系统。图6示出了用于虚拟对象操纵的示例操作过程。说明性实施例的详细描述如本文中将描述的,用户可通过执行一个或多个姿势来控制在诸如游戏控制台、 计算机等计算环境上执行的应用。根据一个实施例,姿势可由例如捕捉设备来接收。例如, 捕捉设备可捕捉场景的深度图像。在一个实施例中,捕捉设备可以确定场景中的一个或多个目标或对象是否对应于诸如用户等人类目标。为了确定场景中的目标或对象是否对应于人类目标,可对每个目标进行泛色填充并将其与人体模型的图案作比较。然后可扫描匹配人体模型的每一目标或对象来生成与其相关联的骨架模型。该骨架模型然后可被提供给计算环境,使得计算环境可跟踪该骨架模型,呈现与该骨架模型相关联的化身,以及可基于例如用户的已经从该骨架模型中识别出的姿势来确定要在计算环境上执行的应用中执行那些控制。姿势识别器引擎(其架构在下文中更完整地描述)被用于确定用户何时做出了某
一姿势。图IA和IB示出伴随用户18玩拳击游戏的目标识别、分析和跟踪系统10的配置的示例实施例。在一示例实施例中,目标识别、分析和跟踪系统10可用于识别、分析和/或跟踪诸如用户18等的人类目标。如图IA所示,目标识别、分析和跟踪系统10可包括计算环境12。计算环境12可以是计算机、游戏系统或控制台等等。根据一示例实施例,计算环境12可包括硬件组件和 /或软件组件,使得计算环境12可用于执行诸如游戏应用、非游戏应用等的应用。如图IA所示,目标识别、分析和跟踪系统10还可包括捕捉设备20。捕捉设备20 可以是例如相机,该相机可用于在视觉上监视诸如用户18等一个或多个用户,以使得可以捕捉、分析并跟踪一个或多个用户所执行的姿势,以执行应用中的一个或多个控制或动作, 如将在下面更详细地描述的。根据一个实施例,目标识别、分析和跟踪系统10可连接到可向诸如用户18等的用户提供游戏或应用视觉和/或音频的视听设备16,如电视机、监视器、高清电视机(HDTV) 等。例如,计算环境12可包括诸如图形卡等视频适配器和/或诸如声卡等音频适配器,这些适配器可提供与游戏应用、非游戏应用等相关联的视听信号。视听设备16可从计算环境 12接收视听信号,然后可向用户18输出与该视听信号相关联的游戏或应用视觉和/或音频。根据一个实施例,视听设备16可经由例如,S-视频电缆、同轴电缆、HDMI电缆、DVI电缆、VGA电缆等连接到计算环境12。如图IA和IB所示,目标识别、分析和跟踪系统10可用于识别、分析和/或跟踪诸如用户18等的人类目标。例如,可使用捕捉设备20来跟踪用户18,以使得可将用户18的移动解释为可用于影响由计算机环境12执行的应用的控制。因而,根据一个实施例,用户 18可移动他或她的身体来控制应用。如图IA和IB所示,在一示例实施例中,在计算环境12上执行的应用可以是用户 18可能正在玩的拳击游戏。例如,计算环境12可使用视听设备16来向用户18提供拳击对手22的视觉表示。计算环境12还可使用视听设备16来提供用户18可通过他的或她的移动来控制的玩家化身M的视觉表示。例如,如图IB所示,用户18可在物理空间中挥重拳来使得玩家化身M在游戏空间中挥重拳。因此,根据一示例实施例,目标识别、分析和跟踪系统10的计算环境12和捕捉设备20可用于识别和分析用户18在物理空间中的重拳,从而使得该重拳可被解释为对游戏空间中的玩家化身M的游戏控制。用户18的其他移动也可被解释为其他控制或动作,诸如上下快速摆动、闪避、滑步、格挡、用拳猛击或挥动各种不同力度的重拳等控制。此外,某些移动可被解释为可对应于除控制玩家化身M之外的动作的控制。例如,玩家可以使用运动来结束、暂停或保存游戏、选择级别、查看高分、与朋友交流等。在各示例实施例中,诸如用户18等的人类目标可具有一物体。在这些实施例中, 电子游戏的用户可手持物体从而可以使用玩家和物体的运动来调整和/或控制游戏的参数。例如,可以跟踪并利用玩家手持球拍的运动来控制电子运动游戏中的屏幕上球拍。在另一示例实施例中,可以跟踪并利用玩家手持物体的运动来控制电子格斗游戏中的屏幕上武器。根据其他示例实施例,目标识别、分析和跟踪系统10还可用于将目标移动解释为游戏领域之外的操作系统和/或应用控制。例如,事实上操作系统和/或应用的任何可控方面可由诸如用户18等目标的移动来控制。图2示出可在目标识别、分析和跟踪系统10中使用的捕捉设备20的示例实施例。 根据一示例实施例,捕捉设备20可被配置成经由任何合适的技术,包括例如飞行时间、结构化光、立体图像等来捕捉包括深度图像的带有深度信息的视频,该深度信息可包括深度值。根据一实施例,捕捉设备20可将所计算的深度信息组织为“Z层”,或可与从深度相机沿其视线延伸的Z轴垂直的层。如图2所示,捕捉设备20可包括图像相机组件22。根据一个示例实施例,图像照相机组件22可以是可捕捉场景的深度图像的深度相机。深度图像可包括被捕捉的场景的二维O-D)像素区域,其中2-D像素区域中的每一个像素都可以(例如以厘米、毫米等等为单位)表示来自相机的被捕捉的场景中的对象的长度。如图2所示,根据一示例实施例,图像相机组件22可包括可用于捕捉场景的深度图像的顶光组件对、三维(3-D)相机沈、和RGB相机观。例如,在飞行时间分析中,捕捉设备20的顶光组件M可以将红外光发射到场景上,然后,可以使用传感器(未示出),用例如3-D相机26和/或RGB相机观,来检测从场景中的一个或多个目标和对象的表面反向散射的光。在某些实施例中,可以使用脉冲式红外光从而可以测量出射光脉冲和相应的入射光脉冲之间的时间差并将其用于确定从捕捉设备20到场景中的目标或对象上的特定位置的物理距离。另外,在其他示例实施例中,可将出射光波的相位与入射光波的相位进行比较来确定相移。然后可以使用该相移来确定从捕捉设备到目标或对象上的特定位置的物理距
1 O根据另一示例实施例,可使用飞行时间分析,通过经由包括例如快门式光脉冲成像的各种技术来分析反射光束随时间的强度变化以间接地确定从捕捉设备20到目标或对象上的特定位置的物理距离。在另一示例实施例中,捕捉设备20可使用结构化光来捕捉深度信息。在该分析中,图案化光(即,被显示为诸如网格图案或条纹图案等已知图案的光)可经由例如顶光组件M被投影到场景上。在撞击到场景中的一个或多个目标或物体的表面时,作为响应, 图案可变形。图案的这种变形可由例如3-D相机沈和/或RGB相机观来捕捉,然后可被分析来确定从捕捉设备到目标或对象上的特定位置的物理距离。根据另一实施例,捕捉设备20可包括两个或更多个物理上分开的相机,这些相机可从不同角度查看场景来获得可被解析以生成深度信息的视觉立体数据。捕捉设备20还可包括话筒30。话筒30可包括可接收声音并将其转换成电信号的换能器或传感器。根据一个实施例,与接收声音的单个话筒相比,可使用话筒30的阵列来降低反馈或音频失真。另外,话筒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可以向捕捉设备20提供时钟,可以使用该时钟来通过通信链路36确定何时捕捉,例如,场景。另外,捕捉设备20可以通过通信链路36向计算环境12提供深度信息和由例如 3-D相机沈和/或RGB相机观捕捉到的图像,以及可以由捕捉设备20生成的骨架模型。 计算环境12然后可使用该骨架模型、深度信息和捕捉的图像来例如识别用户姿势以及作为响应来控制诸如游戏或文字处理程序等应用。例如,如图2所示,计算环境12可包括姿势识别器引擎190。姿势识别器引擎190可包括姿势过滤器集合,每一姿势过滤器包括关于骨架模型(在用户移动时)可执行的姿势的信息。可将由相机26J8和设备20捕捉的骨架模型形式的数据以及与其相关联的移动同姿势识别器引擎190中的姿势过滤器进行比较来标识用户(如骨架模型所表示的)何时执行了一个或多个姿势。那些姿势可与应用的各种控制相关联。因此,计算环境12可使用姿势识别器引擎190来解释骨架模型的移动并基于该移动来控制应用。图3A示出了可用于在目标识别、分析和跟踪系统中解释一个或多个姿势的计算环境的示例实施例。上面参考图1A-2所描述的诸如计算环境12等的计算环境可以是诸如游戏控制台等的多媒体控制台100。如图3A所示,多媒体控制台100具有含有一级高速缓存102、二级高速缓存104和闪存R0M(只读存储器)106的中央处理单元(CPU) 101。一级高速缓存102和二级高速缓存104临时存储数据并因此减少存储器访问周期数,由此改进处理速度和吞吐量。CPUlOl可以设置成具有一个以上的内核,以及由此的附加的一级和二级高速缓存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控制器
7128和前面板I/O子部件130。USB控制器126和128用作外围控制器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% )、网络带宽的保留量(诸如,Slcbs),等等。因为这些资源是在系统引导时间保留的,所保留的资源对于应用视角而言是不存在的。具体地,存储器保留较佳地足够大,以包含启动内核、并发系统应用和驱动程序。 CPU保留较佳地为恒定,使得若所保留的CPU用量不被系统应用使用,则空闲线程将消耗任何未使用的周期。对于GPU保留,通过使用GPU中断来显示由系统应用生成的轻量消息(例如,弹出窗口),以调度代码来将弹出窗口呈现为覆盖图。覆盖图所需的存储器量取决于覆盖区域大小,并且覆盖图较佳地与屏幕分辨率成比例缩放。在并发系统应用使用完整用户界面的情况下,优选使用独立于应用分辨率的分辨率。定标器可用于设置该分辨率,从而无需改变频率并引起TV重新同步。在多媒体控制台100引导且系统资源被保留之后,就执行并发系统应用来提供系统功能。系统功能被封装在上述所保留的系统资源中执行的一组系统应用中。操作系统内核标识是系统应用线程而非游戏应用线程的线程。系统应用优选地被调度为在预定时间并以预定时间间隔在CPU 101上运行,以便为应用提供一致的系统资源视图。进行调度是为了把由在控制台上运行的游戏应用所引起的高速缓存分裂最小化。当并发系统应用需要音频时,则由于时间敏感性而异步调度音频处理给游戏应用。多媒体控制台应用管理器(如下所述)在系统应用活动时控制游戏应用的音频水平 (例如,静音、衰减)。输入设备(例如,控制器142(1)和142( )由游戏应用和系统应用共享。输入设备不是所保留的资源,但却在系统应用和游戏应用之间切换以使其各自具有设备的焦点。 应用管理器较佳地控制输入流的切换,而无需知晓游戏应用的知识,并且驱动程序维护有关焦点切换的状态信息。相机26J8和捕捉设备20可以为控制台100定义额外的输入设备。图IBB示出了可用于在目标识别、分析和跟踪系统中解释一个或多个姿势计算环境220的另一示例实施例,该计算环境可以是图1A-2所示的计算环境12。计算系统环境 220只是合适的计算环境的一个示例,并且不旨在对所公开的主题的使用范围或功能提出任何限制。也不应该将计算环境220解释为对示例性操作环境220中示出的任一组件或其组合有任何依赖性或要求。在某些实施例中,所描绘的各种计算元素可包括被配置成实例化本公开的各具体方面的电路。例如,本公开中使用的术语电路可包括被配置成通过固件或开关来执行功能的专用硬件组件。其他示例中,术语电路可包括由实施可用于执行功能的逻辑的软件指令配置的通用处理单元、存储器等。在其中电路包括硬件和软件的组合的示例实施例中,实施者可以编写体现逻辑的源代码,且源代码可以被编译为可以由通用处理单元处理的机器可读代码。因为本领域技术人员可以明白现有技术已经进化到硬件、软件或硬件/软件组合之间几乎没有差别的地步,因而选择硬件或是软件来实现具体功能是留给实现者的设计选择。更具体地,本领域技术人员可以明白软件进程可被变换成等价的硬件结构,而硬件结构本身可被变换成等价的软件进程。因此,对于硬件实现还是软件实现的选择是设计选择并留给实现者。在图;3B中,计算环境220包括计算机Ml,其通常包括各种计算机可读介质。计算机可读介质可以是能由计算机241访问的任何可用介质,而且包含易失性和非易失性介质、可移动和不可移动介质。系统存储器222包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM) 223和随机存取存储器(RAM06O。基本输入/输出系统224(BI0S)包括如在启动时帮助在计算机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)等其他接口和总线结构来进行连接。相机沈、观和捕捉设备20可以为控制台100定义额外的输入设备。监视器242或其他类型的显示设备也通过诸如视频接口 232的接口连接至系统总线221。除监视器之外,计算机还可以包括可以通过输出外围接口 233连接的诸如扬声器244和打印机243之类的其他外围输出设备。计算机241可使用至诸如远程计算机246之类的一个或多个远程计算机的逻辑连接在网络化环境中操作。远程计算机246可以是个人计算机、服务器、路由器、网络PC、 对等设备或其他常见的网络节点,且通常包括许多或所有以上相对于计算机241描述的元件,尽管在图3B中仅示出了存储器存储设备M7。图;3B中所示的逻辑连接包括局域网 (LAN)245和广域网(WAN) M9,但也可以包括其他网络。这样的联网环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。当在LAN联网环境中使用时,计算机241通过网络接口或适配器237连接至LAN 2450当在WAN联网环境中使用时,计算机241通常包括调制解调器250或用于通过诸如因特网等WAN 249建立通信的其他手段。调制解调器250可以是内置或外置的,它可以经由用户输入接口 236或其他适当的机制连接至系统总线221。在网络化环境中,相对于计算机 241所描述的程序模块或其部分可被存储在远程存储器存储设备中。作为示例而非限制,图 3B示出了远程应用程序248驻留在存储器设备247上。应当理解,所示的网络连接是示例性的,并且可使用在计算机之间建立通信链路的其他手段。图4A描绘了可从捕捉设备20生成的用户的示例骨架映射。在该实施例中,标识出各个关节和骨骼每一手302、每一前臂304、每一肘306、每一二头肌308、每一肩310、每一髋312、每一大腿314、每一膝316、每一小腿318、每一足320、头322、躯干324、脊椎的顶部3 和底部328,以及腰330。在跟踪更多点的情况下,可标识出附加的特征,比如手指或脚趾的骨骼和关节,或脸部的各个特征,如鼻和眼。
用户可通过移动他的身体创建姿势。姿势包括用户的运动或姿态,其可被捕捉为图像数据并解析其意义。姿势可以是动态的,包括运动,如模仿扔球。姿势可以是静态姿态,如在一个人的躯干3M前面交叉握住他的前臂304。姿势也可结合道具,如通过挥动仿制的剑。姿势可包括多于一个身体部位,如拍双手302,或是较微小的运动,如撅起一个人的嘴唇。姿势可用于一般计算上下文中的输入。例如,手302或其他身体部位的各种运动可对应于常见的系统级任务,如在分层列表中向上或向下导航、打开文件、关闭文件和保存文件。姿势也可在视频游戏专用上下文中取决于游戏来使用。例如,对于驾驶游戏,手302 和脚320的各种运动可对应于在一方向上操控车辆、换挡、加速和刹车。用户可通过自己在原地行走或奔跑来生成对应于行走或奔跑的姿势。用户可另选地提起并放下每一腿312-320来在不移动的情况下模拟行走。系统可通过分析每一髋312 和每一大腿314来解析该姿势。当一个髋部-大腿角(如相对于垂直线测量的,其中站立的腿具有0°的髋部-大腿角,而向前水平伸展的腿具有90°的髋部-大腿角)超过相对于另一大腿的特定阈值时,可识别一步。行走或奔跑可在交替腿的某一数量的连续步之后被识别。两个最近的步之间的时间可被认为是一周期。在不满足阈值角度达某一数量的周期之后,系统可确定行走或奔跑姿势已停止。给定“行走或奔跑”姿势,应用可为与该姿势相关联的应用确定的参数设定值。这些参数可包括上述阈值角度、发起行走或奔跑姿势所需的步数、结束姿势的没有发生步的周期数、以及确定姿势是行走还是奔跑的阈值周期。快周期可对应于奔跑,因为用户将快速地移动他的腿,而较慢的周期可对应于行走。姿势最初可以与一组默认参数相关联,应用可用其自己的参数来覆盖该组默认参数。在这一场景中,不迫使应用提供参数,但是应用可改为使用一组允许在没有应用定义的参数的情况下识别姿势的默认参数。有各种可以与姿势相关联的输出。可以有关于姿势是否正在发生的基线“是或否”。还可以有置信度水平,其对应于用户跟踪的移动对应于姿势的可能性。这可以是范围为0和1之间(包括端点)的浮点数的线性标度。在接收该姿势信息的应用不能接受假肯定作为输入的应用中,它可仅使用具有高置信度水平,如至少0.95的已识别的姿势。在应用必须识别姿势的每一实例的情况下,即使以假肯定为代价,它可使用至少具有低得多的置信度水平的姿势,如仅仅大于0. 2的那些姿势。姿势可具有在两个最近步之间的时间的输出,并且在仅注册了第一步的情况下,这可被设为保留值,如-1(因为任何两步之间的时间必须为正)。姿势也可具有关于在最近一步期间达到的最高大腿角的输出。另一示例性姿势是“脚跟提起跳”。在该姿势中,用户可通过将他的脚跟提离地面, 但保持他的脚趾着地来创建该姿势。另选地,用户可跳向空中,其中他的脚320完全离开地面。该系统可通过分析肩310、髋312和膝316的角度关系来解析该姿势的骨架,以查看它们是否在等于直立的对齐位置。然后,可监视这些点和较高3 和较低3 脊椎点来发现任何向上加速。足够的加速组合可触发跳跃姿势。给定该“脚跟提起跳”姿势,应用可为与该姿势相关联的应用确定的参数设定值。 参数可包括上述加速阈值,其确定用户的肩310、髋312和膝316的某种组合必须向上移动多快来触发该姿势;以及肩310、髋312和膝316之间仍可触发跳跃的最大对齐角。
输出可包括置信度水平,以及用户在跳跃时的身体角度。基于将接收姿势的应用的细节来为姿势设定参数对于准确地标识姿势而言是重要的。正确地标识姿势以及用户的意图极大地有助于创建积极的用户体验。在姿势识别器系统太敏感、甚至手302的微小向前运动也被解释为投掷的情况下,用户可能变得沮丧,因为在他没有作出姿势的意图的情况下却识别出姿势,因此他缺乏对系统的控制。在姿势识别器系统不够敏感的情况下,系统可能未识别出用户作出投掷姿势的刻意尝试,从而类似地使用户感到沮丧。在敏感度范围的任一端,用户都会变得沮丧,因为他不能正确地向系统提供输入。对于姿势的另一参数可以是移动的距离。在用户的姿势控制虚拟环境中的化身的动作的情况下,该化身可以是手臂离球的长度。如果用户希望与该球交互并抓住它,则这可要求用户伸展他的手臂302-310到全长同时作出抓握姿势。在这一情形中,用户仅部分地伸展他的手臂302-310的类似的抓握姿势可能无法达到与球交互的结果。姿势或其一部分可将它必须在其中发生的空间体作为参数。在姿势包括身体移动的情况下,该空间体通常可相对于身体来表达。例如,对于惯用右手的用户的美式足球投掷姿势可仅在不低于右肩310a、且与投掷手臂3(^a-310a在头322的相同侧的空间体中识别。可能不必要定义空间体的所有边界,如对于该投掷姿势,其中从身体向外的边界留着不被定义,并且该空间体无限地向外延伸,或者延伸到正被监视的场景的边缘。图5示出了捕捉物理空间中的用户控制器操纵并将其映射到对虚拟环境中的虚拟对象的光标操纵的系统。虚拟空间可包括用户可通过用户输入影响的一即通过移动对象一三维空间的表示。虚拟空间可以是与用户的物理空间无相关性的完全虚拟空间一如物理现实中找不到的城堡或教室的表示。虚拟空间还可基于用户与之不具有关系的物理空间,如华盛顿州雷蒙德市的用户从未看见或从未位于其中的得梅因市的实际教室。虚拟空间可包括用户的物理空间的某一部分的表示。捕捉用户的深度相机也可捕捉用户物理上所存在于的环境,对其进行解析以确定相机可见的空间的边界以及该空间中的离散对象,以及创建该空间的作为虚拟空间被呈现给用户的全部或一部分的虚拟表示。虚拟空间可包括第二用户的物理空间的某一部分的表示。在两个用户通过虚拟环境彼此交互且由相应的深度相机捕捉的情况下,该虚拟空间可以是该第二用户的虚拟空间的表示。虚拟空间也可以是这些空间的某种组合。它可以是用户的物理空间的表示和完全的虚拟空间的拼接(这可被称为完全的虚拟子空间,因为该拼接是虚拟空间),使得两者都被表示为单个虚拟空间。类似地,它可以是用户的物理空间的表示、完全的虚拟空间以及第二用户的虚拟空间的表示的拼接,用户的物理空间的表示和第二用户的物理空间的表示的拼接,或第二用户的物理空间的表示和完全的虚拟空间的拼接。在一实施例中,用户从第一人称视角或第三人称视角查看该虚拟空间。在第一人称视角中,该虚拟空间被显示给用户就好像用户处于该空间中一该显示示出用户将用他自己的眼睛看到什么。在第三人称视角中,虚拟空间与该用户在该虚拟空间中的表示(如化身)一起被显示给用户,这类似于就好像用户被第三人在该空间中观察一样。在一实施例中,虚拟对象包括该虚拟空间中可与之交互的对象。在虚拟空间是完全虚拟的且表示教室的情况下,诸如粉笔、黑板擦、黑板、椅子、桌子、地球仪、窗户、门把手和门之类的事物可以是虚拟对象。用户可以各种方式对这些对象进行操纵或交互,例如通过用粉笔写、提起粉笔、移动粉笔、扔粉笔、或掰断粉笔。在一实施例中,虚拟对象对应于物理对象。这可以是用户所拥有的一物理对象。例如,如果用户具有椅子,该物理椅子可由深度相机捕捉,且该椅子的表示可被插入到虚拟环境中。在用户移动该物理椅子的情况下,深度相机可捕捉这个动作,并显示虚拟椅子的相应移动。在虚拟对象对应于物理对象的一实施例中,可能存在彼此无关地移动的情况。给定上述的物理椅子和虚拟椅子,在用户移动虚拟椅子的情况下,可能的是相应的物理椅子不移动。例如,用户可向虚拟椅子扔虚拟球,所产生的碰撞将碰翻虚拟椅子。然而,由于没有物理力作用于物理椅子,物理椅子将保持竖立。类似地,物理对象可在不移动其对应的虚拟对象的情况下被移动。例如,在用户位于大房间但虚拟空间相对较小的情况下,用户可在其右侧将物理椅子移动到远处。如果虚拟椅子已经在相应的方向中接触到虚拟墙壁,则尽管物理椅子确实移动了,虚拟椅子也可不移动。在一实施例中,虚拟对象对应于第二用户的物理对象。在第二用户的物理椅子被虚拟化的情况下,用户将仅被呈现该第二用户的椅子的虚拟表示。随着用户与该虚拟椅子交互,那些交互(如移动椅子)可被反映在虚拟环境中。这可不被反映在物理椅子的实际移动中。在一实施例中,该交互也被显示给第二用户,使得显示给用户和第二用户两者的虚拟环境保持一致。在一实施例中,该交互不被显示给第二用户,使得第二用户的虚拟环境和第二用户的物理环境保持一致。在一实施例中,在虚拟对象对应于第二用户的物理对象的情况下,用户不能操纵该虚拟对象。这确保显示给两个用户的虚拟环境以及第二用户的物理环境保持一致。在一实施例中,第二用户可通过操纵相应的物理对象来操纵该虚拟对象。由于第二用户能够实际使用该物理对象,他的对该物理对象的操纵可被反映在两个用户的虚拟环境中,使得那些虚拟环境和第二用户的物理环境将保持一致。控制器包括用户在物理空间中操纵的某物以使得虚拟空间中的光标以相应的方式被操纵。控制器可包括物理事物。它可以是身体部位,如用户的手。它类似地可以是物理对象,如指挥棒或指示器、碟或球。在控制器是身体部位的情况下,深度相机可被用于提供深度数据,深度数据然后被解析以确定用户的骨架数据。从该骨架数据以及该骨架数据如何随时间改变,用户对他的控制器的移动可被确定。控制器可包括虚构事物。用户可运动来扔虚构的球。这可使用上述的用户骨架数据来检测。例如,用户可运动来向正在显示虚拟对象的显示设备扔虚构的球。可计算球将与显示画面相交在哪里,并且接着可确定和显示这将影响虚拟对象的方式一例如通过碰撞。在一实施例中,当虚构的球与显示画面相交时,它可被示为虚拟空间中的虚拟对象并在该虚拟空间中沿其飞行路线行进。光标可包括控制器在虚拟空间中的虚拟表示,可与虚拟空间中的虚拟对象交互。 通过在物理空间中操纵一个或多个控制器,用户能够引起对虚拟空间中的一个或多个相应光标的操纵,在那些光标使得虚拟空间中的虚拟对象被操纵的情况下(例如虚拟块被推动),该操纵发生。此外,光标可由于不被显示在显示设备上而是不可见的。
捕捉设备508捕捉用户502所存在于的物理空间中的场景504。捕捉设备耦合于向显示器512进行输出的计算设备510。在一实施例中,捕捉设备508包括图2的捕捉设备 20,计算设备510包括图2的计算环境12、图3A的多媒体控制台100或图的计算环境 220。捕捉设备捕捉该场景并产生深度数据。从该深度数据,确定并监控用户502如何操纵用户控制器506。计算设备510将用户控制器506与显示在显示器512上的虚拟环境中的光标514相关联(光标51 和514b描绘了两个时间点的光标,因为它对应于两个时间点的控制器506a和506b)。控制器506可以被预先确定一系统可总是发现用户502的右手是控制器506,从而总是将用户502的右手与光标相关联。控制器也可以是由用户确定的。例如计算设备510 可向用户502显示捕捉设备508捕捉的图像数据,带有关于将控制器放置在屏幕的特定区域的指示。如果用户502将他的左手放在该区域中,则可确定其为控制器。如果用户502 将其右手、脚、或诸如棒球棒之类的某种物体放置在该区域中,则这同样适用。控制器506随后被用户用来操纵屏幕上的光标514。光标514可以是控制器506 的表示。在控制器506是用户的右手的情况下,光标514可以是右手。类似地,在控制器 506是用户的左手的情况下,光标514可以是用户的左手。在一实施例中,光标514和控制器506不直接以此方式相关。例如,控制器506可以是用户的手,但光标514可以是网球拍或装卸抓的表示。多个控制器506和多个光标514可在单个虚拟环境中被使用。例如, 用户502的每个手可包括控制器506,或两个用户(存在于相同的物理环境中,或分开的物理环境中,各自具有跨通信网络一起通信的计算设备)各自可具有控制器506,像他们的右手,且这些控制器506中的每一个可映射到光标514。当用户操纵控制器506时,该操纵由捕捉设备508捕捉并由计算设备510处理以影响对光标514的相应操纵。例如,在用户伸出他的控制器506a手且闭合他的手指506b 的情况下,虚拟手光标51 可伸到虚拟场景中,且该虚拟手的手指可闭合514b。计算设备510可跟踪光标514以及场景中的至少某个虚拟对象(如所描绘的虚拟指挥棒516)的位置数据,使得它可确定作为用户对控制器506的操纵的结果光标514何时触及虚拟对象516。在经控制器506对光标514进行的该操纵使得虚拟对象516被操纵的情况下,计算设备510可确定已发生的操纵并在显示设备上显示该操纵的结果。例如,在用户伸出他的手光标514并闭合他的手指形成拳的情况下,这可使得手光标514延伸到场景中,光标514的手指握紧虚拟的指挥棒516。在用户继续向前伸出他的控制器506且这使得他的光标514继续伸出到场景中时,可确定虚拟指挥棒516正通过移动到场景中来被操纵, 且该结果可被显示在显示器512中。图6描绘了用于在虚拟空间中操纵虚拟对象的示例操作过程。操作602描绘了确定用户用来操纵虚拟对象的至少一个控制器。操作604描绘了将控制器映射到虚拟空间中的光标。该映射可以是这样一种关联性,使得深度相机所观察的且被解析以确定控制器移动的场景中该控制器的移动对应于光标的移动。操作606描绘了确定指示用户用光标操纵虚拟对象的控制器输入。在一实施例中,存在移动的比例,且确定指示用户用光标操纵虚拟对象的控制器输入包括确定指示用户用光标与该移动的比例成比例地操纵虚拟对象的控制器输入。在移动的比例是1 2的情况下,这可意味着用户每移动控制器一英寸,光标将在相同方向移动两英寸。这可以是虚拟世界所定义的两英寸(例如虚拟世界可被呈现为小于相应的物理世界来开始,使得六英尺高的人在显示在显示设备上时看上去是三英尺高的化身),或本意的两英寸,使得这对应于显示屏幕上两英寸的移动。在一实施例中,光标具有至少一个维度,且确定指示用户用光标与该移动的比例成比例地操纵虚拟对象的控制器输入包括确定指示用户用光标与该维度成比例地操纵虚拟对象的控制器输入。取控制器是用户的手且光标是依附于前臂的虚拟手作为示例。光标可响应于控制器操纵而伸展或伸出。例如,如果用户向深度相机沿ζ轴的维度伸出他的手, 而不是沿ζ轴维度单单地向前移动,手和前臂可沿该维度向前伸展。在一实施例中,使用物理模型来确定光标如何与虚拟对象交互。例如,在一给定物理模型中,虚拟对象可具有质量且虚拟环境可具有重力,因此滚动静止的虚拟球将要求用光标向其施加足够的力以克服球的惯性。该物理模型可准确地对地球上的物理世界进行建模,或可使用某种其他模型。例如,物理模型中的重力可比地球重力弱,使得在其他相同情况下,在用光标向地面投下对象之后对象弹得更高。该物理模型可扩展出光标如何与虚拟对象交互,以及可扩展到虚拟对象如何与第二虚拟对象交互。例如,在用户使用控制器使得光标将第一虚拟球推到第二虚拟球的情况下,第二虚拟球可由于两个虚拟球之间的碰撞的结果而开始滚动。可存在虚拟空间中的虚拟碰撞,而没有物理空间中的相应物理碰撞。用户可以下述方式移动控制器通过物理空间,该方式将要求虚拟空间中的相应光标移动通过不可移动的虚拟对象或虚拟环境的一部分,如墙壁或非常重的巨石,如根据上述物理模型。在一实施例中,光标被动画化以在虚拟环境中示出移动,且当这种碰撞发生时,光标停止动画且在碰撞点保持静止,直到用户使用控制器向不涉及碰撞的方向操纵光标为止。在一实施例中,光标的动画继续通过该碰撞,使得物理环境中的该控制器的用户的位置与虚拟环境中光标的位置之间不会断开连接。操作608描绘了显示该操纵的结果。在一实施例中,所述操纵的结果包括将虚拟对象与物理对象相关联,使得物理对象中的改变被反映为虚拟对象的相应改变。例如,分开的物理环境中的两个人可在一虚拟环境中交互,该虚拟环境是他们各自的物理环境的表示的拼接。第一用户可选择虚拟衬衫并将其与第二用户的物理衬衫相关联,作为该相关联的结果,第二用户在虚拟环境中被示为穿着该虚拟衬衫而不是物理衬衫。虚拟衬衫的这种穿戴可仅示出给第一用户,仅示出给第二用户,或示出给两个用户。操作610描绘了确定第二用户用来操纵虚拟对象的至少一个第二控制器;将第二控制器映射到虚拟空间中的第二光标;确定指示第二用户用该第二光标操纵虚拟对象的第二控制器输入;以及显示该操纵的结果。在多个用户在相同虚拟环境中交互的情况下,第二用户对虚拟对象的操纵可在第一用户的显示设备上被显示给第一用户。在一实施例中,两个用户可同时操纵单个虚拟对象。在一实施例中,虚拟对象具有多个维度,且第一用户操纵所述多个维度中的第一维度, 而第二用户操纵所述多个维度中的第二维度。例如,第一用户可提起对象,而第二用户可在该对象被提起的同时旋转该对象。此外,两个用户可操作某一虚拟对象的同一维度。一个用户可在虚拟球上施加横向力以旋转它。第二用户可在与第一用户相同的方向中施加第二横向力,施加到虚拟球的该额外的力将使其以增加的速度滚动。结论尽管已经结合各附图所示的较佳方面描述了本发明,但要理解,可使用其他相似方面或者可对所述方面进行修改或添加来执行本发明的相同功能而不脱离本发明。因此, 本发明不应该仅限于任何单个方面,而是应该在根据所附权利要求书的广度和范围内解释。例如,本文描述的各种过程可用硬件或软件、或两者的组合来实现。因此,所公开的各实施例的方法和装置或其某些方面或部分可采用包含在诸如软盘、CD-ROM、硬盘驱动器或任何其他机器可读存储介质等有形介质中的程序代码(即,指令)的形式。当程序代码被加载到诸如计算机等机器并由其执行时,该机器变为被配置成实施所公开的各实施例的装置。除了此处明确阐述的具体实现之外,考虑此处所公开的说明书,其它方面和实现将对本领域的技术人员是显而易见的。说明书和所示实现旨在仅被认为是示例。
权利要求
1.一种用于操纵虚拟空间中的虚拟对象的方法,包括确定用户用来操纵所述虚拟对象的至少一个控制器(602);将所述控制器映射到所述虚拟空间中的光标(604);确定指示所述用户用所述光标操纵所述虚拟对象的控制器输入(606);以及显示所述操纵的结果(608)。
2.如权利要求1所述的方法,其特征在于,所述控制器包括物理对象或所述用户的至少一个身体部位。
3.如权利要求2所述的方法,其特征在于,所述物理对象包括指挥棒、碟、或球。
4.如权利要求1所述的方法,其特征在于,所述虚拟空间包括所述用户的物理空间的表示、虚拟子空间、第二用户的物理空间的表示、或它们的组合。
5.如权利要求1所述的方法,其特征在于,存在移动的比例,且确定指示所述用户用所述光标操纵所述虚拟对象的控制器输入包括确定指示所述用户用所述光标与所述移动的比例成比例地操纵所述虚拟对象的控制器输入。
6.如权利要求1所述的方法,其特征在于,所述虚拟对象对应于所述用户的物理空间中的物理对象或第二物理空间中的物理对象。
7.如权利要求1所述的方法,其特征在于,所述虚拟对象对应于物理对象,所述操纵的结果包括显示所述虚拟对象的安排,使得该安排对应于所述物理对象的安排。
8.如权利要求1所述的方法,其特征在于,所述虚拟空间以第一人称视角或第三人称视角被呈现给所述用户。
9.如权利要求1所述的方法,其特征在于,还包括确定第二用户用来操纵所述虚拟对象的至少一个第二控制器; 将所述第二控制器映射到所述虚拟空间中的第二光标;确定指示所述第二用户用所述第二光标操纵所述虚拟对象的第二控制器输入;以及显示所述操纵的结果。
10.如权利要求9所述的方法,其特征在于,所述虚拟对象具有多个维度,且所述第一用户操纵所述多个维度中的第一维度,而所述第二用户操纵所述多个维度中的第二维度。
11.如权利要求10所述的方法,其特征在于,所述维度包括轴。
12.如权利要求9所述的方法,其特征在于,所述第二用户作为化身被表示给所述第一用户。
13.如权利要求9所述的方法,其特征在于,所述第一用户和所述第二用户处于相同的物理空间或分开的物理空间中,且跨通信网络进行通信。
14.一种用于与虚拟空间中的虚拟对象交互的系统,包括 处理器(101);将用户的控制器与虚拟环境(1 中的光标相关联的组件; 接收关于用户操纵所述控制器的指示的组件; 基于所述控制器操纵确定对所述光标的操纵的组件; 确定所述光标与所述虚拟对象交互的组件;以及显示对所述虚拟对象交互的结果的组件。
全文摘要
公开了用于操纵虚拟对象的系统、方法和计算机可读介质。用户可在物理空间中利用诸如他的手之类的控制器以与虚拟环境中的光标相关联。当用户在物理空间中操纵控制器时,这由深度相机捕捉。来自深度相机的图像数据被解析以确定控制器如何被操纵,且在虚拟空间中执行对光标的相应操纵。在光标与虚拟空间中的虚拟对象交互的情况中,该虚拟对象由该光标操纵。
文档编号G06F3/048GK102356373SQ201080013572
公开日2012年2月15日 申请日期2010年3月2日 优先权日2009年3月20日
发明者A·C·汤姆林, D·A·贝内特, K·盖斯那, R·马尔科维奇, S·G·拉塔 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1