使用深度图的实时相机跟踪的制作方法

文档序号:6363799阅读:253来源:国知局
专利名称:使用深度图的实时相机跟踪的制作方法
技术领域
本发明涉及图像技术,尤其涉及相机跟踪技术。
背景技术
对于许多应用,能够随相机在环境中移动时跟踪该相机的定向和位置是有价值的。例如,在机器人技术、车辆导航、计算机游戏应用、医学应用及其他问题领域。以前的方法已涉及使用由移动相机所捕捉的彩色图像,在那些图像中标识诸如线和边缘等特征,以及在相机所捕捉的彩色图像序列中捕捉该信息以尝试并评估相对的相机位置。现有的方案在准确性、稳健性和速度上受到限制。然而,对于许多应用,需要实时地进行准确的相机跟踪,例如以使得机器人可以成功地在其环境中四处移动。以下描述的各实施例不限于解决已知相机跟踪过程的缺点中的任一个或全部的实现。

发明内容
下面呈现了本发明的简要概述,以便向读者提供基本理解。本发明内容不是本发明的详尽概述,并且不标识本发明的关键/重要元素,也不描述本发明的范围。其唯一的目的是以简化形式呈现此处所公开的精选概念,作为稍后呈现的更详细的描述的序言。描述了使用深度图的实时相机跟踪。在一实施例中,深度图的帧由移动深度相机按每秒超过20帧来捕捉,且被用于实时地动态更新指定移动深度相机已经如何移动的一组配准参数。在各示例中,实时相机跟踪输出被用于计算机游戏应用和机器人技术。在一示例中,迭代最近点过程与投影数据关联以及点到面的误差度量一起使用,以便计算经更新的配准参数。在一示例中,图形处理单元(GPU)实现被用于实时地优化误差度量。在某些实施例中,使用移动相机环境的密集3D模型。通过结合附图参考以下详细描述,可更易于领会并更好地理解许多附带特征。


