对人类目标跟踪的确认分析的制作方法

文档序号:6443373阅读:274来源:国知局
专利名称:对人类目标跟踪的确认分析的制作方法
技术领域
本发明涉及对人类目标跟踪的确认分析。
背景技术
已创建了使用捕捉设备来确定场景中的对象和人类的位置和移动的目标识别、分析和跟踪系统。捕捉设备可包括深度相机、RGB相机和音频检测器,这些设备将信息提供给包括硬件和软件元素的捕捉处理流水线。处理流水线将运动识别、分析和运动跟踪数据提供给能够使用该数据的应用。示例性应用包括游戏和计算机界面。跟踪流水线中的准确性是合乎需要的。准确性取决于对于各种类型的用户(男的、女的、高的、矮的等)确定视野内各种类型的用户运动的移动的能力。在提供商业上可行的设备时实现跟踪流水线中的准确性是特别困难的,其中要跟踪的用户的运动和类型的可能变化明显大于测试或学术环境中的可能变化。

发明内容
在一个实施例中,提供了一种用于测试目标识别、分析和跟踪系统的技术。一种用于验证目标识别、分析和跟踪系统的准确性的方法包括创建测试数据和提供测试数据的可搜索集合。测试数据可以是具有相关联地面实况(ground truth)的记录和/或合成的深度剪辑。地面实况包括人类的关节部位与已被验证为准确的骨架跟踪信息的关联。响应于测试流水线的请求,将测试数据的可搜索集合的至少子集提供给流水线。从流水线输出跟踪数据,并且对跟踪数据相对于地面实况的分析提供了对流水线代码的准确性的指示。一种用于验证目标识别、分析和跟踪系统的准确性的系统包括记录和合成的深度剪辑以及相关联地面实况的可搜索储存库,其对于测试中的多个处理流水线是可用的。各自包括目标识别、分析和跟踪流水线的至少一个实例的一个或多个处理设备分析测试数据的所选成分。作业控制器提供测试数据的可搜索集合的至少子集来测试流水线,并且分析引擎接收来自可搜索集合的至少子集上的流水线的跟踪数据输出。报告生成器输出对跟踪数据相对于至少子集中的地面实况的分析,以提供相对于地面实况的误差的输出。在本文中描述了使技术呈现为灵活、可缩放和唯一的系统以及方法的许多特征。提供本发明内容以便以简化的形式介绍在以下具体实施方式
中进一步描述的一些概念。本发明内容并非旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护主题的范围。


