使用深度相机的头部姿态跟踪的制作方法

文档序号:7791482阅读:333来源:国知局
使用深度相机的头部姿态跟踪的制作方法
【专利摘要】呈现了使用被配置以放置在用户的头部上的一组传感器的头部姿态跟踪技术的实施例。该组传感器包括深度传感器装置,它和至少一个其它类型的传感器被用于标识场景内的特征的三维位置。该组传感器中的每个传感器的输出的数据是周期性输入,且每次输入数据时,它被用于计算变换矩阵,当该变换矩阵被应用于在当输入第一传感器数据时所建立的先前确定的头部姿态位置和朝向时标识了当前的头部姿态位置和朝向。随后,将该变换矩阵应用于先前确定的头部姿态位置和朝向以标识当前的头部姿态位置和朝向。
【专利说明】使用深度相机的头部姿态跟踪
[0001] 背景
[0002] 头部姿态跟踪通常涉及周期性确定人的头部在空间中的位置和朝向。人的头部在 空间中的位置一般被定义为按照为空间预先建立的世界坐标系来表示的3D位置。该位置 可以,例如,与头部质心(即所估计的人的头部的中心)相关联。尽管可另选地规定与人的 头部相关联的另一个容易查明的点。头部姿态朝向通常按照绕在头部质心(或其它规定的 头部点)处具有它们的公共原点的三个正交轴的旋转(俯仰、翻滚、偏航)来定义。典型 地,俯仰是头部的上和下的移动,偏航是头部的左和右的移动,而翻滚是头部从一侧到另一 侧的移动。
[0003] 头部姿态被用于各种应用中。例如,在增强现实应用的上下文中跟踪头部姿态。在 增强现实应用中,用户佩戴具有至少一个半透明显示器的护目镜或类似的设备,这样,用户 可以看到被呈现在显示器上的现实世界和虚拟对象这两者。虚拟对象需要如同它们是现实 环境的部分那样出现。一种保证虚拟对象如同它们是现实环境的部分那样出现的技术组件 是头部姿态跟踪。当用户移动他或她的头部时,呈现在(随用户头部移动的)显示器上的 虚拟对象需要相对于现实环境固定地出现。
[0004] -种实现精确头部姿态跟踪的尝试涉及例如通过在已知的墙或天花板的已知位 置处放置具有已知图案的标记来操纵现实环境。由(被安装在用户头部或空间中的其它地 方的)传统的摄像机所捕捉的图像随后通过使用计算机视觉技术基于标记在图像中的位 置计算用户的头部姿态来进行处理。另一种尝试涉及使用安装在用户头部(例如在头盔上 或一副护目镜中)的惯性传感器(例如陀螺仪、加速计和罗盘)来查明用户的头部姿态。另 夕卜,已经提议了在其中将惯性传感器和一个或多个传统的摄像机相组合来获得头部姿态估 计而无需操纵环境的头部姿态跟踪方案。


【发明内容】