根据附图阅读以下详细描述,将更好地理解本发明,在附图中图I是房间中持有移动深度相机的人的示意图,该移动深度相机可用于实时相机跟踪并且可任选地还产生该房间的密集3D模型或图;图2是持有移动深度相机的人正在探索的建筑物某层的平面视图;图3是连接到实时相机跟踪系统、密集3D模型形成系统、以及游戏系统的移动深度相机的示意图;图4是示例帧对齐引擎的示意图;图5是用于相机跟踪的迭代过程的流程图;图6是图5的迭代过程中用于计算相应点的对的部分的更多细节的流程图;图7是用于使用来自密集3D模型的预测来计算相应点的对的过程的流程图8是用于计算和最小化供图5的迭代过程中使用的点到面的误差度量的过程的流程图;图9是在诸如图形处理单元(GPU)之类的并行计算单元处的过程的流程图;图10示出可在其中实现实时相机跟踪系统的各实施例的示例性基于计算的设备。
在各个附图中使用相同的附图标记来指代相同的部件。
具体实施例方式下面结合附图提供的具体实施方式
旨在作为本发明示例的描述,并不旨在表示可以构建或使用本发明示例的唯一形式。本描述阐述了本发明示例的功能,以及用于构建和操作本发明示例的步骤的序列。然而,可以通过不同的示例来实现相同或等效功能和序列。尽管本发明的各示例在本文中被描述且示出为使用从发射和捕捉红外光的移动深度相机获得的深度图像在实时相机跟踪系统中实现的,然而所描述的系统是作为示例而非限制来提供的。本领域的技术人员将理解,本发明的各示例适于在各种不同类型的实时相机跟踪系统中应用,包括但不限于使用从立体相机获得的深度信息的系统和使用通过发射和捕捉其他类型的电磁辐射所获得的深度信息的系统。术语“图像元素”在本文中用于指代像素、像素组、体素、体素组、或图像的其他更高级别的组成部分。术语“密集3D模型”在本文中用于指代包括对象和表面的三维场景的表示,其中该表示包括关于该场景的图像元素的细节。相反,非密集3D模型可包括对象的基于帧的表示。在一示例中,来自传入深度图的全部或许多点可用于描述环境中的表面,且该描述形成密集3D模型。稀疏模型会仅取这些点的子集来使计算加速并减少存储器覆盖区域。图I是站在一房间中并持有移动深度相机102的人100的示意图,在本示例中移动深度相机102还结合有投影仪,该投影仪将猫108的图像投影到该房间中。该房间包含各种对象106,如椅子、门、窗、植物、灯和另一个人104。这些对象106中的许多对象是静态的,但这些对象中的一些对象(诸如人104)可以移动。当人在该房间内四处移动时,该移动深度相机捕捉图像,这些图像由实时相机跟踪系统112用来监视该相机在该房间中的位置和方向。实时相机跟踪系统112可以与移动深度相机102集成,或可以处于另一位置,只要它能够(直接或间接)接收来自移动深度相机102的通信。例如,实时相机跟踪系统112 可以在房间中的个人计算机、专用计算机游戏装置、或其他计算设备处提供,并与移动深度相机102进行无线通信。在其他实施例中,实时相机跟踪系统112可以处于建筑物中的别处或处于使用任何合适类型的通信网络与移动深度相机102进行通信的另一远程位置。移动深度相机102还与该环境的密集3D模型110 (在此情况下是该房间的3D模型)或该环境的另一类型的图进行通信。例如,当人在房间中四处移动时,移动深度相机102捕捉到的图像被用来形成和构建环境的密集3D模型。实时相机跟踪系统112可跟踪相机相对于环境110的3D模型或图的位置。实时相机跟踪系统112的输出和密集3D模型或图110可由游戏系统或其他应用来使用,但这不是必要的。例如,移动深度相机102处的投影仪可被安排成取决于实时相机跟踪系统112的输出和3D模型110来投影图像。图2是建筑物的楼层200的平面图。持有移动深度相机204的人202正如虚线箭头208所示在该层四处移动。此人沿走廊206走过各个房间和家具210。实时相机跟踪系统112能够随移动深度相机204移动来跟踪它的位置,并且该层的3D模型或图被形成。人 202不必携带移动深度相机204。在其他示例中,移动深度相机204被安装在机器人或运载工具上。这也适用于图I的示例。图3是与实时相机跟踪器316、密集模型形成系统324和可任选的游戏系统332 — 起使用的移动环境传感器300的示意图。移动环境传感器300包括被安排成捕捉场景的深度图像序列的深度相机302。每一深度图像或深度图帧314包括二维图像,在该二维图像中每一图像元素包括诸如从相机到所捕捉的场景中的产生了该图像元素的对象的长度或距离等深度值。这一深度值可以是以指定测量单位(如米或厘米)来提供的绝对值,或可以是相对深度值。在某些情况下,深度值可以是诸如在其中立体深度信息为可用的情形中的差别值。在每一捕捉到的深度图像中,存在大约300000或更多个图像元素,每一图像元素具有深度值。帧速率足够高而使得深度图像能够被用于工作机器人、计算机游戏、或其他应用。例如,每秒至少20帧。
深度信息可以使用任何合适的技术来获得,包括但不限于飞行时间、结构化光、立体图像。在一些示例中,深度相机能够将深度信息组织为与沿该深度相机的视线延伸的Z 轴垂直的Z层。移动环境传感器300还可包括被安排成以可由深度相机302查明深度信息的方式来照亮该场景的发光器304。例如,在深度相机302是红外(IR)飞行时间相机的情况下, 发光器304将IR光发射到该场景上,并且深度相机302被安排成检测从该场景中的一个或多个对象的表面反向散射的光。在一些不例中,可以从发光器304发出脉冲红外光,使得外出光脉冲与对应的传入光脉冲之间的时间可由深度相机来检测和测量,并被用来确定从环境传感器300到场景中的对象上的位置的物理距离。另外,在一些示例中,可将来自发光器 304的出射光波的相位与入射光波的相位在深度相机302处进行比较来确定相移。随后经由包括例如快门式光脉冲成像的各种技术来分析反射光束随时间的强度来将相移用于确定从移动环境传感器300到各对象上的位置的物理距离。在另一示例中,移动环境传感器300可使用结构化光来捕捉深度信息。在这种技术中,可使用发光器304将图案化光(例如,显示为诸如网格或条形图案等已知图案的光) 投影到场景上。在到达场景中的对象的表面之后,该图案变形。深度相机302捕捉图案的这种变形并对其进行分析来确定从深度相机302到场景中的对象的绝对或相对距离。在某些情况下,移动环境传感器300发射电磁辐射的空间变化和/或时间变化的图案,且该图案是校准的,使得当图像由深度相机302接收时,它能够针对图案的数据库来执行图案匹配,并由此计算深度信息。这可被认为是投影到环境的3D图案的点(dot),且当存在图案被反射的表面的任何时候,深度相机302可检测该表面、并计算该表面距离深度相机302的距离。在另一示例中,深度相机302包括一对立体相机,以便获得并解析视觉立体数据来生成相对深度信息。在这种情况下,发光器304可被用来照亮场景或可被省略。在一些示例中,除深度相机302之外,移动环境传感器300包括被称为RGB相机 306的彩色视频相机。RGB相机306被安排成在可见光频率处捕捉场景的图像序列。移动环境传感器300可包括定向传感器308,诸如惯性测量单元(MU)、加速计、陀螺仪、指南针、或其他定向传感器308。然而,使用定向传感器不是必要的。移动环境传感器300可包括诸如GPS等位置跟踪设备,但这不是必须的。移动环境传感器可包括上面参考图I提到的投影仪312,但这不是必要的。移动环境传感器还包括一个或多个处理器、存储器、以及通信基础结构,如下文更详细地描述的。移动环境传感器 可以在外壳中提供,该外壳的形状和大小制定成由用户手持或由用户佩戴。在其他示例中,移动环境传感器的大小和形状被制定成被包括或安装在运载工具、玩具、或其他可移动装置上。移动环境传感器300连接到实时跟踪器316。这一连接可以是物理有线连接或可以使用无线通信。在一些示例中,移动环境传感器300通过诸如因特网等一个或多个通信网络间接连接到实时跟踪器。实时跟踪器316使用控制一个或多个图形处理单元(GPU)的通用微处理器来用计算机实现。它包括帧对齐引擎318并且可任选地包括环闭合引擎320和重新定位引擎322。 实时跟踪器316从深度相机302获得深度图帧314,并还可任选地从移动环境传感器300获得输入,并获得可任选地图数据334以及来自游戏系统332的可任选数据。实时跟踪器可用于使深度图帧对齐,以产生深度相机302的六自由度姿势估计的实时系列328。它还可以产生变换参数(也称为配准参数)以用于深度图帧的对之间变换。在一些示例中,实时跟踪器对来自深度相机的各对深度图帧314进行操作。在其他示例中,实时跟踪器216获取单个深度图帧314并将它与该场景的密集3D模型326对齐而非与另一深度图帧314对齐。 在某些示例中,实时跟踪器还使用来自RGB相机306的彩色视频输入,但这不是必需的。例如,在一些实施例中,实时跟踪器316向密集3D模型形成系统324提供输出,密集3D模型形成系统324使用该信息以及深度图帧314来形成并存储移动环境传感器300 正在其中移动的场景或环境的密集3D模型。例如,在图I的情况下,3D模型将是房间中的表面和对象的3D模型。在图2的情况下,3D模型将是建筑物的该层的3D模型。密集3D模型326可被存储在GPU存储器中,或以其他方式存储。移动环境传感器300可结合游戏系统332来使用,游戏系统332连接到显示器 330。例如,游戏可以是高尔夫游戏、拳击游戏、赛车游戏、或其他类型的计算机游戏。来自游戏系统332的数据(如与游戏相关的游戏状态或元数据)也可被提供给实时跟踪器316。 而且,来自实时跟踪器的信息可以被游戏系统332用来影响游戏的过程。来自3D模型的信息也可以被游戏系统332用来影响游戏的过程。可任选地,图数据334对实时跟踪器316是可用的。例如,这可以是架构师对该环境(例如,房间或建筑物的层)的绘图、该环境中已知的地标的位置、可从另一源获得的该环境的图。实时跟踪器的帧对齐引擎318被安排成将各对深度图帧对齐,或将一深度图帧与来自密集3D模型的一深度图帧的估计对齐。它使用迭代过程,该迭代过程是用一个或多个图形处理单元来实现的,以使帧对齐引擎实时操作。下面参考图4给出关于帧对齐引擎的更多细节。环闭合引擎被安排成检测移动环境传感器何时按照环移动,使得当前深度图像帧中描绘的场景至少部分与不是紧邻的在先深度帧的先前深度帧的场景相重叠。例如,这可在用户在图2中的建筑物的整层四处走动并再次到达起始点时发生。这也可以在用户在房间四处移动至某家具背后并再次出来到原始起始位置或接近该原始起始位置时发生。
重新定位引擎322被安排成处理以下情况实时跟踪器失去移动环境传感器300 的当前位置并且重新定位或再次找出当前位置。在一个示例中,实时跟踪器316和/或密集3D模型形成系统324所执行的处理可以离开移动环境捕捉设备300的位置而远程执行。例如,移动环境捕捉设备300可被连接到(或包括)具有相对低处理能力并且通过通信网络将深度图像流传送到服务器的计算设备。该服务器具有相对高的处理能力,并且执行实时跟踪器316和/或密集3D模型形成系统324的在计算上复杂的任务。该服务器可以逐帧返回密集重构的已渲染图像以向用户提供交互体验,并且在模型完成时返回最终密集3D重构以供后续本地使用(例如,在游戏中使用)。这样的安排避免了用户对拥有高能力本地计算设备的需要。在一个示例中,来自移动环境传感器处的RGB相机的输入可用于补充来自深度相机的信息。这在其中深度没有提供足够信息供跟踪的情形中是有用的,诸如当相机正在具有太少深度特征的环境中移动时。如果在该环境中存在视觉特征,则这些视觉特征可被RGB 相机检测且可用于启用要提供的同时本地化和映射。
图4是图3的帧对齐引擎318的更详细的示意图。帧对齐引擎408是在具有一个或多个GPU 416或其他并行计算单元的计算设备处所实现的计算机。例如,并行计算单元可以是向量处理器,单指令多数据(SMD)体系结构,图形处理单元、或其他并行计算设备。 它包括迭代最近点过程410和可任选的平面提取组件412。迭代最近点过程使用投影数据关联和点到面的误差度量,如下面更详细地描述的。该帧对齐引擎从深度相机接收当前深度图400。这也被称为目的地深度图。在一些示例中,它还从深度相机接收源深度图402, 源深度图402是该先前的深度图帧。在其他示例中,该帧对齐引擎获取该源深度图的密集表面模型估计406。帧对齐引擎的输出是变换的一组配准参数,以将当前帧和源帧(即帧估计)对齐。在一些示例中,这些配准参数是作为SE3矩阵形式的六自由度(6D0F)姿势估计来提供的,该SE3矩阵描述了深度相机302相对于真实世界坐标的旋转和平移。此变换矩阵可以被更加正式地表示为
Ti= o; I eSE3其中Tk是深度图像帧k的变换矩阵,Rk是帧k的相机旋转,tk是帧k处的相机平移,而欧几里德群SE3 :=fR,t扠eS03,teM3j。相机空间中的坐标(即,来自相机角度) 可以通过乘以这个变换矩阵被映射到真实世界坐标。然而,配准参数可以以任何适当的形式提供。这些配准参数被实时跟踪器316用来产生该深度相机的6自由度姿势估计的实时系列。图5是帧对齐引擎处的示例迭代过程的流程图。形成(500)配准参数的初始估计。 这些是用于将当前帧和源帧对齐的变换的配准参数。这一初始估计是用任何合适的方式形成的。例如,以下信息源中的一个或多个可被用来形成初始估计游戏状态、游戏元数据、地图数据、RGB相机输出、定向传感器输出、以及GPS数据。在另一示例中,通过预测其中该相机正在使用关于该相机的先前运动路径的信息处来形成初始估计。例如,可假定该相机具有恒定的速度或恒定的加速度。可以使用相机从时刻O到时刻t-Ι的运动路径来估计在时刻t相机将在何处,并因此获得配准参数的估计。使用初始估计,计算(502)当前帧和源帧(深度图或估计的深度图)之间的各对相应点。一对相应点是来自来自一个深度图的一点和来自另一深度图的一点,其中那些点被估计为来自场景中的同一真实世界点。术语“点”在此处被用于指示像素、或一组或一小块相邻像素。由于点的可能组合的很大的数量,这个对应性问题是非常困难的。通过标识每个图像中的诸如线、边缘、角落等形状然后尝试在各对图像间匹配那些形状,前面的使用彩色或灰度图像的方法已经解决了这个问题。与之相对,此处描述的实施例标识相应的点而不需要在深度图中寻找形状。下面参考图6给出了关于如何计算相应点的更多细节。计算(504)配准参数的经更新的估计,其对被应用到所计算的相应点的误差度量进行优化。进行检查以评估是否达到收敛(506)。如果达到,则输出经更新的估计和配准参数中的很少的改变或没有改变(508)。如果没有达到,则该迭代过程重复,如图5中所指示的。参考图6,现在给出有关如何计算各对相应点的更多细节。在一些实施例中,从当前深度图和源深度图中的任何一个或两个采集(600)样本点,并且使用那些样本点作为从中寻找各对相应点的候选。采样可以通过随机地选择所述点的指定比例而实现。在另一实施例中,用将这些点的表面法线计入的方式来实现采样。例如,对于每个点计算出表面法线 (如下面更详细地描述的),以及创建具有对于不同范围的表面法线值的多个柱的直方图。 如此进行采样实现跨越各柱的均匀采样。通过使用采样,实现了减少计算成本的益处。然而,风险是当使用采样时减少该过程的精确度和稳健性。这是因为样本点可能不提供对从其采集样本的深度图的良好指示。 例如,样本可能使得该过程找到该过程标识为解但是事实上却表示局部最优解而不是全局最优解的一组相应点。如上所述,没有必要使用任何采样。当使用所有可用点时,该过程也是可行的,并且给出了很好的结果。在此情况下,此处描述的并行处理实现允许该过程对于每个深度图中的所有点实时地操作,这些点可能多达300000个或更多。在下面参考图6描述的示例中, 使用采样描述该过程。然而,图6的过程还能够在不执行采样时应用。如图6所指示的,计算(602)样本点(或者在不进行采样的情况下的每个可用点) 的表面法线。例如,对于给定点,通过找出深度图中的两个(或更多个)最接近的邻居点并计算包括这些邻居点及该点本身的表面小块来实现这一点。随后计算该表面小块在该点的位置处的法线。然后接下来是寻找¢04)点的相应对的过程现在在源深度图和当前深度图可用而不使用密集3D模型的情况下描述这一点。对于每个从源深度图采样的源点,从与该源深度图相关联的相机位置投影(606)光线,该光线穿过被采样的源点并投影到目的地深度图中的目的地点上。在一些情况下,目的地点可以沿着所投影的光线在被采样的源点前方。 这一投影过程可被称为“投影数据关联”。然后在目的地点周围(且包括目的地点)搜索 (608)候选相应点。例如,该搜索针对具有与所采样的原点的表面法线兼容、且在目的地点的指定欧氏距离(Euclidean distance)内的表面法线的那些点。表面法线在它们位于彼此的指定范围内的情况下被认为是兼容的。例如,这一指定的范围和欧式距离可以是用户可配置的和/或使用与所考虑的特定应用条件有关的经验数据来设置的。
作为此搜索的结果,找到了一个或多个候选的相应点。从那些候选相应点中选择 (610)单一点来与源点形成一对。这种选择是以距离度量为基础做出的。例如,计算源点和所述候选相应点中的每个点之间的欧几里德距离。然后选择给出最小欧几里德距离的那对点。然后对于所采样的源点中的每一个点,或者在不进行采样的情况下对于源深度图中的可用点中的每一个点,重复框604的过程。
在一些实施例中,向各对相应点中的每一对分配(612)权重。例如,可以使用来自其他源(诸如RGB相机或其他传感器)的信息来分配权重。在一示例中,对于各对相应点中的每一对,计算与深度相机的测量特征有关的权重并将其存储,测量特征诸如径向透镜畸变和/或取决于深度的误差。在另一示例中,包括位于使用边缘检测算法在深度图中检测出的边缘处的一点的各对被给予比其他各对更高的权重。这些权重可在应用误差度量过程期间使用,以便改进结果的质量。例如,与取决于深度的误差有关的权重使得高深度值要被考虑,这些高深度值有可能由于缺少精度而波动很多。在一些实施例中,拒绝(614)包括在深度图的边界上或边界附近的点的对。这有助于避免两个深度图间只是部分重叠的情况下的误差。还可以使用其他准则来拒绝对。例如,在一些实施例中,执行如上面参考图4的组件410所提到的平面提取。在该情况下,平面上的各对可被拒绝,以便防止跟踪器偏移一较大的平面,且如此忽略深度图内较小但唯一的部分。在一些实施例中,从深度相机所正在捕捉的场景的密集3D模型中估计或预测源深度图。在此情况下遵循图7的方法。该场景的密集3D模型包括存储在并行计算单元处的存储器中的场景的3D表面表示。例如,该密集3D模型可以按照片-行-列的次序被存储为线性阵列(下面给出了关于这一点的更多细节),可选地具有一些填充以使得片和行对齐某个存储器块大小。可以使用其他存储该3D模型的方式,诸如八叉树、粗略-精细表示、基于网格的表示(诸如多边形网格)。现在给出密集3D模型被按照“片-行-列”的次序存储在诸如GPU之类的并行计算单元上的情况的更多细节。在此情况下,该模型可以被存储为用于表示3D体的存储器位置的线性阵列。通过使用线性倾斜存储器(linear pitched memory)将每个体素映射到存储器阵列索引来实现这一点,该线性倾斜存储器提供对存储在该并行计算单元存储器上的数据的快速并行访问。如上所述,通过评估(700)到样本点的相邻点,计算当前深度图的样本点的表面法线。对于所预测的源深度图,对于每个所预测的样本点,从该密集3D模型计算(702)表面法线预测和表面位置预测。所预测的样本点是来自该密集3D模型的与来自当前深度图的样本点在同一像素位置处的点。这是通过将光线投射到密集表面模型的体积中完成的。 该光线是从与当前深度图相关联的所估计的相机位置和定向投影的,并且穿过该3D模型的面上的与当前深度图中的样本点相对应的点而进入该3D模型。这在该3D模型被存储为体表示的3D模型的情况下适用。在使用基于网格的表示存储该3D模型的情形中,则此表面首先被投影以形成虚拟深度图像表示。然后该光线可被投影到该虚拟深度图像表示中。 通过沿着该光线迈进并评估表面密度函数以找到第一次从正到负的零跨越而沿着该光线找到第一可见表面。沿着该光线从表面密度函数的交叉点的估计找到相关联的子像素世界点。在一个示例中,给出三线性采样的点在所检测的零跨越的任一侧上以找到零出现处的子像素世界点,使用简单线性内插可以计算出沿光线的表面交叉点。该子像素世界点被当作预测的表面位置。为了找到此位置处的所预测的表面法线,使用三线性内插来寻找该表面密度函数梯度的有限差别。计算表面法线预测和表面位置预测702的过程可以在并行计算单元处实现,其中每个光线被并行处置。对于每个所预测的样本点(从该密集3D模型获得),遵循过程704来标识当前深度图中的相应点。这类似于图6的过程604。所预测的样本点被投影(706)到目的地深度图(当前深度图)中的目的地点上。然后在目的地点周围对与该目的地点具有兼容的表面法线的候选相应点进行搜索(708)。根据距离度量,从那些候选相应点中选择(610) —点。 例如,如果一对点在彼此的指定欧几里德距离el内并且该对点的表面法线之间的点积大于指定阈值e2,则该对点是兼容的。参数el和e2可以是用户能够配置的,或者可以在制造阶段期间设置,由此根据经验校准该设备以在特定设定中使用。在一些情况下,对各对相应点分配(712)权重。在一些实施例中,如果对包括在深度图边界上或在边界附近的至少一个点,则拒绝所述对714。在一示例中,对于各对相应点中的每一对,存储与深度相机的测量特征有关的权重。在应用误差度量以改善结果的质量的过程期间,可以使用这些权重。
一旦例如使用图6或图7的过程标识了各对相应点,则计算并最小化误差度量,而图5的迭代过程重复。在一示例中,对于各对相应点计算(800)点到面的误差度量,并且优化此度量以获得经更新的配准参数。现在参考图8描述此过程的一示例。该过程被设计为使用至少一个GPU来实现,以获得如现在所述的实时处理。计算点到面的误差度量可以被认为是计算802从每个源点到包含该目的地点并且与该目的地点的表面法线近似垂直地定向的平面的平方距离的和。该过程寻求优化此度量以寻找一组经更新的配准参数。求解这种类型的优化问题不是简单直接的,而是通常需要大量的计算资源,从而使得这种类型的过程对于实时应用来说难以实现。现在描述启用实时处理且使用至少一个GPU的示例实现。各对相应点可被缩放和平移(804)。这可以改善优化过程的稳定性,但是不是必要的。对于每一对相应点,在诸如GPU等并行计算单元上形成806包括多个同时等式的线性系统,以使用数值最小二乘优化来优化误差度量。在该并行处理单元上这些矩阵被简化为单个6乘6矩阵。因为帧率很高(例如,每秒20至40帧),则对于任何两个连续帧之间的角度(相机定向的变化)进行小角度逼近是可能的。即,因为帧率如此高,相机在帧间将只移动了很小的量。通过进行这种逼近,促进了系统的实时操作。单个6乘6矩阵被传递给CPU 808并被求解以寻找经更新的配准参数。解被缩放并平移810回去以逆转804的缩放和平移步骤。检查812解的稳定性并且该过程输出经更新的配准参数814。图9给出与怎样可在诸如GPU之类的并行计算单元上形成线性系统以及怎样可将线性系统简化为6乘6矩阵有关的更详细描述。在这一示例中,使用下面的点到面的误差度量,但是这不是必须的;也可以使用其他误差度量。
权利要求
1.一种实时相机跟踪的方法,包括 从正在移动的移动深度相机(302)接收深度图帧(314)的序列,每一深度图帧包括每一图像元素处的深度值,该深度值与从所述移动深度相机到由所述移动深度相机所捕捉的场景中的表面的距离有关; 通过计算每一深度图帧的配准参数(328、414)来跟踪所述移动深度相机的位置和定向,这些配准参数是用于将每一深度图帧和在先深度图帧对齐的变换的参数; 其中,计算所述配准参数包括使用迭代过程(412)用于 标识成对的深度图帧的相应点(502)而不计算所述深度图帧内所描绘的形状,且通过使用并行计算单元来优化应用于所标识的相应点的误差度量,使得所述误差度量被并行地应用于所标识的相应点中的每一个。
2.如权利要求I所述的方法,其特征在于,还包括从与所述移动深度相机(302)相关联的第二传感器(306、308、310)接收输入,且使用该输入来形成所述配准参数的初始估计,所述第二传感器从选自以下各项之一定向传感器(308)、RGB视频相机(306)、游戏系统(332)、所述深度相机正在其中移动的环境的图(334)、移动传感器、位置传感器。
3.如权利要求I或2所述的方法,其特征在于,包括以每秒至少30帧的帧速率接收所述深度图帧(314)的序列。
4.如前述权利要求中任一项所述的方法,其特征在于,使用所述并行处理单元来优化误差度量包括对于每一对相应点,形成(806)数值最小二乘优化的线性系统,以产生6乘6矩阵,并且将这些矩阵简化为所述并行计算单元处的单个6乘6矩阵。
5.如前述权利要求中任一项所述的方法,其特征在于,包括估计来自由所述移动深度相机所捕捉的场景的密集3D模型(326)的在先深度图帧。
6.如前述权利要求中任一项所述的方法,其特征在于,标识成对的深度图帧的相应点(502)包括使用投影数据关联过程,藉此所估计的移动相机的位置被用于将来自源深度图帧的点投影(606)到当前深度图帧的目的地点,且所述投影数据关联过程包括在所述目的地点周围搜索候选相应点。
7.如前述权利要求中任一项所述的方法,其特征在于,优化所述误差度量包括优化点到面的误差度量,该度量包括从源点到包含目的地点并且与该目的地点的表面法线近似垂直地定向的平面的平方距离的和(802)。
8.如前述权利要求中任一项所述的方法,其特征在于,计算所述配准参数包括,对于每一深度图帧,计算每一点的表面法线且形成具有对于不同范围的法线值的多个柱的直方图,并且跨所述柱对点进行均匀采样;以及仅使用来自均匀采样点的那些点来计算所述配准参数。
9.一种实时相机跟踪器(316)包括 输入(1002),所述输入(1002)被安排成从移动的移动深度相机(302)接收深度图帧(314)的序列,每一深度图帧包括每一图像元素处的深度值,该深度值与从所述移动深度相机到由所述移动深度相机所捕捉的场景中的表面的距离有关; 帧对齐引擎(318),所述帧对齐引擎(318)通过计算每一深度图帧的配准参数来跟踪所述移动深度相机的位置和定向,这些配准参数是用于将每一深度图帧和在先深度图帧对齐的变换的参数;所述帧对齐引擎被安排成使用迭代过程来计算所述配准参数,用于标识成对的深度图帧的相应点而不计算所述深度图帧内所描绘的形状; 所述帧对齐引擎包括并行计算单元,所述并行计算单元被安排成优化作为所述迭代过程的一部分应用于所标识的相应点的误差度量,使得所述误差度量在所述并行计算单元处被并行地应用于所标识的相应点中的每一个。
10.一种游戏系统(332),所述游戏系统(332)包括移动红外飞行时深度相机,所述移动红外飞行时深度相机使用结构化光以及如权利要求9所述的用于跟踪所述移动深度相机的实时跟踪器(316),所述移动深度相机以及所述实时跟踪器被安排成以每秒至少30帧来操作,所述游戏系统被安排成影响与跟踪所述移动深度相机相关的游戏的过程。
全文摘要
描述了使用深度图的实时相机跟踪。在一实施例中,深度图的帧由移动深度相机按每秒超过20帧来捕捉,且被用于实时地动态更新指定移动深度相机已经如何移动的一组配准参数。在各示例中,实时相机跟踪输出被用于计算机游戏应用和机器人技术。在一示例中,迭代最近点过程与投影数据关联以及点到面的误差度量一起使用,以便计算经更新的配准参数。在一示例中,图形处理单元(GPU)实现被用于实时地优化误差度量。在某些实施例中,使用移动相机环境的密集3D模型。
文档编号G06T7/20GK102622762SQ201210021180
公开日2012年8月1日 申请日期2012年1月30日 优先权日2011年1月31日
发明者A·费茨吉本, D·A·巴特勒, D·莫利尼奥克斯, D·金, J·D·J·肖顿, O·希利格斯, P·科利, R·纽科姆, S·E·豪杰斯, S·伊扎迪 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1