用于计算3D环境的合成表示的计算高效方法与流程

文档序号:32750830发布日期:2022-12-31 00:39阅读:76来源:国知局
用于计算3D环境的合成表示的计算高效方法与流程
用于计算3d环境的合成表示的计算高效方法
1.相关申请的交叉引用
2.本技术要求于2020年5月11日提交的题为“computationally efficient method for computing a composite representation of a 3d environment(用于计算3d环境的合成表示的计算高效方法)”的优先权和权益,其以整体内容通过引用并入本文。
技术领域
3.本技术大体涉及提供环境的表示,例如,在跨现实(xr)系统、自动驾驶车辆或包括可移动传感器的其他计算机视觉系统中。


背景技术:

4.使用传感器获取关于3d环境信息的系统在多种情景中使用,诸如跨现实(xr)系统或自动驾驶车辆。这些系统可能使用传感器(诸如相机)来获取关于3d环境的信息。传感器可以提供可以集成到环境的表示中的环境的许多观察。例如,当自动驾驶车辆移动时,其传感器可以从不同姿势获取3d环境的图像。每个图像可以提供环境的另一个观察,提供关于先前图像中的环境的一部分的更多信息或关于环境的新部分的信息。
5.这样的系统可以通过将多次观察获得的信息组合成3d环境的合成表示。可以将新图像添加到环境的合成表示中,基于获取该图像的姿势填充信息。初始地,可以估计图像的姿势,诸如基于内部传感器的输出,该输出指示获取图像的传感器的运动或者特征相对于先前图像中已经并入环境的合成表示中的特征的相关性。然而,随着时间的推移,这些估计技术中的误差可能累积。
6.为了补偿累积误差,可以不时执行合成表示的调整。这样的调整可能需要调整已被组合到合成表示中的图像的姿势,使得在3d环境中表示相同对象的不同图像中的特征更好地对齐。在一些场景中,对齐的特征可能是特征点。在其他场景中,特征可能是基于图像的内容标识的平面。在这样的场景中,调整可能需要调整每个图像的相对姿势和基于合成表示检测到的平面的相对位置。
7.这样的调整可以提供可以以多种方式中的任何一种使用的3d环境的准确表示。在xr系统中,例如,计算机可以控制人类用户界面以创建跨现实(xr)环境,其中如由用户感知的xr环境的部分或全部由计算机生成。这些xr环境可以是虚拟现实(vr)、增强现实(ar)和混合现实(mr)环境,其中xr环境的部分或全部可能由计算机使用部分描述环境的数据生成。例如,该数据可以描述虚拟对象,这些虚拟对象可以以用户感觉或感知为物理世界的一部分的方式渲染,使得用户可以与虚拟对象交互。由于通过用户界面设备(诸如,头戴式显示设备)渲染和呈现数据,因此用户可以体验这些虚拟对象。数据可以被显示给用户看,或者可以控制被播放给用户听的音频,或者可以控制触摸(或触觉)界面,使得用户能够体验用户感觉或感知为感觉虚拟对象的触摸感觉。
8.xr系统可能对许多应用有用,覆盖科学可视化、医学训练、工程设计和原型制作、远程操作和远程呈现以及个人娱乐等领域。与vr相比,ar和mr包括一个或多个与现实世界
的真实对象相关的虚拟对象。虚拟对象与真实对象交互的体验极大地增强了用户使用xr系统的乐趣,并且也为各种应用打开了大门,这些应用提供了关于物理世界可能如何被改变的逼真且易于理解的信息。
9.为了逼真地渲染虚拟内容,xr系统可以构建系统用户周围的物理世界的表示。例如,该表示可以通过处理利用形成xr系统的一部分的可穿戴设备上的传感器获取的图像来构造。在这样的系统中,用户可以通过环顾用户打算使用xr系统的房间或其他物理环境来执行初始化例程,直到系统获得足够的信息来构造该环境的表示。当系统操作并且用户在环境中或向其他环境移动时,可穿戴设备上的传感器可能获取附加信息,以扩展或更新物理世界的表示。


技术实现要素:

