使用深度图进行移动相机定位的制作方法

文档序号:6363830阅读:269来源:国知局
专利名称:使用深度图进行移动相机定位的制作方法
技术领域
本发明涉及使用深度图进行移动相机定位。
背景技术
移动相机定位涉及找到在其环境中移动的相机的位置和定向,并且对于如机器人、沉浸式游戏、增强现实、架构、规划、机器人、工程原型制作、车辆导航、医学应用和其他问题领域等许多应用是有用的。现有方案在精确度、稳健性和速度上受到限制。对于许多应用,需要实时地进行精确的相机定位,例如以使得机器人可以成功地在其环境中四处移动。先前的许多移动相机定位方法已经使用了彩色视频相机而不是深度相机。通常彩色视频相机给出高分辨率和精确度,而丰富的色彩信息允许在视频图像中检测到视觉特征。能从深度相机中获得的信息取决于环境的类型和所使用的深度相机的类型可能是有噪声并且不精确的。深度相机捕捉在本文中被称为深度图(depth map)的图像,其中每个像素和从该深度相机到该相机的环境中的一个点的绝对和相对距离有关。与彩像相比, 由于可用信息的差异,检测深度图中的特征可能更加困难。先前的一些移动相机定位方法已经涉及创建移动相机的环境图,同时跟踪相机相对于该图的位置和定向。这被称为同时定位和地图构建(SLAM)。以下描述的各实施例不限于解决已知的移动相机定位系统的缺点中的任一个或全部的实现。

发明内容
下面呈现了本发明的简要概述,以便向读者提供基本理解。本发明内容不是本发明的详尽概述,并且不标识本发明的关键/重要元素,也不描述本发明的范围。其唯一的目的是以简化形式呈现此处所公开的精选概念,作为稍后呈现的更详细的描述的序言。针对机器人、沉浸式游戏、增强现实和其他应用描述了使用深度图进行移动相机定位。在一实施例中,在一环境中跟踪移动深度相机,同时使用所感测的深度数据形成该环境的3D模型。在一实施例中,当相机跟踪失败时,通过使用先前收集的关键帧或以其他方式来检测相机跟踪的失败并重新定位相机。在一实施例中,通过实时地将当前深度图与该 3D模型的特征进行比较,检测到移动相机重新访问一位置的环闭合(loop closure) 0在一些实施例中,使用所检测到的环闭合来改善该环境的3D模型的一致性和精确度。通过结合附图参考以下详细描述,可更易于领会并更好地理解许多附带特征。


