掌桥专利:专业的专利平台
掌桥专利
首页

视觉惯性里程计的重力估计和光束法平差

文献发布时间:2023-06-19 16:08:01



相关申请交叉引用

本申请主张2019年10月18日提交的美国临时申请62/923,317和2020年9月9日提交的美国临时申请63/076,251的优先权,这些申请的全部内容为所有目的通过引用并入本文。

技术领域

本公开一般地涉及用于绘制和显示视觉信息的系统和方法,更具体地说,涉及用于在混合现实环境中绘制和显示视觉信息的系统和方法。

背景技术

虚拟环境在计算环境中无处不在,在视频游戏(其中虚拟环境表示游戏世界);地图(其中虚拟环境表示要导航的地形);模拟(其中虚拟环境模拟现实环境);数字叙事(其中虚拟角色在虚拟环境中相互交互);和许多其他应用中得到使用。现代计算机用户通常能够舒适地感知虚拟环境并与之交互。然而,用户对虚拟环境的体验可能会受到呈现虚拟环境的技术的限制。例如,常规显示器(例如,2D显示屏)和音频系统(例如,固定扬声器)无法以创建引人入胜、逼真和身临其境的体验的方式实现虚拟环境。

虚拟现实(“VR”)、增强现实(“AR”)、混合现实(“MR”)和相关技术(统称为“XR”)共享向XR系统的用户呈现感官信息的能力,这些感官信息对应于由计算机系统中的数据表示的虚拟环境。本公开考虑了VR、AR和MR系统之间的区别(尽管一些系统可以在一个方面(例如,视觉方面)被归类为VR,并且在另一方面(例如,音频方面)同时被归类为AR或MR)。如本文所用,VR系统呈现了一种虚拟环境,该虚拟环境至少在一个方面取代了用户的现实环境;例如,VR系统可以向用户呈现虚拟环境的视图,同时模糊他或她所看到的现实环境的视图,诸如使用挡光头戴式显示器。类似地,VR系统可以向用户呈现对应于虚拟环境的音频,同时阻止(衰减)来自现实环境的音频。

VR系统可能会遇到用虚拟环境取代用户的现实环境而带来的各种缺点。一个缺点是,当用户在虚拟环境中的视野不再对应于他或她的内耳的状态(检测一个人在现实环境而非虚拟环境中的平衡和方向)时,可能会出现晕动的感觉。同样,在无法直接看到其身体和四肢(用户在现实环境中赖以感觉“接地”的视图)的VR环境中,用户会体验到迷失方向。另一缺点是,特别是在寻求让用户沉浸在虚拟环境中的实时应用中必须呈现完整的3D虚拟环境的VR系统上的计算负载(例如,存储、处理能力)。类似地,这种环境需要达到非常高的逼真标准才能被认为是沉浸式的,因为用户往往对虚拟环境中的微小缺陷都很敏感——任何缺陷都会破坏用户在虚拟环境中的沉浸感。此外,VR系统的另一缺点是系统的这些应用无法利用现实环境中广泛的感官数据,诸如人们在现实世界中体验到的各种景象和声音。一个相关的缺点是,VR系统在创建多个用户可以交互的共享环境时具有一定难度,因为在现实环境中共享物理空间的用户可能无法在虚拟环境中直接看到或相互交互。

如本文所用,AR系统在至少一方面呈现与现实环境重叠或覆盖现实环境的虚拟环境。例如,AR系统可以向用户呈现覆盖在用户的现实环境视图上的虚拟环境的视图,诸如使用呈现显示图像,同时允许光线穿过显示器进入用户眼睛中的透射式头戴式显示器。类似地,AR系统可以向用户呈现与虚拟环境相对应的音频,同时混合来自现实环境的音频。类似地,如本文所使用的,像AR系统一样,MR系统在至少一方面呈现与现实环境重叠或覆盖现实环境的虚拟环境,并且可以另外允许MR系统中的虚拟环境可以在至少一方面与现实环境交互。例如,虚拟环境中的虚拟角色可能会拨动现实环境中的电灯开关,从而导致现实环境中对应的灯泡打开或关闭。作为另一示例,虚拟角色可以对现实环境中的音频信号做出反应(诸如用面部表情)。通过保持现实环境的呈现,AR和MR系统可以避免VR系统的上述一些缺点;例如,用户的晕动病得到缓解,因为来自现实环境(包括用户自己的身体)的视觉线索可以保持可见,并且此类系统无需为用户呈现完全实现的3D环境即可沉浸其中。此外,AR和MR系统可以利用现实世界的感觉输入(例如,风景、对象和其他用户的视图和声音)来创建增强该输入的新应用。

呈现与现实环境重叠或覆盖现实环境的虚拟环境可能很困难。例如,将虚拟环境与现实环境混合可能需要对现实环境有复杂而透彻的理解,以使虚拟环境中的对象不会与现实环境中的对象发生冲突。还需要在虚拟环境中保持与现实环境中的一致性相对应的持久性。例如,即使用户的视线从物理桌子移开,围绕物理桌子走动,然后回头看物理桌子,显示在物理桌子上的虚拟对象也需要出现在同一位置。为了实现这种沉浸感,开发对对象在现实世界中的位置以及用户在现实世界中的位置的准确、精准估计是有利的。

发明内容

本公开的示例描述了用于在可穿戴头部设备上呈现虚拟内容的系统和方法。例如,公开了用于执行具有重力估计和光束法平差的视觉惯性里程计的系统和方法。在一些实施例中,经由可穿戴头部设备的传感器接收指示处于第一位置的第一特征的第一传感器数据。经由所述传感器接收指示处于第二位置的所述第一特征的第二传感器数据。经由所述可穿戴头部设备上的惯性测量单元接收惯性测量值。基于所述惯性测量值,确定速度。基于所述第一位置和所述速度,估计所述第一特征的第三位置。基于所述第三位置和所述第二位置,确定重投影误差。减小与所述重投影误差相关联的权重。确定所述可穿戴头部设备的状态。确定所述状态包括最小化总误差,并且所述总误差是基于与所述重投影误差相关联的所减小的权重。经由所述可穿戴头部设备的显示器呈现反映所述确定的所述可穿戴头部设备的状态的视图。

在一些实施例中,所述可穿戴头部设备经由所述可穿戴头部设备的传感器接收图像数据。所述可穿戴头部设备分别经由第一惯性测量单元(IMU)和第二IMU接收第一惯性数据和第二惯性数据。所述可穿戴头部设备基于所述图像数据和所述惯性数据,计算第一预积分项和第二预积分项。所述可穿戴头部设备基于所述第一预积分项和第二预积分项,估计所述设备的位置。基于所述设备的所述位置,所述可穿戴头部设备呈现所述虚拟内容。

附图说明

图1A-图1C示出了根据本公开的一个或多个实施例的示例性混合现实环境。

图2A-图2D示出了根据本公开的一个或多个实施例的示例性混合现实系统的部件。

图3A示出了根据本公开的一个或多个实施例的示例性混合现实手持控制器。

图3B示出了根据本公开的一个或多个实施例的示例性辅助单元。

图4示出了根据本公开的一个或多个实施例的示例混合现实系统的示例性功能框图。

图5示出了根据本公开的一个或多个实施例的视觉惯性里程计的示例性流水线。

图6A-图6B示出了根据本公开的一个或多个实施例的视觉惯性里程计的示例性图表。

图7A-图7B示出了根据本公开的一个或多个实施例的用于执行光束法平差的示例性决策过程。

图8示出了根据本公开的一个或多个实施例的独立重力估计的示例性图表。

图9示出了根据本公开的一个或多个实施例的示例性IMU配置。

图10示出了根据本公开的一个或多个实施例的示例性IMU配置。

图11示出了根据本公开的一个或多个实施例的SLAM计算的示例性图形表示。

图12示出了根据本公开的一个或多个实施例的用于呈现虚拟内容的示例性过程。

具体实施方式

在以下对示例的描述中,参考形成其一部分的附图,并且其中通过图解的方式示出了可以实施的具体示例。应当理解,在不背离所公开示例的范围的情况下,可以使用其他示例并且可以进行结构改变。

混合现实环境

与所有人一样,混合现实系统的用户存在于现实环境中——即“现实世界”的三维部分及其可被用户感知的所有内容。例如,用户使用自己的普通人类感觉—视觉、听觉、触觉、味觉、嗅觉—感知现实环境,并通过在现实环境中移动自己的身体与现实环境进行交互。现实环境中的位置可以被描述为坐标空间中的坐标;例如,坐标可以包括纬度、经度和相对于海平面的海拔;从参考点开始的三个正交维度的距离;或其他合适的值。同样,向量可以描述在坐标空间中具有方向和大小的量。

计算设备例如可以在与设备相关联的存储器中维护虚拟环境的表示。如本文所使用的,虚拟环境是三维空间的计算表示。虚拟环境可以包括与该空间相关联的任何对象、动作、信号、参数、坐标、向量或其他特征的表示。在一些示例中,计算设备的电路(例如,处理器)可以维护和更新虚拟环境的状态;也就是说,处理器可以在第一时间t0,基于与虚拟环境相关联的数据和/或由用户提供的输入,确定在第二时间t1虚拟环境的状态。例如,如果虚拟环境中的对象在时间t0位于第一坐标处,并且具有某些已编程的物理参数(例如,质量、摩擦系数);并且从用户处接收到的输入指示应该沿方向向量向对象施加力;处理器可以应用运动学定律使用基本力学确定对象在时间t1的位置。处理器可以使用已知的有关虚拟环境的任何合适的信息和/或任何合适的输入来确定时间t1虚拟环境的状态。在维护和更新虚拟环境的状态时,处理器可以执行任何合适的软件,包括与在虚拟环境中创建和删除虚拟对象有关的软件;用于定义在虚拟环境中虚拟对象或角色的行为的软件(例如,脚本);用于定义在虚拟环境中信号(例如,音频信号)的行为的软件;用于创建和更新与虚拟环境相关联的参数的软件;用于在虚拟环境中生成音频信号的软件;用于处理输入和输出的软件;用于实现网络操作的软件;用于应用资源数据(例如,随着时间的推移移动虚拟对象的动画数据)的软件;或许多其他可能性。