[0005] 在此所述的头部姿态跟踪技术实施例通常也涉及周期性地跟踪人的头部在空间 中的位置和朝向。在一个通用的示例性实施例中,这通过使用被配置以放置在用户的头部 上的一组传感器来完成。该组传感器有利地包括深度传感器装置,它被用于标识通过该组 传感器和至少一个其它类型的传感器所感测的场景内的点的三维位置。计算设备被用于运 行头部姿态跟踪计算机程序。该计算机程序包括用于周期性地输入由该组传感器中的每个 传感器输出的数据的模块。它还包括用于在每次从一个或多个传感器输入数据时使用所输 入的数据来计算变换矩阵的模块。当被应用于在输入第一传感器数据时先前所确定的头部 姿态的位置和朝向时,该变换矩阵标识了当前的头部姿态的位置和朝向。
[0006] 具体而言,在一个实施例中,前述其它类型的传感器是彩色摄像机。深度传感器装 置和彩色摄像机被同步,以便周期性地分别产生深度帧和彩色图像帧形式的同时期场景数 据。另外,对深度传感器装置和彩色摄像机校准以便将每个彩色图像帧中的每个像素映射 到同时期产生的深度帧中相应的三维场景位置(如果可能的话)。前述计算机程序随后涉 及第一输入每个同时期产生的深度帧和彩色图像帧。对于这些帧对输入(在所述第一之 后)的每个帧对输入,标识在最后输入的彩色图像帧和紧接在该最后输入的彩色图像帧之 前所产生的彩色图像帧(即紧接之前的彩色图像帧)之间的匹配特征。随后使用所标识的 匹配特征和在最后输入的彩色图像帧和紧接在该最后输入的彩色图像帧之前所产生的彩 色图像帧之间的匹配特征的对应的三维位置来估计第一变换矩阵。该变换矩阵定义了点从 一个帧到另一个帧,且具体地从紧接在该最后输入的彩色图像帧之前所产生的彩色图像帧 到该最后输入的彩色图像帧,的平移和旋转。接着,估计定义了这些点从第一彩色图像帧输 入到最后输入的彩色图像帧的平移和旋转的最终变换矩阵。这通过将定义了从第一彩色图 像帧到紧接在该最后输入的彩色图像帧之前的彩色图像帧的点的平移和旋转的先前计算 的变换矩阵与定义了从所述紧接之前的彩色图像帧到该最后输入的彩色图像帧的点的平 移和旋转的第一变换矩阵进行累加来完成。随后,将该最终的变换矩阵应用于在第一彩色 图像帧输入中描述的场景内的先前所确定的姿态位置和朝向以标识当前的头部姿态位置 和朝向。
[0007] 在又另一个实施例中,前述的其它类型的传感器不仅包括如前所配置的彩色摄像 机,而且还包括一套测量围绕三个轴的角速度和沿三个轴的线性加速的惯性传感器。该惯 性传感器以等于或超过提供深度和彩色图像帧的速率的速率提供了角速度和线性加速数 据的帧。在这种情况中,前述计算机程序涉及第一输入所产生的每个惯性传感器帧。随后, 对于每个惯性传感器帧输入(在第一之后的),使用最后输入的惯性传感器帧来估计当前 基于惯性传感器的变换矩阵。该基于惯性传感器的变换矩阵定义了点从紧接之前的惯性传 感器帧输入到最后输入的惯性传感器帧的平移和旋转。随后估计定义点从第一惯性传感器 帧输入到最后惯性传感器帧的平移和旋转的最终的基于惯性传感器的变换矩阵,所述估计 通过将定义了点从第一惯性传感器帧到紧接在该最后输入的惯性传感器帧之前的惯性传 感器帧(即紧接之前的惯性传感器帧)的平移和旋转的先前计算的变换矩阵与定义了点从 所述紧接之前的惯性传感器帧到该最后输入的惯性传感器帧的平移和旋转的当前基于惯 性传感器的变换矩阵进行累加来完成。接着,确定是否已经产生了新的彩色视频和深度帧。 如果没有,将该最终的基于惯性传感器的变换矩阵应用于先前确定的与第一惯性传感器帧 输入相关联的头部姿态位置和朝向以标识当前的头部姿态位置和朝向。然而,如果已经产 生了新的彩色视频和深度帧,将它们输入并且标识在最后输入的彩色图像帧和紧接最后输 入的彩色图像帧之前所产生的彩色图像帧之间的匹配特征。随后使用所标识的匹配特征和 在最后输入的彩色图像帧和紧接在该最后输入的彩色图像帧之前所产生的彩色图像帧之 间的匹配特征的对应的三维位置来估计基于图像的变换矩阵。该基于图像的变换矩阵定义 了点从紧接在该最后输入的彩色图像帧之前所产生的彩色图像帧到该最后输入的彩色图 像帧的平移和旋转。接着估计定义点从第一惯性传感器帧输入到最后输入彩色图像帧的平 移和旋转的最终的基于图像的变换矩阵,所述估计通过将定义了点从第一惯性传感器帧到 紧接在该最后输入的彩色图像帧之前的彩色图像帧的平移和旋转的先前计算的变换矩阵 与定义了点从所述紧接之前的彩色图像帧到该最后输入的彩色图像帧的平移和旋转的当 前基于图像的变换矩阵进行累加来完成。该最终的基于图像的变换矩阵和最终的基于惯性 传感器的变换矩阵合并以产生定义了点从第一惯性传感器帧输入到最后输入的惯性传感 器帧的平移和旋转的单个经组合的变换矩阵。随后将该经组合的变换矩阵应用于先前确定 的与第一惯性传感器帧输入相关联的头部姿态位置和朝向以标识当前的头部姿态位置和 朝向。
[0008] 应该注意,提供前述
【发明内容】
是为了以简化的形式介绍将在以下详细描述中进一 步描述的概念选择。本
【发明内容】
不旨在标识出所要求保护的主题的关键特征或必要特征, 也不旨在用于帮助确定所要求保护的主题的范围。
[0009] 附图简述
[0010] 参考以下描述、所附权利要求书以及附图,将更好地理解本发明的具体特征、方面 和优点,附图中:
[0011] 图1是描述用于实现在此所述的头部姿态跟踪技术实施例的头部姿态跟踪系统 的简化框图。
[0012] 图2是在实现在此所述的头部姿态跟踪技术实施例中使用的各种帧和坐标方案 的简化附图。
[0013] 图3是描述将深度传感器装置和传统的彩色摄像机一起使用的图1的示例性头部 姿态跟踪系统的简化图表。
[0014] 图4A-D是大体概述使用由图3描述的深度传感器装置和彩色摄像机输出的数据 的头部跟踪过程的实施例的流程图。
[0015] 图5是大体概述用于确定关键帧匹配是否将发生的过程的一个实现的流程图。
[0016] 图6是描述将深度传感器装置和传统的彩色摄像机以及一套惯性传感器一起使 用的图1的示例性头部姿态跟踪系统的简化图表。
[0017] 图7A-E是大体概述使用由图6描述的深度传感器装置、彩色摄像机和该套惯性传 感器输出的数据的头部跟踪过程的实施例的流程图。
[0018] 图8是描绘了构成用于实现在此描述的头部姿态跟踪技术的各实施例的示例性 系统的通用计算设备的图表。

