专利名称:用于共享信息的识别系统的制作方法
技术领域:
本发明涉及用于识别用户并在这些用户之间共享信息的系统和方法。
背景技术:
存在着允许用户共享信息的许多系统。通常,信息共享有点麻烦并且不是基于用户之间的自然交互的。信息共享一般不绑定到物理位置。从一个计算机到另一个计算机的共享数据通常涉及具有数据的用户将计算机以某种方式配置成服务器或将信息提供给共享环境,并且另一用户配置他们的计算机来连接到该服务器或共享环境。这可能是复杂的和/或耗时的过程。用户通常感到简单地用电子邮件发送数据更容易,因为客户机/服务器关系已经建立。类似地,虽然存在用于在设备之间进行邻近共享的至少一个应用,但交换诸如电子邮件地址等联系人信息通常是手动的过程。bump 应用允许移动电话用户在他们将他们的电话“bump (碰)”在一起时共享信息。
发明内容
概略而言,本发明的技术是用于识别用户并在这些用户之间共享信息的系统和方法。本发明的技术允许具有相关联的处理设备的用户基于用户之间的自然交互来与该系统的视野内的其他用户共享信息。交互可以是身体交互、口头交互、或身体和口头交互的组合。通过检测捕捉设备视野内的用户的用户运动跟踪数据(如骨架模型),来连接用户处理设备。跟踪该用户和其他用户的移动并检测他们之间的交互。在发生交互时,该交互可以触发处理设备之间的信息共享。信息共享可由处理设备直接控制、由中间服务器控制、或由处理设备和中间服务器的组合来控制。提供本发明内容是为了以精简的形式介绍将在以下详细描述中进一步描述的一些概念。本发明内容并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。在本发明内容和以下具体实施方式
中描述的特征不是包括一切的,并且具体地,对本领域技术人员而言,结合附图、说明书、以及权利要求书,许多附加特征和优点将变得显而易见。
参考附图来进一步描述根据本说明书的用于限制化身的姿势显示的系统、方法和计算机可读介质,在附图中图1示出了当用户玩游戏时的目标识别、分析和跟踪系统的示例性实施例。图2示出用于系统识别共享系统和捕捉设备的功能性的计算机实现的体系结构的说明性实施例。图3示出计算环境的示例实施例。图4示出游戏环境的替换示例。
图5示出可由一个或多个实施例使用的从正面看的用户的示例性骨架模型。图6是示出识别及共享系统的各组件的交互的框图。图7示出图6的框图,示出了识别及共享系统的两个用户的骨架数据。图8示出图6的框图,示出了两个用户在识别及共享系统的视野内交互。图9示出在图8中交互的用户的骨架模型表示。图10是示出在识别及共享服务器上执行的方法的流程图。图11是示出在识别及共享系统中的用户处理设备上执行的方法的流程图。图12是示出本发明的在两个处理设备和连接服务器之间的共享示例的UML图。图13是示出识别及共享系统中的替换客户机设备交互的框图。图14是示出使用识别及共享系统中的基于客户机的RGB捕捉设备的RGB数据源的框图。图15是示出与企业环境集成在一起的识别及共享系统的框图。图16是示出诸如移动设备或电话等客户机设备上的连接应用的示例性功能的流程图。图17是示出诸如移动计算机等客户机设备上的连接应用的示例性功能的流程图。图18是示出识别服务器上的连接应用的示例性功能的流程图。
具体实施例方式呈现了用于识别及共享系统的技术,该系统允许具有处理设备的用户与在该系统视野内的其他用户来基于用户之间的自然交互共享信息。交互可以是身体交互、口头交互、 或身体和口头交互的组合。在用户进入该系统的视野时,该用户的处理设备检测该系统并将该用户的运动跟踪数据(如,骨架模型)与该用户进行关联。该系统跟踪该用户对于具有向该系统注册了的处理设备的其他用户的移动,并检测他们之间的交互。在发生交互时, 该交互可以触发处理设备之间的信息共享。信息共享可由处理设备直接控制、由中间服务器控制、或由处理设备和中间服务器的组合来控制。图1示出用户与目标识别、分析、及跟踪系统10的示例实施例的交互,该系统10 在人类没有附连特殊传感设备的情况下来在他们的自然环境中识别这些对象,在三维空间中唯一地标识他们并跟踪他们。然而,本发明的技术可以适用于其他化身控制机制,如其中用户佩戴传感器的基于传感器的系统或基于设备的化身控制系统,这些设备的一些示例是键盘、鼠标、跟踪球、游戏垫、或操纵杆。根据该示例实施例,目标可以是人类目标(例如,用户18)、人类目标与一物体、两个或更多人类目标等,这些目标可被扫描来生成诸如骨架模型、网格人类模型、或其任何其他合适的表示等模型。可以跟踪该模型,以使得目标的物理移动或运动可以担当调整和/ 或控制诸如电子游戏等应用的参数的实时用户界面。此外,该模型可作为模型呈现给应用并实时地传递给它们。例如,所跟踪的用户的运动可用于移动电子角色扮演游戏中的屏幕上的人物或化身。在其中模型是多点骨架模型的一个示例中,目标识别、分析、及跟踪系统10通过理解人类的肌肉-骨架系统的自然力学和能力来高效地跟踪人类及其自然移动。示例系统50还唯一地识别个人以允许多人经由其肢体的自然移动来与该系统交互。具体而言,图1示出其中用户18玩拳击游戏的目标识别、分析、及跟踪系统10的配置的示例实施例。如下所述,在计算机系统12上执行的对通信地耦合的捕捉设备20和视听显示单元16的其他计算机系统上的软件进行控制或进行交互的软件跟踪用户18的移动、分析它们、并将这些移动映射到用户的化身。因此,在该示例中,用户18可以移动他的身体来控制他在显示屏14上的化身24,以在拳击游戏中对抗他的对手化身22。姿势包括运动或姿态。姿势可以由化身或由用户执行。用户可通过移动他的身体创建姿势。例如,可在图像数据中捕捉用户。可以对用户的所标识的姿势分析意义来用作对要执行的应用或动作的控制。例如,用户18在图IA和IB的拳击游戏中挥出一记刺拳。 游戏应用在拳击比赛中表示它,确定它是否接触了化身62,并且如果接触则增加用户的分数。姿势也可以是作为有意义的表情的运动或姿态。例如,它可以表达情绪或想法或意图。 姿势可以是静态姿态,如在一个人的躯干前面交叉握住他的前臂,或者它可以是一个或多个移动。此外,姿势可包括一个以上身体部位,如双手鼓掌。例如,目标识别、分析、及跟踪系统10可被用来识别并分析用户18在捕捉区域 (例如,他的起居室中处于图像捕捉系统60的视野中的部分)中的挥拳以使得这一挥拳可被解释成姿势,在这种情况下该姿势是他的玩家化身M在游戏空间中执行的挥拳的游戏控制。用户58的其他姿势也可被解释为其他控制命令或动作,诸如上下快速摆动、闪避、滑步、格挡、刺拳或挥动各种不同力度的重拳等控制。在本申请的上下文中,姿势可包括用户之间的交互。在其他示例实施例中,诸如用户18等的人类目标可具有一物体。姿势还可包括道具。在这样的实施例中,电子游戏的用户可能在参与游戏时把持并使用该物体。在本发明的技术的上下文中,目标识别、分析、及跟踪系统可以在相对于用户的处理设备的场景中跟踪用户,如下所述。目标识别及分析技术在2009年5月四日提交的题为“Environment and/ or Target kgmentation (环境和/或目标分割)”的美国专利申请12/475,094中描述并且其通过引用整体结合于此;在2009年10月21日提交的题为“Pose Tracking Pipeline (姿势跟踪流水线),,的美国专利申请12/603,437中描述并且其通过引用整体结合于此;在 2009 年 5 月 29 日提交的题为 “Device for Identifying and Tracking MultipleHumans Over Time (用于随时间标识并跟踪多个人类的设备),,的美国专利申请12/475,308中描述并且其通过引用整体结合于此;在2009年12月18日提交的题为“Motion Detection Using Depth Images (使用深度图像的运动检测)”中描述并且其通过引用整体结合于此;在2009年10月7日提交的题为“HumanTracking System(人类跟踪系统),,的美国专利申请12/575,388中描述并且其通过引用整体结合于此;在2009年4月13日提交的题为“Gesture RecognizerSystem Architecture (姿势识别系统体系结构)”的美国专利申请12/422,661中描述并且其通过引用整体结合于此;以及在2009年7月四日提交的题为"AutoGenerating a Visual Representation (自动生成视觉表示)”的美国专利申请 12/511,850中描述并且其通过引用整体结合于此。图2示出用于识别及共享系统200的功能性的计算机实现的体系结构的说明性实施例。该识别及共享系统可包括例如捕捉设备20和计算系统212。这样的体系结构系统可被实现成可由在一个或多个处理器和/或计算机硬件上执行的软件来操作的一个或多个处理模块、或者实现成硬件或固件。捕捉设备20可被用于一场景中的目标识别、分析、及跟踪,其中目标可以是用户或物体。根据一示例实施例,捕捉设备20可被配置成经由任何合适的技术,包括例如飞行时间、结构化光、立体图像等来捕捉包括深度图像的带有深度信息的视频,该深度图像可包括深度值。根据一实施例,捕捉设备20可将所计算的深度信息组织为“Z层”,即可与从深度相机沿其视线延伸的Z轴垂直的层。如图2所示,捕捉设备20可包括图像相机组件23。根据一个示例实施例,图像相机组件23可以是可以捕捉一个场景的深度图像的深度相机。深度图像可包括所捕捉的场景的二维(2-D)像素区域,其中2-D像素区域中的每一像素可表示诸如按照以厘米、毫米等为单位的所捕捉的场景中的物体离相机的长度或距离等的深度值。如图2所示,根据一个示例实施例,图像相机组件23可包括可以被用来捕捉场景的深度图像的IR光组件24、诸如三维(3-D)相机26等第一传感器、以及诸如RGB相机28 等第二传感器。这些组件中的每一个被聚焦在场景上。例如,在飞行时间分析中,捕捉设备 20的IR光组件24可以将红外光发射到场景上,然后,可以使用传感器(未示出),用例如 3-D相机26和/或RGB相机28,来检测从场景中的一个或多个目标和对象的表面反向散射的光。在某些实施例中,可以使用脉冲式红外光从而可以测量出射光脉冲和相应的入射光脉冲之间的时间差并将其用于确定从捕捉设备20到场景中的目标或物体上的特定位置的物理距离。另外,在其他示例实施例中,可将入射光波的相位与出射光波的相位进行比较来确定相移。然后可以使用该相移来确定从捕捉设备20到目标或物体上的特定位置的物理距离。根据另一示例实施例,可使用飞行时间分析,通过经由包括例如快门式光脉冲成像的各种技术来分析反射光束随时间的强度变化以间接地确定从捕捉设备20到目标或物体上的特定位置的物理距离。在另一示例实施例中,捕捉设备20可使用结构化光来捕捉深度信息。在该分析中,图案化光(即,被显示为诸如网格图案或条纹图案等已知图案的光)可经由例如IR光组件34被投影到场景上。在撞击到场景中的一个或多个目标或物体的表面时,作为响应, 图案可变形。图案的这种变形可由例如3-D相机36和/或RGB相机38来捕捉,然后可被分析以确定从捕捉设备20到目标或物体上的特定位置的物理距离。捕捉设备20还可包括话筒30或话筒阵列。话筒30可包括可接收声音并将其转换成电信号的换能器或传感器。根据一个实施例,麦克风30可以被用来减少目标识别、分析,及跟踪系统10中的捕捉设备20和计算环境212之间的反馈。另外,话筒30可用于接收也可由用户提供的音频信号,以控制可由计算环境212执行的诸如游戏应用、非游戏应用等应用。在一示例实施例中,捕捉设备20还可以包括可以与图像相机组件23进行可操作的通信的处理器或微控制器32。处理器32可包括可执行指令的标准处理器、专用处理器、 微处理器等,这些指令可包括用于接收深度图像的指令、用于确定合适的目标是否可被包括在深度图像中的指令、用于将合适的目标转换成该目标的骨架表示或模型的指令、或任何其他合适的指令。 捕捉设备20还可包括存储器组件34,存储器组件34可存储可由微控制器32执行的指令、3-D相机25或RGB相机观所捕捉的图像或图像的帧、或任何其他合适的信息、图像等等。根据一个示例实施例,存储器组件34可包括随机存取存储器(RAM)、只读存储器 (ROM)、缓存、闪存、硬盘或任何其他合适的存储组件。微控制器32和存储器可一起被统称为微控制器。如图2所示,在一实施例中,存储器组件34可以是与图像捕捉组件23和处理器32 进行通信的单独的组件。根据另一实施例,存储器组件34可被集成到处理器32和/或图像捕捉组件23中。如图2所示,捕捉设备20可经由通信链路40与计算环境12进行通信。通信链路46可以是包括例如USB连接、火线连接、以太网电缆连接等的有线连接和/或诸如无线 802. lib,802. llg、802. Ila或802. Iln连接等无线连接。根据一个实施例,计算环境12可以向捕捉设备20提供时钟,可以使用该时钟来通过通信链路46确定何时捕捉,例如,场景。另外,捕捉设备20可以通过通信链路36向计算环境12提供深度信息和由,例如 3-D相机沈和/或RGB相机观捕捉到的图像,并可以由捕捉设备20所生成的骨架模型。 计算环境12然后可使用该骨架模型、深度信息和捕捉的图像来例如控制诸如游戏或文字处理程序等应用。捕捉设备20能以交互式速率来捕捉数据,从而提高了数据的保真度并允许本发明的技术处理原始深度数据,数字化场景中的对象,提取对象的表面和纹理,以及实时地执行这些技术中的任一种,以使得显示器(例如,56)可以在其显示屏幕(例如,54)上提供该场景的实时描绘。在图2的系统实施例中,捕捉设备20在通信上耦合36到诸如图3和4中的计算机系统示例等计算环境212。计算系统212包括运动检测及跟踪服务602,该服务602可包括例如深度及图像检测模块202、运动跟踪模块204、骨架跟踪器207、骨架数据216。运动检测及跟踪服务602向一个或多个应用提供运动数据。将理解,应用250可以在计算系统212上提供,或在诸如以下讨论的替换实施例中提供,在经由网络203耦合到计算系统212的一个或多个设备21 上提供。网络203可包括一个或多个公共和/或专用网络,包括因特网。深度和图像数据被计算系统212经由链路36来接收并由深度模块202处理。骨架跟踪器使用数据来创建可以与场景中的不同目标或用户相关联的骨架模型数据216。场景是处于捕捉设备20的视野内的区域。骨架跟踪器207可以使用该骨架数据来检测目标在场景内的移动,并将该移动信息提供给一个或多个应用250。客户机通信服务606提供到通过在设备之间协商的标准通信协议经由网络213耦合的一个或多个设备21 的网络连接。模型数据216包括场景中的每一目标的模型,这可以是例如骨架模型。运动模块 204参考该场景的模型数据来处理输入数据。骨架模型可被实现成表示身体部位及其相对于参考点的在各维度的位置和/或旋转角度的一个或多个数据结构。模型数据216可按照绝对位置来更新或使用位置和旋转的变化来更新。位置和旋转的变化可被表示成向量和角度。在所示示例实施例中,化身控制系统202从视听数据捕捉系统20本地接收运动跟踪数据205。另外,化身控制系统202可以通过因特网203或其他网络远程地接收运动跟踪数据。对于用户,运动跟踪数据可包括图像数据本身或该数据的降采样版本。一些运动和姿态(例如,姿势)在应用250的上下文中可被赋予特殊意义。各应用能访问与姿势相关联的过滤器206。在一个示例中,运动模块204可以基于相关联的数据索引(如身体部位索引)来选择一个或多个姿势过滤器206。例如,在化身控制系统202 接收到运动跟踪数据集更新并且特定身体部位的运动变化被指示时,运动模块204对与这些特定身体部位相关联的姿势过滤器206进行索引。姿势过滤器206基于参数数据来执行指令,这些参数数据定义用于基于运动跟踪数据205确定特定姿势是否已被执行的准则。在一个实施例中,每一姿势过滤器206与姿势库208中的特定姿势的库模块相链接。与姿势相关联的每一库模块208包括用于响应于姿势来执行处理的可执行指令。这一处理通常涉及更新化身的运动或图像来以某种形式反映该姿势。对用户运动的跟踪可以实时地执行,使得用户可以实时地与正在执行的应用进行交互。实时显示指的是姿势的视觉表示的显示,其中该显示与姿势在物理空间中的执行同时或几乎同时显示。例如,系统可以提供对用户进行回应的显示画面的显示画面更新速率可以是20Hz的速率或更高,其中无关紧要的处理延迟造成最小的显示延迟或对用户而言根本不可见。因此,实时包括与被自动数据处理所需的时间延迟了的数据的及时性有关的任何无关紧要的延迟。目标识别、分析、及跟踪系统200可确定深度图像是否包括人类目标。在一个实施例中,可确定深度图像的所捕捉的场景中的诸如人类目标和非人类目标等每一目标的边。 如上所述,深度值中的每一个能以例如厘米、毫米等为单位来表示诸如所捕捉的场景中的物体距捕捉设备20的长度和距离等深度值。根据一示例实施例,边可以通过将与例如深度图像中的相邻或邻近的像素相关联的各种深度值进行比较来确定。如果正被比较的各种深度值大于预定边容差,则这些像素可定义一条边。在一实施例中,预定边容差可以是例如 100毫米。如果表示1000毫米的深度值的像素与表示1200毫米的深度值的相邻像素进行比较,则这些像素可定义目标的一条边,因为像素之间的长度或距离之差大于IOOmm的预定边容差。根据另一实施例,深度图像上的预定点或区域可被进行泛色填充(floodfill)来判定该深度图像是否包括人类目标。例如,可以比较深度图像的所选区域或点中的像素的各种深度值来确定可定义如上所述的目标或对象的边。在一示例实施例中,预定点或区域可均勻地分布在深度图像上。例如,预定点或区域可包括深度图像中心的点或区域、深度图像的左侧边与中心之间的两个点或区域、深度图像的右侧边与中心之间的两个点或区域,寸寸。可基于所确定的边来对Z层的Z值进行泛色填充。例如,与所确定的边相关联的像素以及该所确定的边内的区域的像素可互相关联来定义可与模式进行比较的捕捉区域中的目标或对象。根据一示例实施例,经泛色填充的目标(人类和非人类)中的每一个可与一模式进行匹配来确定捕捉区域中的目标是否包括和/或哪一目标包括人类。该模式可包括例如与各种位置或姿态(诸如手臂在两侧的典型站立姿态)中的人类相关联的预定身体模型的机器表不。
在一示例实施例中,可隔离人类目标,并且可创建该人类目标的位掩模来扫描一个或多个身体部位。例如,当在深度图像中找到有效的人类目标后,该深度图像中与该人类目标不匹配的背景或区域可被移除。然后可为人类目标生成位掩模,该位掩模可包括该人类目标沿着例如X、Y和Z轴的值。根据一示例实施例,可从例如头部开始来对人类目标的位掩码扫描各个身体部位,以生成该人类目标的模型。位掩膜的顶部可以与头的顶部的位置相关联。在确定了头的顶部之后,可以向下扫描该位掩模来随后确定颈的位置、肩的位置等等。深度图或深度图像数据可被更新以包括一像素与模型中的特定虚拟身体部位相关联的概率。根据一个实施例,在确定身体部位的值后,可以创建可包括诸如与人类目标的位掩模相关联的身体部位的长度、宽度等的度量值的数据结构。在一个实施例中,用于身体部位的数据结构可包括对捕捉系统60以某一帧率在各帧中捕捉的多个深度图像求平均的结果。该模型能以某一数量的帧来迭代地调整。根据另一实施例,可调整所确定的身体部位的度量值,如放大、缩小等,使得数据结构中的度量值更接近地对应于典型的人类身体模型。身体模型可包含任何数量的身体部位,其每一个都可以是所建模的目标的对应部分的任何机器可理解表示。在包括两个或更多个身体部位的模型示例中,该模型的每一身体部位可包括一个或多个结构件(即,“骨骼”),且关节位于相邻骨骼的交叉点处。例如,可使用由位掩模确定的度量值来定义骨架模型中的一个或多个关节。该一个或多个关节可用于定义可对应于人类的身体部位的一根或多根骨骼。每一关节可允许一个或多个身体部位相对于一个或多个其他身体部位移动。例如,表示人类目标的模型可包括多个刚性和/或可变形身体部位,其中某些身体部位可表示人类目标的对应的解剖学身体部位。每个身体部位可被表征为定义骨架模型的关节和骨骼的数学向量。可以理解,某些骨骼可对应于人类目标中的解剖学骨骼,和/或某些骨骼可能不具有人类目标中的对应的解剖学骨骼。骨骼和关节可共同构成骨架模型,其可以是另一模型的构成元素。骨架模型可包括对应于每一身体部位的一个或多个骨架构件以及相邻骨架构件之间的关节。示例性的三维骨架模型80分别在图3中示出。图3示出了从前方看的具有关节jl到j33的骨架模型80。骨架模型80可包括一个或多个关节jl_j33。根据一示例实施例,关节jl_j33中的每一个可使得在这些关节之间定义的一个或多个身体部位能相对于一个或多个其他身体部位移动并彼此独立地移动。例如,关节jl7与jl9之间定义的骨骼对应于前臂,该前臂可独立于例如关节j23与j25之间定义的骨骼——其对应于小腿——移动。随着捕捉系统20捕捉到用户在物理空间中移动,所得图像数据可被用来调整骨架模型,使得骨架模型可以准确地表示该用户。根据一示例实施例,该模型可被光栅化成合成深度图像。光栅化允许由数学向量、多边形网格或其他对象描述的模型被转换成按照像素来描述的合成深度图像。捕捉系统所检索的目标的所观察到的图像与模型的光栅化 (即,合成)图像之间的差别可用于确定施加于该模型以将身体调整到不同的姿态的力向量。在一个实施例中,可向该模型的一个或多个受力方面施加一个或多个力向量,来将该模型调整成更接近地对应于目标在捕捉区域的物理空间中的姿态的姿态。在捕捉各帧时,该模型可被迭代地调整。取决于所使用的模型的类型,可向模型的关节、身体部位的质心、三角形的顶点、或任何其他合适的受力方面施加力向量。此外,在某些实施例中,在确定力的方向和/或大小时可使用两个或更多不同的计算。作为这些元件所提供的协作的示例,考虑顶光组件M和3-D相机沈可提供捕捉区域的深度图像,但是在某些情形中,单独的深度图像可能不足以辨别人类目标的位置或移动。在这些情形中,RGB相机观可“接管”或补充来自3-D相机的信息以便能够对人类目标的移动或位置作出更完整的识别。例如,RGB相机可用于识别与一个或多个目标相关联的色彩等等。如果用户正穿着有图案的衬衫而深度相机不能检测该图案,则可使用RGB相机来跟踪该图案并提供关于用户正在作出的移动的信息。作为另一示例,如果用户扭曲,则可使用RGB相机来补充来自一个或多个其他传感器的信息来确定用户的运动。作为又一个示例,如果用户在诸如墙或第二目标等另一对象旁边,则可使用RGB数据来在两个对象之间进行区分。RGB相机还能够确定用户的精细特征,如面部识别、发色等,这可用于提供附加信息。例如,如果用户向后转,则RGB相机可使用发色和/或面部特征的缺乏来确定用户没有面对捕捉系统。图像的具有深度值的像素数据被称为深度图像。根据一个实施例,深度图像可包括所捕捉的场景的二维O-D)像素区域,其中该2-D像素区域中的每一像素可具有相关联的深度值,如按照以厘米、毫米等为单位的、所捕捉的场景中的物体距某一参考点(如相对于捕捉设备20的某一方面)的长度或距离。例如,像素的深度值可以在“Z层”中表示,这些层是与从深度相机70沿其视线延伸的Z轴正交的层。这些深度值可被统称为深度图。图4示出可用于诸如图1中的游戏控制台或图2中的计算系统212等游戏控制台中的本发明的技术的一个或多个实施例可在其中操作的计算环境的实施例的详细示例。如图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控制器1 和前面板I/O子部件130。USB控制器126和128用作外围控制器142(1)-142(2)、无线适配器148、和外置存储器设备146(例如闪存、外置CD/DVD ROM驱动器、可移动介质等)的主机。网络接口 1 和/或无线适配器148提供对网络(例如,因特网、家庭网络等)的访问并且可以是包括以太网卡、调制解调器、蓝牙模块、电缆调制解调器等的各种不同的有线或无线适配器组件中任何一种。提供系统存储器143来存储在引导进程期间加载的应用数据。提供媒体驱动器 144,且其可包括DVD/⑶驱动器、硬盘驱动器、或其他可移动媒体驱动器等。媒体驱动器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(2))由游戏应用和系统应用共享。输入设备不是所保留的资源,但却在系统应用和游戏应用之间切换以使其各自具有设备的焦点。 应用管理器一般控制输入流的切换,而无需知晓游戏应用的知识,并且驱动程序维护有关焦点切换的状态信息。图像捕捉系统60可为控制台100 (例如,为其相机系统)定义附加输入设备。图5示出了诸如个人计算机等合适的计算系统环境500的示例。参考图5,用于实现本发明技术的一个示例性系统包括计算机510形式的通用计算设备。计算机510的组件可以包括,但不限于,处理单元520、系统存储器530和将包括系统存储器在内的各种系统组件耦合至处理单元520的系统总线521。系统总线521可以是若干类型的总线结构中的任何一种,包括使用各种总线体系结构中的任何一种的存储器总线或存储器控制器、外围总线、以及局部总线。作为示例而非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线、以及也称为夹层(Mezzanine)总线的外围组件互连(PCI)总线。计算机510通常包括各种计算机可读介质。计算机可读介质可以是能由计算机 510访问的任何可用介质,而且包含易失性和非易失性介质、可移动和不可移动介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于, RAM、ROM、EEPR0M、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储设备、磁带盒、磁带、磁盘存储设备或其他磁存储设备、或能用于存储所需信息且可以由计算机510访问的任何其他介质。通信介质通常以诸如载波或其他传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并包括任意信息传送介质。术语 “已调制数据信号”指的是一个或多个特征以在信号中编码信息的方式被设定或更改的信号。作为示例而非限制,通信介质包括有线介质,如有线网络或直接线连接,以及诸如声学、 RF、红外及其他无线介质之类的无线介质。上述中任一组合也应包括在计算机可读介质的范围之内。系统存储器530包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM) 531和随机存取存储器(RAM) 532。基本输入/输出系统533 (BIOS)包括如在启动时帮助在计算机510内的元件之间传输信息的基本例程,它通常储存在ROM 531中。 RAM 532通常包含处理单元520可以立即访问和/或目前正在操作的数据和/或程序模块。 作为示例而非限制,图5示出了操作系统534、应用程序535、其他程序模块536和程序数据 537。计算机510还可以包括其他可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图5示出了从不可移动、非易失性磁介质中读取或向其写入的硬盘驱动器M0,从可移动、非易失性磁盘552中读取或向其写入的磁盘驱动器551,以及从诸如⑶ROM 或其他光学介质等可移动、非易失性光盘556中读取或向其写入的光盘驱动器555。可以在示例性操作环境中使用的其他可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器541通常通过诸如接口 540等不可移动存储器接口连接至系统总线521,并且磁盘驱动器 551和光盘驱动器555通常由诸如接口 550等可移动存储器接口连接至系统总线521。上文讨论并在图5中示出的驱动器及其相关联的计算机存储介质为计算机510提供了对计算机可读指令、数据结构、程序模块和其他数据的存储。例如,在图5中,硬盘驱动器541被示为存储操作系统M4、应用程序M5、其他程序模块546和程序数据M7。注意, 这些组件可以与操作系统534、应用程序535、其他程序模块536和程序数据537相同,也可以与它们不同。在此给操作系统M4、应用程序M5、其他程序模块M6、以及程序数据547 提供了不同的编号,以说明至少它们是不同的副本。用户可以通过输入设备,诸如键盘562 和定点设备561——通常被称为鼠标、跟踪球或触摸垫——向计算机510输入命令和信息。 其他输入设备(未示出)可以包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等等。 这些和其他输入设备通常通过耦合至系统总线的用户输入接口 560连接至处理单元520, 但也可以由其他接口和总线结构,诸如并行端口、游戏端口或通用串行总线(USB)来连接。 监视器591或其他类型的显示设备也通过接口,诸如视频接口 590,连接至系统总线521。除监视器以外,计算机也可以包括其他外围输出设备,诸如扬声器597和打印机596,它们可以通过输出外围接口 590连接。计算机510可以使用到诸如远程计算机580之类的一个或多个远程计算机的逻辑连接在联网环境中操作。远程计算机580可以是个人计算机、服务器、路由器、网络PC、对等设备或其他常见网络节点,并且通常包括上面相对于计算机510所描述的许多或所有元件,但在图5中只示出存储器存储设备581。图5中所示的逻辑连接包括局域网(LAN)571 和广域网(WAN) 573,但也可以包括其他网络。这样的联网环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。当在LAN联网环境中使用时,计算机510通过网络接口或适配器570连接至LAN 571。当在WAN联网环境中使用时,计算机510通常包括调制解调器572或用于通过诸如因特网等WAN 573建立通信的其他装置。调制解调器572可以是内置或外置的,它可以通过用户输入接口 560或其他适当的机制连接至系统总线521。在联网环境中,相对于计算机 510所描述的程序模块或其部分可被存储在远程存储器存储设备中。作为示例而非限制, 图5示出了远程应用程序585驻留在存储器设备581上。能够理解,所示的网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其他手段。图5的设备只是可在其上实现本发明的技术的一种类型的处理设备。计算系统环境500只是合适计算环境的一个示例,而非意在暗示对本技术的使用范围或功能有任何限制。也不应该将计算环境500解释为对示例性操作环境500中示出的任一组件或其组合有任何依赖性或要求。图6示出根据本发明的技术的识别及共享系统的第一实施例。图6示出耦合到以上参考图2描述的捕捉设备20的识别服务器600。识别服务器600包括也在上文描述了的运动检测及跟踪服务602、用户标识服务604、客户机通信服务606、以及用户连接服务器610。可任选地,基于服务器的信息共享应用608也可在识别服务器600上提供。识别服务器600在以上参考图3和4示出的计算环境中的一个或多个中实现。识别服务器600使用户620和630能够容易地连接相关联的客户机设备(在这一情况下,相关联的客户机设备分别是笔记本640和645),并且基于用户与他们的笔记本的交互、彼此的交互、或与识别服务器600的交互来执行各种信息共享任务。尽管本讨论关注两用户之间的交互,但信息的交互和共享可发生在任何数量的用户之间。识别服务器600提供捕捉设备20在给定视野660中的单个立体图。具有相关联设备675或视野660之外的其他用户670不能与识别服务器和用户620、630进行交互。在一替换实施例中,先前处于视野660内并且已经走出该视野的用户可经由识别服务器600 和该系统所跟踪的其他用户来保留某种交互性,如下所述。如上所述,运动和跟踪服务602用于启用对捕捉设备20的视野660内的一个或多个目标或用户的检测。在用户630进入捕捉设备20的视野660内时,运动检测及跟踪服务602检测每一用户620、630,构造每一用户的骨架模型,并且跟踪用户在一场景中在视野 660内的移动。如下所述,这一跟踪信息可被提供给用户相关联设备640、645上的连接应用 622,632或提供给基于服务器的共享应用608。用户连接服务器610接收来自客户机设备640、645的连接请求。连接请求可由连接应用622、632通过轮询由用户连接服务器610监视的已知通信端口来生成。客户机通信 606使网络设备640、645、以及675能够使用任何数量的已知通信协议和技术(包括但不限于TCP、UDP、以及apple talk协议)来经由无线、有线、或其他公共或专用网络与识别服务器进行通信。还可实现用于确定连接应用622、632何时可找出识别服务器的其他技术,如与服务器的邻近度或基于经由已知在同一子网上具有服务器600的无线网络680的连接。一旦连接了用户设备640、645,用户标识模块604、连接服务器610、以及运动检测及跟踪服务602确定用户620和诸如设备640等设备之间的关联。一旦用户620进入视野660,服务602就创建并跟踪该用户的骨架模型。骨架模型被唯一地标识并跟踪,但没有相关联的计算设备或用户被链接到该模型。在连接应用622 被连接到连接服务器610时,它将请求与该系统所跟踪的哪一骨架模型涉及该设备的相关联用户有关的信息。在一个实施例中,房间中的各用户的RGB数据和骨架模型数据被提供给客户机连接应用,并且客户机应用标识它们相关联的用户。客户机应用随后请求该应用在服务器上的所有权,由此将该处理设备与该用户进行关联。或者,识别服务器可基于由客户机应用提供给该识别服务器的信息来作出关联。一旦确定了用户的骨架模型,并且用户被标识为与特定骨架模型和设备相关联, 则用户之间的交互可以启用不同的信息共享功能。信息共享可包括但不限于,文件共享、个人信息交换,以及在一个实施例中包括一个或多个预定义的功能。在图6所示的实施例中,每一客户机设备640和645分别包括连接应用622、632, 并且可任选地在每一设备内包括用户数据624、634。每一用户620、630、670控制他们各自的设备640、645、675。一旦客户机设备640处于服务器600的通信范围之内,相应的连接应用622、632、672就与客户机通信服务606和用户连接服务器610进行通信。在一个实施例中,即使用户620,630,670在视野660之外(如图6的用户670),每一应用622、632、672 也可以与客户机通信和用户连接服务器进行通信。然而,因为用户670在视野660之外,所以运动检测及跟踪服务602不能获得并跟踪该用户的骨架跟踪数据一旦用户处于视野内, 则用户之间的交互可以启用信息共享功能。以下参考图10、11和图12中的示例性共享实施例来描述连接应用622以及用户连接服务器610的特定操作。在图6所示的示例中,一旦用户620带着客户机设备640进入房间,连接应用622 将经由通信服务606来搜索以检测识别服务器600。用户连接服务器将注意到客户机设备 640的连接,并且客户机设备640将请求与客户机设备640相关联的用户(在这种情况下是用户620)是否已被运动检测及跟踪服务602标识。如果是,则连接应用622将请求与该用户相关联的骨架模型的所有权,并且用户标识模块604将该骨架模块的所有权分配给设备 640和用户620。一旦获得了骨架模型的所有权,该骨架模型(以及用户620)与视野内的并且其设备已经通过用户连接服务器连接的其他用户的交互可以根据本文描述的技术的描述来发生。图7示出图6中示出的用户620和630的骨架模型620A和630A的一个示例。在图7中,用户620与骨架模型620A相关联,并且用户630与骨架模型630A相关联。用户标识模块604将把骨架模型620A与设备640相关联,并把骨架模型630A与设备645相关联。 将跟踪两个骨架模型在视野内的移动,并且检测他们之间的交互。用户之间的交互可包括骨架模型之间的身体交互,直接与用户连接服务器或与其他用户的可听交互,或与骨架模型的身体交互和可听交互的组合。还可以检测特定姿势,并且这些特定姿势包括相对于特定视野660中的其他骨架模型的交互。图8示出用户620与用户630之间的示例性交互。在图8中,用户620和630正在握手,并且用户620正在用可听问候语向用户630问候。在该示例中,可以通过在两个骨架模型紧密靠近并被识别为握手时所做出的姿势,或通过骨架的邻近度(握手或不握手)结合口头指示符“hello(你好)”来识别该交互。任何数量的其他类型的交互可被识别为定义被识别为交互的姿势。基于这一交互,连接服务器可以识别出用户希望共享信息并将用户之间的连接通知给连接应用622、632 (和/或可任选地通知给服务器共享应用608)。在一个实施例中,共享功能由连接应用基于识别服务器所检测的交互来定义。在替换实施例中,提供服务器共享应用608并且用户之间的连接在服务器级处理。图9是图8中示出的交互的骨架模型表示。在两骨架模型彼此具有由给定距离定义的邻近关系时,在模型620A的特定跟踪点j22紧密靠近模型630A上的对面用户的相反手臂的类似点j21并且点j20、jl8以及j2在空间上与类似点jl9、jl7、jl相关时,和/或在图9中示出的模型交互与诸如问候等可听命令、在服务器处指示的特定命令、或可听地检测到的与图9中示出的骨架的关系呈时间关系的任何交互相关联时,可检测到两用户之间的握手动作。一旦在两用户620和630之间检测到这一交互,用户连接服务器可以启用共享服务608,或将这一信息提供给客户机应用622、632,从而允许客户机应用622、632直接通信。图10示出在识别服务器600上发生的监视房间以寻找具有相应相关联的处理设备上的连接应用的用户的过程。在步骤1050,使用捕捉设备20扫描房间以寻找目标。在 1052处,持续扫描直至检测到目标为止。扫描可以由运动检测及跟踪服务602来执行。一旦在1052处检测到目标,在IOM处就为每一所标识的目标创建骨架模型并分配标识符。目标及其相关联的骨架模型被存储,直至在1062处接收到所有权请求为止。一旦创建了骨架模型,就作出与该骨架模型相关联的图像数据是否可获得的判定。图像数据可以从捕捉设备620获得,或如下所述,从诸如与用户相关联的处理设备上的相机等备选源获得,或从具有用户图像信息的其他数据库获得。如果在1056处可获得图像数据,则图像数据将与骨架模型相关联并被存储,直至接收到对骨架模型的所有权请求1062为止。在1060,应用继续扫描以在附加目标进入房间时寻找这些目标。当目标离开房间时,如连接服务器的管理员所确定的,关于骨架模型所存储的数据可被释放,或被保留固定的一段时间。如上所述,在识别服务器可用时,客户机连接应用622、632可找出这些服务器。在 1061处,识别服务器等待客户机连接应用进行连接。一旦设备连接了,则在1062处,用户连接服务器等待,直至从客户机连接应用接收到所有权请求为止。当在1062处接收到请求之后,在1064处,在处理设备和特定骨架模型之间作出关联。在一个实施例中,所有权与特定骨架模型之间的关联由客户机应用来执行。在替换实施例中,连接应用可以使用它从先前标识中所保留的识别数据或使用来自包括RGB数据的联系人数据库的数据来作出关联。如下所述,用户标识与特定骨架模型之间的关联是通过使用图像比较技术将用户身份的RGB 数据与该用户的已知RGB数据进行关联来执行的。这一比较可以在客户机设备640、645或在服务器600上执行。在这种情况下,客户机应用将拥有与同该特定处理设备相关联的用户如何显示有关的数据。在步骤1064,响应于客户机应用的所有权请求来传送RGB数据。 一旦客户机应用将其用户标识为与特定骨架相关联,它就可以从服务器请求所有权授权, 并且服务器可以将该客户机和该客户机的处理设备与特定用户进行关联。虽然在一个实施例中使用RGB数据来进行识别,但可以使用其他类型的识别技术,包括例如语音识别,骨架识别,或RGB、骨架和/或语音识别的任何组合。在1066,对骨架模型持续跟踪它们在整个房间的移动。在1070,将用户交互通知给共享应用。在一个实施例中,通知共享应用可包括向共享应用提供该应用所拥有的骨架的骨架模型数据并允许该应用确定与另一用户的交互。或者,服务器可以监视交互,并在包括交互的显著姿势发生时通知共享应用。在步骤1070处通知连接应用可包括通知客户机连接应用或服务器连接应用608。以下描述连接应用中的每一个如何基于被通知了交互来操作的各实施例。可任选地,在1072处,如果在服务器600上启用了共享应用608,则信息共享功能可根据本文描述的各实施例如下所述地发生。如上所述,这可包括仅仅连接在彼此的机器上具有授权特权的两个不同的用户,提供共享工作空间,在设备之间提供对等连接,或基于在1068处检测到的交互的任何数量的变型或动作。或者,步骤1072由客户机共享应用622、632来执行。图11示出在与用户相关联的处理设备进入连接服务器600的领域时诸如应用622 或632等连接应用可发生的过程。在1002处,客户机应用寻找连接服务器。当在1004处检测到连接服务器时,在1005处建立连接,并且在1006处客户机作出对房间中的不同骨架模型的骨架模型信息和RGB数据的请求。如上所述,对骨架模型信息的请求可以由服务器作为图10中的步骤1064的一部分来提供。在从服务器接收到骨架信息和RGB数据之后, 在1008处,客户机应用标识用户和对应的骨架,并且在1010处,从服务器请求骨架模型的所有权。应当注意,在替换实施例中,标识用户和对应的骨架模型的步骤1008可以在服务器处而非在客户机处执行。另外,步骤1008是通过将在1006处由服务器提供的RGB数据与客户机上所存储的已知的用户身份RGB数据进行匹配来执行的。在步骤1012,客户机接收服务器所分配的骨架模型的所有权授权。为了确定标识用户的骨架模型的所有权,客户机应用将接收连接服务器的视野 660内的一个或多个骨架模型。骨架模型一般包括三维点空间和向量数据,如上所述,这些信息的量与RGB图像用来标识用户的数据量相比相对小。如果连接服务器标识出房间中有多个骨架,则服务器可以基于若干决定性特征来提供与所有骨架模型有关的信息和相关联的RGB数据或这些数据的子集。例如,如果服务器检测到请求来自最近进入房间的设备并且服务器知道特定骨架最近进入了房间,则服务器可以选择转发它最近创建的骨架模型, 因为与已经处于房间内的其他客户机相比,它更可能与作出该请求的服务器相关联。另外, 客户机更可能以进入视野的骨架的出现时间相关的方式来请求骨架的所有权。此外,服务器可以阻塞不处于房间中的骨架的连接。应当注意,服务器可能从不同的客户机接收到对相同的骨架模型的相冲突的请求。服务器可以用任何数量的方式来解决这些问题,包括向第一客户机给出请求该骨架模型的优先级或基于哪一骨架模型更可能与特定设备相关联来执行单独的判断。例如,如果服务器知道相冲突的请求来自不同的设备,其中设备之一是笔记本且另一个是处理设备, 则服务器可以扫描房间以寻找靠近相冲突的骨架模型的类似笔记本的物体,并将更靠近笔记本的骨架模型的所有权授予笔记本请求设备。在一个实施例中,在1012处,一旦接收到所有权授权,服务器应用可以既检测骨架交互又控制客户机设备之间的连接。在使用基于服务器的共享应用的情况下,客户机共享应用只需要执行步骤1002-1012。在图11所示的实施例中,在1014处,客户机连接应用将从服务器接收骨架模型数据,并且在1016处,该连接应用将作出与特定客户机应用所关联且为其拥有的骨架模型是否参与了与另一骨架模型的交互有关的判定。一旦在1016处作出判定,连接应用就可在 1018处基于交互的性质和上下文来采取任何数量的动作。如上所述,不同类型的交互可造成相应客户机设备之间的不同类型的连接或关联。以下阐明这些不同交互的示例。图12是两个客户机共享应用(客户机A和客户机B)与连接服务器600之间的一个这样的交互的图示。图12示出使用连接服务器600作为中介来直接共享信息的两个客户机应用之间的连接。连接服务器600将处于以下状态它在1202处监听例如1202处的已知TCP端口上的客户机连接。客户机A在1204处且客户机B在1208处通过例如重复轮询该端口或在它们连接到包括连接服务器的新网络时,将作出连接到该TCP端口的尝试。连接服务器对连接尝试进行确认并分别在1206和1212处连接到每一客户机,客户机A在1210处且客户机B在1216处将各自请求它们自己的骨架模型数据。同样,在1214和1218处,每一客户机将请求可从捕捉设备获得的RGB数据。RGB数据可以是整个场景的视图。骨架数据在1220 处返回给客户机A并在1222处返回给客户机B。在一个实施例中,在1220处返回的数据将是在1222处返回的数据之前出现的骨架模型的数据,因为在图12所示的图示中,对骨架数据的请求1210在时间上处于对骨架数据的请求1216之前。或者,将返回可从跟踪系统获得的所有骨架模型。同样,该场景的RGB数据12M被返回给客户机A并且RGB数据在12 处被返回给客户机B。在12 和1230,客户机A将把场景中的各用户的RGB图像与用户的已知图像信息进行匹配。随后在1230处确定与RGB图像中的特定用户相关联的骨架数据,并且在1231处返回对骨架模型的所有权的请求。骨架数据和RGB图像表示相同的物理空间。如此,客户机能够将在RGB图像中找到的用户与对应的骨架数据进行相关。同样,客户机B将在RGB图像中搜索它的用户并在12 处将确定它的已知用户的对应骨架模型。在 1232,它将发起它自己的对骨架1的所有权的请求。一旦两客户机在1232和1234处发起了对它们各自的骨架的所有权的请求,这两者将发起RGB停止命令1233、1234。这将限制提供给相应客户机中的每一个的RGB数据的量。在1235和1236处,骨架模型数据将被提供给两客户机。(例如,图11中的步骤1016),并且相应客户机两者都监视(1237,1238)所拥有的骨架模型与房间中的其他骨架模型之间的有意义的交互。在1239处,客户机A确定它自己的骨架模型(骨架0)与客户机B所拥有的骨架(骨架模型1)之间发生了有意义的交互。在1242处,客户机A将请求骨架模型1的信息。同样,客户机B将检测到相同的有意义的交互并且在1244处请求骨架模型0的信息。在1246处,骨架模型0的信息将被返回给客户机B,并且在1248处,骨架1的信息将被返回给客户机A。在1250处,客户机A可以直接发起与客户机B的连接请求,或在1252处,客户机B可以向客户机A发起连接请求。 当在12M和1256处建立了标准协议连接之后,客户机A和客户机B之间将存在连接,使得信息传输可直接发生。应用可以允许传输文件、联系人信息、或在该应用内定义的或在作出连接之后由用户定义的其他这样的信息。图13示出系统的替换实现,其中视野660内的客户机设备是笔记本640和移动设备647。移动设备可能具有比笔记本计算机640更有限的处理能力和有限的用户数据。在这种情况下,如果移动设备用户631之前从未遇到笔记本用户620,则一旦用户如图9所示的那样握手,预定义的动作可包括将联系人信息从电话传送到笔记本。可以发生其他预定义的动作。移动设备647将同样具有以参考图11描述的方式来操作的连接应用632A和用户数据634A。图14示出本发明技术的另一替换方案,其中提供给连接服务器的RGB数据是由耦合到用户设备640和655的捕捉设备20A、20B提供的。RGB数据可以在连接时基于在两设备640、655中的任一个上所存储的信息来提供,或如下所述从连接到连接服务器600的数据库提供。在又一实施例中,相机20A和20B可以向运动检测及跟踪服务602提供附加骨架模型和附加跟踪信息。如通过参考本文公开的共同待审的申请将理解的,因为相机20A 和20B分别被定位得更靠近用户620和630,所以捕捉设备20A和20B能以比其视野660中的捕捉设备20更大的分辨率来检测脸部图案以及其他更精细的姿势,如手势的分辨率。如此,附加姿势和附加交互式运动和声音可以经由捕捉设备20A和20B来提供给运动检测及跟踪服务。图15示出又一实施例,其中用户标识数据可以经由任何数量的多个源之一来提供。用户标识数据可以由与用户连接服务器进行接合的移动设备640和655中的每一个来提供。作为替换或补充,连接服务器600耦合到企业环境1500或是其一部分。企业环境可包括授权服务器1502、用户标识数据1504、以及用户共享数据1510。识别服务器600可以访问用户ID数据以使用作为企业1500的授权用户的所有用户的用户ID数据中的已知成像信息来标识进入捕捉设备20的视野的用户。企业1500可包括基于授权用户结构来标识用户的授权及许可服务,从而授予对诸如文件、联系人信息、个人信息、网络共享等用户资源的许可。用户共享数据1510包括用户使之可用于在企业内共享的用户信息,并且可结合共享应用608来使用以授权用户620和630访问这样的数据1510。图16示出可在诸如在移动设备上进行的应用632A等连接应用中进行的过程。在 1602处,该应用将在1602处接收发生了与其骨架模型的交互的通知。可任选地,在1604 处,基于该交互的预定义的动作可以发生。在一个实施例中,预定义的动作可以是一旦建立了两用户之间的连接则不管所发生的交互的类型而自动发生的动作。在移动电话的情况下,预定义的动作可以是与另一用户共享个人联系人信息、输出与可用于在电话上与该另一用户共享的目录有关的共享信息、或使存储在电话或其他位置上的公共文件可用的动作。1604中的预定义的动作可以在用户以任何方式与任何其他骨架进行交互的任何时候发生。作为预定义的动作的替换或补充,在1606处,该应用可以基于接收到的相关联的骨架数据和/或音频数据来将交互进行分类。一旦进行了分类,交互1608、1614、1624、1632 将造成该应用进行的动作。在1606处检测到的每一交互可包括用于执行对该电话可用的一类信息共享的一个或多个命令。在1608处,如果该数据指示第一交互,则第一交互可表示与用户共享联系人信息的命令。这可涉及与房间中的另一人握手,并且检测到相应用户的两骨架模型在握手。或者,该交互可包括握手与诸如“共享联系人信息”等音频命令。如果在步骤1608处检测到该交互,则在1610处建立连接,并且在1612处,为在图16中执行的应用的用户所定义的用户联系人信息将经由该连接转发到第二用户。在1614处,如果检测到第二交互或替换交互,则该交互可表示共享日历信息或特定日历项。如果在1614处检测到第二交互,则在1616处,可以提示用户指定日历项(或者,可以共享整个日历数据),在 1618处将建立连接,并且在1620处,所选择或所定义的信息将被发送到第二用户的设备。 或者,在16M处,第三交互可包括共享文件,并且如果在1606处基于姿势和/或音频数据检测到第三交互,则可以提示用户选择共享的文件或目录,在16 处可建立连接,并且在 1630处将文件传送到第二设备。可以向任何数量的不同类型的交互1632提供与1608、1614 或16M相类似的任何数量的不同所得动作1634。图17示出用于诸如用于1630等在笔记本上执行的应用的类似过程。当在1702处接收到通知后,可任选地,在1704处,该应用可基于设备类型和设备位置来采取预定义的动作。这样的预定义的动作可以是共享个人联系人信息、共享预定义的文件、共享目录、或共享特定媒体。在一个示例中,连接服务器可被安装在用户正在其中进行演示的房间中的笔记本上。在该示例中,在用户进入预定义的位置时,基于骨架模型和用户的身份,预定义的动作可以是呈现用户的处理设备上存在的文件(如,演示),并将共享的文件投影到更大的演示系统,如用于供观众观看的投影仪。另外,在该示例中,用户的演示可用于与房间中的其他用户共享,以允许演示的观看者在用户呈现该演示时下载该演示的副本。作为1704 处的预定义的动作的替换或补充,在1706处对姿势进行分类。以与参考图16定义的方式相类似的方式,在1708、1714、和17M处的不同的交互造成连接应用630的不同动作。在1708处的第一类型的交互可以是被分类成造成共享用户信息的交互。一旦在 1709处标识了第二用户,则在1710处建立连接,并且在1712处与第二用户共享用户联系人信息。第二类型的交互1714可以指示共享文件的命令。如果确定了交互2,则在1716处可以提示用户输入要共享的文件或目录项,在1718处建立连接,并且在1720处发送信息。在 17M处的另一示例交互可造成17M处的服务器或企业登录和共享命令。用户凭证可由连接应用存储,使得用户不必输入用户标识符或口令。用户登录可由连接应用或处理设备内的其他安全存储装置来存储。一旦对企业登录进行了存档,则在1726处,可作出对文件选择的提示,以允许用户选择一个或多个文件或目录来进行共享。或者,可以创建自动共享。 文件的位置可以处于客户机设备本身上,或处于参考图15讨论的共享存储位置上。在1728 处,可建立到企业服务器的连接,或不进行连接,其中要与其共享信息的第二设备使其自己直接连接到共享存储位置。如果文件需要被传送到共享位置,则在1730处可传送文件。图18示出处理客户机的连接和动作的连接服务器上的共享服务应用608可发生的过程。在基于服务器的共享应用中,交互检测可由服务器来执行。与基于客户机的应用一样,在1804处,服务器可以基于骨架的位置和与骨架相关联的设备来采取预定义的动作。 这样的动作可包括加载媒体偏好、显示公共文件、以及加载通知偏好。在其中可以使用基于服务器的连接应用的一个示例中,例如,诸如家庭起居室等共享媒体环境。在该示例中,连接应用可被用来确定具有连接客户机的哪些用户位于媒体中心前方,其中连接服务器在控制台上提供并且相机在诸如图1所示的显示设备等显示设备上提供。在第一用户带着诸如移动电话上的应用630A等客户机应用进入房间时,该系统可以确定用户是例如家庭中的父母并加载该用户的频道偏好、评级偏好及限制、以及该用户专用的其他信息来经由显示设备进行呈现。同样,当诸如孩子等第二用户进入房间时,附加评级系统或评级锁可被加到效果上。即时消息收发和其他通信协议可以通过以上参考图1到4示出的处理设备来路由。如此,当在1802处接收到交互数据时,在1806处对动作进行分类。一个这样的交互可以是1808处的传入的电话呼叫或传入的即时消息。取决于在1810处房间中是否存在其他用户,连接应用608可以在1811处显示呼叫者的完整标识或在1812处只显示部分标识。同样,如上所述,在用户进入和退出特定视野660时,在用户退出房间之后的固定时间段期间维持与哪些用户曾在任何特定时间处于特定视野中有关的信息。例如,当在特定时间全家都在捕捉设备20前方但各用户退出房间的情况下,房间中的用户的一个交互可以是指示该用户希望在最近5或10分钟内曾处于房间中的所有其他用户返回。当在1814处确定了这一交互时,在1816处作出关于哪些用户在先前时间段内曾处于视野660中的判定,建立到这些用户的处理设备的连接,并且向这些处理设备发送将这些用户找回到视野660中的通知。又一实现可以在1824处请求登录到企业或家庭服务器。在1826处,检查用户对服务器的凭证,并且在1828处建立到服务器的连接。在1832处,可设置共享许可。任何数量的不同交互1834可以基于在1806处定义的交互式数据来以此方式进行定义。本文公开的技术可用作其上可利用其他技术的平台。以上示出的连接服务器600 允许连接到服务器的处理设备和基于它们的移动来标识用户的相关联的骨架数据之间的各种不同的连接方法。交互可被定义成特定姿势、或与音频命令相组合的姿势、或仅音频命令。在本发明技术的一独特方面,信息从单个观点提供给各连接应用。即,捕捉设备20给出整个视野660的单个立体图。因为使用了单个视野和单个观点,所以交互的移动以及房间中各用户之间的关系可以得到维持。前面的详细描述只是为了说明和描述。并非旨在穷举本技术或将其限于所公开的精确形式。鉴于上述教导,许多修改和变型都是可能的。所描述的实施例只是为了最好地说明本技术的原理以及其实际应用,从而使精通本技术的其他人在各种实施例中最佳地利用本技术,适合于特定用途的各种修改也是可以的。此外,应当注意,在说明书中使用的语言主要是出于可读性和指导目的来选择的。尽管用专门描述结构特征和/或方法动作的语言描述了主题,但是应当理解,在所附权利要求书中限定的主题并不一定局限于上述特定的特征或动作。更确切而言,上述具体特征和动作是作为实现权利要求的示例形式公开的。
权利要求
1.一种计算机实现的方法,所述方法包括使用捕捉设备所提供的深度及识别信息来监视场景;使用场景中的每一目标的骨架模型来跟踪包括所述场景中的各用户在内的目标的移动;将所述场景中的用户与骨架模型和处理设备进行关联;通过至少参考所述用户的骨架模型相对于其他用户的移动来检测所述场景中的一个或多个用户之间的交互;以及在检测到交互后,在所述场景中的用户之间共享信息。
2.如权利要求1所述的计算机实现的方法,其特征在于,监视是由第一计算机执行的, 并且跟踪移动是由与所述用户相关联的处理设备执行的。
3.如权利要求1所述的计算机实现的方法,其特征在于,在用户之间共享信息包括执行预定义的动作。
4.如权利要求1所述的计算机实现的方法,其特征在于,所述交互包括检测第一骨架模型与第二骨架模型之间的关系。
5.如权利要求1所述的计算机实现的方法,其特征在于,进行关联包括 从所述处理设备接收对所述场景中的用户的标识的请求;响应于所述请求向所述处理设备提供与所述骨架模型相关联的骨架数据和识别信息;接收对所述骨架模型的所有权的请求;以及将所述处理设备与所述骨架模型进行链接。
6.如权利要求3所述的计算机实现的方法,其特征在于,执行预定义的动作包括在检测到所述交互之后自动地共享用户联系人信息。
7.如权利要求1所述的计算机实现的方法,其特征在于,检测包括检测至少第一用户和第二用户,所述第一用户具有第一骨架模型并且所述第二用户具有第二骨 架模型,并且所述方法还包括通过检测所述第一骨架模型与所述第二骨架模型之间的关系来检测所述第一用户与所述第二用户之间的交互。
8.如权利要求7所述的计算机实现的方法,其特征在于,检测所述交互包括检测与所述第一用户和所述第二用户之间的关系相关联的、在时间上与该关系相关的声音。
9.如权利要求1所述的计算机实现的方法,其特征在于,检测包括检测至少第一用户和第二用户,所述第一用户具有第一骨架模型并且所述第二用户具有第二骨架模型,并且所述方法还包括将所述第一骨架模型和所述第二骨架模型的跟踪信息提供给至少所述处理设备。
10.如权利要求1所述的计算机实现的方法,其特征在于,还包括以下步骤检测到检测及跟踪服务器具有包括所述用户中的每一个的场景的视图,所述检测及跟踪服务器创建所述场景中的用户中的每一个用户的骨架模型。
全文摘要
本发明涉及共享信息的识别系统。一种用于在用户之间基于对场景中的用户及其相关联的处理设备的识别来共享信息的系统和方法。交互可以是身体交互、口头交互、或身体和口头姿势的组合。跟踪用户和其他用户的移动并检测他们之间的交互。通过检测捕捉设备的视野内的用户来连接用户处理设备,捕捉设备检测用户的运动跟踪数据,如骨架模型。信息共享可由处理设备直接控制、由中间服务器控制、或由处理设备和中间服务器的组合来控制。
文档编号G06F3/033GK102253712SQ20111015908
公开日2011年11月23日 申请日期2011年6月1日 优先权日2010年6月2日
发明者G·J·布班 申请人:微软公司