输出设备,诸如显示器或扬声器,可以向用户呈现虚拟环境的任何或所有方面。例如,虚拟环境可以包括可以呈现给用户的虚拟对象(其可以包括无生命对象;人;动物;灯等的表示)。处理器可以确定虚拟环境的视图(例如,对应于具有原点坐标、视图轴和截锥体的“相机”);并将对应于该视图的虚拟环境的可视场景呈现给显示器。可以使用任何合适的渲染技术来实现此目的。在一些示例中,可视场景可以仅包括虚拟环境中的一些虚拟对象,而排除某些其他虚拟对象。类似地,虚拟环境可以包括可以作为一个或多个音频信号呈现给用户的音频方面。例如,虚拟环境中的虚拟对象可以产生源自该对象的位置坐标的声音(例如,虚拟角色可以说话或引起声音效果);或者虚拟环境可以与音乐线索或环境声音相关联,这些音乐线索或环境声音可能与或可能不与特定位置相关联。处理器可以确定对应于“听者”坐标的音频信号—例如,对应于虚拟环境中的声音的合成,并且进行混合和处理以模拟将被位于听者坐标处的听者听到的音频信号—并经由一个或多个扬声器将音频信号呈现给用户。

由于虚拟环境仅作为计算结构存在,用户无法用普通感觉直接感知虚拟环境。相反,用户只能间接地感知虚拟环境,例如通过显示器、扬声器、触觉输出设备等呈现给用户。类似地,用户不能直接触摸、操纵或以其他方式与虚拟环境交互;但可以经由输入设备或传感器向处理器提供输入数据,该处理器可以使用设备或传感器数据更新虚拟环境。例如,相机传感器可以提供指示用户正尝试在虚拟环境中移动对象的光学数据,并且处理器可以使用该数据使对象在虚拟环境中做出相应的响应。

混合现实系统例如可以使用透射式显示器和/或一个或多个扬声器(例如,可以被结合到可穿戴头部设备中)向用户呈现结合了现实环境和虚拟环境的各个方面的混合现实环境(“MRE”)。在一些实施例中,一个或多个扬声器可以位于头戴式可穿戴单元的外部。如本文所使用的,MRE是现实环境和对应的虚拟环境的同时表示。在一些示例中,对应的现实和虚拟环境共享一个坐标空间;在一些示例中,现实坐标空间和对应的虚拟坐标空间通过变换矩阵(或其他合适的表示)相互关联。因此,单个坐标(在一些示例中连同变换矩阵)可以定义现实环境中的第一位置,以及虚拟环境中的对应的第二位置;反之亦然。

在MRE中,虚拟对象(例如,在与MRE关联的虚拟环境中)可以对应于现实对象(例如,在与MRE关联的现实环境中)。例如,如果MRE的现实环境包括在一位置坐标处的现实灯柱(现实对象),则MRE的虚拟环境可以包括在对应位置坐标处的虚拟灯柱(虚拟对象)。如本文所使用的,现实对象与其对应的虚拟对象组合在一起构成“混合现实对象”。虚拟对象不必与对应的现实对象完美匹配或对齐。在一些示例中,虚拟对象可以是对应的现实对象的简化版本。例如,如果现实环境包括现实灯柱,则对应的虚拟对象可以包括高度和半径与现实灯柱大致相同的圆柱体(反映灯柱的形状可能大致为圆柱形)。以这种方式简化虚拟对象可以允许计算效率,并且可以简化对这种虚拟对象执行的计算。此外,在MRE的一些示例中,并非现实环境中的所有现实对象都可以与对应的虚拟对象相关联。同样,在MRE的一些示例中,并非虚拟环境中的所有虚拟对象都可以与对应的现实对象相关联。也就是说,一些虚拟对象可能只存在于MRE的虚拟环境中,而没有任何现实世界的对应物。

在一些示例中,虚拟对象的特征可能与对应的现实对象的特征不同,有时甚至大相径庭。例如,当MRE中的现实环境可以包括一个绿色双臂仙人掌(一个有刺的无生命对象)时,MRE中的对应虚拟对象包括具有人脸特征和粗鲁行为的绿色双臂虚拟角色的特征。在该示例中,虚拟对象在某些特征(颜色、手臂数量)方面与其对应的现实对象相似;但在其他特征(人脸特征、个性)方面与现实对象不同。这样,虚拟对象就有可能以创造性、抽象、夸张或幻想的方式来表现现实对象;或将行为(例如,人类个性)赋予其他无生命的现实对象。在一些示例中,虚拟对象可以是没有现实世界对应物的纯幻想创造(例如,虚拟环境中的虚拟怪物,可能在对应于现实环境中的空白空间的位置)。

与在模糊现实环境的同时向用户呈现虚拟环境的VR系统相比,呈现MRE的混合现实系统提供了在呈现虚拟环境的同时使现实环境保持可感知的优势。因此,混合现实系统的用户能够使用与现实环境相关联的视觉线索和听觉线索来体验对应的虚拟环境并与之交互。例如,虽然VR系统的用户在感知虚拟环境中显示的虚拟对象或与之交互时存在一定难度——因为如本文所述,用户不能直接感知虚拟环境或与之交互——但MR系统的用户可能会发现能够通过在他或她自己的现实环境中看到、听到和触摸对应的现实对象来直观、自然地与虚拟对象交互。这种级别的交互性可以增强用户对虚拟环境的沉浸感、联系感和参与感。类似地,通过同时呈现现实环境和虚拟环境,混合现实系统可以减少与VR系统相关联的负面心理感受(例如,认知失调)和负面身体感受(例如,晕动)。混合现实系统进一步为可能增强或改变我们对现实世界的体验的应用提供了许多可能性。

图1A示出了其中用户110使用混合现实系统112的示例性现实环境100。混合现实系统112可以包括显示器(例如,透射式显示器)和一个或多个扬声器以及一个或多个传感器(例如,相机),例如如本文所述。所示的现实环境100包括:用户110站在其中的矩形房间104A;以及现实对象122A(一盏灯)、124A(一张桌子)、126A(一张沙发)和128A(一幅画)。房间104A还包括位置坐标106,其可以被认为是现实环境100的原点。如图1A所示,以点106(世界坐标)为原点的环境/世界坐标系108(包括x轴108X、y轴108Y和z轴108Z)可以定义现实环境100的坐标空间。在一些实施例中,环境/世界坐标系108的原点106可以对应于打开混合现实系统112的位置。在一些实施例中,环境/世界坐标系108的原点106可以在操作期间被重置。在一些示例中,用户110可以被认为是现实环境100中的现实对象;类似地,用户110的身体部位(例如,手部、脚部)可以被认为是现实环境100中的现实对象。在一些示例中,以点115(例如,用户/听众/头部坐标)为原点的用户/听众/头部坐标系114(包括x轴114X、y轴114Y、z轴114Z)可以定义混合现实系统112所在的用户/听众/头部的坐标空间。可以相对于混合现实系统112的一个或多个部件来定义用户/听众/头部坐标系114的原点115。例如,可以相对于混合现实系统112的显示器定义用户/听众/头部坐标系114的原点115,诸如在混合现实系统112的初始校准期间。矩阵(其可以包括平移矩阵和四元数矩阵或其他旋转矩阵)或其他合适的表示可以表征用户/听众/头部坐标系114空间和环境/世界坐标系108空间之间的变换。在一些实施例中,可以相对于用户/听众/头部坐标系114的原点115来定义左耳坐标116和右耳坐标117。矩阵(其可以包括平移矩阵和四元数矩阵或其他旋转矩阵)或其他合适的表示可以表征左耳坐标116、右耳坐标117和用户/听众/头部坐标系114空间之间的变换。用户/听众/头部坐标系114可以相对于用户头部或可穿戴头部设备(例如,相对于环境/世界坐标系108)简化位置的表示。通过使用即时定位与地图构建(SLAM)、视觉里程计或其他技术,可以实时确定和更新用户坐标系114和环境坐标系108之间的变换。

图1B示出了对应于现实环境100的示例性虚拟环境130。所示的虚拟环境130包括:对应于现实矩形房间104A的虚拟矩形房间104B;对应于现实对象122A的虚拟对象122B;对应于现实对象124A的虚拟对象124B;以及对应于现实对象126A的虚拟对象126B。与虚拟对象122B、124B、126B相关联的元数据可以包括从对应的现实对象122A、124A、126A导出的信息。虚拟环境130另外包括虚拟怪物132,其不对应于现实环境100中的任何现实对象。现实环境100中的现实对象128A不对应于虚拟环境130中的任何虚拟对象。以点134(永久坐标)为原点的永久坐标系133(包括x轴133X、y轴133Y和z轴133Z)可以定义虚拟内容的坐标空间。永久坐标系133的原点134可以相对于/关于一个或多个现实对象(诸如,现实对象126A)来定义。矩阵(其可以包括平移矩阵和四元数矩阵或其他旋转矩阵)或其他合适的表示可以表征永久坐标系133空间和环境/世界坐标系108空间之间的变换。在一些实施例中,虚拟对象122B、124B、126B和132中的每一个可以相对于永久坐标系133的原点134具有它们自己的永久坐标点。在一些实施例中,可以存在多个永久坐标系并且虚拟对象122B、124B、126B和132中的每一个可以相对于一个或多个永久坐标系具有它们自己的永久坐标点。

关于图1A和图1B,环境/世界坐标系108定义了用于现实环境100和虚拟环境130的共享坐标空间。在所示的示例中,坐标空间的原点位于点106处。此外,坐标空间由相同的三个正交轴(108X、108Y、108Z)定义。因此,可以关于相同的坐标空间来描述现实环境100中的第一位置和虚拟环境130中的对应的第二位置。这简化了在现实环境和虚拟环境中识别和显示对应位置的过程,因为可以使用相同的坐标来识别这两个位置。然而,在一些示例中,对应的现实环境和虚拟环境不需要使用共享坐标空间。例如,在一些示例(未示出)中,矩阵(其可以包括平移矩阵和四元数矩阵或其他旋转矩阵)或其他合适的表示可以表征现实环境坐标空间和虚拟环境坐标空间之间的变换。