10.本技术的各方面涉及用于提供环境的表示的方法和装置,例如,在跨现实(xr)系统、自动驾驶车辆或包括可移动传感器的其他计算机视觉系统中。如本文所描述的技术可以一起、单独或以任何适合的组合使用。
11.一些实施例涉及一种操作计算系统以生成环境的表示的方法。该方法包括:获得传感器捕获的信息,所述传感器捕获的信息包括第一数量的图像;提供所述环境的初始表示,所述初始表示包括至少部分地基于所述第一数量的图像的第二数量的平面特征的所述第一数量的初始姿势和初始参数;对于与包括所述平面特征的一个或多个观察的图像相对应的处于每个姿势的所述第二数量的平面特征中的每一个平面特征,计算指示所述平面特征的所述一个或多个观察的矩阵,并且将所述矩阵分解为两个或更多个矩阵,所述两个或更多个矩阵包括具有与所述矩阵相比简化行的一个矩阵;以及至少部分地基于具有简化行的所述矩阵,计算所述第二数量的平面特征的所述第一数量的细化姿势和细化参数。所述环境的所述表示包括所述第二数量的平面特征的所述第一数量的细化姿势和所述细化参数。
12.一些实施例涉及一种操作计算系统以生成环境的表示的方法。该方法包括:获得传感器捕获的信息,所述传感器捕获的信息包括第一数量的图像;提供所述环境的初始表示,所述初始表示包括至少部分地基于所述第一数量的图像的第二数量的平面特征的所述第一数量的初始姿势和初始参数;对于与包括所述平面特征的一个或多个观察的图像相对应的处于每个姿势的所述第二数量的平面特征中的每一个平面特征,计算具有第三数量的行的矩阵,所述第三数量小于所述平面特征的所述一个或多个观察的所述数量;以及至少部分地基于具有所述第三数量的行的所述矩阵,计算所述第二数量的平面特征的所述第一数量的细化姿势和细化参数。所述环境的所述表示包括所述第二数量的平面特征的所述第一数量的细化姿势和所述细化参数。
13.前述概述通过说明的方式提供并且不旨在进行限制。
附图说明
14.附图不旨在按比例绘制。在附图中,各图中所示的每个相同或几乎相同的部件由相同的数字表示。出于清晰的目的,并非每个部件可以在每个附图中标记。在附图中:
15.图1是示出根据一些实施例的简化增强现实(ar)场景的示例的示意图。
16.图2是根据一些实施例的示出了xr系统的示例性用例的示例性简化ar场景的示意图。
17.图3是示出根据一些实施例的被配置为向用户提供与物理世界交互的ar内容的体验的ar系统中的单个用户的数据流的示意图。
18.图4是示出根据一些实施例的为单个用户显示虚拟内容的示例性ar显示系统的示意图。
19.图5a是示出根据一些实施例的当用户在物理世界环境中移动时穿戴ar显示系统的用户渲染ar内容的示意图。
20.图5b是示出根据一些实施例的观看光学组件和伴随部件的示意图。
21.图6a是示出根据一些实施例的使用世界重建系统的ar系统的示意图。
22.图6b是示出根据一些实施例的维护联结型世界的模型的ar系统的部件的示意图。
23.图7是根据一些实施例的由通过遍历通过物理世界的路径的设备形成的跟踪图的示意图。
24.图8a是示出根据一些实施例的处于不同姿势各种平面的观察的示意图。
25.图8b是示出根据一些实施例的在计算包括在图8a的姿势处观察到的图8a的平面的环境的表示的细化姿势和平面参数时所涉及的几何实体的示意图。
26.图9是示出根据一些实施例的提供环境的表示的方法的流程图。
27.图10是示出根据一些实施例的基于传感器捕获的信息使用图9的方法来计算的环境的表示的一部分的示意图。
具体实施方式
28.本文描述了用于提供环境表示的方法和装置,例如在xr系统中,以及任何适合的计算机视觉和机器人应用。发明人已经认识到并理解潜在复杂环境的表示的方法和装置,诸如具有它们中的许多对象的房间,以及减少的时间和减少的计算成本和存储器使用。在一些实施例中,环境的准确表示可以通过计算技术提供,该计算技术减少调整3d环境的合成表示时处理的信息量,以减少根据随时间的多次观察构建合成表示时累积的误差。这些技术可应用于通过平面表示环境的系统中,该平面在通过组合在多个姿势处获取的环境的图像构建的环境的表示中检测。这样的技术可以基于约化矩阵和约化残差向量代替雅可比矩阵和原始残差向量。
29.可以在系统中使用计算负担较轻的处理和/或较低的存储器使用率,以提供具有较低延迟、较低功耗、较少发热、较轻重量或其他优点的3d环境的准确表示。xr系统是可以用这样的技术改进的系统的示例。利用低计算复杂度,例如,用于xr系统的用户设备可以通过在智能电话上编程来形成。
30.在一些实施例中,为了向多个用户提供逼真的xr体验,xr系统必须知道用户的物理环境,以便正确关联虚拟对象相对于真实对象的位置。xr系统可以构建环境的表示,其中可以显示虚拟对象。环境的表示可以根据用传感器收集的信息来创建,该传感器是xr系统的xr设备的一部分。xr设备可以是具有集成显示器和传感器的头戴式设备、手持式移动设备(例如,智能电话、智能手表、平板电脑设备等)或具有传感器的其他设备。然而,如本文所描述的技术可以使用在具有传感器的其他类型的设备上,诸如具有传感器的自主机器。这
样的设备可包括一种或多种类型的传感器,包括例如图像传感器、lidar相机、rgbd相机、红外相机、结构光传感器、超声传感器或相干光传感器。这些设备可包括有助于收集传感器信息的一个或多个部件,诸如红外发射器、超声发射器或结构光发射器。替代地或者附加地,这样的设备可包括有助于确定姿势的传感器,诸如陀螺仪传感器、加速度计、磁强计、高度表、接近传感器和gps传感器。
31.在一些实施例中,环境的表示可以是xr设备周围环境的本地地图,并且由xr设备通过集成来自在设备运行时收集的一个或多个图像的信息来创建。在一些实施例中,当设备首次启动扫描环境时(例如,开始新会话),本地地图的坐标系可以被绑定到设备的位置和/或取向。设备的位置和/或取向可能从会话到会话改变。
32.本地地图可包括稀疏信息,该稀疏信息基于在形成地图时使用的传感器捕获的信息中检测到的特征的子集来表示环境。附加地或替代地,本地地图可包括稠密信息,其用环境中的表面的信息(诸如网格)来表示环境。
33.地图中的特征的子集可包括一种或多种类型的特征。在一些实施例中,特征的子集可包括点特征,诸如可以基于视觉信息检测到的桌子角。在一些实施例中,系统可以替代地或附加地基于更高级别的特征形成3d环境的表示,诸如平面特征,诸如平面。例如,可以通过处理深度信息来检测平面。设备可以存储平面特征取代或者补充特征点,但是在一些实施例中,存储平面特征代替对应的点特征可以减少地图的大小。例如,平面可以被存储在用平面法线和到地图的坐标系的原点的符号距离表示的地图中。相反,相同的结构可能被存储为多个特征点。
34.除了潜在提供输入以创建地图之外,传感器捕获的信息还可用于跟踪设备在环境中的运动。跟踪可以使得xr系统能够通过估计相应设备相对于由地图建立的参考系的姿势来定位xr设备。定位xr设备可能需要进行比较,以找到从由xr设备捕获的图像中提取的一组测量结果与存储在现有地图中的一组特征之间的匹配。
35.地图的创建与设备的本地化之间的该相互依赖性构成了重大挑战。即使简化了在3d环境中使用平面表示表面,也可能需要大量的处理以准确地创建地图并同时定位设备。当设备在环境中移动时,必须快速完成处理。另一方面,xr设备可能具有有限的计算资源,使得设备可以在环境中以合理的速度以合理的灵活性移动。
36.该处理可包括联合优化用于形成检测到平面中的3d环境的地图中的平面特征参数和传感器姿势。用于联合优化平面特征参数和姿势的常规技术可能产生高计算成本和存储器消耗。由于传感器可以在不同姿势处记录平面特征的不同观察,因此根据常规方法的联合优化可能需要解决非常大的非线性最小二乘问题,即使对于小规模的工作空间也是如此。
37.如本文所使用的,“优化”(和类似术语)不需要产生完美或理论上最佳的解决方案。相反,优化可能由减少解决方案中的误差度量的处理引起。可以执行减少误差的处理,直到达到具有足够低误差的解决方案为止。这样的处理可以迭代执行,并且可以执行迭代,直到检测到指示足够低误差的退出标准为止。退出标准可以是处理已经收敛到解的指示,该解可以通过迭代到迭代的误差百分比检测到,该百分比低于阈值和/或可能是预定的迭代次数和/或指示已经标识具有低误差的解的其他标准。
38.本文描述了用于有效地图优化的技术,其中xr系统被用作可以用这些技术优化地
图的系统的示例。在一些实施例中,在从相应姿势获取的多个图像中的每一个图像中收集关于地图中的每个平面的信息。可以在捕获用于创建3d表示的图像处的每个姿势处做出每个平面的观察。指示平面的一个或多个观察的该信息可以被格式化为矩阵。在优化地图的常规方法中,该矩阵可能是雅可比矩阵,并且优化可以基于使用该雅可比矩阵执行的计算。
39.根据一些实施例,可以基于分解矩阵执行优化,该矩阵可能与如常规方法中使用的矩阵在数学上相关,但是其可以具有与矩阵相比较简化行。xr系统可以基于具有简化行的分解矩阵中的一个矩阵计算平面特征和细化姿势的细化参数,这减少了计算成本和存储器存储。可以计算平面特征和细化姿势的细化参数,以使得平面特征的观察从相应细化姿势到相应平面特征的投影误差被最小化。
40.如本文所描述的技术可以与多种类型的设备一起或单独使用并用于多种类型的环境,包括具有有限计算资源的可穿戴或便携式或自主设备。在一些实施例中,技术可以由形成xr系统的一部分的一个或多个服务器来实现。
41.示例性系统
42.图1和图2示出了具有结合物理世界的一部分显示的虚拟内容的场景。出于说明的目的,ar系统用作xr系统的示例。图3-图6b示出了示例性ar系统,包括一个或多个处理器、存储器、传感器和用户界面,它们可以根据本文所描述的技术进行操作。
43.参考图1,描绘了室外ar场景354,其中,ar技术的用户看到以背景中的人、树、建筑为特征的物理世界公园状的设置356以及混凝土平台358。除了这些项目之外,ar技术的用户还感知到他们“看到”了站在物理世界混凝土平台358上的机器人雕像357,以及飞行的卡通状的似乎是大黄蜂的化身的化身角色352,即使这些元素(例如,化身角色352和机器人雕像357)在物理世界中不存在。由于人类视觉感知和神经系统的极端复杂性,因此产生促进其他虚拟或物理世界影像元素中间的虚拟图像元素的舒适的、自然感觉的、丰富呈现的ar技术是具挑战性的。
44.这样的ar场景可以利用基于跟踪信息构建物理世界地图的系统来实现,该系统使得用户能够将ar内容放置在物理世界中,确定物理世界地图中放置ar内容的位置,保存ar场景,使得例如在不同的ar体验会话期间,放置的ar内容可以重新加载以在物理世界中显示,并且使得多个用户能够共享ar体验。系统可以构建和更新用户周围的物理世界表面的数字表示。该表示可用于渲染虚拟内容,以便看起来被在用户与虚拟内容的渲染位置之间物理对象完全或部分地遮挡,在基于物理的交互中放置虚拟对象,并且用于虚拟角色路径规划和导航,或用于使用关于物理世界的信息的其他操作。
45.图2描绘了根据一些实施例的示出了xr系统的示例性用例的室内ar场景400的另一示例。示例性场景400是客厅,它具有墙、墙一侧的书架、房间角落的落地灯、地板、沙发和地板上的咖啡桌。除了这些物理项目之外,ar技术的用户还感知虚拟对象,诸如沙发后面墙上的图像、飞过门的鸟、从书架上向外窥视的鹿以及以放在咖啡桌上的风车形式的装饰。
46.对于墙上的图像,ar技术需要关于不仅墙的表面而且房间中的对象和表面(诸如,灯形状)的信息,该信息将遮挡图像以正确渲染虚拟对象。对于飞鸟,ar技术需要关于房间周围所有对象和表面的信息,用于用逼真的物理现象渲染鸟以避免对象和表面或在鸟碰撞时从它们反弹。对于鹿,ar技术需要关于诸如地板或咖啡桌的表面的信息来计算将鹿放置何处。对于风车,系统可以标识与桌子分离的对象并且可以确定它是可移动的,而书架的角
或墙的角可以被确定为固定的。这样的区分可以使用在关于场景的哪些部分在各种操作中的每一个操作中使用或更新的确定中。
47.虚拟对象可以被放置在先前的ar体验会话中。当新ar体验会话在客厅中开始时,ar技术需要在先前放置的位置处准确显示虚拟对象并从不同的视点逼真可见。例如,风车应该被显示为站在书上,而不是在没有书的不同位置处在桌子上方漂移。如果新ar体验会话的用户的位置未准确定位在客厅中,则可能发生这样的漂移。作为另一示例,如果用户从与在放置风车时的视点不同的视点观看风车时,ar技术需要正显示风车的对应侧面。
48.场景可以经由包括多个部件的系统呈现给用户,包括可以刺激一个或多个用户感觉的用户界面,诸如视觉、声音和/或触摸。另外,系统可包括传感器,该一个或多个传感器可以测量场景的物理部分的参数,包括用户在场景的物理部分内的位置和/或运动。进一步地,系统可包括具有相关联的诸如存储器的计算机硬件的一个或多个计算设备。这些部件可以被集成到单个设备中或者可以跨多个互连设备分布。在一些实施例中,这些部件中的一些或全部可以被集成到可穿戴设备中。
49.图3描绘了根据一些实施例的被配置为提供ar内容与物理世界506交互的体验的ar系统502。ar系统502可包括显示器508。在所示的实施例中,显示器508可以由用户穿戴作为头戴设施的一部分,使得用户可以将显示器像护目镜或眼镜一样戴在眼睛上。显示器的至少一部分可以是透明的,使得用户可以观察到透视现实510。透视现实510可以对应于ar系统502的当前视点内的物理世界506的部分,在用户穿戴包含ar系统的显示器和传感器的头戴设施以获取关于物理世界的信息的情况下,该部分可以对应于用户的视点。
50.ar内容也可以被呈现在显示器508上,覆盖在透视现实510上。为了提供ar内容与显示器508上的透视现实510之间的准确交互,ar系统502可包括被配置为捕获关于物理世界506的信息的传感器522。
51.传感器522可包括输出深度图512的一个或多个深度传感器。每个深度图512可以具有多个像素,其中的每一个像素可以表示在相对于深度传感器的特定方向上到物理世界506中的表面的距离。原始深度数据可能来自深度传感器,以创建深度图。这样的深度图可以与深度传感器可以形成新图像一样快地被更新,这可以是每秒数百次或数千次。然而,该数据可能有噪声且不完整,并且在所示的深度图上已示出为黑色像素的孔。
52.传感器522可以包括其他传感器,诸如图像传感器。图像传感器可以获取诸如单目或立体信息的信息,该信息可以被处理来以其他方式表示物理世界。在一些实施例中,系统可包括其他传感器,诸如,以下各项中的一个或多个:lidar相机、rgbd相机、红外相机传感器、可见光谱相机传感器、结构光发射器和/或传感器、红外光发射器、相干光发射器和/或传感器、陀螺仪传感器、加速度计、磁强计、高度表、接近传感器、gps传感器、超声波发射器和探测器以及触觉界面。传感器数据可以在世界重建部件516中处理以创建网格,表示物理世界中的对象的连接部分。关于这样的对象的元数据,包括例如颜色和表面纹理,可以类似地用传感器获取,并且存储为世界重建的一部分。关于包括系统的设备的位置的元数据可以基于传感器数据来确定或推断。例如,磁强计、高度表、gps传感器等可用于确定或推断设备的位置。设备的位置可以具有不同程度的粒度。例如,设备的确定位置的精度可以从粗略(例如,精确到10米直径球体)、到精细(例如,精确到3米直径球体)、超精细(例如,精确到1米直径球体)、到超高精细(例如,精确到0.5米直径球体)等变化。
53.系统还可以获取关于用户相对于物理世界的头部姿势(或“姿势”)的信息。在一些实施例中,系统的头部姿势跟踪部件可用于实时计算头部姿势。头部姿势跟踪部件可以在具有六个自由度的坐标系中表示用户的头部姿势,包括例如在三个垂直轴上的平移(例如,向前/向后、向上/向下、向左/向右)和围绕三个垂直轴的旋转(例如,俯仰、偏航和滚动)。在一些实施例中,传感器522可包括可用于计算和/或确定头部姿势514的惯性测量单元。例如,针对深度图的头部姿势514可以指示以六个自由度捕获深度图的传感器的当前视点,但是头部姿势515可以用于其他目的,诸如使图像信息与物理世界的特定部分相关,或使穿戴在用户头部上的显示器的位置与物理世界相关。
54.在一些实施例中,头部姿势信息可以以除imu之外的其他方式导出,诸如从分析图像中的对象。例如,头部姿势跟踪部件可以基于由相机捕获的视觉信息和由imu捕获的惯性信息,计算ar设备与物理对象的相对位置和取向。然后,头部姿势跟踪部件可以例如通过将计算的ar设备的相对位置和取向与具有物理对象的特征的物理对象进行比较来计算ar设备的头部姿势。在一些实施例中,可以通过标识用传感器522中的一个或多个传感器捕获的图像中的特征来进行该比较,该比较随着时间的推移是稳定的,使得随着时间的推移捕获的图像中的这些特征的位置的变化可以与用户的头部姿势的变化相关联。
55.用于操作xr系统的技术可以提供用于更沉浸式的用户体验的xr场景。在这样的系统中,xr设备可以用计算资源的低使用率以1khz的频率估计头部姿势。例如,这样的设备可以被配置有以30hz操作的四个视频图形阵列(vga)相机、以1khz操作的一个惯性测量单元(imu)、单个高级risc机器核心的计算功率、小于1gb的存储器和小于100mbp的网络带宽。如本文所描述的技术可用于减少生成和维护地图和估计头部姿势所需的处理,以及以低计算开销提供和使用数据。xr系统可以基于匹配的视觉特征来计算其姿势。美国专利申请公开no.us 2019/0188474描述了混合跟踪并且通过引用将其整体并入本文。
56.在一些实施例中,当用户用ar设备在整个物理世界中移动时,ar设备可以从捕获的一系列图像帧中的连续图像中识别的特征点构造地图。虽然当用户移动时可以从不同的姿势取得每个图像帧,但是系统可以通过将连续图像帧的特征与先前捕获的图像帧匹配来调整每个连续图像帧的特征的取向,以匹配初始图像帧的取向。连续图像帧的平移,使得表示相同特征的点将与来自先前收集的图像帧中的对应特征点相匹配,可用于对齐每个连续图像帧,以匹配先前处理的图像帧的取向。所得地图中的帧可以具有当第一图像帧被添加到地图时建立的共同取向。该具有共同参考系中的特征点集的地图可用于通过将来自当前图像帧的特征与地图相匹配来确定在物理世界内的用户姿势。在一些实施例中,该地图可以被称为跟踪地图。
57.替代地或者附加地,可以通过基于图像信息标识平面或其他表面来构建用户周围3d环境的地图。这些表面从图像到图像的位置可以相互关联以创建表示。如本文所描述的,有效优化这样的地图的技术可用于形成该地图。这样的地图可用于相对于物理世界定位虚拟对象,或用于不同或附加功能。例如,基于窗格的3d表示可用于头部姿势跟踪。
58.除了使能跟踪在环境内的用户姿势之外,该地图可以使得系统的其他部件(诸如,世界重建部件516)能够确定物理对象相对于用户的位置。世界重建部件516可以从传感器接收深度图512和头部姿势514以及任何其他数据,并将该数据集成到重建518中。重建518可能比传感器数据更完整并且更少噪声。世界重建部件516可以使用来自多个视点的传感
器数据随时间的空间和时间平均来更新重建518。
59.重建518可包括一种或多种数据格式的物理世界的表示,包括例如体素、网格、平面等。不同的格式可以表示物理世界的相同部分的替代表示,或者可以表示物理世界的不同部分。在所示的示例中,在重建518的左侧,物理世界的部分被呈现为全局表面;在重建518的右侧,物理世界的部分被呈现为网格。
60.在一些实施例中,由头部姿势部件514维持的地图相对于物理世界中可能维护的其他地图可能是稀疏的。不是提供关于表面的位置和可能其他特性的位置,稀疏地图可以指示兴趣点和/或结构的位置,诸如角或边。在一些实施例中,地图可包括如由传感器522捕获的图像帧。这些帧可以被简化为特征,其可以表示兴趣点和/或结构。结合每个帧,关于从其获取帧的用户的姿势的信息也可以被存储为地图的一部分。在一些实施例中,由传感器获取的每个图像可以存储或可以不存储。在一些实施例中,系统可以处理图像,因为它们由传感器收集,并且选择图像帧的子集用于进一步计算。选择可能基于限制信息添加但确保地图包含有用信息的一个或多个标准。系统可以向地图添加新的图像帧,例如,基于与已添加到地图的先前图像帧的重叠,或基于包含被确定为可能表示静止对象的足够数量的特征的图像帧。在一些实施例中,选择的图像帧或来自选择的图像帧的特征组可以用作用于地图的关键帧,其可用于提供空间信息。
61.在一些实施例中,可以减少在构建地图时处理的数据量,诸如通过构建具有映射点和关键帧的集合的稀疏地图和/或将地图划分为块以使能逐块更新。映射点可以与环境中的感兴趣点相关联。关键帧可能包括从相机捕获的数据选择的信息。美国专利申请公开no.us 2020/0034624描述了确定和/或评估定位地图,并且特此通过引用将其全部内容并入本文。
62.ar系统502可以随时间从物理世界的多个视点集成传感器数据。传感器的姿势(例如,位置和取向)可以随着包括传感器的设备移动来跟踪。由于传感器的帧姿势是已知的并且它与其他姿势如何相关,因此物理世界的这些多个视点中的每一个视点可以被一起融合成物理世界的单个组合重建,其可以用作地图的抽象层并提供空间信息。通过使用空间和时间平均(即,随时间从多个视点平均数据)或任何其他适合的方法,重建可能比原始传感器数据更完整并且更小噪声。
63.在图3所示的实施例中,地图表示单个可穿戴设备的用户所在的物理世界的部分。在该场景中,与地图中的帧相关联的头部姿势可以被表示为局部头部姿势,表示会话开始时相对于用于单个设备的初始取向的取向。例如,当设备打开或以其他方式操作以扫描环境以构建该环境的表示时,可以相对于初始头部姿势跟踪头部姿势。
64.与表征物理世界的该部分的内容组合,地图可包括元数据。例如,元数据可以指示用于形成地图的传感器信息的捕获时间。元数据替代地或附加地可以指示传感器在捕获用于形成地图的信息时的位置。位置可以被直接表示,诸如用来自gps芯片的信息,或者被间接表示,诸如借助指示在正收集传感器数据时从一个或多个无线接入点接收的信号的强度的无线(例如,wi-fi)签名和/或借助在收集到传感器数据时用户设备连接到的无线接入点的标识符,诸如bssid。
65.重建518可用于ar功能,诸如为遮挡处理或基于物理的处理产生物理世界的表面表示。该表面表示可能随着用户移动或物理世界中的对象改变而改变。重建518的方面可以
例如由部件520使用,该部件520在世界坐标中产生变化的全局表面表示,该表示可以由其他部件使用。
66.ar内容可以基于该信息生成,诸如通过ar应用504。例如,ar应用504可以是游戏程序,该游戏程序基于关于物理世界的信息执行一个或多个功能,诸如视觉遮挡、基于物理的交互和环境推理。它可以通过查询来自由世界重建部件516产生的重建518的不同格式的数据来执行这些功能。在一些实施例中,部件520可以被配置为当物理世界的感兴趣区域中的表示改变时输出更新。例如,可以将该感兴趣区域设置为近似系统用户附近的物理世界的一部分,诸如用户视场内的部分,或者投射(预测/确定)到用户视场内。
67.ar应用504可以使用该信息生成和更新ar内容。ar内容的虚拟部分可以结合透视现实510呈现在显示器508上,从而创建逼真的用户体验。
68.在一些实施例中,可通过xr设备向用户提供ar体验,xr设备可以是可穿戴显示设备,它可以是系统的一部分,该系统可包括远程处理和/或远程数据存储,和/或在一些实施例中,由其他用户穿戴的其他可穿戴显示设备。为了说明的简单性,图4示出了包括单个可穿戴设备的系统580(在下文中被称为“系统580”)的示例。系统580包括头戴式显示设备562(在下文中被称为“显示设备562”),以及支持显示设备562的功能的各种机械和电子模块和系统。显示设备562可以被耦接到框架564,该框架564可由显示系统用户或观察者560(在下文中被称为“用户560”)穿戴并且被配置为将显示设备562定位在用户560的眼前。根据各种实施例,显示设备562可以是顺序显示器。显示设备562可以是单目或双目。在一些实施例中,显示设备562可以是图3中的显示器508的示例。
69.在一些实施例中,扬声器566被耦接到框架564并且邻近用户560的耳道定位。在一些实施例中,未示出的另一扬声器邻近用户560的另一耳道定位,以提供立体声/可塑形的声音控制。显示设备562诸如通过有线引线或无线连接568被可操作地耦接到本地数据处理模块570,该本地数据处理模块570可以以各种配置安装,诸如固定地附接到框架564、固定地附接到由用户穿戴的头盔或帽子上、嵌入耳机中、或以其他方式可拆卸地附接到用户560(例如,以背包式配置、以皮带耦合式配置)。
70.本地数据处理模块570可以包括处理器以及数字存储器,例如,非易失性存储器(例如,闪存),两者均可以用于协助数据的处理、缓存和存储。数据包括以下数据:(a)从传感器(其可以例如操作性地耦接到框架564)捕获或以其他方式附接到用户560,诸如图像捕获设备(诸如相机)、麦克风、惯性测量单元、加速度计、罗盘、gps单元、无线电设备、和/或陀螺仪;和/或(b)使用远程处理模块572和/或远程数据存储库574获取和/或处理的数据,可能地用于在这样的处理或者检索之后传送到显示设备562。
71.在一些实施例中,可穿戴设备可以与远程部件通信。本地数据处理模块570可以分别通过通信链路576、578(诸如经由有线或无线通信链路)操作性地耦接到远程处理模块572和远程数据存储库574,使得这些远程模块572、574被操作性地耦接到彼此并且可用作本地数据处理模块570的资源。在进一步的实施例中,取代或者补充远程数据存储库574,可穿戴设备可以访问基于云的远程数据存储库和/或服务器。在一些实施例中,上文所描述的头部姿势跟踪部件可以被至少部分地实现在本地数据处理模块570中。在一些实施例中,图3中的世界重建部件516可以至少部分地实现在本地数据处理模块570中。例如,本地数据处理模块570可以被配置为执行计算机可执行指令,以至少部分地基于数据的至少一部分生
成地图和/或物理世界表示。
72.在一些实施例中,处理可以跨本地和远程处理器分布。例如,本地处理可用于基于用该用户的设备上的传感器收集的传感器数据而在用户设备上构建地图(例如,跟踪地图)。这样的地图可以由该用户设备上的应用使用。此外,先前创建的地图(例如,规范地图)可能被存储在远程数据存储库574中。在适合的存储或持久地图可用的情况下,可以使用它取代或者补充在设备上本地创建的跟踪地图。在一些实施例中,跟踪地图可以被定位到所存储的地图,使得在跟踪地图和规范地图之间建立对应关系,跟踪地图可能相对于用户打开系统时可穿戴设备的位置取向,而规范地图可能相对于一个或多个持久特征取向。在一些实施例中,持久地图可能被加载到用户设备上,以允许用户设备渲染虚拟内容,而无需与扫描位置相关联的延迟,以根据扫描期间获取的传感器数据构建用户的全部环境的跟踪地图。在一些实施例中,用户设备可以访问远程持久地图(例如,存储在云上)而不需要在用户设备上下载持久地图。
73.在一些实施例中,空间信息可以从可穿戴设备传递到远程服务,诸如被配置为将设备本地化到云服务上维持的存储的地图的云服务。根据一个实施例,定位处理可以在云中发生,将设备位置与现有地图(诸如规范地图)相匹配,并返回将虚拟内容链接到可穿戴设备位置的转换。在这样的实施例中,系统可以避免将地图从远程资源传递到可穿戴设备。其他实施例可以被配置用于基于设备和基于云的本地化,例如,以启用其中网络连接不可用或者用户选择不启用基于云的本地化的功能。
74.替代地或者附加地,跟踪地图可以与先前存储的地图合并,以扩展或改进那些地图的质量。确定适合的先前创建的环境地图是否可用和/或将跟踪地图与一个或多个存储的环境地图合并的处理可以在本地数据处理模块570或远程处理模块572中完成。
75.在一些实施例中,本地数据处理模块570可包括被配置为分析和处理数据和/或图像信息的一个或多个处理器(例如,图形处理单元(gpu))。在一些实施例中,本地数据处理模块570可包括单个处理器(例如,单核或多核arm处理器),这将限制本地数据处理模型570的计算预算,但是使能更小型的设备。在一些实施例中,世界重建部件516可以使用小于单个高级risc机器(arm)核心的计算预算在非预定义空间上实时生成物理世界表示,使得可以访问单个arm核心的剩余计算预算以用于其他用途,诸如提取网格。
76.可以在系统的任何处理器中执行如本文所描述的优化3d环境地图的处理。然而,如本文所描述的优化所需的减少的计算和减少的存储器可以使得这样的操作能够在作为可穿戴设备的一部分的本地处理器上快速地并且以低延迟执行。
77.在一些实施例中,远程数据存储库574可以包括数字数据存储设施,该数字数据存储设施可以是通过互联网或“云”资源配置中的其他网络配置可用的。在一些实施例中,在本地数据处理模块570中存储所有数据被存储并且在本地数据处理模块570中执行所有计算,这允许来自远程模块的完全自主使用。在一些实施例中,在远程数据存储库中存储所有数据并且在远程数据存储库中执行所有或大部分计算,这允许更小的设备。例如,世界重建可以全部或部分存储在该存储库574中。
78.在远程存储数据并通过网络访问的实施例中,数据可以由增强现实系统的多个用户共享。例如,用户设备可以上传其跟踪地图以增大环境地图的数据库。在一些实施例中,跟踪地图上传发生在与可穿戴设备的用户会话结束时。在一些实施例中,跟踪地图上传可
以连续、半连续、间歇地、在预定义的时间处、在前一次上传的预定义时段之后或在由事件触发时发生。由任何用户设备上传的跟踪地图可用于扩展或改进先前存储的地图,无论是基于来自该用户设备还是任何其他用户设备的数据。同样,下载到用户设备的持久地图可能基于来自该用户设备或任何其他用户设备的数据。以这种方式,高质量环境地图可能容易可用于用户以改进其对ar系统的体验。
79.在进一步的实施例中,基于对远程资源(例如,在云中)执行的本地化,可以限制和/或避免持久地图下载。在这样的配置中,可穿戴设备或其他xr设备向云服务传递与姿势信息耦接的特征信息(例如,感测特征信息中表示的特征时的设备的定位信息)。云服务的一个或多个部件可以将特征信息与相应的存储的地图(例如,规范地图)相匹配,并在由xr设备维持的跟踪地图和规范地图的坐标系之间生成转换。使其跟踪地图相对于规范地图本地化的每个xr设备可以基于其自己的跟踪而准确地渲染相对于规范地图指定的位置的虚拟内容。
80.在一些实施例中,本地数据处理模块570被操作地耦接到电池582。在一些实施例中,电池582是可移除电源,诸如计数器电池。在其他实施例中,电池582是锂离子电池。在一些实施例中,电池582包括可由用户560在系统580的非操作时间期间充电的内部锂离子电池和可拆卸电池,使得用户560可以长时间操作系统580而不必束缚到电源以对锂离子电池进行充电,或不必关闭系统580以更换电池。
81.图5a示出了当用户530在物理世界环境532(在下文中被称为“环境532”)中移动时穿戴渲染ar内容的ar显示系统的用户530。由ar系统沿着用户的运动路径捕获的信息可以被处理成一个或多个跟踪地图。用户530将ar显示系统定位在位置534处,并且ar显示系统记录相对于位置534的联结型世界的环境信息(例如,物理世界中的真实对象的数字表示,其可以存储和更新物理世界中的真实对象的变化)。该信息可以与图像、特征、定向音频输入或其他期望数据组合存储为姿势。位置534被聚合为数据输入536,例如,作为跟踪地图的一部分,并至少联通世界模块538进行处理,该模块可以例如通过在图4的远程处理模块572上进行处理来实现。在一些实施例中,联结型世界模块538可包括头部姿势部件514和世界重建部件516,使得处理的信息可以组合渲染虚拟内容时使用的关于物理对象的其他信息指示物理世界中的对象的位置。
82.联结型世界538至少部分地确定ar内容540可以在何处并且如何放置在如从数据输入536确定的物理世界中。ar内容通过经由用户界面呈现物理世界和ar内容的表示而“放置”在物理世界中,其中渲染ar内容,就好像它与物理世界中的对象交互,并且呈现物理世界中的对象,就好像ar内容在适当时遮蔽了用户对这些对象的视图。在一些实施例中,ar内容可以通过从重建(例如,重建518)中适当选择固定元件542(例如,桌子)的部分来放置,以确定ar内容540的形状和位置。作为示例,固定元件可以是桌子,并且虚拟对象可以被定位为使得其看起来在该桌子上。在一些实施例中,ar内容可以被放置在视场544中的结构内,该视场544可以是当前视场或估计的未来视场。在一些实施例中,ar内容可以相对于物理世界的模型546(例如,网格)持久化。
83.如所描绘的,固定元件542用作用于物理世界内可能存储在联结型世界模块538中的任何固定元件的代理(例如,数字副本),使得用户530可以感知固定元件541上的内容,而系统在每次用户530看到固定元件时不必映射到该固定元件542。因此,固定元件542可以是
来自先前建模会话的网格模型,或者由单独的用户确定,但仍然由联结型世界模块538存储,用于由多个用户未来参考。因此,联结型世界模块538可以从先前映射的环境中识别环境532并显示ar内容,而无需用户530的设备映射环境532的全部或部分,从而节省计算过程和周期,并且避免任何渲染的ar内容的延迟。
84.物理世界的网格模型546可以由ar显示系统创建,并且用于交互和显示ar内容540的适当表面和度量可以由联结型世界模块538存储用于由用户530或其他用户未来检索,而无需完全或部分重新创建模型。在一些实施例中,数据输入536是诸如地理位置、用户标识和当前活动的输入,以向联结型世界模块538指示一个或多个固定元件中的哪个固定元件542可用,哪个ar内容540上次已经被放置在固定元件542中,以及是否显示该相同的内容(这样的ar内容是“持久”内容,而不管用户观察特定联结型世界模型)。
85.即使在对象被认为是固定的实施例中(例如,餐桌),联结型世界模块538也可以不时更新物理世界模型中的这些对象,以考虑物理世界的变化的可能性。固定对象的模型可能以非常低的频率被更新。物理世界中的其他对象可能在移动或否则不被认为是固定的(例如,厨房椅子)。为了渲染具有逼真感的ar场景,ar系统可能以比用于更新固定对象高的多的频率更新这些非固定对象的位置。为了使能准确跟踪物理世界中的所有对象,ar系统可以从多个传感器(包括一个或多个图像传感器)获取信息。
86.图5b是观察光学组件548和伴随部件的示意图。在一些实施例中,指向用户眼睛549的两个眼睛跟踪相机550检测用户眼睛548的度量,诸如眼睛形状、眼睑遮挡、瞳孔方向和用户眼睛549上的亮斑。
87.在一些实施例中,传感器中的一个可以是深度传感器551,诸如飞行时间传感器,向世界发射信号并且检测那些信号从附近对象的反射以确定到给定对象的距离。例如,由于那些对象的运动或者用户的姿势的改变,因此深度传感器可以快速确定对象是否已进入用户的视场。然而,关于用户的视场中的对象的位置的信息可以用其他传感器替代地或附加地收集。例如,深度信息可以从立体视觉图像传感器或全光传感器获得。
88.在一些实施例中,世界相机552记录大于外围的视图以绘制和/或以其他方式创建环境532的模型并检测可能影响ar内容的输入。在一些实施例中,世界相机552和/或相机553可以是灰度和/或彩色图像传感器,该传感器可以以固定的时间间隔输出灰度和/或彩色图像帧。相机553可以在特定时间处进一步捕获用户的视场内的物理世界图像。基于帧的图像传感器的像素可以重复采样,即使其值不变。世界相机552、相机553和深度传感器551中的每一个具有554、555和556的相应视场以从物理世界场景收集数据并记录物理世界场景,诸如图34a所描绘的物理世界环境532。
89.惯性测量单元557可以确定观察光学部件548的运动和取向。在一些实施例中,惯性测量单元557可以提供指示重力方向的输出。在一些实施例中,每个部件被操作性地耦接到至少一个其他部件。例如,深度传感器551被操作性地耦接到眼睛跟踪相机550作为对用户眼睛549看到的实际距离的测量调节的确认。
90.应当理解,观察光学部件548可包括图34b所示的部件中的一些部件,并且可包括取代或者补充所示部件的部件。例如,在一些实施例中,观察光学部件548可包括两个而不是四个世界相机552。替代地或者附加地,相机552和553不需要捕获其全视场的可见光图像。观察光学部件548可以包括其他类型的部件。在一些实施例中,观察光学部件548可包括
一个或多个动态视觉传感器(dvs),其像素可以对超过阈值的光强度的相对变化异步响应。
91.在一些实施例中,观察光学组件548可能不包括基于飞行时间信息的深度传感器551。例如,在一些实施例中,观察光学组件548可包括一个或多个全光相机,其像素可以捕获光强度和入射光的角度,从其可以确定深度信息。例如,全光相机可以包括覆盖有透射衍射掩模(tdm)的图像传感器。替代地或者附加地,全光相机可包括包含角度敏感像素和/或相位检测自动聚焦像素(pdaf)和/或微透镜阵列(mla)的图像传感器。取代或者补充深度传感器551,这样的传感器可以用作深度信息源。
92.还应当理解,图5b中的部件的配置作为示例提供。观察光学组件548可包括具有任何适合配置的部件,该配置可以被设置为向用户提供用于特定部件组的最大实际视场。例如,如果观察光学组件548具有一个世界相机552,则世界相机可能被放置在观察光学组件的中心区域而不是侧面。
93.来自观察光学组件548中的传感器的信息可以被耦接到系统中的处理器中的一个或多个处理器。处理器可以生成可以渲染的数据,以便使得用户感知与物理世界中的对象交互的虚拟内容。该渲染可以以任何适合的方式实现,包括生成描绘物理和虚拟对象的图像数据。在其他实施例中,可以通过调节用户观看物理世界的显示设备的不透明度在一个场景中描绘物理和虚拟内容。可以控制不透明度以创建虚拟对象的外观,并且还阻止用户看到物理世界中由虚拟对象遮挡的对象。在一些实施例中,图像数据可仅包括可修改的虚拟内容,使得当通过用户接口观察时,虚拟内容由用户感知为与物理世界逼真地交互(例如,剪辑内容以解释遮挡)。
94.显示内容以在特定位置处产生对象的印象的观察光学组件548上的位置可能取决于观察光学组件的物理特性。此外,用户头部相对于物理世界的姿势以及用户眼睛注视的方向可能影响观察光学部件内容上的特定位置处显示的内容将出现在物理世界中何处。如上文所描述的传感器可以收集该信息,和/或提供可根据其计算信息的信息,使得接收传感器输入的处理器可以计算对象应在观察光学组件548上何处渲染以为用户创建期望的外观。
95.无论内容如何被呈现给用户,可以使用物理世界的模型,使得可以正确计算可能受物理对象影响的虚拟对象的特性,包括虚拟对象的形状、位置、运动和可见性。在一些实施例中,模型可包括物理世界的重建,例如,重建518。
96.可以根据从用户的可穿戴设备上的传感器收集的数据创建该模型。尽管在一些实施例中,可以根据由多个用户收集的数据创建模型,该数据可以被聚合在远离所有用户的计算设备中(并且其可能“在云中”)。
97.模型可以由世界重建系统至少部分地创建,诸如,图6a中更详细描绘的图3的世界重建部件516。世界重建部件516可包括感知模块660,该感知模块660可以生成、更新和存储用于物理世界的一部分的表示。在一些实施例中,感知模块660可以将传感器的重建范围内的物理世界的部分表示为多个体素。每个体素可以对应于物理世界中预定体积的3d立方体,并且包括表面信息,指示由体素表示的体积中是否存在表面。体素可以被分配指示其对应的体积是否已确定为包括物理对象的表面、是否已确定为空或尚未用传感器测量的值,并且因此其值是未知的。应当理解,指示确定为空或未知的体素的值不需要显式存储,因为体素的值可以以任何适合的方式被存储在计算机存储器中,包括不存储用于确定为空或未
知的体素的信息。
98.除了生成用于持久化世界表示的信息之外,感知模块660还可以标识和输出ar系统用户周围区域中的变化的指示。这样的变化的指示可以触发对作为持久世界的一部分存储的体积数据的更新,或触发其他功能,诸如触发生成ar内容以更新ar内容的部件604。
99.在一些实施例中,感知模块660可以基于符号距离函数(sdf)模型标识变化。感知模块660可以被配置为接收传感器数据,诸如,深度图660a和头部姿势660b,并且然后将传感器数据融合到sdf模型660c中。深度图660a可以直接提供sdf信息,并且可以处理图像以得出sdf信息。sdf信息表示距用于捕获该信息的传感器的距离。由于那些传感器可以是可穿戴单元的一部分,因此sdf信息可以从可穿戴单元的角度以及因此从用户的角度来表示物理世界。头部姿势660b可以使得sdf信息能够与物理世界中的体素相关。
100.在一些实施例中,感知模块660可以生成、更新和存储用于感知范围内的物理世界的部分的表示。可以至少部分地基于传感器的重建范围确定感知范围,可以至少部分地基于传感器的观察范围的限制确定重建范围。作为具体示例,使用有源ir脉冲操作的有源深度传感器可以在一定距离范围内可靠地操作,从而创建传感器的观察范围,该观察范围可以从几厘米或几十厘米到几米。
101.世界重建部件516可包括可以与感知模块660相互作用的附加模块。在一些实施例中,基于由感知模块660获取的数据,持久化世界模块662可以接收用于物理世界的表示。持久化世界模块662还可以包括物理世界的各种格式的表示。例如,诸如体素的体积元数据662b以及网格662c和平面662d可以存储。在一些实施例中,可以保存其他信息,诸如深度图。
102.在一些实施例中,物理世界的表示,诸如图6a所示的表示,与稀疏地图相比,可以提供关于物理世界的相对稠密的信息,诸如基于如上文所描述的特征点的跟踪地图。
103.在一些实施例中,感知模块660可包括以各种格式生成用于物理世界的表示的模块,各种格式包括例如网格660d、平面和语义660e。可以跨本地和远程存储介质存储用于物理世界的表示。用于物理世界的表示可以取决于例如存储介质的位置在不同的坐标系中描述。例如,存储在设备中的物理世界的表示可以在设备本地的坐标系中描述。用于物理世界的表示可以具有存储在云中的配对物。云中的配对物可以在由xr系统中所有设备共享的坐标系中描述。
104.在一些实施例中,这些模块可以基于生成表示时一个或多个传感器的感知范围内的数据以及先前时间捕获的数据和持久化世界模块662中的信息来生成表示。在一些实施例中,这些部件可以对用深度传感器捕获的深度信息进行操作。然而,ar系统可包括视觉传感器,并且可通过分析单目或双目视觉信息来生成这样的表示。
105.在一些实施例中,这些模块可以在物理世界的区域上操作。当感知模块660检测到该子区域中的物理世界的变化时,那些模块可能被触发以更新物理世界的该子区域。例如,可以通过检测sdf模型660c中的新表面或其他标准来检测这样的变化,诸如改变表示子区域的足够数量的体素的值。
106.世界重建部件516可包括可以从感知模块660接收物理世界的表示的部件664。关于物理世界的信息可以根据例如来自应用的用户请求由这些部件提取。在一些实施例中,信息可能被推送到使用部件,诸如经由预标识的区域中的变化或感知范围内的物理世界表
示的变化的指示。部件664可包括例如游戏程序和执行用于视觉遮挡的处理、基于物理的交互和环境推理的其他部件。
107.响应于来自部件604的查询,感知模块660可以发送用于物理世界的一种或多种格式表示。例如,当部件664指示用途是用于视觉遮挡或基于物理的交互时,感知模块660可以发送表面的表示。当部件664指示用途是用于环境推理时,感知模块660可以发送物理世界的网格、平面和语义。
108.在一些实施例中,感知模块660可以包括格式化信息以提供部件664的部件。这样的部件的示例可以是光线投射部件660f。例如,使用部件(例如,部件664)可以根据特定视点查询关于物理世界的信息。光线投射部件660f可以从该视点内选择视场内的物理世界数据的一个或多个表示。
109.如应从前述描述理解,感知模块660或ar系统的另一部件可以处理数据以创建物理世界的部分的3d表示。要处理的数据可以通过以下各项来间化:至少部分基于相机平截头体和/或深度图像剔除3d重建体积的部分;提取并持久化平面数据;在保持相邻一致性时允许本地更新的块中捕获、持久化和更新3d重建数据;向生成这样的场景的应用提供遮挡数据,其中遮挡数据从一个或多个深度数据源的组合导出;和/或执行多级网格简化。重建可能包含不同复杂程度的数据,包括,例如,原始数据(诸如,实时深度数据)、融合体积数据(诸如,体素)和计算数据(诸如,网格)。
110.在一些实施例中,联结型世界模型的部件可以是分布式的,其中一些部分在xr设备上本地执行并且一些部分远程执行,诸如在网络连接的服务器上,或以其他方式在云中。本地xr设备和云之间的信息的处理和存储的分配可能影响xr系统的功能和用户体验。例如,通过将处理分配给云来减少本地设备上的处理可以使能更长的电池寿命并减少本地设备上生成的热量。但是,将太多处理分配给云可能产生导致不可接受的用户体验的不期望的延迟。
111.图6b描绘了根据一些实施例的被配置用于空间计算的分布式部件架构600。分布式部件架构600可包括联结型世界部件602(例如,图5a中的pw 538)、lumin os 604、api 606、sdk 608和应用610。lumin os 604可包括具有与xr设备兼容的自定义驱动程序的基于linux的内核。api 606可包括授予对xr设备的空间计算特征的xr应用(例如,应用610)访问权的应用编程界面。sdk 608可包括允许创建xr应用的软件开发工具包。
112.架构600中的一个或多个部件可以创建和维持联结型世界的模型。在该示例中,在本地设备上收集传感器数据。该传感器数据的处理可以部分地在xr设备上本地执行,并且部分地在云中执行。pw 538可包括至少部分地基于由多个用户穿戴的ar设备捕获的数据创建的环境地图。在ar体验的会话期间,单独ar设备(诸如上文结合图4所描述的可穿戴设备)可能创建跟踪地图,这是一种类型的地图。
113.在一些实施例中,设备可包括构造稀疏地图和稠密地图的部件。跟踪地图可以用作稀疏地图并且可包括扫描环境的ar设备的头部姿势,以及关于在每个头部姿势处在该环境内检测到的对象的信息。那些头部姿势可以针对每个设备本地保持。例如,当设备针对其会话打开时,每个设备上的头部姿势可以相对于初始头部姿势。因此,每个跟踪地图可能本地于创建它的设备,并且可能具有由其自己的本地坐标系定义的其自己的坐标系。然而,在一些实施例中,可以形成每个设备上的跟踪地图,使得其局部坐标系的一个坐标与如由其
传感器(诸如,惯性测量单元557)测量的重力的方向对齐。
114.稠密地图可包括表面信息,该表面信息可以由网格或深度信息表示。替代地或者附加地,稠密地图可包括从表面或深度信息导出的更高级别的信息,诸如平面和/或其他对象的位置和/或特性。
115.在一些实施例中,稠密地图的创建可能独立于稀疏地图的创建。例如,可以在ar系统内的单独处理管线中执行稠密地图和稀疏地图的创建。例如,分离处理可以使能以不同的速率执行生成或处理不同类型的地图。例如,稀疏地图可以以比稠密地图更快的速率刷新。然而,在一些实施例中,稠密地图和稀疏地图的处理可能相关,即使在不同的管线中执行。例如,稀疏地图中揭示的物理世界的变化可能触发稠密地图的更新,反之亦然。进一步地,即使独立创建,地图也可能一起使用。例如,从稀疏地图导出的坐标系可用于定义对象在稠密地图中的位置和/或取向。
116.稀疏地图和/或稠密地图可以被持久化用于由同一设备重新使用和/或与其他设备共享。这样的持久性可以通过将信息存储在云中来实现。ar设备可以将跟踪地图发送到云,以例如与从先前存储在云中的持久地图中选择的环境地图合并。在一些实施例中,可以将所选择的持久地图从云发送到ar设备用于合并。在一些实施例中,持久地图可以相对于一个或多个持久坐标系取向。这样的地图可以用作规范地图,因为它们可以由多个设备中的任一个使用。在一些实施例中,联结型世界的模型可以包括一个或多个规范地图或由一个或多个规范地图创建。设备,即使它们基于设备本地的坐标系执行一些操作,仍然可以通过确定它们的设备本地的坐标系与规范地图之间的变换来使用规范地图。
117.规范地图可以起源为跟踪地图(tm)(例如,图31a中的tm 1102),其可以被提升为规范地图。规范地图可以被持久化,使得在一旦确定了访问规范地图的设备的本地坐标系和规范地图的坐标系之间的变换,则访问规范地图的设备可以使用规范地图中的信息来确定设备周围的物理世界中的规范地图中表示的对象的位置。在一些实施例中,tm可以是由xr设备创建的头部姿势稀疏地图。在一些实施例中,当xr设备向云服务器发送一个或多个tm用于与由xr设备在不同时间或由其他xr设备捕获的附加tm合并时,可以创建规范地图。
118.在其中在本地设备上形成跟踪地图且本地坐标系的一个坐标与重力对齐的实施例中,可以在创建规范地图时保留该相对于重力的取向。例如,当提交用于合并的跟踪地图不与任何先前存储的地图重叠时,可以将该跟踪地图提升为规范地图。也可能具有相对于重力的取向的其他跟踪地图随后可以与该规范地图合并。可以进行合并,以确保产生的规范地图保持其相对于重力的取向。例如,如果与重力对齐的每个地图的坐标没有以足够紧密的容差相互对齐,则可能不会合并两个地图,无论这些地图中的特征点的对应关系如何。
119.规范地图、或其他地图可以提供关于由被处理以创建相应地图的数据所表示的物理世界的部分的信息。图7描绘了根据一些实施例的示例性跟踪地图700。跟踪地图700可以提供由点702表示的对应物理世界中的物理对象的平面图706。在一些实施例中,地图点702可以表示可能包括多个特征的物理对象的特征。例如,桌子的每个角可以是由地图上的点表示的特征。特征可以从处理图像导出,诸如可以用增强现实系统中的可穿戴设备的传感器获取。例如,可以通过处理由传感器输出的图像帧来导出特征,以基于图像中的大梯度或其他适合的标准来标识特征。进一步的处理可能限制每个帧中的特征的数量。例如,处理可以选择可能表示持久对象的特征。可以对该选择应用一个或多个启发式。
120.跟踪地图700可包括由设备收集的关于点702的数据。对于具有包括在跟踪地图中的数据点的每个图像帧,可以存储姿势。姿势可以表示从其捕获图像帧的取向,使得每个图像帧内的特征点可以空间相关。姿势可以通过定位信息来确定,诸如可以从可穿戴设备上的传感器(诸如imu传感器)导出。替代地或者附加地,可以根据将图像帧与描绘物理世界的重叠部分的其他图像帧相匹配来确定姿势。通过找到可以通过匹配两个帧中的特征点的子集而完成的这样的位置相关性,可以计算两个帧之间的相对姿势。相对姿势可以适合于跟踪地图,因为当启动跟踪地图的构造时,地图可能相对于基于设备的初始姿势建立的设备本地的坐标系。
121.并非由设备收集的所有特征点和图像帧均可以作为跟踪地图的一部分保留,因为用传感器收集的许多信息可能是冗余的。相反,仅可以将某些帧添加到地图。那些帧可以基于一个或多个标准来选择,一个或多个标准包括诸如与已经在地图中的图像帧的重叠程度,它们包含的新特征的数量或用于帧中的特征的质量度量。未添加到跟踪地图的图像帧可能被丢弃或可用于修改特征的位置。作为进一步的替代方案,可以保留表示为一组特征的所有或大部分图像帧,但是可以将那些帧的子集指定为用于进一步处理的关键帧。
122.可以对关键帧进行处理以产生关键特征(keyrig)704。可以处理关键帧以产生三维特征点集并且保存为关键特征704。例如,这样的处理可能需要比较同时从两个相机导出的图像帧,以立体地确定特征点的3d位置。元数据可以与这些关键帧和/或关键特征,诸如姿势,相关联。
123.环境地图可以具有多种格式中的任何一种,这取决于例如环境地图的存储位置,包括例如ar设备的本地存储和远程存储。例如,远程存储中的地图可以具有比存储器有限的可穿戴设备上的本地存储中的地图更高的分辨率。为了将更高分辨率地图从远程存储发送到本地存储,可以对地图进行下采样或以其他方式转换为适当的格式,诸如通过减少地图中存储的物理世界每个区域的姿势数和/或为每个姿势存储的特征点数。在一些实施例中,来自远程存储的高分辨率地图的切片或部分可以被发送到本地存储,其中,该切片或部分未被下采样。
124.当创建新的跟踪地图时,可以更新环境地图的数据库。为了确定数据库中可能非常多的环境地图中的哪一个环境将被更新,更新可包括有效地选择存储在与新跟踪地图相关的数据库中的一个或多个环境地图。所选择的一个或多个环境地图可以按相关性排名并且可以选择最高排名地图中的一个或多个用于处理,以将较高排名的所选择的环境地图与新的跟踪地图合并以创建一个或多个更新的环境地图。当新的跟踪地图表示不存在要更新的预先存在的环境地图的物理世界的一部分时,该跟踪地图可以被存储在数据库中作为新的环境地图。
125.用于有效处理具有平面的地图的技术
126.图7示出了基于特征点的地图。一些系统可以基于识别的表面(诸如,平面)而不是单个点创建地图。在一些实施例中,不是包含地图点702,地图可包含平面。例如,这样的地图可能包含表示桌面的平面,而不是表示桌子的角的特征点和表面上的可能点的集合。
127.创建/更新这样的地图的处理可包括计算从各种姿势获取的图像中的平面的特征(诸如,位置和取向)。然而,姿势的确定可能取决于先前检测到的平面的估计的特征。因此,创建和更新地图可能需要联合优化描述平面和传感器姿势的估计的特征,从其中捕获用于
估计平面的特征的图像。联合优化可以被称为平面束调整。
128.发明人已经认识并理解到适用于具有一个或多个平面特征的地图的平面束调整的常规方法可能导致大规模非线性最小二乘问题,这导致高计算成本和存储器消耗。与通常对由特征点表示的地图执行的束调整不同,其中传感器的一个记录可以产生对点特征的单个观察,平面特征可以是无限远对象,并且来自传感器的一个图像可以提供对平面特征的多个观察。平面特征的每个观察可以对平面特征的平面参数和姿势的姿势参数进行约束,即使对于小的工作场所,也导致大规模非线性最小二乘问题。
129.发明人已经认识并理解到减少计算成本和存储器使用的平面束调整。图8a是示出根据一些实施例的处于不同姿势的各种平面的观察的示意图。在所示示例中,存在m个平面和n个传感器姿势。将第i个姿势的旋转和平移表示为ri∈so3和ti∈r3。假设第j个平面具有参数作为πj=[nj;dj],其中,n是具有||n||2=1的平面法线,并且d是从坐标系原点到该平面的负距离。第i个姿势处的第j个平面的测量结果是如下定义的一组k
ij
个点:
[0130][0131]
每个p
ijk
∈p
ij
对第i个姿势和第j个平面上提供了进行约束,其如图8b所示。残差δ
ijk
是从p
ijk
到平面πj的符号距离,其可以被写成:
[0132]
δ
ijk
=nj·
(rip
ijk
+ti)+djꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)
[0133]
与ti不同,旋转ri和平面参数πj具有额外约束。例如,ri可以通过四元数、角度轴或euler角度参数化。平面参数πj可以由齐次坐标、最近点参数化或基于四元数的最小参数化表示。不管特殊的参数化如何,该示例定义了θi→
r(θi)和ωj→
π(ωj)以呈现用于旋转和平面参数的任意参数化。θi和ti与传感器姿势相关,其可以被组合为ρi=[θi;ti]。ρi可以具有相对于旋转矩阵的参数化改变的6或7个未知数(7用于四元数,并且6用于旋转的最小表示,诸如角度轴参数化)。ωj可以具有3或4个未知数(3用于平面的最小表示,并且4用于平面的齐次坐标)。使用这些符号,残差δ
ijk
是ρi和ωj的函数。
[0134]
平面束调整可能是通过最小化以下非线性最小二乘问题联合细化所有ρi(i≠1)和ωj的问题:
[0135][0136]
此处,在优化期间固定第一姿势ρ1以刚性地锚定坐标系。
[0137]
可以计算平面束调整的雅可比矩阵,并且可以提供给求解最小二乘问题的算法(例如,levenberg-marquardt(lm)算法和gaussian-newton算法)。第i个姿势处的第j个平面的观测是点集p
ij
。可以从点集p
ij
导出雅可比矩阵j
ij
。雅可比矩阵j可以是所有j
ij
的堆叠。假设在p
ij
中存在k
ij
个点。j
ij
(i≠1)具有如下形式:
[0138][0139]
δ
ijk
、和的偏导数可以基于(7)中的残差δ
ijk
的形式来计算。它可以如下定义:
[0140][0141]
应注意,上文定义的ri的元素是θi的函数,并且dj和nj的元素是ωj的函数。p
ijk
可以表示第i个姿势处的第j个平面的第k个测量结果。x
jik
、y
ijk
和z
ijk
可以表示p
ijk
在坐标系中的位置,该坐标系可以是传感器坐标系、设备坐标系或规范坐标系。残差δ
ijk
可以通过将(10)代入(7)并扩展它来计算。这产生:
[0142][0143]
(11)可以被写成:
[0144]
δ
ijk
=c
ijk
·vij