根据附图阅读以下详细描述,将更好地理解本发明,在附图中图I是房间中的持有移动深度相机的人的示意图,该移动深度相机被用于实时相机跟踪并且可任选地还产生该房间的3D模型或图;图2是正由持有移动深度相机的人探测的建筑物某层的平面视图3是连接到实时相机跟踪系统、密集3D模型形成系统、以及游戏系统的移动深度相机的示意图4是实时跟踪器处的方法的流程图5是重新定位引擎的示意图6是不使用关键帧的重新定位方法的流程图7是使用关键帧的重新定位方法的流程图8是环闭合的方法的流程图9是示例帧对齐引擎的示意图10是用于相机跟踪的迭代过程的流程图11是图5的迭代过程中用于计算相应点的对的部分的更多细节的流程图12是用于使用来自密集3D模型的预测来计算相应点的对的过程的流程图13是用于计算和最小化在图10的迭代过程中使用的点-到-平面误差度量的过程的流程图14示出可在其中实现相机定位系统的实施例的示例性的基于计算的设备。
在各个附图中使用相同的附图标记来指代相同的部件。
具体实施例方式下面结合附图提供的具体实施方式
旨在作为本发明示例的描述,并不旨在表示可以构建或使用本发明示例的唯一形式。本描述阐述了本发明示例的功能,以及用于构建和操作本发明示例的步骤的序列。然而,可以通过不同的示例来实现相同或等效功能和序列。尽管本示例在本文中是使用从发出和捕捉红外光的移动深度相机获得的深度图像在实时相机跟踪系统中实现的,然而所描述的系统是作为示例而不是限制而提供的。本领域的技术人员将会理解,本示例适于在各种不同类型的实时相机跟踪系统中应用,包括但不限于使用从立体相机获得的深度信息的系统和使用通过发出和捕捉其他类型的电磁辐射所获得的深度信息的系统。术语“图像元素”在本文中用于指示像素、像素组、体素、或图像的其他更高级别的分量。术语“密集3D模型”在本文中用于指示包括物体和表面的三维场景的表示,其中该表示包括关于该场景的图像元素的细节。相反,稀疏3D模型可包括物体的基于帧的表示。可以按照减少存储3D模型所需的冗余和存储器的方式来将密集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可跟踪相机相对于环境的3D模型或图110的位置。实时相机跟踪系统112的输出和密集3D模型或图110可由游戏系统或其他应用来使用,但这不是必要的。例如,移动深度相机102处的投影仪可被安排成取决于实时相机跟踪系统112的输出和3D模型110来投影图像。图2是建筑物的层200的平面图。持有移动深度相机204的人202正如虚线箭头 208所示在该层四处移动。此人沿走廊206走过各个房间和家具210。实时相机跟踪系统 112能够在移动深度相机204移动时跟踪它的位置,并且该层的3D模型或图被形成。不必由人202来携带移动深度相机204。在其他示例中,移动深度相机204被安装在机器人或运载工具上。这也适用于图I的示例。图3是与实时相机跟踪器3 16、密集模型形成系统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到场景中的物体的绝对或相对距离。
在另一示例中,深度相机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对齐。例如,在一些实施例中,实时跟踪器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模型的一深度图帧的估计对齐。它使用迭代过程,该迭代过程是用一个或多个图形处理单元来实现的,以使帧对齐引擎实时操作。下面参考图9给出关于帧对齐引擎的更多细节。在一个示例中,实时跟踪器316和/或密集3D模型形成系统324所执行的处理可以离开移动环境捕捉设备300的位置而远程执行。例如,移动环境捕捉设备300可被连接到(或包括)具有相对低处理能力并且通过通信网络将深度图像流传送到服务器的计算设备。该服务器具有相对高的处理能力,并且执行实时跟踪器316和/或密集3D模型形成系统324的在计算上复杂的任务。该服务器可以逐巾贞返回密集重构(dense reconstruction) 的已渲染图像以向用户提供交互体验,并且在模型完成时还返回最终密集3D重构以供后续本地使用(例如,在游戏中使用)。这样的安排避免了用户对拥有高能力本地计算设备的需要。环闭合引擎被安排成检测移动环境传感器何时按照环移动,使得当前深度帧中描绘的场景至少部分与不是紧邻的之前深度帧的先前深度帧的场景相重叠。当环闭合时,该移动环境传感器重新访问它之前访问过的某处。例如,这可在用户在图2中的建筑物的整层四处走动并再次到达起始点时发生。这也可以在用户在房间四处移动至某家具背后并再次出来到原始起始位置或接近该原始起始位置时发生。因此,环的大小将取决于移动环境传感器所处的环境并取决于应用域而改变。例如,在人在建筑物的层四处走动的情况下 (如在图2中),该环可能数十米长。在人在单个房间内四处移动的情况下(如在图I中), 该环可以小于10米长。在玩具汽车上的机器人在儿童的玩具赛道上四处驾驶的情况下,该环可以小于I米长。检测何时环闭合发生是有用的,因为这使得3D模型中累积的误差能够被标识。例如,移动环境传感器可以使所捕捉的深度和/或彩色视频图像被标识为在环的开始或结束处,但是为那些图像中的每个图像计算的相机位置和定向可能不是一致的。一旦这些误差被标识,则可以减少这些误差以改善该环境的3D模型或图的精确度和一致性。 而且,可以从相机跟踪的总误差或误定向(disorientation)中恢复。环闭合误差可以被认为是包括局部化误差和全局误差两者。全局环闭合误差(也被称为漂移)包括随着时间的相机的组合的6自由度姿势估计中的误差。局部化误差可以在来自单个帧或很大程度上重叠的帧序列的相机的6自由度姿势估计中出现。实时地精确检测环闭合何时发生不是简单直接的。一旦环闭合被检测到,任何环闭合误差将被标识并减少,而这难以在实现高质量结果的同时实时地实现。此外,可以以不同于局部环闭合误差的方式来抵消或处置全局环闭合误差。重新定位引擎322被安排成处理以下情况实时跟踪器失去移动环境传感器300 的当前位置并且重新定位或再次找出当前位置。实时跟踪器可能由于许多原因而失去移动环境传感器300的当前位置。例如,快速相机运动、遮挡和运动模糊。在使用深度图进行实时跟踪的情况下,在该环境具有很少的精细的细节并且包括主要是平面的表面的情况下, 跟踪失败也可能发生。在使用结构化光发射器的深度相机的情况下,跟踪失败可能在该环境包括高度反射性表面(诸如计算机屏幕)和产生很差的深度信息的其他反射性表面时发生。如果没有检测到跟踪失败,则误差的跟踪信息有可能被用于递增该环境的3D模型或图。这可能导致该3D模型或图的破坏。快速和精确的跟踪失败检测是有益的,因为它能被用于防止3D模型的损坏以及触发跟踪恢复过程。
8
图4是图3的实时跟踪器3 16处的过程的流程图。如下面参考图9到13所述, 使用帧对齐引擎318建立(400)实时相机跟踪。使用(402)深度图帧314和帧对齐引擎的输出(对准参数和相机定向和位置)来细化移动环境传感器300在其中移动的环境的密集 3D模型326。如果检测(404)到跟踪失败,则移动环境传感器300的重新定位406发生,并且该过程在步骤402,同时随着更多的深度图帧被捕捉而递增该密集3D模型。以此方式,一旦检测到跟踪失败,则暂停正在进行的相机跟踪和正在进行的3D模型的细化,直到重新定位成功。如果检测到(408)环闭合误差,则修改该密集3D模型本身以将该误差计入。在解决该环闭合误差之后,该过程在步骤402继续,同时递增该密集3D模型。以此方式,当跟踪失败发生时保留该环境的密集3D模型,并且其精确度和一致性因为检测环闭合而被改善。图5是给出图3的重新定位引擎322的更多细节的示意图。它包括实时地操作的跟踪失败检测器500。跟踪失败检测器500可以包括阈值502,该阈值502是取决于所涉及的应用域而被预先配置的。例如,当该帧对齐引擎输出的对准参数改变超过阈值量时,跟踪失败可能发生。在另一示例中,当该帧对齐引擎的SEJg阵输出在连续输出间的改变超过阈值量时,跟踪失败可能发生。当用于跟踪移动深度相机的位置和定向的迭代过程的收敛中发生失败时,可以检测到跟踪失败。跟踪失败检测器500可以包括作为一个或多个规则、准则、阈值或其他条件存储的运动试探(heuristic) 504。例如,该运动试探可以是如下规则 移动环境传感器300正在以具有白噪声加速的恒定速度运动。来自帧对齐弓I擎的与此运动试探不一致的任何输出可以触发跟踪失败。在另一示例中,该运动试探可以是移动环境传感器300以随机行走(random walk)移动,其具有被设定在普通人的行走速度的最大线性速度(在该移动环境传感器正在由用户佩戴的情况下)且具有任意高的旋转速度。来自帧对齐引擎的与此运动试探不一致的任何输出可以触发跟踪失败。可以使用这些检测跟踪失败方式中的一种或多种的任何组合。在一示例中,使用违反的三个方面的组合来根据以下检测跟踪失败违反运动试探、违反旋转阈值和/或当用于跟踪移动深度相机的位置和定向的迭代过程的失败由于无法收敛或以太大的残留误差收敛而发生。跟踪失败检测器500可包括被安排成在该帧对齐引擎检测到退化(degeneracy) (506)时检测到跟踪失败的组件。例如,如同下面描述的,该帧对齐引擎通过使用一迭代过程来寻找各对深度图之间的各对相应点,其中该迭代过程包括对误差度量的优化。在优化误差度量期间,当该优化过程无法给出任何解时,检测到退化。例如,无法给出解可能是由于因环境中的反射性表面而不具有深度值的图像元素、因为该环境高度平坦(如果存在球形或柱形表面的话)、或由于其他原因。该重新定向引擎还包括重新定向过程508,该重新定向过程可以使用关键帧或可以在没有关键帧的情况下操作。关键帧是先前通过实时跟踪器收集的或人工生成的深度图或彩色视频帧。通过找到是当前相机视图的良好匹配的关键帧来恢复跟踪,并且这提供了初始姿势估计,跟踪可以从该初始姿势估计重新开始。在一些情况下,关键帧被边缘化 (marginalize)到SE3矩阵中,并且这减少了存储器要求。在需要时,通过光线投射(ray casting),可以从该密集3D模型恢复关键巾贞点。现在参考图6给出重新定位过程508在没有关键帧的情况下操作的一示例。例如, 使用移动环境传感器的运动模型,计算(600)相机姿势的路径分布。此运动模型可以预测该移动环境传感器在一稳定延伸的球体内,所述球体的中心在其最后已知位置附近并且具有任何定向。随机地,或以任何其他方式,从所述路径分布中选择(602)样本相机姿势。然后对所采样的相机姿势使用(604)该帧对齐引擎来将当前深度图和先前的深度图对齐以获得对准参数,如下面更详细地描述的。如果达到收敛(606),即,如果这些对准参数与最后已知位置一致,则该相机已被成功地重新定位(608)。否则,获取另一样本(602)并且该过
程重复。现在给出重新定位过程508在没有关键帧的情况下操作的另一示例。向当前深度图的各小块(patch)和从该环境的3D模型获得的多个先前的深度图的各小块应用快速群集算法(诸如随机决策树林)。通过使用光线投射技术来呈现来自该 3D模型的深度图,或以任何其他方式,可以从该环境的3D模型获得这些先前的深度图。该随机决策树林中的每个叶子节点均代表基元(texton)。基元是彩色图像的纹理特征,但是在本示例中使用的是深度图,因此基元是深度图的纹理特征。随机地,或以任何其他方式, 选择当前深度图的多个小块。每个小块是多个毗邻的图像元素。还从多个先前深度图中的每一个中选择小块。每个小块被处理到随机决策树林的叶子以标识该小块的基元。然后构筑图像中找到的所有基元的直方图。重新定位过程根据随机决策树林分类器输出的基元的直方图来选择与当前深度图类似的一先前深度图。然后用与所选的深度图相关联的相机姿势作为当前相机姿势并且重新定位该相机。离线训练该随机决策树林群集算法,或者在使用该实时跟踪器期间使用后台过程来训练该随机决策树林群集算法。图7是使用关键帧进行重新定位的方法的流程图。在实时跟踪期间收集(702)关键帧并将其与该3D模型相关联地存储。例如,关键帧是由移动环境传感器300处的RGB相机306捕捉的彩色视频帧。在另一示例中,关键帧是由深度相机302捕捉的深度图帧314。 每个关键帧均具有相关联的相机姿势,该相机姿势是在实时跟踪期间由帧对齐引擎318计算出来的。根据该相机姿势,将每个关键帧与3D模型326中的位置相关联。例如,通过对于该关键帧在该3D模型中在由该相机姿势所指定的位置处包括参考,将该关键帧与3D模型相关联地存储。在一些示例中,将该3D模型存储在GPU存储器的一小格(cube)中,并且根据由该相机姿势对于所述关键帧所指定的位置来将所述关键帧挂起在存储器的此小格中。在一些情况下,关键帧被存储为其相关联SE3矩阵,并且这减少了存储器要求。在需要时,通过光线投射,可以从该密集3D模型恢复关键帧深度点。所收集的关键帧的数量取决于可用的存储器和处理能力,还取决于应用域。然而, 可以存储数万个关键帧。通过使用随机选择、选择每个第η帧、选择包括先前未看到的视觉特征的帧、使用这些方法的组合、或以任何其他方式,来实现对作为关键帧保存的帧的选择。在一示例中,该系统在各关键帧之间等待最小数量的帧,并且如果一帧与在平移和旋转方面与任一现有关键帧距离至少指定的量的相机姿势相对应,则记录该新的关键帧。当检测到跟踪失败(702)时,该重新定位引擎选择(704)所述关键帧中与当前相机视图(深度图或RGB图像)类似的关键帧。该关键帧和当前相机视图之间的相似度的测量可以是任何适当类型的。例如,可以比较诸如边缘、角落、团(blob)、线等特征。也可以使用相似度的其他测量,诸如把将物体分段过程(segmentation process)应用到该关键巾贞和当前相机视图的结果进行比较。在所述关键帧是深度图的情况下,可以将人类身体姿势检测器应用到该关键帧和当前视图并比较结果。可以向当前帧和先前帧应用几何估计和/或语义图像标记过程(诸如机器学习分类器)。然后,有可能通过选择与当前帧相比具有类似几何(竖直和水平表面的安排和位置)和/或语义标记(物体的安排)的帧来重新定位。选择关键帧是复杂且耗时的任务,因为要遍历搜索如此多的关键帧。在一些示例中,所述搜索是对位于最后已知相机位置附近的关键帧进行的,然后可以逐渐加宽搜索空间,直到找到良好匹配。一旦已选择了关键帧,则可使用(706)该关键帧来提供初始姿势估计,跟踪可以从该初始姿势估计重新开始。现在参考图8来描述图3的环闭合引擎320处的方法。环闭合检测过程804从该环境的当前深度图800和3D模型802取得输入。在一些情况下,环闭合检测过程804从RGB 相机306所捕捉的当前彩色图像获取输入,尽管这不是必要的。环闭合检测过程804使用任何适当的环闭合检测方法,诸如特征匹配过程806、词袋过程808、或其他环闭合检测过程。 如同上面提到的,环闭合在移动环境传感器重新访问一位置时发生。词袋过程能够高效地识别两个图像何时示出相同的场景,从而检测到环闭合。词袋过程(动态地或离线地)生成特征描述符(例如,线、边缘、角落、团、SIFT特征、SURF特征)的词典并使用该词典来标记在图像中找到的特征。然后可以非常快速地将这些图像进行比较以查看它们是否具有许多共同的特征,并因此可能是相同物体或位置的。特征匹配过程是在不使用词典的情况下标识两幅图像中相同的特征的任何过程。一旦检测到环闭合,则任何环闭合误差可被发现并可被计入。例如,环闭合标识该 3D模型和当前深度图的部分具有相同的相机位置。然而由于跟踪误差,情况并非如此。此外,可以标识出环闭合误差的类型。例如,该环闭合是全局的(诸如是对相机所估算的组合的6自由度姿势中的漂移的结果),还是该误差是局部的(其是来自单个帧或很大程度上重叠的帧的序列的很差的6自由度姿势估计的结果)。环闭合误差可以是全局和局部环闭合误差的组合。遵循环闭合程序过程812来减少此误差并改善该3D模型的一致性和精确度。 可以使用任何适当的环闭合程序,诸如优化能量函数。图9是图3的帧对齐引擎318的更详细的示意图。帧对齐引擎908是在至少具有 CPU和一个或多个GPU的计算设备处实现的计算机。它包括迭代最近点过程912和可任选的平面提取组件910。迭代最近点过程使用投影数据关联和点-到-平面误差度量,如下面更详细地描述的。该帧对齐引擎从深度相机接收当前深度图900。这也被称为目的地深度图。在一些示例中,它还从深度相机接收源深度图902,源深度图902是先前的深度图帧。 在其他示例中,该帧对齐弓I擎获取该源深度图的密集表面模型估计906。帧对齐弓丨擎的输出是变换的一组对准参数,用于将当前帧和源帧(或帧估计)对齐。在一些示例中,这些对准参数是作为SE3矩阵形式的六自由度(6D0F)姿势估计来提供的,该SE3矩阵描述了深度相机302相对于真实世界坐标的旋转和平移。此变换矩阵可以被更加正式地表示为