图1C示出了经由混合现实系统112同时向用户110呈现现实环境100和虚拟环境130的各个方面的示例性MRE 150。在所示的示例中,MRE150同时向用户110呈现来自现实环境100的现实对象122A、124A、126A和128A(例如,经由混合现实系统112的显示器的透射部分);以及来自虚拟环境130的虚拟对象122B、124B、126B和132(例如,经由混合现实系统112的显示器的积极显示部分)。如本文所述,原点106可以充当对应于MRE 150的坐标空间的原点,并且坐标系统108定义坐标空间的x轴、y轴和z轴。

在所示的示例中,混合现实对象包括对应的现实对象和虚拟对象对(即,122A/122B、124A/124B、126A/126B),它们占据坐标空间108中的对应位置。在一些示例中,现实对象和虚拟对象可以同时对用户110可见。例如,在虚拟对象呈现被设计为增强对应的现实对象的视图的信息的情况下,这是合乎需要的(例如,在博物馆应用中,虚拟对象呈现古代受损雕塑的缺失部分)。在一些示例中,可以显示虚拟对象(122B、124B和/或126B)(例如,经由使用像素化遮挡快门的积极像素化遮挡)以遮挡对应的现实对象(122A、124A和/或126A)。例如,在虚拟对象充当对应的现实对象的视觉替代物的情况下(例如在无生命的现实对象变成“活的”角色的交互式故事讲述应用中),这是合乎需要的。

在一些示例中,现实对象(例如,122A、124A、126A)可以与可能不一定构成虚拟对象的虚拟内容或辅助数据相关联。虚拟内容或辅助数据可以促进在混合现实环境中对虚拟对象的处理或处置。例如,这种虚拟内容可以包括对应的现实对象的二维表示;与对应的现实对象相关联的定制资源类型;或与对应的现实对象相关联的统计数据。该信息可以在产生不必要的计算开销的情况下实现或促进涉及现实对象的计算。

在一些示例中,本文所述的呈现还可以结合音频方面。例如,在MRE150中,虚拟怪物132可以与一个或多个音频信号相关联,诸如当怪物在MRE 150内四处行走时生成的脚步声效果。如本文所述,混合现实系统112的处理器可以计算与MRE 150中所有此类声音的混合合成和处理合成相对应的音频信号,并经由包括在混合现实系统112中的一个或多个扬声器和/或一个或多个外部扬声器将音频信号呈现给用户110。

示例性混合现实系统

示例性混合现实系统112可以包括可穿戴头部设备(例如,可穿戴增强现实或混合现实头部设备),其包括:显示器(其可以包括可能是近眼显示器的左透射显示器和右透射显示器,以及用于将来自显示器的光耦合到用户眼睛的关联部件);左扬声器和右扬声器(例如,分别位于用户的左耳和右耳附近);惯性测量单元(IMU)(例如,安装在头部设备的镜腿上);正交线圈电磁接收器(例如,安装在左镜腿上);远离用户的左相机和右相机(例如,深度(飞行时间)相机);以及朝向用户取向的左眼相机和右眼相机(例如,用于检测用户的眼睛运动)。然而,混合现实系统112可以结合任何合适的显示技术和任何合适的传感器(例如,光学、红外、声学、LIDAR、EOG、GPS、磁传感器)。此外,混合现实系统112可以结合网络特征(例如,Wi-Fi能力)以与其他设备和系统(包括其他混合现实系统)进行通信。混合现实系统112还可以包括电池(其可以被安装在辅助单元中,诸如被设计成被穿戴在用户腰部周围的腰带包)、处理器和存储器。混合现实系统112的可穿戴头部设备可以包括跟踪部件,诸如IMU或其他合适的传感器,其被配置为输出可穿戴头部设备相对于用户环境的坐标集。在一些示例中,跟踪部件可以向执行即时定位与地图构建(SLAM)和/或视觉里程计算法的处理器提供输入。在一些示例中,混合现实系统112还可以包括手持控制器300和/或辅助单元320,辅助单元可以是可穿戴的腰包,如本文进一步所描述的。

图2A-图2D示出了可用于向用户呈现MRE(其可以对应于MRE 150)或其他虚拟环境的示例性混合现实系统200(其可以对应于混合现实系统112)的部件。图2A示出了包括在示例混合现实系统200中的可穿戴头部设备2102的透视图。图2B示出了穿戴在用户头部2202的可穿戴头部设备2102的俯视图。图2C示出了可穿戴头部设备2102的前视图。图2D示出了可穿戴头部设备2102的示例目镜2110的边缘视图。如图2A-图2C所示,示例可穿戴头部设备2102包括示例性左目镜(例如,左透明波导组目镜)2108和示例性右目镜(例如,右透明波导组目镜)2110。每个目镜2108和2110可以包括用于观看现实环境的透射元件,以及用于呈现与现实环境重叠的显示(例如,经由成像(imagewise)调制光)的显示元件。在一些示例中,这样的显示元件可以包括用于控制成像调制光流的表面衍射光学元件。例如,左目镜2108可以包括左耦入光栅组2112、左正交光瞳扩展(OPE)光栅组2120和左出射(输出)光瞳扩展(EPE)光栅组2122。类似地,右目镜2110可以包括右耦入光栅组2118、右OPE光栅组2114和右EPE光栅组2116。成像调制光可以经由耦入光栅2112和2118、OPE2114和2120、以及EPE 2116和2122传输到用户的眼睛。每个耦入光栅组2112、2118可以被配置为将光朝向其对应的OPE光栅组2120、2114偏转。每个OPE光栅组2120、2114可以被设计为逐渐地将光向下朝向其关联的EPE 2122、2116偏转,从而水平扩展正在形成的出射光瞳。每个EPE2122、2116可以被配置为将从其对应的OPE光栅组2120、2114接收的光的至少一部分逐渐重定向到限定在目镜2108、2110后面的用户眼动范围位置(未示出),垂直扩展在眼动范围处形成的出射光瞳。备选地,代替耦入光栅组2112和2118、OPE光栅组2114和2120以及EPE光栅组2116和2122,目镜2108和2110可以包括用于控制成像调制光到用户眼睛的耦合的光栅和/或折射和反射特征的其他布置。

在一些示例中,可穿戴头部设备2102可以包括左镜腿2130和右镜腿2132,其中左镜腿2130包括左扬声器2134,并且右镜腿2132包括右扬声器2136。线圈电磁接收器2138可以位于左镜腿件中,或位于可穿戴头部单元2102的另一合适位置。惯性测量单元(IMU)2140可以位于右镜腿2132中,或位于可穿戴头部设备2102的另一合适位置。可穿戴头部设备2102还可以包括左深度(例如,飞行时间)相机2142和右深度相机2144。深度相机2142、2144可以适当地沿不同方向取向以便共同覆盖更广阔的视野。

在图2A-图2D所示的示例中,左成像调制光源2124可以通过左耦入光栅组2112光学耦合到左目镜2108中,并且右成像调制光源2126可以通过右耦入光栅组2118光学耦合到右目镜2110中。成像调制光源2124、2126例如可以包括光纤扫描仪;包括电子光调制器,诸如数字光处理(DLP)芯片或硅上液晶(LCoS)调制器,的投影仪;或发射式显示器,诸如在每侧使用一个或多个透镜耦合到耦入光栅组2112、2118中的微型发光二极管(μLED)或微型有机发光二极管(μOLED)面板。耦入光栅组2112、2118可以将来自成像调制光源2124、2126的光偏转到高于目镜2108、2110的全内反射(TIR)临界角的角度。OPE光栅组2114、2120逐步将通过TIR传播的光向下朝向EPE光栅组2116、2122偏转。EPE光栅组2116、2122逐渐将光朝向用户的面部,包括用户眼睛的瞳孔,耦合。

在一些示例中,如图2D所示,左目镜2108和右目镜2110中的每一个包括多个波导2402。例如,每个目镜2108、2110可以包括多个单独的波导,每个单独的波导专用于相应的颜色通道(例如,红色、蓝色和绿色)。在一些示例中,每个目镜2108、2110可以包括多个这样的波导组,每个波导组被配置为将不同的波前曲率赋予发射光。波前曲率可以相对于用户的眼睛凸出,例如以呈现位于用户前方一段距离(例如,与波前曲率的倒数相对应的距离)的虚拟对象。在一些示例中,EPE光栅组2116、2122可以包括弯曲光栅凹槽以通过改变穿过每个EPE的出射光的坡印廷向量来实现凸波前曲率。

在一些示例中,为了创建显示内容为三维内容的感知,可以通过成像光调制器2124、2126和目镜2108、2110将立体调整的左眼和右眼影像呈现给用户。可以通过选择波导(并因此选择对应的波前曲率),使得虚拟对象显示在与立体左右图像所指示的距离近似的距离处来增强三维虚拟对象的呈现的逼真感。这种技术还可以减少一些用户经历的晕动病,这种晕动病是由立体的左右眼影像提供的深度感知线索与人眼的自主调节(例如,依赖于对象距离的聚焦)之间的差异引起的。

图2D示出了从示例可穿戴头部设备2102的右目镜2110的顶部看的边缘视图。如图2D所示,多个波导2402可以包括三个波导的第一子集2404和三个波导的第二子集2406。波导的两个子集2404、2406可以通过不同的EPE光栅来区分,不同的EPE光栅以不同的光栅线曲率为特征,以将不同的波前曲率赋予出射光。在每个波导子集2404、2406内,每个波导可用于将不同的光谱通道(例如,红色、绿色和蓝色光谱通道之一)耦合到用户的右眼2206。(虽然图2D未示出,但左目镜2108的结构类似于右目镜2110的结构。)