图IA是示出用于实践本文中所描述的技术的环境的框图。图IB是用于目标识别、分析和跟踪系统的深度和运动跟踪的整个过程确认分析的流程图。图2是在图IA的环境中所使用的分析引擎的框图。
图3A示出目标识别、分析和跟踪系统的ー个示例实施例。图3B示出目标识别、分析和跟踪系统的另一示例实施例。图4示出了可在目标识别、分析和跟踪系统中使用的捕捉设备的ー个示例实施 例。图5示出用于表示人类目标的示例性身体模型。图6A示出用于表示人类目标的示例性骨架模型的基本正视图。图6B示出用于表示人类目标的示例性骨架模型的斜视图。图7A是示出用于创建测试数据的过程的流程图。图7B是目标识别、分析和跟踪系统运动跟踪流水线的ー个实施例的高级操作的 流程图。图7C是图7A的模型拟合过程的流程图。图8示出根据本技术的ー个实施例的用于跟踪目标的处理流水线的概念框图。图9A是示出用于通过手动地标记骨架数据从深度剪辑创建地面实况数据的ー个 实施例的流程图。图9B是示出用于使用经校准的传感器来为测试剪辑创建地面实况数据的另ー实 施例的流程图。图10是示出将运动捕捉坐标对准到骨架跟踪坐标空间的流程图。图11是示出合成两个深度剪辑以创建深度图复合物的流程图。图12A-12J是图11中所示的复合步骤的表示。图13是示出测试数据的手动注释的流程图。图14是示出分析测试流水线相对于地面实况数据的输出的流程图。图15是示出创建测试套件的流程图。图16示出正在移动的模型。图17是适于在本技术中使用的一个示例性计算环境。图18是适于在本技术中使用的另ー示例性计算环境。
具体实施例方式提供了允许对目标识别、分析和跟踪系统进行测试的技木。目标识别、分析和跟踪 系统可用于识别、分析和/或跟踪诸如用户之类的人类目标。目标识别、分析和跟踪系统包 括在硬件和软件中实现以执行识别、分析和跟踪功能的处理流水线。此类系统的设计者需 要相对于已知良好的数据集合优化此类系统,并且持续地努力改进此类系统的准确性。测试系统包括记录和合成的测试数据的庞大集合。测试数据包括多个深度剪辑, 这些深度剪辑包括测试数据捕捉会话期间所记录的深度帧的序列。测试数据与运动数据相 关以查明深度剪辑的地面实况。测试数据包含流水线或被设计成使用该流水线的特定应用 的开发者有兴趣识别的人类的运动和姿势。地面实况反映深度剪辑中的已知准确数据。地 面实况可以是不同类型的,包括骨架数据、背景移除数据和地板数据。注释测试数据以允许 开发者容易地确定所需深度剪辑并将深度剪辑集合构建到测试套件中。可从现有剪辑及其 他三维对象数据(诸如,场景内的静态对象)创建合成的深度剪辑。分析控制器将对测试 数据的处理定向到新流水线,接收来自流水线的跟踪结果,并且管理对相对于地面实况的流水线处理的准确性的分析。提供了对各个误差的分析、以及相对于先前流水线的流水线性能的概要。以此方式,该技术针对任一本地处理设备(诸如,Xbox 360 控制台)运行对新版本流水线的评估,或者在许多测试控制台之间划分工作。它收集这些结果,并且提供对数据的各种统计分析以有助于标识在某些情形中跟踪时的问题。同样存在用于生成、复合并合成测试数据以形成变量的新组合的可缩放方法。运动捕捉、运动跟踪、或“运动捕获(mocap) ”在本文中互换地使用以描述记录移动和将该移动转换成数字模型。在运动捕捉会话中,每秒对一个或多个行动者的移动采样多次以记录行动者的移动。运动捕捉数据可以是被转换成三维模型的运动捕捉设备的记录的或组合的输出。 运动捕捉系统跟踪空间中的主体相对于其自己的坐标系的一个或多个特征点。捕捉信息可采用任意数量的已知格式。使用具有有源、无源或无标志系统、或者惯性、磁性或机械系统的多个光学系统或非光学系统中的任一个来创建运动捕捉数据。在一个实施例中,该模型由目标识别、分析和跟踪系统中的处理流水线开发。为了验证流水线的准确性,构建该模型和跟踪该模型的移动两者中的流水线的性能与已知良好的骨架跟踪信息作比较。在本文中,此类已知良好的骨架跟踪信息被称为地面实况数据。一种类型的地面实况数据可通过使用各种技术手动地或自动地跟踪主体的移动并验证骨架模型中所使用的点来开发。其他类型的地面实况包括背景数据和地板位置数据。具有地面实况的深度剪辑随后可用于测试流水线的进一步实现。提供分析度量以允许开发者评估对流水线的各种交互和改变的有效性。—般而言,如在下文中所描述的,本技术的目标识别、分析和跟踪系统使用深度信息来定义并跟踪在跟踪设备的视野内的用户的运动。生成用户的骨架模型,并且使用模型上的点来跟踪被提供给相应应用的用户的移动,这些应用将数据用于各种目的。骨架模型和骨架模型所跟踪的运动的准确性一般是合乎需要的。图IA示出其中可使用本技术的环境。图IA是示出各种测试数据源、测试数据存储、以及其中可使用本技术的多个不同类型的测试系统的框图。在一个实施例中,为了创建用于测试数据存储的测试数据,创建测试主体的运动捕捉剪辑,同时使用深度传感器来创建主体的深度剪辑。深度剪辑是深度帧的序列,每一深度帧包括表示单个帧的深度传感器输出的高度值数组。在本文中还讨论创建测试数据的其他方法。在个实施例中,使用运动捕捉系统来犾取运动捕捉数据。运动捕捉系统111可包括多个已知类型的运动捕捉系统中的任一个。在一个实施例中,运动捕捉系统111是磁性运动捕捉系统,其中多个传感器置于主体的身体上以测量一个或多个发射器所生成的磁场。运动捕捉数据与地面实况的区别在于,运动捕捉数据是传感器相对于运动捕捉系统的位置(以及在一些情况下的定向),其中地面实况是主体的关节相对于深度传感器的位置以及在一些情况下的定向。当使用此类系统时,对同时记录的深度剪辑必须进行具有传感器的运动捕捉系统检测到的位置之间的相关,以生成地面实况。该相关通过运动捕捉系统与深度传感器数据之间的对准和校准来执行。同样,在图IA中示出可包括记录深度剪辑的深度传感器(诸如,以下所讨论的深度相机426)的深度捕捉系统。测试数据110至118的各种源可为测试数据储存库102提供测试数据和地面实况。原始运动捕捉数据110是诸如捕捉系统111之类的有源或无源运动捕捉设备所提供的输出。可能还未分析原始运动捕捉数据以提供相关联地面实况信息。深度剪辑112可以是与运动捕捉数据同时记录的数据,或者可在与附随运动捕捉数据不相关联的情况下创建深度剪辑。此类原始深度数据可由注释器手动地审阅,该注释器审阅深度剪辑中的多个帧中的每一个或一部分并且对深度空间中的主体的关节建模。运动捕捉和深度数据的特定源包括游戏开发者运动和深度剪辑114、或者研究者提供的运动和深度剪辑116。游戏开发者剪辑包括应用程序开发者用开发者的游戏所需的运动来特别定义的剪辑。例如,网球游戏可能需要专用于玩网球的运动、以及区分正手击球与地面击球的高准确性。研究剪辑116由研究者提供,以寻求在特定方向上推动流水线的开发。合成深度剪辑118是定义移动情形和场景的现有剪辑的组合,这些组合可能无法以其他方式可用。地面实况开发115表示运动捕捉数据与深度数据相关以创建地面实况、或由人手动注释深度数据以使关节与深度帧相匹配。图IA的环境包括各种类型的测试系统,这些测试系统包括用户测试设备130、批测试系统145和自动构建的测试系统140。测试系统130、145、140中的每一个访问数据储存库102,以测试目标识别、分析和跟踪系统所使用的目标识别、分析和跟踪流水线450。参考图7和8来讨论流水线。测试数据储存库102包括包含深度剪辑的测试数据存储104,以及包含与深度剪辑相关联的地面实况的地面实况数据存储105。应当理解,可将数据存储104和105组合成单个数据存储。测试数据储存库102可包括剪辑和地面实况数据,以及剪辑提交界面106和数据服务器108。提交界面106可以是批处理或web服务器中的一个,其允许数据创建器提供测试数据110至118中的任一个。数据储存库102可包括一个或多个标准数据库,该一个或多个标准数据库容纳剪辑数据并且允许以下所描述的元数据与剪辑数据相关联,由此允许用户快速且容易地标识各个剪辑、所选剪辑和/或所有剪辑中可用的信息,并且从数据存储108取回它们以供在测试设备103、145和140中使用。如以下参考图4所讨论的,每一目标识别、分析和跟踪系统可包括例如深度成像处理和骨架跟踪流水线450。该流水线获取深度图像形式的运动数据,并且处理这些图像以计算诸如图4中的捕捉设备20的捕捉设备的视野中的用户的位置、运动、身份及其他方面。在一个实施例中,深度图像处理和骨架跟踪流水线450可包括执行参考图4-8所描述的各种功能、以及此处引用并通过引用结合于此的相关联应用的硬件和代码的任何组合。在一个实施例中,硬件和代码可通过将经更新的代码125上传到处理系统中来修改。测试系统130、145、140中的每一个具有对运动跟踪流水线的一个或多个版本的访问权。当创建流水线的新版本(图IA中的代码125、127)时,测试系统130、140和145 使用深度剪辑和地面实况数据通过将跟踪测试数据中的运动时的流水线功能的性能与已知地面实况数据作比较来评估新版本的性能。例如,包括以下参考图17和18所示的处理设备的用户测试设备130可包括由新代码125更新的流水线代码450。当对选自数据储存库102的数据执行测试时,可在用户的处理设备130内执行流水线代码。当测试新代码125时,用户测试设备130被开发者配置成通过在其上测试流水线的数据服务器来访问来自数据储存库102的剪辑数据。
以下参考图2所描述的分析引擎200输出对深度图像处理和骨架跟踪流水线相对于与输入到流水线中的测试数据相关联的地面实况的分析。分析引擎200将多个报告度量提供给分析用户界面210。批测试系统145可包括一个或多个处理设备的集合,该集合包括分析引擎200和分析用户界面210。批测试系统包括到一个或多个控制台150 (诸如,处理设备150和160) 的连接。控制台150和计算机160中的每一个可执行流水线450,并且可用新流水线代码 125更新。新流水线代码可被提交给批测试系统,并且在批测试系统的控制下,被加载到相应的控制台150和计算机160。批测试系统145中的分析引擎200和作业控制器220控制测试数据向控制台和计算机中的相关联流水线中的每一个的供应,并且收集对新流水线代码125上的控制台和计算机中的每一个的输出的分析,新流水线代码125被提交且在其上执行批测试。自动构建的测试系统140与批系统的相似点在于,它提供了对各自具有相关联处理流水线的多个控制台和计算机的访问。处理流水线由新流水线代码定义,包括例如被提交给自动构建的测试系统140的每晚的代码127。自动构建的测试系统被设计成对新提交的代码127执行定期的、周期性的测试。由此,代码管理器142管理何时允许新代码127进入系统、哪个代码被验证为可测试、以及在分析引擎200的控制下哪个代码被提供给控制台150和160以供周期性的处理。应当理解,例如在一些其他周期性的基础上可发生周期性的处理。自动构建的测试系统140在多个不同的开发者正在提供新流水线代码时是有用的,其管理由代码管理器412定义。代码可在开发者代码的每次检查之后在每晚的基础上、 或按照自动构建的测试系统所定义的一些其他时间表检查。图IB是示出一种用于实现本技术的方法的流程图。在164,创建主体的感兴趣的移动的深度剪辑。在图7A中讨论用于创建深度剪辑和所得测试数据(包括深度剪辑和深度剪辑的相关联地面实况)的各个实施例。在一个实施例中,在没有运动捕捉数据的情况下创建测试数据。在另一实施例中,测试数据可通过使用运动捕捉系统与164处的深度剪辑同时地创建运动剪辑来创建,它们随后用于为深度剪辑创建地面实况。替换地,在164,深度剪辑可与其他深度剪辑和三维数据合成。在166,创建地面实况,并且地面实况与测试数据相关联。地面实况数据通过机器过程或手动标志过程来创建和/或确认。如以下所解释的,目标识别、分析和跟踪系统使用骨架模型(诸如,图6A和6B所示的骨架模型)来标识捕捉设备的视野内的测试主体。在一个上下文中,地面实况数据是骨架模型用于跟踪视野内或视野外的主体的验证,并且主体的实际运动由模型在空间中准确地标识。如上所述,诸如背景信息和地板位置之类的地面实况可用于此处所描述的其他目的。在168,存储所注释的地面实况和深度数据。在168,测试数据用元数据注释以允许数据类型的高级搜索。以下参考图13来讨论注释元数据。测试数据的注释包括使元数据的相关联集合附连到测试数据。应当理解,附连到数据且以下所描述的数据标签的数量和类型是示例性的。数据允许开发者快速地找到可用于对新流水线代码执行特定测试的特定类型的数据。当在170发起对特定流水线的测试时,一般而言,将提供两种测试类型之一,自定义或批测试或者每晚的(周期性的)测试。如果要使用诸如自动构建的测试系统140所执行的自动的或周期性的测试,则在174测试数据将通过感兴趣的一个或多个特定处理流水线来运行,并且在176相对于地面实况分析输出。可在178提供各种报告和报告概要。在176相对于地面实况分析流水线的过程将以下解释,并且参考对地面实况和流水线的输出之间的差异的检测来执行,且使用多个不同的度量来分析。一般而言,将相对于同一数据集合定期地运行自动的或周期性的测试,以跟踪代码的性能随时间的改变。如果在172要使用自定义或批测试,则针对流水线的所选特征或测试特定部分, 测试可需要被优化。在182,任选地,构建测试套件。测试套件可以是测试数据子集、以及为特定功能自定义的相关联地面实况。例如,如果应用程序开发者希望相对于网球游戏中的使用测试特定流水线,则在处理流水线中对在过肩击球、发球员、地面击球、正手和反手之间区分的用户手臂运动的流水线检测的准确性可能是最佳的。如果测试套件包含足够的数据来执行自定义分析,则新附加数据要求在184不是必需的,并且在186数据的测试套件可通过处理流水线来运行。在188再次相对于测试套件中的现有地面实况分析流水线的输出,并且在190以类似于以上参考步骤178所描述的方式报告该输出。为了测试套件正用于的特定应用,如果需要附加测试数据,则(在192)可重复步骤172、174、176和178以创建需要被添加到在182创建的测试套件的自定义数据。自定义数据可以是新记录的数据或合成的复合数据,如在下文中所描述的。图2示出分析引擎200、分析用户界面210和作业管理器220。如上所述,可在用户测试系统130、批测试系统145或自动构建的测试系统140中提供分析引擎200。分析用户界面210允许开发者或其他用户来定义特定测试数据和度量,以供作业控制器和分析引擎在一个或多个测试序列和报告中使用。分析用户界面210还允许用户选择各种测试数据,以供在使用构建和测试剪辑选择界面214的特定测试运行中使用。对于任何测试,可在测试中可使用对测试代码和度量、或所有代码和所有度量的特定选择。分析用户界面向用户提供可视化显示216,可视化显示216输出卷起报告生成器的结果和分析引擎所提供的各个度量报告。向作业管理器220馈送经由分析用户界面210的测试数据, 和要由设备150/160分析的结果集合。作业管理器220包括流水线加载控制器224和作业控制器226。流水线加载控制器从任意数量的源接收新流水线代码125,并且确保可使用设备界面222来将流水线代码安装在多个设备中的每一个中。作业控制器226接收来自分析用户界面210的输入,并且定义提供给提供要分析的代码并接收所执行的分析的不同设备中的每一个中的各个流水线的信息。在其他实现中,批测试指令集合可补充或替换分析用户界面和作业管理器220。分析引擎包括分析管理器230、报告生成器250、以及具有度量过程控制器245的度量插件汇编240。分析管理器230采用所执行的分析232,并且编译已完成的结果234。 所执行的分析包括流水线与剪辑的地面实况作比较所生成的剪辑跟踪结果。在一个实施例中,各个数据元素在剪辑和地面实况之间作比较,并且将误差传递到多个统计度量引擎。替换地,度量引擎调用各自将跟踪结果与地面实况作比较且进一步评估该误差的多个度量插件。例如,骨架度量插件(SkeletonMetricsPlugin)产生原始误差、以及剪辑相对于地面实况的任何所得统计评估。在另一实施例中,可存在用于可供分析引擎使用的每一物理CPU 内核的度量引擎,并且每一度量引擎具有已请求的所有度量插件的列表。通过将测试数据的可搜索集合的至少子集馈送到给定跟踪流水线和将结果记入日志(即,其中骨架关节针对每一帧)来定义测试运行。随后在分析引擎中,使用各种度量来将该跟踪结果与每一测试数据的地面实况作比较。来自分析引擎的输出由报告生成器处理,以创建集聚报告。另外,即使在与地面实况无关的情况下,可从测试运行确定有用信息, 包括性能和诸如是否为帧跟踪到任何骨架等的一般跟踪信息。将剪辑跟踪结果和地面实况提供给多个不同度量引擎242、244、246中的任一个, 这些度量引擎计算跟踪结果相对于地面实况的各种报告度量。以下描述示例性度量。度量引擎经由插件240启用,插件240允许对可用于分析的可用度量的更改和自定义。此处所描述的示例度量只是示例性的,并且说明本技术的一个示例性。可使用根据本技术的任意数量的不同类型的度量来相对于跟踪数据分析地面实况数据,如此处所描述的。度量引擎将分析度量结果返回到分析管理器,该分析管理器编译这些结果并将其输出到卷起报告生成器250。卷起报告生成器将设置有报告的数据集合提供给分析管理器以供应给分析用户界面210。以下描述示例性概要报告。图3A-4示出了可用于识别、分析和/或跟踪诸如用户18之类的人类目标的目标识别、分析和跟踪系统10。目标识别、分析和跟踪系统10的各个实施例包括用于执行游戏或其他应用程序的计算环境12。计算环境12可包括硬件组件和/或软件组件,以使计算环境12可用于执行诸如游戏之类的应用程序和非游戏应用程序。在一个实施例中,计算环境 12可包括诸如标准化处理器、专用处理器、微处理器等的处理器,该处理器可执行存储在处理器可读存储设备上的用于执行此处所描述的过程的指令。系统10还包括捕捉设备20,捕捉设备20用于捕捉与捕捉设备所感测的一个或多个用户和/或对象有关的图像和音频数据。在各个实施例中,捕捉设备20可用于捕捉与一个或多个用户的部分或全部身体移动、姿势和语音相关的信息,该信息由计算环境接收并且用于呈现游戏或其他应用程序的各方面、与这些方面交互和/或控制这些方面。以下更详细地解释计算环境12和捕捉设备20的示例。目标识别、分析和跟踪系统10的各个实施例可连接到具有显示器14的音频/视觉(A/V)设备16。设备16例如可以是可向用户提供游戏或应用程序视觉和/或音频的电视机、监视器、高清电视机(HDTV)等。例如,计算环境12可包括诸如图形卡之类的视频适配器和/或诸如声卡之类的音频适配器,这些适配器可提供与游戏或其他应用程序相关联的音频/视觉信号。A/V设备16可从计算环境12接收音频/视觉信号,并且随后可向用户18输出与这些音频/视觉信号相关联的游戏或应用程序视觉和/或音频。根据一个实施例,音频/视觉设备16可经由例如S-视频电缆、同轴电缆、HDMI电缆、DVI电缆、VGA电缆、分量视频电缆等连接到计算环境12。在各个实施例中,计算环境12、A/V设备16和捕捉设备20可协作以在显示器14 上呈现化身或屏幕上人物19。例如,图3A示出用户18正在玩足球游戏应用程序。跟踪并使用用户的移动来使化身19的移动动画化。在各个实施例中,化身19模仿用户18在现实世界空间中的移动,以使用户18可执行控制化身19在显示器14上的移动和动作的移动和姿势。在图3B中,在NUI系统中使用捕捉设备20,其中例如,用户18正在滚动和控制具有呈现在显示器14上的各种菜单选项的用户界面21。在图IA中,计算环境12和捕捉设备 20可用于识别和分析用户身体的移动和姿势,并且此类移动和姿势可被解释为对用户界面的控制。
图3A-3B的各个实施例是可在计算环境12上运行的许多不同应用中的两个,并且在计算环境12上运行的应用程序可以是各种其他游戏和非游戏应用程序。图3A-3B示出包含静态的背景对象23 (诸如,地板、椅子和植物)的环境。这些对象是在捕捉设备20所捕捉的FOV内的对象,但是不逐帧改变。除了所示的地板、椅子和植物以外,静态对象可以是捕捉设备20中的图像相机查看到的任何对象。场景内的附加静态对象可包括任何墙、天花板、窗、门、墙面装饰等。系统10及其组件的合适的示例在以下共同待审的专利申请中找到,这些专利申请全部特此通过引用结合于此于2009年5月29日提交的名称为“Environment And/ Or Target Segmentation(环境和/或目标分割)”的美国专利申请序列号12/475, 094 ; 于 2009 年 7 月 29 日提交的名称为 “Auto Generating a Visual Representation”(自动生成视觉表示)”的美国专利申请序列号12/511,850 ;于2009年5月29日提交的名称为“Gesture Tool (姿势工具)”的美国专利申请序列号12/474, 655 ;于2009年10月21 日提交的名称为“PoseTracking Pipeline (姿态跟踪流水线)”的美国专利申请序列号 12/603, 437 ;于 2009 年 5 月 29 日提交的名称为“Device for Identifying and Tracking Multiple Humans Over Time (用于随时间标识和跟踪多个人类的设备)”的美国专利申请序列号12/475,308 ;于2009年10月7日提交的名称为“Human Tracking System(人类跟踪系统)”的美国专利申请序列号12/575,388 ;于2009年4月13日提交的名称为“Gesture Recognizer System Architecture (姿势识别器系统体系结构)”的美国专利申请序列号 12/422,661 ;于2009年2月23日提交的名称为“Standard Gestures (标准姿势)”的美国专利申请序列号12/391,150 ;以及于2009年5月29日提交的名称为“Gesture Tool (姿势工具)”的美国专利申请序列号12/474,655。图4示出可在目标识别、分析和跟踪系统10中使用的捕捉设备20的一个示例实施例。在一个示例实施例中,捕捉设备20可被配置成经由任何合适的技术来捕捉具有可包括深度值的深度图像的视频,这些技术包括例如飞行时间、结构化光、立体图像等。根据一个实施例,捕捉设备20可将所计算的深度信息组织成“Z层”,或与从深度相机沿其视线延伸的Z轴垂直的层。X和Y轴可被定义为与Z轴垂直。Y轴可以是垂直的,而X轴可以是水平的。X、Y和Z轴一起定义捕捉设备20所捕捉的3-D真实世界空间。如图4所示,捕捉设备20可包括图像相机组件422。根据一个示例实施例,图像相机组件422可以是可捕捉场景的深度图像的深度相机。深度图像可包括所捕捉场景的二维(2-D)像素区域,其中2-D像素区域中的每一像素可表示深度值,诸如例如以厘米、毫米等为单位的、所捕捉场景中的对象距相机的长度或距离。如图4所示,根据一个示例性实施例,图像相机组件422可包括可用于捕捉场景的深度图像的IR光组件424、三维(3-D)相机426,以及RGB相机428。例如,在飞行时间分析中,捕捉设备20的IR光组件424可将红外光发射到场景上,并且随后可使用传感器(未示出)、用例如3-D相机426和/或RGB相机428来检测从场景中的一个或多个目标和对象的表面反向散射的光。在一些实施例中,可使用脉冲红外光,从而可测量出射光脉冲和相应入射光脉冲之间的时间,并且将其用于确定从捕捉设备20到场景中的目标或对象上的特定位置的物理距离。另外,在其他示例实施例中,可将出射光波的相位与入射光波的相位作比较来确定相移。该相移随后可用于确定从捕获设备20到目标或对象上特定位置的物理距离。根据另一示例实施例,飞行时间分析可用于通过经由包括例如快门式光脉冲成像在内的各种技术来随时间分析反射光束的强度来间接地确定从捕捉设备20到目标或对象上的特定位置的物理距离。在另一示例实施例中,捕捉设备20可使用结构化光来捕捉深度信息。在此类分析中,图案化光(即,被显示为诸如网格图案或条纹图案之类的已知图案的光)可经由例如IR 光组件424投影到场景上。在落到场景中的一个或多个目标或对象的表面时,作为响应,图案可变形。图案的此类变形可被例如3-D相机426和/或RGB相机428捕捉,并且随后可被分析以确定从捕捉设备20到目标或对象上的特定位置的物理距离。捕捉设备20还可包括话筒430。话筒430可包括可接收声音并将其转换成电信号的变换器或传感器。根据一个实施例,话筒430可用于减少目标识别、分析和跟踪系统10 中的捕捉设备20和计算环境12之间的反馈。另外,话筒430可用于接收也可由用户提供的音频信号,以控制可由计算环境12执行的诸如游戏应用程序、非游戏应用程序等应用程序。在一个示例实施例中,捕捉设备20还可包括可与图像相机组件422有效通信的处理器432。处理器432可包括可执行指令的标准处理器、专用处理器、微处理器等,这些指令可包括用于接收深度图像的指令、用于确定合适的目标是否可包括在深度图像中的指令、 用于将合适的目标转换成该目标的骨架表示或模型的指令、或任何其他合适的指令。捕捉设备20还可包括存储器组件434,存储器组件34可存储可由处理器432执行的指令、3-D相机或RGB相机捕捉到的图像或图像的帧、或任何其他合适的信息、图像等。 根据一个示例实施例,存储器组件434可包括随机存取存储器(RAM)、只读存储器(ROM)、高速缓存、闪存、硬盘、或任何其他合适的存储组件。如图4所示,在一个实施例中,存储器组件434可以是与图像相机组件22和处理器432通信的单独组件。根据另一个实施例,可将存储器组件34集成到处理器32和/或图像相机组件22中。如图4所示,捕捉设备20可经由通信链路436与计算环境12通信。计算环境12包括深度图像处理和骨架跟踪流水线450,该流水线使用深度图像来跟踪可被捕捉设备20的深度相机功能检测的一个或多个人。深度图像处理和骨架跟踪流水线450向应用452提供跟踪信息,应用452可以是视频游戏、生产性应用、通信应用或其他软件应用等。还可将音频数据和视觉图像数据提供给应用452以及深度图像处理和骨架跟踪模块450。应用452将跟踪信息、音频数据和视觉图像数据提供给识别器引擎454。识别器引擎454与筛选程序460、462、464.....466的集合相关联,每一筛选程序
包括关于可由捕捉设备20检测的任何人或对象执行的姿势、动作或状况的信息。例如,筛
选程序460、462、464.....466可处理来自捕捉设备20的数据,以标识一个用户或一组用户
何时执行了一个或多个姿势或其他动作。这些姿势可与应用452的各种控制、对象或状况相关联。由此,计算环境12可将识别器引擎454与筛选程序一起用于解释和跟踪对象(包括人)的移动。识别器引擎454包括确定姿势或动作的多个筛选程序460、462、464.....466。筛
选程序包括定义姿势、动作或状况以及该姿势、动作或状况的参数或元数据的信息。例如, 包括一只手从身体背面经过身体前方的运动的投掷可被实现为包括表示用户的一只手从身体背面经过身体前方的运动的信息的姿势,因为该运动可能由深度相机捕捉。随后可为该姿势设定参数。当姿势是投掷时,参数可以是这只手必须达到的阈值速度、这只手行进的距离(绝对的、或相对于用户的整体尺寸)、以及识别器引擎对发生的姿势的置信度评级。 用于姿势的这些参数可随时间在各应用之间、在单个应用的各个上下文之间、或在一个应用的一个上下文内变化。对筛选程序的输入可包括诸如关于用户的关节位置的关节数据、在关节处相交的骨骼所形成的角度、来自场景的RGB色彩数据、以及用户的某一方面的变化速率等内容。来自筛选程序的输出可包括诸如正作出给定姿势的置信度、作出姿势运动的速度、以及作出姿势运动的时间等内容。关于识别器引擎454的更多信息可在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 (姿势工具)”中找到,这些专利申请的全部内容都通过引用结合于此。图5示出示例身体模型70的非限制性视觉表示。身体模型70是被建模的目标 (例如,图3A和3B的游戏玩家18)的机器表示。身体模型可包括一个或多个数据结构,该一个或多个数据结构包括以游戏或其他应用/操作系统的语言来共同定义被建模的目标的变量集合。目标的模型可在不背离本发明的范围的情况下不同地配置。在一些示例中,模型可包括将目标表示为包括刚性和/或可变形形状、或身体部位的三维模型的一个或多个数据结构。每一身体部位可被表征为数学图元,其示例包括但不限于球体、各向异性地缩放的球体、圆柱体、各向异性圆柱体、平滑圆柱体、方形、斜面方形、棱柱等。例如,图5的身体模型70包括身体部位bpl至bpl4,其各自表示被建模的目标的不同部分。每一身体部位都是三维形状。例如,bp3是表示被建模的目标的左手的矩形棱柱,而bp5是表示被建模的目标的左上臂的八面棱柱。身体模型70是示例性的,因为身体模型可包含任意数量的身体部位,其各自可以是被建模的目标的相应部分的任何机器可理解表示。包括两个或两个以上身体部位的模型还可包括一个或多个关节。每一关节可允许一个或多个身体部位相对于一个或多个其他身体部位移动。例如,表示人类目标的模型可包括多个刚性和/或可变形身体部位,其中一些身体部位可表示人类目标的相应解剖学身体部位。此外,该模型的每一身体部位可包括一个或多个结构件(即,“骨骼”或骨架部位), 其中关节位于相邻骨骼的交叉点处。应当理解,一些骨骼可对应于人类目标中的解剖学骨骼,和/或一些骨骼在人类目标中可能不具有相应的解剖学骨骼。骨骼和关节可共同构成骨架模型,它们可以是身体模型的构成元素。在一些实施例中,骨架模型可代替另一类型的模型(诸如,图5的模型70)来使用。骨架模型可包括每一身体部位的一个或多个骨架构件以及相邻骨架构件之间的关节。示例性骨架模型80和示例性骨架模型82分别在图6A和6B中示出。图6A示出如从正面查看的具有关节jl至 J33的骨架模型80。图6B示出如从斜视图查看的也具有关节jl至j33的骨架模型82。
骨架模型82还包括滚动关节j34至j47,其中每一滚动关节可用于跟踪轴向滚动角。例如,轴向滚动角可用于定义肢相对于其父肢和/或躯干的旋转定向。例如,如果骨架模型示出手臂的轴向旋转,则滚动关节j40可用于指示相关联腕正在指的方向(例如,手掌向上)。通过检查肢相对于其父肢和/或躯干的定向,可确定轴向滚动角。例如,如果正在检查小腿,则可检查小腿相对于相关联大腿和髋部的定向以确定轴向滚动角。骨架模型可在不背离本发明的精神的情况下包括更多或更少的关节。在下文中所解释的本系统的其他实施例使用具有31个关节的骨架模型来操作。如上所述,一些模型可包括用作被建模的目标的机器表示的骨架和/或其他身体部位。在一些实施例中,模型可另选地或另外地包括线框网格,该线框网格可包括刚性多边形网格、一个或多个可变形网格、或两者的任意组合的分层结构。上述身体部位模型和骨架模型是可用作被建模的目标的机器表示的非限制示例模型类型。其他模型也在本发明的范围之内。例如,一些模型可包括多边形网格、片、非均匀理性B样条、细分表面、或其他高阶表面。模型还可包括表面纹理和/或其他信息来更准确地表示被建模的目标的衣着、头发和/或其他方面。模型可任选地包括与当前姿态、一个或多个过去的姿态和/或模型物理学有关的信息。应当理解,可摆姿态的各种不同的模型与本文描述的目标识别、分析和跟踪是兼容的。如上所述,模型用作诸如图3A和3B中的游戏玩家18之类的目标的表示。当目标在物理空间中移动时,来自捕捉设备(诸如,图4中的深度相机20)的信息可用于调整每一帧中的模型的姿态和/或基本尺寸/形状,以使其准确地表示该目标。图7A示出用于创建测试数据的各种方法的一个示例的流程图。测试数据可通过同时在602捕捉运动剪辑与在604捕捉深度剪辑来创建,两者为主体同时进行的相同的移动,它们随后在606用于为深度剪辑创建地面实况。如以下在图9B和10所讨论的,该同时记录之前是运动捕捉系统和深度捕捉系统之间的对准。替换地,两个测试剪辑可合成在一起,包括在其中的地面实况被合成的剪辑所继承。替换地,主体的深度剪辑可在612捕捉, 并且在614由开发者用骨架跟踪坐标来注释。在608,将包括深度剪辑和相关联地面实况的测试数据存储为测试数据。图7B是表示以上在450示出且由被系统测试的新代码125实现的目标识别、分析和跟踪流水线的功能的流程图。示例方法可使用例如参考图3A-4所描述的目标识别、分析和跟踪系统50的捕捉设备20和/或计算环境12来实现。在步骤800,接收来自捕捉设备的深度信息、或在测试的情况下的深度剪辑。在步骤802,作出关于深度信息或剪辑是否包括人类目标的判定。该判定是基于以下所描述的模型拟合和模型解析过程作出的。如果在 804确定人类目标,则在806扫描人类目标以寻找身体部位,在808生成人类目标的模型,并且在810跟踪该模型。深度信息可包括在以上参考图7A所讨论的过程中创建的深度剪辑。在800接收到包括多个深度图像的剪辑之后,可将剪辑中的每一图像下采样到较低的处理分辨率,从而可用更少的计算开销来更容易地使用和/或更快速地处理该深度图像。另外,可从深度图像中移除和/或平滑掉一个或多个高变度和/或含噪声的深度值;可填入和/或重构缺少的和/或移除的深度信息的各部分;和/或可对接收到的深度信息执行任何其他合适的处理,以使该深度信息可用于生成诸如骨架模型之类的模型,这将在下文更详细地描述。
在802,目标识别、分析和跟踪系统可确定深度图像是否包括人类目标。例如,在 802,可对深度图像中的每一目标或对象进行泛色填充并将其与一个图案作比较以确定该深度图像是否包括人类目标。所获取图像可包括所捕捉场景的二维(2-D)像素区域,其中 2-D像素区域中的每一像素可表示深度值。在804,如果深度图像不包括人类目标,则可在800接收捕捉区域的新深度图像, 以使目标识别、分析和跟踪系统可在802确定该新深度图像是否可包括人类目标。在804,如果深度图像包括人类目标,则在806可扫描该人类目标以寻找一个或多个身体部位。根据一个实施例,可扫描人类目标以提供与用户(诸如,以上参考图3A和3B 所描述的用户18)的一个或多个身体部位相关联的度量(诸如,长度、宽度等),以使可基于此类度量来生成用户的准确模型。如果帧的深度图像包括人类目标,则在806可扫描该帧以寻找一个或多个身体部位。随后可对为每一帧所确定的身体部位的值求平均,以使数据结构可包括与每一帧的扫描相关联的身体部位的诸如长度、宽度等平均测量值。根据另一实施例,可调整所确定的身体部位的测量值,诸如放大、缩小等,以使数据结构中的测量值更接近地对应于典型的人类身体模型。在808,随后可基于该扫描来生成人类目标的模型。例如,根据一个实施例,由所扫描位掩码确定的测量值可用于定义骨架模型中的一个或多个关节。该一个或多个关节可用于定义可对应于人类的身体部位的一个或多个骨骼。在810,随后可跟踪该模型。例如,根据一个示例实施例,诸如以上参考图6B所描述的骨架模型82之类的骨架模型可以是诸如用户18之类的用户的表示。当用户在物理空间中移动时,来自诸如以上参考图4所描述的捕捉设备20之类的捕捉设备的信息可用于调整骨架模型,以使该骨架模型可准确地表示用户。具体而言,可将一个或多个力施加到骨架模型的一个或多个受力方面,以将骨架模型调整成更加紧密地对应于物理空间中的人类目标的姿态的姿态。图7C是用于获得给定帧或其他时间段的用户18的模型(例如,在图7B的步骤 808中生成的骨架模型82)的本系统的一个实施例的流程图。除了骨架关节以外或代替这些骨架关节,该模型可包括一个或多个多边形网格、一个或多个数学图元、一个或多个高阶表面、和/或用于提供目标的机器表示的其他特征。此外,该模型可作为计算系统上存在的一个或多个数据结构的实例而存在。图7C的方法可根据发明人威廉斯等于2010年9月7日提交的名称为“System For Fast,Probabilistic Skeletal Tracking(用于快速、概率性的骨架跟踪的系统)”的美国专利申请序列号12/876,418的教导来执行,该专利申请的全文通过引用结合于此。在步骤812,使用利用可用信息的部分或全部的一个或多个计算理论来提出m个骨架假设。用于分配特定像素或一组像素表示一个或多个对象的概率的无状态处理的一个示例是样本处理。样本处理使用采用深度图像的机器学习方法,并且通过向每一像素分配其可能相对应的一个或多个对象上的概率分布来对每一像素进行分类。样本处理在名称为 “Human Body Pose Estimation (人类身体姿态估计)”的美国专利申请号12/454,628中进一步描述,该专利申请的全部内容通过引用结合于此。在另一实施例中,样本处理和质心生成用于生成关于正确标识诸如身体部位和/或道具之类的特定对象的概率。质心可具有所捕捉的对象被正确标识为给定对象(诸如, 手、脸、道具)的相关联概率。在一个实施例中,生成用户的头、肩、肘、腕和手的质心。样本处理和质心生成在名称为 “Skeletal Joint Recognition and Tracking System(骨架关节识别和跟踪系统)”的美国专利申请号12/825,657和名称为“Multiple Centroid Condensation of Probability Distribution Clouds (概率分布云的多质心压缩)”的美国专利申请号12/770,394中进一步描述。上述申请中的每一个的全部内容通过引用结合于此。接下来,在步骤814中,为每一骨架假设计算评级分数。在步骤816中,从步骤814 的m个建议中填充n个经采样的骨架假设的集合Xt。给定骨架假设可被选入经采样的集合 Xt的概率与步骤814中所分配的分数成比例。由此,一旦已执行了步骤812-814,与分配低概率的建议相比,分配高概率的建议更可能出现在输出集合Xt中。以此方式,Xt将朝良好状态估计移动。随后在步骤818中,可从经采样的集合Xt选择一个或多个样本骨架假设(或其组合)作为所捕捉数据的该帧或其他时间段的输出。图8示出用于跟踪一个或多个目标的示例流水线540的流程图。流水线540可由计算系统(例如,计算环境12)执行以跟踪与游戏或其他应用交互的一个或多个玩家。 在一个实施例中,可在如以上所描述的元素450的目标识别、分析和跟踪系统中使用流水线540。流水线540可包括多个概念阶段深度图像获取542、背景移除544、前景像素分配 546、模型拟合548 (使用一个或多个专家594)、模型解析550 (使用仲裁者596)、以及骨架跟踪560。深度图像获取542、背景移除544和前景像素分配546可全部被认为是对图像数据的预处理的一部分。深度图像获取542可包括从捕捉设备20的深度相机26接收在视野内观察到的目标的深度图像。观察到的深度图像可包括多个观察到的像素,其中每一观察到的像素具有观察到的深度值。如在图8的554所示,深度图像获取542可任选地包括将观察到的深度图像下采样到较低的处理分辨率。下采样到较低的处理分辨率可允许以更少的计算开销来更容易地使用和/或更快速地处理观察到的深度图像。下采样的一个示例是用偶尔被称为重复分割的技术来将像素分组成片。片可被选择成具有近似恒定的深度且大致相等的世界空间区域。这意味着离相机越远的片在图像中看上去越小。关于深度图像的所有后续推理可按照片而非像素来表达。如所指示的,可跳过将像素分组成片的下采样步骤554,以使流水线用来自各个像素的深度数据来工作。如在图8的556所示,深度图像获取542可任选地包括从观察到的深度图像中移除和/或平滑掉一个或多个高变度和/或含噪声的深度值。观察到的深度图像中的此类高变度和/或含噪声的深度值可源自多个不同的源,诸如在图像捕捉过程期间发生的随机和 /或系统性误差、因捕捉设备而导致的缺陷和/或畸变等。由于此类高变度和/或含噪声的深度值可以是图像捕捉过程的伪像,因此在图像的任何未来的分析中包括这些值可使结果偏斜和/或使计算变慢。由此,移除此类值可为未来的计算提供更好的数据完整性和/或速度。背景移除544可包括区分观察到的深度图像中的要跟踪的人类目标与非目标、背景元素。如本文中所使用的,术语“背景”用来描述场景中不作为要被跟踪的目标的一部分的任何事物。背景例如可包括图3A和3B中的地板、椅子和植物23,但是一般可包括在要跟踪的目标前面(即,离深度相机较近)或后面的元素。区分要跟踪的前景元素与可忽略的背景元素可增加跟踪效率和/或简化下游处理。背景移除544可包括向所处理深度图像的每一数据点(例如,像素)分配可称为玩家索引的一个值,该玩家索引将数据点标识为属于特定目标或非目标背景元素。在使用这种方法时,可从流水线540的一个或多个后续阶段的考虑中移除分配有背景索引的像素或其他数据点。作为示例,与第一玩家相对应的像素可分配有等于I的玩家索引,与第二玩家相对应的像素可分配有等于2的玩家索引,而未与目标玩家相对应的像素可分配有等于 0的玩家索引。此类玩家索引可按任何合适的方式保存。在一些实施例中,像素矩阵可在每一像素地址包括指示在该像素地址的表面属于背景元素、第一玩家还是第二玩家等的玩家索引。玩家索引可以是指示像素属于特定目标和/或背景的概率的离散索引或模糊索引。像素可按各种方法被分类为属于目标或背景。一些背景移除技术可使用来自一个或多个先前帧的信息来帮助和改进背景移除的质量。例如,可从深度信息的两个或两个以上帧中导出深度历史图像,其中每一像素的深度值被设置成该像素在样本帧期间经历的最深的深度值。深度历史图像可用于从不移动的背景元素中标识场景的前景中的移动对象 (例如,人类游戏玩家)。在给定帧中,移动前景像素可能具有与深度历史图像中的相应深度值(在相同像素地址)不同的深度值。在给定帧中,不移动的背景像素可能具有与深度历史图像中的相应深度值相匹配的深度值。作为一个非限制性示例,可使用连接岛背景移除。这种技术例如在2009年10月 7日提交的美国专利申请号12/575,363中描述,该申请的全部内容通过引用结合于此。另外的或替换的背景移除技术可用于向每一数据点分配玩家索引或背景索引,或者以其他方式区分前景目标与背景元素。在一些实施例中,可标识背景的特定部分。除了在处理前景目标时不被考虑以外,所发现的地板可用作基准表面,该基准表面可用于准确地在游戏空间中定位虚拟对象、停止作为生成连接岛的一部分的泛色填充、和/或如果其中心太接近地板平面则拒绝岛。一种用于检测FOV中的地板的技术例如在2009年9月21日提交的美国专利申请号12/563,456中描述,该申请的全部内容通过引用结合于此。可使用其他地板发现技术。另外的或替换的背景移除技术可用于向每一数据点分配玩家索引或背景索引,或者以其他方式区分前景目标与背景元素。例如,在图8中,流水线540包括坏的身体拒绝 560。在一些实施例中,最初被标识为前景对象的对象可能因为它们与任何已知目标不相似而被拒绝。例如,可按基本准则来测试最初被标识为前景对象的对象,该基本准则将出现在要跟踪的任何对象(例如,头和/或躯干可标识的、预定容差内的骨骼长度等)中。如果最初被标识为候选前景对象的对象未通过此类测试,则它可被重新分类为背景元素和/或经受进一步测试。以此方式,不要被跟踪的移动对象(诸如,推入场景中的椅子)可被分类为背景元素,因为此类元素与人类目标不相似。在例如流水线正在跟踪目标用户18且第二用户进入视野的情况下,流水线可花费若干帧来确认新用户实际上是人类。此时,可跟踪新用户而非目标用户,或者跟踪除目标用户以外的新用户。在将前景像素与背景像素进行区分之后,流水线540还对被认为与要跟踪的前景对象相对应的像素进行分类。具体而言,在图8的前景像素分配546,分析每一前景像素来确定前景像素可能属于目标用户的身体的什么部位。在各个实施例中,可省略背景移除步骤,并且可用例如通过相对于过去的帧的移动的其他方式来确定前景对象。一旦完成了深度图像获取542、背景移除544和前景像素分配546,流水线540执行模型拟合548以标识用作玩家目标18的机器表示的骨架假设,并且执行模型解析550以从这些骨架假设之中选择被估计为玩家目标18的最佳机器表示的一个(或多个)假设。模型拟合步骤548根据例如以上所引用的发明人威廉斯等于2010年9月7日提交的名称为 “System For Fast, Probabilistic Skeletal Tracking(用于快速、概率性的骨架跟踪的系统)”的美国专利申请序列号12/876,418来执行。一般而言,在565,目标识别、分析和跟踪系统跟踪关节连接的骨架模型的配置。在接收图像中的每一个之后,可将与特定图像相关联的信息和与该模型相关联的信息作比较以确定用户是否可能已执行了移动。例如,在一个实施例中,该模型可被光栅化成诸如合成的深度图像之类的合成图像。可将合成图像中的像素和与每一接收到的图像中的人类目标相关联的像素作比较以确定接收到的图像中的人类目标是否已移动。根据一个示例实施例,可基于在合成图像和接收到的图像之间比较的像素来计算一个或多个力矢量。随后可将该一个或多个力施加到或映射到诸如该模型的关节之类的一个或多个受力方面,从而将该模型调整成更接近地对应于物理空间中的人类目标或用户的姿态。根据另一实施例,可将该模型调整成适合每一接收到的图像中的人类目标的掩码或表示,从而基于用户的移动调整该模型。例如,在接收每一观察到的图像之后,可基于每一接收到的图像中的人类目标的掩码来调整可定义每一骨骼和关节的包括X、Y和Z值在内的矢量。例如,该模型可基于与每一接收到的图像中的人类的掩码的像素相关联的X和Y 值在X方向和/或Y方向上移动。另外,可基于与每一接收到的图像中的人类目标的掩码的像素相关联的深度值在Z方向上旋转该模型的关节和骨骼。图9A和9B示出根据以上图I的步骤166的用于创建测试数据以及相关联地面实况的过程。如上所述,用于提供与地面实况相关联的深度剪辑数据的一个实施例是手动地标志深度剪辑数据。图9A示出一种用于手动地注释深度数据的方法。在904,加载主体移动的原始深度剪辑或具有所计算的地面实况的深度剪辑。对于手动标记的剪辑,手动过程随后可通过注释原始深度剪辑来生成所有地面实况,或修改地面实况数据以与期望的骨架模型相匹配。在904,将深度剪辑加载到分析界面中。根据图9A的方法,针对每一帧908,用户在909在查看器中查看相对于深度数据的骨架模型坐标,并且在910基于什么是视觉上可察觉的来手动地标记用于骨架处理流水线的骨架数据。如果地面实况数据存在,则步骤910可包括标识现有地面实况和观察到的地面实况之间的偏移量。在912特定剪辑中的每一帧已完成之后,如果在914附加剪辑可用, 则加载另一校准剪辑,并且在916重复该过程。如果为是,则在步骤918附加剪辑的附加处理可继续。图9B示出用于创建地面实况的替换过程,其中运动捕捉系统结合深度剪辑用于创建地面实况。在922,运动捕捉系统使传感器的位置对准主体上的真实“关节”预期所在的位置。在有源传感器用于记录运动捕捉数据的情况下,在922,在运动捕捉传感器的坐标空间和与传感器相关联的特定关节之间进行校准,从而产生传感器和关节之间的偏移量。这些偏移量可用于校准运动捕捉数据的记录,并且自动地使该数据与骨架地面实况相关。每一传感器提供位置和定向,从该位置和定向可计算从该传感器到该传感器的坐标空间中的一个或多个关节的转换。对于所有运动捕捉,在运动捕捉和深度相机之间进行对准。该对准过程在图10中示出。在926同时记录深度剪辑和运动捕捉剪辑,并且在928加载校准剪辑。在930分析目标识别、分析和跟踪流水线中的深度剪辑,并且在932计算流水线标识的关节和运动捕捉传感器坐标系位置之间的偏移量。在934将偏移量应用于深度剪辑。在步骤932可确定距离、方向、力或运动的任何偏移量,并且在936该差值用于确定校准准确性。在936验证对准准确性,并且该对准准确性可包括处理剪辑的人作出的准确性的质量评估。在938 如果准确性是可接受的,则处理继续。如果在940准确性是不可接受的,则在940记录附加校准剪辑。图10示出图9A或9B的步骤922中所使用的用于将运动捕捉系统的坐标空间对准到深度捕捉坐标空间的过程。对准准确性是被流水线跟踪的主体的骨架模型和运动捕捉检测到的位置之间的差异的量化值。在一个实现中,在步骤1010,使用保持面向深度传感器且在运动捕捉系统和深度传感器的视野内的物理环境中摇动的运动捕捉传感器来创建测试数据。运动捕捉系统将使用其自己的技术来在运动捕捉系统1020的本地坐标空间中确定运动捕捉传感器的位置,并且以上如参考图4所示的深度传感器将在1014确定离传感器最近的点。运动捕捉坐标空间中的点集合(来自运动捕捉设备跟踪的传感器)和深度捕捉坐标空间中的点集合在1040用于计算使两个点集合相关的变换矩阵。任何随后记录的运动捕捉数据将对准应用于运动捕捉传感器以将其变换至深度相机空间。使用该矩阵,可根据图9A和9B为地面实况校正随后记录的运动数据。如上所述,可存在用于特定情形的测试数据不存在的情况。图11和12示出组合深度数据的合成。使用深度剪辑信息以及相关联地面实况进行对新测试数据的合成,如果其存在深度剪辑。为了将可能具有相关联地面实况的一个或多个深度剪辑复合成单个场景,用户自例如如图12A所示的房间的基础剪辑开始。如上所述,房间必须包括地板,并且可包括其他对象、墙等。图12A所示的房间是图3A所示的示例性房间的深度像。如图12B所示,创建器通过首先从如图12C所示的新剪辑中移除背景伪像来将要复合的新剪辑添加到场景。如图11所示,可通过在1162首先取回剪辑的当前帧的深度图来执行图12A-12C 所示的步骤。在1164,背景移除过程用于隔离该帧中的用户。在一个实施例中,通过经由地板检测移除地板、并且随后提供使用户与深度图分离的边界框来手动地执行背景移除。替换地,我们可能使用其他背景移除算法,诸如在2009年10月7日提交的名称为“Systems And Methods for Removing A Background Of An Image (用于移除图像的背景的系统以及方法)”的美国专利申请序列号12/575,363中描述的背景移除算法,该专利申请的全部内容通过引用结合于此。图12B示出在场景中被隔离的用户。在步骤1166,将深度图转换成三维网格。三维网格在1168允许将剪辑地板平面变换成复合剪辑的地平面。坐标匹配可用于该目的。在1168计算剪辑地板平面和复合地面层的矩阵和变换。变换使用各个剪辑的地板平面和地面层来完成变换映射。
在步骤1170,剪辑中的每一帧的深度图由步骤1168中所计算的矩阵变换。在步骤 1172,呈现复合场景的模型。在图12D中示出一种此类复合场景,而在图12H中示出另一种此类复合场景。在步骤1174,对深度缓冲区采样并将其转换成深度图格式。在1176,合并复合深度图与在1174所计算的深度图以完成复合剪辑。如果新剪辑包含地面实况数据,则该数据由同一矩阵变换,由此在复合剪辑中产生新地面实况。图12B示出添加到场景的新剪辑的深度像,而图12C示出在不移除背景图像的情况下的场景中的人类用户。接下来,将新剪辑插入如图12D所示且以上所讨论的合成场景。通过基于变换矩阵将被隔离的用户的前景图像转换成目标图像的基准帧来提供新剪辑中的用户的位置。基础剪辑内的新剪辑的位置随后可被设置为如图12E所示的。(注意, 用户在图12B所不的位置和图12E所不的位置之间移动。)可通过将两个孩子添加到图12F中的场景并且使背景伪像与图12G中的新剪辑隔离来为另一新剪辑重复以上所讨论的步骤。在图12H中,将新剪辑前景(孩子的体形)插入如所示的场景,并且如图121中所示,在场景内定位用户。接下来,具有背景场景中的所有各种用户的合成剪辑的完整回放如图12J所示。应当理解,任何类型的深度数据(捕捉的或合成的)可用于以上合成过程。即,用户的真实世界深度捕捉可与计算机生成的对象一起使用,并且在场景中合成。例如,此类对象可用于测试可能对捕捉设备隐藏的用户部位的运动。此外,用户可对输入剪辑排序,以在定义的时间处发生并且在合成场景中播放定义的持续时间。图13是示出以上在图IB的步骤174中所讨论的注释深度剪辑的步骤的过程。在步骤1302,为在步骤1304可用的每一深度剪辑分配有界元数据并且其附连有剪辑。有界元数据可包括例如以下在表格中列出的元数据。应当认识到,分配给测试数据的元数据可在记录该数据时、在分析该数据之后、或在已将测试数据插入数据储存库之前或之后的任何点发生。元数据集合的主要目标最终是辅助开发者跟踪问题情形和姿态。一旦他们已标识了剪辑有问题,他们将能够找到具有类似特征的其他剪辑以测试公共原因。附加目标是提供有价值的信息作为报告的一部分。版本、固件版本、驱动程序版本、日期/时间、平台等可自动地确定,并且一般使输入最小化且降低误差的风险。表格I示出可与测试数据相关联的各种类型的元数据
权利要求
1.一种用于验证目标识别、分析和跟踪系统的准确性的方法,所述方法包括提供记录和合成的深度(104)以及相关联地面实况数据(105)的可搜索集合(102),所述地面实况数据包括一系列点处的目标运动的关联,所述地面实况样本,在提供给跟踪流水线时,与所述样本的偏差针对所述样本提供误差以确定所述流水线的准确性;响应于测试所述流水线的请求(170、172),返回所述可搜索集合的至少子集;接收来自所述可搜索集合的至少子集上的流水线的跟踪数据输出(176、188);以及生成对所述跟踪数据相对于所述至少子集中的地面实况的分析(178、190),以提供相对于所述地面实况的误差的输出。
2.如权利要求I所述的方法,其特征在于,所述方法还包括搜索所述可搜索集合,创建测试套件,以及将所述可搜索集合输出到多个处理设备,所述处理设备中的每一个包括所述跟踪流水线的实例。
3.如权利要求2所述的方法,其特征在于,所述生成分析的步骤包括检测所述流水线的实例所创建的深度数据的经处理版本之间的误差,以及根据一个或多个计算度量分析所述误差,所述一个或多个计算度量提供对所述流水线的跟踪准确性的指示。
4.如权利要求3所述的方法,其特征在于,测试度量针对下列项中的一个或多个来测量跟踪准确性中的总进步和退化整个场景,单个帧,帧中的单个主体,或用户的特定身体部位。
5.如权利要求3所述的方法,其特征在于,测试度量针对下列项中的一个或多个来测量跟踪准确性中的总进步和退化背景移除,对模拟玩家表示重定目标,身体部位分类,以及对场景成分的检测。
6.如权利要求I所述的方法,其特征在于,还包括通过使传感器记录与元数据相关联来创建多个测试数据剪辑,以创建所述地面实况。
7.如权利要求6所述的方法,其特征在于,所述元数据定义每一测试数据剪辑的可测试方面。
8.一种用于验证目标识别、分析和跟踪系统的准确性的系统,所述系统包括记录和合成的深度剪辑以及每一深度剪辑的相关联地面实况的可搜索储存库(102),所述地面实况包括在已被验证为准确的深度剪辑中所检测的人类骨架信息的关节位置的关联;一个或多个处理设备(130、140),每一处理设备包括目标识别、分析和跟踪流水线的至少一个实例;分析引擎(200),所述分析引擎(200)控制响应于测试所述流水线的请求来提供所述可搜索集合的至少子集、且接收来自所述可搜索集合的子集上的流水线的跟踪数据输出; 以及报告生成器(250),所述报告生成器(250)输出对所述跟踪数据相对于所述至少子集中的地面实况的分析,以提供相对于所述地面实况的误差的输出。
9.如权利要求8所述的系统,其特征在于,包括多个处理设备,每一处理设备包括所述目标识别、分析和跟踪流水线的实例。
10.如权利要求9所述的系统,其特征在于,所述分析引擎包括作业控制器,所述作业控制器提供实现所述多个处理设备中的每一个上的各个实例的指令,并且将所述可搜索集合的子集输出到所述多个处理设备中的处理设备。
全文摘要
本发明提供了对人类目标跟踪的确认分析。提供了用于测试目标识别、分析和跟踪系统的技术。提供了记录和合成的深度剪辑以及相关联地面实况跟踪数据的可搜索储存库。各自包括目标识别、分析和跟踪流水线的至少一个实例的一个或多个处理设备使用储存库中的数据来分析跟踪流水线的性能。分析引擎响应于测试流水线的请求来提供可搜索集合的至少子集,并且接收来自可搜索集合的至少子集上的流水线的跟踪数据输出。报告生成器输出对跟踪数据相对于至少子集中的地面实况的分析,以提供相对于地面实况的误差的输出。
文档编号G06T7/20GK102609954SQ20111044326
公开日2012年7月25日 申请日期2011年12月16日 优先权日2010年12月17日
发明者C·C·佩普尔, C·C·马雷, J·C·福斯特, J·D·普尔西弗, J·贝尔托拉米, K·T·胡耶恩, M·T·詹尼, N·A·艾德格米, P·O·科克, P·穆哈吉尔, R·J·菲茨杰拉德, R·O·F·小福布斯, S·D·佩罗, S·P·斯塔赫尼克, S·刘, T·拉万德, W·R·比森 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1