ꢀꢀꢀꢀꢀꢀꢀ
(12)
[0145]
其中,c
ijk
和v
ij
是如下13维向量:
[0146]cijk
=[x
ijk
,y
ijk
,z
ijk
,x
ijk
,y
ijk
,z
ijk
,x
ijk
,y
ijk
,z
ijk
,1,1,1,1]
t

[0147][0148]cijk
中的元素来自观察p
ijk
或1,其是常数。另一方面,v
ij
中的元素是ρi和ωj的函数。
[0149]
δ
ijk
的偏导数可以通过假设ρi具有n
ρ
个未知数和ωj具有n
ω
个未知数来计算。它可以被定义为:
[0150][0151]
假设ζ
ijd
是ζ
ij
的第d个元素。根据(12),δ
ijk
相对于ζ
ijd
的偏导数具有如下形式:
[0152][0153]
其中,是13维向量,其元素是v
ij
的元素相对于ξ
ijd
的偏导数。根据(15),具有如下形式:
[0154][0155]vρi
可以是13
×
6或13
×
7矩阵(13
×
7用于四元数,并且13
×
6用于旋转矩阵的最小表示)。类似地,具有如下形式:
[0156][0157]vωj
可以是13
×
3或13
×
4矩阵(13
×
3用于平面的最小表示,并且13
×
4用于平面的齐次坐标)。
[0158]
雅可比矩阵j
ij
可以基于以下内容计算:
[0159][0160]
其中,第k行c
ijk
在(13)中被定义。c
ij
是大小k
ij
×
13的矩阵。雅可比矩阵j
ij
可以通过将(16)和(17)代入(9)并使用(18)中的c
ij
的定义计算。这产生如下结果:
[0161][0162]
假设p
1j
是来自处于第一姿势ρ1的第j个平面ωj的测量结果。由于在优化期间ρ1可能是固定的,因此从p
1j
导出的雅可比矩阵j
1j
可以具有如下形式:
[0163][0164]cij
可以被改写成如下形式:
[0165]cij
=q
ijmij