图3A示出了混合现实系统200的示例性手持控制器部件300。在一些示例中,手持控制器300包括把手部分346和沿顶部表面348设置的一个或多个按钮350。在一些示例中,按钮350可以被配置为用作光学跟踪目标,例如与相机或其他光学传感器(其可被安装在混合现实系统200的头部单元(例如,可穿戴头部设备2102)中)结合来跟踪手持控制器300的六自由度(6DOF)运动。在一些示例中,手持控制器300包括用于检测位置或取向(诸如,相对于可穿戴头部设备2102的位置或取向)的跟踪部件(例如,IMU或其他合适的传感器)。在一些示例中,这样的跟踪部件可以被定位在手持控制器300的手柄中,和/或可以被机械地耦合到手持控制器。手持控制器300可以被配置为提供与按钮的按下状态;或手持控制器300的位置、取向和/或移动中的一项或多项相对应的一种或多种输出信号(例如,经由IMU)。这样的输出信号可以用作混合现实系统200的处理器的输入。这样的输入可以对应于手持控制器的位置、取向和/或移动(并且,通过扩展,还对应于握持控制器的用户的手部的位置、取向和/或移动)。这样的输入还可以对应于用户按下按钮350。

图3B示出了混合现实系统200的示例性辅助单元320。辅助单元320可以包括电池以提供操作系统200的能量,并且可以包括用于执行程序以操作系统200的处理器。如图所示,示例辅助单元320包括夹子2128,诸如用于将辅助单元320附接到用户的腰带。其他形状因素适用于辅助单元320并且将是显而易见的,包括不涉及将单元安装到用户腰带上的形状因素。在一些示例中,辅助单元320通过例如可以包括光线和光纤的多导管光缆耦合到可穿戴头部设备2102。也可以在辅助单元320和可穿戴头部设备2102之间使用无线连接。

在一些示例中,混合现实系统200可以包括一个或多个麦克风以检测声音并向混合现实系统提供对应的信号。在一些示例中,麦克风可以被附接到可穿戴头部设备2102上或与可穿戴头部设备2102集成,并且可以被配置为检测用户的话音。在一些示例中,麦克风可以被附接到手持控制器300和/或辅助单元320上或与手持控制器300和/或辅助单元320集成。这样的麦克风可以被配置为检测环境声音、环境噪声、用户或第三方的话音或其他声音。

图4示出了可以对应于示例性混合现实系统,诸如本文所述的混合现实系统200(其可以对应于关于图1的混合现实系统112)的示例性功能框图。如图4所示,示例手持控制器400B(其可以对应于手持控制器300(“图腾”))包括图腾到可穿戴头部设备六自由度(6DOF)图腾子系统404A,并且示例可穿戴头部设备400A(其可以对应于可穿戴头部设备2012)包括图腾到可穿戴头部设备6DOF子系统404B。在该示例中,6DOF图腾子系统404A和6DOF子系统404B协作确定手持控制器400B相对于可穿戴头部设备400A的六个坐标(例如,在三个平移方向上的偏移和沿三个轴的旋转)。六个自由度可以相对于可穿戴头部设备400A的坐标系来表示。三个平移偏移可以被表示为这样的坐标系中的X、Y和Z偏移,表示为平移矩阵,或表示为某种其他表示。旋转自由度可以表示为偏航、俯仰和滚动旋转的序列,表示为旋转矩阵,表示为四元数或表示为某种其他表示。在一些示例中,可穿戴头部设备400A;包括在可穿戴头部设备400A中的一个或多个深度相机444(和/或一个或多个非深度相机);和/或一个或多个光学目标(例如,如本文所述的手持控制器400B的按钮350,或包括在手持控制器400B中的专用光学目标)可用于6DOF跟踪。在一些示例中,手持控制器400B可以包括相机,如本文所述;并且可穿戴头部设备400A可以包括光学目标,用于结合相机进行光学跟踪。在一些示例中,可穿戴头部设备400A和手持控制器400B均包括一组三个正交取向的螺线管,该组三个正交取向的螺线管用于以无线的方式发送和接收三个可区分的信号。通过测量在用于接收的每个线圈中接收到的三个可区分信号的相对幅度,可以确定可穿戴头部设备400A相对于手持控制器400B的6DOF。另外,6DOF图腾子系统404A可以包括惯性测量单元(IMU),该惯性测量单元(IMU)可用于提供有关手持控制器400B的快速移动的改进的准确性和/或更及时的信息。

在一些示例中,可能有必要将坐标从局部坐标空间(例如,相对于可穿戴头部设备400A固定的坐标空间)变换到惯性坐标空间(例如,相对于现实环境固定的坐标空间),例如以补偿可穿戴头部设备400A相对于坐标系108的移动。例如,这样的变换对于可穿戴头部设备400A的显示器可能是必要的,从而在相对于现实环境的预期位置和取向,而不是在显示器上的固定位置和取向(例如,在显示器右下角相同的位置)上呈现虚拟对象(例如,虚拟人坐在现实的椅子上,面向前方,无论可穿戴头部设备的位置和取向如何),从而保持虚拟对象存在于现实环境中的错觉(并且当可穿戴头部设备400A偏移和旋转时,例如不会呈现为不自然地定位在现实环境中)。在一些示例中,坐标空间之间的补偿变换可以通过使用SLAM和/或视觉里程计程序处理来自深度相机444的影像来确定,以便确定可穿戴头部设备400A相对于坐标系108的变换。在图4所示的示例中,深度相机444被耦合到SLAM/视觉里程计块406并且可以向块406提供影像。SLAM/视觉里程计块406实施方式可以包括被配置为处理该影像并确定用户头部的位置和取向的处理器,用户头部的位置和取向然后可用于识别头部坐标空间和另一坐标空间(例如,惯性坐标空间)之间的变换。类似地,在一些示例中,从IMU409获得有关用户头部姿势和位置的附加信息源。来自IMU 409的信息可以与来自SLAM/视觉里程计块406的信息整合以提供有关用户头部姿势和位置的快速调整的改进的准确性和/或更及时的信息。

在一些示例中,深度相机444可以向手势跟踪器411提供3D影像,手势跟踪器411可以在可穿戴头部设备400A的处理器中实现。手势跟踪器411可以识别用户的手势,例如通过将从深度相机444接收的3D影像与存储的表示手势的图案进行匹配。识别用户手势的其他合适技术将是显而易见的。

在一些示例中,一个或多个处理器416可以被配置为从可穿戴头部设备的6DOF头戴子系统404B、IMU 409、SLAM/视觉里程计块406、深度相机444和/或手势跟踪器411接收数据。处理器416还可以发送和接收来自6DOF图腾系统404A的控制信号。处理器416可以被无线地耦合到6DOF图腾系统404A,诸如在脱离手持控制器400B的示例中。处理器416可以进一步与其他部件通信,其他部件包括诸如视听内容存储器418、图形处理单元(GPU)420和/或数字信号处理器(DSP)音频空间化器422。DSP音频空间化器422可以被耦合到头部相关传递函数(HRTF)存储器425。GPU 420可以包括被耦合到左成像调制光源424的左通道输出和被耦合到右成像调制光源426的右通道输出。GPU 420可以将立体图像数据输出到成像调制光源424、426,例如如本文关于图2A-图2D所描述的。DSP音频空间化器422可以将音频输出到左扬声器412和/或右扬声器414。DSP音频空间化器422可以从处理器419接收指示从用户到虚拟声源(可以由用户例如经由手持控制器320移动)的方向向量的输入。基于方向向量,DSP音频空间化器422可以确定对应的HRTF(例如,通过访问HRTF,或通过内插多个HRTF)。DSP音频空间化器422然后可以将确定的HRTF应用于音频信号,诸如对应于由虚拟对象生成的虚拟声音的音频信号。这可以通过在混合现实环境中结合用户相对于虚拟声音的相对位置和取向,也就是说,通过使得所呈现的虚拟声音与用户对该虚拟声音听起来就像现实环境中的现实声音的期望相匹配,来增强虚拟声音的可信度和逼真感。

在一些示例中,诸如图4所示,处理器416、GPU 420、DSP音频空间化器422、HRTF存储器425和视听内容存储器418中的一个或多个可以被包括在辅助单元400C(其可以对应于本文所述的辅助单元320)中。辅助单元400C可以包括电池427来为其部件供电和/或为可穿戴头部设备400A或手持控制器400B供电。通过将这些组件包括在可以被安装到用户腰部的辅助单元中,可以限制可穿戴头部设备400A的尺寸和重量,进而可以减少用户头部和颈部的疲劳。

虽然图4呈现了与示例性混合现实系统的各种部件相对应的元素,但是这些部件的各种其他合适的布置对于本领域的技术人员来说将变得显而易见。例如,图4中呈现为与辅助单元400C相关联的元件可以替代地与可穿戴头部设备400A或手持控制器400B相关联。此外,一些混合现实系统可以完全放弃手持控制器400B或辅助单元400C。这样的改变和修改将被理解为被包括在所公开的示例的范围内。

即时定位与地图构建

在混合现实环境中显示虚拟内容以使虚拟内容对应于现实内容具有挑战性。例如,需要在图1C中显示与现实对象122A处于相同的位置的虚拟对象122B。为此,涉及混合现实系统112的许多能力。例如,混合现实系统112可以创建现实环境104A和现实环境104A内的现实对象(例如,灯122A)的三维地图。混合现实系统112还可以建立其在现实环境104A中的位置(其可以对应于用户在现实环境中的位置)。混合现实系统112可以进一步在现实环境104A中建立其取向(其可以对应于用户在现实环境中的取向)。混合现实系统112还可以建立其相对于现实环境104A的运动,例如,线速度和/或角速度以及线加速度和/或角加速度(其可以对应于用户相对于现实环境的运动)。SLAM可以是一种在与现实对象122A相同的位置上显示虚拟对象122B的方法,即使用户110在房间104A内四处走动、视线移开现实对象122A以及回头看现实对象122A。

需要以准确但计算效率高的低延迟方式运行SLAM。如本文所用,延迟可以指混合现实系统部件的位置或取向的变化(例如,可穿戴头部设备的旋转)与在混合现实系统中表示的该变化的反映(例如,在可穿戴头部设备的显示器中呈现的视野的显示角度)之间的时间延迟。计算效率低下和/或高延迟会对用户使用混合现实系统112的体验产生负面影响。例如,如果用户110环顾房间104A,虚拟对象会因为用户的运动和/或高延迟而产生抖动。准确性对于产生沉浸式混合现实环境至关重要,否则与现实内容冲突的虚拟内容可能会提醒用户虚拟和现实内容之间的区别并降低用户的沉浸感。此外,在某些情况下,延迟可能会导致某些用户出现晕动、头痛或其他负面身体体验。在混合现实系统112是依赖于有限电源(例如,电池)的移动系统的实施例中,计算效率低下会产生更严重的问题。由于更准确、计算效率更高和/或延迟更低的SLAM,本文描述的系统和方法可以产生改进的用户体验。