【具体实施方式】
[0019] 在以下对头部姿态跟踪技术的各实施例的描述中,对附图进行了参考,附图构成 了各实施例的一部分且在其中作为说明示出了可在其中实践该技术的具体实施例。可以理 解,可以使用其他实施例并且可以做出结构改变而不背离本发明技术的范围。
[0020] 1. 0头部姿杰跟踪
[0021] 通常,在此所述的头部姿态跟踪技术实施例周期性地跟踪人的头部在空间中的位 置和朝向。在图1所示的一个通用实现中,该实现涉及一种使用被配置以放置在用户的头 部上的一组传感器100的系统。该组头部承载的传感器100包括深度传感器装置102,它被 用于标识通过该组传感器和至少一个其它类型的传感器104所感测的场景内的特征的三 维位置。另外,该示例性头部姿态跟踪系统具有运行计算机程序108的计算设备106 (例如 在本说明书后面可找到的计算环境章节中所描述的计算设备),所述计算机程序具有包括 传感器模块110和变换矩阵模块112的程序模块。通常,传感器模块周期性地输入由该组 传感器中的每个传感器输出的数据,并且变换矩阵模块在每次从一个或多个传感器输入数 据时使用所输入的数据来计算变换矩阵。当被应用于在输入第一传感器数据时先前所确定 的头部姿态的位置和朝向时,该变换矩阵可被用于标识当前的头部姿态的位置和朝向。
[0022] 在此所述的头部姿态跟踪技术实施例使用了不同的传感器方案。如上所示,这些 方案的每个方案包括被用于标识在深度传感器装置和空间内的位置之间的距离的深度传 感器装置(它典型地包括某种类型的投影仪和接收器)。在一个示例性实现中,深度传感器 装置与传统的彩色摄像机一起被使用。在另一示例性实现中,深度传感器装置与传统的彩 色摄像机和一套惯性传感器一起被使用。这些方案的每个方案还包括先前所示的用于处理 由各种传感器输出的传感器信号的计算设备。在下述的章节中,前述的示例性实现的每个 实现都将被更加详细地描述,并且每个实现的实现过程也将被同样描述。
[0023] 然而,首先注意,在头部姿态跟踪中,估计头部坐标帧(帧"H")或传感器帧(帧 "S")在世界帧(帧"W")中的位置(1"或1^)和朝向('或')。传感器帧是指彩色相 机帧(帧"C")202和深度传感器装置的接收机帧204 (帧〃DC")以及当被包括时的惯性传 感器帧(帧〃1〃)206。这些传感器帧被变换成与头部帧相同,并且假设在跟踪开始处世界 帧200覆盖了经变换的传感器帧。具体而言,这三个传感器帧的每个具有三个轴。在这三 个传感器帧之间的相对变换不随时间改变。这样,所述相对变换是离线预校准的。实际上, 在开始处的彩色相机传感器帧被用作世界帧,并且深度传感器接收机和惯性传感器帧被变 换为匹配。前述帧被如图2所示定义,其中世界帧200的坐标被标记为X w,Yw,Zw,彩色相机 帧202的坐标被标记为X。,Y。,Z。,深度传感器接收机帧204的坐标被标记为X D。,YD。,ZD。,而 惯性传感器帧206的坐标被标记为X D YD &。注意,箭头?\和TD。表示与深度传感器接收机 和惯性传感器帧相关联的前述的相对变换,而虚线〇指示在彩色相机帧和世界帧之间的对 应性。
[0024] 除了前述帧和坐标之外,在以下说明书中将使用下述符号和定义:
[0025] p1 :"点p在帧1中的坐标";
[0026] p2 ;"点p在帧2中的坐标";
[0027] R12 :"从帧1到帧2的旋转"或"在帧1中描述的帧2" ;
[0028] T12 :"从帧1的原点到在帧1中描述的帧2的原点的平移";以及
[0029] p1 = R12p2+T12 :"将点ρ的坐标从帧2变换到帧1"。
[0030] 通常,所使用的约定是上标指示点在哪个帧中,而下标指示其它信息,例如变换的 次序。
[0031] 1. 1 #用彩色视频的示例件系统实现和讨稈
[0032] 相机和深度传感器裝置
[0033] 如前所述,一个示例性系统实现通常使用包括深度传感器装置302和传统的彩色 摄像机304的头部承载的传感器300以及计算机306,如图3所示。可以理解,可使用各种 类型的深度传感器装置。作为示例而非限制,深度传感器装置可以是红外投影仪和红外摄 像机形式的红外接收器。红外投影仪和摄像机可以以下述传统方式工作:红外投影仪将红 外光发射到环境中,而红外摄像机捕捉从环境中的对象和表面射出的红外光反射。随后,将 所反射的红外光用于以传统方式计算离开接收机和环境中的一个点或特征的距离。对于彩 色摄像机,这可以是任意合适的可视光摄像机(也称为RGB (红/绿/蓝)摄像机)。
[0034] 注意,深度传感器装置和彩色摄像机被配置以便由用户佩戴在他或她的头部上 (安装在头盔上或一副护目镜或眼镜中,或在这两者之上)。可以理解,在深度传感器装置 和彩色摄像机之间维护了固定的空间关系。而且,假设深度传感器装置和彩色摄像机的朝 向和位置模仿用户头部的朝向和位置。还有,深度传感器装置和彩色摄像机被配置以便提 供同步的彩色和深度图像序列。
[0035] 在跟踪之前,彩色摄像机和深度相机相对于彼此被校准以获得在它们之间的变 换。这使用传统的方法来完成。使用校准的结果,彩色图像中的像素可以被映射到对应的 深度图像中的像素,如果可能的话。在一个实现中,通过将光流跟踪器应用于彩色图像序列 来执行姿态跟踪。深度信息可以用在变换计算中。然而,单纯基于光流跟踪的头部姿态估 计可能最终导致漂移。因此,在一个实现中,记录一个或多个关键帧,并且通过比较跟踪结 果和这些关键帧来校正所述结果。
[0036] 具体而言,参照图4A-D,在在此所述的头部姿态跟踪技术实施例的一个实现中,由 深度传感器装置和彩色摄像机所捕捉的图像数据是以逐帧基础被捕捉的。每个被捕捉的帧 依次被输入到前述的计算机中。这样,过程通过输入最后捕捉的彩色视频和深度帧(过程 动作400)开始。随后确定是否要建立新的关键帧(过程动作402)。在一个版本中,第一帧 输入被建立为关键帧。该第一关键帧可以是为该过程期间建立的唯一关键帧。或者,可以 周期性地建立新的关键帧。例如,只要最后输入的帧描述少于在先前建立的关键帧中所描 述的场景的规定部分(例如40%)。这样,可以记录关键帧的集合,以便随时间构建周围场 景的可视特征全景。稍后,将更加详细地描述建立一个或多个关键帧的目的。
[0037] 只要确定没有新的关键帧要被建立,随后确定关键帧匹配是否发生(过程动作 404)。光流跟踪在连续帧中跟踪特征点。在连续帧之间计算的变换最终可能产生漂移效应。 在一个实现中,该漂移效应通过使用绝对基准被校正。一种创建这种绝对基准的方式是当 处理连续帧时将一个或多个关键帧与它们的变换矩阵存储回第一彩色图像帧输入。只要当 前帧描述了也在关键帧中被捕捉的场景的一部分(例如50% ),就可能对漂移进行校正,如 稍后所述的。注意,以这种方式使用关键帧匹配还具有允许从暂时的跟踪失败中恢复的优 点。然而,出于稍后将描述的原因,可以并不针对每个新的彩色图像帧输入都执行关键帧匹 配。只要没有对最后输入的彩色图像帧执行关键帧匹配,对于在第一之后的每个新的帧输 入,使用前述光流技术来标识在最后输入的彩色图像帧和紧接最后输入的彩色图像帧之前 的彩色图像帧之间的匹配特征(过程动作406)。任意合适的传统的光流方法都可被用于此 目的,尽管在一个实现中允许实时执行是计算上高效的。假设相机帧速率为大约30HZ,对于 正常速度的运动,光流跟踪器可以高效地找出在在前帧和当前帧之间的点匹配。所找到的 匹配的点的数目依赖于环境和跟踪器中的参数设置。注意,在光流过程中有时是图像特征 而非点被匹配。虽然,在此提供的本说明书是指匹配的点,但可以理解其它匹配的特征可以 被用于匹配的点的替换或者补充。
[0038] 接着,在过程动作420中,使用光流信息和先前输入深度帧来估计当前的变换矩 阵。该变换矩阵定义了点从紧接在最后输入的彩色图像帧之前所产生的帧到该最后输入的 彩色图像帧的平移和旋转。注意,光流技术标识在两个帧中的匹配点的2D图像坐标。然而, 存在缩放模糊性且精度难以保证。这是对应于这两个彩色图像帧的深度图像发挥作用的地 方。深度图像提供了场景的3D信息,并且因此,可以为每个彩色相机帧找到匹配的点的3D 位置。给定两个或更多组匹配的点的3D坐标,可以使用标准方法来估计前述变换矩阵。 [0039] 然而,由于匹配的点经常是拐角点的事实,从对应的深度图像中查明在彩色图像 中的给定点的深度值可能是困难的。这样,存在一种匹配的点是3D拐角的可能性。在这种 情况中,该点在深度映射上的投影可能落在边缘上或空白区域中。这引起了模糊性,因为对 于两个匹配的点,一个可以在较近的表面上找到,而另一个可以在更远的表面上找到,或者 它们两者之一可以具有无效的深度值。这将减少有用的匹配的数目。为了解决这个问题, 在一个(在图4C以虚线框示出的指示动作的可选性质的)实现中,在计算变换矩阵之前, 使用深度校正模块。具体而言,该模块涉及在直接被映射的匹配点周围定义小的搜索窗口 (例如3x3像素)(过程动作408)。随后标识在每个窗口内与相机最接近的点,并将其指定 为经细化的匹配点(过程动作410)。这些经细化的匹配点随后可以被用于在过程动作420 中计算变换矩阵。通过选择较近的表面,可以避免前述模糊性。
[0040] 注意,在光流跟踪期间,将很可能引入匹配点异常值。可以通过删除典型地由所 使用的匹配算法所标识的具有较低匹配质量的匹配来减少异常值的数目。具体而言,在一 个(在图4C以虚线框示出的指示动作的可选性质的)实现中,在计算变换矩阵之前,选择 先前未选择的一对匹配点(过程动作412)。随后,在过程动作414确定由所使用来标识所 选择的匹配点的匹配算法所标识的匹配质量等级是否落在规定最小等级(例如1毫米)之 下。如果是,所选择的匹配点被去除作为匹配点的指定(过程动作416)。一旦所选择的匹 配点已经被去除指定,或如果所选择的点的匹配质量等级不落在规定最小等级之下,确定 是否存在还未被选择的任意剩余的匹配点(过程动作418)。如果存在,则按需重复过程动 作412到418直到已经考虑了所有的匹配点对。
[0041] 虽然前述过程将减少异常匹配点的数目,但由于剩余的异常值还是经常无法保证 高性能。因此,在删除了具有(如由它们的匹配质量落在规定最小等级之下所指示的)坏 匹配质量的匹配之后,可以使用迭代过程来进一步移除至少最明显的剩余异常值。具体而 言,在一个(在图4D以虚线框示出的指示动作的可选性质的)实现中,最后估计的变换矩 阵(R ar,TAK)(其中A表示在先前巾贞中的一组点,该组点分别匹配当前巾贞的一组点B中的一 个点)被用于变换组B中的点(过程动作422)。随后将每个经变换的点所得到的点坐标 与在组A中其对应的点相比较以建立差异度量(过程动作424)。接着,计算匹配点对的 差异度量的平均,并且在过程动作426中确定该平均是否超出规定的最小等级(例如1毫 米)。如果该平均并未超过规定的最小等级,那么,按照量级对差异度量排序并从最大开始 向下以量级标识规定百分比(例如10%)的差异度量(过程动作428)。随后,将与所标识 的差异度量之一相关联的每个匹配对的组B中的匹配点和其在组A的对应匹配点去除作为 匹配点对的指定(过程动作430)。接着,使用剩余的匹配点对重新估计变换矩阵(过程动 作432)。随后,确定是否已经达到变换矩阵重新估计迭代的规定的最大数目(例如3)(过 程动作434)。如果否,则适当重复过程动作422到434。这会继续直到要么先前计算的平 均不超过规定的最小等级要么确定已经达到变换矩阵重新估计迭代的规定的最大数目。 [0042] 接着估计定义点从第一彩色图像帧输入到最后帧输入的平移和旋转的最终的变 换矩阵,所述估计通过将定义了点从第一输入彩色图像帧到紧接在该最后输入的帧之前的 彩色图像帧的平移和旋转的先前计算的变换矩阵与定义了点从所述紧接最后输入的彩色 图像帧之前的帧到该最后输入的彩色图像帧的平移和旋转的当前变换矩阵进行累加来完 成(过程动作438)。还应注意,累加前述变换矩阵以使用传统的方法形成最终的变换矩阵。
[0043] 然而,如果在过程动作402中,确定要建立新的关键帧,那么,记录最后输入的彩 色相机帧并将其指定为当前关键帧(过程动作436)。另外,相对于关键帧匹配是否会发生 的决策而言,由于即使当前帧和关键帧两者都描述相同的场景部分,它们之间还是可能存 在明显的运动,因此,在匹配中典型地需要(例如使用传统的加速稳健特征(Speeded Up Robust Features(SURF))匹配过程可以找到的)强的特征以实现精确结果。不幸地是,这 种强力特征检测器和描述器通常在计算上是昂贵的。因此,在一种版本中,仅针对每少量 (例如15)帧来进行关键帧匹配。这是合理的,因为漂移仅在变换错误已经针对少量帧累积 之后才会明显起来。鉴于前述,图5概述了一种确定关键帧匹配是否要发生的方式。首先, 确定自从最后一次执行关键帧匹配以来是否已经输入了规定数目的帧(过程动作500)。如 果规定数目的帧还未被输入,那么指定未到用于新的关键帧匹配的时间(过程动作502)。 然而,如果已经输入了规定数目的帧,被认为到了执行关键帧匹配过程的时间(过程动作 504)。
[0044] 鉴于前述并再次参见图4A,如果在过程动作404中确定关键帧匹配要发生,或如 果最后输入的彩色图像帧已经被指定为当前关键帧,那么标识在最后输入的彩色图像帧和 描述最后输入的帧中所描述的场景的至少规定部分的关键帧(此后将被称为经标识的关 键帧)之间的匹配点(过程动作440)。如前所述,在一个实现中,出于该目的使用传统的 SURF匹配过程。注意,在过程动作408到410以及过程动作412到418中先前描述的可选 匹配点细化和异常值消除动作也可以在此实现以细化所标识的关键帧和最后输入帧之间 的匹配点位置。
[0045] 一旦在最后输入的彩色图像帧和所标识的关键帧之间的匹配点已经被标识,它们 就被用于与来自对应的深度帧的3D位置数据相结合以在过程动作442中估计当前的变换 矩阵(即,(R t,k,Tt,k))。该变换矩阵定义了点从所标识的关键帧(即k)到最后输入帧(即 t)的平移和旋转。注意,该变换矩阵估计是以与在过程动作420中估计在连续帧之间的变 换矩阵相同的方式来完成的。另外,在过程动作422到434中先前所述的可选的迭代异常 值消除动作也可以在此实现以潜在地增加所估计的变换的精确性。随后,使用在所标识的 关键帧和最后输入帧之间获得的变换矩阵以及定义了点从第一彩色图像帧输入(即帧1) 到所标识的关键帧的平移和旋转的先前计算的关键帧变换矩阵(即(Ru,T ut))来估计定 义了点从第一彩色图像帧输入到最后输入帧的平移和旋转的关键帧匹配的变换矩阵(过 程动作444)。在一个实现中,这是通过将所标识的关键帧和最后输入帧之间估计的变换矩 阵与所述第一帧和所标识的关键帧之间的先前计算的变换矩阵相乘来完成的。在最后输入 的彩色图像帧已经被指定为当前关键帧的情况下,与该帧相关联的关键帧匹配的变换矩阵 随后被指定为用于该帧的关键帧变换矩阵(过程动作445)。这建立了定义点从第一彩色图 像帧输入到当前关键帧的平移和旋转的预计算的关键帧变换矩阵,用于在创建下一关键帧 时计算关键帧匹配的变换矩阵。接着估计定义点从第一彩色图像帧输入到最后输入帧的平 移和旋转的变换矩阵,所述估计通过将定义了点从第一输入彩色图像帧到紧接在该最后输 入的帧之前的彩色图像帧输入的平移和旋转的最终变换矩阵与定义了点从所述紧接最后 输入的彩色图像帧之前的帧到该最后输入的彩色图像帧的平移和旋转的当前变换矩阵进 行累加来完成。如前所述,由于对于光流跟踪来说,以第一开始从每个帧到下一帧所估计的 变换(即·,(R12,T12),(R23,T23),......可以被累加以使用传统的方法产生从 第一帧关键帧(即帧1)到最当前帧(即帧k)的变换矩阵,所以,这是可能的。
[0046] 在过程中的该点处,定义点从第一彩色图像帧输入到最后输入的帧的平移和旋转 的分开的变换矩阵基于光流跟踪和关键帧匹配这两者存在。这些变换矩阵被合并以产生单 个经组合的变换矩阵(过程动作448)。
[0047] 在一个实现中,执行在这两个变换矩阵估计之间的加权内插以取得潜在更好的变 换。由于通过深度图像知晓了匹配点的3D位置,就可能使用该3D信息来定义变换估计差 错度量。具体而言,从坐标巾贞1(F1)中考虑图像1(11)。具体而言,从坐标巾贞2 (F2)中考虑 图像2(12)。先前估计的变换矩阵(R12, T12)描述了从F1到F2的旋转和平移。在来自F2 的12中的图像点通过应用(R12,T 12)被变换成F1。随后,将F1的原点(在那时的相机的光 学中心)与每个经变换的点相连。如果在3D空间中的相连线上存在II中的点,计算这两 个点之间的距离。随后,上述差错度量是对涉及该计算的所有点(即所述点是在所述线上 的II点)上的所计算的距离的平均。为了减少计算量,在一个实现中,将图像下采样到与 上述变换过程之前的相同程度(例如50% )。另外,在变换后在II所描述的场景之外将存 在一些没有被考虑的点。
[0048] -旦计算了变换估计差错度量(此后被称为差错),在为当前巾贞所计算的两个变 换度量之间执行内插。在一个实现中,这通过使用四元组空间中的线性内插来完成。具体 而言,上述权重可以使用下述公式计算:
[0049]

【权利要求】
1. 一种用于头部姿态跟踪的系统,包括: 被配置以放置在用户的头部上的一组传感器,该组传感器包括被用于标识在由该组传 感器所感测到的场景内的特征的三维位置的深度传感器装置,以及至少一个其它类型的传 感器; 计算设备;以及 包括由所述计算设备执行的程序模块的计算机程序,其中所述计算设备由所述计算机 程序的程序模块来指示以便: 周期性地输入由该组传感器中每个传感器输出的数据, 每次从所述传感器中的一个或多个输入数据时,使用所输入的数据来计算变换矩阵, 当所述变换矩阵被应用于在当输入第一传感器数据时所建立的先前确定的头部姿态位置 和朝向时标识了当前的头部姿态位置和朝向,以及 将所述变换矩阵应用于所述先前确定的头部姿态位置和朝向以标识所述当前的头部 姿态位置和朝向。
2. -种用于头部姿态跟踪的系统,包括: 被配置以放置在用户的头部上的一组传感器,该组传感器包括被用于标识在由该组传 感器所感测到的场景内的点的三维位置的深度传感器装置,以及彩色摄像机,所述深度传 感器装置和所述彩色摄像机被同步以周期性地以深度帧和彩色图像帧形式产生同时期的 场景数据,并被校准以便将每个彩色图像帧中的每个像素映射到同时期产生的深度帧中的 对应的三维场景位置; 计算设备;以及 包括由所述计算设备执行的程序模块的计算机程序,其中所述计算设备由所述计算机 程序的程序模块来指示以便: 输入每个同时期产生的深度帧和彩色图像帧, 对于在第一之后输入的每个同时期产生的深度帧和彩色图像帧对, 标识最后输入的彩色图像帧和紧接在所述最后输入的彩色图像帧之前产生的彩色图 像帧之间的匹配特征, 使用所标识的匹配特征和在所述最后输入的彩色图像帧和紧接在所述最后输入的彩 色图像帧之前产生的彩色图像帧这两者中的所述匹配特征的对应的三维位置估计第一变 换矩阵,所述变换矩阵定义了点从紧接在所述最后输入的彩色图像帧之前产生的彩色图像 帧到所述最后输入的彩色图像帧的平移和旋转, 估计定义点从第一彩色图像帧输入到最后输入彩色图像帧的平移和旋转的最终的变 换矩阵,所述估计通过将定义了点从第一彩色图像帧到紧接在该最后输入的彩色图像帧之 前的彩色图像帧输入的平移和旋转的先前计算的变换矩阵与定义了点从所述紧接之前的 彩色图像帧到该最后输入的彩色图像帧的平移和旋转的第一变换矩阵进行累加来完成,以 及 将所述最终的变换矩阵应用于在第一彩色图像帧输入中描述的场景内的先前确定的 头部姿态位置和朝向以标识在所述最后输入彩色图像帧中描述的场景内的当前的头部姿 态位置和朝向。
3. 如权利要求2所述的系统,其特征在于,所述用于标识匹配特征的程序模块包括用 于使用光流技术标识在所述最后输入的彩色图像帧和紧接所述最后输入的彩色图像帧之 前产生的彩色图像帧之间的匹配点的子模块。
4. 如权利要求3所述的系统,其特征在于,还包括:在执行所述用于估计所述变换矩阵 的程序模块之前就执行的深度校正程序模块,所述深度校正程序模块包括用于以下操作的 子模块: 定义围绕每个所标识的匹配点的窗口; 标识每个窗口内的离所述相机的最接近的点;以及 将所标识的每个窗口内的最接近的点指定为替代与所述窗口相关联的先前所标识的 匹配点的匹配点。
5. 如权利要求3所述的系统,其特征在于,还包括:在执行所述用于估计所述变换矩阵 的程序模块之前就执行的匹配点异常值解除指定程序模块,所述匹配点异常值解除指定程 序模块包括将具有落在规定最小等级之下的匹配质量等级的每对所标识的匹配点解除作 为匹配点的指定。
6. 如权利要求3所述的系统,其特征在于,还包括:在执行所述用于估计所述变换矩阵 的程序模块之后且在执行所述用于估计所述最终的变换矩阵的程序模块之前执行的匹配 点异常值解除指定程序模块,所述匹配点异常值解除指定程序模块包括用于以下操作的子 模块: (a) 将最后估计的变换矩阵应用于在最后输入的彩色图像帧中所标识的匹配点以查明 在紧接最后输入的彩色图像帧之前产生的彩色图像帧中与最后输入的彩色图像帧中的匹 配点相对应的匹配点; (b) 对于在紧接最后输入的彩色图像帧之前产生的彩色图像帧中的每个先前所标识的 匹配点,计算在所述先前所标识的匹配点的坐标和通过将最后估计的变换矩阵应用于在最 后输入的彩色图像帧中的匹配点所查明的该匹配点的坐标之间的差异度量,所述在最后输 入的彩色图像帧中的匹配点与在紧接最后输入的彩色图像帧之前产生的彩色图像帧中先 前所标识的匹配点相对应; (c) 计算剩余的匹配点对的差异度量的平均并确定所计算的平均是否超出规定最小等 级; (d) 只要所计算的平均超出规定最小等级, 按量级排序所述差异度量并从最大开始向下以量级标识规定百分比的差异度量, 将与所标识的差异度量之一相关联的每个匹配点对的在紧接最后输入的彩色图像帧 之前产生的彩色图像帧中先前所标识的匹配点和其在最后输入的彩色图像帧中的对应的 匹配点解除作为匹配点的指定, 使用剩余的匹配点重新估计所述变换矩阵; (e) 确定是否已经达到规定的变换矩阵重新估计的迭代的最大数目;以及 (f) 只要还没有达到规定的变换矩阵重新估计的迭代的最大数目,重复子模块(a)到 (f)的执行。
7. 如权利要求3所述的系统,其特征在于,还包括:在执行所述用于标识在最后输入的 彩色图像帧和紧接在最后输入的彩色图像帧之前产生的彩色图像帧之间的匹配特征的程 序模块之前就执行的关键帧程序模块,所述关键帧程序模块包括用于以下操作的子模块: 确定是否要建立新的关键帧,以及 只要确定要建立新的关键帧,记录所述最后输入的彩色图像帧并将所记录的帧指定为 关键中贞。
8. 如权利要求7所述的系统,其特征在于,所述用于确定是否要建立新的关键帧的子 模块包括只要最后输入的彩色图像帧是所述第一彩色图像帧输入,以及只要所述最后输入 的彩色帧描述少于先前建立的关键帧中所描述的场景的规定部分,就确定要建立新的关键 帧。
9. 如权利要求7所述的系统,其特征在于,所述关键帧程序模块还包括用于以下操作 的子模块: 只要确定不要建立新的关键帧,就确定是否要发生关键帧匹配; 只要确定要发生关键帧匹配或已经建立了新的关键帧, 标识在所述最后输入的彩色图像帧和所记录的描述了最后输入的彩色图像帧中所描 述的场景的至少规定部分的关键巾贞之间的关键巾贞匹配点, 使用所标识的关键帧匹配点和在所述最后输入的彩色图像帧和所记录的描述了最后 输入的彩色图像帧中所描述的场景的至少规定部分的关键帧两者中的关键帧匹配特征的 对应的三维位置来估计第二变换矩阵,所述第二变换矩阵定义了点从所记录的描述了最后 输入的彩色图像帧中所描述的场景的至少规定部分的关键帧到所述最后输入的彩色图像 帧的平移和旋转, 使用所述第二变换矩阵和定义了点从第一彩色图像帧输入到所记录的描述了最后输 入的彩色图像帧中所描述的场景的至少规定部分的关键帧的平移和旋转的先前计算的关 键帧变换矩阵来估计第三变换矩阵,所述第三变换矩阵定义了点从所述第一彩色图像帧输 入到所述最后输入彩色图像帧的平移和旋转, 只要所述最后输入的彩色图像帧是新建立的关键帧,就将所述第三变换矩阵指定为定 义了点从所述第一彩色图像帧输入到新建立的关键帧的平移和旋转的关键帧变换矩阵, 估计定义点从第一彩色图像帧输入到最后输入彩色图像帧的平移和旋转的第四变换 矩阵,所述估计通过将定义了点从第一输入彩色图像帧到紧接在所述最后输入的帧之前的 彩色图像帧输入的平移和旋转的最终的变换矩阵与定义了点从所述紧接最后输入的彩色 图像帧之前的帧到所述最后输入的彩色图像帧的平移和旋转的第一变换矩阵进行累加来 完成, 将所述第三和第四变换矩阵合并以产生定义了点从第一彩色图像帧输入到最后输入 的彩色图像帧的平移和旋转的单个经组合的变换矩阵,以及 将经组合的变换矩阵指定为所述最后输入的彩色图像帧的最终的变换矩阵。
10. 如权利要求9所述的系统,其特征在于,还包括: 在执行用于标识关键帧匹配点的子模块之后且在执行用于估计第二变换矩阵的子模 块之前执行的深度校正子模块,所述深度校正程序子模块包括用于以下操作的子模块: 定义围绕每个所标识的关键帧匹配点的窗口; 标识每个窗口内的离所述相机的最接近的点;以及 将所标识的每个窗口内的最接近的点指定为替代与所述窗口相关联的先前所标识的 关键帧匹配点的关键帧匹配点, 在执行所述用于深度校正的子模块之后且在执行用于估计第二变换矩阵的子模块之 前执行的关键帧匹配点异常值解除指定子模块,所述关键帧匹配点异常值解除指定程序模 块包括将具有落在规定最小等级之下的匹配质量等级的每对所标识的关键帧匹配点解除 作为关键帧匹配点的指定,以及 在执行所述用于估计第二变换矩阵的子模块之后且在执行所述用于估计第三变换矩 阵的子模块之前执行的第二关键帧匹配点异常值解除指定子模块,所述第二关键帧匹配点 异常值解除指定子模块包括用于以下操作的子模块: (a) 将所述第二变换矩阵应用于在最后输入的彩色图像帧中所标识的关键帧匹配点以 查明在所记录的描述了在所述最后输入的彩色图像帧中所描述的场景的至少规定部分的 关键帧中与在最后输入的彩色图像帧中的关键帧匹配点相对应的关键帧匹配点; (b) 对于在所记录的描述了在所述最后输入的彩色图像帧中所描述的场景的至少规定 部分的关键帧中的每个先前标识的关键帧匹配点,计算在所述先前所标识的匹配点的坐标 和通过将所述第二变换矩阵应用于在最后输入的彩色图像帧中与在所记录的描述了在所 述最后输入的彩色图像帧中所描述的场景的至少规定部分的关键帧中的先前标识的关键 帧匹配点相对应的关键帧匹配点所查明的关键帧匹配点的坐标之间的差异度量, (c) 计算剩余的关键帧匹配点对的差异度量的平均并确定所计算的平均是否超出规定 最小等级; (d) 只要所计算的平均超出规定最小等级, 按量级排序所述差异度量并从最大开始向下以量级标识规定百分比的差异度量, 将与所标识的差异度量之一相关联的每个关键帧匹配点对的在所记录的描述了在所 述最后输入的彩色图像帧中所描述的场景的至少规定部分的关键帧中的先前标识的关键 帧匹配点和其在最后输入的彩色图像帧中的对应的关键帧匹配点解除作为关键帧匹配点 的指定, 使用剩余的关键帧匹配点重新估计所述第二变换矩阵; (e) 确定是否已经达到规定的变换矩阵重新估计的迭代的最大数目;以及 (f) 只要还没有达到规定的变换矩阵重新估计的迭代的最大数目,重复子模块(a)到 (f)的执行。
11. 如权利要求9所述的系统,其特征在于,所述确定是否要发生关键帧匹配的子模块 包括: 确定自从最后一次执行关键帧匹配以来是否已经输入了规定数目的帧, 只要确定自从最后一次执行关键帧匹配以来还没有输入规定数目的帧,指定关键帧匹 配发生的时机未到,以及 只要确定自从最后一次执行关键帧匹配以来已经输入规定数目的帧,指定关键帧匹配 发生的时机已到。
12. -种用于头部姿态跟踪的系统,包括: 被配置以放置在用户的头部上的一组传感器,该组传感器包括被用于标识在由该组传 感器所感测到的场景内的点的三维位置的深度传感器装置,彩色摄像机以及一套测量围绕 三个轴的角速度和沿所述三个轴的线性加速的惯性传感器,所述深度传感器装置和所述彩 色摄像机被同步以周期性地以深度帧和彩色图像帧形式产生同时期的场景数据,并被校准 以便将每个彩色图像帧中的每个像素映射到同时期产生的深度帧中的对应的三维场景位 置,并且所述惯性传感器以等于或超过提供深度和彩色图像帧的速率提供了角速度和线性 加速数据的帧; 计算设备;以及 包括由所述计算设备执行的程序模块的计算机程序,其中所述计算设备可由所述计算 机程序的程序模块来指示以便: 输入所产生的每个惯性传感器帧; 对于第一之后的每个惯性传感器帧输入, 使用最后输入的惯性传感器帧来估计当前基于惯性传感器的变换矩阵,所述变换矩阵 定义了点从紧接之前的惯性传感器帧输入到最后输入的惯性传感器帧的平移和旋转, 估计定义点从第一惯性传感器帧输入到最后惯性传感器帧的平移和旋转的最终的基 于惯性传感器的变换矩阵,所述估计通过将定义了点从第一惯性传感器帧到紧接在最后输 入的惯性传感器帧之前的惯性传感器帧的平移和旋转的先前计算的变换矩阵与定义了点 从所述紧接之前的惯性传感器帧输入到最后输入的惯性传感器帧的平移和旋转的当前的 基于惯性传感器的变换矩阵进行累加来完成, 确定是否已经产生了新的彩色视频和深度帧, 只要还没有产生新的彩色视频和深度帧,将该最终的基于惯性传感器的变换矩阵应用 于先前确定的与第一惯性传感器帧输入相关联的头部姿态位置和朝向以标识当前的头部 姿态位置和朝向, 只要确定已经产生了新的彩色视频和深度帧, 输入所述新的彩色图像和深度帧, 标识在最后输入的彩色图像帧和紧接在所述最后输入的彩色图像帧之前的彩色图像 帧之间的匹配特征, 使用所标识的匹配特征和在所述最后输入的彩色图像帧和紧接在所述最后输入的彩 色图像帧之前产生的彩色图像帧这两者中的所述匹配特征的对应的三维位置估计当前的 基于图像的变换矩阵,所述基于图像的变换矩阵定义了点从紧接在所述最后输入的彩色图 像帧之前产生的彩色图像帧到所述最后输入的彩色图像帧的平移和旋转, 估计定义点从第一惯性传感器帧输入到最后输入彩色图像帧的平移和旋转的最终的 基于图像的变换矩阵,所述估计通过将定义了点从第一惯性传感器帧到紧接在最后输入的 彩色图像帧之前的彩色图像帧的平移和旋转的先前计算的变换矩阵与定义了点从所述紧 接之前的彩色图像帧到该最后输入的彩色图像帧的平移和旋转的当前的基于图像的变换 矩阵进行累加来完成, 将最终的基于图像的变换矩阵和最终的基于惯性传感器的变换矩阵合并以产生定义 了点从第一惯性传感器帧输入到最后输入的惯性传感器帧的平移和旋转的单个经组合的 变换矩阵,以及 将经组合的变换矩阵应用于先前确定的与第一惯性传感器帧输入相关联的头部姿态 位置和朝向以标识当前的头部姿态位置和朝向。
13.如权利要求12所述的系统,其特征在于,还包括在执行用于输入所述新彩色图像 和深度帧的程序模块之后且在执行用于标识在最后输入的彩色图像帧和紧接在所述最后 输入的彩色图像帧之前的彩色图像帧之间的匹配特征的程序模块之前来执行的关键帧程 序模块,所述关键帧程序模块包括用于以下操作的子模块: 确定是否要建立新的关键帧,以及 只要确定要建立新的关键帧,记录所述最后输入的彩色图像帧并将所记录的帧指定为 关键中贞。
14. 如权利要求13所述的系统,其特征在于,所述用于确定是否要建立新的关键帧的 子模块包括只要最后输入的彩色图像帧是所述第一彩色图像帧输入,且只要所述最后输入 的彩色帧描述少于先前建立的关键帧中所描述的场景的规定部分,就确定要建立新的关键 帧。
15. 如权利要求13所述的系统,其特征在于,所述关键帧程序模块还包括用于以下操 作的子模块: 只要确定不要建立新的关键帧,就确定是否要发生关键帧匹配; 只要确定要发生关键帧匹配或已经建立了新的关键帧, 标识在所述最后输入的彩色图像帧和所记录的描述了最后输入的彩色图像帧中所描 述的场景的至少规定部分的关键巾贞之间的关键巾贞匹配点, 使用所标识的关键帧匹配点和在所述最后输入的彩色图像帧和所记录的描述了最后 输入的彩色图像帧中所描述的场景的至少规定部分的关键帧两者中的关键帧匹配特征的 对应的三维位置来估计第二变换矩阵,所述第二变换矩阵定义了点从所记录的描述了最后 输入的彩色图像帧中所描述的场景的至少规定部分的关键帧到所述最后输入的彩色图像 帧的平移和旋转, 使用所述第二变换矩阵和定义了点从第一彩色图像帧输入到所记录的描述了最后输 入的彩色图像帧中所描述的场景的至少规定部分的关键帧的平移和旋转的先前计算的关 键帧变换矩阵来估计第三变换矩阵,所述第三变换矩阵定义了点从所述第一彩色图像帧输 入到所述最后输入彩色图像帧的平移和旋转, 只要所述最后输入的彩色图像帧是新建立的关键帧,就将所述第三变换矩阵指定为定 义了点从所述第一彩色图像帧输入到新建立的关键帧的平移和旋转的关键帧变换矩阵, 估计定义点从第一惯性传感器帧输入到最后输入彩色图像帧的平移和旋转的第四变 换矩阵,所述估计通过将定义了点从第一惯性传感器帧到紧接在最后输入的彩色图像帧之 前的彩色图像帧输入的平移和旋转的先前计算的变换矩阵与定义了点从所述紧接之前的 彩色图像帧到该最后输入的彩色图像帧的平移和旋转的当前的基于图像的变换矩阵进行 累加来完成, 将所述第三和第四变换矩阵合并以产生定义了点从第一惯性传感器帧输入到最后输 入的彩色图像帧的平移和旋转的单个经组合的基于图像的变换矩阵,以及 将所述经组合的基于图像的变换矩阵指定为所述最终的基于图像的变换矩阵。
【文档编号】H04N13/00GK104106262SQ201380008735
【公开日】2014年10月15日 申请日期:2013年1月14日 优先权日:2012年2月8日
【发明者】Z·刘, Z·张, Z·李 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1