具体实施方式
描述了用于检测、分析和跟踪包括身体部位和道具的目标的技术。在一个实施例中,自然用户界面系统包括目标检测和跟踪系统。在一个实施例中,该目标检测和跟踪系统包括目标建议系统和目标跟踪系统。目标建议系统标识特定视野内的一个或多个候选身体部位以及一个或多个候选道具位置。在一个示例中,目标建议系统向特定深度图像中的一个或多个像素分配属于一个或多个候选身体部位和/或道具的概率。由于目标建议系统可产生许多假肯定,因此目标跟踪系统被用于协调一个或多个候选身体部位和/或道具、并正确地输出标识出的身体部位和/或道具。
图1A和1B通过用户18在玩拳击游戏来描绘目标检测和跟踪系统10的一个实施例。目标检测和跟踪系统10可用于检测、识别、分析、和/或跟踪人类目标(诸如用户18)和/或非人类目标(诸如用户18拿着的道具(未示出))。
如图1A所示,目标检测和跟踪系统10可包括计算环境12。计算环境12可包括计算机、游戏系统或控制台等等。在一个实施例中,计算环境12可包括硬件组件和/或软件组件,使得计算环境12可用于执行操作系统和诸如游戏应用、非游戏应用等的应用。在一个实施例中,计算系统12可包括可执行存储在处理器可读存储设备上的用于执行此处描述的过程的指令的处理器,如标准化处理器、专用处理器、微处理器等。
如图1A所示,目标检测和跟踪系统10还可包括捕捉设备20。在一个实施例中,捕捉设备20可包括可用于在视觉上监视包括诸如用户18等一个或多个用户的一个或多个目标。由一个或多个用户执行的姿势(包括姿态)可被捕捉、分析、和跟踪,以便执行对操作系统或应用的用户界面的一个或多个控制或动作。
用户可通过移动他或她的身体来创建姿势。姿势可包括用户的运动或姿态,其可被捕捉为图像数据并解析其意义。姿势可以是动态的,包括运动,如模仿投球。姿势可以是静态姿势,诸如保持其前臂交叉。姿势也可结合道具,如挥动仿制的剑。
在一个实施例中,捕捉设备20可捕捉与一个或多个用户和/或对象有关的图像和音频数据。例如,捕捉设备20可用于捕捉与一个或多个用户的部分或全部身体移动、姿势和语音有关的信息。由捕捉设备20捕捉的信息可通过计算环境12和/或捕捉设备20内的处理元件来接收,并用于对游戏或其他应用的各方面进行呈现、交互和控制。在一个示例中,捕捉设备20捕捉与特定用户有关的图像和音频数据,并且计算环境12处理所捕捉的信息以便通过执行面部和语音识别软件来标识该特定用户。
在一个实施例中,目标检测和跟踪系统10可被连接到可向诸如用户18等用户提供游戏或应用视觉和/或音频的视听设备16,如电视机、监视器、高清电视机(HDTV)等。例如,计算环境12可包括诸如图形卡等视频适配器和/或诸如声卡等音频适配器,这些适配器可提供与游戏应用、非游戏应用等相关联的视听信号。视听设备16可从计算环境12接收视听信号,然后可向用户18输出与视听信号相关联的游戏或应用视觉和/或音频。在一个实施例中,视听设备16可经由例如,S-视频电缆、同轴电缆、HDMI电缆、DVI电缆、VGA电缆等连接到计算环境12。
如图1A和1B所示,在计算环境12上执行的应用可以是用户18可能正在玩的拳击游戏。计算环境12可使用视听设备16来向用户18提供拳击对手22的视觉表示。计算环境12还可使用视听设备16来提供用户18可通过他的或她的移动来控制的玩家化身24的视觉表示。例如,如图1B所示,用户18可在物理空间中挥重拳来使得玩家化身24在游戏空间中挥重拳。在一个实施例中,目标检测和跟踪系统10的计算机环境12和捕捉设备20可用于识别和分析用户18在物理空间中的重拳,从而使得该重拳可被解释为对游戏空间中的玩家化身24的游戏控制。
在一个实施例中,用户移动可被解释为可对应于除控制玩家化身24之外的动作的控制。例如,用户18可以使用移动来结束游戏、暂停游戏、保存游戏、选择级别、查看高分、与朋友交流等。在另一实施例中,目标检测和跟踪系统10将目标的移动解释为游戏领域之外的操作系统和/或应用控制。例如,事实上操作系统和/或应用程序的任何可控方面都可由诸如用户18等目标的移动来控制。在另一实施例中,用户18可使用移动来从主用户界面选择游戏或其他应用。由此,用户18的全范围运动可以用任何合适的方式来获得、使用并分析以与应用或操作系统进行交互。
如图1C所示,诸如用户18这样的人类目标可持有球拍21这样的对象。在一个实施例中,用户18可在与应用交互时持有诸如道具等对象。在此类实施例中,个人和对象两者的移动都可用于控制应用。例如,可以跟踪并利用手持球拍21的玩家的运动来控制模拟网球游戏的应用中的屏幕上的球拍23。在另一实施例中,可跟踪并利用手持诸如塑料的剑等玩具武器的玩家的运动来控制电子格斗游戏中对应的武器。在某些实施例中,也可以跟踪包括一个或多个手套、球、球棒、球杆、吉它、话筒、杆、宠物、动物、鼓等其他对象。被跟踪的对象可紧密地映射到特定游戏或应用(例如,虚拟网球游戏中使用的真实网球拍)或可以是更抽象的表示(例如,表示光刀的火炬或闪光)。
在某些实施例中,由目标检测和跟踪系统10跟踪的一个或多个对象可以是活动对象(active object)。活动对象可包括一个或多个传感器,用于向目标检测和跟踪系统10提供诸如加速度或定向信息之类的信息。作为对比,不活动对象(passive object)不向目标检测和跟踪系统10提供附加信息。将视觉跟踪信息与来自活动对象的实时位置、加速度、和/或定向信息进行组合的能力可允许目标检测和跟踪系统10改进其目标跟踪性能,尤其当捕捉设备正捕捉高速移动时(例如,挥动棒球棒)时运动模糊可能是一问题的情况下。在一个实施例中,游戏道具包括加速计、磁力计、和陀螺仪,并且向目标检测和跟踪系统传输加速度、磁场、和定向信息。
在某些实施例中,由目标检测和跟踪系统10跟踪的一个或多个对象可以是不活动对象。在一个实施例中,不活动对象可通过诸如IR回射标记之类的一个或多个标记来扩充,以便改进对象检测和跟踪。在另一个实施例中,不活动和活动游戏道具可通过一个或多个IR回射标记来扩充。
目标检测和跟踪系统10及其组件的合适的示例在以下共同待审的专利申请中找到,所有这些专利申请都特此通过引用结合于此:于2009年5月29日提交的名称为“Environment And/Or Target Segmentation(环境和/或目标分割)”的美国专利申请序列号No.12/475,094;于2009年7月29日提交的名称为“AutoGenerating a Visual Representation(自动生成视觉表示)”的美国专利申请序列号No.12/511,850;于2009年5月29日提交的名称为“Gesture Tool(姿势工具)”的美国专利申请序列号No.12/474,655;于2009年10月21日提交的名称为“Pose Tracking Pipeline(姿态跟踪流水线)”的美国专利申请序列号No.12/603,437;于2009年5月29日提交的名称为“Device for Identifying andTracking Multiple Humans Over Time(用于随时间标识和跟踪多个人类的设备)”的美国专利申请序列号No.12/475,308;于2009年10月7日提交的名称为“Human Tracking System(人类跟踪系统)”的美国专利申请序列号No.12/575,388;于2009年4月13日提交的名称为“Gesture Recognizer SystemArchitecture(姿势识别器系统架构)”的美国专利申请序列号No.12/422,661;于2009年2月23日提交的名称为“Standard Gestures(标准姿势)”的美国专利申请序列号No.12/391,150;以及于2009年5月29日提交的名称为“GestureTool(姿势工具)”的美国专利申请序列号No.12/474,655。
图2示出包括捕捉设备20和计算环境12的目标检测和跟踪系统10的一个实施例,该目标检测和跟踪系统10可用于识别(需要或无需附加到对象的专门传感设备)捕捉区域中的人类或非人类目标、唯一地标识他们并且在三维空间中跟踪他们。在一实施例中,捕捉设备20可以是深度相机(或深度传感相机),该相机被配置成经由任何合适的技术,包括例如飞行时间、结构化光、立体图像等来捕捉包括深度图像的带有深度信息的视频,该深度图像可包括深度值。在一个实施例中,捕捉设备20可包括深度传感图像传感器。在一个实施例中,捕捉设备20可将所计算的深度信息组织为“Z层”或可垂直于从深度相机沿其视线延伸的Z轴的层。
如图2所示,捕捉设备20可包括图像相机组件32。在一个实施例中,图像相机组件32可以是可捕捉场景的深度图像的深度相机。深度图像可包括所捕捉的场景的二维(2-D)像素区域,其中2-D像素区域中的每个像素都可以表示深度值,比如所捕捉的场景中的对象与相机相距的例如以厘米、毫米等为单位的距离。
如图2所示,图像相机组件32可包括可被用来捕捉捕捉区域的深度图像的IR光组件34、三维(3-D)相机36、以及RGB相机38。例如,在飞行时间分析中,捕捉设备20的IR光组件34可以将红外光发射到捕捉区域上,然后可以使用传感器,用例如3-D相机36和/或RGB相机38来检测从捕捉区域中的一个或多个目标和对象的表面反向散射的光。在某实施例中,捕捉设备20可包括IR CMOS图像传感器。在某些实施例中,可以使用脉冲式红外光从而可以测量出射光脉冲和相应的入射光脉冲之间的时间差并将其用于确定从捕捉设备20到捕捉区域中的目标或对象上的特定位置的物理距离。此外,可将出射光波的相位与入射光波的相位进行比较来确定相移。然后可以使用该相移来确定从捕捉设备到目标或对象上的特定位置的物理距离。
在一个实施例中,可使用飞行时间分析,通过经由包括例如快门式光脉冲成像的各种技术来分析反射光束随时间的强度以间接地确定从捕捉设备20到目标或对象上的特定位置的物理距离。
在另一示例中,捕捉设备20可使用结构化光来捕捉深度信息。在该分析中,图案化光(即,被显示为诸如网格图案或条纹图案等已知图案的光)可经由例如IR光组件34被投影到捕捉区域上。在撞击到捕捉区域中的一个或多个目标或(对象)的表面时,作为响应,图案可变形。图案的这种变形可由例如3-D相机36和/或RGB相机38来捕捉并被分析以确定从捕捉设备到目标或对象上的特定位置的物理距离。
在一些实施例中,两个或更多个不同的相机可以被合并到一集成的捕捉设备中。例如,深度相机和视频相机(例如RGB视频相机)可以被合并到共同的捕捉设备中。在一些实施例中,可以协作地使用两个或更多个分开的捕捉设备。例如,可以使用深度相机和分开的视频相机。当使用视频相机时,该视频相机可用于提供:目标跟踪数据、对目标跟踪进行纠错的确认数据、图像捕捉、面部识别、对手指(或其他小特征)的高精度跟踪、光感测和/或其他功能。
在一个实施例中,捕捉设备20可包括可以从不同的角度观察捕捉区域的两个或更多个在物理上分离的相机,以获取可以被解析以生成深度信息的视觉立体数据。还可通过使用多个检测器(可以是单色、红外、RGB)或任意其它类型的检测器捕捉图像、以及执行视差计算,来确定深度。也可使用其他类型的深度图像传感器来创建深度图像。
如图2所示,捕捉设备20可以包括话筒40。话筒40可包括可接收声音并将其转换成电信号的变换器或传感器。在一个实施例中,话筒40可用于减少目标检测和跟踪系统10中的捕捉设备20与计算环境12之间的反馈。另外,话筒40可用于接收也可由用户提供的音频信号,以控制可由计算环境12执行的诸如游戏应用程序、非游戏应用程序等应用程序。
在一个实施例中,捕捉设备20可以包括可以在操作上与图像相机组件32进行通信的处理器42。处理器42可包括标准处理器,专用处理器、微处理器等。处理器42可执行指令,这些指令可包括用于存储简档的指令、用于接收深度图像的指令、用于确定合适的目标是否可被包括在深度图像中的指令、用于将合适的目标转换成该目标的骨架表示或模型的指令、或任何其他合适的指令。
可以理解,至少一些目标分析和跟踪操作可以由一个或多个捕捉设备内包含的处理器来执行。捕捉设备可以包括被配置成执行一个或多个目标分析和/或跟踪功能的一个或多个板载处理单元。此外,捕捉设备可以包括便于更新这样的板载处理逻辑的固件。
如图2所示,捕捉设备20可包括存储器组件44,存储器组件44可存储可由处理器42执行的指令、由3-D相机或RGB相机所捕捉的图像或图像的帧、用户简档、或任何其他合适的信息、图像等等。在一个示例中,存储器组件44可包括随机存取存储器(RAM)、只读存储器(ROM)、高速缓存、闪存、硬盘或任何其他合适的存储组件。如图2所示,存储器组件44可以是与图像捕捉组件32和处理器42进行通信的单独的组件。在另一实施例中,存储器组件44可被集成到处理器42和/或图像捕捉组件32中。在一个实施例中,图2所示的捕捉设备20的组件32、34、36、38、40、42和44中的部分或全部被容纳在单个外壳中。
如图2所示,捕捉设备20可以经由通信链路46与计算环境12通信。通信链路46可以是包括例如USB连接、火线连接、以太网电缆连接等的有线连接和/或诸如无线802.11b、802.11g、802.11a或802.11n连接等的无线连接。计算环境12可以向捕捉设备20提供时钟,可以使用该时钟来通过通信链路46确定何时捕捉,例如,场景。
在一个实施例中,捕捉设备20可将由例如3-D照相机36和/或RGB照相机38捕捉的深度信息和图像经由通信链路46提供给计算环境12。计算环境12然后可使用深度信息和所捕捉的图像来例如创建虚拟屏幕、改变用户界面、以及控制诸如游戏或文字处理程序等应用程序。
如图2所示,计算环境12包括姿势库192、结构数据198、姿势识别引擎190、深度图像处理和对象报告模块194以及操作系统196。深度图像处理和对象报告模块194使用深度图像来跟踪诸如用户和其他对象等对象的运动。为了帮助跟踪对象,深度图像处理和对象报告模块194使用姿势库190、结构数据198和姿势识别引擎190。
在一个示例中,结构数据198包括关于可被跟踪的对象的结构信息。例如,可以存储人类的骨架模型以帮助理解用户的移动并识别身体部位。在另一示例中,还可以存储关于无生命对象(诸如道具)的结构信息以帮助识别这些对象并帮助理解移动。
在一个示例中,姿势库192可包括姿势过滤器集合,每一姿势过滤器包括关于骨架模型可执行的姿势的信息。姿势识别引擎190可将由捕捉设备20捕捉的骨架模型以及与其相关联的移动形式的数据与姿势库192中的姿势过滤器进行比较来标识用户(如骨架模型所表示的)何时执行了一个或多个姿势。那些姿势可与应用的各种控制相关联。因此,计算环境12可使用姿势识别引擎190来解释骨架模型的移动并基于该移动来控制操作系统196或应用。
在一个实施例中,深度图像处理和对象报告模块194会将检测到的每个对象的标识以及每帧的对象的位置和/或定向报告给操作系统196。操作系统196将使用该信息来更新显示画面中的对象(例如,化身)或其他图像的位置或移动,或在所提供的用户界面上执行动作。
关于姿势识别器引擎190的更多信息参见2009年4月13日提交的美国专利申请12/422,661“Gesture Recognizer System Architecture(姿势识别器系统架构)”,该申请通过整体引用合并于此。关于识别姿势的更多信息可在2009年2月23日提交的美国专利申请12/391,150“Standard Gestures(标准姿势)”;以及2009年5月29日提交的美国专利申请12/474,655“Gesture Tool(姿势工具)”中找到,这两个申请通过引用整体并入本文。关于运动检测和跟踪的更多信息可在2009年12月18日提交的美国专利申请12/641,788“MotionDetection Using Depth Images(使用深度图像的运动检测)”,以及美国专利申请12/475,308“Device for Identifying and Tracking Multiple Humans over Time(用于随时间标识和跟踪多个人类的设备)”中找到,这两个申请通过整体引用合并于此。
图3示出可由目标检测和跟踪系统接收的深度图像60的示例实施例,诸如图1A-1C的目标检测和跟踪系统10和/或计算环境12。在一个实施例中,深度图像60可以是由例如以上参考图2所描述的捕捉设备20的3-D相机36和/或RGB相机38所捕捉的场景的图像或帧。如图3中所示,深度图像60可包括所捕捉的场景中的人类目标62和一个或多个非人类目标64,诸如墙壁、桌子、监视器等。在一个示例中,深度图像60可包括多个观测到的像素,其中每一观测到的像素具有相关联的深度值。例如,深度图像60可包括所捕捉的场景的二维(2-D)像素区域,其中2-D像素区域中的每一像素可表示深度值,诸如所捕捉的场景中的对象或目标距捕捉设备的例如以厘米、毫米等为单位的长度或距离。
回头参考图2,在一个实施例中,一旦接收到深度图像,可将该深度图像降采样到较低的处理分辨率,从而可用更少的计算开销来更容易地使用和/或更快地处理该深度图像。另外,可以从深度图像中移除和/或平滑一个或多个高变度和/或含噪声的深度值,且可以填充和/或重构遗漏的和/或被移除的深度信息的各部分。在一个实施例中,深度图像(诸如深度图像60)可被降采样作为与来自RGB相机(诸如相机38)的图像或由任何其他检测器捕捉到的图像组合使用,以便确定目标的形状和大小。
图4示出了可用于实现图2的计算环境12的、包括多媒体控制台(或游戏控制台)100计算环境的示例。如图4所示,多媒体控制台100具有含有一级高速缓存102、二级高速缓存104和闪存ROM(只读存储器)106的中央处理单元(CPU)101。一级高速缓存102和二级高速缓存104临时存储数据并因此减少存储器访问周期数,由此改进处理速度和吞吐量。CPU 101可被设置成具有一个以上的内核,并且由此附加一级和二级高速缓存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内的电路。
CPU 101、GPU 108、存储器控制器110、和多媒体控制台100内的各个其他组件经由一条或多条总线互连,包括串行和并行总线、存储器总线、外围总线、和使用各种总线架构中任一种的处理器或局部总线。作为示例,这些架构可以包括外围部件互连(PCI)总线、PCI-Express总线等。
当多媒体控制台100通电时,应用数据可从系统存储器143加载到存储器112和/或高速缓存102、104中,并且可在CPU 101上执行。应用可呈现在导航到多媒体控制台100上可用的不同媒体类型时提供一致的用户体验的图形用户界面。在操作中,媒体驱动器144中包含的应用和/或其他媒体可从媒体驱动器144启动或播放,以向多媒体控制台100提供附加功能。
多媒体控制台100可通过将该系统简单地连接到电视机或其他显示器而作为独立系统来操作。在该独立模式中,多媒体控制台100允许一个或多个用户与该系统交互、看电影、或听音乐。然而,随着通过网络接口124或无线适配器148可用的宽带连接的集成,多媒体控制台100还可作为较大网络社区中的参与者来操作。
当多媒体控制台100通电时,可以保留设定量的硬件资源以供多媒体控制台操作系统作系统使用。这些资源可以包括存储器保留量(例如,16MB)、CPU和GPU周期保留量(例如,5%)、网络带宽保留量(例如,8kbs)等。因为这些资源是在系统引导时保留的,所以所保留的资源从应用的角度而言是不存在的。
具体而言,存储器保留优选地足够大,以包含启动内核、并发系统应用程序和驱动程序。CPU保留优选地为恒定,使得若所保留的CPU用量不被系统应用使用,则空闲线程将消耗任何未使用的周期。
对于GPU保留,通过使用GPU中断来调度代码以将弹出窗口呈现为覆盖图,从而显示由系统应用程序生成的轻量消息(例如,弹出窗口)。覆盖图所需的存储器量取决于覆盖区域大小,并且覆盖图优选地与屏幕分辨率成比例缩放。在并发系统应用使用完整用户界面的情况下,优选使用独立于应用分辨率的分辨率。定标器可用于设置该分辨率,从而无需改变频率和引起TV重新同步。
在多媒体控制台100引导且系统资源被保留之后,执行并发系统应用来提供系统功能。系统功能被封装在上述所保留的系统资源中执行的一组系统应用中。操作系统内核标识线程是系统应用线程还是游戏应用线程。系统应用优选地被调度为在预定时间并以预定时间间隔在CPU 101上运行,以便为应用提供一致的系统资源视图。进行调度是为了把由在控制台上运行的游戏应用所引起的高速缓存中断最小化。
当并发系统应用需要音频时,则由于时间敏感性而将音频处理相对于游戏应用进行异步调度。多媒体控制台应用管理器在系统应用活动时控制游戏应用音频水平(例如,静音、衰减)。
输入设备(例如,控制器142(1)和142(2))由游戏应用和系统应用共享。输入设备不是保留资源,而是在系统应用和游戏应用之间切换以使其各自具有设备的焦点。应用管理器较佳地控制输入流的切换,而无需知晓游戏应用的知识,并且驱动程序维护有关焦点切换的状态信息。在某些实施例中,图2的捕捉设备20可以是对多媒体控制台100的附加输入设备。
图5示出了可用于实现图2的计算环境12的计算环境的另一示例。图5的计算环境只是合适的计算环境的一个示例,并且不旨在对所公开的主题的使用范围或功能提出任何限制。也不应该将图2的计算环境12解释为对图5的示例性操作环境中示出的任一组件或其组合有任何依赖性或要求。在一些实施例中,各个所示的计算元素可包括被配置成实例化本公开的特定方面的电路。例如,本公开中所使用的术语电路可包括被配置成通过固件或开关来执行功能的专用硬件组件。在其他示例中,术语电路可包括由软件指令配置的实施可用于执行功能的逻辑的通用处理单元、存储器等。在其中电路包括硬件和软件的组合的实施例中,实施者可以编写体现逻辑的源代码,且源代码可以被编译为可以由通用处理单元处理的机器可读代码。
在图5中,计算系统220包括通常包括各种计算机可读介质的计算机241。计算机可读介质可以是可由计算机241访问的任何可用介质,而且包括易失性和非易失性介质、可移动和不可移动介质。系统存储器222包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM)223和随机存取存储器(RAM)260。包含诸如在启动期间帮助在计算机241内的元件之间传输信息的基本例程的基本输入/输出系统224(BIOS)通常储存储在ROM 223中。RAM 260通常包含处理单元259可立即访问和/或当前正在其上操作的数据和/或程序模块。作为示例而非限制,图5示出了操作系统225、应用程序226、其它程序模块227和程序数据228。
计算机241还可包括其他可移动/不可移动、易失性/非易失性计算机存储介质。作为示例,图5示出了从不可移动、非易失性磁介质中读取或向其写入的硬盘驱动器238,从可移动、非易失性磁盘254中读取或向其写入的磁盘驱动器239,以及从诸如CD ROM或其它光学介质等可移动、非易失性光盘253中读取或向其写入的光盘驱动器240。可在示例性操作环境中使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器238通常通过诸如接口234之类的不可移动存储器接口连接到系统总线221,并且磁盘驱动器239和光盘驱动器240通常通过诸如接口235之类的可移动存储器接口连接到系统总线221。
上文讨论并在图5中示出的驱动器及其相关联的计算机存储介质为计算机241提供了对计算机可读指令、数据结构、程序模块和其他数据的存储。例如,在图5中,硬盘驱动器238被示为存储操作系统258、应用程序257、其它程序模块256和程序数据255。注意,这些组件可与操作系统225、应用程序226、其他程序模块227和程序数据228相同,也可与它们不同。此处操作系统258、应用程序257、其他程序模块256、以及程序数据255被赋予不同的编号,以示出至少它们是不同的副本。用户可以通过输入设备,例如键盘251和定点设备252(通常是指鼠标、跟踪球或触摸垫)向计算机241输入命令和信息。其他输入设备(未示出)可包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。这些以及其他输入设备通常通过耦合到系统总线的用户输入接口236连接到处理单元259,但也可通过诸如并行端口、游戏端口或通用串行总线(USB)之类的其他接口和总线结构来连接。图2的相机34、36和捕捉设备20可定义用于计算机241的附加输入设备。监视器242或其他类型的显示设备也经由诸如视频接口232之类的接口连接到系统总线221。除监视器之外,计算机还可以包括可以通过输出外围接口233连接的诸如扬声器244和打印机243之类的其他外围输出设备。
计算机241可使用到一个或多个远程计算机(诸如,远程计算机246)的逻辑连接而在联网环境中操作。远程计算机246可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见网络节点,且通常包括上文相对于计算机241描述的许多或所有元件,尽管在图5中只示出存储器存储设备247。图5中所示的逻辑连接包括局域网(LAN)245和广域网(WAN)249,但也可以包括其它网络。此类联网环境在办公室、企业范围的计算机网络、内联网和因特网中是常见的。
当在LAN网络环境中使用时,计算机241通过网络接口或适配器237连接到LAN 245。当在WAN联网环境中使用时,计算机241通常包括调制解调器250或用于通过诸如因特网之类的WAN 249建立通信的其他手段。调制解调器250可以是内置的或外置的,可经由用户输入接口236或其他适当的机制连接到系统总线221。在联网环境中,相对于计算机241所示的程序模块或其部分可被存储在远程存储器存储设备中。作为示例而非限制,图5示出了远程应用程序248驻留在存储器设备247上。应当理解,所示的网络连接是示例性的,并且可使用在计算机之间建立通信链路的其它手段。
在一个实施例中,计算系统220可被配置成用模型来表示每个目标。如下面更详细地描述的,从这样一种模型导出的信息可与从诸如深度相机之类的捕捉设备获得信息相比较,使得模型的基本比例或形状以及其当前姿态可被调整成更准确地表示被建模的目标。模型可由一个或多个多边形网格、由一组数学图元、和/或通过被建模的目标的其他合适的机器表示来表示。
图6A是描述用于检测和跟踪一个或多个目标的过程的一个实施例的流程图。在某些实施例中,一个或多个目标可包括人类游戏玩家的身体部位和道具。在某些实施例中,一个或多个目标的特定对象可表示身体部位和道具的组合。例如,特定对象可包括棒球手套和前臂的上部。
图6A的过程可由一个或多个计算设备来执行。图6A的过程中每一步骤都可由与在其他捕捉中所使用的那些计算设备相同或不同的计算设备来执行,且每一步骤不必由单个计算设备来执行。在一个实施例中,图6A的过程通过诸如图2中的计算环境之类的计算环境来执行。
在步骤602,从诸如图2的捕捉设备20之类的源获得一个或多个深度图像。在某些实施例中,源可以是配置成通过诸如飞行时间分析、结构化光分析、立体视觉分析之类的合适的技术或其他合适的技术获得关于目标的深度信息的深度相机。在一个实施例中,所获得的深度图像可包括多个观测到的像素,其中每一观测到的像素都具有包括从源观看到的目标的深度信息在内的一个或多个观测到的深度值。所获得的深度图像可任选地被表示为像素矩阵,该像素矩阵包括对应于每一像素地址、指示从深度相机的平面或另一合适的基准平面到该像素地址处的表面的世界空间深度的深度值。在一个实施例中,可将所获得的深度图像降采样至较低分辨率的图像。在另一实施例中,所获得的深度图像可被过滤以移除和或平滑一个或多个高变度和/或含噪声的深度值。所获得的深度图像中的此类高变度和/或含噪声的深度值可源自多个不同的源,诸如在图像捕捉过程期间发生的随机和/或系统性误差、因捕捉设备而导致的缺陷和/或畸变等。
在步骤604,可以处理一个或多个所获得的深度图像,以将要被跟踪的前景对象与非目标对象或其他背景元素区分开来。如本文中所使用的,术语“背景”用来描述图像中不作为要被跟踪的一个或多个目标的一部分的任何事物。背景可包括在要跟踪的一个或多个目标前面(即,更接近深度相机)的元素。区分要被跟踪的前景元素与可忽略的背景元素可增加跟踪效率和/或简化下游处理。
在一个实施例中,可以向所获得的深度图像中的每一数据点(例如,像素)分配标识特定数据点属于前景元素或属于非目标背景元素的分段值(或索引)。分段值可表示指示像素属于特定目标和/或背景元素的概率的离散索引值或模糊索引值。在一个示例中,可以向包括在前景图像内的一个或多个目标中的每一个分配不同的分段值。例如,与第一游戏玩家相对应的像素可分配有等于1的玩家索引,与第二玩家相对应的像素可分配有等于2的玩家索引,而不与目标玩家相对应的像素可分配有等于0的背景索引。在另一实施例中,在一个或多个后续处理步骤中,可以将分配有背景索引的像素或其他数据点排除在考虑以外。在某些实施例中,可省略区分前景像素与背景像素的处理步骤。
在步骤606,执行前景像素分配。前景像素分配可包括分析一个或多个前景像素以确定一个或多个目标(包括身体部位和道具)中的哪个有可能与一个或多个前景像素相关联。各种不同的前景像素分配技术可用于评估特定像素有可能属于一个或多个目标(或对一个或多个目标的机器表示)中的哪一个。在一个实施例中,在确定向特定前景像素或特定前景像素组分配哪些概率中使用深度信息和颜色信息两者。
在一个实施例中,机器学习可用于向每一前景像素分配目标索引和/或目标概率分布。机器学习方法使用从分析先前训练的已知姿势集(例如,训练一组被分割的图像)中所学的信息,来分析前景对象。在一个示例中,可使用无状态方法来在没有任何在先上下文的情况下(即,不需要在先帧的知识)向每一前景像素分配目标索引或分布。在某些实施例中,前景像素分配的机器学习方法可利用一个或多个判定树来分析所获得的深度图像中每一感兴趣的前景像素。这样的分析可确定对该像素的目标分配的最佳猜测,以及该最佳猜测是正确的置信度。
在某些实施例中,最佳猜测可包括在两个或更多可能目标上的概率分布,以及置信度可通过不同的可能目标的相对概率来表示。在判决树的每一节点处,进行两个像素之间的观测到的深度值比较,并且取决于该比较的结果,在判决树的子节点处进行两个像素之间的后续深度值比较。在每一节点处的这些比较结果确定在下一节点处要比较的像素。每一判决树的端节点导致目标分类和该分类中相关联的置信度。
在某些实施例中,后续判决树可用于迭代地细化对每一像素的一个或多个目标分配的最佳猜测以及该最佳猜测是正确的置信度。例如,一旦已经用第一分类树对像素进行了分类(基于邻近深度值),就可执行细化分类以便使用查看先前已分类像素和/或深度值的第二判决树来对每一像素进行分类。第三次遍历可用于通过查看先前已分类像素和/或深度值来进一步细化对当前像素的分类。可以理解,可以执行实际上任何数量的迭代,较少的迭代导致较少的计算花费,而较多的迭代可能提供更准确的分类和/或置信度。
在某些实施例中,判决树可在训练模式期间被构造,其中,已知姿态的已知模型的样本(例如,被分割的图像的训练集)被分析,以确定可在判决树的每一节点处询问的、用于产生准确的像素分类的问题(即,测试)。
在一个实施例中,前景像素分配是无状态的,这意味着作出的像素分配并不参考在先状态(或在先图像帧)。用于分配特定像素或一组像素表示一个或多个对象的概率的无状态处理的一个示例是样本处理。样本处理使用采用深度图像的机器学习方法,并且通过向每一像素分配在其可能相对应的一个或多个对象上的概率分布来对每一像素进行分类。例如,可以向给定像素(它实际上是网球拍)分配它属于网球拍的70%的可能性,它属于乒乓拍的20%的可能性,以及它属于右臂的10%的可能性。样本处理可输入上百万个预分类训练样本(例如,被分割的图像),学习在预分类训练样本内的像素集合之间的关系,以及基于特定深度图像来生成被分割的图像。在一个示例中,样本处理可产生分类图,其中像素是按属于特定对象(例如身体部位或道具)的概率来分类的。样本处理还在名称为“Human Body Pose Estimation(人类身体姿态估计)”的美国专利申请序列号12/454,628中描述,该专利申请的全部内容通过引用结合于此。
在另一实施例中,样本处理和质心生成被用于生成关于正确标识诸如身体部位和/或道具之类的特定对象的概率。质心可具有所捕捉的对象被正确标识为给定对象(诸如,手、脸或道具)的相关联概率。在一个实施例中,生成用户的头、肩、肘、腕和手的质心。样本处理和质心生成在名称为“Skeletal JointRecognition and Tracking System(骨架关节识别和跟踪系统)”的美国专利申请号12/825,657和名称为“Multiple Centroid Condensation of ProbabilityDistribution Clouds(概率分布云的多质心压缩)”的美国专利申请号12/770,394中进一步描述。上述申请中的每一个的全部内容通过引用结合于此。
在步骤607,生成一个或多个分类图。如图6A中所示,步骤607可接收来自步骤602、604和606的输入。在一个实施例中,生成对应于身体部位目标的第一分类图,并且生成对应于道具目标的第二分类图。在另一实施例中,生成覆盖多个目标的统一分类图,这些多个目标包括身体部位目标和道具目标两者。在用于生成统一分类图的方法的一个示例中,向用于实现步骤606的机器学习技术提供的训练集合包括被分割的图像,这些被分割的图像包括一个或多个身体部位和一个或多个道具。在一个示例中,被分割的图像中的每一像素被标识为身体部位,对象,或是背景之一。
图6B是描述用于生成一个或多个分类图的过程的另一实施例的流程图。图6B中描述的过程仅仅是用于实现图6A中步骤607的处理的一个示例。图6B的过程可由一个或多个计算设备来执行。图6B的过程中每一步骤都可由与在其他步骤中所使用的那些计算设备相同或不同的计算设备来执行,且每一步骤不必由单个计算设备来执行。在一个实施例中,图6B的过程由游戏控制台来执行。
在图6B中,分类图是从身体部位目标的深度图像中生成的。在一个实施例中,步骤654的分类图可使用步骤606的概率分配来生成,借此向前景像素分配属于一个或多个身体部位目标的概率。在步骤656,可从步骤654所生成的分类图中标识出身体部位。在一个实施例中,在向一个或多个像素所分配的、该一个或多个像素表示特定身体部位的概率大于90%的情况下,该特定身体部位被标识。在步骤657,将标识出的身体部位从深度图像(或深度图像的派生物)中移除。在某些实施例中,背景也被移除。在步骤658,对深度图像执行对象识别,而标识出的身体部位被移除以标识一个或多个道具。在一个实施例中,样本处理可用于执行对象识别。也可使用其他合适的对象识别技术。在步骤659,基于步骤658的结果来生成一个或多个道具的分类图。使用没有道具的训练集来执行步骤606(而对象识别过程跟随其后)的一个优点是,与使用包括道具的训练集执行步骤606相比,步骤658的对象识别过程在检测对象方面更高效。
图6C是描述用于生成一个或多个分类图的过程的另一实施例的流程图。图6C中描述的过程仅仅是用于实现图6A中步骤607的处理的一个示例。图6C的过程可由一个或多个计算设备来执行。图6C的过程中每一步骤都可由与在其他步骤中所使用的那些计算设备相同或不同的计算设备来执行,且每一步骤不必由单个计算设备来执行。在一个实施例中,图6C的过程由游戏控制台来执行。
在图6C中,分类图是从道具目标的深度图像中生成的。道具目标包括活动道具和/或不活动道具。在一个实施例中,步骤663的分类图可使用步骤606的概率分配来生成,借此向前景像素分配属于一个或多个道具目标的概率。在步骤665,可从步骤663所生成的分类图中标识出道具。在一个实施例中,在向一个或多个像素所分配的、该一个或多个像素表示特定道具的概率大于90%的情况下,该特定道具被标识。在步骤667,将标识出的道具从深度图像(或深度图像的派生物)中移除。在某些实施例中,背景也被移除。在一个实施例中,向与一个或多个被移除的道具相关联的像素分配“不在乎(don’t care)”值。该“不在乎”值可被后续处理步骤用来忽视与被移除的像素相关联的深度信息。这一信息对后续分类步骤而言可能是有帮助的,因为被移除的像素可能已经与一个或多个道具相关联,该一个或多个道具可能已经在身体部位前面(即,在后续处理步骤中正被识别或分类的身体部位可能已经被一个或多个道具遮挡)。在步骤668,对深度图像执行对象识别,而标识出的道具被移除以标识一个或多个身体部位。在一个实施例中,样本处理可用于执行对象识别。在一个示例中,步骤604和606可与包括被分割的身体部位图像在内的新训练集一起使用。也可使用其他合适的对象识别技术。在步骤669,基于步骤668的结果来生成一个或多个身体部位的分类图。
回头参考图6A,在步骤610中,执行模型解析和跟踪。在一个实施例中,模型解析和跟踪包括模型拟合608、骨架跟踪620、以及道具跟踪622。在一个实施例中,模型解析和跟踪610可接收一个或多个分类图,该一个或多个分类图基于来自步骤602的一个或多个原始深度图像、来自步骤604的前景/背景信息、来自步骤606的前景像素概率分配。
在一个实施例中,模型拟合608用于将一个或多个可能的计算机模型拟合到一个或多个所获得的图像和/或一个或多个分类图上。一个或多个计算机模型可包括所建模的目标的机器表示(例如,身体部位或道具的机器表示)。在某些实施例中,涉及线、面、或更复杂的几何形状的模型拟合可应用于跟踪三维空间中的对象。在某些示例中,模型可包括将目标表示为包括刚性的或可变形的形状、或身体部位的三维模型的一个或多个数据结构。每一目标(例如,人类和/或道具)或目标的一部分可被表征为数学图元,数学图元的示例包括但不限于,球体、各向异性地缩放的球体、圆柱体、各向异性圆柱体、平滑圆柱体、方形、斜面方形、棱柱等。在某些示例中,目标可使用参数化三维模型来建模。在某些示例中,模型可包括负空间(negative space)(即,应没有任何东西的空间)。在一个示例中,包含空的空间的方向盘可用包括与该空的空间相关联的负空间的三维模型来建模。在另一示例中,棒球棒末端处的空间可用负空间来建模。
在一个实施例中,在模型拟合608期间,将人类目标建模成包括多个骨架点的骨架,每一骨架点在世界空间中具有三维位置。各个骨架点可与人类目标的实际关节、人类目标肢端的末端、和/或不与人类目标在解剖上直接链接的点相对应。每一骨架点具有至少三个自由度(例如,世界空间x、y、z)。在一个示例中,具有31个骨架点的骨架可由93个值来定义。
在某些实施例中,各种模型拟合方法可使用深度信息、背景信息、道具信息、身体部位信息、和/或在先训练的解剖学和运动信息,来将一个或多个计算机模型映射到所获得的图像上。例如,身体部位信息可用于找出一个或多个骨架骨头的一个或多个候选位置。随后,多个似乎真实的骨架可被组装以包括一个或多个候选位置的不同组合处的骨架骨头。然后可对各个似乎真实的骨架打分,且可将打分的建议合并到最终评估中。在一个实施例中,模型拟合608包括两个分量:身体部位建议者,它为每一身体部位独立地从前景像素分配606中提取候选位置(例如,找出每一身体部位的质心);以及骨架生成器,它将这些候选合并成完整的骨架。
回头参考图6A,在一个实施例中,用于检测和跟踪一个或多个目标的过程可由目标建议系统和目标跟踪系统来实现。目标建议系统可实现步骤602、604、606和607以便标识一个或多个候选目标。一个或多个候选目标可在一个或多个分类图内被标识。目标跟踪系统可实现步骤610和612,以便协调一个或多个候选目标并且正确地报告标识出的目标。在一个示例中,骨架跟踪系统620消费被分配为候选身体部位的一个或多个候选目标,而道具跟踪系统622消费被分配为候选道具的一个或多个候选目标。在另一示例中,骨架跟踪系统620消费与一个或多个候选身体部位相关联的第一分类图,而道具跟踪系统622消费与一个或多个候选道具相关联的第二分类图。
回头参考图6A,在一个实施例中,骨架跟踪系统620通过以各种方式连接一个或多个身体部位建议(或候选)以便产生大量(部分或整个)骨架假设来工作。为了减小计算复杂性,可能首先解析骨架的某些部位(诸如头和肩),之后解析其他部位(诸如手臂)。然后,以任何方式对这些骨架假设打分,且使用分数和其他信息来选择最佳假设并协调正确的身体部位实际在哪里。类似地,道具跟踪系统622考虑一个或多个道具建议(或候选)、生成道具假设、对所生成的道具假设打分、并选择最佳假设,以便确定正确的道具。在一个实施例中,在步骤610,来自先前图像的一个或多个先前高分假设的位置和/或定向被用来帮助对所生成的假设打分。例如,在先前图像中对网球拍的位置和定向的先前确定可用于在当前图像中对该网球拍的位置和定向进行打分。
在一个实施例中,反馈可在骨架跟踪系统620和道具跟踪系统622之间发生。在一个示例中,骨架跟踪系统620从道具跟踪系统622接收道具跟踪信息。道具跟踪信息包括与一个或多个道具有关的位置和定向信息。当对所生成的骨架假设打分时,考虑道具跟踪信息。例如,在特定对象(例如,网球拍或棒球棒)的位置与特定身体部位(例如,手或手臂)接近的情况下,可奖励经打分的假设。该位置可以是三维空间中的3-D位置或二维空间中的2-D位置。类似地,在特定对象不在与该特定对象通常相关联的特定身体部位的阈值距离内的情况下,可降低(或惩罚)给予特定假定的分数。在某些实施例中,给予特定成本函数的奖励或惩罚(例如,给予特定身体部位假设的分数)可以是线性的或非线性的。
在另一个示例中,骨架跟踪系统622从道具跟踪系统620接收道具跟踪信息。骨架跟踪信息包括与一个或多个身体部位有关的位置和定向信息。当对所生成的道具假设打分时,考虑骨架跟踪信息。例如,在特定身体部位(例如,头)的位置在特定道具(例如,帽子)附近的情况下,可奖励经打分的假设。该位置可以是三维空间中的3-D位置或二维空间中的2-D位置。类似地,在特定身体部位不在与该特定身体部位通常相关联的特定道具的阈值距离内的情况下,可降低(或惩罚)给予特定假定的分数。在某些实施例中,给予特定成本函数的奖励或惩罚(例如,给予特定道具假设的分数)可以是线性的或非线性的。在跟踪各对象是困难的情形中(例如,当对象快速进出视野时,或当对象以相对于捕捉设备捕捉该对象的运动的能力而言高速移动时)重新获得一对象时,与用户的身体有关的反馈数据可能尤其有帮助。例如,在游戏玩家挥动棒球棒的情况下,如果跟踪该棒球棒丢失,则可通过考虑该游戏玩家的手的位置来重新获得棒球棒的手柄。在某些实施例中,道具跟踪622与骨架跟踪620并行地执行。
在步骤612,从步骤610正确标识出的目标的确定被报告,且其可为其他应用所用。报告可按任何合适的方式来执行。在一个示例中,应用编程接口(API)可用于报告一个或多个所选目标。例如,这样的API可被配置成传递位置、速度、加速度、位置、速度和/或加速度中的置信度、和/或与一个或多个所选目标有关的其他信息。
图7描绘了原始图像750和基于原始图像750的被分割的身体图像752。在一个实施例中,被分割的身体图像752通过向一个或多个像素区域中的每一个分配特定颜色,来区分与特定身体部位目标相关联的一个或多个像素区域。原始图像750可来自于多个源,包括诸如图2中的捕捉设备20之类的捕捉设备、或图形包或其他3-D呈现程序。在一个实施例中,原始图像750表示来自用户(诸如图1A-1C中的用户18)的特定姿态。在一个实施例中,图2的目标检测和跟踪系统10可接收原始图像750,并使用参考图6A描述的过程来生成分割的身体图像752。在一个示例中,由图6A的步骤607生成的分类图可包括被分割的图像。在一个实施例中,各自包括特定姿态的一个或多个被分割的图像可用作机器学习方法的训练集(即,训练示例)中的一部分。训练集可包括上千、上百万、或任何数量的被分割的图像。
在一个实施例中,训练集的一个或多个训练图像可用特定对象或道具的3-D模型来改型。3-D模型可包括将特定目标表示为三维形状的一个或多个数据结构。在另一实施例中,训练集的一个或多个训练图像可使用特定对象或道具的3-D模型来呈现。
在图8中,三个训练图像942、944和946已经用各道具的3-D模型来改型。被分割的图像942已经用网球拍来改型。被分割的图像944已经用剑来改型。在该情况下,由于对象正穿入用户的身体,所以经改型的被分割的图像可从训练集中被丢弃。被分割的图像946已经用棒球棒来改型。与创建涉及人类姿态和道具的新的捕捉移动的训练集相比,用道具来对现有人类姿态训练集进行改型、和/或基于现有人类姿态训练集来自动生成包括道具的新训练集是较不昂贵的。在某些实施例中,人类主体不触碰或持有训练图像中的对象或道具。例如,在两个游戏玩家之间传递的球将在半空中,且不与任一玩家直接接触。
由于在可同时检测的身体部位和对象的数量之间存在折中,因此在某些实施例中,身体部位目标的数量可能是有限的。例如,身体部位目标可仅包括头、颈、左右肩、左右上躯干、和上臂和下臂以及手,而不是搜索32个不同的身体部位。在某些实施例中,一个或多个道具目标可包括多个部位。例如,网球拍可由拍柄和拍头组成。
一旦检测和跟踪系统(诸如图2的检测和跟踪系统10)已经用包括被分割的身体部位和道具的训练集训练过,身体部位目标和道具目标两者的分类的分类图就可被生成。在图9A中,戴手套的人类的原始深度图像用于生成包括预测的身体部位和道具两者的被分割的图像。如图9A的被分割的图像中所示,用户右手上的手套可被分类为一目标以及多个身体部位目标(例如,左肩和右肩)。在图9B中,手持棒球棒的用户的原始深度图像可用于生成被分割的图像,其中该棒球棒被分类为目标。
在一个实施例中,多个道具可连同多个身体部位一起被分类。在图9C中,手持棒球棒和将足球掷向空中的用户的深度图像912用于生成被分割的图像916,其中棒球棒和足球被分类为目标。在一个实施例中,从捕捉设备接收到的颜色和/或样式信息可用于帮助进一步区分在形状和大小上相似的各目标。在一个示例中,篮球和足球可基于颜色信息来区分。在另一示例中,包括交替的黑色五边形和白色六边形的足球样式可用于帮助将足球与具有相似的形状和大小的其他对象相区分。
在一个实施例中,检测和/或跟踪用户挑选、选出特定道具、或将特定道具引入视野可以触发应用以选择特定应用模式。在一个示例中,挑选足球的游戏玩家将导致体育应用选择与该足球相关联的游戏模式。在另一示例中,特定游戏可允许游戏玩家基于该游戏玩家正持有一个或多个相关联的道具中的哪些,来选择并使用三个不同对象(例如,枪、棒球拍、和电锯)在一个实施例中,游戏玩家可在游戏会话的中间使用介绍一个或多个道具。
所公开的技术可用各种其它通用或专用计算系统环境或配置来操作。适合在该技术中使用的公知的计算系统、环境和/或配置的示例包括,但不限于,个人计算机、服务器计算机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子产品、网络PC、小型机、大型机、包含上述系统或设备中的任一个的分布式计算机环境等。
所公开的技术可在诸如程序模块等由计算机执行的计算机可执行指令的一般上下文中描述。一般而言,如此处所述的软件和程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构和其他类型的结构。硬件或硬件和软件的组合可代替如此处所述的软件模块。
所公开的技术也可以在任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于包括存储器存储设备在内的本地和远程计算机存储介质中。
出于本文的目的,说明书中引述的“一实施例”、“一个实施例”、“某些实施例”或“另一实施例”用于描述不同的实施例并且不必然指的是同一实施例。
出于本文的目的,连接可以是直接连接或间接连接(例如,经由另一方)。
出于本文的目的,术语对象的“集合”指的是一个或多个对象的“集合”。
尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。更确切而言,上述具体特征和动作是作为实现权利要求的示例形式公开的。