视觉惯性里程计

图5示出了使用光束法平差和独立重力估计的视觉惯性里程计(“VIO”)的示例性流水线。在步骤504,可以处理来自一个或多个传感器502的传感器输入。在一些实施例中,传感器502可以是IMU,并且在步骤504处理IMU输入可以包括对IMU测量值进行预积分。对IMU测量值进行预积分可以包括根据从IMU获得的一系列惯性测量值确定单个相对运动约束。需要对IMU测量值进行预整合以降低对整个系列的惯性测量值进行积分的计算复杂性。例如,在视频记录中捕获的连续帧(也可以是关键帧)之间收集的惯性测量值包括有关由IMU采用的整个路径的数据。关键帧可以是基于时间(例如,自上一关键帧选择以来经过的时间)、已识别特征(例如,与上一关键帧相比具有足够的新的已识别特征)或其他标准,专门选择的帧。然而,在一些实施例中,VIO方法只需要有关起点(例如,在第一帧处)和终点(例如,在第二帧处)的数据。在一些实施例中,VIO方法只需要有关当前时间点(例如,最近的帧)和上一状态(例如,上一帧)的数据。VIO计算可以通过对惯性测量数据进行预积分以产生单个相对运动约束(例如,从第一帧到第二帧)来简化。经预积分的惯性测量值还可以与其他经预积分的惯性测量值组合,而无需跨两组测量值重复预积分。例如,当对关键帧之间的惯性测量值进行预积分,但后来确定不应再使用关键帧时(例如,由于关键帧因冗余或过时而被删除,或者如果首先对关键帧的第一子集执行优化,然后对不同的关键帧集执行优化,同时重用第一优化结果)时,这种组合会很有用。例如,如果已经对帧1和帧2之间的惯性测量值进行预积分,并且已经对帧2和帧3之间的惯性测量值进行预积分,则可以组合这两组经预积分的测量值,而在从优化中删除第2帧的情况下不执行新的预积分。还设想可以跨任意数量的帧执行此操作。

在一些实施例中,步骤504可以包括跟踪相机帧中已识别特征,其中相机帧可以是来自传感器502的传感器输入。例如,可以通过计算机视觉算法馈送每个图像以识别图像内的特征(例如,角和边)。可以将相邻或近邻的帧相互比较以确定跨帧的特征之间的对应关系(例如,可以在两个相邻帧中识别一个特定角)。在一些实施例中,相邻可以指时间相邻(例如,连续捕获的帧)和/或空间相邻(例如,捕获可能尚未连续捕获的相似特征的帧)。在一些实施例中,可以在已识别特征的给定半径内搜索对应特征。搜索半径可以固定,也可以是基于帧之间速度(例如,通过积分由IMU测量的线性加速度来计算)。

在步骤506,可以运行VIO计算。VIO是一种用于SLAM在环境中观察、跟踪和定位特征的方法。VIO可以包括来自多种类型传感器的信息流。例如,VIO可以包括来自视觉传感器(例如,一个或多个相机)和惯性传感器(例如,IMU)的信息流。在VIO的一个示例方法中,安装在移动的混合现实系统(例如,混合现实系统112、200)上的相机可以记录/捕获多个图像(例如,视频记录中的帧)。可以通过计算机视觉算法馈送每个图像以识别图像中的特征(例如,角和边)。可以将相邻或近邻的帧相互比较以确定跨帧的特征之间的对应关系(例如,可以在两个连续帧中识别一个特定角)。在一些实施例中,可以构建三维地图(例如,根据立体图像),并且已识别特征可以位于三维地图中。

在一些实施例中,来自IMU传感器的惯性信息可以与来自一个或多个相机的视觉信息相耦合,以验证和/或预测跨帧的已识别特征的预期位置。例如,在两个已捕获帧之间收集的IMU数据可以包括线性加速度和/或角速度。在IMU被耦合到一个或多个相机(例如,两者都被嵌入可穿戴头部设备中)的实施例中,IMU数据可以确定一个或多个相机的移动。该信息可用于基于已识别特征在三维地图中的估计位置以及基于一个或多个相机的移动,估计在已捕获图像中的何处看到该已识别特征。在一些实施例中,可将新估计的已识别特征在三维地图中的位置投影到二维图像上,以复制一个或多个相机可以如何捕获已识别特征。然后可以将已识别特征的估计位置的这种投影与不同的图像(例如,后续帧)进行比较。估计位置的投影与观测位置之间的差异是已识别特征的重投影误差。

IMU也可能导致VIO优化误差。例如,传感器噪声会导致IMU数据出现误差。IMU传感器输出还可以包括偏差(例如,即使没有移动也可能存在的记录测量值的偏移),此偏差与IMU的物理特性(例如,温度或机械应力)有关。在一些实施例中,IMU数据中的误差可以随着一段时间内的IMU数据积分而累积。重投影误差也可能与已识别特征在三维地图中的位置的不准确地估计有关。例如,如果已识别特征的最初假设位置不正确,则该特征在移动后新估计的位置也可能不正确,因此新估计的位置在二维图像上的投影也可能不正确。需要VIO优化以最小化可包括重投影误差和IMU误差的总误差。

图6A-6B示出了VIO计算的示例图表。该示例性图表直观地示出几个变量的函数的非线性分解。例如,变量(例如,602a和602b)可以表示为圆形节点,变量的函数(例如,604、606和610a,也称为因子)可以表示为方形节点。每个因子是任何附加变量的函数。在所示实施例中,节点602a和602b可以表示与在t=1处捕获的图像相关联的数据。在示例实施例中,也显示与在t=2处捕获的图像和在t=3处捕获的图像相关联的数据。节点602a可以表示变量信息,包括偏差(例如,IMU偏差)和速度,这速度可以通过对一段时间内的加速度测量值进行积分来获得。节点602a可以表示IMU的偏差和固定到IMU的相机在相机捕获图像时的时间t=1处的速度。节点602b可以表示时间t=1处的姿势估计。姿势估计可以包括相机在三维空间中的位置和取向的估计(这可能是VIO导致的)。节点604可以表示时间t=1处的透视n点(“PnP”)项。PnP项可以包括已识别特征在三维空间中的位置和取向的估计(例如,图像中已识别对象的角)。节点606可以包括在时间t=1和时间t=2之间捕获的IMU测量值。节点606处的IMU测量值可以被选择性地预积分以减少计算负载。节点608可以表示现实环境的重力估计。重力估计可以包括基于来自IMU的惯性测量值的估计的重力方向(例如,向量)的指示。

节点610a和610b可以包括边缘化先验。在一些实施例中,边缘化先验可以包括有关一些或所有先前捕获的帧的边缘化信息。在一些实施例中,边缘化先验可以包含一些或所有先前相机状态(其可以包括姿势数据)的估计、重力估计和/或IMU外参。在一些实施例中,边缘化先验可以包括信息矩阵,该信息矩阵可以捕获状态对先前视觉和/或惯性测量值的依赖性。在一些实施例中,边缘化先验可以包括在线性化点处保持残差的一个或多个误差向量。由于几个原因,使用边缘化先验可能是有益的。一个优点可以是边缘化项可以允许优化问题具有固定数量的变量,即使优化没有预先确定的限制。例如,VIO可以在任意数量的帧上运行,具体取决于用户可以使用运行VIO的混合现实系统多长时间。因此,VIO优化可能需要优化数千个帧,这超出了便携式系统的计算限制。边缘化先验可以在一个项中提供有关一些或所有先前帧的信息,使得优化问题能够以更少的变量(例如,三个变量:边缘化先验和两个最近的帧)进行计算。另一优点可以是边缘化先验可以考虑先前帧的长期历史。例如,计算限制要求只能优化最近的帧(例如,三个最近的帧)。因此,优化会受到漂移的影响,其中在一个帧中引入的误差可以继续向前传播。对许多先前帧的信息进行近似的边缘化先验不太容易受到由单个帧引入的误差的影响。在一些实施例中,边缘化先验610a可以对来自在时间t=1之前捕获的所有帧的信息进行近似。

图6B示出了其中在t=1处捕获的帧和与在t=1处捕获的帧相关联的数据被边缘化到边缘化先验节点610b的示例性实施例,边缘化先验节点610b可以包括有关边缘化先验610a的数据和有关新边缘化的在t=1处捕获的帧的数据。在一些实施例中,除了边缘化先前帧的边缘化先验之外,VIO还可以利用滑动窗口大小,例如两个帧的滑动窗口大小。随着新帧被添加到VIO优化(可以最小化误差)中,最旧的帧可以被边缘化到边缘化先验项。可以使用任意大小的滑动窗口;较大的窗口大小可以产生更准确的VIO估计,而较小的窗口大小可以产生更有效的VIO计算。在一些实施例中,VIO优化可以固定表示PnP项的节点(例如,节点604),并且仅优化表示姿势(或状态)估计、重力估计、惯性测量值和/或IMU外参(可以包括在节点602a中)的节点。除了速度估计和偏差估计之外,状态估计还可以包括姿势估计。

在一些实施例中,作为因子计入VIO状态估计的每个帧可以具有相关联的权重。例如,最小化误差可导致具有许多已识别特征的帧在优化中的权重更大。由于误差可能源自视觉信息(例如,重投影误差)和/或惯性信息(例如,IMU偏差),因为具有大量已识别特征的帧的权重可能过大,从而在最小化过程中减小惯性测量值的相对权重。可能需要使用已识别特征抑制帧的权重缩放,因为这样的缩放可以通过比较减小IMU数据的权重,并且因为缩放可以相对于其他帧为一个帧分配过多的权重。抑制权重缩放的一种解决方案是将每个已识别特征的权重除以帧中所有已识别特征的所有权重之和的平方根。然后在VIO优化中最小化每个抑制的重投影误差,从而抑制具有更多已识别特征的视觉信息的缩放。

