限制化身姿势显示的制作方法

文档序号:6360762阅读:173来源:国知局
专利名称:限制化身姿势显示的制作方法
限制化身姿势显示
背景技术
化身可以是表示通常为人类的用户的计算机生成的图像。化身可以描绘用户的如下图像该图像高度地代表该用户的实际外貌或者其可以是与用户具有变化的相似度或完全没有相似度的人物(例如人类、幻想、动物、动画对象)。用户可以通过某些动作控制化身,比如选择遥控设备上的按钮或者以某种方式移动控制器。可替代地,用户可以在身体部位上佩戴传感器以帮助跟踪系统将用户的动作跟踪到化身。在另ー示例中,用户使用她的身体运动来控制屏幕上化身而无需附连到该用户的特殊感测设备。目标识别、分析和跟踪系统使用图像捕捉系统来捕捉在物理空间中的用户的图像数据。基于所捕捉的图像数据,该系统识别并跟踪用户在三维空间中的自然移动。使用该系统,用户的动作可直接控制她在显示上的相关联的化身的动作。換言之,化身实时地模仿用户的动作。用户可能引导他或她的化身在所显示的场景中执行无礼的动作。例如,化身可能被引导执行猥亵或无礼的动作或姿态。

发明内容
提出了一种技术,其用于通过基于表示姿势的运动跟踪数据确定该姿势是否示出被禁姿势来限制化身的姿势显示。如果是,则改动表示该化身的该姿势的图像数据。在ー个实施例中,用户的运动被实时地跟踪到化身的运动,并且因此姿势确定和改动实时地进行。改动可以包括过滤被禁姿势、或者在化身的显示中用图像数据替代被禁姿势。附加地,诸如化身是在本地显示还是被传输以供显示给另ー计算机的标准可以影响该姿势是否被原样地显示还是修改其图像数据。提供本发明内容以便以简化形式介绍将在以下具体实施方式
中进ー步描述的ー些概念。本发明内容并非g在标识所要求保护的主题的关键特征或必要特征,也不g在用于帮助确定所要求保护的主题的范围。在本发明内容和以下具体实施方式
中描述的特征不是包括一切的,并且具体地,对本领域技术人员而言,结合附图、说明书、以及权利要求书,许多附加持征和优点将变得显而易见。