权利要求
1.一种实时相机重新定位的方法,包括从正在移动的移动深度相机(302)接收深度图帧(314)的序列,每个深度图帧包括多个图像元素,每个图像元素具有与从所述移动深度相机到由所述移动深度相机所捕捉的场景中的表面的距离有关的深度值;使用所述深度图帧跟踪所述移动深度相机的位置和定向,并使用所述深度图帧同时形成所述移动深度相机正在其中移动的环境的3D模型(326);检测对所述移动深度相机的位置和定向的跟踪中的失败;以及通过使用由所述移动深度相机所捕捉的当前深度图重新计算所述移动深度相机的位置和定向来重新定位所述移动深度相机。
2.如权利要求I所述的方法,其特征在于,检测所述跟踪中的失败包括以下任何项将所述移动深度相机的当前和先前的跟踪到的位置的改变与阈值(502)进行比较;检测用于跟踪所述移动深度相机的位置和定向的迭代过程的收敛的失败;以及将所述移动深度相机的当前的跟踪到的位置和定向与使用所述移动深度相机的运动的模型预测的位置和定向进行比较。
3.如权利要求I或权利要求2所述的方法,其特征在于,重新定位所述移动深度相机包括从多个关键帧中寻找(700)与所述当前深度图类似的关键帧,所述多个关键帧是由所述移动深度相机在先前收集的、各自具有相关联的相机位置和定向的深度图帧;以及其中寻找关键帧包括以下任何项使用几何估计过程来选择与所述当前帧具有类似的竖直和水平表面的安排和位置的关键帧;以及按照与所述移动深度相机的最后已知位置有关的次序来搜索所述多个关键帧。
4.如权利要求I所述的方法,其特征在于,重新定位所述移动深度相机包括在给出所述移动深度相机的已知先前运动的情况下,计算作为姿势的预测分布的所述移动深度相机的姿势的路径分布;从所述路径分布采样姿势并使用所采样的姿势来将所述当前深度图和先前深度图对齐。
5.如权利要求I所述的方法,其特征在于,重新定位所述移动深度相机包括将随机决策树林应用到来自所述当前深度图和来自从所述环境的3D模型获得的多个先前深度图的小块以获得作为深度图的纹理特征的基元的直方图,并根据所述直方图选择与所述当前深度图类似的先前深度图。
6.一种实时相机重新定位系统,包括被安排为从正在移动的移动深度相机(302)接收深度图帧(314)的序列的输入 (1402),每个深度图帧包括多个图像元素,每个图像元素具有与从所述移动深度相机到由所述移动深度相机所捕捉的场景中的表面的距离有关的深度值;被安排为使用所述深度图帧跟踪所述移动深度相机的位置和定向的帧对齐引擎 (318);被安排为使用所述深度图帧形成所述移动深度相机正在其中移动的环境的3D模型的 3D模型形成系统(324);被安排为检测所述移动深度相机的位置和定向的所述跟踪中的失败、并且通过使用由所述移动深度相机所捕捉的当前深度图和从所述3D模型获得的至少一个先前深度图来重新计算所述移动深度相机的位置和定向来重新定位所述移动深度相机的重新定位引擎(322)。
7.如权利要求6所述的系统,其特征在于,所述重新定位引擎被安排为将随机决策树林应用到来自所述当前深度图和来自从所述环境的3D模型获得的多个先前深度图的小块以获得作为深度图的纹理特征的基元的直方图,并根据所述直方图选择与所述当前深度图类似的先前深度图。
8.如权利要求6所述的系统,其特征在于,所述重新定位引擎(322)被安排为从多个关键帧中寻找与所述当前深度图类似的关键帧,所述多个关键帧是由所述移动深度相机在先前收集的、各自具有相关联的相机位置和定向的深度图帧。
9.如权利要求8所述的系统,其特征在于,所述重新定位引擎(322)被安排为通过以下任何项来寻找关键帧使用几何估计过程来选择与当前帧具有类似的竖直和水平表面的安排和位置的关键帧;以及按照与所述移动深度相机的最后已知位置有关的次序来搜索所述多个关键帧。
10.一种游戏系统,包括使用结构化光的移动红外飞行时间深度相机(302)和如权利要求6所述的用于跟踪所述移动深度相机的系统,所述深度相机和实时跟踪器被安排为以每秒至少30帧操作,所述游戏系统被安排为与所述移动深度相机的所述跟踪有关地影响游戏的过程。
全文摘要
本发明涉及使用深度图进行移动相机定位。针对机器人、沉浸式游戏、增强现实和其他应用描述了使用深度图进行移动相机定位。在一实施例中,在一环境中跟踪移动深度相机,同时使用所感测的深度数据形成该环境的3D模型。在一实施例中,当相机跟踪失败时,通过使用先前收集的关键帧或以其他方式来检测相机跟踪的失败并重新定位相机。在一实施例中,通过实时地将当前深度图与该3D模型的特征进行比较,检测到移动相机重新访问一位置的环闭合(loop closure)。在一些实施例中,使用所检测到的环闭合来改善该环境的3D模型的一致性和精确度。
文档编号G06T7/00GK102609942SQ20121002158
公开日2012年7月25日 申请日期2012年1月31日 优先权日2011年1月31日
发明者A·费茨吉本, D·A·巴特勒, D·莫利尼奥克斯, D·金, J·D·J·肖顿, O·希利格斯, P·科利, R·纽科姆, S·E·豪杰斯, S·伊扎迪 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1