在一些实施例中,每个已识别特征的权重可以与已识别特征的置信度相关联。例如,可以基于观察前一帧中的相应特征以及估计帧间的运动为已识别特征与其预期位置之间的重投影误差分配权重(例如,可以为较大的重投影误差分配较低的权重)。在另一示例中,可以基于图像中测量的重投影误差的分布可以将重投影误差作为异常值从计算中去除。例如,尽管可以使用包括动态阈值的任何阈值,但最高10%的重投影误差可以作为异常值从计算中消除。

在一些实施例中,如果混合现实系统(例如,混合现实系统112、200)静止不动,则需要修改边缘化先验的更新方式。例如,如果混合现实系统被设置在桌子上但继续运行,可以继续观察特征和惯性测量值,由于重复测量,可能导致状态估计的过置信度。因此,如果检测到混合现实系统在阈值时间内保持静止,则可能需要在边缘化先验中停止更新信息矩阵(可能包括不确定性)。静态位置可根据IMU测量值(例如,没有记录噪声范围之外的重要测量值)、视觉信息(例如,帧在已识别特征中继续显示没有移动)或其他合适的方法来确定。在一些实施例中,可以继续更新边缘化先验的其他分量(例如,误差向量、状态估计)。

光束法平差和重力估计

返回参考图5,可以在步骤508确定keyrig插入。将keyrig用于重力估计、光束法平差和/或VIO可能是有益的,因为keyrig的使用可以在更长时间帧范围内导致更稀疏的数据而不增加计算负载。在一些实施例中,keyrig是来自多相机系统(例如,具有两个或更多个相机的MR系统)的一组关键帧,其可能已经在特定时间被捕获。在一些实施例中,keyrig可以是关键帧。可以基于任何标准选择keyrig。例如,可以基于keyrig之间的经过时间在时域中选择keyrig(例如,可以每半秒选择一个帧作为keyrig)。在另一示例中,可以基于已识别特征在空域中选择keyrig(例如,如果帧与之前的keyrig相比具有足够相似或不同的特征,则可以选择该帧作为keyrig)。可以将keyrig存储和保存到存储器中。

在一些实施例中,例如,(如果标准keyrig插入提供的数据太稀疏)可以执行密集keyrig插入(这可以对重力估计有用)。在一些实施例中,需要在执行密集keyrig插入之前满足阈值条件。一个阈值条件可以是VIO优化是否仍在接受重力输入。另一阈值条件可以是自插入上一keyrig以来是否经过了阈值时间(例如,0.5秒)。例如,由于IMU误差(例如,偏差或漂移),惯性测量值仅在较短时间内有效,因此需要在收集惯性测量值(以及可选地进行预积分)时限制keyrig之间的时间量。另一阈值条件可以是在最近keyrig候选和最近keyrig之间是否有足够的运动(即,可能需要具有足够的运动以便于使所有变量观察)。另一阈值条件可以是最新keyrig候选的质量是否足够高(例如,如果新的keyrig候选具有足够高的重投影正常值与重投影异常值的比率)。在密集keyrig插入之前可能需要满足这些阈值条件中的一些或全部,也可以使用其他阈值条件。

在步骤510,可以保持keyrig缓冲器。keyrig缓冲器可以包括被配置为存储插入的keyrig的存储器。在一些实施例中,keyrig可以与关联的惯性测量数据(例如,原始惯性测量值或经预积分的惯性测量值)和/或关联的时间戳(例如,捕获keyrig的时间)一起存储。还可以确定keyrig之间的时间间隔是否足够短以维持预积分惯性测量值的有效性。如果确定时间间隔不够短,则可以重置缓冲器以避免不良估计(例如,不良重力估计)。keyrig和相关数据可以被存储在数据库511中。

在步骤512,可以执行光束法平差。光束法平差可以基于跨帧的已识别特征的重复观察来优化相机姿势、状态、特征位置和/或其他变量的估计,以提高估计(例如,已识别特征的位置的估计)的准确性和置信度。尽管可以多次观察到相同的已识别特征,但由于误差(例如,IMU偏差、特征检测不准确、相机校准误差、计算简化等),每个观察结果可能与其他观察结果不一致。因此,需要使用已识别特征的多次观察来估计已识别特征在三维地图中的可能位置,同时最小化输入观察的误差。光束法平差可以包括在滑动窗口(例如,三十个keyrig的滑动窗口)上优化帧(或keyrig)。这可以称为固定滞后平滑,并且可以比使用累积过去误差的卡尔曼滤波器更准确。在一些实施例中,光束法平差是视觉惯性光束法平差,其中光束法平差是基于视觉数据(例如,来自相机的图像)和惯性数据(例如,来自IMU的测量值)。光束法平差可以输出已识别特征的三维图,该图比由VIO生成的三维图更准确。光束法平差可以比VIO估计更准确,因为VIO估计可以是按帧执行的,而光束法平差可以是按keyrig执行的。在一些实施例中,除了MR系统的位置和/或取向(其可以近似用户的位置和/或取向)之外,光束法平差还可以优化地图点(例如,已识别特征)。在一些实施例中,VIO估计仅优化MR系统的位置和/或取向(例如,因为VIO估计将地图点作为固定采用)。使用keyrig可以允许输入数据跨更长的时间帧,而不增加计算负载,从而可以提高准确性。在一些实施例中,光束法平差在更强大的处理器上远程执行,与VIO相比,允许更准确的估计(由于更优化的帧)。

在一些实施例中,光束法平差可以包括最小化误差,该误差包括视觉误差(例如,重投影误差)和/或惯性误差(例如,由基于先前keyrig和下一keyrig的运动估计已识别特征的位置导致的误差)。最小化误差可通过识别误差的均方根并优化估计以实现所有误差的最低平均均方根来实现。还设想可以使用其他最小化方法。在一些实施例中,可以为单独的测量值分配单独的权重(例如,基于测量准确性的置信度为测量值分配权重)。例如,可以根据每个相机的质量为从多于一个相机捕获的图像的测量值分配权重(例如,更高质量的相机可以产生具有更大权重的测量值)。在另一示例中,可以根据记录测量值时传感器的温度为测量值分配权重(例如,传感器可以在指定温度范围内最佳地执行,因此可以为在该温度范围内获取的测量值分配更大的权重)。在一些实施例中,深度传感器(例如,LIDAR、飞行时间相机等)可以提供除了视觉测量值和惯性测量值之外的信息。深度信息也可以通过还最小化与深度信息相关联的误差(例如,当将深度信息与根据视觉信息和惯性信息构建的估计的三维地图进行比较时)包含在光束法平差中。在一些实施例中,可以使用光束法平差输出作为输入(例如,代替keyrig)来执行全局光束法平差以进一步提高准确性。

图7A示出了用于执行光束法平差的示例性决策过程。在步骤702,可以将新的keyrig添加到滑动窗口以进行优化。在步骤704,可以评估滑动窗口中每个keyrig之间的时间间隔。如果没有一个时间间隔高于某个静态或动态时间阈值(例如,0.5秒),则可以在步骤706使用来自数据库705的惯性测量值和来自数据库712的keyrig(可以是图像)来执行视觉惯性光束法平差。数据库705和数据库712可以是同一个数据库,也可以是分离的数据库。在一些实施例中,如果连续keyrig之间的至少一个时间间隔高于某个静态或动态时间阈值,则可以在步骤710执行空间光束法平差。如果时间间隔高于静态或动态时间阈值,则有利地排除惯性测量值,因为IMU测量值仅对短时间间隔的积分有效(例如,由于传感器噪声和/或漂移)。与视觉惯性光束法平差相比,空间光束法平差选择地依赖于一组不同的keyrig。例如,滑动窗口可以从固定到一定时间或一定数量的keyrig变为固定到空域(例如,滑动窗口被固定到特定移动量)。在步骤708,可以从滑动窗口中移除最旧的keyrig。

图7B示出了用于执行光束法平差的示例性决策过程。在步骤720,可以将新keyrig添加到滑动窗口以进行优化。在步骤722,可以从keyrig的数据库730中检索时间最近的keyrig。例如,可以检索(例如,基于相关联的时间戳)多个(例如,五个)最近捕获的keyrig。在步骤724,可以确定每个检索到的keyrig之间的时间间隔是否低于静态或动态阈值(例如,0.5秒)。如果所捕获的keyrig之间的每个时间间隔低于静态或动态阈值,则可以在步骤726执行视觉惯性光束法平差,此操作除了利用来自keyrig的视觉信息之外,还将利用惯性测量值。如果所捕获的keyrig之间的至少一个时间间隔高于静态或动态阈值,则在步骤728,可以从数据库730中检索空间接近的keyrig。例如,可以检索具有阈值数量的与最新keyrig中的已识别特征相对应的已识别特征的。在步骤728,可以执行空间光束法平差,此操作可以使用来自keyrig的视觉信息,并且不使用惯性信息来执行光束法平差。

其他决策过程也可用于执行光束法平差。例如,在步骤704和/或724,可以确定连续keyrig之间的任何时间间隔是否超过静态或动态时间阈值。如果确定至少一个时间间隔超过阈值,则可以忽略两个相关keyrig之间的惯性测量值,但这些惯性测量值仍可用于符合时间间隔阈值的所有剩余keyrig。在另一示例中,如果确定时间间隔超过阈值,则可以在两个相关keyrig之间插入一个或多个附加keyrig,并且可以执行视觉惯性光束法平差。在一些实施例中,keyrig缓冲器中的或存储在数据库511和/或730中的keyrig可以用光束法平差的结果来更新。