ꢀꢀꢀꢀꢀꢀ
(21)其中,m
ij
具有大小4
×
13并且q
tijqij
=i4,其中,i4是4
×
4单位矩阵。如(13)中c
ijk
的定义所示,x
ijk
、y
ijk
、z
ijk
和1被复制数次以形成c
ijk
。因此,在c
ij
的13列中仅存在4个单独的列,其,包含常数1和p
ij
内的点的x、y、z坐标。它被表示为:
[0166][0167]cij
中的13列是e
ij
中的4列的副本。e
ij
可以被分解为:
[0168]eij
=q
ijuij
ꢀꢀꢀꢀꢀꢀꢀ
(23)其中,q
tijqij
=i4,并且u
ij
是上三角矩阵。q
ij
具有大小k
ij
×
4,并且u
ij
具有大小4
×
4。可以使用细qr分解,因为点k
ij
的数量通常远大于4。
[0169]
细qr分解可以减少计算时间。u
ij
可以按其列被划分为:
[0170][0171]
将(24)代入(22)产生如下结果:
[0172][0173]
比较(22)和(23)产生如下结果:
[0174][0175][0176]
由于c
ij
的列是e
ij
的列的副本,根据(13)中的c
ijk
的形式和(22)中的e
ij
的定义,c
ij
可以被写成:
[0177]cij
=[x
ij
,y
ij
,z
ij
,x
ij
,y
ij
,z
ij
,x
ij
,y
ij
,z
ij
,1,1,1,1]
ꢀꢀꢀꢀꢀ
(27)
[0178]
将(26)代入(27)产生如下结果:
[0179][0180]cij
的因式分解可用于显著降低计算成本。尽管示例中描述了细qr分解,但是可以使用其他分解方法,包括例如奇异值分解(svd)。
[0181]
可以基于c
ij
计算j
ij
的降阶雅可比矩阵j
rij
,c
ij
可以被分解为c
ij
=q
ijmij
,如上文所描述的。
[0182][0183]
降阶雅可比矩阵j
rij
具有比雅可比矩阵j
ij
更少的行,因为m
ij
是比c
ij
小得多的矩阵。c
ij
具有大小k
ij
×
13。相反,m
ij
具有大小4
×
13。通常,k
ij
远大于4。
[0184]jij
和j
rij
可以被叠加以形成用于成本函数(8)的如下所示的雅可比矩阵j和降阶雅可比矩阵jr:
[0185][0186]
在求解最小二乘问题的算法中,jr可以代替j来计算j
t j。对于平面束调整,j
t j=j
rt jr。j和jr是依据如(30)中定义的j
ij
和j
rij
的块向量。根据块矩阵乘法:
[0187][0188]
对于i≠1,使用(19)中的表达式,j
tijjij
具有如下形式:
[0189][0190]
类似地,使用(29)中的表达式,j
rijtjrij
具有如下形式:
[0191][0192]
将(21)代入并且使用事实q
tijqij
=i4,
[0193][0194]
类似地,
[0195][0196][0197][0198]
对于i=1,根据(20),针对j
t1jj1j
的仅有非零项是v
tωj c
t1jc1jvωj
。另一方面,根据(29),j
r1jt j
r1j
仅具有一个对应的非零项v
tωj c
t1jc1jvωj
。类似于(34)中的推导,我们得到:
[0199][0200]
总之,使用(34)、(35)和(36),j
tijjij
=j
rijt j
rij
。根据(31),因此j
t j=j
rt jr。
[0201]
p
ij
中的k
ij
个点的残差向量可以被定义为根据(12),δ
ij
可以被写成:
[0202]
δ
ij
=c
ijvij
.
ꢀꢀꢀꢀ
(37)
[0203]
δ
ij
的约化残差向量δ
rij
可以被定义为:
[0204][0205]
叠加所有δ
ij
和δ
rij
,残差向量δ和约化残差向量δr具有如下形式:
[0206][0207]
约化残差向量δr可以代替求解最小二乘问题的算法中的残差向量δ。对于平面束调整,j
t
δ=j
rt
δr。j、jr、δ和δr分别是具有如(30)和(39)中定义的元素j
ij
、j
rij
、δ
ij
和δ
rij
的块
向量。应用块矩阵乘法:
[0208][0209]
对于i≠1,使用(19)中的j
ij
和(29)中的j
rij
的表示,以及(37)中的δ
ij
和(38)中的δ
rij
的表达式,j
tij
δ
ij
和j
rijt
δ
rij
具有如下形式:
[0210][0211]
将(21)代入并且使用事实q
tijqij
=i4,
[0212][0213]
类似地,
[0214][0215]
对于i=1,将(20)和(37)代入j
t1j
δ
1j
并应用块矩阵乘法,j
t1j
δ
1j
的仅有非零项是v
tω1jct1jc1jv1j
。另一方面,将(29)和(38)代入j
r1jt
δ
r1j
,j
r1jt
δ
r1j
仅具有一个非零项v
tω1jmt1jm1j
v1j。类似于(42)中的推导,
[0216][0217]
总之,根据(42)、(43)和(44),j
tij
δ
ij
=j
rijt
δ
ij
。根据(40),j
t
δ=j
rt
δ。
[0218]
应当理解,在一些实施例中,使用降阶雅可比矩阵的系统可以根据传感器数据或其他信息来计算降阶雅可比矩阵,而不形成雅可比矩阵或重复计算以实现本文所描述的约化矩阵的形式。
[0219]
对于平面束调整,降阶雅可比矩阵jr和约化残差向量δr可以代替(4)中的j和δ来计算求解最小二乘问题的算法中的步长,并且jr和δr中的每个块j
rij
和δ
ij
r具有4行。求解最小二乘问题的算法使用(4)来计算每次迭代的步长。由于j
t j=j
rt jr,j
t
δ=j
rt
δ,(j
rt jr+λi)ξ=j
rt
δ等于(j
t
j+λi)ξ=j
t
δ。因此,jr和δr可以代替j和δ用于计算求解最小二乘问题的算法中的步长。根据(29)中的j
rij
和(38)中的δ
rij
的定义,j
rij
和δ
rij
的行数与m
ij
的行数相同,m
ij
具有4行。因此,jr和δr具有4行。因此,无论多少点在p
ij
中,约化j
rij
和δ
rij
具有最多4行。这显著地减少了求解最小二乘问题的算法的计算成本。此处附加成本是计算c
ij
=q
ijmij
。由于cij
在迭代期间保持恒定,因此在迭代之前仅对它进行一次计算。
[0220]
在一些实施例中,平面束调整可以获得n个姿势和m个平面参数的初始预测,以及测量结果{p
ij
}。平面束调整可以针对每个p
ijk
∈p
ij
计算矩阵块c
ijk
,并且将矩阵块堆叠到c
ij
作为(16)。平面束调整可以将c
ij
分解为正交矩阵q
ij
和上三角矩阵m
ij
作为(19)。上三角矩阵m
ij
可以被提供给求解最小二乘问题的算法(例如,levenberg-marquardt(lm)算法和gaussian-newton算法)以计算(27)中的降阶雅可比矩阵块j
rij
和(36)中的约化残差块δ
rij
,这些块可以被堆叠以形成降阶雅可比矩阵jr作为(28)和约化残差向量δr作为(37)。求解最小二乘问题的算法可以计算细化姿势和平面参数直到收敛。
[0221]
在一些实施例中,平面特征可以在3d重建中与诸如点特征的其他特征组合。在从多个特征导出的组合成本函数中,来自平面成本的雅可比矩阵具有如(28)中的j的形式,并且残差向量也具有如(37)中的δ的形式。因此,在具有混合特征的束调整中,(28)中的降阶雅可比矩阵jr和(37)中的约化残差向量δ可以代替雅可比矩阵和原始残差向量。
[0222]
环境的表示可以用平面束调整来计算。图9是示出根据一些实施例的提供环境的表示的方法900的流程图。图10是示出根据一些实施例的基于传感器捕获的信息使用方法900计算的环境的表示的一部分1000的示意图。
[0223]
方法900可以通过获得(动作902)由处于相应姿势的一个或多个传感器捕获的信息开始。在一些实施例中,获得的信息可以是视觉图像和/或深度图像。在一些实施例中,图像可以是多个图像的组合的关键帧。图10的示例示出了三个传感器:传感器0、传感器1和传感器2。在一些实施例中,传感器可能属于一个设备,该设备可能具有原点o的设备坐标系。设备坐标系可以表示在设备首次启动扫描用于该会话的环境时的位置和取向。每个传感器可以具有对应的传感器坐标系。每个传感器可以捕获处于相应姿势ρ
i-1
、ρi和ρ
i+1
的一个或多个图像,诸如图像1002a、1002b、1002c。在一些实施例中,具有原点o的坐标系可以表示由一个或多个设备共享的坐标系。例如,传感器可能属于共享坐标系的三个设备。
[0224]
方法900可包括提供(动作904)环境的第一表示。第一表示可包括用于从传感器捕获的信息提取的特征的特征参数的初始预测和对应姿势的初始预测。在图10的示例中,在图像1002a和图像1002b中观察到第一平面1004。第一平面1004可以由平面参数πj=[nj;dj]表示。图像1002a和图像1002b分别观察平面1004中的多个点p
(i-1)j
和p
ij
。第一平面1004的部分可以通过图像1002a和1002b观察。第一平面1004的部分可以仅通过图像1002a或仅通过图像1002b观察。在图像1002b和图像1002c中观察到第二平面1006。第二平面1006可以由平面参数π
j+1
=[n
(j+1)
;d
(j+1)
]表示。图像1002b和图像1002c分别观察平面1006中的多个点p
i(j+1)
和p
(i+1)j
。第二平面1006的部分可以仅通过图像1002b和图像1002c观察。第二平面1006的部分可以仅通过图像1002b或仅通过图像1002c观察。图像1002b和图像1002c也观察到点特征1008。第一表示可包括用于姿势ρ
i-1
、ρi和ρ
i+1
的初始预测、用于第一平面1004和第二平面1006的平面参数、以及用于点特征1008的点特征参数。
[0225]
初始预测可以基于首先观察到特征的图像。对于图10的示例,姿势ρ
i-1
和用于第一平面1004的平面参数的初始预测可以基于图像1002a。姿势ρi、用于第二平面1006的平面参数和用于点特征1008的特征参数的初始预测可以基于图像1002b。姿势ρ
i+1
的初始预测可以基于图像1002c。
[0226]
随着特征由后续图像观察,可以对初始预测进行细化,以减少漂移并改进呈现的
质量。方法900可包括动作906和动作908以计算细化姿势和细化特征参数,其可包括细化平面参数和细化点特征参数。可以针对处于对应姿势的平面中的每一个执行动作906。在图10的示例中,分别针对处于姿势ρ
i-1
和ρi的第一平面1004执行动作906。也分别针对处于姿势ρi和ρ
i+1
的第二平面1006执行动作906。动作906可包括计算(动作906a)矩阵(例如,c
ij
作为(16)),该矩阵指示处于相应姿势(例如,姿势i)的相应平面(例如,平面j)。动作906可包括将矩阵分解(动作906b)为两个或更多个矩阵,该矩阵包括具有与矩阵相比简化行的一个矩阵(例如,上三角矩阵m
ij
作为(19))。
[0227]
方法900可包括提供(动作910)具有细化姿势和细化特征参数的环境的第二表示。方法900可包括确定(动作912)是否观察到新信息,使得应重复动作902至910。
[0228]
因此,描述了一些实施例的若干方面,应理解到,进行各种变更、修改和改进对本领域技术人员来说是很容易的。
[0229]
作为一个示例,结合增强(ar)环境描述实施例。应当理解,本文所描述的一些或所有技术可以应用在mr环境中,或者更一般地应用在其他xr环境中、在vr环境中以及在任何其他计算机视觉和机器人应用中。
[0230]
作为另一示例,结合诸如可穿戴设备的设备来描述实施例。应当理解,本文所描述的一些或所有技术可以经由网络(诸如云)、离散应用和/或设备、网络和离散应用的任何适合的组合来实现。
[0231]
这样的变更、修改和改进旨在是本公开的一部分,并且旨在位于本公开的精神和范围内。进一步地,尽管指示了本公开的优点,但是应当理解,并非本公开的每个实施例将包括每个所描述的优点。一些实施例可能未实现本文和在一些实例中描述为优势的任何特征。因此,前述描述和附图仅以示例的方式。
[0232]
本公开的上文所描述的实施例可以以多种方式中的任何一种实现。例如,实施例可以使用硬件、软件或其组合来实现。当在软件中实现时,软件代码可以在任何适合的处理器或处理器的集合上执行,无论是在单个计算机中提供还是在多个计算机之间分布。这样的处理器可以被实现为集成电路,其中集成电路部件中的一个或多个处理器,包括名义上本领域已知的可商购的集成电路部件,诸如cpu芯片、gpu芯片、微处理器、微控制器或协处理器。在一些实施例中,处理器可以在自定义电路(诸如asic)中实现,或在由配置可编程逻辑设备产生的半自定义电路中实现。作为又一个替代方案,处理器可以是更大电路或半导体器件的一部分,无论是可商购、半自定义还是自定义。作为具体示例,一些可商购的微处理器具有多个核心,使得那些核心中的一个或子集可以构成处理器。但是,处理器可以使用任何适合格式的电路来实现。
[0233]
进一步地,应当理解,计算机可以以多种形式中的任何一种实现,诸如机架式计算机、台式计算机、膝上型计算机或平板计算机。此外,计算机可以嵌入通常不被视为计算机但具有适合处理能力的设备中,包括个人数字助理(pda)、智能电话或任何其他适合的便携式或固定电子设备。
[0234]
而且,计算机可以具有一个或多个输入和输出设备。除了其他方面,这些设备可用于呈现用户界面。可用于提供用户界面的输出设备的示例包括用于输出的视觉呈现的打印机或显示屏,以及用于输出的听觉呈现的扬声器或其他声音生成设备。可用于用户界面的输入设备的示例包括键盘,以及指点设备,诸如鼠标、触摸板和数字化平板电脑。作为另一
示例,计算机可以通过语音识别或以其他音频格式接收输入信息。在所示的实施例中,输入/输出设备被示出为与计算设备物理分离。然而,在一些实施例中,输入和/或输出设备可以被物理集成到与计算设备的处理器或其他元件相同的单元中。例如,键盘可以被实现为触摸屏上的软键盘。在一些实施例中,输入/输出设备可以与计算设备完全断开,并通过无线连接在功能上集成。
[0235]
这样的计算机可以以任何适合的形式通过一个或多个网络互连,该一个或多个网络包括作为局域网或广域网,诸如企业网络或互联网。这样的网络可以基于任何适合的技术并且可以根据任何适合的协议操作并且可包括无线网络、有线网络或光纤网络。
[0236]
而且,本文概述的各种方法或过程可以编码为可在采用各种操作系统或平台中的任何一种的一个或多个处理器上执行的软件。此外,这样的软件可以使用许多适合的编程语言和/或编程或脚本工具中的任何一种来编写,并且也可以被编译为在框架或虚拟机上执行的可执行机器语言代码或中间代码。
[0237]
在该方面中,本公开可以被实现为编码有一个或多个程序的计算机可读存储介质(或多个计算机可读媒介)(例如,计算机存储器、一个或多个软盘、光碟盘(cd)、光盘、数字视频盘(dvd)、磁带、闪存、现场可编程门阵列或其他半导体设备中的电路配置、或其他有形计算机存储介质),该程序在由一个或多个计算机或其他处理器执行时,执行实现上文所讨论的本公开的各种实施例的方法。如从前述示例显而易见的,计算机可读存储介质可以将信息保留足够的时间,以非暂态形式提供计算机可执行指令。这样的计算机可读存储介质或媒介可以是可运输的,使得存储在其上的一个或多个程序可以被加载到一个或多个不同的计算机或其他处理器以实现如上文所讨论的本公开的各方面。如本文所使用的,术语“计算机可读存储介质”仅涵盖可被认为是制造品(即制品)或机器的计算机可读介质。在一些实施例中,本公开可以实现为计算机可读介质而不是可读计算机存储介质,诸如传播信号。
[0238]
术语“程序”或“软件”在本文中采用一般意义使用是指任何类型的计算机代码或计算机可执行指令集,该代码或指令集可用于对计算机或其他处理器进行编程以实现如上文所讨论的本公开的各方面。此外,应当理解,根据本实施例的一个方面,在执行时执行本公开的方法的一个或多个计算机程序不需要驻留在单个计算机或处理器上,而是可以采用模块化方式分布在多个不同的计算机或处理器之间以实现本公开的各方面。
[0239]
计算机可执行指令可以采用许多形式,诸如程序模块,由一个或多个计算机或其他设备执行。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、部件、数据结构等。通常,在各种实施例中,程序模块的功能可以根据期望组合或者分布。
[0240]
而且,数据结构可以以任何适合的形式存储在计算机可读介质中。为了便于说明,数据结构可能示出为具有通过数据结构中的位置相关的字段。这样的关系同样可以通过为字段分配存储来实现,该存储具有在计算机可读介质中传达字段之间的关系的位置。然而,可以使用任何适合的机制来建立数据结构字段中信息之间的关系,包括通过使用指针、标记或建立数据元素之间的关系的其他机制。
[0241]
本公开的各方面可以单独、组合或以前述描述的实施例中未具体讨论的各种布置使用,并且因此其应用不限于前述描述中阐述或附图中所示的部件的细节和布置。例如,一个实施例中所描述的方面可以以任何方式与其他实施例中所描述的方面组合。
[0242]
而且,本公开可以被实现为已经提供其示例的方法。作为方法的一部分执行的动作可以以任何适合的方式排序。因此,可以构造其中以不同于所示的顺序执行动作的实施例,其可包括同时执行一些动作,即使在示例性实施例中示出为顺序动作。
[0243]
在权利要求中使用诸如“第一”、“第二”、“第三”等的序数术语来修饰权利要求要素本身并不意味着一个权利要求要素相对于另一个权利要求要素的任何优先级、优先次序或顺序或者执行方法的动作的时间顺序,而是仅用作将具有某个名称的一个权利要求元素与具有相同名称(但用于使用序数术语)的另一个元素区分开的标签以区分权利要求元素。
[0244]
而且,在本文中使用的措辞和术语出于描述的目的并且不应当被认为是限制性的。本文中的“包括”、“包括了”或“具有”、“包含”、“涉及”和其变型的使用旨在涵盖此处列出的项和其等同物以及附加项。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1