參考附图来进一歩描述根据本说明书的用于限制化身的姿势显示的系统、方法和计算机可读介质,在附图中图IA和IB示出了目标识别、分析和跟踪系统的示例性实施例,其中用户正在玩游戏,其中用于限制化身的被禁姿势的技术实施例可以运行。图2示出用于限制化身的被禁姿势的显示的系统的功能性计算机实现的架构的说明性实施例。图3A示出用于限制化身的被禁姿势的显示的一个或多个实施例可工作的计算环境的示例实施例。
图3B示出用于限制化身的被禁姿势的显示的一个或多个实施例可工作的游戏控制台中的计算环境的更详细示例实施例。图4示出可用于ー个或多个实施例的包括图像捕捉系统的目标识别、分析和跟踪系统的示例实施例。 图5A示出可由一个或多个实施例使用的从正面看的用户的示例性骨架模型。图5B以斜视图示出可由一个或多个实施例使用用户的另一示例性模型。图6A和6B示出了向模型的受カ位置施加力的结果的示例性应用。图6C和6D示出了从图6A和6B的模型中渲染的玩家化身。图7示出了可由一个或多个实施例使用的用户骨架模型的另ー示例。图8A示出了用于在显示上视觉地模糊被禁姿势的过滤技术的示例。图SB示出了应用于示例性骨架模型以替换被禁姿势的替代图像数据的示例。图SC示出了显示图SB的示例中的替代图像数据的经更新的化身。图9A示出了由两个用户的骨架模型数据所示的被禁交互的示例。图9B示出了用由两个用户的骨架模型数据表示的运动数据形式的图像数据替代图9A的被禁交互示例。图10是用于限制化身的姿势显示的方法的实施例的流程图。图11是用于限制化身的姿势显示的方法的另ー实施例的流程图。图12示出了用于改动表示化身的姿势的图像数据的方法。详细描述图IA和IB示出用户与目标识别、分析和跟踪系统50的示例实施例的交互,该系统50在人类没有附连特殊感测设备的情况下来在他们的自然环境中识别这些对象,在三维空间中唯一地标识他们并跟踪他们。这样的说明性上下文呈现了一种示例性上下文,其中用于限制被禁姿势的化身显示的技术是特别有益的。然而,本发明的技术可以适用于其他化身控制机制,如其中用户佩戴传感器的基于传感器的系统或基于设备的化身控制系统,这些设备的一些示例是键盘、鼠标、跟踪球、游戏垫、或操纵杆。根据该示例实施例,目标可以是人类目标(例如,用户58)、人类目标与一物体、两个或更多人类目标等,这些目标可被扫描来生成诸如骨架模型、网格人类模型、或其任何其他合适的表示等模型。可以跟踪该模型,以使得目标的物理移动或运动可以担当调整和/或控制诸如电子游戏等应用的參数的实时用户界面。此外,该模型可作为模型呈现给应用并实时地传递给它们。例如,所跟踪的用户的运动可用于移动电子角色扮演游戏中的屏幕上的人物或化身。在其中模型是多点骨架模型的一个示例中,目标识别、分析、及跟踪系统50通过理解人类的肌肉-骨架系统的自然力学和能力来高效地跟踪人类及其自然移动。示例系统50还唯一地识别个人以允许多人经由其肢体的自然移动来与该系统交互。具体而言,图IA和IB示出目标识别、分析和跟踪系统50的配置的示例实施例,其中用户58正在玩拳击游戏。如下所述,在计算机系统52上执行的对可通信地耦合的相机系统60和视听显示単元56的其他计算机系统上的软件进行控制或进行交互的软件跟踪用户58的移动、分析它们、并将这些移动映射到用户的化身。因此,在该示例中,用户58可以移动他的身体来控制他在显示屏54上的化身64,以在拳击游戏中对抗他的对手化身62。
姿势包括运动或姿态。姿势可以由化身或由用户执行。用户可通过移动他的身体创建姿势。例如,可在图像数据中捕捉用户。可以对用户的所标识的姿势分析意义来用作对要执行的应用或动作的控制。例如,用户18在图IA和IB的拳击游戏中挥出ー记刺拳。游戏应用在拳击比赛中表示它,确定它是否接触了化身62,并且如果接触则增加用户的分数。姿势也可以是作为有意义的表情的运动或姿态。例如,它可以表达情绪或想法或意图。例如,仅仅伸出中指的手可能表达愤怒或轻蔑。诸如纳粹礼之类的姿势可能指示基于种族或文化的贬损含义。姿势可以是静态姿态,如在ー个人的躯干前面交叉握住他的前臂,或者它可以是ー个或多个移动。此外,姿势可包括ー个以上身体部位,如双手鼓掌。例如,目标识别、分析、及跟踪系统50可被用来识别并分析用户58在捕捉区域(例如,他的起居室中处于图像捕捉系统60的视野中的部分)中的挥拳以使得这ー挥拳可被解释成姿势,在这种情况下该姿势是他的玩家化身64在游戏空间中执行的挥拳的游戏控制。用户58的其他姿势也可被解释为其他控制命令或动作,诸如上下快速摆动、闪避、滑步、格挡、刺拳或挥动各种不同力度的重拳等控制。通过跟踪用户58的挥拳和刺拳,拳击游戏软件应用确定他的化身64分数以及哪个化身(62或640)将赢得比赛。不同的应用将识别和跟踪不同的姿势。例如,用户在棒球游戏中的投掷(pitch)被跟踪以便确定其是好球(strike)还是坏球(ball)。表示猥亵或无礼姿势的不同运动或姿态也可以被识别,并且响应于此执行处理。在其他示例实施例中,诸如用户58等的人类目标可具有一物体。姿势还可包括道具。在这些实施例中,电子游戏的用户可在參与游戏的同时手持并使用物体。物体的运动被跟踪并映射到屏幕上,使得化身被描绘为具有表示用户正在操纵的物体的虚拟对象。在示例性实施例中,当物理对象被用户移动时,虚拟对象跟踪物理对象的运动。例如,可以跟踪并利用用户手持球拍的运动来控制电子运动游戏中的屏幕上球拍来击球。在另ー示例实施例中,可以跟踪并利用用户手持物体的运动来控制电子格斗游戏中的屏幕上武器。也可以包括其他物体,其一些示例为ー个或多个手套、球、球棒、球杆、吉它、话筒、杆、宠物、动物、鼓等等。拳击游戏上下文表示一种实时计算环境,其中用户可能作出不适当的行为,并且该行为被实时地反映在他的计算机生成的化身的动作中。此外,化身的动作可以在在线环境中传输给一个或多个用户。在线传输可以是对可访问用于參与的技术的任何人都开放的广播传输。这可以包括各种年龄和敏感度的人。图2示出用于限制化身的被禁姿势的显示的系统200的功能性计算机实现的体系结构的说明性实施例。这样的体系结构系统可被实现成可由在一个或多个处理器和/或计算机硬件上执行的软件来操作的ー个或多个处理模块、或者实现成硬件或固件。化身控制系统202包括运动模块204,该运动模块204可通信地耦合到化身显示控制模块209、视听数据捕捉系统60和因特网203。运动模块204还具有对存储器(例如112、314)中所存储的诸如化身简档214之类的数据存储的访问。在该实施例中,化身简档214包括用于实时显示ー个或多个化身的数据和信息。该数据和信息的一些示例包括每个化身的模型数据216,该模型数据216被用作供运动模块204进行运动跟踪的參考。模型数据216可以是用于显示化身的图像数据219的子集。图像数据219被发送以由化身显示控制模块207显示为场景的一部分。化身的图像数据219表示该化身的运动或姿态。在一个示例中,表示运动或姿态的图像数据219可以是该化身的运动跟踪数据。在一个示例中,这样的运动跟踪数据可以存储在运动捕捉文件中,该运动捕捉文件由运动模块204随着时间在新运动跟踪数据205被接收到时更新。图像数据219的其他示例可以是针对化身的特征的彩色图像数据,比如毛发、面部特征、肤色、着装、化身在场景中的位置以及与其相关联的任何道具。如下所述,在一个实施例中,执行被禁姿势210的化身可以在本地显示上被显示为执行该姿势,但是该化身的被传输给另ー计算机或网络的图像数据被修改以避免示出被禁姿势。在这样的情况下,至少针对包括被禁姿势的部分生成图像数据的单独版本,一个为本地2191并且ー个用于传输219i。简档214中所存储的其他信息可以包括典型的使用或玩游戏模式、年龄、身高、体重信息、姓名、高分或任何其他与用户和系统使用相关联的信息。运动跟踪数据可以被存储以用于会话。例如,游戏中的用户可以保存进行中的游戏,使得他可以在以后返回到该游戏。模型数据216包括化身的模型,该模型例如可以是骨架模型。在使用诸如跟踪球、键盘或操纵杆之类的化身控制设备的应用上下文中,可能不存在针对用户的单独模型数据。运动模块204參照化身的直接模型数据216a来处理输入命令,包括验证未作出被禁姿势的处理。附加地,通过网络接收的模型数据可以是相对于化身的模型216a的。下面所述的运动模块204可以在其处理来自图像捕捉系统60的用户模型数据216u时处理化身的模型数据,包括被禁姿势处理,其中所述图像捕捉系统60在该示例中是ー并发送用户的音频数据217和运动跟踪数据2051的视听捕捉系统60。如图IA和IB中所示,一些系统在没有针对用户的特殊感测设备的情况下跟踪该用户身体的自然移动以用于控制化身。在另ー实施例中,用户可以在不同身体部位上佩戴传感器并且传感器数据帮助将用户的运动跟踪到他屏幕上化身。这两个示例允许用户的自然移动被直接跟踪到相应的化身。ー些系统可以提供针对某些身体部位或区域(例如手和臂)的可由化身执行的仅仅某个数目的运动或姿势的组合,同时允许直接跟踪其他身体部位或区域,例如腿。在用户的身体移动被映射到化身的移动(例如基于用户的图像捕捉或用户身上的传感器)的系统中,可能存在表示用户216u的模型数据以及表示化身216a的模型数据。当化身的体格大不相同时,运动模块204执行两个模型之间的映射。例如,男孩用户18较矮并且很可能不具有他的化身拳击者64的手臂范围。換言之,如果曾使用了骨架模型,则它们可以对用户和化身为相同的。然而,在一些实施例中,该应用将相同的模型数据216用于分析用户的身体移动以及引导相应化身的运动。在一个示例中,身体模型可被实现成表示身体部位及其相对于參考点的在各维度的位置和/或旋转角度的一个或多个数据结构。模型数据216可按照绝对位置来更新或使用位置和旋转的变化来更新。位置和旋转的变化可被表不成向量和角度。场景数据218提供场景上下文并且定义该场景中的其他对象。例如,场景数据218提供图IA和IB中的拳击比赛的上下文环境、以及包括拳击赛台的绳索在内的对象的位置、以及对手拳击者化身62的存在。该场景中的另ー拳击者62的最新的移动、特征和身体部位也可以存储为化身简档数据存储214中的另ー简档。对场景数据218的更新可以由诸如化身显示控制模块209或运动模块204之类的ー个或多个模块通过因特网203或其他网络从远程模块或本地场景控制模块(比如场景显示处理模块207)来接收。在所示示例实施例中,化身控制系统202从视听数据捕捉系统60本地地接收运动跟踪数据205。附加地,化身控制系统202可以通过因特网203或其他网络远程地接收运动跟踪数据205i。对于用户,运动跟踪数据可包括图像数据本身或该数据的降采样版本。附加地,深度数据和从图像和/或深度数据中导出的各种形式的数据可被包括在运动跟踪数据中,该数据的一些示例是针对用户的身体的模型、引用该模型的数学图元中的运动数据、或者从用户中导出的用于与该模型的之前状态相比较的位掩码图。化身控制系统202分析该数据以识别用户的运动并将该运动跟踪到用户的屏幕上化身。运动跟踪数据205i可以是本地接收2051的相同类型。附加地,尤其是在多玩家环境中通过网络接收的运动跟踪数据205i可以是相对于化身的模型数据216a的运动跟踪数据。此外,运动跟踪数据2051和205i可以包括由诸如键盘、鼠标、跟踪球、游戏垫等之类的输入/输出设备所指示的运动的命令。如上所述,一些运动和姿态、姿势在娱乐程序或其他应用的上下文中具有特殊含义,并且化身控制系统202执行指令以标识出它们。具体而言,运动模块204具有对存储器中所存储的姿势过滤器206的访问。在一个示例中,运动模块204可以基于相关联的数据索引(如身体部位索引)来选择ー个或多个姿势过滤器206。例如,在化身控制系统202接收到运动跟踪数据集更新并且特定身体部位的运动变化被指示时,运动模块204对与这些特定身体部位相关联的姿势过滤器206进行索引。姿势过滤器206基于參数数据来执行指令,这些參数数据定义用于基于运动跟踪数据205确定特定姿势是否已被执行的准则。在一个实施例中,每ー姿势过滤器206与姿势库208中的特定姿势的库模块相链接。与姿势相关联的每一库模块208包括用于响应于姿势来执行处理的可执行指令。这ー处理通常涉及更新化身的运动或图像来以某种形式反映该姿势。例如,图IA中的男孩用户58具有比他的化身64拳击者小得多的体格。利用化身玩游戏的一部分乐趣在于,化身常常比现实生活中的用户做事做得更好。图IA中的男孩58在他的起居室中的挥拳翻译成他的化身64在显示屏54上的更有力的挥拳。拳击游戏中的“挥拳”的库模块可以从用户由他的肘伸出的拳的速度的加速度中确定这是该游戏中的该用户58的“重拳”,并且他的化身64的挥拳由于库挥拳模块的指令而在显示上反映这一点。所述指令也可以包括诸如例如更新分数之类的其他应用任务。被禁姿势的库模块210的可执行指令可以包括在随后的显示更新中改动或改变化身的图像数据以避免示出被禁姿势。淫秽或无礼姿势的运动或姿态的替代212可以被并入被禁姿势的库模块210中。在另ー示例中,用图像数据替代被禁姿势的处理可以分离到链接到相应被禁姿势库模块的替代库模块212中。例如,可能存在将被禁姿势库中的一个或多个模块与同该被禁姿势相关联的替代图像数据的ー个或多个模块链接的关联数组或数据库交叉引用。所述替代可以基于诸如共同身体部位之类的身体特性被链接到被禁姿势。然而,替代也可以基于诸如相似含义、相似情緒或相似情绪强度之类的标准来链接。然而,一般而言,替代图像在強度上更温和。在一个实施例中,用图像数据替代姿势是通过用该化身的不同运动数据替换该姿势的运动数据来完成的。
8
而且,该系统可以包括如下特征其中用户可以训练该系统以识别其他被禁姿势并选择或提供替代。这对父母得知新的无礼姿势而言可能是有益的。应用还可以允许用户将符号与他或她的化身相关联(有时被称为“战利品(trophy),,)。该符号可以包括如下的运动或姿态、姿势所述运动或姿态、姿势由用户通过对图像捕捉系统(例如60)执行所述运动或姿态、姿势来分配,所述运动或姿态、姿势然后被计算环境(例如300或52)中执行的应用处理。针对战利品的姿势也可以被检查以获悉它们是否被禁止。化身显示控制模块209周期性地或响应于来自运动模块204的消息而读取对化身简档214的更新并且将表示该化身的运动或姿态的图像数据219发送给场景显示处理模块207,该场景显示处理模块207在该示例中在准备在显示系统(例如56)上显示场景时将化身图像数据219与场景数据合井。在一个示例中,表示运动或姿态的图像数据可以是该化身的运动跟踪数据。图像数据的其他示例可以是化身的特征(比如毛发、面部特征和着装)的彩色图像数据。图像数据2191可被本地地发送。可替代地,如果表示化身的运动或姿态的图像数据219i要通过因特网203或另ー网络被传输,则运动模块204可以通知化身显示控制模块209将图像数据219i发送给合适的端ロ以用于网络传输。对化身的显示的用户运动的跟踪优选地实时进行,使得用户可实时地与执行应用交互。实时显示指的是姿势的视觉表示的显示,其中该显示与姿势在物理空间中的执行同时或几乎同时显示。例如,系统可以提供对用户进行回应的显示画面的显示画面更新速率可以是20Hz的速率或更高,其中无关紧要的处理延迟造成最小的显示延迟或对用户而言根本不可见。由此,实时包括与被自动数据处理所需的时间延迟了的数据的及时性有关的任何无关紧要的延迟。图像捕捉系统60识别捕捉区域中的人类和非人类目标(在具有或没有特殊感测设备附连到主体的情况下),在三维空间中唯一地标识这些目标并跟踪它们。根据ー示例实施例,图像捕捉系统60可被配置成经由任何合适的技术,包括例如飞行时间、结构化光、立体图像等来捕捉包括深度图像的带有深度信息的视频,该深度信息可包括深度值。如图2所示,根据ー示例性实施例,图像相机组件70可以包括可用于捕捉捕捉区域的深度图像的IR光组件72、三维(3-D)相机74、和RGB相机76。例如,在飞行时间分析中,捕捉系统60的IR光组件72可以将红外光发射到捕捉区域上,然后可以使用传感器,用例如3-D相机74和/或RGB相机76来检测从捕捉区域中的一个或多个目标和物体的表面反向散射的光。在某些实施例中,可以使用脉冲式红外光从而可以测量出射光脉冲和相应的入射光脉冲之间的时间差并将其用于确定从捕捉系统60到捕捉区域中的目标或物体上的特定位置的物理距离。附加地,在其他示例性实施例中,可以将出射光波的相位与入射光波的相位相比较来确定相移。然后可以使用该相移来确定从捕捉系统到目标或物体上的特定位置的物理距离。根据另ー示例性实施例,可以使用飞行时间分析来通过经由包括例如快门式光脉冲成像在内的各种技术分析反射光束随时间的強度来间接地确定从捕捉系统60到目标或物体上的特定位置的物理距离。在另ー示例性实施例中,捕捉系统60可以使用结构化光来捕捉深度信息。在该分析中,图案化光(即,被显示为诸如网格图案或条纹图案等已知图案的光)可经由例如IR光组件72被投影到捕捉区域上。在撞击到捕捉区域中的一个或多个目标或对象的表面时,作为响应,图案可变形。图案的这种变形可由例如3-D相机74和/或RGB相机76来捕捉,然后可被分析来确定从捕捉系统到目标或物体上的特定位置的物理距离。根据另ー个实施例,捕捉设备60可包括可以从不同的角度观察捕捉区域的两个或更多在物理上分离的相机,以获取可以被解析以生成深度信息的视觉立体数据。作为这些元件所提供的协作的示例,考虑IR光组件72和3-D相机74可提供捕捉区域的深度图像,但是在某些情形中,単独的深度图像可能不足以辨别人类目标的位置或移动。在这些情形中,RGB相机76可“接管”或补充来自3-D相机的信息以便能够对人类目标的移动或位置作出更完整的识别。例如,RGB相机可用于识别与一个或多个目标相关联的色彩等等。如果用户正穿着有图案的衬衫而深度相机不能检测该图案,则可使用RGB相机来跟踪该图案并提供关于用户正在作出的移动的信息。作为另ー示例,如果用户扭曲,则可使用RGB照相机来补充来自ー个或多个其他传感器的信息来确定用户的运动。作为又ー个示例,如果用户在诸如墙或第二目标等另ー对象旁边,则可使用RGB数据来在两个对象之间进行区分。RGB相机还能够确定用户的精细特征,如面部识别、发色等,这可用于提供附加信息。例如,如果用户向后转,则RGB相机可使用发色和/或面部特征的缺乏来确定用户没有面对捕捉系统。捕捉设备60可以交互式速率来捕捉数据,从而提高了数据的保真度,并允许所公开的技术处理原始深度数据,数字化场景中的对象,提取对象的表面和纹理,以及实时地执行这些技术中的任ー种,以使得显示画面(例如56)可以在其显示屏幕(例如54)上提供该场景的实时描绘。在图2的系统实施例中,图像捕捉系统60可通信地耦合84到诸如图3A — 3B中的计算机系统示例之类的计算环境。通信耦合可以ー种或多种有线或无线连接来实现,例如USB连接、火线连接、以太网电缆连接等,或诸如无线802. Ilb,802. Hg,802. Ila或802. Iln
连接等无线连接。捕捉系统60还包括用于存储可由处理器80执行的指令以及可以帧格式被捕捉图像数据的存储器组件82。存储器组件82可包括随机存取存储器(RAM)、只读存储器(ROM)、高速缓存、闪存、硬盘、或任何其他合适的存储组件。在一个实施例中,如所示,存储器组件82可以是与图像捕捉组件70和处理器80进行通信90的単独的组件。根据另ー实施例,存储器组件82可被集成到处理器80和/或图像捕捉组件70中。捕捉系统60还包括通信上耦合90到图像相机组件70的处理器80,用以控制图像相机组件和用于存储图像数据的存储器82。处理器80可包括可执行指令的标准处理器、专用处理器、微处理器等,这些指令可包括用于存储简档的指令、用于接收深度图像数据的指令、用于以指定的格式将数据存储在存储器82中的指令、用于确定合适的目标是否可被包括在深度图像中的指令、用于将合适的目标转换成该目标的骨架表示或其他类型的模型的指令、或任何其他合适的指令。此外,该处理中的某ー些可由ー个或多个通信上耦合的计算环境中的其他处理器(例如101、108、259、229、304、372)来执行。图像捕捉系统60中包含处理能力使得用户的诸如多点骨架模型之类的模型能够被实时地递送。在一个实施例中,对捕捉系统的多个组件中的每ー个可以有ー单独的处理器,或者可以有单个中央处理器。作为另ー示例,可以有中央处理器以及至少ー个其他相关联的处理器。如果有高成本计算任务,则两个或更多处理器可按任何方式来共享处理任务。处理器可包括如上所述的存储器且存储器可存储ー个或多个用户简档。这些简档可存储身体扫描、典型的使用或玩游戏模式、年龄、身高、体重信息、姓名、化身、高分或任何其他与用户和系统使用相关联的信息。捕捉系统60还可包括接收由用户产生的音频信号的话筒78。从而,在该实施例中,图像捕捉系统60是视听数据捕捉系统。捕捉系统中的话筒可被用于提供关于目标的附加和补充信息以使系统能够更好地辨别目标的位置或移动的各方面。例如,话筒可包括方向性话筒或方向性话筒阵列,其可用于进ー步辨别人类目标的位置或在两个目标之间进行区分。例如,如果两个用户是相似形状或大小并且在捕捉区域中,则可使用话筒来提供关于用户的信息,使得用户可以例如基于其单独语音的识别来彼此区分。作为另ー示例,话筒可用于向用提供关于用户的简档,或在“语音一文本”型环境中,至少ー个话筒可用于在计算系统中创建文本。图像的具有深度值的像素数据被称为深度图像。根据ー个实施例,深度图像可包括所捕捉的场景的ニ维(2-D)像素区域,其中该2-D像素区域中的每ー像素可具有相关联的深度值,如按照以厘米、毫米等为单位的、所捕捉的场景中的物体距某ー參考点(如相对于相机组件70的某一方面)的长度或距离。例如,像素的深度值可以在“Z层”中表示,这些层是与从深度相机70沿其视线延伸的Z轴正交的层。这些深度值可被统称为深度图。可以将深度图像降采样到较低的处理分辨率,使得该深度图像可以更容易地用较少的计算开销来使用和/或更快地处理。例如,所观测到的深度图像的各个区域可以被分离成背景区域和目标的图像所占据的区域。背景区域可从图像中被移除或被标识以使其可在ー个或多个后续处理步骤期间被忽略。另外,可以从深度图像移除和/或平滑掉ー个或多个高变度和/或有噪声的深度值。可以填充和/或重构遗漏的和/或被移除的深度信息的某些部分。此类回填可通过对最近邻居求平均、过滤和/或任何其他合适的方法来实现。其他合适的处理可以被执行,使得可以将该深度信息用于生成诸如骨架模型之类的模型。图3A示出可在类似于图IA — 2中的游戏控制台中使用的计算环境的实施例的详细示例,其中用于限制化身的被禁姿势的显示的一个或多个实施例可工作。如图3A所示,多媒体控制台52具有含有ー级高速缓存102、ニ级高速缓存104和闪存ROM (只读存储器)106的中央处理单元(CPU) 101。ー级高速缓存102和ニ级高速缓存104临时存储数据,并且因此減少存储器访问周期的数量,由此改进处理速度和呑吐量。CPU 101可被提供为具有ー个以上的核,并且由此具有附加的ー级高速缓存102和ニ级高速缓存104。闪存ROM 106可存储在多媒体控制台52通电时引导过程的初始阶段期间加载的可执行代码。图形处理单元(GPU) 108和视频编码器/视频编解码器(编码器/解码器)114形成用于高速和高分辨率图形处理的视频处理流水线。经由总线从图形处理单元108向视频编码器/视频编解码器114运送数据。视频处理流水线向A/V (音频/视频)端ロ 140输出数据,用于传输至电视或其他显示器。存储器控制器110连接到GPU 108以方便处理器访问各种类型的存储器112,诸如但不局限于RAM (随机存取存储器)。多媒体控制台52包括优选地在模块110上实现的I/O控制器120、系统管理控制器122、音频处理单元123、网络接ロ控制器124、第一 USB主控制器126、第二 USB控制器
11128和前面板I/O子部件130。USB控制器126和128用作外围控制器142 (I)-142 (2)、无线适配器148、以及外置存储器设备146 (例如,闪存、外置⑶/DVD ROM驱动器、可移动介质等)的主机。网络接ロ 124和/或无线适配器148提供对网络(例如,因特网、家庭网络等)的访问,并且可以是包括以太网卡、调制解调器、蓝牙模块、电缆调制解调器等的各种不同的有线或无线适配器组件中的任何ー种。提供系统存储器143来存储在引导过程期间加载的应用数据。提供媒体驱动器144,且其可包括DVD/⑶驱动器、硬盘驱动器、或其他可移动媒体驱动器等。媒体驱动器144可以是对多媒体控制器100内置的或外置的。应用数据可经由媒体驱动器144访问,以供多媒体控制台52执行、回放等。媒体驱动器144经由诸如串行ATA总线或其他高速连接(例如IEEE 1394)等总线连接到I/O控制器120。在一个实施例中,用于化身控制系统202的软件和数据的副本可存储在介质驱动器144上,并可在执行时被加载到系统存储器143中。系统管理控制器122提供与确保多媒体控制台52的可用性相关的各种服务功能。音频处理単元123和音频编解码器132形成具有高保真度和立体声处理的相应音频处理流水线。音频数据经由通信链路在音频处理単元123与音频编解码器132之间传输。音频处理流水线将数据输出到A/V端ロ 140,以供外置音频播放器或具有音频能力的设备再现。前面板I/O子部件130支持暴露在多媒体控制台52的外表面上的电源按钮150和弹出按钮152、以及任何LED (发光二极管)或其他指示器的功能。系统供电模块136向多媒体控制台52的组件供电。风扇138冷却多媒体控制台52内的电路。多媒体控制台101内的CPU 100、GPU 108、存储器控制器110、以及各种其他组件经由一条或多条总线互连,该总线包括串行和并行总线、存储器总线、外围总线、以及使用各种总线体系结构中的任一种的处理器或局部总线。作为示例,这些架构可以包括外围部件互连(PCI)总线、PCI-Express总线等。当多媒体控制台52通电时,应用数据可从系统存储器143加载到存储器112和/或高速缓存102、104中,并且可在CPU 101上执行。应用可在导航到多媒体控制台100上可用的不同媒体类型时呈现提供一致的用户体验的图形用户界面。在操作中,媒体驱动器144中所包含的应用和/或其他媒体可从媒体驱动器144启动或播放,以将附加功能提供给多媒体控制台52。多媒体控制台52可通过简单地将该系统连接到电视机或其他显示器而作为独立系统来操作。在该独立模式中,多媒体控制台52允许ー个或多个用户与该系统交互、看电影、或听音乐。然而,在通过网络接ロ 124或无线适配器148可用的宽带连接集成的情况下,多媒体控制台52还可作为更大网络社区中的參与者来操作。当多媒体控制台52通电时,可以保留设定量的硬件资源以供多媒体控制台操作系统作系统使用。这些资源可包括存储器的保留量(诸如,16MB)、CPU和GPU周期的保留量(诸如,5%)、网络带宽的保留量(诸如,8kbs),等等。因为这些资源是在系统引导时间保留的,所保留的资源从应用的视角而言是不存在的。具体而言,存储器保留量优选地足够大,以包含启动内核、并发系统应用程序和驱动程序。CPU保留量优选地为恒定,使得若所保留的CPU用量不被系统应用使用,则空闲线程将消耗任何未使用的周期。
对于GPU保留量,通过使用GPU中断来调度代码以将弹出窗ロ渲染为覆盖图,从而显示由系统应用生成的轻量消息(例如,弹出窗ロ)。覆盖图所需的存储器量取决于覆盖区域大小,并且覆盖图优选地与屏幕分辨率成比例缩放。在并发系统应用使用完整用户界面的情况下,优选使用独立于应用分辨率的分辨率。定标器可用于设置该分辨率,从而无需改变频率和引起TV重新同歩。在多媒体控制台52引导且系统资源被保留之后,执行并发系统应用来提供系统功能。系统功能被封装在上述所保留的系统资源内执行的ー组系统应用中。操作系统内核标识出作为系统应用线程而非游戏应用线程的线程。系统应用优选地被调度为在预定时间并以预定时间间隔在CPU 101上运行,以便提供对应用而言一致的系统资源视图。调度是为了使在控制台上运行的游戏应用的高速缓存中断最小化。当并发系统应用需要音频时,由于时间敏感性而将音频处理异步地调度给游戏应用。多媒体控制台应用管理器(如下所描述的)在系统应用活动时控制游戏应用的音频级别(例如,静音、衰减)。输入设备(例如,控制器142(1)和142(2))由游戏应用和系统应用共享。输入设备不是保留资源,而是在系统应用和游戏应用之间切换以使其各自具有设备的焦点。应用管理器较佳地控制输入流的切換,而无需知晓游戏应用的知识,并且驱动程序维护有关焦点切换的状态信息。图像捕捉系统60可为控制台52 (例如,为其相机系统)定义附加输入设备。图3B示出了诸如个人计算机之类的计算环境的另ー示例性实施例。參考图3B,用于实现本技术的示例性系统包括计算机310形式的通用计算设备。计算机310的组件可以包括,但不仅限干,处理单元320、系统存储器330,以及将包括系统存储器的各个系统组件耦合到处理单元320的系统总线321。系统总线321可以是若干类型的总线结构中的任何ー种,包括使用各种总线体系结构中的任何一种的存储器总线或存储器控制器、外围总线,以及局部总线。作为示例而非限制,这样的体系结构包括エ业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA (EISA)总线、视频电子标准协会(VESA)局部总线,以及也称为夹层(Mezzanine)总线的外围部件互连(PCI)总线。计算机310通常包括各种计算机可读介质。计算机可读介质可以是能由计算机310访问的任何可用介质,而且包含易失性和非易失性介质、可移动和不可移动介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限干,RAM、ROM、EEPR0M、闪存或其他存储器技术,CD-ROM、数字多功能盘(DVD)或其他光盘存储设备,磁带盒、磁带、磁盘存储设备或其他磁存储设备,或者能用于存储所需信息且可以由计算机310访问的任何其他介质。通信介质通常以诸如载波或其他传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并包括任意信息传送介质。术语“已调制数据信号”是指具有以在信号中编码信息的方式被设定或改变其ー个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质、以及诸如声学、RF、红外及其他无线介质之类的无线介质。上述中任ー组合也应包括在计算机可读介质的范围之内。
系统存储器330包括以诸如只读存储器(ROM) 331和随机存取存储器(RAM) 332之类的易失性和/或非易失性存储器的形式存在的计算机存储介质。基本输入/输出系统333 (BIOS)通常存储在ROM 331中,其包含诸如在启动过程中帮助在计算机310内的元件之间传输信息的基本例程。RAM 332通常包含可以立即被处理单元320访问的和/或目前正在由处理单元120进行操作的数据和/或程序模块。作为示例而非限制,图3示出了操作系统334、应用程序335、其它程序模块336和程序数据337。计算机310也可以包括其他可移动的/不可移动的,易失性/非易失性的计算机存储介质。仅作为示例,图3B示出了对不可移动、非易失性磁介质进行读写的硬盘驱动器340,对可移动、非易失性磁盘352进行读写的磁盘驱动器351,以及对诸如⑶ROM或其它光学介质等可移动、非易失性光盘356进行读写的光盘驱动器355。可在示例性操作环境中使用的其他可移动/不可移动、易失性/非易失性计算机存储介质包括但不限干,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器341通常由诸如接ロ340等不可移动存储器接ロ连接至系统总线321,并且磁盘驱动器351和光盘驱动器355通常由诸如接ロ 350等可移动存储器接ロ连接至系统总线321。以上讨论并在图3B中示出的驱动器及其相关联的计算机存储介质为计算机310提供了对计算机可读指令、数据结构、程序模块和其他数据的存储。在图3B中,例如,硬盘驱动器341被示为存储操作系统344、应用程序345、其他程序模块346和程序数据347。请注意,这些组件可以与操作系统334、应用程序335、其他程序模块336,以及程序数据337相同,也可以不同。操作系统344、应用程序345、其他程序模块346,以及程序数据347被给予不同的编号,以至少说明它们是不同的副本。用户可以通过诸如键盘362和定点设备361(通常被称为鼠标、轨迹球或触摸板)之类的输入设备将命令和信息输入计算机20。其他输入设备(未示出)可以包括话筒、游戏杆、游戏手柄、碟形卫星天线、扫描仪等等。这些及其他输入设备常常通过耦合到系统总线的用户输入接ロ 360连接到处理单元320,但是,也可以通过其他接口和总线结构(如并行端ロ、游戏端ロ、通用串行总线(USB)端ロ)来进行连接。监视器391或其他类型的显示设备也可以通过诸如视频接ロ 390之类的接ロ而连接到系统总线321。除监视器之外,计算机还可以包括可以通过输出外围接ロ 396连接的诸如扬声器397和打印机390之类的其他外围输出设备。计算机310可以使用到一个或多个远程计算机(如远程计算机380)的逻辑连接在联网环境中操作。远程计算机380可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见网络节点,且通常包括上文相对于计算机310描述的许多或所有元件,但在图3中只示出存储器存储设备381。图3中所示的逻辑连接包括局域网(LAN)371和广域网(WAN)373,但也可以包括其它网络。这样的联网环境在办公室、企业范围的计算机网络、内部网和因特网中是普遍现象。当用于LAN联网环境中吋,计算机310通过网络接ロ或适配器371连接到LAN370。当用于WAN联网环境中时,计算机310通常包括调制解调器372或用于通过WAN 373(如因特网)建立通信的其他装置。调制解调器372 (可以是内置的或外置的河以经由用户输入接ロ 360或其他适当的机制连接到系统总线321。在联网环境中,參考计算机310描绘的程序模块,或其某些部分可以被存储在远程存储器存储设备中。作为示例而非限制,图3示出了远程应用程序385驻留在存储器设备381上。可以理解,所示出的网络连接只是示
14例性的,也可以使用用于在计算机之间建立通信链路的其他装置。图4示出用于限制化身的被禁姿势的显示的一个或多个实施例可工作的联网计算环境的示例实施例。如图4所示,如图3A和3B中所示的那些等多个控制台400A-400X或处理设备可耦合到网络402,并可经网络402与具有一个或多个服务器406的网络游戏服务404通信。服务器406可包括能够从控制台400A-X接收信息并将信息发送给控制台400A-X的通信组件,并且可提供运行在控制台400A-X上的应用可调用和利用的服务的集

口 ο 控制台400A-X可调用用户登录服务408,该用户登录服务用于在控制台400A-X上认证和标识用户。在登录期间,登录服务408获得来自用户的游戏玩家标签(与该用户相关联的唯一标识符)和口令,以及唯一地标识用户正在使用的控制台的控制台标识符和到该控制台的网络路径。游戏玩家标签和口令通过将它们与全局用户简档数据库416相比较来被认证,该全局用户简档数据库可位于与用户登录服务408相同的服务器上,或可以分布在不同的服务器上或不同的服务器集合上。一旦被认证,用户登录服务408就将控制台标识符和网络路径存储在全局用户简档数据库416中,使得可将消息和信息发送给控制台。在一实施例中,控制台400A-X可包括游戏服务410、共享服务412、被禁姿势检测器、用户共享数据428以及替代数据库418。游戏服务可允许用户玩在线交互式游戏,为在控制台之间的联合玩游戏创建和共享游戏环境,以及提供诸如在线市场、跨各种游戏的集中成就跟踪以及其他共享的体验功能之类的其他服务。共享服务412允许用户与其他用户共享玩游戏元素。例如,控制台400X上的用户可创建在游戏中使用的元素,并向其他用户共享或售卖它们。此外,用户可记录玩游戏体验的元素,例如竞赛的影片或游戏中的各种场景,并与其他用户共享它们。用户为了共享或售卖而提供的信息可被存储在用户共享数据428 中。全局用户简档数据库416可包括关于控制台400A-X上的全部用户的信息,如用户的账户信息以及唯一地标识每个用户正在使用的特定控制台的控制台标识符。全局用户简档数据库416还可包括与控制台400A-X上的所有用户相关联的用户偏好信息。全局用户简档数据库416还可包括关于诸如与用户相关联的游戏记录和朋友列表之类的信息。被禁姿势检测器可以配备在游戏服务404中。被禁姿势检测器可以检测玩游戏元素中的被上传到服务器并存储在用户共享数据428中的被禁姿势和移动。替代姿势数据库可以包括替代姿势以供用于替换上传到数据库428中的用户共享数据的被禁姿势。根据如图4中提供的游戏系统,可提供任何数量的联网处理设备。如此,这里提出的技术可结合游戏服务404在一个或多个服务器406上操作,或可在联网环境中的诸如设备400A-400X之类的个体处理设备中提供。目标确定目标识别、分析、及跟踪系统50可确定深度图像是否包括人类目标。在一个实施例中,可确定深度图像的所捕捉的场景中的诸如人类目标和非人类目标等每一目标的边。如上所述,深度值中的每个都能以例如厘米、毫米等为单位来表示诸如所捕捉的场景中的物体距相机70的长度和距离等深度值。根据一示例实施例,边可以通过将与例如深度图像中的相邻或邻近的像素相关联的各种深度值进行比较来确定。如果正被比较的各种深度值大于预定边容差,则这些像素可定义一条边。在一实施例中,预定边容差可以是例如100毫米。如果表示1000毫米的深度值的像素可与表示1200毫米的深度值的相邻像素进行比较,则这些像素可定义目标的一条边,因为像素之间的长度或距离之差大于IOOmm的预定边容差。根据另一实施例,深度图像上的预定点或区域可被进行泛色填充(floodfill)来判定该深度图像是否包括人类目标。例如,可以如上文所描述的那样将深度图像的选定区域或点中的像素的各种深度值进行比较,以确定可以定义目标或对象的边缘。在一示例实施例中,预定点或区域可均匀地分布在深度图像上。例如,预定点或区域可包括深度图像中心的点或区域、深度图像的左侧边与中心之间的两个点或区域、深度图像的右侧边与中心之间的两个点或区域,等等。可基于所确定的边来对Z层的Z值进行泛色填充。例如,与所确定的边相关联的像素以及该所确定的边内的区域的像素可互相关联来定义可与模式进行比较的捕捉区域中的目标或对象。
根据一示例实施例,经泛色填充的目标(人类和非人类)中的每一个可与一模式进行匹配来确定捕捉区域中的目标是否包括和/或哪一目标包括人类。该图案可包括例如与各种位置或姿态(诸如手臂在两侧的典型站立姿态)中的人类相关联的预定身体模型的机器表不。标识和表示数据中的身体部位在一示例实施例中,人类目标可以被隔离,并且可以创建人类目标的位掩码来扫描一个或多个身体部位。例如,当在深度图像中找到有效的人类目标后,该深度图像中与该人类目标不匹配的背景或区域可被移除。然后可为人类目标生成位掩码,该位掩码可包括该人类目标沿着例如X、Y和Z轴的值。根据一示例实施例,可从例如头部开始来对人类目标的位掩码扫描各个身体部位,以生成该人类目标的模型。位掩码的顶部可以与头的顶部的位置相关联。在确定了头的顶部之后,可以向下扫描该位掩码来随后确定颈的位置、肩的位置等等。深度图或深度图像数据可被更新以包括一像素与模型中的特定虚拟身体部位相关联的概率。根据一个实施例,在确定身体部位的值后,可以创建可包括诸如与人类目标的位掩码相关联的身体部位的长度、宽度等的度量值的数据结构。在一个实施例中,用于身体部位的数据结构可包括对捕捉系统60以某一帧率在各帧中捕捉的多个深度图像求平均的结果。该模型能以某一数量的帧来迭代地调整。根据另一实施例,可调整所确定的身体部位的测量值,诸如放大、缩小等,以使数据结构中的测量值更接近地对应于典型的人类身体模型。身体模型可包含任何数量的身体部位,其每一个都可以是所建模的目标的对应部分的任何机器可理解表示。在包括两个或更多个身体部位的模型示例中,该模型的每一身体部位可包括一个或多个结构件(即,“骨骼”),且关节位于相邻骨骼的交叉点处。例如,可使用由位掩模确定的度量值来定义骨架模型中的一个或多个关节。该一个或多个关节可用于定义可对应于人类的身体部位的一个或多个骨骼。每一关节可允许一个或多个身体部位相对于一个或多个其他身体部位移动。例如,表示人类目标的模型可包括多个刚性和/或可变形身体部位,其中一些身体部位可表示人类目标的相应解剖学身体部位。每个身体部位可被表征为定义骨架模型的关节和骨骼的数学向量。应当理解,一些骨骼可对应于人类目标中的解剖学骨骼,和/或一些骨骼在人类目标中可能不具有相应的解剖学骨骼。骨骼和关节可共同构成骨架模型,其可以是另一模型的构成元素。骨架模型可包括每一身体部位的一个或多个骨架构件以及相邻骨架构件之间的关节。示例性三维骨架模型、骨架模型407和示例性骨架模型408分别在图5A和5B中示出。图5A示出如从正面查看的具有关节jl至j33的骨架模型407。骨架模型407可包括一个或多个关节jl_j33。根据一示例实施例,关节jl_j33中的每一个可使得在这些关节之间定义的一个或多个身体部位能相对于一个或多个其他身体部位移动并彼此独立地移动。例如,关节jl7与jl9之间定义的骨骼对应于前臂,该前臂可独立于例如关节j23与j25之间定义的骨骼——其对应于小腿一移动。图5B示出了从斜视图看的也具有关节jl到j33的骨架模型408。骨架模型408还包括滚动关节j34至j47,其中每一滚动关节可用于跟踪·轴向滚动角。例如,轴向滚动角可用于定义肢相对于其源肢和/或躯干的旋转定向。例如,如果骨架模型示出手臂的轴向旋转,则滚动关节j40可用于指示相关联的腕所指向的方向(例如,手掌向上)。由此,尽管关节可受力并调整骨架模型,但如下所述,可改为构造并利用滚动关节来跟踪轴向滚动角。更一般地,通过检查肢相对于其源肢和/或躯干的定向,可确定轴向滚动角。例如,如果检查小腿,则可检查小腿相对于相关联大腿和髋部的定向以确定轴向滚动角。关节和骨骼以及施加力矢量随着图像捕捉系统60捕捉到用户在物理空间中移动,所得到的图像数据可被用来调整骨架模型,使得骨架模型可以准确地表示该用户。根据一示例实施例,该模型可被光栅化成合成深度图像。光栅化允许由数学向量、多边形网格或其他对象描述的模型被转换成按照像素来描述的合成深度图像。捕捉系统所检索的目标的所观察到的图像与模型的光栅化(即,合成)图像之间的差别可用于确定施加于该模型以将身体调整到不同的姿态的力向量。在一个实施例中,可向该模型的一个或多个受力方面施加一个或多个力向量,来将该模型调整成更接近地对应于目标在捕捉区域的物理空间中的姿态的姿态。在捕捉各帧时,该模型可被迭代地调整。取决于所使用的模型的类型,可向模型的关节、身体部位的质心、三角形的顶点、或任何其他合适的受力方面施加力向量。此外,在某些实施例中,在确定力的方向和/或大小时可使用两个或更多个不同的计算。约束然后可响应于骨架模型的所跟踪到的改变以及约束来改变屏幕上的人物的视觉外观。在施加力时维持骨架模型的完整性可以是由所施加的一个或多个约束导致的。可实施各种不同的约束来维持不同的可能模型类型的完整性。在校正模型的每一次迭代期间,约束可被逐渐地和/或逐步地施加于移动或姿态,以便将该组动作和姿势限制到在物理上可由一个或多个目标的一个或多个实际身体来表达的动作或姿势。骨架模型可另外地或另选地通过基于目标计算每一骨架构件的长度,使得这些长度可被用作校正期间的约束来得到约束。例如,目标的身体的各个部位的尺寸(例如,手臂长度、臀宽度、头部大小等)可通过渲染身体模型的各个版本、在每一次渲染时使用变化的尺寸、以及根据一个或多个合适的度量选择最接近地匹配目标的渲染的尺寸来确定。在另一示例中,可进行单次渲染,并且可通过分析渲染匹配以及不匹配所观察的深度图像的特定区域来推断正确的身体尺寸。在某些实施例中,关于目标的不同部分可以在一时间帧(例如,一秒的1/30或1/60)内移动有限距离的知识可用作获得模型时的约束。这一约束可用于在前一帧已知时排除特定姿态。关于关节角度约束,可以限制某些肢和身体部位相对于相邻身体部位的运动范围。另外,该运动范围可基于相邻身体部位的定向来改变。因此,应用关节角度约束可允许在给定源肢和/或身体部位的定向的情况下将肢段约束到可能的配置。图6A和6B示出了向模型的受力位置施加力的结果的示例性应用。图6A示出了骨架模型407,其中出于使骨架模型407的一条手臂伸直来更接近地匹配观察到的深度图像的目的,力矢量492被施加于关节jl8 (即,肘),而力矢量494被施加于关节j20 (S卩,腕)。图6C示出了表示图6A的用户模型的屏幕上化身500的视觉外观。图6B示出了在施加力后的骨架模型409。图6B示出所施加的力如何调整模型的姿态。如图6B所示,可保持骨架构件的长度。如进一步示出的,关节j2的位置保持在骨架模型的肩部,这是对于伸直手臂·的人类的情况所预期的。换言之,在施加了力之后,骨架模型保持完整。响应于对模型的改变,比如图6B中的改变,化身控制系统202致使视听显示系统56显示如图6D所示的具有伸直的手臂的经调整的玩家化身502。目标的模型可在不背离本公开的范围的情况下不同地被配置。在某些示例中,模型可包括将目标表示为包括刚性和/或可变形形状,即身体部位的二维或三维模型的一个或多个数据结构。每一身体部位可被表征为数学图元,其示例包括但不限于球体、各向异性地缩放的球体、圆柱体、各向异性圆柱体、平滑圆柱体、方框、斜面方框、棱柱等。如上所述,某些模型可包括用作被建模的目标的机器表示的骨架和/或身体部位。在一些实施例中,模型可可替代地或附加地包括线框网格,该线框网格可包括如下各项的分层结构刚性多边形网格(例如三角形)、一个或多个可变形网格、或这二者的布置在网格中以定义身体模型形状的任何组合。这一网格可包括每一多边形边处的弯曲限制。例如,一些模型可包括补片(patch)、非均匀旋转B样条、或其他高阶表面。模型还可包括表面纹理和/或其他信息来更准确地表示被建模的目标的衣着、头发和/或其他方面。目标识别、分析和跟踪系统可呈现并存储可包括一个或多个运动的运动捕捉文件。这样的运动的一些示例是用户特有的挥手运动、诸如高尔夫挥杆之类的挥舞运动、挥拳运动、行走运动、奔跑运动等等。根据一示例实施例,可基于与所跟踪的模型相关联的信息来实时生成运动捕捉文件。例如,在一个实施例中,该运动捕捉文件可包括例如包括X、Y和Z值的矢量,这些矢量可定义在各个时间点跟踪模型时该模型的关节和骨骼。在一个示例实施例中,可提示用户执行可在运动捕捉文件中捕捉的各种运动。例如,可显示可提示用户例如行走或进行高尔夫挥杆运动的界面。如上所述,所跟踪的模型然后可基于各个时间点的这些运动来调整,并且可生成并存储对应于所提示的运动的该模型的运动捕捉文件。根据一实施例,该运动捕捉文件可包括对应于例如用户在不同时间点的运动的快照的帧。在捕捉了所跟踪的模型之后,可在运动捕捉文件的一帧中呈现与模型相关联的信息,该信息包括在一特定时间点应用于该模型的任何移动或调整。该帧中的信息可包括例如包括x、Y和Z值的矢量以及一时戳,这些矢量可定义所跟踪的模型的关节和骨骼,该时戳可指示例如用户执行了对应于所跟踪的模型的姿态的移动的时间点。例如,图6Β所示的模型408可以对应于用户最初伸直他或她的左肘的时间点。该移动、包括诸如关节和骨骼针对该移动的X、Y和Z值之类的信息可例如在运动捕捉文件的具有与用户伸直他或她的左肘之后的时间点相关联的第一时戳的第一帧中呈现。类似地,在图6B中,模型响应于用户的类似移动而伸直腕关节j20,并且该移动可以对应于之后的时间点。该移动、包括诸如关节和骨骼针对该移动的X、Y和Z值之类的信息可例如在运动捕捉文件的具有与用户伸出他或她的肘和腕的不同时间点相关联的第一和第二时戳的第一和第二帧中呈现。
可将运动捕捉文件应用于化身或游戏人物。例如,目标识别、分析和跟踪系统可将运动捕捉文件中捕捉的所跟踪的模型的一个或多个运动应用于化身或游戏人物,使得可对该化身或游戏人物动画化来模拟诸如以上参考图IA和IB描述的用户58等用户执行的运动。在一示例实施例中,运动捕捉文件中捕捉的模型中的关节和骨骼可被映射到游戏人物或化身的特定部分。例如,与左肘jl8相关联的关节可被映射到化身或游戏人物(图6D中的502)的左肘。然后在运动捕捉文件的每一帧中,可以将该左肘动画化以模拟与用户的模型相关联的左射的运动。根据一示例实施例,目标分析、识别和跟踪系统可在运动捕捉文件中捕捉运动时应用一个或多个运动。由此,当在运动捕捉文件中呈现一帧时,可将该帧中捕捉的运动应用于化身或游戏人物,使得可对该化身或游戏人物动画化来立即模拟该帧中捕捉的运动。在另一示例实施例中,目标分析、识别和跟踪系统可在运动捕捉文件中捕捉了运动之后应用一个或多个运动。例如,诸如行走运动等运动可由用户执行并在运动捕捉文件中捕捉和存储。行走运动然后可以每当用户抬起他或她的腿以作为致使化身行走的姿势或命令时被应用于化身或游戏人物。该化身然后可开始行走,并且可基于与用户相关联且存储在运动捕捉文件中的行走运动来对其动画化。由此,可响应于运动捕捉文件来改变屏幕上人物的视觉外观。另外,屏幕上人物可以被动画化以模仿用户的实际运动。例如,化身被动画化以正好像运动捕捉文件中所捕捉到的用户挥动高尔夫球杆那样挥动高尔夫球杆。诸如骨架模型(例如407或700)之类的模型为化身控制系统202中的不同模块(t匕如运动模块204和化身显示控制模块209)提供共同的参考基础以分析用户的运动并显示跟踪所述运动的化身的运动。关于图像捕捉系统及其可用于本技术的处理的更详细的信息,可以参考下面的申请2009 年 5 月 29 日提交的名称为“Environment And/Or TargetSegmentation(环境和 /或目标分段)”的申请,该申请通过引用完整地结合于此;在2009年10月21日提交的“PoseTracking Pipeline(姿势跟踪流水线)”的第12/603,437号美国专利申请(在下文中也被称为‘437申请),并且该申请通过引用完整地结合于此;在2009年5月29日提交的“Devicefor Identifyingand Tracking Multiple Humans Over Time(用于随时间标识和跟踪多个人的设备)”第12/475,308号美国专利申请,该申请通过引用完整地结合于此;在2009年12月18日提交的“Motion Detection Using Depth Images (使用深度图像的动作检测)”,该申请通过引用完整地结合于此;在2009年10月7日提交的“Human Tracking System (人类跟踪系统)”的第12/575,388号美国专利申请,并且该申请通过引用完整地结合于此。姿势确定在用于捕捉用户的自然移动的一个或多个实施例中,捕捉系统60重复地将用于运动跟踪的数据2051发送给可通信地耦合的运动模块204以便随着用户移动及时地更新显示屏54上的场景。在上面的示例中,运动跟踪数据可包括以某种形式的骨架模型为基准的、用来示出移动改变的数据,诸如与不同的关节、质心或节点有关的矢量。这样的改变可以在运动捕捉文件中捕捉。该数据可以涉及从光栅化矢量数据创建的综合像素数据表示。该数据还可包括在每一次更新时进行比较以检测哪些身体部位正在移动的用户位掩码。每一个身体部位被索引因此该身体部位可被标识出,捕捉区域的其他部分(诸如,起居室内的家具)被标识成背景,并且用户被索引因此可以将他们的各个身体部位的机器可表示数据与他们相关。运动模块204可以使用索引来标识出哪些身体部位已经在两个更新之间改变了位置。针对不同的身体部位,存在相关联的姿势过滤器206。姿势过滤器206包括用于确定更新205或一系列更新中指示的移动是否表示姿势的指令,该姿势可以是移动本身或是结果姿态。如上所述,姿势一般具有应用的上下文中的含义,但是它们也可能具有与该应用不相关的、在不同文化中为无礼的含义。运动模块204具有针对这些动作(后面称为被禁姿势)的特定姿势过滤器,其中所述过滤器将所述动作与同各个身体部位相关联的运动跟踪数据相比较以便识别这些动作。在一个实施例中,姿势过滤器206执行将涉及姿势的一个或多个身体部位的运动跟踪数据与包括和定义该姿势的运动特性有关的准则的各参数进行比较的指令。运动特性的一些示例包括位置、角度、速度和加速度。例如,投掷可被实现为如下姿势,该姿势包括表示用户的一个手从身体的背部后面经过身体的前面的移动的信息,因为该移动可由深度相机来捕捉。“投掷”的参数的一些示例可以是手必须达到的阈值速度、手必须行进的距离(绝对距离或者作为整体相对于用户的大小的距离)、以及手从身体的后面经过该身体的前面的移动的方向。可将参数作为其对应的姿势的元数据来存储。参数可包括姿势的各种运动特性中的任何一个。在过滤器包括参数的情况下,参数值可采取不同的形式,例如,参数可以是阈值、绝对值、默认的容限或范围。下面是运动特性的可由参数表示的一些更多的示例姿势涉及的身体部位、运动相对于身体部位的角度、关节、如由用户的骨架模型所表示的该用户身体的其他身体部位或者重心、身体部位或整个身体的位置的改变、以及身体部位或整个身体移动的距离。附加地,特性的其他示例是用户身体周围的身体部位在里面移动的空间体积的位置、移动方向、身体部位的移动速度、移动发生的位置、身体部位与场景中的另一对象之间的角度、加速度阈值、姿势的时间段、姿势的特定时间以及释放点。在一实施例中,参数的值由应用的最终用户通过作出姿势来确定。例如,应用可允 许用户训练它,使得用户能够指定他认为姿势应包括什么运动。这对于允许没有对其运动技能的良好控制的用户能够将他能作出的运动与对应的姿势相链接是有益的。如果这不可用,则用户可能变得沮丧,因为他无法使其身体以应用所需的方式移动来产生姿势。例如,给定棒球视频游戏,其中投手可按50mph和105mph (包含端点)之间的任何整数速度投掷,且该速度基于用户在作出该姿势时的最大手臂速度,为这56个可能的速度中的每一个定义一组单独的参数可能是麻烦的。相反,可向应用给予姿势已发生的指示以及用户的最大手臂速度,然后应用可使用内部逻辑来确定对应的化身投手应多快地投掷。在一实施例中,用户还使用他的语音来作出、增加、区分或阐明姿势。在该实施例中,运动模块204接收语音数据并确定数据和该语音数据的组合指示了姿势。例如,用户能够通过张开和闭合他的嘴来作出唱歌姿势,但还可通过唱出音符来指定该唱歌姿势的特定音符。另外,用户能够通过在作出另外的“常规重拳”姿势的同时喊叫来作出与“常规重拳”姿势相对的“有力重拳”姿势。在一个示例中,姿势过滤器206标准参考存储在模型数据216中的骨架模型,比如图5A-7所示模型中的一个或多个骨架模型。过滤器可以包括代码和相关联的数据,所述代码和数据可在确定参数准则是否令人满意时处理深度值、或关于骨架数据的矢量、或彩色图像数据或这些数据中的两个或多个的组合。例如,对过滤器的输入可包括诸如下列各项关于用户的关节位置的关节数据、在关节处相交的骨骼所形成的角度、可能有益于碰撞测试的用户的RGB颜色数据、以及用户的某一方面的变化速率。输入数据205可以在就姿势涉及的一个或多个身体部位的前一位置数据组而言位置、速度、移动方向、关节角度等发生改变时被呈现。 是否存在匹配可以由一个或多个输出的置信度水平来表示。在一个示例中,置信度水平可以以范围为O和I之间(包括端点)的浮点数的线性尺度来实现。在一实施例中,确定置信度水平可以包括基于与过滤器相关联的参数的布尔判定。例如,每个参数都可以具有其自己的相关联的作出与其相关联的运动特性的置信度水平,并且运动模块204可以检索该置信度水平以用于其姿势确定。可以给每个参数及其置信度水平赋予加权,其可通过加权技术被用于确定该姿势作为整体被作出的置信度水平。附加地,可能存在针对给定姿势的运动特性的输出。运动特性的示例包括时间、速度、加速度率或作出姿势的角度。化身控制显示模块209可以在化身的图像数据219中并入所述运动特性。在一个实施例中,运动模块204维护随时间输入的存档,所述存档跟踪所识别的姿势和其他运动。例如,可以针对应用的会话或实例(例如游戏)的骨架数据改变保存运动捕捉文件。在一个实施例中,运动模块204实现隐马尔科夫模型,其中所建模的系统被假定为马尔科夫过程——一种如下的过程其中当前状态封装了为了确定未来状态所需的任何过去状态信息,使得不必为该目的维护其他过去状态信息——该马尔科夫过程具有未知参数、以及从可观测数据中确定的隐藏参数。出于说明性目的,参考图7中的用户的可由本技术的一个或多个实施例使用的更简化骨架映射700提供了姿势及其相应过滤器可包括以供运动模块204进行分析的参数。可以已经从视听数据捕捉系统60所捕捉的运动跟踪数据205中生成了用户的示例性骨架映射700。在该实施例中,标识出各个关节和骨骼每个手指,701a - 70Ij ;每只手703a、703b ;每个腕 702a、702b ;每个前臂 704a、704b ;每个肘 706a、706b ;每个二头肌 708a、708b ;每个肩710a、710b ;每个臀712a、712b ;每个大腿714a、714b ;每个膝盖716a、716b ;每个前脚718a、718b ;每个脚720a、720b ;头722 ;躯干724 ;脊椎的顶部726和底部728 ;以及腰730。在跟踪更多点的情况下,可标识出附加的特征,比如面部的各个特征,如鼻和眼。越多数据被跟踪,则可以跟踪越详细的姿势或越细微的运动,比如某人撅起嘴。然而,更多的数据改变被跟踪也可能减缓化身显示。另一示例性姿势是“脚跟提起跳”。在该姿势中,用户可通过将他的脚跟提离地面,但保持他的脚趾着地来创建该姿势。另选地,用户可跳向空中,其中他的脚720完全离开地面。该系统可通过分析肩710、臀712和膝716的角度关系来解析该姿势的骨架,以查看它们是否是等于直立的对齐位置。然后,可监视这些点和较高726和较低728脊椎点来发现任何向上加速。足够的加速组合可触发跳跃姿势。在给定“脚跟提起跳”姿势的情况下,参数可包括上述加速度阈值,其确定用户的肩710、臀712和膝716的某种组合必须如何向上移动多快来触发该姿势;以及肩710、臀712和膝716之间仍可触发跳跃的最大对齐角。输出可包括置信度水平,以及用户在跳跃时的身体角度。示例性被禁动作或姿势可以是仅伸出中指的拳头,有时被称为用手指弹某人或对某人竖起中指。运动模块204可以确定相对于一个或多个手指701a至701 j的运动改变。在一个示例中,图像捕捉系统60为每个手指分配位掩码中的O或I的值,其对应于打开或闭合位置。针对“竖起中指”姿态的姿势过滤器遍历数据205的链接到手指身体部位的那部分并确定哪些手指是打开和闭合的。响应于手上的仅仅中指伸出或“打开”,相应的姿势过滤器206返回一置信度水平,该置信度水平指示高得足以触发化身显示的改动以避免示 出该姿势的概率。运动模块204链接到与竖起中指姿势过滤器相关联的被禁姿势库模块210中。被禁姿势库模块210的处理可以包括一个或多个用于改动的选项。一个选项是简单省略或不显示伸出的手指。省略手指伸出可以使得仅仅示出拳头。换言之,伸出手指的运动可以不在化身的显示的图像数据219中表示。另一选项是应用过滤技术以在显示上视觉地模糊被禁姿势。关于图像捕捉系统及其可用于本技术的处理,可以参考下面的申请于2009年5月29日提交的美国专利申请12/474,655 “Gesture Tool (姿势工具)”,该申请的全文通过引用结合于此;于2009年4月13日提交的美国专利申请12/422,661“Gesture RecognizerSystem Architecture (姿势识别器系统体系结构)”,该申请的全文通过引用结合于此;于2009年2月23日提交的美国专利申请12/391,150 “Standard Gestures (标准姿势)”,该申请的全文通过引用结合于此。图8A示出了用于在化身801显示上视觉地模糊被禁姿势的过滤技术的示例。这样的技术的示例是图8A中示出的像素化(pixelation)。包括伸出的中指的化身801的左手803b被颜色或灰度级变化的像素805覆盖,使得被禁姿势在图像中被隐蔽。相反,另一选项是用另一移动或姿态进行替代。被禁姿势模块210可以包括替代图像数据处理指令212或利用用于其链接到的替代图像数据处理212的指令来调用编程偏好可以规定的例程。图SB示出了应用于示例性骨架模型以替换被禁姿势的替代图像数据的示例,并且图SC示出了被更新为显示图SB中示例的替代图像数据的化身。姿势的运动数据被用化身的不同的、不那么无礼的运动数据替换。在该示例中,用手的挥舞替代竖起中指。使用“预先录制”或存储的动画数据(例如运动捕捉文件)来生成该挥舞。在一个示例中,手指运动针对其相关联的关节具有相当受限的对“打开”或“闭合”的表示,并且位值被用于指示手指关节的位置。左手上的手指的数据结构被分配为使得它们全部都被伸出。该示例被反映在在图8B中示出的骨架模型上半部807中,其中骨架手指关节701f - 70Ij在左手703b上是打开或伸出的以进行挥舞。图SC中的相应化身801根据为他的模型更新的由“关节”804f - 804j表示的骨架手指数据来挥舞他的左手803b手指。附加地,化身的腕关节802b、前臂804b、肘806b、二头肌808b和肩关节810b模仿用户在图8B中的骨架模型的相应关节 702b、704b、706b、708b 和 710b 的运动。被禁姿势或动作可以不是姿态本身,而是与捕捉区域中的另一对象的交互。图9A示出了由两个用户的骨架模型数据所示的被禁交互的示例。在图9A所示的示例中。与模型904相关联的用户由女性化身来表示。她的骨架数据模型904包括她的胸部区域中的被禁区域952。被禁区域可以是相对于模型定义的表面或空间体积。除了女性化身的胸部区域以外,这样的被禁区域的另一示例是男性或女性化身的生殖器区域。这些被禁区域很可能是要执行猥亵姿势的区域,并且它们一般在比如游戏和业务应用之类的许多使用化身的应用中是不太相关的。在一个示例中,基于将深度数据与不同用户和为用户之一定义的被禁区域952相关联,如果要发生直接处理(straight-through)运动跟踪处理,则骨架模型902 (例如在该情况下为男性用户)将表示在女性化身904的被禁区域952中的不合适的触摸。图9B示出了用运动数据形式的图像数据替代如由两个用户的骨架模型数据表示 的图9A的被禁交互示例。对于该示例,运动模块204可以调用姿势过滤器206或自己进行处理以将另一场景对象(在该情况下为无礼的手)重新映射到被禁区域952之外。在一示例中,按照力矢量(不是以尺度或角度精确方式绘制的)来表示运动,矢量f2指示肩关节2已经向上并稍微向右移动;矢量力Π8指示向上运动和平移到肘关节jl8的右边;矢量力f20指示向上运动并平移到腕关节j20的右边;以及力矢量f22(出于绘图中的可见性、而非量级为更大和更宽的)向上并向右推动可表示指节或手指关节的关节j22,使得与骨架模型902相关联的手现在抵靠在用户904的肩膀上。用不同运动的数据(例如其可存储在运动捕捉文件中)的该替代可以在与同被禁区域952相关联的被禁姿势模块210相关联的替代库处理模块212中定义。动画模糊和重新映射技术可以用于合并替代运动处理。可能由于模糊或重新映射而存在某个延迟。一般而言,当使用类似动作时,实现替代动作的定时类似于用于显示原始姿势的定时。动作之间的相似度的一个示例是使用相同身体部位。另一示例是与被禁区域附近的区域交互。显示第一或手挥舞而不显示中指姿势是使用类似身体部位的合适动作的示例。对于挥舞示例,引导伸出所有五根手指与仅仅伸出中指相比花费几乎相同的时间量。将触摸转移到一个人的肩而不是胸区域是与该位置保持在一定距离内以便不过多干扰动作的定时流的示例。关于动画模糊和重新映射的更多信息,参见发明人Jeffrey Margolis、KathrynStone Perez 和 Alex Kipman 于 2009 年 5 月 29 日提交的名称为 “SYSTEMS AND METHODSFOR APPLYING ANIMATIONS OR MOT 10NST0 A CHARACTER (用于将动画或运动应用于人物的系统和方法)”美国专利申请No. 12/475422以及发明人Kathryn Stone Perez于2009年5月29日提交的名称为“EXTENDING STANDARD GESTURES (扩展标准姿势)”的美国专利申请No.12/475,295。在其他实施例中,不是所有玩家都是本地地由相同捕捉系统捕捉的。远程玩家可能在场景上下文内执行动画化的猥亵动作。例如,用户可能伸出他的手臂以触摸场景中的另一玩家化身的被禁区域。在处理与远程位置的化身的交互时,所接收的数据可以具有不同形式。例如,在其中本地图像捕捉系统要么自己、要么通过附加处理能力(比如游戏控制台(例如52))将运动跟踪数据通过因特网传输给一个或多个如图4中的服务器的云计算环境(例如370)中,该数据可以是用户的运动跟踪数据,其中深度数据有助于它们在模型更新和化身更新方面的更快速的处理能力。或者该数据可以是用户已经利用最近捕捉的动作进行了更新的模型数据。在另一示例中,用户的模型数据是化身的相同模型数据。例如,该化身是用户的体格的现实表示。在其他示例中,用户的模型数据可以被重新映射到化身的模型。如前所述,图IA和IB中的用户18是与自己的化身拳击者64不具有相同身高和体型的男孩或青少年。所接收的运动跟踪数据可以是相对于化身的模型数据的。化身的运动跟踪数据也可以接收自系统,其中用户未利用他的身体移动来控制化身,而是利用诸如键盘、鼠标、跟踪球、操纵杆、游戏垫等等之类的设备来控制化身。运动跟踪数据可以包括化身的模型或者包括关于化身的模型的更新。化身的模型数据可以就像用户的模型数据那样以机器可表示形式被结构化。例如,其身体部分可以为关节和骨骼的表示作用于其的当前矢量或旋转的数据结构。附加地,不同的化身数据结构可以包括玩家索引以将其彼此区分开并与场景数据区分开。
仅用于说明性目的返回图2,在接收化身的模型数据的一个实施例中,运动模块204处理模型数据以基于运动跟踪数据确定被禁姿势是否正在被化身执行。具体而言,对场景数据218具有访问的运动模块204可以遍历化身的模型的数据结构以确定其被禁区域以及其身体部位在当前或以前是如何被定位的。这可以已经在运动捕捉文件中被捕捉到。运动模块204应用姿势过滤器206以检测被禁姿势是否正在被作出。如果是,则被禁姿势库模块210被调用以处理化身的模型以便通过过滤、省略、或替代来改动表示该姿势的图像数据。运动模块204还可以确定与其他化身或场景对象的交互。在图9A和9B的示例中,运动模块204可以跟踪用户902相对于场景、以及捕捉区域中的运动,并且识别他的伸出可能到达用户的化身904的模型数据中所指示的被禁区域952,其中该用户在示例中正在用户902的远程位置玩游戏。在格斗游戏的另一示例中,当用户的化身已经被杀死并且用户从游戏中出局时,屏幕上化身可以躺在地上。地上的化身可以由运动模块204由于其对化身和场景数据218的处理而被检测到。例如,在场景数据218中,在死去化身周围可能存在边界框、以及与其相关联的玩家索引,该索引将其与存活化身和背景区分开。为了避免显示仍然在游戏中的用户的另一化身相对于另一不活动化身的无礼姿势,可以使用替代库模块。例如,一个姿势可以是活动玩家骑跨在死去化身上并弯曲或未弯曲他的膝盖、以无礼方式触摸化身或以其他方式被认为无礼的刺激性移动。在这样的情况下,替代库模块212可以执行,以便与之前的运动方向相反地将腿置于与处于直立姿态的另一腿相同的身体一侧。在期望时可以随后进行对替代图像数据的进一步处理。例如,如果在存活玩家与死去尸体处于一定距离内时在没有脚移动的情况下检测到膝盖弯曲,则可以使化身保持站立。移动的缺失可以鼓励无礼玩家返回到游戏的动作而不是猥亵行为。图10、11和12的方法实施例分别是仅仅处于说明性目的而不是对其进行限制的方式在图2的功能性计算机实现的体系结构实施例的上下文中予以讨论的。图10是用于限制化身的姿势显示的方法1000的实施例的流程图。运动模块204确定1002化身的姿势是否示出一组被禁姿势之一。例如,运动模块可以基于运动跟踪数据来作出该确定。响应于该姿势属于该组被禁姿势,运动模块204改动1004表示该化身的姿势的图像数据。如果该姿势不属于该组被禁姿势之一,则运动模块204包括表示该化身的姿势的图像数据以供显示。表示化身的姿势的图像数据的一个示例是相对于模型的运动跟踪数据,其中该模型用于控制化身的显示的更新。图11是用于限制化身的姿势显示的方法1100的另一实施例的流程图。运动模块204确定1002化身的姿势是否示出一组被禁姿势之一。如果该姿势不属于该组被禁姿势之一,则运动模块204包括1006表示该化身的姿势的图像数据以供显示。例如,运动模块更新化身简档214的图像数据。响应于姿势属于该组被禁姿势,运动模块204确定1104表示化身的被禁姿势的图像数据是否通过网络被传输给另一计算机。如果要被传输,则运动模块204在供传输的数据中改动1004表示化身的该姿势的图像数据。化身控制系统202可以向用户通知所传输的版本是经改动的,并同时依然在直接或本地地连接到用户的计算机的显示(例如图IA和 IB中的显示56)上显示该姿势。例如,可以在窗口上显示较小窗口(例如画中画显示),并且该较小窗口可以显示该化身的姿势的所传输版本。在图2的实施例中,化身简档214可以存储图像数据的不同版本、即包括被禁姿势的本地版本2191、以及包括对被禁姿势的图像数据的改动以避免在显示上显示该被禁姿势的传输版本219i。可能发生的情况是,用户向非易失性存储器或记录存储包括被禁姿势的应用会话,例如未被传输的本地副本。之后,他决定将其上传到共享站点使得其他人可以访问它。在一个实施例中,运动模块204存储整个会话的针对用户或化身、或二者的模型的运动跟踪数据。例如,其以时间顺序将模型数据中的改变归档,使得可以保留并重新生成可以以矢量和旋转表示的所述改变。响应于要保存会话的消息或指示,整个会话的运动跟踪数据被保存为视频文件。响应于该视频文件要从操作系统318传输的消息或指示,化身控制系统202的运动模块204为检查被禁姿势的会话重新生成或处理运动跟踪数据。如果检测到被禁姿势,则对表示化身的该姿势的图像数据进行改动。替代或附加于此地,接收系统的运动模块204处理所存档的运动跟踪数据以用于检查任何被禁姿势的会话。在另一实施例中,如果仅仅视频文件被保存而没有运动跟踪数据,则该视频文件可以被视为原始图像数据,并且为每个化身生成模型以确定这些化身的中任何化身是否执行被禁姿势。运动模块204可以跟踪图像数据205的源是来自视听数据捕捉系统60 (2051)或者是通过诸如因特网203之类的网络(205i)从另一计算机接收的。如果图像姿势数据不是用于传输,则运动模块204确定1106表示被禁姿势的图像数据是从另一计算机接收的还是本地生成的。如果不是从另一计算机接收的并且不是用于传输,则在该实施例中,运动模块204包括1006表示该化身的该姿势的图像数据以供显示。例如,当简档被化身显示控制模块209访问时,其更新化身简档214以供显示姿势。如果被禁姿势是从另一计算机接收的,则运动模块204改动1004表示该化身的该姿势的图像数据,使得被禁姿势将不以原始形式显示。一般而言,该改动使得所显示的姿势与被禁姿势相比不那么无礼。
图12示出了用于改动表示化身的姿势的图像数据的方法1200。仅仅再次将图2的系统用作说明性上下文,运动模块204确定1202替代图像数据是否与该被禁姿势相关联。例如,运动模块204可以搜索数据库或遍历所链接的被禁姿势库210的列表及其相关联的替代库212。响应于存在相关联的替代,运动模块204在化身的图像数据中用替代图像数据替换1204被禁姿势。例如,其修改一个或多个身体部位的图像数据219中的运动跟踪数据。例如,运动模块204用化身的不同运动数据来替代针对该姿势的图像数据中的包括运动跟踪数据的运动数据。如上所述,所检测到的被禁姿势的一个示例可以是仅伸出中指的拳头。所链接的替代图像或运动图像可以是通常示为未伸出手指的常规拳头、或者如图8B和8C中所述的手挥舞。响应于不存在相关联的替代图像数据,运动模块204对表示该姿势的图像数据执行1206过滤技术以便视觉上模糊被禁姿势。例如,参见图8A中的像素化覆盖805。任选地,运动模块204可以编辑1208由用户在执行被禁姿势时所生成语音数据。这样的编辑的示例包括完全剪切掉音频或者使用语音识别技术来删除咒骂。·本技术可具体化为其他具体形式而不背离其精神或本质特征。类似地,对于模块、例程、特征、属性、方法和其他方面的具体命名和划分并非是强制性的,实现本技术或其特征的机制可具有不同的名称、划分和/或格式。此外,如本领域技术人员将显而易见的,所公开的实施例的模块、例程、特征、属性、方法和其他方面可被实现为软件、硬件、固件或三者的任意组合。当然,在组件(其示例是模块)被实现为软件的情况下,该组件可被实现为独立的程序、更大程序的一部分、多个单独的程序、静态或动态链接库、内核可加载模块、设备驱动程序、和/或编程技术领域中的技术人员现在已知或将来知晓的每一个和任何其他方式。上述详细描述只是为了说明和描述的目的而提出的。并非旨在穷举所公开的技术或将其限于所公开的精确形式。鉴于上述教导,许多修改和变型都是可能的。选择上述实施例来最好地解释本技术的原理及其实践应用,从而使本领域其他人能够在各种实施例中并用各种适于所构想的特定用途的修改一起最好地利用本技术。而且,应当注意,说明书中使用的语言原则上是出于可读性和指示性的目的而选择的。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。更确切而言,上述具体特征和动作是作为实现权利要求的示例形式公开的。
权利要求
1.在用于控制化身的计算机系统中ー种用于限制化身的姿势显示的方法,包括 从运动跟踪数据中确定所述化身的姿势是否示出一组被禁姿势之一;以及 响应于所述姿势属于该组被禁姿势,改动表示所述化身的所述姿势的图像数据。
2.如权利要求I所述的方法,其特征在于,响应于所述姿势属于该组被禁姿势,改动表示所述化身的所述姿势的图像数据还包括基于来自包括下列各项的组的标准改动表示所述化身的所述姿势的图像数据 表示所述姿势的图像数据是被传输给另ー计算机还是被本地地显示;或者表示所述姿势的图像数据是否是从另ー计算机接收的。
3.如权利要求I所述的方法,其特征在于,改动表示所述化身的所述姿势的图像数据还包括通过用所述化身的不同运动数据替换所述姿势的运动数据来用图像数据替代表示所述被禁姿势的图像数据。
4.如权利要求I所述的方法,其特征在于,确定所述化身的姿势的图像数据是否示出ー组被禁姿势之ー还包括下列至少之ー 确定表示所述化身的姿势的图像数据是否示出与另ー场景对象的被禁交互;以及 确定表示所述化身的姿势的图像数据是否示出与场景中的另ー化身的被禁交互。
5.一种计算机实现的用于限制化身的姿势显示的系统,包括 图像捕捉系统,所述图像捕捉系统用于捕捉表示用户的实况运动的图像数据; 可通信地耦合到所述图像捕捉系统的ー个或多个处理模块,所述ー个或多个处理模块用于执行用于接收所捕捉的图像数据的指令; 能够由所述ー个或多个处理模块访问的ー个或多个存储器设备,所述ー个或多个存储器设备用于存储从所述图像捕捉系统接收到的运动跟踪数据; 所述ー个或多个处理模块执行用于基于所接收到的运动跟踪数据来更新所述用户的运动跟踪数据的指令; 所述ー个或多个处理模块执行用于将所述用户的实况运动跟踪到与所述用户相关联的化身的运动的指令; 所述ー个或多个处理模块基于參数数据来确定由所述用户执行的姿势是否是ー组被禁姿势之一,所述參数数据定义针对表示一组被禁姿势的运动的标准;以及 响应于所述姿势属于该组被禁姿势,所述ー个或多个处理模块改动表示所述化身的所述姿势的数据以供显示。
6.如权利要求5所述的系统,其特征在于,所述ー个或多个处理模块还包括用于通过对表示所述姿势的图像数据执行过滤技术以在显示上视觉地模糊所述被禁姿势来改动表示所述化身的所述姿势的图像数据的逻辑。
7.如权利要求5所述的系统,其特征在于,所述图像捕捉系统包括用于捕捉所述用户的音频数据的话筒,并且所述ー个或多个处理模块还包括编辑由所述用户在执行所述被禁姿势时生成的语音数据的逻辑。
8.一个或多个其上编码有指令的计算机可读存储介质,所述指令用于致使在第一处理设备上的处理器执行ー种用于限制化身的姿势显示的方法,该方法包括 基于用于控制所述化身的运动跟踪数据来确定显示上的供所述化身执行的运动是否表示一组被禁姿势之ー;确定所述化身的表示是否被转换成图像数据以供传输给第二处理设备;以及响应于所述姿势属于该组被禁姿势并且所述图像数据是供传输给第二处理设备的,用所述化身的不同运动数据替换所述姿势的运动数据。
9.如权利要求8所述的ー个或多个计算机可读存储介质,其特征在于,该方法还包括:实时地将从用户的图像数据中确定的所述用户的运动跟踪到用于显示所述化身的运动的图像数据。
10.如权利要求8所述的ー个或多个计算机可读存储介质,其特征在于,供传输给第二处理设备的图像数据包括所存储的视频文件,并且还包括响应于表示所述视频文件被传输的指示而在所述存储视频文件中生成化身的运动跟踪数据。
全文摘要
一种技术确定化身的姿势是否示出一组被禁姿势之一。被禁姿势的示例是猥亵姿势。如果该姿势被确定为被禁姿势,则改动该姿势的用于显示的图像数据。改动的一些示例是用图像数据替换被禁姿势,或者对示出该姿势的图像数据执行过滤技术以视觉上模糊被禁姿势。
文档编号G06F3/14GK102918489SQ201180027130
公开日2013年2月6日 申请日期2011年5月26日 优先权日2010年6月2日
发明者K·S·佩雷斯 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1