在运动捕捉中使用的重构渲染集群的制作方法

文档序号:6569458阅读:213来源:国知局
专利名称:在运动捕捉中使用的重构渲染集群的制作方法
在运动捕捉中使用的重构渲染集群 相关申请的交叉引用
本发明要求在2005年8月26日提交的申请号为60/711,971、标题为 "RECONSTRUCTION RENDER FARM USED IN MOTION CAPTURE" 的共同待决美国临时专利申请和在2005年8月26日提交的申请号为 60/711,922、标题为"DATABASE USED IN MOTION CAPTURE"的共同
待决美国临时专利申请的优先权。以上引用的专利申请的公开内容通过引 用而结合于此。
背景技术
本发明涉及三维图形和动画,更具体地,涉及使得在处理大的运动捕 捉(motion capture)数据文件时能够提高效率的运动捕捉系统。
运动捕捉("MOCAP")系统被用于捕捉实际对象的运动并将其映 射到计算机生成的对象上。这样的系统通常在运动图像和视频游戏的制作 中被用于创建用作创建计算机图形("CG")动画的源数据的人的数字表 示。在典型的系统中,演员身穿在各个位置处附有标记(marker)的衣服 (例如,在躯体和四肢上附有小的反射标记),并且在照射这些标记的同 时数字相机从不同的角度记录演员的运动。系统随后对图像进行分析以确 定在各个帧中的演员衣服上的标记的位置(例如,作为空间坐标)和方 向。通过跟踪标记的位置,系统创建标记随时间的空间表示,并建立运动 中的演员的数字表示。这种运动随后被应用于数字模型,该数字模型随后 可能被纹理化(texture)并被渲染以制作演员和/或表演的完整CG表示。 特效公司已经在许多流行电影中使用这种技术来制作逼真的动画。

发明内容
本发明提供用于重构来自多个MOCAP相机的三维数据的系统和方法。
在一种实现方式中, 一种用于运动捕捉与至少一个运动捕捉对象相耦
合的标记的方法包括生成多个配置(Configuration),每一个配置都包 括分割参数;使用多个配置来将运动捕捉节拍(beat)分割成节拍分区 (partition);重构所述节拍分区,其中,使用每一个配置和相应的运动捕 捉相机校准信息来重构每一个节拍分区从而生成表示标记的点数据;以及 合并所述点数据以形成至少一个主点文件。
在另一种实现方式中, 一种用于运动捕捉与至少一个运动捕捉对象相 耦合的标记的系统包括分解模块,被配置用于将运动捕捉节拍分割成多 个节拍文件;配置模块,被配置用于生成多个配置,每一个配置都包括所 述多个节拍文件中的至少一个的位置信息;重构过程管理器模块,被配置 用于重构所述多个节拍文件,其中,使用每一个配置和相应的运动捕捉相 机校准信息来重构每一个节拍文件,从而生成表示标记的点数据;以及合 并模块,被配置用于合并所述点数据以形成主点文件。
在查阅以下详细描述和附图之后,本发明的其它特征和优点对于本领 域普通技术人员来说将变得更加足够清楚。