返回参考图5,在步骤514,可以执行独立的重力估计。在步骤514执行的独立重力估计可以比在步骤506确定的VIO重力估计更准确,例如,因为它可以在更强大的处理器上或在更长的时间帧内执行,从而允许对附加变量(例如,帧或keyrig)进行优化。独立重力估计可以利用keyrig(可以包括关键帧)来估计可用于SLAM和/或VIO的重力(例如,向量)。keyrig是有益的,因为它们允许在更长时间内执行独立重力估计,而不会超过计算限制。例如,超过30秒的独立重力估计可以比超过1秒的独立重力估计更准确,但如果以30fps录制视频,则30秒估计需要优化900个帧。keyrig可以更稀疏的间隔(例如,每秒两次)来获得,使得重力估计只需要优化60个帧。在一些实施例中,密集keyrig插入(其可以在步骤508处执行)可以导致用于独立重力估计的。重力估计也可以使用简单的帧。需要估计重力方向以锚定对应于现实内容的虚拟内容的显示。例如,不良重力估计可以导致虚拟内容相对于现实内容显得倾斜。尽管IMU可以提供可以包括重力的惯性测量值,但惯性测量值还可以包括所有其他运动(例如,实际运动或噪声),这可能会掩盖重力向量。

图8示出了独立重力估计的示例性图表。该示例性图表可以直观地示出几个变量的函数的非线性分解。例如,变量(例如,802a和802b)可以表示为圆形节点,变量的函数(例如,804,也称为因子)可以表示为方形节点。每个因子是任何附加变量的函数。节点802a和802b可以表示与在时间i=0处捕获的keyrig相关联的数据。节点802a可以包括表示IMU状态的数据,其可以是IMU测量值中的误差估计。IMU状态是VIO方法的输出。节点802b可以包括表示与特定keyrig相关联的keyrig姿势的数据。keyrig姿势可以是基于光束法平差的输出。节点804可以包括IMU项边,它可以包括经预积分的惯性运动。节点804还可以定义将其他附加节点相互关联的误差函数。节点806可以包括表示IMU外参的数据(其可以与IMU相对于混合现实系统的精度和取向相对应),并且节点808可以包括重力估计。重力估计优化可以包括:最小化节点804处的误差函数。在一些实施例中,与keyrig姿势和IMU外参相关的节点(例如,节点802b和806)可以是固定的,并且与IMU状态和重力相关的节点(例如,节点802a和808)可以被优化。

返回参考图5,在步骤515,可以将来自独立重力估计和来自光束法平差的结果应用于VIO输出。例如,VIO重力估计和独立重力估计之间的差异和/或VIO姿势估计和光束法平差姿势估计之间的差异可以由变换矩阵表示。变换矩阵可以被应用于VIO姿势估计和/或边缘化先验的姿势估计。在一些实施例中,可以将变换矩阵的旋转分量应用于由VIO估计的状态和/或VIO的重力估计。在一些实施例中,如果生成的地图以变得太大,则不能应用独立重力估计来校正VIO重力估计(即,如果必须将独立重力估计应用于太多帧,则在计算上不可行)。在一些实施例中,组516中的框的执行位置不同于组518中的框的执行位置。例如,组516可以在包括省电处理器和显示器的可穿戴头部设备上执行。组518可以在包括更强大的处理器的附加设备(例如,可穿戴髋部设备)上执行。可能需要近实时地执行某些计算(例如,组516中的计算),以便用户可以获得虚拟内容的低延迟视觉反馈。还需要在并行和反向传播校正中执行更准确且计算量更大的计算,以保持虚拟内容的长期准确性。

双IMU SLAM

在一些实施例中,两个或更多个IMU可用于SLAM计算。添加第二IMU可以提高SLAM计算的准确性,从而可以减少虚拟内容的抖动和/或漂移。在与地图点相关联的信息不足以进行更准确的SLAM计算(例如,低纹理(例如,缺乏几何或视觉特征的墙壁,诸如一种颜色的平墙)、低光照、低光照和低纹理)时,在SLAM计算中添加第二IMU可能也是有利的。在一些示例中,与使用一个IMU相比,使用两个IMU来计算SLAM可以实现减少14-19%的漂移和减少10-20%的抖动。漂移和抖动相对于实际位置(例如,混合现实环境中对象的实际位置)以弧分为单位进行测量。

在一些实施例中,第二IMU可用于低光照或低纹理情况,并且第二IMU不能用于混合现实环境的光照和/或纹理足够的情况。在一些实施例中,来自混合现实系统的传感器的一个或多个视觉度量和信息用于确定混合现实环境的光照和/或纹理是否足够(例如,根据混合现实环境的对象确定足够的纹理;确定混合现实环境中足够的光照)。例如,MR系统的传感器可用于捕获与混合现实环境相关联的光照和/或纹理信息,并且可将捕获的信息与光照和/或纹理阈值进行比较以确定光照和/或纹理是否足够。如本文所公开的,如果确定光照和/或纹理不足,则可以使用第二IMU执行预积分项计算(例如,为了实现更好的准确性,减少潜在的抖动和/或漂移)。在一些实施例中,比较使用一个IMU的计算和使用两个IMU的计算,如果计算之间的差异在阈值内,则在这些情况下针对SLAM计算使用一个IMU便可足够。作为示例性优势,在确定混合现实环境的光照和/或纹理足够的情况下使用一个IMU的能力可以降低功耗并减少计算时间。

在一些实施例中,第二IMU可以对同一值进行重复测量,增加测量值的置信度。例如,第一IMU可以测量第一角速度,而第二IMU可以同时测量第二角速度。

第一IMU和第二IMU可以被耦合到同一硬体(例如,该硬体的变形可忽略;并且该硬体是可穿戴头部设备的框架)。与第一IMU相关联的第一角速度和与第二IMU相关联的第二角速度均可以是同一真实角速度的测量值。在一些实施例中,重复测量同一值可以通过消除每个单独测量中的噪声来产生对真实值的更准确估计。在一些实施例中,将两个IMU耦合到同一硬体可促进了双IMU系统中的SLAM计算,如本文所述。因为低延迟可能对于SLAM计算非常重要,因此需要开发以计算有效的方式结合额外惯性信息,同时保留额外数据的准确性增益的系统和方法。

图9示出了根据一些实施例的混合现实系统中的示例性IMU配置。在一些实施例中,MR系统900(其可以对应于MR系统112、200)可以被配置为包括IMU 902a和IMU 902b。在一些实施例中,IMU 902a和902b被硬耦合到混合现实系统(例如,被附接到混合现实系统的框架),使得IMU的速度被耦合。例如,两个速度之间的关系可以使用已知值(诸如,角速度和与各个IMU位置相关联的向量)来计算。如本文所述,包括两个速度耦合IMU的系统可以有利地降低与系统相关联的预积分项的计算复杂性,同时通常观察到比单IMU系统更佳的计算准确性,特别是在混合现实环境中的低光照和/或低纹理情况下。

在一些实施例中,MR系统900可以被配置为使得IMU 902a尽可能靠近相机904a,并且IMU 902b尽可能靠近相机904b。在一些实施例中,相机904a和904b可用于SLAM(例如,相机904a和904b可用于对象/边缘识别和/或VIO的视觉部件)。需要配置MR系统900,使得IMU尽可能靠近SLAM相机,以便准确跟踪SLAM相机经历的运动(例如,通过使用IMU的运动作为SLAM相机运动的代理)。

图10示出了根据一些实施例的混合现实系统中的示例性IMU配置。在一些实施例中,两个IMU传感器(例如,IMU 1002和IMU 1004)通常可以提供两个IMU项边和/或预积分项。例如,与IMU 1002相关联的预积分项的分量可以由方程(1)、(2)和(3)表示,其中

方程(1):

方程(2):

方程(3):

类似地,方程(4)、(5)和(6)可以表示与IMU 1004相关联的预积分项的分量。

方程(4):

方程(5):

方程(6):

尽管t和Δt用于描述各个IMU在特定时间的旋转、角速度和角加速度,但是应当理解,可能无法在完全相同的时间捕获不同的量。例如,由于硬件时序的原因,两个IMU之间的数据捕获或采样之间可能存在延迟(例如,200ms)。在这些情况下,MR系统可以在两个IMU之间同步数据集以解决该延迟问题。作为另一示例,与不同量相关联的IMU数据可以在系统的相同时钟周期期间的不同时间被采样或捕获。时钟周期的周期可以由系统的时序分辨率要求决定。

在一些实施例中,可以对方程(1)-(6)进行求解以计算与第一IMU和第二IMU相关联的预积分项。例如,该解可以使用回归分析(例如,最小二乘)或其他合适的方法来减小与方程组的解相关的误差。

在一些实施例中,如果IMU 1002和IMU 1004被彼此硬耦合(例如,通过对应于MR系统900的硬体1006),则与IMU 1002相关联的预积分项和与IMU 1004相关联的预积分项可以受到运动学约束。在这些情况下,与方程(1)-(6)相关联的变量可以因这种耦合而减少。在一些实施例中,IMU 1002和IMU 1004之间的硬耦合可以允许以相同的变量表达两个预积分项。方程(7)可以表示在IMU 1002处测量的变量和在IMU 1004处测量的变量之间的关系(由于硬耦合),其中,

方程(7):

通过使用IMU 1002和IMU 1004之间的运动学关系,方程(8)、(9)和(10)可以替换方程(4)、(5)和(6)作为IMU 1004的预积分项的分量。

方程(8):

方程(9):

方程(10):

如上所述,通过硬耦合IMU 1002和IMU 1004,可以推导出两个IMU之间的关系(例如,使用方程(7)),并且与IMU预积分项相关联的一组IMU方程(例如,方程(4)、(5)、(6))可以被有利地简化(例如,简化为方程(8)、(9)和(10))以降低与两个IMU相关联的预积分项的计算复杂性,同时通常观察到比一个IMU系统更佳的计算准确性。

尽管方程(4)、(5)、(6)在第一IMU方面进行了简化,但是应当理解,方程(1)、(2)、(3)也可以替代地被简化(例如,在第二IMU方面)来执行类似的计算。尽管与IMU 1002相关联的角速度在方程(8)、(9)和(10)中使用,但是应当理解,与混合现实系统相关联的不同角速度也可用于计算预积分项。例如,IMU 1002和IMU 1004之间的平均角速度可以在方程(8)、(9)和(10)中使用。

与MR系统耦合的IMU(例如,IMU 902a、IMU 902b、IMU 1002、IMU1004)的硬度随时间变化。例如,用于将IMU附接到MR系统的框架的机构可能会发生塑性或非弹性变形。这些变形会影响两个IMU之间的数学关系。具体而言,这些变形可能影响方程(7)的准确性,以及从方程(7)导出的与第一IMU(例如,IMU 902a、IMU 1002)相关联的一组方程和与第二IMU(例如,IMU 902b、IMU 1004)相关联的一组方程之间的关系的准确性。这些变形会影响与IMU相关联的预积分项的准确性。在一些实施例中,可以在SLAM计算之前校准IMU的位置。例如,在SLAM计算之前,可以将IMU的当前位置(例如,使用MR系统的传感器获得)与预定值(例如,已知的IMU位置、理想的IMU位置、制造的IMU位置)进行比较,并且可以解决SLAM计算中的差异(例如,偏移)(例如,消除方程(7)中的差异)。通过在SLAM计算之前校准IMU并解决IMU耦合中的潜在变形,可以有利地增加与预积分项和SLAM计算相关联的准确性。

图11示出了根据一些实施例的SLAM的示例性图形表示。图11中的图形表示可示出了几个变量的函数的非线性分解。例如,变量(例如,1110、1112、1114、1116和1122)可以表示为圆形节点,变量的函数(例如,1102、1118和1120,也称为因子)可以表示为方形节点。每个因子可以是任何(或所有)附加变量的函数。

在一些实施例中,状态1102可以表示系统状态(例如,MR系统的状态)和/或时间t=1处系统状态中的任何变量。类似地,状态1104可以表示系统状态和/或时间t=2处系统状态中的任何变量,并且状态1106可以表示系统状态和/或时间t=3处系统状态中的任何变量。系统状态可以对应于在当时捕获的keyrig。系统状态可以包括该状态内的一个或多个变量的状态(和/或由其定义)。例如,状态1102可以包括PnP项1108。在一些实施例中,状态1102可以包括姿势估计1110。在一些实施例中,状态1102可以包括第一(和/或左)IMU(其可以对应于IMU 902a或IMU 1002)的偏差项1112。在一些实施例中,偏差项1112可以包括线性加速度计和陀螺仪的偏差值。在一些实施例中,偏差项1112可以包括与各个测量轴相对应的每个线性加速度计和陀螺仪的偏差值。在一些实施例中,状态1102可以包括第二(和/或右)IMU(其可以对应于IMU 902b或IMU 1004)的偏差项1114。偏差项1114可以包括与偏差项1112类似的对应偏差值。在一些实施例中,状态1102可以包括速度项1116。速度项1116可以包括系统的角速度。在一些实施例中,如果系统基本为硬体,则角速度可以是与第一IMU相关联的角速度、与第二IMU相关联的角速度、与第一IMU和第二IMU相关联的平均角速度、与系统相关联的噪声减小的角速度、以及与系统相关联的消除偏差的角速度中的一项。在一些实施例中,速度项1116可以包括与系统中的一个或多个位置相对应的一个或多个线速度值(例如,系统中每个IMU处的线速度值)。在一些实施例中,状态1102可以包括无状态项1122。无状态项1122可以包括一个或多个不依赖于特定状态的变量。例如,无状态项1122可以包括重力变量,其可以包括估计的重力方向。在一些实施例中,无状态项1122可以包括IMU外参(例如,IMU 904a或IMU 1002和/或904b或1004在MR系统900内的相对位置)。

在一些实施例中,两个预积分项可以使两个系统状态彼此相关。例如,预积分项1118和预积分项1120可以使状态1102和状态1104相关。在一些实施例中,预积分项1118(其可以对应于IMU 904a或IMU 1002)和预积分项1120(其

可以对应于IMU 904b或IMU 1004)可以是同一组变量的函数。这种非线性优化计算的结构提供了若干优点。例如,第二预积分项(与图8中使用单个IMU的非线性分解相比)不需要成比例地增加计算能力,因为第二预积分项在运动学上受限于第一预积分项,如本文所述。但是,与单个IMU分解相比,从第二IMU添加数据还可以改善抖动和/或漂移。

图12示出了根据一些实施例的用于呈现虚拟内容的示例性过程。为简单起见,此处不再赘述关于图9至图11描述的方法的示例关联步骤。在步骤1202,可以接收图像数据(例如,经由MR系统的传感器)。图像数据可以包括图片和/或视觉特征(例如,边)。

在步骤1204,可以经由第一惯性测量单元(例如,IMU 902a、IMU 1002)接收第一惯性数据,并且可以经由第二惯性测量单元(例如,IMU 902b、IMU 1004)接收第二惯性数据。在一些实施例中,第一惯性测量单元和第二惯性测量单元可以经由硬体被耦合在一起。硬体可以是被配置为在正常使用下不变形的主体(例如,由硬塑料、金属等组成)。第一惯性数据和/或第二惯性数据可以包括一个或多个线性加速度测量值(例如,沿三个测量轴中的每一个的三个测量值)和/或一个或多个角速度测量值(例如,沿三个测量轴中的每一个的三个测量值)。在一些实施例中,第一惯性数据和/或第二惯性数据可以包括线速度测量值和/或角加速度测量值。

在步骤1206,可以基于图像数据、第一惯性数据和第二惯性数据,计算第一预积分项和第二预积分项。在一些实施例中,可以使用非线性相关变量和函数的图形优化来计算第一预积分项和第二预积分项。例如,图11示出的因子图可用于计算第一预积分项(例如,预积分项1118)和第二预积分项(例如,预积分项1120)。在一些实施例中,优化因子图和/或计算因子图中的函数可涉及固定一些变量同时优化其他变量。

在步骤1208,可以基于第一预积分项和第二预积分项,估计可穿戴头部设备的位置。在一些实施例中,可以使用非线性相关变量和函数的图形优化来估计位置。例如,图11示出的因子图可用于估计位置(例如,姿势项1110)。在一些实施例中,优化因子图和/或计算因子图中的函数可涉及固定一些变量同时优化其他变量。

在步骤1210,可以基于位置呈现虚拟内容。在一些实施例中,可以经由可穿戴头部设备的一个或多个透射显示器来呈现虚拟内容,如本文所述。在一些实施例中,MR系统可以基于位置估计用户的视野。如果确定虚拟内容在用户的视野中,则可以将虚拟内容呈现给用户。

在一些实施例中,keyrig由时间间隔分开。例如,如关于图6A、图6B、图8和图11所描述的,相邻keyrig(例如,t=0和t=1、t=1和t=2等;i=0和i=1、i=1和i=2等;变量1102和1104的函数、变量1104和1106的函数等)由相应的时间间隔分开。相应的时间间隔可能不同(例如,生成keyrig的时间可以由系统确定)。在一些示例中,当keyrig之间的时间间隔大于最大时间间隔(例如,5秒)时,针对视觉惯性光束法平差使用预积分(例如,节点606、节点804、预积分项1118、1120)的优势会减少(例如,与在相邻keyrig小于最大时间间隔时使用预积分相比,准确性降低;与在相邻keyrig大于最大时间间隔时不使用预积分相比,准确性降低)。因此,当预积分的优势减少时,不针对光束法使用平差预积分是期望的。

在一些实施例中,系统(例如,混合现实系统112、混合现实系统200、图4中的混合现实系统、混合现实系统900)确定keyrig之间的时间间隔是否大于最大时间间隔(例如,5秒)。基于该确定,系统确定是否针对对应于相邻keyrig的光束法平差使用预积分。作为示例性优势,通过在预积分不太准确时(例如,当相邻keyrig之间的时间间隔大于最大时间间隔时)放弃使用预积分,优化了光束法平差的准确性(例如,与在相邻keyrig大于最大时间间隔时使用预积分相比提高了准确性,与在相邻keyrig大于最大时间间隔并且不调整权重时使用预积分相比提高了准确性)。在一些实施例中,作为另一示例性优势,通过在预积分不太准确时放弃预积分,可以优化光束法平差的准确性而无需任何权重调整并减少计算时间和资源需求。

在一些实施例中,根据确定时间间隔不大于最大时间间隔,系统针对光束法平差使用预积分。例如,当时间间隔不大于最大时间间隔时,执行如本文所述的视觉惯性光束法平差。

在一些实施例中,根据确定时间间隔大于最大时间间隔,系统放弃针对光束法平差使用预积分。例如,当时间间隔大于最大时间间隔时,执行如本文所述的空间光束法平差(例如,代替视觉惯性光束法平差);包括该步骤的方法可以称为混合视觉惯性光束法平差。作为另一示例,当时间间隔大于最大时间间隔时,执行视觉惯性光束法平差,但不在图中添加对应的预积分项(例如,节点606、节点804、预积分项1118、1120),如参考图6A、图6B、图8和图11所描述的;包括该步骤的方法可以称为部分视觉惯性光束法平差。

本文关于图1和双IMU描述的技术和方法也可以应用于其他方面。例如,双IMU数据可以用在关于图6A-图6B描述的VIO方法中。双IMU数据也可以用在关于图8描述的重力估计方法中。例如,可以将第二预积分项以及每个IMU的偏差的变量添加到图6A-图6B和/或图8中的图形优化中。

虽然图形优化(例如,图6A-图6B、图8和/或图11中示出的优化)可以示出了包括一个或多个变量值的变量节点,但是可以设想,变量节点内的变量值可以表示为一个或多个单独的节点。尽管本文描述的技术和方法公开了双IMU图形优化结构,但可以设想,类似的技术和方法可用于其他IMU配置(诸如三个IMU、四个IMU、十个IMU等)。例如,图形优化模型可以包括对应于每个IMU的预积分项,它可以是姿势估计、一个或多个偏差项(对应于每个IMU)、速度、重力方向和对应于每个IMU的一个或多个IMU外参的函数。

尽管已经参考附图充分描述了所公开的示例,但是应当注意,各种改变和修改对于本领域技术人员来说将变得显而易见。例如,一个或多个实施方式的元素可以被组合、删除、修改或补充以形成进一步的实施方式。此类改变和修改应理解为包括在所附权利要求限定的公开示例的范围内。

技术分类

06120114712943