通过研究附图可以部分收集本发明的关于其结构和操作的细节,在附 图中,相似的标号指示相似的部分,并且其中
图1是示出可以结合各种实现方式来使用的MOCAP系统的元件的功 能框图2是表示可以结合各种实现方式来使用的示例性重构模块的详细框
图3是表示可以结合各种实现方式来使用的MOCAP数据库接口模块 的功能框图4是示出可以结合各种实现方式来使用的MOCAP重构方法的流程
图5A和5B示出了与MOCAP重构相关的配置的生成方法的两种实现方式;
图6是示出可以结合各种实现方式来使用的MOCAP系统的功能框 图;以及
图7是示出根据MOCAP重构的示例方法的在处理模块之间的关系的 示图。
具体实施例方式
一般而言,MOCAP相机所捕捉的视频被传递到MOCAP处理系统, MOCAP处理系统使用该视频从相机的视场来确定目标(或者多个目标) 上的标记的位置和运动。处理系统使用位置信息来建立和更新表示该目标 (这些目标)的三维(3D)模型(即,"点云(point cloud)")。建立 3D模型通常被称为"重构"。
因此,MOCAP重构是将来自多个MOCAP相机的图像数据融合以形 成虚拟3D空间中的原始数据点云的过程。该过程一般包括捕捉 MOCAP数据以使其成为结合预定的"配置"来使用的文件。在这种上下 文中,配置一般包括适合特定类型的重构处理的处理步骤的集合。因此, 通常根据MOCAP标记类型和数据特性(例如,用数据表示的身体部分 (例如,"面部"、"躯体"或"手部"))来对配置进行分类。
重构过程通常接收"节拍"、配置和MOCAP相机校准信息作为输 入。"节拍"包括从MOCAP拍摄中捕捉的数字图像数据。MOCAP相机 校准信息例如描述了相机位置和拍摄角度。MOCAP相机校准信息可以用 与用于捕捉节拍的MOCAP相机相对应的多个校准文件来表示。
当在特定应用中,包括节拍的数字图像文件(例如"节拍文件")太 大以至于传统的重构处理无法处置时将出现重大问题。例如,传统重构过 程的可管理输入量可以为大约1000帧,而某些MOCAP节拍文件可能包 括多达13000帧。无法载入这样的大文件通常会导致系统停机,而恢复有 时候需要昂贵的工时和其它资源。
这里所公开的某些实现方式提供了一种重构渲染集群(reconstruction render farm, RRF),用于自动地将以其它方式无法管理的包括节拍的大运动捕捉文件("MOCAP节拍文件")分割成多个帧子集,这些帧子集 各自可由多个MOCAP重构过程来管理。
在一种实现方式中,RRF使用MOCAP数据库来判断需要重构哪些节 拍、以及应用哪种类型的重构参数(例如,"面部"、"躯体"、"手 部")。RRF可以将跟踪节拍的任务分给许多计算机,以使得每个计算机 处理较少量的帧,其结果是可以更快地重构节拍。当重构完成时,因为重 构而被分割的节拍被重新合并在一起作为一个邻接(contiguous)文件。
在另一种实现方式中,RRF使用MOCAP数据库来判断从哪里获取需 要重构的数据、以及结束时将文件保存在哪里。RRF还针对文件的状态来 更新数据库,所述文件的状态包括指示出"就绪"、"结束"、"中 止"、"失败"、"进行中"、"成功"等的状态。
在又一种实现方式中,RRF提供了一种MOCAP数据库,在该数据库 中,MOCAP节拍文件被针对重构而标记,并且这些节拍文件实质上被分 解成多个分区。当MOCAP数据库模块发出就绪状态时,将自动地发起将 节拍分成多个分区。具有相关配置和校准信息的各个分区被提供给一个 "集群"的重构过程中的一个重构过程。当重构过程完成之后,RRF将得 到的经过处理的数据的文件合并以恢复完整且邻接的节拍。
在阅读本说明书之后,本领域技术人员将很清楚如何在各种替代实现 方式和替代应用中实现本发明。然而,虽然将在此描述本发明的各种实现 方式,但是应当了解,这些实现方式仅仅是通过示例的方式而非限制的方 式来被呈现的。因此,对各种替代实现方式的详细描述不应当被解释为限 制本发明的范围或广度,本发明的范围或广度在所附权利要求中被阐明。
图1是示出MOCAP系统的元件的功能框图,该MOCAP系统包括布 置在捕捉空间100的周围的数字MOCAP相机104、 MOCAP成像模块 108、 MOCAP数据库模块110、以及重构渲染集群("RRF" ) 130。数 字MOCAP相机104被以各种观察角度布置在捕捉空间100周围。捕捉空 间100例如是演员进行表演并且演员的运动被通过记录所附标记的运动而 捕捉(如上所论述的)的区域。另外,不活动的对象也可以被置于捕捉空 间100中,并类似地设有标记。在物理3D空间中精确地测量MOCAP相机104的位置,以使得可以精确地将随后对所捕捉的标记位置的计算映射
到虚拟3D空间中的计算机生成对象上。
为了简化起见,仅示出了 5个MOCAP相机104A-E。但是,对于典型 的MOCAP会话,通常会使用以相对于捕捉空间100的各种方位和仰角 (elevation)来布置的多达两百个相机或者更多。这有助于确保在随后的 重构处理中对标记位置的精确解析(resolution)。此外,大量相机还确保 了标记至少对例如MOCAP相机子集104A-C来说一直是可见的,因而充 分降低了在节拍期间由于标记例如在某些观察角度被演员的身体所遮蔽 (occlude)而导致的不利影响。任何感兴趣的标记仍然都应当被其它 MOCAP相机104D-E捕捉。此外,可能会使用不同类型的标记,从而需要 专门适用的MOCAP相机来仅仅捕捉那些特定标记的视图。这进一步增加 了 MOCAP相机104A-E的总数。
MOCAP成像模块108接收来自MOCAP相机104A-E的图像数据,并 执行图像处理和管理功能以生成MOCAP图像文件。MOCAP数据库模块 110存储所生成的MOCAP图像文件并提供对所生成的MOCAP图像文件 的访问。在一种实现方式中,根据其中获取了图像文件的MOCAP "节 拍"(即,MOCAP会话)并根据捕捉用于生成该图像文件的图像数据的 MOCAP相机104A (例如)来参考该MOCAP图像文件。
MOCAP数据库模块110至少存储并管理节拍文件114A-E、点文件 134、以及校准文件124A-E。 MOCAP数据库模块110还接收并保存运动 捕捉数据,并更新状态指示符(以下将更详细地说明)。应当了解, MOCAP数据库模块110还管理对诸如关于"面部"、"躯体"和"手 部"处理的节拍重构参数之类的其它类型数据的访问。
在图1所示出的实现方式中,被生成并存储在MOCAP数据库模块 110中的节拍文件114A-E表示在单个节拍期间分别从相应的MOCAP相机 104A-E捕捉的图像数据。在各个节拍文件114A-E中包括的数据帧实质上 横跨整个节拍并且被根据时间来排列。即,各个节拍文件114A-E可以包 括多个图像数据帧,其中,在各个节拍文件114A-E中的相应帧实质上是 在同一时刻被捕捉的。RRF模块130通过将来自多个MOCAP相机104A-E的MOCAP图像
数据融合成单个3D场景来执行节拍的3D重构,所述单个3D场景包括被 表示为数据点的原始标记数据。术语"数据点"通常被称为"点云"。 RRF模块130 —般接收用于各个节拍分区的一组节拍文件114A-E、配置 120、以及校准文件124A-E作为输入,以下将详细描述。
配置120包括关于节拍文件114A-E而将被应用的一系列处理步骤。 配置120可以包括例如标记表示大小的可接受范围。校准文件124A-E包 括关于MOCAP相机104A-E在"实际"物理空间中的、通常相对于捕捉 空间100的布置的信息。例如,MOCAP相机104A应当被唯一地定位,并 因而应当具有相应的校准文件124A,该校准文件124A包括关于其唯一位 置的信息。应当了解,当使用了大量MOCAP相机104A-E时,也应当具 有相应大量的相关校准文件124A-E。
如上所述,RRF模块130使用节拍文件114A-E、配置120和在校准 文件124A-E中的校准信息来生成虚拟空间中的原始3D数据点云,各个数 据点云实质上表示捕捉空间100中的一个物体或演员。 一般在点文件134 中表示一个或多个数据点云,点文件134是由RRF模块130生成的。点文 件134可以被存储在MOCAP数据库模块110中,并由MOCAP数据库模 块110来管理。
图2是表示可以结合这里所描述的各种实现方式来使用的RRF模块 130的一个示例的详细框图。在图2所示的实现方式中,RRF模块130包 括MOCAP数据库接口模块200、分解模块204、配置模块208、重构管理 器模块212、多个重构模块230A-D、以及合并模块216。如上所论述的, MOCAP数据库模块110判断节拍(即,节拍文件114A-E)何时可用于重 构处理,并向MOCAP数据库接口模块200发送"就绪"状态。
MOCAP数据库接口模块200执行关于存储在MOCAP数据库模块 110中的数据的输入和输出功能。MOCAP数据库接口模块200从MOCAP 数据库模块110接收状态信息,并向MOCAP数据库模块110发送状态。 这些状态包括"结束"状态以及指示出诸如"中止"、"失败"、"进行 中"和"成功"之类的处理情形的状态,其中,"结束"状态指示出节拍重构处理已完成。应当了解,其它状态指示符也是可以的。虽然MOCAP 数据库接口模块200被示出为支持对单个MOCAP数据库模块110的访 问,但是,MOCAP数据库接口模块200可以支持对包括其它MOCAP数 据库的多个其它数据库(未示出)的访问。
在图示的实现方式中,分解模块204判断如何将节拍文件(例如,节 拍文件114A-E)分割成用于在重构模块230A-D中进行有效处理的大小较 小的单元。可以实时地计算有效分区的大小。或者,可以预先确定有效分 区大小。
分解模块204通过对当前节拍的总持续时间进行细分来分割节拍文件 114A-E。每个细分可以构成一个分区,该分区包括对重构模块230的操作 限制来说是有效的帧持续时间或者帧数。例如,在节拍的持续时间为195 秒并且有效分区大约为15秒的情况下,将得到13个有效分区。可替代 地,可以根据帧的数目来进行分割。即,在节拍可能具有大约13000个 帧,并且已经确定1000个帧的大小为有效分区大小的情况下,将再次得 到13个这样的有效分区。在这两种情况下,都生成了一连串的帧索引, 并且这些帧索引被用于对节拍文件114A-E进行索引。SP,在根据时间来 执行分割的情况下,与基于时间的细分相对应的帧索引可以因此被确定。
有效分区的大小还可以根据包括节拍的帧的数目、或者根据可用的重 构模块230A-D的数目、或者根据这两者来确定。例如,在节拍持续时间 为195秒并且有20个重构模块可用的情况下,该节拍可以被分割成20个 分区,每一个分区大约长为9.75秒。可替代地,在根据帧的数目来执行分 割的情况下,具有分布于相同的20个重构模块上的13000个帧的节拍可 以被分割成20个分区,每一个分区具有650个帧的分区大小,这大大小 于例如约为1000个帧的最大值。因此,当有更多的重构模块可用时,可 以使用更小的分区来更加广泛地分布节拍重构任务负荷,并从而产生更强 的整体系统性能。
在MOCAP数据库接口模块200接收到就绪状态之后,分解模块204 可以自动地针对当前可用的一组节拍文件114A-E来确定分区。或者,在 MOCAP数据库接口模块200接收到就绪状态之后,分解模块204可以自动地寻找并选择被标记为用于重构的节拍文件114A-E。在一种实现方式 中,分解模块204取得可用于重构的节拍文件114,对这些节拍文件114 进行分割,根据分区来细分这些节拍文件114A-E,并将产生的经过分割 的节拍文件114A-E保存在MOCAP数据库模块110中。在一些实现方式 中,分解模块204可以被手动地调用以处理一组节拍文件114A-E。
在一种实现方式中,配置模块208生成与在分解模块204处确定的各 个分区相对应的配置120。 一个配置120与单个分区相对应,并且指定了 标识出该分区的索引信息。配置120 —般还包括用于控制在重构模块 230A-D处的重构处理的细节的多个参数。配置的其它示例包括指示出在 图像数据中捕捉的最大和最小标记大小的参数。太小或者太大的标记可以 被理解为相距太远或者太近,因而由于无法用于重构处理(即,超出了设 置极限)而被忽略。类似地,可以用下述配置参数来指定标记运动速率的 范围,所述配置参数指引重构处理忽略可能虚假地指示出运动过快或过慢 的物体或演员的标记数据。
在一种实现方式中,配置模块208从MOCAP数据库模块110获得以 上所论述的配置参数数据中的一些或全部。在另一种实现方式中,配置模 块208在本地存储并管理参数数据中的一些或全部。如上所论述的,配置 120可以包括文件。或者,配置120可以包括这样的消息,该消息被配置 成经由网络链路或者通过过程间通信方式而发送到重构管理器模块212。
重构管理器模块212接收用于节拍文件114A-E的各个分区的配置 120。在一种实现方式中,管理器模块212为各个配置120并因而为在分 解模块204处确定的各个分区调用重构模块230A-D。当调用各个重构模 块230A-D时,管理器模块212还可以向各个元件提供以下信息作为输 入(1) MOCAP数据库模块110中可用于处理的节拍文件114A-E的位 置;(2)包括节拍文件帧索引(即,分割)信息的配置120;以及(3) 一组相关校准文件124A-E。节拍文件位置信息可以被表示为到MOCAP 数据库模块IIO的目录路径,或者可以使用诸如SQL之类的语言在数据库 访问指令中指定。此外,节拍文件位置信息被提供给重构模块230A-D (在其被调用时)的各个节拍。应当了解,虽然图2中为了简化起见示出
12了四个重构模块230A-D,但是,可能会需要较少的重构元件。还可能需 要极大量的重构元件以处置与大量MOCAP相机104A-E相对应的节拍文 件。这在节拍具有相对较长的持续时间(包含大量帧)的情况下尤其属 实。
在一种实现方式中,重构模块230A-D直接从MOCAP数据库模块 110获得节拍文件114A-E。在另一种实现方式中,重构模块230A-D通过 MOCAP数据库接口模块200来获得节拍文件114A-E。在又一种实现方式 中,重构模块230A-D仅访问相关节拍文件114A-E的指定分区。例如,重 构模块230C通过使用在配置120中包括的索引信息来访问MOCAP数据 库模块110从而接收根据其被指派的分区的节拍数据。MOCAP数据库模 块110随后从节拍文件114A-E的相应分区中提取经过分割的数据。或 者,类似地可以使用索引信息和MOCAP数据库接口模块200在MOCAP 数据库模块IIO处访问节拍数据。
一旦重构模块230A-D获得经过分割的节拍数据,其就根据在配置 120和校准文件124A-E中包括的参数和信息来执行重构处理。当重构过程 完成时,各个重构模块230A-D随后可以生成点云数据,该点云数据表示 其运动在该节拍分区中被捕捉的一个或多个物体和/或演员。通常,这样的 点云数据被重构模块230A-D输出作为点文件。
在图2所示的实现方式中,合并模块216接收与节拍分区相关联的输 出数据点云,并将它们合并以形成实质上表示整个节拍的综合数据云。合 并模块216接收重构模块230A-D的输出(例如,存储在点文件中的数 据),并合并这些输出以形成主点文件630 (如图6所示)。但是,应当 注意,在节拍的总长度小于1000个帧的划分帧范围的情况下,将不需要 合并模块216。
图3是表示结合这里所描述的各种实现方式来使用的MOCAP数据库 接口模块200的功能框图。MOCAP数据库接口模块200在功能上与 MOCAP数据库模块110相耦合,并且包括状态接收模块302、状态发送 模块304、文件接收模块306和文件发送模块308。
在图示的实现方式中,状态接收模块302从MOCAP数据库模块110接收状态信息。如上所论述的,所接收的状态信息包括"就绪"状态,该 "就绪"状态例如指示出在MOCAP数据库模块IIO处可以得到节拍文件
114A-E以用于重构处理。状态发送模块304提供向MOCAP数据库模块 110发送状态信息的能力。在一种实现方式中,状态发送模块304发送
"结束"状态,该"结束"状态是来自合并模块216的或者经由重构管理 器模块212从分布式重构模块230A-D到来的信息的结果,其指示出节拍 重构处理已经完成。其它状态例如包括指示出处理状态或系统健康状况的
"中止"、"失败"、"进行中"、"成功"等。应当了解,在MOCAP 数据库接口模块200处可以接收和发送其它类型的状态。
文件接收模块306使得重构模块230A-D可以从MOCAP数据库模块 110接收节拍文件114A-E。同样地,文件发送模块308使得包括点文件 134、 634A-D和/或主点文件630的某些文件可以被发送到MOCAP数据库 模块110。在这两种情况下,文件都是通过MOCAP数据库接口模块200 而发送到或接收自MOCAP数据库模块110的。在一种实现方式中,根据 诸如由SQL编程语言指定的数据库协议之类的数据库协议来提供在 MOCAP数据库接口模块200处的发送和接收功能。在另一种实现方式 中,可以使用"平面文件"数据库管理方案,在该方案下,目录和文件路 径被用于直接文件访问。但是,应当了解,许多其它文件访问方案也提供 这里所描述的关于MOCAP数据库接口模块200的功能。
图4是示出可以结合这里所描述的各种实现方式来使用的MOCAP重 构方法的流程图。在图4所示的实现方式中,在400中接收节拍就绪状 态。在404中生成配置120,该配置120包括用于将节拍文件114A-E所包 括的节拍数据分割成节拍分区的参数。即,每一个节拍文件114A-E都包 括横跨节拍的图像帧序列。分割信息包括该序列中的帧的子范围,其被表 示为帧索引。在图2所示的实现方式中,这个步骤是由分解模块204和配 置模块208共同执行的。在408中针对各个配置120来调用重构过程。在 412中,为这样调用的各个重构过程提供相应的配置120和相应的 MOCAP相机校准信息。这些步骤对应于重构管理器模块212的功能。在 416中,通过各个重构过程来获得节拍数据的相应分区。在420中,使用节拍数据分区、配置120和MOCAP相机校准信息在各个重构过程中执行 重构。在424中,接收各个重构过程的输出数据。接下来,在428中,这 样接收的输出数据被合并以形成一个或多个3D数据点云,这一个或多个 3D数据点云可以包括在主点文件630中。在图2所示的实现方式中,这些 步骤是通过合并模块216来执行的。随后在432中,可以向MOCAP数据 库模块110传递"结束"状态。
图5A和5B示出了与MOCAP重构相关的配置120的生成方法的两种 实现方式。更具体而言,流程图中示出的实现方式涉及生成包括节拍数据 分割信息的配置120 (参见图4的步骤404)。图5A所示出的实现方式基 于时间来执行节拍分割,图5B所示出的实现方式基于帧索引来执行节拍 分割。
图5A的基于时间的实现方式包括在500中获取当前节拍的开始和 停止时间。在504中,可以根据这些开始和停止时间来确定节拍持续时 间。在508中,可以使用预定的分区持续时间信息来确定节拍分区的开始 和停止时间。在一种实现方式中,预定的分区持续时间对重构过程的输入 限制来说是相当有效的。例如,分区持续时间应当包括仅仅是重构过程一 次所能够处置的数据。
随后在512中生成配置120,该配置120包括节拍分区的开始和停止 时间。在532中,指示出MOCAP标记的有效的最小和最大大小的节拍重 构参数也被包括在配置中。类似地,在536中,指示出MOCAP标记的可 接受的最小和最大运动速率的节拍重构参数可以被包括在配置中。此外, 在540中,辅助"面部"、"躯体"或"手部"处理的节拍重构参数或者 其任意组合可以被包括在配置中。应当了解,在重构过程中所执行的其它 功能所需要的各种参数也可以被包括在配置120中。
图5B的基于帧的实现方式包括在516中获得当前节拍的开始和停 止帧索引。在520中,可以根据这些开始和结束帧索引来确定横跨该节拍 的持续时间的帧的数目。在524中,可以使用预定的分区持续时间或者帧 的预定数目来确定分区的开始和停止帧索引。同样地,在一种实现方式 中,预定的分区持续时间对重构过程的输入限制来说是相当有效的。例如,分区长度应当包括仅仅是重构过程一次所能够处置的帧。
类似于基于时间的实现方式,在528中生成配置120,该配置120包 括节拍分区的开始和停止时间。在532中,指示出MOCAP标记的有效的 最小和最大大小的节拍重构参数可以被包括在配置中。类似地,在536 中,指示出MOCAP标记的可接受的最小和最大运动速率的节拍重构参数 可以被包括在配置中。此外,在540中,辅助"面部"、"躯体"或"手 部"处理的节拍重构参数或者其任意组合可以被包括配置中。
在时间和帧数目之间可以开展各种映射。因此,还应当了解,可以实 现基于时间和基于帧的处理的各种组合以及对节拍文件114A-E的其它形 式的索引以辅助分割。
图6是示出可以结合这里所描述的各种实现方式来使用的MOCAP系 统的功能框图。图6所示出的实现方式实质上与图2所示的实现方式相 关,并且可以提供节拍分割的替代方案。
如以上针对图1所论述的,在一个示例中,节拍文件114A-E包括在 MOCAP节拍期间从相应的MOCAP相机104A-E同时捕捉的图像数据。尽 管图示了五个节拍文件114A-E,但是在实践中,节拍文件的数目通常与 好几百个MOCAP相机直接相对应。
在一种实现方式中,根据在分解模块204 (参见图2)处确定的分区 来分解节拍文件114A-E所得出的结果可以被视为分区的分组602A-E,各 个分组602A-E实质上表示节拍文件114A-E。例如,如果节拍文件114A 包含4000个帧,则节拍文件114A可以被分割成各自包含1000个帧的四 个分区,如第一组602A所示。 一般而言,分区的大小或持续时间不需要 统一。但是,节拍文件114A-E应当被基本相同地分割。分组602A的分区 还可以被视为"虚拟"分区,原因在于它们处于参考节拍文件114A的内 容来确定开始和停止时间或帧索引的上下文中。可替代地,这些分区可以 是"物理"分区,其中,例如,节拍文件114A被根据分割来实际细分为 一组新的且较小的文件。
还可以在根据分区而非根据节拍文件来分类的"分区组"610A-D中 查看与节拍文件114A-E相对应的组602A-E的分区。从这个角度来看,例如,分区组610A中的所有分区都来自不同的节拍文件114A-E,但是却由 相同的开始和停止帧索引来限定。以这种方式,无法管理地大的大节拍文 件114A-E可以被虚拟地分成许多将被基本上并行处理的较小分区。
因此,在一种实现方式中,各个分区组610A-D在重构模块230A-D 处被用于形成相应的点文件634A-D。另外,可以由重构管理器模块212 向各个重构模块230A-D提供相应的配置620A-D和校准文件124A-E以用 于重构处理。点文件634A-D随后可以在合并模块216处被合并,从而得 到主点文件630。如上所论述的,主点文件630可以包括一个或多个3D数 据点云,该一个或多个3D数据点云表示与捕捉空间100中的物体或演员 相耦合的标记。点文件634A-D和主点文件630可以由MOCAP数据库模 块110来存储并管理。
图7是示出根据MOCAP重构的示例方法的处理模块之间的关系的示 图。该示图示出了一般与图2、 4和6所示的示例实现方式相对应的操作 顺序。
在图示的实现方式中,数字MOCAP相机104A-E捕捉与捕捉空间100 中的一个或多个物体或演员相耦合的标记的图像。这些图像被传送(使用 链路700)到MOCAP成像模块108,在MOCAP成像模块108中可以执 行各种传统的图像处理操作。得到的图像被传送(使用链路702)到提供 文件管理和访问能力的MOCAP数据库模块110。
随后可以由MOCAP数据库模块110向重构渲染集群(RRF)模块 130发出(使用链路704)"就绪"状态。如参考图2所描述的,RRF模 块130包括MOCAP数据库接口模块200、分解模块204、配置模块208 和重构管理器模块212的功能。就绪状态指示出节拍文件114A-E可以用 于重构处理。此外,可以另外提供与节拍文件114A-E相关的位置信息。 该信息可以包括目录路径和文件名。可替代地,RRF模块130可以在 MOCAP数据库模块IIO处搜索经过标记的节拍文件114A-E,因而相应地 确定它们的位置。但是,应当了解,可以利用其它方案在MOCAP数据库 模块110处访问节拍文件。
RRF模块130生成包括分割参数的配置620A-D。 RRF模块130还调用(使用链路706A-D)重构模块230A-D,并向各个重构模块230A-D提 供相关节拍文件位置信息、配置620A-D以及通常包含在校准文件124A-E 中的校准信息。各个重构模块230A-D随后可以使用经由其关联配置 620A-D所指派的节拍文件分区来执行重构。节拍文件的相关分区可以被 从MOCAP数据库模块110发送(使用链路708A-D)到重构模块230A-D。
在一种实现方式中,可以在分立的或者专用的处理器上执行各个重构 模块230A-D。在另一种实现方式中,重构模块230A-D可以作为分立过程 在许多普通处理器上执行。此外,重构模块230A-D可以彼此同步或异步 地执行,并且可以与RRF模i央130、 MOCAP数据库模块IIO和在重构模 块内执行的任何子过程同步或异步地执行。
在一种实现方式中,当各个重构模块230A-D完成节拍重构功能的执 行时,得到的点文件134被传送(使用链路712A-D)到合并模块216。包 含与分区相对应的3D点数据的点文件634A-D随后可以被合并以通常形 成一个主点文件630,该主点文件630可以被传送(使用链路714)到 RRF模块130。结束状态随后可以被传送(使用链路716)到MOCAP数 据库模块110。或者,主点文件630可以与结束状态一起被传送(使用链 路716)到MOCAP数据库模块110。
各种实现方式还可以例如使用诸如专用集成电路("ASIC")或现场 可编程门阵列("FPGA")之类的组件而主要利用硬件来实现。能够执 行这里所描述的功能的硬件状态机的实现方式对于相关领域技术人员来说 也是显而易见的。各种实现方式还可以使用硬件和软件两者的组合来实 现。此外,本领域技术人员将会了解,结合上述示图和这里所公开的实现 方式来描述的各种示意逻辑块、模块、连接器、数据路径、电路和方法步 骤通常可以被实现为电子硬件、计算机软件、或者这两者的组合。为了清 楚地说明硬件和软件的可互换性,以上已经大体上按照它们的功能来描述 了各种示意组件、块、模块、电路和步骤。这些功能是实现为硬件还是软 件取决于特定应用和对整个系统施加的设计限制。技术人员可以针对各个特定应用以不同方式实现所描述的功能,但是这样的实现方式的决定不应 当被理解为导致偏离本发明的范围。另外,在模块、块、电路或步骤中的 功能分组是为了便于描述。在不脱离本发明的情况下,特定功能或者步骤 可以从一个模块、块或电路移动到另一个。
此外,结合这里所公开的实现方式来描述的各种示意逻辑块、模块、 连接器、数据路径、电路和方法步骤可以利用为执行这里所描述的功能而
设计的通用处理器、数字信号处理器("DSP" ) 、 ASIC、 FPGA、或者 其它可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或者它 们的任意组合来实现或执行。通用处理器可以是微处理器,但是在替代方 式中,处理器可以是任何处理器、控制器、微控制器、或者状态机。处理 器还可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个 微处理器的组合、结合DSP核的一个或多个微处理器的组合或者任何其它 这样的配置。
另外,结合这里所公开的实现方式来描述的方法或算法的步骤可以直 接在硬件、处理器所执行的软件模块、或者这两者的组合中实施。软件模 块可以位于RAM存储器、闪存、ROM存储器、EPROM存储器、 EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM、或者包括网络存 储介质在内的任何其它形式的存储介质中。存储介质可以与处理器相耦 合,以使得处理器可以从存储介质读取信息并向存储介质写入信息。在替 代方式中,存储介质可以集成到处理器中。处理器和存储介质也可以位于 ASIC中。
以上对所公开的实现方式的描述被提供用于使得本领域任何技术人员 都可以作出或使用本发明。对这些实现方式进行的各种修改对于本领域技 术人员来说是足够显而易见的,并且在不脱离本发明的精神或范围的情况 下,这里所描述的一般原理可以被应用于其它实现方式。因此,应当了 解,这里所呈现的说明书和附图表示了本发明目前优选的实现方式,并因 此代表了本发明所广泛设想的主题。还应当了解,本发明的范围完全囊括 了对于本领域技术人员来说可以变得显而易见的其它实现方式,并且本发 明的范围相应地仅由所附权利要求来限定。
权利要求
1.一种运动捕捉与至少一个运动捕捉对象相耦合的标记的方法,包括生成多个配置,各个配置包括分割参数;使用所述多个配置来将运动捕捉节拍分割成节拍分区;重构所述节拍分区,其中,使用所述各个配置和相应的运动捕捉相机校准信息来重构各个节拍分区从而生成表示标记的点数据;以及合并所述点数据以形成至少一个主点文件。
2. 如权利要求l所述的方法,其中,所述至少一个主点文件包括 至少一个表示与所述至少一个运动捕捉对象相耦合的所述标记的三维数据点云。
3. 如权利要求1所述的方法,其中,根据至少一个预定分区大小来 确定所述分割参数。
4. 如权利要求3所述的方法,其中,所述预定分区大小的特征在于 持续时间。
5. 如权利要求3所述的方法,其中,所述预定分区大小的特征在于 运动捕捉节拍帧的数量。
6. 如权利要求l所述的方法,其中,所述各个配置还包括 至少一个关于与所述至少一个运动捕捉对象相耦合的所述标记的特性的参数,所述特性包括所述标记的可接受大小以及所述标记的可接受运动 速率。
7. 如权利要求l所述的方法,其中,所述各个配置还包括与运动捕捉面部对象相对应的重构处理参数。
8. 如权利要求l所述的方法,其中,所述各个配置还包括 与运动捕捉躯体对象相对应的重构处理参数。
9. 如权利要求l所述的方法,其中,所述各个配置还包括 与运动捕捉手部对象相对应的重构处理参数。
10. —种用于运动捕捉与至少一个运动捕捉对象相耦合的标记的系统,包括分解模块,被配置用于将运动捕捉节拍分割成多个节拍文件;配置模块,被配置用于生成多个配置,各个配置包括所述多个节拍文 件中的至少一个的位置信息;重构过程管理器模块,被配置用于重构所述多个节拍文件,其中,使 用所述各个配置和相应的运动捕捉相机校准信息来重构各个节拍文件,从 而生成表示标记的点数据;以及合并模块,被配置用于合并所述点数据以形成主点文件。
11. 如权利要求IO所述的系统,还包括运动捕捉数据库模块,被配置用于存储和管理所述运动捕捉节拍和所 述多个节拍文件。
12. 如权利要求ll所述的系统,还包括 运动捕捉数据库接口模块,被配置用于接收指示出所述运动捕捉节拍对于重构处理的可用性的状态;以及 发送指示出所述重构处理已经完成的状态。
13. 如权利要求10所述的系统,其中,所述至少一个主点文件包括至少一个表示与所述至少一个运动捕捉对象相耦合的标记的三维数据 点云。
14. 如权利要求IO所述的系统,其中,所述分割参数是根据至少一个预定分区大小来确定的。
15. 如权利要求14所述的系统,其中,所述预定分区大小的特征在于持续时间。
16. 如权利要求14所述的系统,其中,所述预定分区大小的特征在 于运动捕捉节拍帧的数量。
17. 如权利要求IO所述的系统,其中,所述重构过程管理器模块使用多个重构过程来重构所述多个节拍文件。
18. 如权利要求17所述的系统,其中,向所述多个重构过程中的各个重构过程提供各个节拍文件的位置。
19. 如权利要求18所述的系统,其中,各个节拍文件的所述位置包 括目录路径。
20. 如权利要求17所述的系统,其中,向所述多个重构过程中的各 个重构过程提供所述运动捕捉相机校准信息。
21. 如权利要求17所述的系统,其中,利用专用处理器来执行所述 多个重构过程中的至少一个重构过程。
22. 如权利要求10所述的系统,其中,所述各个配置还包括 至少一个关于与所述至少一个运动捕捉对象相耦合的所述标记的特性的参数,所述特性包括所述标记的大小以及所述标记的运动速率。
23. —种计算机程序,该计算机程序被存储在计算机可读存储介质 中,用于运动捕捉与至少一个运动捕捉对象相耦合的标记,所述程序包括 使计算机执行以下步骤的可执行指令生成多个配置,各个配置包括分割参数; 使用所述多个配置来将运动捕捉节拍分割成节拍分区; 重构所述节拍分区,其中,使用所述各个配置和相应的运动捕捉相机 校准信息来重构各个节拍分区从而生成表示标记的点数据;以及 合并所述点数据以形成至少一个主点文件。
24. —种用于运动捕捉与至少一个运动捕捉对象相耦合的标记的装 置,该装置包括用于生成多个配置的装置,各个配置包括分割参数; 用于使用所述多个配置来将运动捕捉节拍分割成节拍分区的装置; 用于重构所述节拍分区的装置,其中,使用所述各个配置和相应的运动捕捉相机校准信息来重构各个节拍分区从而生成表示标记的点数据;以及用于合并所述点数据以形成至少一个主点文件的装置。
全文摘要
运动捕捉与至少一个运动捕捉对象相耦合的标记,包括生成多个配置,各个配置包括分割参数;使用多个配置来将运动捕捉节拍分割成节拍分区;重构所述节拍分区,其中,使用各个配置和相应的运动捕捉相机校准信息来重构各个节拍分区从而生成表示标记的点数据;以及合并所述点数据以形成至少一个主点文件。
文档编号G06T15/70GK101310308SQ200680040132
公开日2008年11月19日 申请日期2006年8月28日 优先权日2005年8月26日
发明者丹尼斯·J·小豪克, 德曼·乔丹 申请人:索尼株式会社;索尼电影娱乐公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1