一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

具有关于持久坐标框架的质量信息的交叉现实系统的制作方法

2022-06-12 04:50:50 来源:中国专利 TAG:
具有关于持久坐标框架的质量信息的交叉现实系统1.相关申请的交叉引用2.本技术要求提交的题为“crossrealitysystemwithqualityinformationaboutpersistentcoordinateframes(具有关于持久坐标框架的质量信息的交叉现实系统)”的美国临时专利申请序列号62/928,833的优先权和权益,其全部内容通过引用并入本文。
技术领域
:3.本技术总体上涉及交叉现实系统。
背景技术
::4.计算机可以控制人类用户界面以创建x现实(xr或交叉现实)环境,在该环境中,由计算机生成用户所感知的一些或全部xr环境。这些xr环境可以是虚拟现实(vr)、增强现实(ar)和混合现实(mr)环境,其中的一些或所有xr环境可以由计算机部分使用描述环境的数据来生成。例如,该数据可以描述虚拟对象,该虚拟对象可以以用户的感觉或感知为物理世界的一部分的方式渲染,并且可以与虚拟对象进行交互。由于数据是通过用户接口设备(诸如例如头戴式显示设备)渲染和呈现的,因此用户可以体验这些虚拟对象。数据可以显示给用户看,或者可以控制被播放给用户听的音频,或者可以控制触觉(或触知)界面,从而使用户能够体验到用户感觉或感知为感觉到虚拟对象的触摸感觉。5.xr系统可以被用于跨科学可视化、医学培训、工程设计和原型、远程操纵和远程呈现以及个人娱乐领域的许多应用。与vr相比,ar和mr包括与物理世界的真实对象相关的一个或多个虚拟对象。虚拟对象与真实对象交互的体验显著地增强了用户使用xr系统的乐趣,并且也为呈现有关如何改变物理世界的现实且易于理解的信息的各种应用打开了大门。6.为了现实地渲染虚拟内容,xr系统可以建立围绕系统的用户的物理世界的表示。例如,此表示可以通过对利用可穿戴设备上的传感器获取的图像进行处理来构建,其中的可穿戴设备形成xr系统的一部分。在这样的系统中,用户可以通过环顾用户打算在其中使用xr系统的房间或其他物理环境,直到系统获得足够的信息来构建该环境的表示,来执行初始化例程。随着系统运行且用户在环境中移动或移动到其他环境,可穿戴设备上的传感器可以获取其他信息以扩展或更新物理世界的表示。技术实现要素:7.本技术的方面涉及用于提供x现实(交叉现实或者xr)场景的方法和装置。如本文所述的技术可以一起、单独或以任何合适的组合使用。8.一些实施例涉及一种操作电子系统以在包括便携式设备的3d环境中渲染虚拟内容的方法。所述方法包括用一个或多个处理器:至少部分地基于关于所述3d环境的已存储空间信息,在所述3d环境中定位所述便携式设备;至少部分地基于所述便携式设备在所述3d环境中的定位,从关于所述3d环境的已存储空间信息中获得持久坐标框架信息,其中,所获得的持久坐标框架信息包括所述便携式设备本地的坐标框架与持久坐标框架之间的变换;以及计算关于所述持久坐标框架的质量信息,其中,所述质量信息指示至少部分地基于相对于所述持久坐标框架所指定的位置、所述变换、以及所述便携式设备本地的坐标框架而渲染的虚拟内容的位置不确定性。9.在一些实施例中,所述方法包括:在至少部分地基于所述持久坐标框架和所计算的关于所述持久坐标框架的所述质量信息而确定的位置处,在所述便携式设备的显示器上渲染虚拟对象。10.在一些实施例中,所计算的关于所述持久坐标框架的质量信息通过应用编程接口(api)提供给所述便携式设备。11.在一些实施例中,提供给所述便携式设备的所计算的关于所述持久坐标框架的质量信息包括以下两项之间的至少一个自由度上的偏差低于阈值量的概率:(i)所述3d环境中的与所述持久坐标框架相关联的物理特征与基于所述变换、相对于所述持久坐标框架所指定的位置、以及所述便携式设备本地的坐标框架而渲染的所述虚拟内容的位置之间的距离;以及(ii)如在所述持久坐标框架中表达的所述3d环境中的与所述持久坐标框架相关联的所述物理特征与相对于所述持久坐标框架所指定的所述虚拟内容的所述位置之间的距离。12.在一些实施例中,所计算的关于所述便携式设备感知的所述持久坐标框架的质量信息指示当由所述便携式设备渲染时所述虚拟内容的上限位置误差。13.在一些实施例中,所述上限位置误差包括平移和旋转的误差。14.在一些实施例中,所述已存储空间信息是由所述便携式设备生成的跟踪地图。15.在一些实施例中,所述已存储空间信息是对于所述便携式设备被远程存储的规范地图。16.在一些实施例中,所述便携式设备包括第一便携式设备,所述第一便携式设备包括所述一个或多个处理器中的第一处理器。所述电子系统还包括第二便携式设备,所述第二便携式设备包括所述一个或多个处理器中的第二处理器。所述第二便携设备的所述第二处理器:获得所述持久坐标框架;从所述第二便携式设备的视角获得关于所述持久坐标框架的质量信息;以及在所述第二便携式设备的显示器上渲染所述虚拟对象,同时显示通过所述第一便携式设备对所述虚拟对象的改变。17.在一些实施例中,关于所述3d环境的已存储空间信息包括共享地图。所述持久坐标框架具有相对于所述共享地图的姿势。计算关于所述持久坐标框架的质量信息包括:确定所述持久坐标框架相对于所述共享地图的姿势的不确定性;以及将一个或多个误差传播变换应用于所述姿势的所述不确定性,以计算对所述虚拟内容的所述位置不确定性的贡献。18.在一些实施例中,所述方法还包括至少部分地通过跟踪所述姿势的漂移(drift)来确定所述持久坐标框架的姿势的不确定性。19.在一些实施例中,所述误差传播变换包括无迹变换。20.在一些实施例中,所述便携式设备本地的所述坐标框架包括所述便携式设备在所述便携式设备的跟踪地图内的姿势。计算关于所述持久坐标框架的质量信息包括:确定所述便携式设备在所述跟踪地图内的姿势的不确定性;以及将所述便携式设备在所述跟踪地图内的姿势的不确定性与一个或多个位置不确定性源进行聚合。21.在一些实施例中,基于在形成所述跟踪地图期间将帧整合到所述跟踪地图中的误差来计算所述便携式设备在所述跟踪地图内的姿势的不确定性。22.在一些实施例中,关于所述3d环境的已存储空间信息包括共享地图。所述共享地图的持久坐标框架包括代表在由所述持久坐标框架所表示的所述3d环境中的位置处的特征的特征信息。定位是基于代表所述便携式设备的所述3d环境中的特征的至少一个特征信息集。计算关于所述持久坐标框架的质量信息包括:确定将代表所述便携式设备的所述3d环境中的特征的所述至少一个特征信息集与所述持久坐标框架的所述特征信息进行匹配的不确定性;以及将一个或多个误差传播变换应用于所述姿势的所述不确定性,以计算对所述虚拟内容的所述位置不确定性的贡献。23.在一些实施例中,确定将代表所述便携式设备的所述3d环境中的特征的所述至少一个特征信息集与所述持久坐标框架的所述特征信息进行匹配的不确定性包括:确定代表所述便携式设备的所述3d环境中的与所述持久坐标框架的所述特征信息中的特征匹配的特征的特征信息集中所表示的特征的数量。24.在一些实施例中,代表所述便携式设备的所述3d环境中的特征的所述至少一个特征信息集包括所述便携式设备的所述3d环境中的所述特征的成姿势的描述符。关于所述3d环境的已存储空间信息包括共享地图。所述共享地图的持久坐标框架包括代表在由所述持久坐标框架所表示的所述3d环境中的位置处的特征的特征信息。所述持久坐标框架的所述特征信息包括成姿势的特征描述符集。确定在将代表所述便携式设备的所述3d环境中的特征的所述至少一个特征信息集与所述持久坐标框架的所述特征信息进行匹配时的不确定性包括:对于特征描述符的匹配集,计算匹配集的所述成姿势的特征描述符与所述持久坐标框架的匹配成姿势的特征描述符之间的聚合位置差。25.一些实施例涉及一种便携式电子系统。所述便携式电子系统包括:一个或多个传感器,其被配置为捕获关于三维3d环境的信息,所捕获的信息包括多个图像;以及至少一个处理器,其被配置为执行计算机可执行指令以在所述3d环境中渲染虚拟内容,其中,所述计算机可执行指令还包括用于以下操作的指令:从所述多个图像形成至少一个特征信息集;获得持久坐标框架信息,其中,所述持久坐标框架关联有与所述至少一个特征信息集匹配的特征信息和质量度量;以及至少部分地基于所述质量度量,在相对于所述持久坐标框架所指定的位置处,在所述便携式设备的显示器上使用所述持久坐标框架信息来选择性地渲染虚拟对象。26.在一些实施例中,至少部分地基于所述质量度量,在所述便携式设备的所述显示器上使用所述持久坐标框架信息来选择性地渲染所述虚拟对象包括:放大所述虚拟对象的至少一部分。27.在一些实施例中,至少部分地基于所述质量度量,在所述便携式设备的所述显示器上使用所述持久坐标框架信息来选择性地渲染所述虚拟对象包括:降低所述虚拟对象的至少一部分的分辨率。28.在一些实施例中,至少部分地基于所述质量度量,在所述便携式设备的所述显示器上使用所述持久坐标框架信息来选择性地渲染所述虚拟对象包括:放弃渲染所述虚拟对象的至少一部分。29.在一些实施例中,至少部分地基于所述质量度量,在所述便携式设备的所述显示器上使用所述持久坐标框架信息来选择性地渲染所述虚拟对象包括:阻止与第二便携式电子设备共享虚拟内容。30.在一些实施例中,所述质量度量与所述便携式电子系统与所述持久坐标框架之间的距离成反比关系。31.在一些实施例中,在所述便携式电子系统与所述持久坐标框架之间的距离高于阈值距离时,所述质量度量指示零概率。32.在一些实施例中,所述距离为10米。33.一些实施例涉及一种用于交叉现实系统的计算环境。所述计算环境包括:存储多个地图的数据库,其中,每个地图包括表示3d环境的区域的信息;存储计算机可执行指令的非暂态计算机存储介质,所述计算机可执行指令在由所述计算环境中的至少一个处理器执行时:在所述数据库的地图中定位便携式设备;至少部分地基于所述便携式设备在所述地图中的定位,从所述地图获得持久坐标框架,所述持久坐标框架包括相对于所述地图的坐标框架的第一姿势;以及至少部分地基于所述第一姿势和将所述地图的所述坐标框架与所述便携式设备本地的坐标框架相关的变换,计算关于第二姿势的质量信息,其中,所述质量信息指示所述第二姿势的位置误差小于阈值的概率。34.在一些实施例中,至少部分地基于关于所述地图中的所述持久坐标框架的质量信息,计算关于所述第二姿势的质量信息。35.在一些实施例中,关于所述地图中的所述持久坐标框架的所述质量信息包括协方差矩阵,所述协方差矩阵表示相对于所述地图的所述坐标框架表达的所述第一姿势的误差。36.在一些实施例中,至少部分地基于关于所述便携式设备在所述地图中的定位的质量信息,计算关于所述第二姿势的质量信息。37.在一些实施例中,关于所述便携式设备在所述地图中的所述定位的所述质量信息包括协方差矩阵,所述协方差矩阵表示所述便携式设备本地的所述坐标框架与所述地图的所述坐标框架之间的变换的误差。38.在一些实施例中,至少部分地基于关于由所述便携式设备所计算的关于跟踪地图的质量信息,计算关于所述第二姿势的质量信息。39.前述概述是通过说明的方式提供的,并非旨在进行限制。附图说明40.附图并非旨在按比例绘制。在附图中,在各个附图中示出的每个相同或几乎相同的部件由相似的数字表示。为了清楚起见,并非每个部件都可以在每个附图中标记。在附图中:41.图1是示出根据一些实施例的简化的增强现实(ar)场景的示例的示意图;42.图2是根据一些实施例的示例性简化ar场景的示意图,示出了xr系统的示例性使用情况;43.图3是示出根据一些实施例的用于ar系统中的单个用户的数据流的示意图,该ar系统被配置为向用户提供与物理世界交互的ar内容的体验;44.图4是示出根据一些实施例的示例性ar显示系统的示意图,该示例性ar显示系统为单个用户显示虚拟内容;45.图5a是根据一些实施例的示出了当用户穿着ar显示系统时,该ar显示系统在用户移动穿过物理世界环境时渲染ar内容的示意图;46.图5b是示出根据一些实施例的观看光学组件和伴随部件的示意图;47.图6a是示出根据一些实施例的使用世界重建系统的ar系统的示意图;48.图6b是示出根据一些实施例的维持可通行世界的模型的ar系统的部件的示意图。49.图7是由设备遍历穿过物理世界的路径形成的跟踪图的示意图。50.图8是示出根据一些实施例的感知虚拟内容的交叉现实(xr)系统的用户的示意图;51.图9是根据一些实施例的在坐标系之间进行变换的图8的xr系统的第一xr设备的部件的框图;52.图10是根据一些实施例的示出将原点坐标框架示例性变换为目的地坐标框架以便正确地渲染本地xr内容的示意图;53.图11是示出根据一些实施例的基于瞳孔的坐标框架的顶视平面图;54.图12是示出根据一些实施例的包括所有瞳孔位置的相机坐标框架的顶视平面图;55.图13是根据一些实施例的图9的显示系统的示意图;56.图14是示出根据一些实施例的持久坐标系(pcf)的创建以及xr内容到pcf的附接的框图;57.图15是示出根据一些实施例的建立和使用pcf的方法的流程图;58.图16是根据一些实施例的包括第二xr设备的图8的xr系统的框图;59.图17是示出根据一些实施例的房间和为房间中的各个区域建立的关键帧的示意图;60.图18是示出根据一些实施例的基于关键帧的持久姿势的建立的示意图;61.图19是示出根据一些实施例的基于持久姿势的持续坐标框架(pcf)的建立的示意图;62.图20a至图20c是示出根据一些实施例的创建pcf的示例的示意图;63.图21是示出根据一些实施例的用于为单个图像和/或地图生成全局描述符的系统的框图;64.图22是示出根据一些实施例的计算图像描述符的方法的流程图;65.图23是示出根据一些实施例的使用图像描述符的定位方法的流程图;66.图24是示出根据一些实施例的训练神经网络的方法的流程图;67.图25是示出根据一些实施例的训练神经网络的方法的框图;68.图26是示出根据一些实施例的被配置为对多个环境图进行排名和合并的ar系统的示意图;69.图27是示出根据一些实施例的存储在远程存储介质上的多个规范地图的简化框图;70.图28是示出根据一些实施例的选择规范地图以例如在一个或多个规范地图中定位新的跟踪地图和/或从规范地图获得pcf的方法的示意图;71.图29是示出根据一些实施例的选择多个排名的环境地图的方法的流程图;72.图30是示出根据一些实施例的图26的ar系统的示例性地图排名部分的示意图;73.图31a是示出根据一些实施例的数据库中的跟踪地图(tm)和环境地图的区域属性的示例的示意图;74.图31b是示出根据一些实施例的确定用于图29的地理位置过滤的跟踪地图(tm)的地理位置的示例的示意图;75.图32是示出根据一些实施例的图29的地理位置过滤的示例的示意图;76.图33是示出根据一些实施例的图29的wi-fibssid过滤的示例的示意图;77.图34是示出根据一些实施例的使用图29的定位的示例的示意图;78.图35和36是根据一些实施例的被配置为对多个环境地图进行排名和合并的xr系统的框图。79.图37是示出根据一些实施例的以规范形式创建物理世界的环境地图的方法的框图;80.图38a和38b是示出根据一些实施例的通过用新的跟踪地图更新图7的跟踪地图以规范形式创建的环境地图的示意图。81.图39a至39f是示出根据一些实施例的合并地图的示例的示意图;82.图40是根据一些实施例的可由图9的第一xr设备生成的三维第一本地跟踪地图(地图1)的二维表示;83.图41是示出根据一些实施例的从第一xr设备向图9的服务器上传地图1的框图;84.图42是示出根据一些实施例的图16的xr系统的示意图,示出在第一用户已经终止第一会话之后第二用户已经使用xr系统的第二xr设备发起第二会话;85.图43a是示出根据一些实施例的用于图42的第二xr设备的新会话的框图;86.图43b是示出根据一些实施例的用于图42的第二xr设备的跟踪地图的创建的框图;87.图43c是示出根据一些实施例的从服务器向图42的第二xr设备下载规范地图的框图;88.图44是示出根据一些实施例的将可以由图42的第二xr设备生成的第二跟踪地图(地图2)定位到规范地图的定位尝试的示意图;89.图45是示出根据一些实施例的将图44的第二跟踪地图(地图2)定位到规范地图的定位尝试的示意图,该第二跟踪地图可以进一步被开发并且具有与地图2的pcf相关联的xr内容;90.图46a至图46b是示出根据一些实施例的将图45的地图2成功定位到规范地图的示意图;91.图47是示出根据一些实施例的通过将来自图46a的规范地图的一个或多个pcf包括到图45的地图2中而生成的规范地图的示意图;92.图48是示出根据一些实施例的图47的规范地图以及第二xr设备上的地图2的进一步扩展的示意图;93.图49是示出根据一些实施例的从第二xr设备向服务器上传地图2的框图;94.图50是示出根据一些实施例的将地图2与规范地图合并的框图;95.图51是示出根据一些实施例的从服务器到第一xr设备和第二xr设备传输新规范地图的框图;96.图52是示出根据一些实施例的地图2的二维表示和参考地图2的第二xr设备的头部坐标框架的框图;97.图53是根据一些实施例的以二维方式示出可以在六个自由度中发生的头部坐标框架的调节的框图;98.图54是示出根据一些实施例的第二xr设备上的规范地图的框图,其中,声音相对于地图2的pcf被定位;99.图55和图56是示出根据一些实施例的当第一用户已经终止第一会话并且第一用户已经使用xr系统发起第二会话时xr系统的使用的透视图和框图;100.图57和图58是示出根据一些实施例的当三个用户在同一会话中同时使用xr系统时xr系统的使用的透视图和框图;101.图59是示出根据一些实施例的恢复和重置头部姿势的方法的流程图;102.图60是根据一些实施例的可以在本发明的系统中找到应用的计算机形式的机器的框图;103.图61是根据一些实施例的示例xr系统的示意图,其中多个设备中的任一个可以访问定位服务;104.图62是根据一些实施例的用于操作便携式设备的示例处理流程,其中的便携式设备作为提供基于云的定位的xr系统的一部分;105.图63a、图63b和图63c是根据一些实施例的用于基于云的定位的示例处理流程;106.图64是示出根据一些实施例的多个xr设备与同一应用交互的场景的示意图;107.图65是示出根据一些实施例操作xr系统的方法的流程图;108.图66是示出根据一些实施例的关于持久坐标框架(pcf)的质量信息的示意图;109.图67是示出根据一些实施例的多步姿势估计以将规范地图中的pcf提供给xr设备的示意图;以及110.图68是示出根据一些实施例的计算关于pcf的质量信息的方法的处理细节的框图。具体实施方式111.这里描述的是用于提供x现实(xr或交叉现实)场景的方法和装置。为了向多个用户提供逼真的xr体验,xr系统可以在共享坐标框架中表示多个xr设备中的每一个将相对于真实对象渲染虚拟对象的位置。每个设备可以有一种机制来将其在渲染虚拟内容时使用的其自己的本地坐标框架与该共享坐标框架相关。112.发明人已经认识到并意识到,如果各个xr设备使用其本地坐标框架在以共享坐标框架所表示的位置处渲染内容时,这些设备能够调整虚拟内容位置处的误差程度,则可以为这些设备的用户提供更真实或更愉快的体验。例如,误差程度可以表示为质量度量。xr设备可以根据质量度量调整其操作。例如,在质量度量低时,可以对设备进行编程以增加虚拟对象的大小。作为另一个示例,当质量度量低时,设备可以放弃渲染共享的虚拟内容。113.xr系统可以构建场景的环境地图,该环境地图可以从传感器收集的图像和/或深度信息创建,该传感器是由xr系统的用户佩戴的xr设备的一部分。每个xr设备可以通过整合来自在扫描期间在某个时间点收集的一个或多个图像的信息来开发其物理环境的本地地图。在一些实施例中,该地图的坐标系被绑定到设备在开始扫描时的取向。当用户与xr系统交互时,该取向可能会因会话而异,无论不同的会话与不同的用户相关联,每个用户都有自己的可穿戴设备,可穿戴设备带有扫描环境的传感器,还是不同时间使用同一设备的同一用户。114.xr系统可以实施一种或多种技术,以便能够基于持久空间信息进行操作。这些技术例如可以通过使xr系统的多个用户中的任何用户都能够创建、存储和取得持久空间信息,为单个或多个用户提供计算更高效且浸入式的体验的xr场景。115.持久空间信息可以由持久地图表示,其可以启用增强xr体验的一个或多个功能。持久地图可以存储在远程存储介质(例如,云)中。例如,由用户佩戴的可穿戴设备在被打开之后,可以从诸如云存储的持久存储中取得先前创建和存储的适当的存储的地图。先前存储的地图可能是基于先前会话期间在用户可穿戴设备上采用传感器收集的有关环境的数据。取得存储的地图可以实现可穿戴设备的使用,而无需采用可穿戴设备上的传感器扫描物理世界。可替代地或另外地,系统/设备在进入物理世界的新区域时可以类似地取得适当的存储的地图。116.存储的地图可以以规范形式表示,该规范形式可以与每个xr设备上的本地参考框架相关。在多设备xr系统中,一个设备访问的存储的地图可能已经由另一设备创建和存储和/或可能通过在多个可穿戴设备上汇总由传感器收集的有关物理世界的数据而构造,该多个可穿戴设备以前已经在存储的地图所表示的至少一部分物理世界中存在。117.可以通过定位过程来确定每个设备的本地地图与规范地图之间的关系。可以基于选择并发送到设备的规范地图集,在每个xr设备上执行该定位过程。然而,发明人已经认识到并意识到xr设备上的网络带宽和计算资源可以通过提供可以在远程处理器上执行的定位服务来减少,例如可以在云中实现的定位服务。因此,xr设备上的电池消耗和发热可能会减少,从而使设备能够投入资源,例如计算时间、网络带宽、电池寿命和热量预算,以提供更加身临其境的用户体验。不必说,通过适当选择在每个xr设备与定位服务之间传递的信息,可以以支持这样的沉浸式体验所需的延迟和准确度来执行定位。118.在多个设备之间共享关于物理世界的数据可以实现虚拟内容的共享用户体验。例如,访问同一存储的地图的两个xr设备都可以相对于存储的地图进行定位。一旦定位,用户设备可以通过将位置转换成由用户设备维护的框架或参考来渲染具有通过参考存储的地图指定的位置的虚拟内容。用户设备可以使用该本地参考框架来控制用户设备的显示以在指定位置中渲染虚拟内容。119.为了支持这些以及其它功能,xr系统可以包括以下部件,该部件基于与用户设备上的传感器收集的有关物理世界的数据,开发、维护和使用持久空间信息(包括一个或多个存储的地图)。这些部件可以例如通过在用户设备的头戴式部分上的一些操作而跨xr系统分布。其它部件可以在计算机上操作,与通过局域网或个人局域网耦合到头戴式部分的用户相关联。还有一些可以在远程位置处(诸如在可通过广域网访问的一个或多个服务器处)操作。120.这些部件例如可能包括可以从由一个或多个用户设备收集的关于物理世界的信息中识别出质量足以被存储为持久地图或存储在持久地图中的信息的部件。下面更详细地描述这样的部件的一个示例是地图合并部件。这样的部件例如可以从用户设备接收输入,并确定将用于更新持久地图的输入的各部分的适合度。地图合并部件例如可以将由用户设备创建的本地地图分成多个部分,确定一个或多个部分与持久地图的可合并性,并将满足合格可合并性标准的部分合并到持久地图。地图合并部件例如还可以将未与持久地图合并的部分提升为单独的持久地图。121.作为另一个示例,这些部件可以包括可以帮助确定可以被用户设备取得和使用的适当的持久地图的部件。下面更详细描述的这种部件的示例是地图排名部件。例如,这种部件可以从用户设备接收输入,并识别一个或多个持久地图,该持久地图可能表示该设备在其中操作的物理世界的区域。例如,地图排名部件可以帮助选择该本地设备在渲染虚拟内容,收集有关环境的数据或执行其它动作时要使用的持久地图。可替代地或另外地,地图排名部件可以帮助识别随着一个或多个用户设备收集关于物理世界的附加信息而被更新的持久地图。122.其它部件可以确定将关于一个参考框架捕获或描述的信息转换为另一参考框架的变换。例如,传感器可以被附接到头戴式显示器,使得从该传感器读取的数据指示对象相对于佩戴者的头部姿势在物理世界中的位置。可以应用一个或多个变换以将该位置信息和与持久环境地图相关联的坐标框架相关。类似地,可以将指示在持久环境地图的坐标框架中表达时要在何处渲染虚拟对象的数据进行一次或多次变换,以置于用户头部上显示器的参考框架中。如下面更详细描述的,可能存在多个这种变换。可以跨xr系统的部件划分这些变换,使得可以有效地更新它们或将其应用于分布式系统中。123.在一些实施例中,可以根据由多个用户设备收集的信息来构造持久地图。xr设备可以捕获本地空间信息并且采用在各个位置和时间由每个xr设备的传感器收集的信息来构造单独的跟踪地图。每个跟踪地图可以包括点,每个点可以与可以包括多个特征的真实对象的特征相关联。除了可能提供输入以创建和维护持久地图之外,跟踪地图还可用于跟踪场景中用户的运动,从而使xr系统能够基于跟踪地图估计相应用户的头部姿势。124.地图的创建与头部姿势的估计之间的该相互依赖性构成了重大挑战。可能需要大量处理才能创建地图并同时估计头部姿势。随着对象在场景中移动(例如在桌子上移动杯子)以及随着用户在场景中移动,必须快速完成处理,因为时延使xr体验对用户的现实感降低。另一方面,xr设备可以提供有限的计算资源,因为xr设备的重量应当轻以使用户舒适地佩戴。无法采用更多的传感器来补偿计算资源的缺乏,因为增加传感器也会不希望地增加重量。此外,更多的传感器或更多的计算资源会产生热量,这可导致xr设备的变形。125.发明人已经认识并理解用于操作xr系统以提供用于更具沉浸感的用户体验的技术的xr场景,诸如以1khz的频率估计头部姿势,与xr设备相关的计算资源使用较低率,诸如可以被配置为以30hz操作的四个视频图形阵列(vga)相机,以1khz操作的一个惯性测量单元(imu),单个高级risc机器(arm)内核的计算能力,小于1gb的存储器,以及小于100mbp的网络带宽。这些技术涉及减少生成和维护地图和估计头部姿势所需的处理,以及涉及以低计算开销提供和消费数据。xr系统可以基于匹配的视觉特征来计算其姿势。美国专利申请序列号16/221,065描述了混合跟踪,并且通过引用将其全部内容合并于此。126.这些技术可以包括减少在构造地图时处理的数据量,诸如通过采用地图构建点和关键帧的集合构造稀疏地图和/或将地图划分为块以实现按块的更新。地图构建点可以与环境中的关注点相关联。关键帧可以包括从相机捕获的数据中选择的信息。美国专利申请序列号16/520,582描述了确定和/或评估定位地图,并且通过引用将其全部内容合并于此。127.在一些实施例中,持久空间信息可以通过可以在用户之间以及在包括应用的分布式部件之间容易共享的方式来表示。例如,关于物理世界的信息可以表示为持久坐标框架(pcf)。可以基于在物理世界中所识别的一个或多个特征来定义pcf。可以选择特征,使得它们在xr系统的用户会话之间可能是相同的。pcf可能稀疏存在,所提供的信息少于关于物理世界的所有可用信息,以便它们可以得到高效地处理和转移。用于处理持久空间信息的技术可以包括:基于跨越一个或多个会话的真实空间中的一个或多个坐标系来创建动态地图,并且在稀疏地图上生成持久坐标框架(pcf),这可以经由例如应用编程接口(api)暴露给xr应用。这些功能可以受到用于对由一个或多个xr设备创建的多个地图进行排名和合并的技术的支持。持久空间信息还可以实现以计算上高效的方式快速恢复和重置一个或多个xr设备中的每个设备上的头部姿势。128.此外,这些技术可以实现空间信息的高效比较。在一些实施例中,图像帧可以由数字描述符表示。可以通过将图像中识别的一组特征映射到描述符的变换来计算该描述符。可以在经过训练的神经网络中执行该变换。在一些实施例中,被提供为神经网络的输入的一组特征可以是使用例如优先选择可能持久的特征的技术从图像中提取的经过滤的一组特征。129.将图像帧表示为描述符使得例如能够高效地将新图像信息与存储的图像信息进行匹配。xr系统可以与持久地图下面的一个或多个帧的持久地图描述符一起存储。由用户设备获取的本地图像帧可以类似地被转换为这样的描述符。通过选择具有与本地图像帧的描述符相似的描述符的存储的地图,可以用相对较少的处理量来选择可能表示与用户设备相同的物理空间的一个或多个持久地图。在一些实施例中,可以针对本地地图和持久地图中的关键帧来计算描述符,从而进一步减少比较地图时的处理。例如,可以使用这种高效的比较来简化寻找持久地图从而加载到本地设备中,或者寻找持久地图以基于利用本地设备所获取的图像信息来更新。130.在一些实施例中,可以相对于持久地图的坐标(诸如pcf)来指定虚拟内容。当该内容相对于每个设备的本地坐标框架进行渲染时,虚拟对象的位置可能会出现误差。例如,当被xr设备的用户感知时,虚拟对象相对于物理对象的位置关系可能不同于两者都在pcf的坐标框架(例如,持久地图坐标框架)中进行表达时的虚拟对象与物理对象之间的位置的位置关系。这种误差的性质将决定共享虚拟对象的位置不确定性。131.例如,如果所有用户佩戴的设备在预期位置以高准确性渲染虚拟内容,当多个用户指向共享虚拟内容的相同特征时,他们的手指应该会聚到物理世界中的相同点。相反,如果在由设备确定的那个位置存在不确定性,则一个或多个设备可能渲染内容使得其用户感知内容时相对于期望位置有一些误差。用户指向物理世界中的不同位置而旨在在同一位置的虚拟内容时,此误差将很明显。指示该位置不确定性程度的质量度量可以由设备计算和使用以修改它们渲染共享虚拟内容的方式,特别是在存在较大位置不确定性的场景中。132.相对于本地坐标框架渲染的共享内容的位置不确定性可能取决于多个因素。这些因素可以包括,例如,持久坐标框架相对于物理世界的不确定性、持久坐标框架与便携式设备的本地坐标框架之间转换的准确性,以及便携式设备本地的坐标框架相对于渲染虚拟内容的便携式设备的部件的不确定性。如下文更详细描述的,这些误差源中的一个或多个的估计可以被转换成公共坐标框架并且组合成虚拟内容在渲染时的定位质量的总体指示。133.在此描述的技术可以与许多类型的设备以及对于许多类型的场景一起或单独使用,包括具有有限的计算资源的提供增强或混合现实场景的可穿戴或便携式设备。在一些实施例中,可以通过形成xr系统的一部分的一个或多个服务来实现该技术。134.ar系统概述135.图1和图2示出了具有虚拟内容的场景,这些场景与物理世界的一部分一起显示。为了说明的目的,ar系统被用作xr系统的示例。图3-6b示出示例性ar系统,其包括可以根据在此描述的技术操作的一个或多个处理器、存储器、传感器和用户界面。136.参考图1,描绘了室外ar场景354,其中ar技术的用户看到了物理世界的类似公园的设置356,其特征是人、树、背景中的建筑物以及混凝土平台358。除了这些项目之外,ar技术的用户还感知到他们“看到”了站在物理世界混凝土平台358上的机器人雕像357,以及似乎是大黄蜂的头像的飞行着的卡通般的头像角色352,即使这些元素(例如,头像角色352和机器人雕像357)在物理世界中不存在。由于人类视觉感知和神经系统的极端复杂性,产生一种对于在其它虚拟或物理世界图像元素中促进舒适、自然感觉、丰富的虚拟图像元素呈现的ar技术具有挑战性。137.这样的ar场景可以通过基于跟踪信息来建立物理世界的地图的系统来实现,使用户能够将ar内容放置在物理世界中,确定在物理世界的地图中放置ar内容的位置,保留ar场景以便可以在例如不同的ar体验会话期间重新加载放置的ar内容以在物理世界中显示,并使多个用户共享ar体验。该系统可以建立和更新用户周围的物理世界表面的数字表示。该表示可以用于将虚拟内容渲染为看起来被在用户与虚拟内容的渲染位置之间的物理对象完全或部分遮挡,以便在基于物理的交互中放置虚拟对象,以及用于虚拟角色路径计划和导航,或用于其中使用关于物理世界的信息的其他操作。138.图2描绘了根据一些实施例的室内ar场景400的另一示例,其示出了xr系统的示例性使用情况。示例性场景400是具有墙壁、在墙壁的一侧上的书架、在房间的拐角的落地灯、地板、沙发和地板上的咖啡桌的客厅。除了这些物理物品外,ar技术的用户还可以感知虚拟对象,诸如沙发后面的墙壁上的图像,飞过门的鸟儿,从书架上窥视的鹿,以及以放置在咖啡桌上的风车形式的装饰品。139.对于墙壁上的图像,ar技术不仅需要有关墙壁表面的信息,还需要有关房间内对象和表面的信息(诸如灯的形状),该信息会遮挡图像以正确渲染虚拟对象。对于飞翔的鸟类,ar技术需要有关房间周围所有对象和表面的信息,以便以逼真的物理效果渲染鸟类,以避开对象和表面或避免在鸟类碰撞时反弹。对于鹿,ar技术需要有关表面(诸如地板或咖啡桌)的信息,以计算鹿的放置位置。对于风车,系统可以识别出是与桌子分离的对象,并且可以确定其是可移动的,而架子的拐角或墙壁的拐角可以被确定为是静止的。这种区别可用于确定在各种操作中的每个操作中使用或更新场景的哪些部分。140.可以将虚拟对象放置在先前的ar体验会话中。当新的ar体验会话在客厅开始时,ar技术需要将虚拟对象准确显示在先前放置并且从不同的视角实际可见的位置。例如,风车应当显示为站立在书本上,而不是在没有书本的不同位置处漂浮在桌子上方。如果新的ar体验会话的用户的位置没有准确地定位在客厅中,则可能会发生这种漂浮。作为另一示例,如果用户从与放置风车时的视角不同的视角观看风车,则ar技术需要显示风车的相应侧面。141.可以经由包括多个部件的系统向用户呈现场景,该多个部件包括可以刺激一种或多种用户感觉(诸如视觉、声音和/或触摸)的用户界面。另外,该系统可以包括一个或多个传感器,该传感器可以测量场景的物理部分的参数,包括用户在场景的物理部分内的位置和/或运动。此外,该系统可以包括一个或多个计算设备,以及相关联的计算机硬件,诸如存储器。这些部件可以集成到单个设备中,或可以跨多个互连设备分布。在一些实施例中,这些部件中的一些或全部可以集成到可穿戴设备中。142.图3描绘了根据一些实施例的ar系统502,其被配置为提供与物理世界506交互的ar内容的体验。ar系统502可以包括显示器508。在所示的实施例中,显示器508可以由用户作为头戴式耳机的一部分来佩戴,使得用户可以像一副护目镜或眼镜一样将显示器戴在他们的眼睛上。显示器的至少一部分可以是透明的,使得用户可以观察到透视现实510。透视现实510可以对应于处于ar系统502的当前视点内的物理世界506的部分,在用户戴上结合了ar系统的显示器和传感器的头戴式耳机以获取有关物理世界的信息的情况下,这可以与用户的视点相对应。143.ar内容也可以呈现在显示器508上,覆盖在透视现实510上。为了在显示器508上提供ar内容和透视现实510之间的准确交互,ar系统502可以包括被配置为捕获有关物理世界506的信息的传感器522。144.传感器522可包括输出深度图512的一个或多个深度传感器。每个深度图512可具有多个像素,每个像素可表示距在特定方向中相对于深度传感器的物理世界506中的表面的距离。原始深度数据可来自深度传感器以创建深度图。该深度图可以与深度传感器可以形成新图像的速度一样快地被更新,其可以是每秒成百上千次。然而,该数据可能是嘈杂的和不完整的,并且在所示的深度图上具有示为黑色像素的孔。145.该系统可以包括其它传感器,诸如图像传感器。图像传感器可以获取单眼或立体信息,该信息可以被处理为以其它方式表示物理世界。例如,可以在世界重建部件516中对图像进行处理以创建网格,该网格表示物理世界中对象的连接部分。有关这种对象的元数据(包括例如颜色和表面纹理)可以类似地采用传感器获取,并作为世界重建的一部分进行存储。146.系统还可以获取关于用户相对于物理世界的头部姿势(或“姿势”)的信息。在一些实施例中,系统的头部姿势跟踪部件可以用于实时计算头部姿势。头部姿势跟踪部件可以在具有六个自由度的坐标系中表示用户的头部姿势,六个自由度包括例如三个垂直轴的平移(例如,向前/向后,向上/向下,向左/向右)以及围绕该三个垂直轴的旋转(例如,俯仰、偏航和滚动)。在一些实施例中,传感器522可包括可用于计算和/或确定头部姿势514的惯性测量单元。用于深度图的头部姿势514可指示例如以六个自由度捕获深度图的传感器的当前视点,但是头戴式耳机514可用于其它目的,诸如将图像信息与物理世界的特定部分相联系或将佩戴在用户头部上的显示器的位置与物理世界相联系。147.在一些实施例中,头部姿势信息可以以不同于imu(诸如分析图像中的对象)的其它方式来导出。例如,头部姿势跟踪部件可以基于由相机捕获的视觉信息和由imu捕获的惯性信息来计算ar设备相对于物理对象的相对位置和取向。头部姿势跟踪部件然后可以例如通过将所计算的ar设备相对于物理对象的相对位置和取向与物理对象的特征进行比较来计算ar设备的头部姿势。在一些实施例中,该比较可以通过识别利用一个或多个传感器522捕获的图像中的特征来进行,该一个或多个传感器522是随时间稳定的,以便随时间捕获的图像中的这些特征的位置的变化可以与用户的头部姿势的变化相关联。148.在一些实施例中,ar设备可以根据用户带着该ar设备在整个物理世界中移动时捕获的一系列图像帧中的连续图像中识别出的特征点来构建地图。尽管每个图像帧可以取自用户移动时的不同姿势,但是系统可以通过将连续图像帧的特征与先前捕获的图像帧相匹配,来调整每个连续图像帧的特征的取向,以与初始图像帧的取向相匹配。连续图像帧的平移使得表示相同特征的点将与先前收集的图像帧中的对应特征点相匹配,可用于对齐每个连续图像帧以与先前处理的图像帧的取向相匹配。生成的地图中的帧可以具有在第一图像帧被添加到地图时建立的共同取向。该地图在公共参考框架中具有多组特征点,该地图可用于通过将当前图像帧中的特征与地图进行匹配来确定用户在物理世界中的姿势。在一些实施例中,该地图可以被称为跟踪地图。149.除了能够跟踪用户在环境中的姿势之外,该地图还可以使系统的其他部件(例如世界重建部件516)能够确定物理对象相对于用户的位置。世界重建部件516可以从传感器接收深度图512和头部姿势514以及任何其它数据,并将该数据集成到重建518中。重建518可以比传感器数据更完整并且噪声更少。世界重建部件516可以使用随时间推移的来自多个视点的传感器数据的空间和时间平均来更新重建518。150.重建518可以包括一种或多种数据格式(包括例如体素、网格、平面等)的物理世界的表示。不同格式可以表示物理世界的相同部分的替代表示或可以表示物理世界的不同部分。在所示的示例中,在重建518的左侧,物理世界的部分被呈现为全局表面;在重建518的右侧,物理世界的部分被呈现为网格。151.在一些实施例中,由头部姿势部件514保持的地图可以相对于可能保持的物理世界的其他地图稀疏。稀疏地图可以指示关注点和/或结构(例如拐角或边缘)的位置,而不是提供有关表面的位置以及可能的其他特征的信息。在一些实施例中,地图可以包括由传感器522捕获的图像帧。这些帧可以被简化为可以表示关注点和/或结构的特征。结合每个帧,关于从其获取帧的用户的姿势的信息也可以被存储为地图的一部分。在一些实施例中,可以存储或可以不存储由传感器获取的每个图像。在一些实施例中,当图像被传感器收集时,系统可以处理图像,并且选择图像帧的子集用于进一步计算。该选择可以基于一个或多个标准,该标准限制信息的添加,但确保地图包含有用的信息。系统可以例如基于与已经添加到地图的先前图像帧的重叠或者基于包含被确定为可能表示静止对象的足够数量的特征的图像帧,来向地图添加新图像帧。在一些实施例中,所选择的图像帧或来自所选择的图像帧的特征组可以用作地图的关键帧,其用于提供空间信息。152.ar系统502可以从物理世界的多个角度随时间整合传感器数据。当包括传感器的设备移动时,可以跟踪传感器的姿势(例如,位置和取向)。由于传感器的帧姿势及其与其他姿势的关系是已知的,因此可以将物理世界的这些多个视点中的每个视点融合在一起,形成物理世界的单个组合重建,这可以用作地图的抽象(abstract)层并提供空间信息。通过使用空间和时间平均(即,随时间推移从多个视点对数据进行平均)或任何其他适当的方法,重建可以比原始传感器数据更完整且噪声更少。153.在图3所示的实施例中,地图表示其中存在单个可穿戴设备的用户的物理世界的部分。在那种情况下,与地图中的框架相关联的头部姿势可以被表示为本地头部姿势,指示相对于会话开始时单个设备的初始取向的取向。例如,当设备被开启时可以相对于初始头部姿势对头部姿势进行跟踪,或者以其他方式操作来扫描环境以建立该环境的表示。154.结合表征物理世界的那部分的内容,地图可以包括元数据。元数据例如可以指示捕获用于形成地图的传感器信息的时间。可替代地或另外地,元数据可以指示在捕获用于形成地图的信息时传感器的位置。位置可以直接表示,诸如采用来自gps芯片的信息,也可以间接表示,诸如采用无线(例如,wi-fi)签名,该wi-fi签名指示在收集传感器数据的同时从一个或多个无线接入点接收到的信号的强度,和/或采用收集传感器数据的同时用户设备连接到的无线接入点的诸如bssid的标示符。155.重建518可以用于ar功能,诸如产生用于遮挡处理或基于物理的处理的物理世界的表面表示。该表面表示可能随着用户移动或真实世界中的对象改变而改变。重建518的各方面可以例如由在世界坐标中产生改变的全局表面表示的部件520使用,其可以由其它部件使用。156.可以基于该信息,诸如通过ar应用504来生成ar内容。ar应用504可以是例如游戏程序,其基于关于物理世界的信息来执行一个或多个功能,诸如视觉遮挡、基于物理的交互和环境推理。它可以通过查询来自世界重建部件516所产生的重建518的不同格式的数据来执行这些功能。在一些实施例中,部件520可以被配置为当物理世界的关注区域中的表示改变时输出更新。例如,该关注区域可以被设置为近似于系统用户附近的物理世界的一部分,诸如用户视野内的部分,或者被投影(预测/确定)为进入用户的视野内。157.ar应用504可以使用该信息来生成和更新ar内容。ar内容的虚拟部分可以结合透视现实510呈现在显示器508上,从而创建真实的用户体验。158.在一些实施例中,可以通过xr设备向用户提供ar体验,该xr设备可以是可穿戴显示设备,它可以是系统的一部分,该系统可以包括远程处理和/或远程数据存储和/或,在一些实施例中,其他用户佩戴的其他可穿戴显示设备。为了简化图示,图4示出了包括单个可穿戴设备的系统580(以下称为“系统580”)的示例。系统580包括头戴式显示设备562(以下称为“显示设备562”),以及支持显示设备562的功能的各种机械和电子模块和系统。显示设备562可以耦合至框架564,该框架564可由显示系统用户或观看者560(以下称为“用户560”)佩戴,并被配置为将显示设备562定位在用户560的眼前。根据各种实施例,显示设备562可以顺序显示。显示设备562可以是单眼的或双眼的。在一些实施例中,显示设备562可以是图3中的显示器508的示例。159.在一些实施例中,扬声器566耦合到框架564并定位在用户560的耳道附近。在一些实施例中,未示出的另一扬声器定位在用户560的另一耳道附近,以提供立体声/可塑声音控制。显示设备562诸如通过有线导线或无线连接568可操作地耦合到本地数据处理模块570,该本地数据处理模块570可以以各种配置安装,诸如固定地附接到框架564,固定地附接到用户560所戴的头盔或帽子,嵌入耳机中或以其它方式可移除地附接到用户560(例如,以背包式配置,以腰带耦合式配置)。160.本地数据处理模块570可以包括处理器以及诸如非易失性存储器(例如,闪存)的数字存储器,这二者都可以用于协助数据的处理、缓存和存储。数据包括:a)从传感器(例如,可以可操作地耦合到框架564)捕获或以其它方式附接到用户560的数据,诸如图像捕获设备(诸如相机)、麦克风、惯性测量单元、加速度计、指南针、gps单元、无线电设备和/或陀螺仪;和/或b)使用远程处理模块572和/或远程数据存储库574获取和/或处理,可能在该处理或取得之后传递给显示设备562的数据。161.在一些实施例中,可穿戴设备可以与远程部件通信。本地数据处理模块570可以通过通信链路576、578(诸如经由有线或无线通信链路)相应地可操作地耦合到远程处理模块572和远程数据存储库574,使得这些远程模块572、574彼此可操作地相互耦合并且可用作本地数据处理模块570的资源。在进一步的实施例中,作为远程数据存储库574的补充或替代,可穿戴设备可以访问基于云的远程数据存储库和/或服务。在一些实施例中,上述头部姿势跟踪部件可以至少部分地在本地数据处理模块570中实现。在一些实施例中,图3中的世界重建部件516可以至少部分地在本地数据处理模块570中实现。例如,本地数据处理模块570可以被配置为执行计算机可执行指令以至少部分地基于数据的至少一部分来生成地图和/或物理世界表示。162.在一些实施例中,处理可以分布在本地处理器和远程处理器上。例如,本地处理可以用于基于利用用户设备上的传感器收集的传感器数据来构造该用户设备上的地图(例如,跟踪地图)。此类地图可由该用户设备上的应用使用。另外,先前创建的地图(例如,规范地图)可以存储在远程数据存储库574中。在适当的已存储或持久地图可用的情况下,它可以代替在设备上本地创建的跟踪地图或在设备上本地创建的跟踪地图之外使用。在一些实施例中,可以将跟踪地图定位到存储地图,使得在跟踪地图与规范地图之间建立对应关系,其中跟踪地图可能相对于用户开启系统时的可穿戴设备的位置来取向,规范地图可以相对于一个或多个持久特征取向。在一些实施例中,持久地图可以被加载在用户设备上,以允许用户设备渲染虚拟内容而没有与对位置进行扫描相关联的延迟,从而根据在扫描期间获取的传感器数据来构建用户的整个环境的跟踪地图。在一些实施例中,用户设备可以访问远程持久地图(例如,存储在云端),而无需在用户设备上下载持久地图。163.在一些实施例中,空间信息可以从可穿戴设备传送到远程服务,例如被配置为将设备定位到在云服务上维护的存储地图的云服务。根据一个实施例,定位过程可以在云中进行,将设备位置与现有地图(例如规范地图)相匹配,并返回将虚拟内容链接到可穿戴设备位置的变换。在这样的实施例中,系统可以避免将地图从远程资源传送到可穿戴设备。其他实施例可以被配置用于基于设备和基于云的定位,例如,以启用网络连接不可用或用户选择不启用基于基于云的定位的功能。164.可替代地或另外地,可以将跟踪地图与先前存储的地图合并以扩展或改善那些地图的质量。确定合适的先前创建的环境地图是否可用和/或将跟踪地图与一个或多个存储的环境地图合并的处理可以在本地数据处理模块570或远程处理模块572中完成。165.在一些实施例中,本地数据处理模块570可以包括被配置为分析和处理数据和/或图像信息的一个或多个处理器(例如,图形处理单元(gpu))。在一些实施例中,本地数据处理模块570可以包括单个处理器(例如,单核或多核arm处理器),这将限制本地数据处理模块570的计算预算,但是实现更小型的设备。在一些实施例中,世界重建部件516可以使用小于单个高级risc机器(arm)核心的计算预算来在非预定义空间上实时生成物理世界表示,使得单个arm核心的剩余计算预算可以访问以用于其它用途,诸如例如提取网格。166.在一些实施例中,远程数据存储库574可以包括数字数据存储设施,该数字数据存储设施可以通过互联网或“云”资源配置中的其它联网配置而可用。在一些实施例中,所有数据被存储在并且所有计算在本地数据处理模块570中执行,从而允许来自远程模块的完全自主的使用。在一些实施例中,所有数据被存储并且所有或大多数计算在远程数据存储库574中执行,从而允许较小的设备。例如,世界重建可以全部或部分地存储在该存储库574中。167.在其中数据被远程存储并且可以通过网络访问的实施例中,数据可以被增强现实系统的多个用户共享。例如,用户设备可以上传他们的跟踪地图,以增强环境地图的数据库。在一些实施例中,跟踪地图上传发生在与可穿戴设备的用户会话结束时。在一些实施例中,跟踪地图上传可以在预定义时间,从先前上传开始的预定义时间段之后,或者在被事件触发时,连续、半连续、间歇地发生。无论基于来自该用户设备还是任何其他用户设备的数据,任何用户设备上传的跟踪地图都可用于扩展或改善先前存储的地图。同样,下载到用户设备的持久地图可以基于来自该用户设备或任何其他用户设备的数据。以该方式,用户可以容易地获得高质量的环境地图以改善他们在ar系统中的体验。168.在另外的实施例中,可以基于在(例如,在云中的)远程资源上所执行的定位来限制和/或避免持久地图下载。在这样的配置中,可穿戴设备或其他xr设备向云服务传送与姿势信息相结合的特征信息(例如,在感测到特征信息中表示的特征时设备的定位信息)。云服务的一个或多个部件可以将特征信息与相应的存储地图(例如,规范地图)相匹配,并且生成由xr设备所维护的跟踪地图与规范地图的坐标系之间变换。其跟踪地图相对于规范地图进行定位的每个xr设备可以基于其自己的跟踪在相对于规范地图指定的位置准确地渲染虚拟内容。169.在一些实施例中,本地数据处理模块570可操作地耦合到电池582。在一些实施例中,电池582是可移动电源,诸如在计数器电池上方。在其它实施例中,电池582是锂离子电池。在一些实施例中,电池582既包括在系统580的非操作时间期间可由用户560充电的内部锂离子电池,又包括可移除的电池,使得用户560可以在更长的时间段内操作系统580,而不必连接到电源以为锂离子电池充电,或者不必关闭系统580以更换电池。170.图5a示出了当用户530在移动穿过物理世界环境532(以下称为“环境532”)时,佩戴有渲染ar内容的ar显示系统的用户530。ar系统沿着用户的移动路径捕获的信息可以被处理成一个或多个跟踪地图。用户530将ar显示系统定位在位置534,并且ar显示系统记录可通行世界相对于位置534的环境信息(例如,物理世界中真实对象的数字表示,其可以随着对真实对象在物理世界的改变被存储和更新)。该信息可以与图像、特征、定向音频输入或其他所需数据结合起来作为姿势存储。位置534例如作为跟踪地图的一部分被聚集到数据输入536,并且至少由可通行世界模块538处理,该可通行世界模块538可以例如通过在图4的远程处理模块572上的处理来实现。在一些实施例中,可通行世界模块538可以包括头部姿势部件514和世界重建部件516,使得经处理的信息可以结合与在渲染虚拟内容中使用的物理对象相关的其他信息来指示对象在物理世界中的位置。171.可通行世界模块538至少部分地确定如从数据输入536确定的ar内容540可以被放置在物理世界中的位置和方式。ar内容通过经由用户界面呈现物理世界呈现和ar内容二者来“放置”在物理世界中,ar内容渲染为好像与物理世界中的对象进行交互,并且物理世界中的对象呈现为好像ar内容在适当时掩盖了用户对这些对象的观看。在一些实施例中,可以通过从重建(例如重建518)中适当地选择固定元素542(例如桌子)的部分来确定ar内容540的形状和位置来放置ar内容。作为示例,固定元素可以是桌子,并且虚拟内容可以定位成使得其看起来好像在该桌子上。在一些实施例中,可以将ar内容放置在视野544中的结构内,该视野可以是当前视野或估计的未来视野。在一些实施例中,ar内容可以持续相对于物理世界的模型546(例如网格)。172.如所描绘的,固定元素542用作可存储在可通行世界模块538中的物理世界内的任何固定元素的代理(例如,数字副本),使得用户530可以感知固定元素542上的内容而无需每次用户530看到固定元素542时系统都必须地图构建到固定元素542。因此,固定元素542可以是来自先前建模会话的网格模型,或者可以由单独的用户确定但是仍然由可通行世界模块538存储,以供多个用户将来参考。因此,可通行世界模块538可以从先前地图构建的环境中识别环境532并显示ar内容,而无需用户530的设备首先对环境532的全部或一部分进行地图构建,从而节省了计算过程和周期并避免了任何渲染的ar内容的时延。173.可以通过ar显示系统来创建物理世界的网格模型546,并且用于交互和显示ar内容540的适当的表面和度量可以由可通行世界模块538存储,以供用户530或其他用户将来取得,而无需完全或部分地重新创建模型。在一些实施例中,数据输入536是诸如地理位置、用户标识和当前活动的输入,以向可通行世界模块538指示一个或多个固定元素中的哪个固定元素542可用,哪个ar内容540最后被放置在固定元素542上,以及是否显示该相同的内容(无论用户如何观看特定的可通行世界模型,这种ar内容都是“持久”内容)。174.即使在其中对象被认为是固定的(例如,厨房桌子)实施例中,可通行世界模块538也可以不时更新物理世界模型中的那些对象新,以考虑到物理世界中变化的可能性。固定对象的模型可能以非常低的频率更新。物理世界中的其它对象可能正在移动或以其它方式不被认为是固定的(例如厨房椅子)。为了渲染具有真实感的ar场景,ar系统可以以比用于更新固定对象的频率高得多的频率来更新这些非固定对象的位置。为了能够准确跟踪物理世界中的所有对象,ar系统可以从多个传感器(包括一个或多个图像传感器)中获取信息。175.图5b是观看光学组件548和伴随部件的示意图。在一些实施例中,指向用户眼睛549的两个眼睛跟踪相机550检测用户眼睛549的度量,诸如用户眼睛549上的眼睛形状、眼睑闭塞、瞳孔方向和闪烁。176.在一些实施例中,传感器之一可以是深度传感器551,诸如飞行时间传感器,其向世界发射信号并检测来自附近对象的那些信号的反射以确定与给定对象的距离。深度传感器例如可以由于那些对象的运动或用户姿势的变化而快速确定对象是否已经进入用户的视野。然而,关于对象在用户视野中的位置的信息可以可替代地或另外地由其它传感器收集。深度信息例如可以从立体视觉图像传感器或全光传感器获得。177.在一些实施例中,世界相机552记录大于外围的视图以对环境532进行地图构建和/或以其他方式创建环境532的模型,并检测可影响ar内容的输入。在一些实施例中,世界相机552和/或相机553可以是灰度和/或彩色图像传感器,该传感器可以以固定的时间间隔输出灰度和/或彩色图像帧。相机553可以在特定时间进一步捕获用户视野内的物理世界图像。即使基于帧的图像传感器的像素的值不变,也可以重复对其像素进行采样。世界相机552、相机553和深度传感器551中的每一个具有相应的视野554、555和556,以从诸如图34a中描绘的物理世界环境532的物理世界场景中收集数据并记录该物理世界场景。178.惯性测量单元557可以确定观看光学组件548的运动和取向。在一些实施例中,每个部件可操作地耦合到至少一个其它部件。例如,深度传感器551可操作地耦合到眼睛跟踪相机550,以相对于用户眼睛549正在注视的实际距离来确认所测量的适应。179.应当理解,观看光学组件548可以包括图34b中所示的一些部件,并且可以包括代替所示部件或除了所示部件之外的部件。例如,在一些实施例中,观看光学组件548可以包括两个世界相机552而不是四个。可替代地或另外地,相机552和553不需要捕获其全部视野的可见光图像。观看光学组件548可以包括其它类型的部件。在一些实施例中,观看光学组件548可以包括一个或多个动态视觉传感器(dvs),其像素可以异步地响应超过阈值的光强度的相对变化。180.在一些实施例中,基于飞行时间信息,观看光学组件548可以不包括深度传感器551。例如,在一些实施例中,观看光学组件548可以包括一个或多个全光相机,其像素可以捕获光强度和入射光的角度,由此可以确定深度信息。例如,全光相机可以包括覆盖有透射衍射掩模(tdm)的图像传感器。可替代地或另外地,全光相机可以包括图像传感器,该图像传感器包含角度敏感像素和/或相位检测自动聚焦像素(pdaf)和/或微透镜阵列(mla)。代替深度传感器551或除了深度传感器551之外,这种传感器可以用作深度信息源。181.还应当理解,图5b中的部件的配置被提供为示例。观看光学组件548可以包括具有任何适当配置的部件,该适当配置可以设定为向用户提供对于一组特定部件实际可行的最大视野。例如,如果观看光学组件548具有一个世界相机552,则该世界相机可以放置在观看光学组件的中心区域而不是侧面。182.来自观看光学组件548中的传感器的信息可以耦合到系统中的一个或多个处理器。处理器可以生成可以被渲染以便使用户感知与物理世界中的对象交互的虚拟内容的数据。可以以任何合适的方式来实现该渲染,包括生成描绘物理和虚拟对象二者的图像数据。在其它实施例中,可以通过调制用户在物理世界中浏览的显示设备的不透明度来在一个场景中描绘物理和虚拟内容。可以控制不透明度以便创建虚拟对象的外观,并且还阻止用户看到物理世界中被虚拟对象遮挡的对象。在一些实施例中,当通过用户界面观看时,图像数据可以仅包括虚拟内容,该虚拟内容可以被修改以使得虚拟内容被用户感知为与物理世界现实地交互(例如,剪辑内容以考虑遮挡)。183.观看光学组件548上的显示内容以产生对象位于特定位置的印象的位置可以取决于观看光学组件的物理性质。此外,用户头部相对于物理世界的姿势以及用户眼睛注视的方向可以影响在物理世界中显示内容的位置将会出现在观察光学组件上的特定位置。如上所述的传感器可以收集该信息,和/或提供可以从中计算该信息的信息,使得接收传感器输入的处理器可以计算应该在观看光学组件548上渲染对象的位置从而为用户创建期望的外观。184.无论如何向用户呈现内容,都可以使用物理世界的模型,使得可以正确计算可受到物理对象影响的虚拟对象的特性,包括虚拟对象的形状、位置、运动和可见性。在一些实施例中,模型可以包括物理世界的重建,例如重建518。185.可以根据从用户的可穿戴设备上的传感器收集的数据来创建该模型。但是,在一些实施例中,可以从多个用户收集的数据中创建模型,该数据可以在远离所有用户的计算设备中汇总(并且该数据可以在“云中”)。186.模型可以至少部分地由世界重建系统创建,诸如例如,图6a中更详细地描绘的图3的世界重建部件516。世界重建部件516可以包括感知模块660,该感知模块660可以生成、更新和存储物理世界的一部分的表示。在一些实施例中,感知模块660可以将传感器的重建范围内的物理世界的部分表示为多个体素。每个体素可以对应于物理世界中预定体积的3d立方体,并且包括表面信息,该表面信息指示在体素表示的体积中是否存在表面。可以为体素分配值,该值指示是否已经确定了它们的对应体积以包括物理对象的表面,确定为空的还是尚未用传感器测量,并且因此其值是未知的。应当理解,不需要明确地存储指示被确定为空或未知的体素的值,因为可以以任何合适的方式将体素的值存储在计算机存储器中,包括不存储被确定为空或未知的体素的信息。187.除了生成用于持久世界表示的信息之外,感知模块660还可以识别并输出ar系统的用户周围的区域中的变化的指示。这种变化的指示可以触发对作为持久世界的一部分存储的体积数据的更新,或者触发其它功能,诸如触发生成ar内容以更新ar内容的触发部件604。188.在一些实施例中,感知模块660可以基于符号距离函数(sdf)模型来识别变化。感知模块660可以被配置为接收诸如例如深度图660a和头部姿势660b的传感器数据,并且然后将传感器数据融合到sdf模型660c中。深度图660a可以直接提供sdf信息,并且图像可以被处理以获得sdf信息。sdf信息表示距用于捕获该信息的传感器的距离。由于那些传感器可以是可穿戴单元的一部分,因此sdf信息可以从可穿戴单元的角度以及因此从用户的角度表示物理世界。头部姿势660b可以使sdf信息能够与物理世界中的体素相关。189.在一些实施例中,感知模块660可以生成、更新和存储在感知范围内的物理世界的部分的表示。感知范围可以至少部分地基于传感器的重建范围来确定,该传感器的重建范围可以至少部分地基于传感器的观察范围的限制来确定。作为特定示例,使用主动ir脉冲操作的主动深度传感器可以在一定距离范围内可靠地操作,从而创建传感器的观察范围,该观察范围可以从几厘米或几十厘米到几米。190.世界重建部件516可以包括可以与感知模块660交互的附加模块。在一些实施例中,持久世界模块662可以基于由感知模块660获取的数据来接收对物理世界的表示。持久世界模块662还可以包括物理世界的各种格式的表示。例如,可以存储诸如体素的体积元数据662b以及网格662c和平面662d。在一些实施例中,可以保存其它信息,诸如深度图。191.在一些实施例中,物理世界的表示(诸如图6a中所示的表示)与稀疏地图相比(诸如如上所述的基于特征点的跟踪地图)可以提供关于物理世界的相对密集的信息。192.在一些实施例中,感知模块660可以包括以各种格式生成物理世界的表示的模块,这些格式包括例如网格660d、平面和语义660e。物理世界的表示可以跨本地存储介质和远程存储介质进行存储。取决于例如存储介质的位置,可以在不同的坐标框架中描述物理世界的表示。例如,可以在相对设备本地的坐标框架中描述存储在设备中的物理世界的表示。物理世界的表示可以具有存储在云端中的对应表示(counterpart)。可以由xr系统中的所有设备所共享的坐标框架中描述云端中的对应表示。193.在一些实施例中,这些模块可以基于在生成表示时一个或多个传感器的感知范围内的数据以及在先前时间捕获的数据和持久世界模块662中的信息来生成表示。在一些实施例中,这些部件可以关于采用深度传感器捕获的深度信息来操作。然而,ar系统可以包括视觉传感器,并且可以通过分析单眼或双眼视觉信息来生成这种表示。194.在一些实施例中,这些模块可以在物理世界的区域上操作。当感知模块660检测到物理世界的子区域中的物理世界的变化时,可以触发那些模块以更新物理世界的子区域。例如,可以通过在sdf模型660c中检测新的表面或其它标准(例如改变表示子区域的足够数量的体素的值)来检测这种变化。195.世界重建部件516可以包括可以从感知模块660接收物理世界的表示的部件664。关于物理世界的信息可以由这些部件根据例如来自应用的使用请求来提取。在一些实施例中,可以诸如经由对预识别区域中的变化或感知范围内的物理世界表示的变化的指示,将信息推送到使用部件。部件664可以包括例如游戏程序和执行用于视觉遮挡、基于物理的交互以及环境推理的处理的其它部件。196.响应于来自部件664的查询,感知模块660可以一种或多种格式发送用于物理世界的表示。例如,当部件664指示该使用是用于视觉遮挡或基于物理的交互时,感知模块660可以发送表面的表示。当部件664指示该使用是用于环境推理时,感知模块660可以发送物理世界的网格、平面和语义。197.在一些实施例中,感知模块660可以包括格式化信息以提供部件664的部件。这种部件的示例可以是光线投射部件660f。使用部件(例如,部件664)例如可以从特定的视点查询关于物理世界的信息。光线投射部件660f可以从该视点从视野内的物理世界数据的一种或多种表示中选择。198.从以上描述中应该理解,感知模块660或ar系统的另一部件可以处理数据以创建物理世界的部分的3d表示。可以通过以下方式来减少要处理的数据:至少部分基于相机视锥和/或深度图像来剔除3d重建体积的部分;提取和保留平面数据;捕获、保留和更新块中的3d重建数据,这些块允许在保持近邻一致性的同时进行本地更新;将遮挡数据提供给生成此类场景的应用,其中遮挡数据是从一个或多个深度数据源的组合中导出的;和/或执行多阶段网格简化。重建可以包含不同复杂程度的数据,包括例如原始数据(例如实时深度数据),融合体积数据(例如体素)和计算数据(例如网格)。199.在一些实施例中,可通行世界模型的部件可以是分布式的,其中一些部分在xr设备上本地执行,而一些部分在远程执行,例如在网络连接的服务器上,或者在云端。本地xr设备与云端之间的信息处理和存储的分配可以影响xr系统的功能和用户体验。例如,通过将处理分配给云端来减少本地设备上的处理可以延长电池寿命并减少本地设备上产生的热量。但是,将过多的处理分配给云端可能会产生不希望的延迟,这导致无法接受的用户体验。200.图6b描绘了根据一些实施例的被配置用于空间计算的分布式部件架构600。分布式部件架构600可以包括可通行世界部件602(例如,图5a中的pw538)、luminos604、api606、sdk608和应用610。luminos604可以包括基于linux的内核,其具有与xr设备兼容的自定义驱动器。api606可包括准许xr应用(例如,应用610)访问xr设备的空间计算特征的应用编程接口。sdk608可包括允许创建xr应用的软件开发套件。201.架构600中的一个或多个部件可以创建并保持可通行世界的模型。在此示例中,传感器数据是在本地设备上收集的。该传感器数据的处理可以部分地在xr设备上本地执行,部分地在云端执行。pw538可以包括至少部分基于由多个用户佩戴的ar设备所捕获的数据而创建的环境地图。在ar体验的会话期间,各个ar设备(诸如以上结合图4描述的可穿戴设备)可以创建跟踪地图,该跟踪地图是地图的一种类型。202.在一些实施例中,设备可以包括构建稀疏地图和密集地图的部件。跟踪地图可以用作稀疏地图,并且可以包括扫描环境的ar设备的头部姿势以及在每个头部姿势处在该环境内检测到的对象有关的信息。可以为每个设备在本地保持那些头部姿势。例如,每个设备上的头部姿势可以是相对于设备开启其会话时的初始头部姿势。结果,每个跟踪地图对创建它的设备可以是本地的。密集地图可以包括表面信息,该表面信息可以由网格或深度信息表示。替代地或附加地,密集地图可以包括从表面或深度信息中导出的更高级别的信息,例如平面和/或其他对象的位置和/或特征。203.在一些实施例中,密集地图的创建可以独立于稀疏地图的创建。例如,可以在ar系统内的单独的处理管线中执行密集地图和稀疏地图的创建。例如,分开的处理可以使得能够以不同的速率来执行不同类型的地图的生成或处理。例如,稀疏地图的刷新速度可能比密集地图的刷新速度快。然而,在一些实施例中,即使在不同的管线中执行,密集地图和稀疏地图的处理也可能是相关的。例如,在稀疏地图中显露的物理世界的变化可以触发密集地图的更新,反之亦然。此外,即使是独立创建的,这些地图也可以一起使用。例如,从稀疏地图导出的坐标系可以用于定义密集地图中的对象的位置和/或取向。204.稀疏地图和/或密集地图可以被持久保存以由同一设备重用和/或与其他设备共享。这样的持久性可以通过将信息存储在云端来实现。ar设备可以将跟踪地图发送到云端,从而例如与从先前存储在云端的持久地图中选择的环境地图合并。在一些实施例中,可以将所选的持久地图从云端发送到ar设备以进行合并。在一些实施例中,持久地图可以相对于一个或多个持久坐标框架取向。这样的地图可以用作规范地图,因为它们可以被多个设备中的任何一个使用。在一些实施例中,可通行世界的模型可以包括一个或多个规范地图或由一个或多个规范地图创建。即使基于设备本地的坐标框架执行一些操作,设备也可以通过确定设备本地的坐标框架与规范地图之间的变换来使用规范地图。205.规范地图可以起源于跟踪地图(tm)(例如,图31a中的tm1102),其可以被提升为规范地图。可以持久保存规范地图,以便访问规范地图的设备一旦确定其本地坐标系与规范地图的坐标系之间的变换,就可以使用规范地图中的信息来确定规范地图中表示的对象在设备周围的物理世界中的位置。在一些实施例中,tm可以是由xr设备创建的头部姿势稀疏地图。在一些实施例中,当xr设备将一个或多个tm发送到云服务器以与由xr设备在不同时间或由其他xr设备捕获的附加tm合并时,可以创建规范地图。206.规范地图或其他地图可以提供由被处理以创建相应地图的数据所表示的物理世界的各个部分有关的信息。图7描绘了根据一些实施例的示例性跟踪地图700。跟踪地图700可以提供由点702表示的对应物理世界中的物理对象的平面图706。在一些实施例中,地图点702可以表示可以包括多个特征的物理对象的特征。例如,桌子的每个角可以是由地图上的点所表示的特征。这些特征可以通过处理图像导出,例如图像可以用增强现实系统中的可穿戴设备的传感器来获取。例如,可以通过以下方式来导出特征:通过处理传感器输出的图像帧,以基于图像中的大梯度或其他适当的标准来识别特征。进一步的处理可能会限制每个帧中的特征数量。例如,处理可以选择可能表示持久对象的特征。一种或多种试探法可以应用于该选择。207.跟踪地图700可以包括关于由设备收集的点702的数据。对于具有跟踪地图中所包括的数据点的每个图像帧,可以存储姿势。姿势可以表示从其捕获图像帧的取向,使得每个图像帧内的特征点可以在空间上相关。该姿势可以通过定位信息来确定,定位信息诸如可通过可穿戴设备上的传感器(诸如imu传感器)导出。替代地或附加地,可以通过将图像帧匹配到描绘物理世界的重叠部分的其他图像帧来确定姿势。通过寻找这种位置相关性,这可以通过匹配两个帧中的特征点的子集来实现,可以计算两个帧之间的相对姿势。相对姿势对于跟踪地图可能就足够了,因为该地图可以相对于基于在开始构建跟踪地图时设备的初始姿势而建立的该设备本地的坐标系。208.并非设备收集的所有特征点和图像帧都可以保留为跟踪地图的一部分,因为用传感器收集的许多信息很可能是多余的。相反,仅某些帧可以添加到地图。可以基于一个或多个标准来选择那些帧,例如与地图中已经存在的图像帧的重叠程度,它们包含的新特征的数量、或该帧中特征的质量度量。未添加到跟踪地图的图像帧可以被丢弃或可用于修改特征的位置。作为另一替代方案,可以保留表示为一组特征的所有或大多数图像帧,但是可以将这些帧的子集指定为关键帧,以用于进一步处理。209.关键帧可以被处理以产生关键装配(keyrig)704。关键帧可以被处理以产生特征点的三维集合并被保存为关键装配704。例如,这种处理可能需要比较从两个相机同时得到的图像帧来立体确定特征点的3d位置。元数据可以与这些关键帧和/或关键装配(例如,姿势)相关联。210.环境地图可以取决于例如环境地图的存储位置而具有多种格式中的任何一种,该环境地图包括例如ar设备的本地存储和远程存储。例如,在内存有限的可穿戴设备上,远程存储中的地图可比本地存储中的地图具有更高的分辨率。为了将更高分辨率的地图从远程存储发送到本地存储,可以对地图进行下采样或以其它方式转换为适当的格式,例如通过减少存储在地图中的物理世界的每个区域的姿势数量和/或为每个姿势存储的特征点的数量。在一些实施例中,来自远程存储的高分辨率地图的切片或部分可以被发送到本地存储,其中切片或部分未被下采样。211.当创建新的跟踪地图时,可以更新环境地图的数据库。为了确定数据库中可能非常大量的环境地图中的哪一个环境地图将被更新,更新可以包括有效地选择数据库中存储的与新的跟踪地图有关的一个或多个环境地图。可以通过相关性对所选的一个或多个环境地图进行排名,并且可以选择最高排名的地图中的一个或多个地图以进行处理,以将较高排名的所选环境地图与新的跟踪地图合并以创建一个或多个更新的环境地图。当新的跟踪地图表示没有预先存在的环境地图要更新的物理世界的一部分时,该跟踪地图可以作为新的环境地图存储在数据库中。212.观看独立显示213.在此描述了用于使用与观看虚拟内容的眼睛的位置无关的xr系统提供虚拟内容的方法和装置。传统上,虚拟内容在显示系统的任何运动时被重新渲染。例如,如果佩戴显示系统的用户观看了显示器上的三维(3d)对象的虚拟表示并围绕3d对象出现的区域走动,则应为每个视点重新渲染3d对象,使得用户具有他或她正围绕占据真实空间的对象走动的感受。然而,重新渲染消耗了系统的大量计算资源,并且由于时延而导致伪像。214.发明人已经认识并理解到,头部姿势(例如,佩戴xr系统的用户的位置和取向)可以用于渲染与用户的头部内的眼睛旋转无关的虚拟内容。在一些实施例中,可以基于跨一个或多个会话的真实空间中的多个坐标框架来生成场景的动态地图,使得与动态地图交互的虚拟内容可以被稳健地渲染,而与用户头部内的眼睛旋转无关和/或与例如在高速的计算密集型操作期间生成的热量所引起的传感器变形无关。在一些实施例中,多个坐标框架的配置可以使第一用户所佩戴的第一xr设备和第二用户所佩戴的第二xr设备能够识别场景中的公共位置。在一些实施例中,多个坐标框架的配置可以使佩戴xr设备的用户能够在场景的相同位置观看虚拟内容。215.在一些实施例中,可以在世界坐标框架中构建跟踪地图,该世界坐标框架可以具有世界原点。当xr设备通电时,世界原点可以是xr设备的第一姿势。世界原点可以与重力对齐,使得xr应用的开发者可以在无需额外工作的情况下进行重力对齐。可以在不同的世界坐标框架中构建不同的跟踪地图,因为跟踪地图可以由在不同的会话中的相同的xr设备和/或由不同的用户佩戴的不同的xr设备捕获。在一些实施例中,xr设备的会话可以从设备通电开始到设备关闭。在一些实施例中,xr设备可以具有头部坐标框架,该头部坐标框架可以具有头部原点。头部原点可以是拍摄图像时xr设备的当前姿势。世界坐标框架的头部姿势与头部坐标框架的头部姿势之间的差异可用于估计跟踪路线。216.在一些实施例中,xr设备可以具有相机坐标框架,该相机坐标框架可以具有相机原点。相机原点可以是xr设备的一个或多个传感器的当前姿势。发明人已经认识并且理解到,相机坐标框架的配置使得能够稳健地显示与用户的头部内的眼睛旋转无关的虚拟内容。该配置还使得能够稳健地显示虚拟内容,而与例如由于操作期间生成的热量导致的传感器变形无关。217.在一些实施例中,xr设备可以具有头部单元,该头部单元具有用户可固定到其头部的头戴式框架,并且可以包括两个波导,在用户的每只眼睛前面一个。波导可以是透明的,使得来自真实世界的对象的环境光可以透射通过波导,并且用户可以看到真实世界的对象。每个波导可以将来自投影仪的投影光发送到用户的相应眼睛。投影光可以在眼睛的视网膜上形成图像。因此,眼睛的视网膜接收环境光和投影光。用户可以同时看到真实世界的对象以及由投影光创建的一个或多个虚拟对象。在一些实施例中,xr设备可以具有检测用户周围的真实世界对象的传感器。这些传感器例如可以是捕获可被处理以识别真实世界对象的位置的图像的相机。218.在一些实施例中,与将虚拟内容附加到世界坐标框架中相反,xr系统可以将坐标框架分配给虚拟内容。这样的配置使得能够描述虚拟内容而不必考虑虚拟内容在何处渲染给用户,但是虚拟内容可以被附接到更持久的框架位置,诸如将在指定位置渲染的关于例如图14至图20c描述的持久坐标框架(pcf)。当对象的位置改变时,xr设备可以检测环境地图中的改变并且确定用户佩戴的头部单元相对于真实世界对象的运动。219.图8示出了根据一些实施例的在物理环境中正在体验由xr系统10渲染的虚拟内容的用户。xr系统可以包括由第一用户14.1佩戴的第一xr设备12.1、网络18和服务器20。用户14.1处于具有以桌子16形式的真实对象的物理环境中。220.在所示示例中,第一xr设备12.1包括头部单元22、腰包24和电缆连接26。第一用户14.1将头部单元22固定至其头部,并且将远离头部单元22的腰包24固定至其腰部。电缆连接26将头部单元22连接到腰包24。头部单元22包括用于在允许第一用户14.1看到诸如桌子16的真实对象的同时向第一用户14.1显示一个或多个虚拟对象的技术。腰包24主要包括第一xr设备12.1的处理和通信能力。在一些实施例中,处理和通信能力可以全部或部分地驻留在头部单元22中,使得腰包24可以被移除或者可以位于诸如背包的另一设备中。221.在所示的示例中,腰包24经由无线连接被连接到网络18。服务器20连接到网络18并保持代表本地内容的数据。腰包24经由网络18从服务器20下载表示本地内容的数据。腰包24经由电缆连接26向头部单元22提供数据。头部单元22可以包括具有光源(例如激光光源或发光二极管(led)光源)的显示器,以及引导光的波导。222.在一些实施例中,第一用户14.1可以将头部单元22安装至其头部,并将腰包24安装至其腰部。腰包24可以通过网络18从服务器20下载图像数据。第一用户14.1可以通过头部单元22的显示器看到桌子16。形成头部单元22的一部分的投影仪可以从腰包24接收图像数据并基于该图像数据生成光。光可以行进通过形成头部单元22的显示器的一部分的一个或多个波导。然后,光可以离开波导并传播到第一用户14.1的眼睛的视网膜上。投影仪可以以在第一用户14.1的眼睛的视网膜上复制的图案生成光。落在第一用户14.1的眼睛的视网膜上的光可以具有所选择的景深,使得第一用户14.1感知在波导之后的预选深度处的图像。另外,第一用户14.1的两只眼睛可以接收稍微不同的图像,使得第一用户14.1的大脑感知到距头部单元22的所选择距离处的一个或多个三维图像。在所示的示例中,第一用户14.1感知桌子16上方的虚拟内容28。虚拟内容28的比例及其相距第一用户14.1的位置和距离由表示虚拟内容28的数据以及用于向第一用户14.1显示虚拟内容28的各种坐标框架确定。223.在所示的示例中,虚拟内容28从附图的角度是不可见的,并且通过使用第一xr设备12.1对于第一用户14.1是可见的。虚拟内容28可以最初作为数据结构驻留在腰包24中的视觉数据和算法内。然后,当头部单元22的投影仪基于数据结构生成光时,数据结构可以将自身表现为光。应当理解,尽管虚拟内容28在第一用户14.1前面的三维空间中不存在,但是虚拟内容28仍表示在三维空间中的图1中,以说明头部单元22的佩戴者感知。可以在该描述中使用三维空间中的计算机数据的可视化来示出由一个或多个用户感知到有助于渲染的数据结构如何在腰包24中的数据结构内彼此相关。224.图9示出根据一些实施例的第一xr设备12.1的部件。第一xr设备12.1可以包括头部单元22,以及形成视觉数据和算法的一部分的各种部件,包括例如渲染引擎30、各种坐标框架32、各种原点和目的地坐标框架34以及各种原点到目的地坐标框架变换器36。各种坐标系可以基于xr设备的本征性质,或者可以通过参考其他信息来确定,诸如此处描述的持久姿势或持久坐标系。225.头部单元22可以包括头戴式框架40、显示系统42、真实对象检测相机44、运动跟踪相机46和惯性测量单元48。226.头戴式框架40可以具有可固定到图8中的第一用户14.1的头部的形状。显示系统42、真实对象检测相机44、运动跟踪相机46和惯性测量单元48可以安装到头戴式框架40,并且因此与头戴式框架40一起移动。227.坐标系统32可以包括本地数据系统52、世界框架系统54、头部框架系统56和相机框架系统58。228.本地数据系统52可以包括数据通道62、本地框架确定例程64和本地框架存储指令66。数据通道62可以是内部软件例程,诸如外部电缆或射频接收机的硬件部件,或者诸如打开的端口的混合部件。数据通道62可以被配置为接收表示虚拟内容的图像数据68。229.本地框架确定例程64可以连接到数据通道62。本地框架确定例程64可以被配置为确定本地坐标框架70。在一些实施例中,本地框架确定例程可以基于真实世界对象或真实世界位置来确定本地坐标框架。在一些实施例中,本地坐标框架可以基于相对于浏览器窗口的底部边缘的顶部边缘、字符的头部或脚、包围虚拟内容的棱柱或边界框的外表面上的节点,或放置定义虚拟内容的面向方向和放置虚拟内容的位置(例如,节点,诸如放置节点或pcf节点)的坐标框架的任何其它合适位置等。230.本地框架存储指令66可以连接到本地框架确定例程64。本领域技术人员将理解,软件模块和例程通过子例程、调用等彼此“连接”。本地框架存储指令66可以将本地坐标框架70存储为原点和目的地坐标框架34内的本地坐标框架72。在一些实施例中,原点和目的地坐标框架34可以是可被操纵或变换以使虚拟内容在会话之间持续存在的一个或多个坐标框架。在一些实施例中,会话可以是xr设备的启动和关闭之间的时间段。两个会话可以是单个xr设备的两个启动和关闭时间段,或者是两个不同的xr设备的启动和关闭时间段。231.在一些实施例中,原点和目的地坐标框架34可以是为了使第一用户的xr设备和第二用户的xr设备识别公共位置所需的一个或多个变换中涉及的坐标框架。在一些实施例中,目的坐标框架可以是应用于目标坐标框架的一系列计算和变换的输出,以便第一和第二用户在相同位置中观看虚拟内容。232.渲染引擎30可以连接到数据通道62。渲染引擎30可以从数据通道62接收图像数据68,使得渲染引擎30可以至少部分地基于图像数据68渲染虚拟内容。233.显示系统42可以连接到渲染引擎30。显示系统42可以包括将图像数据68变换为可见光的部件。可见光可以形成两个图案,每只眼睛一个。可见光可以进入图8中的第一用户14.1的眼睛,并且可以在第一用户14.1的眼睛的视网膜上被检测到。234.真实对象检测相机44可以包括可以从头戴式框架40的不同侧捕获图像的一个或多个相机。运动跟踪相机46可以包括可以在头戴式框架40的侧面上捕获图像的一个或多个相机。可以使用一组一个或多个相机代替表示真实对象检测相机44和运动跟踪相机46的两组一个或多个相机。在一些实施例中,相机44、46可以捕获图像。如上所述,这些相机可以收集用于构造跟踪地图的数据。235.惯性测量单元48可以包括用于检测头部单元22的运动的多个设备。惯性测量单元48可以包括重力传感器、一个或多个加速度计以及一个或多个陀螺仪。惯性测量单元48的传感器组合地跟踪头部单元22在至少三个正交方向中以及围绕至少三个正交轴的运动。236.在所示的示例中,世界框架系统54包括世界表面确定例程78、世界框架确定例程80和世界框架存储指令82。世界表面确定例程78连接到真实对象检测相机44。世界表面确定例程78接受基于由真实对象检测相机44捕获的图像的图像和/或关键帧,并且处理图像以识别图像中的表面。深度传感器(未示出)可以确定到表面的距离。因此,这些表面由包括他们的大小、形状和与真实对象检测相机的距离的三个维度的数据表示。237.在一些实施例中,世界坐标框架84可以基于初始化头部姿势会话时的原点。在一些实施例中,世界坐标框架可以位于设备被启动的位置,或者如果在启动会话期间丢失头部姿势,则世界坐标框架可以位于新的地方。在一些实施例中,世界坐标框架可以是头部姿势会话开始时的原点。238.在所示的示例中,世界框架确定例程80被连接到世界表面确定例程78,并基于由世界表面确定例程78确定的表面的位置来确定世界坐标框架84。世界框架存储指令82被连接到世界框架确定例程80,以从世界框架确定例程80接收世界坐标框架84。世界框架存储指令82将世界坐标框架84存储为原点与目的地坐标框架34内的世界坐标框架86。239.头部框架系统56可以包括头部框架确定例程90和头部框架存储指令92。头部框架确定例程90可以连接到运动跟踪相机46和惯性测量单元48。头部框架确定例程90可以使用来自运动跟踪相机46和惯性测量单元48的数据来计算头部坐标框架94。例如,惯性测量单元48可以具有确定相对于头部单元22的重力方向的重力传感器。运动跟踪相机46可以连续地捕获由头部框架确定例程90用来细化头部坐标框架94的图像。当图8中的第一用户14.1移动他们的头部时,头部单元22移动。运动跟踪相机46和惯性测量单元48可以连续地将数据提供给头部框架确定例程90,使得头部框架确定例程90可以更新头部坐标框架94。240.头部框架存储指令92可以连接到头部框架确定例程90,以从头部框架确定例程90接收头部坐标框架94。头部框架存储指令92可以将头部坐标框架94存储为原点和目的地坐标框架34中的头部坐标框架96。头部框架存储指令92可以在头部框架确定例程90重新计算头部坐标框架94时,将更新的头部坐标框架94重复存储为头部坐标框架96。在一些实施例中,头部坐标框架可以是可穿戴xr设备12.1相对于本地坐标框架72的位置。241.相机框架系统58可以包括相机内在特性98。相机内在特性98可以包括作为其设计和制造特征的头部单元22的尺寸。相机内在特性98可用于计算存储在原点和目的地坐标框架34内的相机坐标框架100。242.在一些实施例中,相机坐标框架100可以包括图8中的第一用户14.1的左眼的所有瞳孔位置。当左眼从左向右或上下移动时,左眼的瞳孔位置位于相机坐标框架100内。另外,右眼的瞳孔位置位于右眼的相机坐标框架100内。在一些实施例中,相机坐标框架100可以包括当拍摄图像时相机相对于本地坐标框架的位置。243.原点到目的地坐标框架变换器36可以包括本地到世界坐标变换器104、世界到头部坐标变换器106和头部到相机坐标变换器108。本地到世界坐标变换器104可以接收本地坐标框架72并将本地坐标框架72变换为世界坐标框架86。本地坐标框架72到世界坐标框架86的变换可以表示为在世界坐标框架86内的变换为世界坐标框架110的本地坐标框架。244.世界到头部坐标变换器106可以从世界坐标框架86变换为头部坐标框架96。世界到头部坐标变换器106可以将变换为世界坐标框架110的本地坐标框架变换为头部坐标框架96。该变换可以表示为在头部坐标框架96内变换为头部坐标框架112的本地坐标框架。245.头部到相机坐标变换器108可以从头部坐标框架96变换为相机坐标框架100。头部到相机坐标变换器108可以将变换为头部坐标框架112的本地坐标框架变换为在相机坐标框架100内的变换为相机坐标框架114的本地坐标框架。可以将变换为相机坐标框架114的本地坐标框架输入到渲染引擎30中。渲染引擎30可以基于变换为相机坐标框架114的本地坐标框架来渲染表示本地内容28的图像数据68。246.图10是各种原点和目的地坐标框架34的空间表示。在该图中表示了本地坐标框架72、世界坐标框架86、头部坐标框架96和相机坐标框架100。在一些实施例中,当在现实世界中放置虚拟内容以便用户可以观看该虚拟内容时,与xr内容28相关联的本地坐标框架可以具有相对于本地和/或世界坐标框架和/或pcf的位置和旋转(例如,可以提供节点和面向方向)。每个相机可以具有包含一只眼睛的所有瞳孔位置的其自己的相机坐标框架100。附图标记104a和106a分别表示由图9中的本地到世界坐标变换器104、世界到头部坐标变换器106和头部到相机坐标变换器108进行的变换。247.图11描绘了根据一些实施例的用于从头部坐标框架变换到相机坐标框架的相机渲染协议。在所示的示例中,单只眼睛的瞳孔从位置a移动到位置b。要显现为静止的虚拟对象将取决于瞳孔的位置投影到两个位置a或b之一的深度平面上(假设相机被配置为使用基于瞳孔的坐标框架)。结果,当眼睛从位置a移动到位置b时,使用变换为头部坐标框架的瞳孔坐标框架将导致静止的虚拟对象的抖动。该情况称为视图相关的显示或投影。248.如图12所示,相机坐标框架(例如cr)被放置并包含所有瞳孔位置,并且无论瞳孔位置a和b如何,对象投影现在都将是一致的。头部坐标框架变换为cr框架,该cr框架被称为视图独立显示或投影。可以将图像重新投影应用于虚拟内容以解决眼睛位置的变化,然而,由于渲染仍处于相同位置,因此可以最小化抖动。249.图13更详细地示出显示系统42。显示系统42包括立体分析器144,该立体分析器144连接到渲染引擎30并形成视觉数据和算法的一部分。250.显示系统42进一步包括左投影仪166a和右投影仪166b以及左波导170a和右波导170b。左投影仪166a和右投影仪166b连接到电源。每个投影仪166a和166b具有用于将要提供给相应投影仪166a或166b的图像数据的相应输入。相应的投影仪166a或166b在通电时生成二维图案的光并从中发出光。左波导170a和右波导170b被定位成分别接收来自左投影仪166a和右投影仪166b的光。左波导170a和右波导170b是透明波导。251.在使用中,用户将头戴式框架40安装到他们的头部。头戴式框架40的部件可例如包括围绕用户的头部的后面缠绕的带子(未示出)。左波导170a和右波导170b然后位于用户的左眼220a和右眼220b的前面。252.渲染引擎30将其接收的图像数据输入到立体分析器144中。该图像数据是图8中本地内容28的三维图像数据。该图像数据被投影到多个虚拟平面上。立体分析器144分析图像数据,以基于用于投影到每个深度平面上的图像数据确定左图像数据集和右图像数据集。左图像数据集和右图像数据集是表示二维图像的数据集,该二维图像以三维进行投影以给予用户深度感。253.立体分析器144将左图像数据集和右图像数据集输入到左投影仪166a和右投影仪166b。然后,左投影仪166a和右投影仪166b创建左照明图案和右照明图案。显示系统42的部件以平面图示出,但是应当理解,当以正视图示出时,左图案和右图案是二维图案。每个光图案包括多个像素。为了说明的目的,示出了来自两个像素的光线224a和226a离开左投影仪166a并进入左波导170a。光线224a和226a从左波导170a的侧面反射。示出了光线224a和226a通过内部反射在左波导170a内从左向右传播,但是应当理解,光线224a和226a也使用折射和反射系统在一定方向中传播到纸中。254.光线224a和226a通过瞳孔228a离开左光波导170a,并且然后通过左眼220a的瞳孔230a进入左眼220a。然后,光线224a和226a落在左眼220a的视网膜232a上。以该方式,左光图案落在左眼220a的视网膜232a上。给用户的感觉是,形成在视网膜232a上的像素是用户感知为在左波导170a的与左眼220a相对的一侧上的某个距离处的像素234a和236a。深度感知是通过操纵光的焦距来创建的。255.以类似的方式,立体分析器144将右图像数据集输入到右投影仪166b中。右投影仪166b透射右光图案,该右光图案由光线224b和226b形式的像素表示。光线224b和226b在右波导170b内反射并通过瞳孔228b出射。光线224b和226b然后通过右眼220b的瞳孔230b进入并且落在右眼220b的视网膜232b上。光线224b和226b的像素被感知为右波导170b后面的像素134b和236b。256.在视网膜232a和232b上创建的图案被分别感知为左图像和右图像。由于立体分析器144的功能,左图像和右图像彼此略有不同。左图像和右图像在用户的脑海中被感知为三维渲染。257.如所提及的,左波导170a和右波导170b是透明的。来自诸如左波导170a和右波导170b的与眼睛220a和220b相对的一侧上的桌子16的真实对象的光可以投影通过左波导170a和右波导170b并落在视网膜232a和232b上。258.持久坐标框架(pcf)259.本文描述了用于在共享空间内在用户实例之间提供空间持久性的方法和装置。如果没有空间持久性,则用户在会话中放置在物理世界中的虚拟内容在不同会话中的用户视图中可能不存在,或者可能会放错位置。如果没有空间持久性,则一个用户放置在物理世界中的虚拟内容在第二用户的视图中可能不存在或可能错位,即使第二用户打算与第一用户共享相同的物理空间体验。260.发明人已经认识并理解到,可以通过持久坐标框架(pcf)提供空间持久性。可以基于一个或多个点来定义pcf,这些点表示在物理世界中识别的特征(例如,拐角、边缘)。可以选择特征,使得它们从xr系统的一个用户实例到另一个用户实例看起来是相同的。261.此外,当相对于仅基于跟踪地图的本地地图进行渲染时,使得计算的跟踪路径(例如,相机轨迹)偏离实际跟踪路径的跟踪期间的漂移会导致虚拟内容的位置出现错位。当xr设备随着时间收集场景的更多信息时,可以细化空间的跟踪地图以校正漂移。但是,如果在地图细化之前将虚拟内容放置在真实对象上并相对于从跟踪地图导出的设备的世界坐标框架进行保存,则虚拟内容可能会出现位移,就像真实对象在地图细化过程中已移动一样。可以根据地图细化来更新pcf,因为pcf是基于特征定义的,并且随着特征在地图细化期间移动而被更新。262.pcf可以包括六个自由度相,对于地图坐标系的平移和旋转。pcf可以存储在本地存储介质和/或远程存储介质中。取决于例如存储位置,可以相对于地图坐标系计算pcf的平移和旋转。例如,设备本地使用的pcf可能相对于设备的世界坐标框架具有平移和旋转。云端的pcf可能具有相对于规范地图的规范坐标框架的平移和旋转。263.pcf可以提供对物理世界的稀疏表示,提供的关于物理世界的信息少于所有可用信息,使得它们可以被有效地处理和转移。用于处理持久空间信息的技术可包括基于跨越一个或多个会话的真实空间中的一个或多个坐标系来创建动态地图,在稀疏地图上生成持久坐标框架(pcf),其可通过例如应用编程接口(api)暴露给xr应用。264.图14是示出根据一些实施例的持久坐标框架(pcf)的创建以及xr内容到pcf的附加的框图。每个框可以表示存储在计算机存储器中的数字信息。在应用1180的情况下,数据可以表示计算机可执行指令。在虚拟内容1170的情况下,数字信息可以定义例如由应用1180指定的虚拟对象。在其他框的情况下,数字信息可以表征物理世界的某些方面。265.在所示的实施例中,一个或多个pcf根据可穿戴设备上的传感器捕获的图像来创建。在图14的实施例中,传感器是视觉图像相机。这些相机可以是与用于形成跟踪地图的相机相同的相机。因此,由图14建议的一些处理可以作为更新跟踪地图的一部分而被执行。但是,图14示出了除了跟踪地图之外还生成了提供持久性的信息。266.为了导出3dpcf,一起处理来自以能够进行立体图像分析的配置被安装到可穿戴设备的两个相机的两个图像1110。图14示出了图像1和图像2,图像1和图像2中的每个图像均来自相机之一。为了简单起见,示出了来自每个相机的单个图像。然而,每个相机可以输出图像帧的流,并且可以针对流中的多个图像帧执行图14的处理。267.因此,图像1和图像2可以分别是图像帧序列中的一个帧。可以对序列中的连续图像帧重复图14所示的处理,直到包含特征点的图像帧提供合适的图像以根据该图像形成持久的空间信息。替代地或附加地,在用户移动使得用户不再足够靠近先前(previous)识别的pcf以可靠地使用该pcf来确定相对于物理世界的位置时,可以重复图14的处理。例如,xr系统可以为用户保持当前的pcf。当该距离超过阈值时,系统可以切换到更靠近用户的新的当前pcf,其可以根据图14的过程使用在用户当前位置获取的图像帧来生成。268.即使当生成单个pcf时,也可以处理图像帧的流以识别描述物理世界中内容的图像帧,该内容可能是稳定的,并且可以由图像帧中描绘的物理世界区域附近的设备容易地识别出来。在图14的实施例中,该处理开始于图像中的特征1120的识别。例如,可以通过寻找图像中超过阈值或其他特征的梯度的位置来识别特征,该特征可以例如对应于对象的拐角。在所示的实施例中,特征是点,但是可以替代地或附加地使用其他可识别的特征,例如边缘。269.在所示的实施例中,选择固定数量n的特征1120进行进一步处理。可以基于一个或多个标准,例如,梯度的大小或与其他特征点的接近度,来选择那些特征点。替代地或附加地,特征点可以例如基于暗示特征点是持久的特性来试探性地选择。例如,可以基于可能对应于窗户或门或大件家具的拐角的特征点的特性来定义试探法。这种试探法可能会考虑到特征点本身及其周围的事物。作为特定示例,每个图像的特征点的数量可以在100与500之间或150与250之间,例如200。270.不管选择的特征点的数量如何,都可以为特征点计算描述符1130。在该示例中,为每个选择的特征点计算描述符,但是可以为特征点的组或特征点的子集或图像内的所有特征计算描述符。描述符表征特征点,以便在物理世界中表示相同对象的特征点被分配相似的描述符。描述符可以实现两个帧的对齐,例如在一个地图相对于另一个地图定位时可能会发生。代替搜索使两个图像的特征点之间的距离最小化的帧的相对取向,可以通过识别具有相似的描述符的特征点来进行两个帧的初始对齐。图像帧的对齐可以基于具有相似描述符的对齐点,与计算图像中所有特征点的对齐相比,这可能需要更少的处理。271.描述符可以被计算为特征点到描述符的映射,或者在一些实施例中,计算为特征点周围的图像的块(patch)到描述符的映射。描述符可以是数值量。美国专利申请16/190,948描述了特征点的计算描述符,并且通过引用将其全部内容结合在此。272.在图14的示例中,为每个图像帧中的每个特征点计算描述符1130。基于描述符和/或特征点和/或图像本身,图像帧可以被识别为关键帧1140。在所示的实施例中,关键帧是满足某一标准的图像帧,然后选择该图像帧用于进一步处理。例如,在制作跟踪地图时,可以选择将有意义的信息添加到地图的图像帧作为整合到地图中的关键帧。另一方面,可以丢弃基本上与已经将图像帧整合到地图中的区域重叠的图像帧,使得它们不会成为关键帧。替代地或附加地,可以基于图像帧中的特征点的数量和/或类型来选择关键帧。在图14的实施例中,被选择以包括在跟踪地图中的关键帧1150也可以被视为用于确定pcf的关键帧,但是可以使用选择用于生成pcf的关键帧的不同或附加标准。273.尽管图14示出了关键帧被用于进一步处理,但是从图像获取的信息可以以其他形式被处理。例如,可以替代地或附加地处理诸如在关键装配中的特征点。而且,尽管关键帧被描述为是从单个图像帧导出的,但是关键帧与所获取的图像帧之间不必存在一对一的关系。例如,关键帧例如可以获取自多个图像帧,诸如通过将图像帧拼接或者聚合在一起,使得在关键帧中仅保留出现在多个图像中的特征。274.关键帧可以包括图像信息和/或与图像信息相关联的元数据。在一些实施例中,可以将由相机44、46(图9)捕获的图像计算为一个或多个关键帧(例如,关键帧1、2)。在一些实施例中,关键帧可以包括相机姿势。在一些实施例中,关键帧可以包括以相机姿势捕获的一个或多个相机图像。在一些实施例中,xr系统可以确定以相机姿势捕获的相机图像的一部分是无用的,并且因此不将该部分包括在关键帧中。因此,使用关键帧将新图像与场景的早期认知对齐可以减少xr系统计算资源的使用。在一些实施例中,关键帧可以在具有方向/角度的位置处包括图像和/或图像数据。在一些实施例中,关键帧可以包括可以观察到一个或多个地图点的位置和方向。在一些实施例中,关键帧可以包括具有id的坐标帧。美国专利申请第15/877,359号描述了关键帧,在此通过引用将其全部内容并入本文。275.可以选择一些或全部关键帧1140进行进一步处理,例如为关键帧生成持久姿势1150。该选择可以基于图像帧中所有特征点或其子集的特性。这些特性可以根据对描述符、特征和/或图像帧本身进行处理来确定。作为特定示例,选择可以基于被识别为可能与持久对象有关的特征点的聚类。276.每个关键帧与获取该关键帧的相机的姿势相关联。对于选择用于处理成持久姿势的关键帧,该姿势信息可以与关于关键帧的其他元数据一起保存,例如在获取时和/或在获取位置处的wifi指纹和/或gps坐标。277.持久姿势是设备可以用来相对于先前获取的有关物理世界的信息进行自身定向的信息源。例如,如果从中创建了持久姿势的关键帧被合并到物理世界的地图中,则设备可以使用与持久姿势相关联的关键帧中足够数量的特征点,将自身相对于该持久姿势进行定向。设备可以将其对周围环境拍摄的当前图像与持久姿势对齐。该对齐可以基于将当前图像与引起持久姿势的图像1110、特征1120和/或描述符1130、或该图像或那些特征或描述符的任何子集进行匹配。在一些实施例中,与持久姿势匹配的当前图像帧可以是已合并到设备的跟踪地图中的另一个关键帧。278.关于持久姿势的信息可以以促进在多个应用之间共享的格式存储,该多个应用可以在相同或不同的设备上执行。在图14的示例中,一些或所有的持久姿势可以被反映为持久坐标框架(pcf)1160。像持久姿势一样,pcf可以与地图相关联并且可以包括设备可以用来确定其相对于该pcf的取向的一组特征或其他信息。pcf可以包括定义相对于其地图的原点的变换的变换,使得通过将其位置与pcf相关联,设备可以确定其相对于地图中所反映的物理世界中的任何对象的位置。279.由于pcf提供了一种用于确定相对于物理对象的位置的机制,因此应用(例如应用1180)可以定义虚拟对象相对于一个或多个pcf的位置,这些位置用作虚拟内容1170的锚点。例如,图14示出了app1已经将其虚拟内容2与pcf1.2相关联。同样,应用2已将其虚拟内容3与pcf1.2相关联。还示出了app1将其虚拟内容1与pcf4.5相关联,并且示出了app2将其虚拟内容4与pcf3相关联。在一些实施例中,pcf3可以基于图像3(未示出),并且pcf4.5可以基于图像4和图像5(未显示),类似于pcf1.2如何基于图像1和图像2。当渲染此虚拟内容时,设备可以应用一个或多个变换来计算信息,例如虚拟内容相对于设备的显示的位置和/或物理对象相对于虚拟内容的所需位置的位置。使用pcf作为参考可以简化此类计算。280.在一些实施例中,持久姿势可以是具有一个或多个相关联的关键帧的坐标位置和/或方向。在一些实施例中,可以在用户已经行进一定距离(例如三米)之后自动创建持久姿势。在一些实施例中,持久姿势可以在定位期间用作参考点。在一些实施例中,可以将持久姿势存储在可通行世界中(例如,可通行世界模块538)。281.在一些实施例中,可以基于相邻pcf之间允许的预定距离来确定新的pcf。在一些实施例中,当用户行进预定距离(例如,五米)时,可以将一个或多个持久姿势计算到pcf中。在一些实施例中,pcf可以与例如可通行世界中的一个或多个世界坐标框架和/或规范坐标框架相关联。在一些实施例中,取决于例如安全设置,pcf可以被存储在本地数据库和/或远程数据库中。282.图15示出了根据一些实施例的建立和使用持久坐标框架的方法4700。方法4700可以开始于使用xr设备的一个或多个传感器捕获(动作4702)关于场景的图像(例如,图14中的图像1和图像2)。可以使用多个相机,并且一个相机可以生成多个图像,例如以流的形式。283.方法4700可以包括从捕获的图像提取(4704)关注点(例如,图7中的地图点702,图14中的特征1120),生成(动作4706)所提取的关注点的描述符(例如,图14中的描述符1130),并基于描述符生成(动作4708)关键帧(例如,关键帧1140)。在一些实施例中,该方法可以比较关键帧中的关注点,并形成共享预定量的关注点的关键帧对。该方法可以使用各个关键帧对来重建物理世界的一部分。可以将物理世界的映射部分保存为3d特征(例如,图7中的关键装配704)。在一些实施例中,关键帧对中的被选择部分可以用于构建3d特征。在一些实施例中,可以选择性地保存映射的结果。未用于构建3d特征的关键帧可以通过姿势与3d特征关联,例如,利用关键帧的姿势之间的协方差矩阵表示关键帧之间的距离。在一些实施例中,可以选择关键帧对来构建3d特征,使得构建的3d特征的每两个之间的距离在预定距离内,这可以被确定以平衡所需的计算量和结果模型的准确度水平。这样的方法能够为xr系统提供具有适合于进行高效且准确计算的数据量的物理世界的模型。在一些实施例中,两个图像的协方差矩阵可以包括两个图像的姿势(例如,六个自由度)之间的协方差。284.方法4700可以包括基于关键帧生成(动作4710)持久姿势。在一些实施例中,该方法可以包括基于从关键帧对中重建的3d特征来生成持久姿势。在一些实施例中,持久姿势可以被附接到3d特征。在一些实施例中,持久姿势可以包括用于构建3d特征的关键帧的姿势。在一些实施例中,持久姿势可以包括用于构建3d特征的关键帧的平均姿势。在一些实施例中,可以生成持久姿势,使得相邻的持久姿势之间的距离在预定值内,例如在一米至五米的范围内,介于两者之间的任何值或任何其他适当的值。在一些实施例中,相邻的持久姿势之间的距离可以由相邻的持久姿势的协方差矩阵表示。285.方法4700可以包括基于持久姿势来生成(动作4712)pcf。在一些实施例中,可以将pcf附接到3d特征。在一些实施例中,pcf可以与一个或多个持久姿势相关联。在一些实施例中,pcf可以包括相关联的持久姿势之一的姿势。在一些实施例中,pcf可以包括相关联的持久姿势的姿势的平均姿势。在一些实施例中,可以生成pcf,以使得相邻pcf之间的距离在预定值内,例如在三米到十米的范围内,介于两者的任何值或任何其他适当的值。在一些实施例中,相邻pcf之间的距离可以由相邻pcf的协方差矩阵表示。在一些实施例中,pcf可以经由例如应用编程接口(api)暴露给xr应用,使得xr应用可以通过pcf访问物理世界的模型而无需访问模型本身。286.方法4700可以包括将要由xr设备显示的虚拟对象的图像数据与pcf中的至少一个相关联(动作4714)。在一些实施例中,该方法可以包括计算虚拟对象相对于相关联的pcf的平移和取向。应当理解,没有必要将虚拟对象与由放置虚拟对象的设备生成的pcf相关联。例如,设备可以获取云端的规范地图中的被保存的pcf,并将虚拟对象与获取到的pcf相关联。应当理解,在随时间而调整pcf时,虚拟对象可以与相关联的pcf一起移动。287.图16示出了根据一些实施例的第一xr设备12.1以及第二xr设备12.2和服务器20的视觉数据和算法。图16中所示的部件可以操作以执行与如本文中所描述的生成、更新和/或使用空间信息(诸如,持久姿势、持久坐标框架、跟踪地图或规范地图)相关联的一些或全部操作。尽管未示出,但是第一xr设备12.1可以被配置为与第二xr设备12.2相同。服务器20可以具有地图存储例程118、规范地图120、地图发送器122和地图合并算法124。288.可以与第一xr设备12.1处于相同场景中的第二xr设备12.2可以包括永久坐标框架(pcf)集成单元1300、生成可以用于渲染虚拟对象的图像数据68的应用1302、以及框架嵌入生成器308(参见图21)。在一些实施例中,可以将地图下载系统126、pcf识别系统128、地图2、定位模块130、规范地图合并器132、规范地图133和地图发布者136集合为可通行世界单元1304。pcf集成单元1300可以连接到可通行世界单元1304和第二xr设备12.2的其它部件,以允许pcf的取得、生成、使用、上传和下载。289.包括pcf的地图可以在变化的世界中实现更多的持久性。在一些实施例中,定位包括例如图像的匹配特征的跟踪地图可以包括从由pcf构成的地图中选择表示持久内容的特征,这使得能够进行快速匹配和/或定位。例如,在人们进出场景并且诸如门之类的对象相对于场景移动的世界中,需要更少的存储空间和传输速率,并且能够使用单独的pcf及其相互之间的关系(例如,pcf的集成星座)来映射场景。290.在一些实施例中,pcf集成单元1300可以包括先前存储在第二xr设备12.2的存储单元上的数据存储中的pcf1306、pcf跟踪器1308、持久姿势获取器1310、pcf检查器1312、pcf生成系统1314、坐标框架计算器1316、持久姿势计算器1318和包括跟踪地图和持久姿势变换器1320、持久姿势和pcf变换器1322以及pcf和图像数据变换器1324的三个变换器。291.在一些实施例中,pcf跟踪器1308可以具有由应用1302可选择的打开提示和关闭提示。应用1302可以由第二xr设备12.2的处理器可执行,以例如显示虚拟内容。应用1302可以具有经由打开提示来打开pcf跟踪器1308的调用。当pcf跟踪器1308打开时,pcf跟踪器1308可以生成pcf。应用1302可以具有可以经由关闭提示来关闭pcf跟踪器1308的后续调用。当pcf跟踪器1308关闭时,pcf跟踪器1308终止pcf生成。292.在一些实施例中,服务器20可包括先前已经与规范地图120相关联地保存的多个持久姿势1332和多个pcf1330。地图发送器122可将规范地图120与持久姿势1332和/或pcf1330一起发送到第二xr设备12.2。持久姿势1332和pcf1330可以与规范地图133相关联地存储在第二xr设备12.2上。当地图2定位到规范地图133时,可以与地图2相关联地存储持久姿势1332和pcf1330。293.在一些实施例中,持久姿势获取器1310可以获取地图2的持久姿势。pcf检查器1312可以连接到持久姿势获取器1310。pcf检查器1312可以基于由持久姿势获取器1310取得的持久姿势从pcf1306取得pcf。由pcf检查器1312取得的pcf可以形成初始组的pcf,该初始组的pcf用于基于pcf的图像显示。294.在一些实施例中,应用1302可能需要生成附加pcf。例如,如果用户移动到之前未地图构建的区域,则应用1302可以打开pcf跟踪器1308。pcf生成系统1314可以连接到pcf跟踪器1308,并且随着地图2开始扩展而开始基于地图2生成pcf。由pcf生成系统1314生成的pcf可以形成第二组pcf,该第二组pcf可以用于基于pcf的图像显示。295.坐标框架计算器1316可以连接到pcf检查器1312。在pcf检查器1312取得pcf之后,坐标框架计算器1316可以调用头部坐标框架96以确定第二xr设备12.2的头部姿势。坐标框架计算器1316还可调用持久姿势计算器1318。持久姿势计算器1318可直接或间接连接到帧嵌入生成器308。在一些实施例中,可以将图像/帧指定为与先前的关键帧相距阈值距离(例如3米)行进之后的关键帧。持久姿势计算器1318可以基于多个(例如,三个)关键帧生成持久姿势。在一些实施例中,持久姿势可以基本上是多个关键帧的坐标框架的平均值。296.跟踪地图和持久姿势变换器1320可以连接到地图2和持久姿势计算器1318。跟踪地图和持久姿势变换器1320可以将地图2变换为持久姿势以确定相对于地图2的原点处的持久姿势。297.持久姿势和pcf变换器1322可以连接到跟踪地图和持久姿势变换器1320,并进一步连接到pcf检查器1312和pcf生成系统1314。持久姿势和pcf变换器1322可以将(跟踪地图已经变换到的)持久姿势从pcf检查器1312和pcf生成系统1314变换为pcf,以确定相对于持久姿势的pcf。298.pcf和图像数据变换器1324可以连接到持久姿势和pcf变换器1322以及数据通道62。pcf和图像数据变换器1324将pcf变换为图像数据68。渲染引擎30可以连接到pcf和图像数据变换器1324以相对于pcf向用户显示图像数据68。299.pcf集成单元1300可以将采用pcf生成系统1314生成的附加pcf存储在pcf1306内。pcf1306可以相对于持久姿势存储。当地图发布者136向服务器20发送地图2时,地图发布者136可以取得pcf1306和与pcf1306相关联的持久姿势,地图发布者136还向服务器20发送与地图2相关联的pcf和持久姿势。当服务器20的地图存储例程118存储地图2时,地图存储例程118还可以存储由第二观看设备12.2生成的持久姿势和pcf。地图合并算法124可以采用与规范地图120相关联并分别存储在持久姿势1332和pcf1330内的地图2的持久姿势和pcf来创建规范地图120。300.第一xr设备12.1可以包括与第二xr设备12.2的pcf集成单元1300相似的pcf集成单元。当地图发送器122向第一xr设备12.1发送规范地图120时,地图发送器122可以发送与规范地图120相关联并且源自第二xr设备12.2的持久姿势1332和pcf1330。第一xr设备12.1可以将pcf和持久姿势存储在第一xr设备12.1的存储设备上的数据存储内。然后,第一xr设备12.1可以利用源自第二xr设备12.2的持久姿势和pcf以用于相对于pcf的图像显示。另外地或替代地,第一xr设备12.1可以以类似于如上所述的第二xr设备12.2的方式取得、生成、使用、上传和下载pcf和持久姿势。301.在所示的示例中,第一xr设备12.1生成本地跟踪地图(以下称为“地图1”),并且地图存储例程118从第一xr设备12.1接收地图1。然后,地图存储例程118将地图1作为规范地图120存储在服务器20的存储设备上。302.第二xr设备12.2包括地图下载系统126、锚点识别系统128、定位模块130、规范地图合并器132、本地内容定位系统134以及地图发布者136。303.在使用中,地图发送器122将规范地图120发送到第二xr设备12.2,并且地图下载系统126从服务器20下载并存储规范地图120作为规范地图133。304.锚点识别系统128连接到世界表面确定例程78。锚点识别系统128基于由世界表面确定例程78检测到的对象来识别锚点。锚点识别系统128使用锚点生成第二地图(地图2)。如循环138所示,锚点识别系统128继续识别锚点并继续更新地图2。基于由世界表面确定例程78提供的数据,将锚点的位置记录为三维数据。世界表面确定例程78从真实对象检测相机44接收图像并且从深度传感器135接收深度数据,以确定表面的位置以及它们与深度传感器135的相对距离。305.定位模块130连接到规范地图133和地图2。定位模块130重复尝试将地图2定位到规范地图133。规范地图合并器132连接到规范地图133和地图2。当定位模块130将地图2定位到规范地图133时,规范地图合并器132将规范地图133合并到地图2的锚点中。然后,采用规范地图中包括的丢失数据来更新地图2。306.本地内容定位系统134连接到地图2。本地内容定位系统134例如可以是用户可以在世界坐标框架内的特定位置定位本地内容的系统。然后,本地内容将自身附加到地图2的一个锚点。本地到世界坐标变换器104基于本地内容定位系统134的设置将本地坐标框架变换为世界坐标框架。已经参考图2描述了渲染引擎30、显示系统42和数据通道62的功能。307.地图发布者136将地图2上传到服务器20。服务器20的地图存储例程118然后将地图2存储在服务器20的存储介质内。308.地图合并算法124将地图2与规范地图120合并。当已经存储了多于两个的地图(例如,与物理世界的相同或相邻区域相关的三个或四个地图)时,地图合并算法124将所有地图合并到规范地图120中以渲染新规范地图120。然后,地图发送器122将新规范地图120发送到位于由新规范地图120表示的区域中的任何和所有设备12.1和12.2。当设备12.1和12.2将它们相应的地图定位到规范地图120时,规范地图120成为升级的地图。309.图17图示了根据一些实施例的为场景的地图生成关键帧的示例。在所示示例中,针对房间左墙壁上的门生成了第一关键帧kf1。针对房间的地板、左墙壁和右墙壁相交的角落区域生成第二关键帧kf2。针对房间右墙壁上的窗户区域生成第三关键帧kf3。在墙壁的地板上,在地毯的远端区域生成第四关键帧kf4。针对地毯的最接近用户的区域生成第五关键帧kf5。310.图18示出了根据一些实施例的为图17的地图生成持久姿势的示例。在一些实施例中,当设备测量行进的阈值距离时,和/或当应用请求新的持久姿势(pp)时,创建新的持久姿势。在一些实施例中,阈值距离可以是3米、5米、20米或任何其它合适的距离。选择较小的阈值距离(例如1m)可导致计算负荷的增加,因为与较大的阈值距离相比,可以创建和管理较大数量的pp。选择较大的阈值距离(例如40m)可导致增加的虚拟内容放置错误,因为将创建较少数量的pp,这将导致创建的较少pcf数量,意味着附加到pcf的虚拟内容可能是远离pcf相对较大的距离(例如30m),并且误差随着从pcf到虚拟内容的增加距离而增加。311.在一些实施例中,可以在新会话开始时创建pp。该初始pp可以被认为是零,并且可以可视化为具有等于阈值距离的半径的圆的中心。当设备到达圆的周长,并且在一些实施例中,应用请求新的pp时,可以将新的pp放置在设备的当前位置(在阈值距离处)。在一些实施例中,如果设备能够在距设备新位置的阈值距离内找到现有的pp,则不会在阈值距离处创建新的pp。在一些实施例中,当创建新的pp时(例如,图14中的pp1150),设备将一个或多个最接近的关键帧附加到pp。在一些实施例中,pp相对于关键帧的位置可以基于在创建pp时设备的位置。在一些实施例中,当设备行进阈值距离时将不会创建pp,除非应用请求pp。312.在一些实施例中,当应用具有要显示给用户的虚拟内容时,应用可以从设备请求pcf。来自应用的pcf请求可触发pp请求,并且在设备行进阈值距离后将创建新的pp。图18示出第一永久姿势pp1,其可以具有通过例如计算关键帧与持久姿势之间的相对姿势附加的最接近的关键帧(例如,kf1、kf2和kf3)。图18还示出第二永久姿势pp2,其可以具有附加的最接近的关键帧(例如,kf4和kf5)。313.图19示出了根据一些实施例的为图17的地图生成pcf的示例。在所示示例中,pcf1可以包括pp1和pp2。如上所述,pcf可用于显示与pcf相关的图像数据。在一些实施例中,每个pcf可以具有另一个坐标框架(例如,世界坐标框架)中的坐标和pcf描述符,例如,唯一地识别pcf。在一些实施例中,可以基于与pcf相关联的帧中的特征的特征描述符来计算pcf描述符。在一些实施例中,可以组合pcf的各种星座以需要较少数据和较少数据传输的持久方式来表示现实世界。314.图20a至20c是示出建立和使用持久坐标框架的示例的示意图。图20a示出具有尚未定位到规范地图的相应的本地跟踪地图4804a、4804b的两个用户4802a、4802b。各个用户的原点4806a、4806b由其相应区域中的坐标系(例如,世界坐标系)来描绘。每个跟踪地图的这些原点对于每个用户来说可能是本地的,因为这些原点取决于启动跟踪时他们各自设备的取向。315.当用户设备的传感器扫描环境时,该设备可以捕获如以上结合图14所描述的可以包含表示持久对象的特征的图像,使得那些图像可以被分类为关键帧,可以根据这些关键帧创建持久姿势。在该示例中,跟踪地图4802a包括持久姿势(pp)4808a;跟踪4802b包括pp4808b。316.同样如以上结合图14所述,一些pp可以被分类为pcf,这些pcf用于确定虚拟内容的取向以将其渲染给用户。图20b示出了相应的用户4802a、4802b所佩戴的xr设备可以基于pp4808a、4808b来创建本地pcf4810a、4810b。图20c示出了持久内容4812a、4812b(例如,虚拟内容)可以通过相应的xr设备附接到pcf4810a,4810b。317.在该示例中,虚拟内容可以具有虚拟内容坐标框架,该虚拟内容坐标框架可以由生成虚拟内容的应用使用,而不管应如何显示虚拟内容。例如,虚拟内容可以被指定为相对于虚拟内容坐标框架以特定位置和角度的表面,例如网格的三角形。为了将该虚拟内容渲染给用户,可以相对于要感知该虚拟内容的用户来确定那些表面的位置。318.将虚拟内容附加到pcf可以简化确定虚拟内容相对于用户的位置时所涉及的计算。可以通过应用一系列变换来确定虚拟内容相对于用户的位置。这些变换中的一些可能会更改,并且可能会频繁更新。这些变换中的其他变换可能是稳定的,可能会频繁更新或根本不更新。无论如何,可以以相对较低的计算负担来应用变换,使得可以相对于用户频繁地更新虚拟内容的位置,从而为所渲染的虚拟内容提供逼真的外观。319.在图20a至图20c的示例中,用户1的设备具有一个坐标系,该坐标系与通过变换rig1_t_w1定义地图原点的坐标系有关。用户2的设备具有类似的变换rig2_t_w2。这些变换可以表示为六个变换度,指定平移和旋转以将设备坐标系与地图坐标系对齐。在一些实施例中,变换可以表示为两个单独的变换,一个指定平移,另一个指定旋转。因此,应当理解,可以以简化计算或以其他方式提供优势的形式来表达变换。320.跟踪地图的原点与由相应的用户设备识别出的pcf之间的变换表示为pcf1_t_w1和pcf2_t_w2。在此示例中,pcf和pp相同,因此相同的变换也表征了pp。321.因此,可以通过这些变换的串行应用来计算用户设备相对于pcf的位置,例如rig1_t_pcf1=(rig1_t_w1)*(pcf1_t_w1)。322.如图20c所示,通过obj1_t_pcf1的变换,虚拟内容相对于pcf进行定位。该变换可以由生成虚拟内容的应用来设置,该应用可以从世界重建系统接收描述相对于pcf的物理对象的信息。为了将虚拟内容渲染给用户,计算到用户设备的坐标系的变换,这可以通过变换obj1_t_w1=(obj1_t_pcf1)*(pcf1_t_w1)将虚拟内容坐标框架关联到跟踪地图的原点来计算。然后,该变换可以通过进一步的变换rig1_t_w1与用户的设备相关。323.基于来自生成虚拟内容的应用的输出,虚拟内容的位置可以改变。当变化时,可以重新计算从源坐标系到目的地坐标系的端到端变换。另外,用户的位置和/或头部姿势可以随着用户移动而改变。结果,变换rig1_t_w1可以改变,取决于用户的位置或头部姿势的任何端到端变换也可以改变。324.可以基于跟踪用户相对于物理世界中的静止对象的位置,随着用户的运动来更新变换rig1_t_w1。可以通过如上所述的处理图像序列的耳机定位部件或系统的其他部件来执行这种跟踪。可以通过确定用户相对于固定参考框架(例如pp)的姿势来进行这样的更新。325.在一些实施例中,由于pp被用作pcf,因此可以相对于最近的持久姿势或在该示例中为pcf来确定用户设备的位置和取向。可以通过在利用设备上的传感器捕获的当前图像中识别表征pp的特征点来做出这样的确定。使用诸如立体图像分析的图像处理技术,可以确定设备相对于那些特征点的位置。根据该数据,系统可以基于关系rig1_t_pcf1=(rig1_t_w1)*(pcf1_t_w1)计算与用户运动相关联的变换的变化。326.系统可以以计算高效的顺序确定并应用变换。例如,可以通过跟踪用户姿势并定义虚拟内容相对于基于持久姿势而构建的pp或pcf的位置,来避免从产生rig1_t_pcf1的测量中计算rig1_t_w1的需要。这样,从虚拟内容的源坐标系到用户设备的目的地坐标系的变换可以基于根据表达式(rig1_t_pcf1)*(obj1_t_pcf1)的测量到的变换,其中第一变换由系统来测量,后一变换由指定虚拟内容进行渲染的应用提供。在其中虚拟内容相对于地图的原点定位的实施例中,端到端变换可以基于地图坐标与pcf坐标之间的进一步变换将虚拟对象坐标系与pcf坐标系相关。在虚拟内容相对于与针对其跟踪用户位置的pp或pcf不同的pp或pcf进行定位的实施例中,可以在两者之间进行变换。这样的变换可以是固定的,并且可以例如从两者都出现的地图中确定。327.例如,可以在具有处理传感器数据以构建跟踪地图的部件的设备中实现基于变换的方法。作为该过程的一部分,这些部件可以识别可用作持久姿势的特征点,而这些持久姿势又可以变成pcf。这些部件可以限制针对地图生成的持久姿势的数量,以在持久姿势之间提供适当的间隔,同时允许用户无论物理环境中的位置如何都足够接近持久姿势位置,以准确计算用户的姿势,如以上结合图17至图19所示。随着距用户最近的持久姿势的更新,由于用户移动,对跟踪地图或其他的细化使得用于计算取决于pp(或pcf,如果正在使用)的位置的虚拟内容相对于用户的位置的任何变换都可以进行更新并存储以供使用,至少直到用户离开该持久姿势为止。尽管如此,通过计算和存储变换,每次更新虚拟内容的位置时的计算负担可以相对较低,从而可以以相对较低的等待时间来执行它。328.图20a至图20c示出了相对于跟踪地图进行定位,并且每个设备具有其自己的跟踪地图。但是,可以相对于任何地图坐标系生成变换。xr系统的用户会话之间的内容持久性可以通过使用持久地图来实现。通过使用可以将多个用户设备定向到的地图,也可以实现用户的共享体验。329.在下面更详细描述的一些实施例中,可以相对于规范地图中的坐标来指定虚拟内容的位置,规范地图的格式被设置为使得多个设备中的任何一个可以使用该地图。每个设备可能保持跟踪地图,并且可以确定用户的姿势相对于跟踪地图的变化。在此示例中,可以通过“定位”过程来确定跟踪地图与规范地图之间的变换,该过程可以通过将跟踪地图中的结构(诸如一个或多个持久姿势)匹配到规范地图的一个或多个结构(例如一个或多个pcf)来执行。330.下面更详细地描述了以这种方式创建和使用规范地图的技术。331.深度关键帧332.本文所述的技术依赖于图像帧的比较。例如,为了建立设备相对于跟踪地图的位置,可以使用用户佩戴的传感器捕获新图像,并且xr系统可以在用于创建跟踪地图的图像集中,搜索与新图像共享至少预定数量的关注点的图像。作为涉及图像帧比较的另一种场景的示例,可以通过首先寻找跟踪地图中的与持久姿势相关联的图像帧,该图像帧类似于规范地图中的与pcf相关联的图像帧,来将跟踪地图定位到规范地图。可替代地,可以通过首先寻找两个地图中相似的图像帧来计算两个规范地图之间的变换。333.深度关键帧提供了减少识别相似图像帧所需的处理量的方法。例如,在一些实施例中,比较可以是在新的2d图像中的图像特征(例如,“2d特征”)和地图中的3d特征之间。这种比较可以以任何适当的方式进行,诸如通过将3d图像投影到2d平面中。诸如词袋(bagofwords,bow)之类的常规方法在包括地图中所有2d特征的数据库中搜索新图像的2d特征,这可能需要大量的计算资源,尤其是当地图表示大区域时。然后,常规方法定位与新图像共享至少一个2d特征的图像,这些图像可以包括对于在地图中定位有意义的3d特征没有用的图像。然后,常规方法定位相对于新图像中的2d特征没有意义的3d特征。334.发明人已经认识并理解使用更少的存储器资源(例如,bow使用的存储器资源的四分之一)、更高的效率(例如,每个关键帧的处理时间为2.5ms,针对500个关键帧进行比较为100μs)、并且更高的准确性(例如,对于1024维模型,检索召回率比bow好20%,对于256维模型,检索召回率比bow好5%)来检索地图中的图像的技术。335.为了减少计算,可以针对图像帧计算描述符,该描述符可以用于将图像帧与其他图像帧进行比较。可以代替图像帧和特征点存储描述符,或者除图像帧和特征点之外还存储描述符。在其中可以根据图像帧生成持久姿势和/或pcf的地图中,可以将生成每个持久姿势或pcf所根据的一个或多个图像帧的描述符存储为持久姿势和/或pcf的一部分。336.在一些实施例中,可以根据图像帧中的特征点来计算描述符。在一些实施例中,神经网络被配置为计算表示图像的唯一帧描述符。该图像可以具有高于1兆字节的分辨率,从而在图像中捕获用户所佩戴的设备的视场内的3d环境的足够的细节。帧描述符可以短得多,诸如数字字符串,例如,在128字节到512字节的范围内或者介于两者之间的任何数量的数字字符串。337.在一些实施例中,神经网络被训练为计算出的帧描述符指示图像之间的相似性。可以通过在包括用于生成地图的图像的数据库中,识别可以具有在距新图像的帧描述符预定距离之内的帧描述符的最近图像,来定位地图中的图像。在一些实施例中,图像之间的距离可以由两个图像的帧描述符之间的差异表示。338.图21是示出根据一些实施例的用于为单独图像生成描述符的系统的框图。在所示的示例中,示出了帧嵌入生成器308。在一些实施例中,帧嵌入生成器308可以在服务器20内使用,但是可以替代地或另外地在xr设备12.1和12.2之一或任何其他处理图像以与其他图像进行比较的设备中全部或部分地执行。339.在一些实施例中,帧嵌入生成器可以被配置为生成从初始大小(例如,76,800字节)到最终大小(例如,256字节)的图像的缩减数据表示,该缩减数据表示尽管缩小了大小但是仍然指示图像中的内容。在一些实施例中,帧嵌入生成器可以用于生成图像的数据表示,该图像可以是关键帧或以其他方式使用的帧。在一些实施例中,帧嵌入生成器308可以被配置为将位于特定位置和取向的图像转换为唯一的数字字符串(例如,256字节)。在所示的示例中,xr设备拍摄的图像320可以由特征提取器324处理,以检测图像320中的关注点322。关注点可以从或可以不从如上针对特征1120所述识别出的特征点导出(图14)或如本文中另外描述的。在一些实施例中,关注点可以由如以上针对描述符1130(图14)所描述的描述符来表示,这些关注点可以使用深度稀疏特征方法来生成。在一些实施例中,每个关注点322可以由数字字符串(例如,32个字节)表示。例如,可以有n个特征(例如100个),并且每个特征由32个字节的字符串来表示。340.在一些实施例中,帧嵌入生成器308可以包括神经网络326。神经网络326可以包括多层感知器单元312和最大(max)池化单元314。在一些实施例中,多层感知器(mlp)单元312可以包括多层感知器,可以对该多层感知器进行训练。在一些实施例中,可以通过多层感知器312来减少关注点322(例如,用于关注点的描述符),并且可以将其输出为描述符的加权组合310。例如,mlp可以将n个特征减少为少于n个特征的m个特征。341.在一些实施例中,mlp单元312可以被配置为执行矩阵乘法。多层感知器单元312接收图像320的多个关注点322,并将每个关注点转换为相应的数字字符串(例如,256)。例如,可能有100个特征,并且每个特征可以由256个数字的字符串来表示。在此示例中,可以创建具有100个水平行和256个垂直列的矩阵。每行可具有一系列256个数字的系列,这一系列的256个数字在大小上有所不同,其中一些较小,而另一些较大。在一些实施例中,mlp的输出可以是n×256矩阵,其中n表示从图像提取的关注点的数量。在一些实施例中,mlp的输出可以是m×256矩阵,其中m是从n缩减的关注点的数量。342.在一些实施例中,mlp312可以具有训练阶段和使用阶段,在该训练阶段期间确定用于mlp的模型参数。在一些实施例中,可以如图25中所示训练mlp。输入训练数据可以包括三个一组的数据,三个一组包括1)查询图像、2)正样本、和3)负样本。查询图像可以被认为是参考图像。343.在一些实施例中,正样本可以包括与查询图像相似的图像。例如,在一些实施例中,相似可以是在查询图像和正样本图像中具有相同的对象,但是从不同的角度观看。在一些实施例中,相似可以是在查询图像和正样本图像中具有相同的对象,但是该对象相对于另一图像移位(例如,向左、向右、向上、向下)。344.在一些实施例中,负样本可以包括与查询图像不相似的图像。例如,在一些实施例中,不相似图像可以不包含在查询图像中突出的任何对象,或者可以仅包含查询图像中的突出对象的一小部分(例如,<10%,1%)。与之相比,例如,相似图像可以具有查询图像中的对象的大部分(例如,》50%或》75%)。345.在一些实施例中,可以从输入训练数据中的图像中提取关注点,并且可以将关注点转换成特征描述符。可以针对如图25所示的训练图像和针对图21的帧嵌入生成器308的操作中提取出的特征两者来计算这些描述符。在一些实施例中,如美国专利申请16/190,948中所述,可以使用深度稀疏特征(dsf)处理来生成描述符(例如,dsf描述符)。在一些实施例中,dsf描述符是n×32维。然后可以通过模型/mlp传递描述符,以创建256字节的输出。在一些实施例中,模型/mlp可以具有与mlp312相同的结构,使得一旦通过训练设置了模型参数,就可以将所得的训练后的mlp用作mlp312。346.在一些实施例中,然后可以将特征描述符(例如,从mlp模型输出的256字节)发送到三元组边界损失模块(该三元组边界损失模块可以仅在训练阶段期间使用,而不在mlp神经网络的使用阶段期间使用)。在一些实施例中,三元组边界损失模块可以被配置为选择模型的参数,以减小来自查询图像的256字节输出与来自正样本的256字节输出之间的差异,并增大来自查询图像的256字节输出和来自负样本的256字节输出。在一些实施例中,训练阶段可以包括将多个三元组输入图像馈送到学习过程中以确定模型参数。该训练过程可以继续,例如,直到使正图像的差异最小化并且使负图像的差异最大化,或者直到达到其他适当的退出标准为止。347.再次参考图21,帧嵌入生成器308可以包括池化层,在这里被示为最大(max)池化单元314。最大池化单元314可以分析每一列以确定相应列中的最大数。最大池化单元314可以将mlp312的输出矩阵的每列数字的最大值组合成例如256个数字的全局特征串316。应当理解,在xr系统中处理的图像可能期望具有高分辨率的帧,潜在地具有数百万个像素。全局特征串316是相对较小的数字,其占用相对较少的存储器,并且与图像(例如,具有高于1兆字节的分辨率)相比易于搜索。因此可以搜索图像而无需分析来自相机中的每个原始帧,并且存储256字节而不是完整帧也更便宜。348.图22是示出根据一些实施例的计算图像描述符的方法2200的流程图。方法2200可以从接收(动作2202)由用户佩戴的xr设备捕获的多个图像开始。在一些实施例中,方法2200可以包括从多个图像确定(动作2204)一个或多个关键帧。在一些实施例中,动作2204可以被跳过和/或可以代替地在步骤2210之后发生。349.方法2200可以包括:利用人工神经网络在多个图像中识别(动作2206)一个或多个关注点;以及利用人工神经网络计算(动作2208)各个关注点的特征描述符。该方法可以包括针对每个图像计算(动作2210)帧描述符,从而至少部分基于利用人工神经网络针对图像中所识别的关注点而计算出的特征描述符来表示该图像。350.图23是示出根据一些实施例的使用图像描述符进行定位的方法2300的流程图。在该示例中,可以将描述xr设备的当前位置的新图像帧与结合地图中的点(例如,如上所述的持久姿势或pcf)进行存储的图像帧进行比较。方法2300可以从接收(动作2302)由用户佩戴的xr设备捕获的新图像开始。方法2300可以包括在数据库中识别(动作2304)一个或多个最近的关键帧,该数据库包括用于生成一个或多个地图的关键帧。在一些实施例中,可以基于粗略的空间信息和/或先前确定的空间信息来识别最近的关键帧。例如,粗略的空间信息可以指示xr设备位于由地图的50m×50m区域表示的地理区域中。可以仅对该区域内的点执行图像匹配。作为另一示例,基于跟踪,xr系统可以知道xr设备先前在地图中接近第一持久姿势并且当时正在朝地图中第二持久姿势的方向移动。该第二持久姿势可以被认为是最近的持久姿势,并且与其一起存储的关键帧可以被认为是最近的关键帧。替代地或附加地,例如gps数据或wifi指纹的其他元数据可以用于选择最近的关键帧或最近的关键帧的集合。351.不管如何选择最近的关键帧,都可以使用帧描述符来确定新图像是否与被选择为与附近的持久姿势相关联的任何帧相匹配。可以通过以下处理来进行该确定:将新图像的帧描述符与最近的关键帧的帧描述符或以任何其他适当方式选择的数据库中的关键帧的子集的帧描述符进行比较,并选择具有帧描述符在新图像的帧描述符的预定距离内的关键帧。在一些实施例中,可以通过获得可以表示两个帧描述符的两个数字字符串之间的差来计算两个帧描述符之间的距离。在将字符串作为多个字符串进行处理的实施例中,可以将差计算为向量差。352.一旦识别出匹配的图像帧,就可以确定xr设备相对于该图像帧的取向。方法2300可以包括:对地图中与所识别的最近关键帧相对应的3d特征执行(动作2306)特征匹配,以及基于特征匹配结果来计算(动作2308)用户所佩戴的设备的姿势。以此方式,可以针对已经被确定为与新图像的可能匹配的少至一个图像,来执行两个图像中的特征点的计算密集匹配。353.图24是示出根据一些实施例的训练神经网络的方法2400的流程图。方法2400可以从生成(动作2402)包括多个图像集的数据集开始。多个图像集的每一个可以包括查询图像、正样本图像和负样本图像。在一些实施例中,多个图像集可以包括合成记录对,该合成记录对被配置为例如教导神经网络基本信息(诸如形状)。在一些实施例中,多个图像集可以包括真实记录对,这些真实记录对可以根据物理世界记录。354.在一些实施例中,可以通过在两个图像之间拟合基本矩阵来计算内点(inlier)。在一些实施例中,稀疏重叠可以被计算为两个图像中看到的关注点的交并比(intersectionoverunion,iou)。在一些实施例中,正样本可以包括与查询图像中的相同的至少二十个关注点作为内点。负样本可以包括少于十个内点。负样本可以具有少于一半的与查询图像的稀疏点重叠的稀疏点。355.方法2400可以包括针对每个图像集通过比较查询图像与正样本图像和负样本图像来计算(动作2404)损失。方法2400可以包括基于计算出的损失来修改(动作2406)人工神经网络,使得由人工神经网络针对查询图像生成的帧描述符与针对正样本图像的帧描述符之间的距离小于针对查询图像的帧描述符与针对负样本图像的帧描述符之间的距离。356.应该理解,尽管以上描述了被配置为生成各个图像的全局描述符的方法和装置,但是方法和装置可以被配置为生成各个地图的描述符。例如,地图可以包括多个关键帧,每个关键帧可以具有如上所述的帧描述符。最大池化单元可以分析地图的关键帧的帧描述符,并将帧描述符组合为该地图的唯一地图描述符。357.此外,应了解,可将其他架构用于如上所述的处理。例如,描述了用于生成dsf描述符和帧描述符的分离的神经网络。这种方法在计算上是高效的。然而,在一些实施例中,可以在不首先生成dsf描述符的情况下,根据所选择的特征点生成帧描述符。358.对地图进行排名和合并359.在此描述的是用于在x现实(xr)系统中对多个环境地图进行排名和合并的方法和装置。地图合并可以使表示物理世界的重叠部分的地图能够被组合以表示更大的区域。对地图进行排名可以使得能够高效执行本文所述的技术,包括地图合并,该技术涉及基于相似性从一组地图中选择地图。在一些实施例中,例如,系统可以保持一组规范地图,该组规范地图以许多xr设备中的任何xr设备可以对其进行访问的方式被格式化。这些规范地图可以通过将来自那些设备的所选择的跟踪地图与其他跟踪地图或先前存储的规范地图进行合并而形成。可以对规范地图进行排名,例如,用于选择一个或多个规范地图以与新的跟踪地图合并和/或从集合中选择一个或多个规范地图以在设备中使用。360.为了向用户提供逼真的xr体验,xr系统必须了解用户的物理环境,以便正确关联虚拟对象相对于真实对象的位置。可以从用户位置的环境地图中获得有关用户实际环境的信息。361.发明人已经认识到并且理解到,xr系统可以通过实现有效地共享由多个用户收集的真实/物理世界的环境地图来向共享包括真实和/或虚拟内容的相同世界的多个用户提供增强的xr体验,无论这些用户是在同一时间还是在不同时间出现在世界中。然而,在提供这种系统方面存在重大挑战。这样的系统可以存储由多个用户生成的多个地图和/或系统可以存储在不同时间生成的多个地图。对于可能采用先前生成的地图执行的操作(诸如例如如上所述的定位),可能需要进行大量处理才能从xr系统中收集的所有环境地图中识别同一世界(例如,相同的真实世界位置)的相关环境地图。在一些实施例中,可能仅存在设备可以访问的少量环境地图以例如用于定位。在一些实施例中,可以存在设备可访问的大量的环境地图。发明人已经认识并理解用于快速且准确地对来自所有可能的环境地图(诸如例如图28中的所有规范地图120的世界(universe))中的环境地图的相关性进行排名的技术。然后可以选择高排名地图以进行进一步处理,诸如在用户显示器上渲染虚拟对象,使其与用户周围的物理世界进行现实交互,或者将该用户收集的地图数据与存储的地图合并以创建更大或更准确的地图。362.在一些实施例中,可以通过基于多个标准过滤存储的地图来识别与在物理世界中的位置处的用户的任务有关的存储的地图。这些标准可以指示由用户的可穿戴设备在该位置中生成的跟踪地图与存储在数据库中的候选环境地图的比较。可以基于与地图相关联的元数据(诸如由生成地图的设备检测到的wi-fi指纹和/或在形成地图的同时设备所连接到的一组bssid)来执行比较。还可以基于地图的压缩或未压缩内容执行比较。可以通过比较从地图内容计算出的矢量来执行基于压缩表示的比较。例如,可以通过在存储的地图内定位跟踪地图来执行基于未压缩地图的比较,反之亦然。可以基于减少要考虑的候选地图的数量所需的计算时间来按顺序执行多次比较,其中与需要更多计算的其它比较相比,涉及较少计算的比较将按顺序更早地执行。363.图26描绘了根据一些实施例的被配置为对一个或多个环境地图进行排名和合并的ar系统800。ar系统可以包括ar设备的可通行世界模型802。填充可通行世界模型802的信息可来自ar设备上的传感器,该传感器可包括存储在处理器804(例如,图4中的本地数据处理模块570)中的计算机可执行指令,该处理器可执行一些或全部处理以将传感器数据转换为地图。这种地图可以是跟踪地图,因为当ar设备在区域中操作时可以一边收集传感器数据一边构建跟踪地图。与该跟踪地图一起,可以提供区域属性,以便指示该跟踪地图表示的区域。这些区域属性可以是地理位置标识符,诸如表示为纬度和经度的坐标,或者是ar系统用来表示位置的id。可替代地或另外地,区域属性可以是对于该区域具有唯一的很高的可能性的被测量的特性。区域属性例如可以从在该区域中检测到的无线网络的参数导出。在一些实施例中,区域属性可以与ar系统在附近和/或连接到的接入点的唯一地址相关联。例如,区域属性可以与5g基站/路由器、wi-fi路由器等的mac地址或基本服务集标识符(bssid)相关联。364.在图26的示例中,可以将跟踪地图与环境的其它地图合并。地图排名部分806从设备pw802接收跟踪地图,并与地图数据库808通信以选择和排名来自地图数据库808中的环境地图。将排名较高的所选择地图发送到地图合并部分810。365.地图合并部分810可以对从地图排名部分806发送的地图执行合并处理。合并处理可能需要将跟踪地图与一些或所有排名地图合并,并将新的合并地图发送到可通行世界模型812。地图合并部可以通过识别描绘物理世界的重叠部分的地图来合并地图。可以对齐那些重叠的部分,以便可以将两个地图中的信息聚合到最终地图中。规范地图可以与其他规范地图和/或跟踪地图合并。366.聚合可能需要用来自另一地图的信息来扩展一个地图。替代地或附加地,聚合可能需要基于另一地图中的信息来调整一个地图中的物理世界的表示。例如,后面的地图可以揭示造成特征点已经移动的对象,从而可以基于后面的信息来更新地图。替代地,两个地图可以用不同的特征点来表征同一区域,并且聚合可能需要从两个地图中选择一组特征点以更好地表示该区域。不管合并过程中发生的具体处理如何,在一些实施例中,来自被合并的所有地图的pcf可以被保留,使得相对于它们对内容进行定位的应用可以继续这样做。在一些实施例中,地图的合并可以导致冗余的持久姿势,并且一些持久姿势可以被删除。当pcf与要删除的持久姿势相关联时,合并地图可能需要修改pcf以与合并后保留在地图中的持久姿势相关联。367.在一些实施例中,随着地图进行扩展和/或更新,它们可以被细化。细化可能需要进行计算以减少可能表示物理世界中相同对象的特征点之间的内部不一致。这种不一致可能产生于与提供表示物理世界中相同对象的特征点的关键帧相关联的姿势不准确。例如,这种不一致可能产生于xr设备相对于跟踪地图计算姿势,该跟踪地图又是基于估计姿势而建立的,因此姿势估计中的误差会累积,从而随时间推移形成姿势准确性的“漂移”。通过执行光束法平差或其他操作以减少来自多个关键帧的特征点的不一致,可以细化地图。368.在细化时,持续点相对于地图原点的位置可以改变。因此,与该持久点相关联的变换,例如持久姿势或pcf,可能会发生变化。在一些实施例中,结合地图细化(无论是作为合并操作的一部分还是出于其他原因而执行)的xr系统可以重新计算与已变化的任何持久点相关联的变换。这些变换可能被从计算变换的部件推送到使用该变换的部件,以使变换的任何使用都可以基于持久点的经更新的位置。369.可通行世界模型812可以是云模型,该云模型可以由多个ar设备共享。可通行世界模型812可以存储或以其它方式访问地图数据库808中的环境地图。在一些实施例中,当更新先前计算的环境地图时,可以删除该地图的先前版本,以便从数据库中删除过时的地图。在一些实施例中,当更新先前计算的环境地图时,该地图的先前版本可以被存档,从而使得能够取得/观看环境的先前版本。在一些实施例中,可以设置许可,使得只有具有某些读/写访问权限的ar系统才可以触发地图的先前版本被删除/存档。370.从由一个或多个ar设备/系统提供的跟踪地图创建的这些环境地图可以由ar系统中的ar设备访问。地图排名部分806也可以用于向ar设备提供环境地图。ar设备可以发送请求其当前位置的环境地图的消息,并且地图排名部分806可以用于选择和排名与请求设备有关的环境地图。371.在一些实施例中,ar系统800可以包括被配置为从云端pw812接收合并地图的下采样部814。从云端pw812接收的合并地图可以是用于云端的存储格式,其可以包括高分辨率信息,例如每平方米大量的pcf或多个图像帧或与pcf相关的大量特征点集。下采样部814可以被配置为将云端格式地图下采样为适合于存储在ar设备上的格式。设备格式的地图可以包含较少的数据,例如较少的pcf或针对每个pcf存储的较少数据,以适应ar设备有限的本地计算能力和存储空间。372.图27是示出了可以存储在例如云端的远程存储介质中的多个规范地图120的简化框图。每个规范地图120可以包括多个规范地图标识符,这些标识符指示规范地图在物理空间内的位置,例如地球上某处。这些规范地图标识符可以包括以下标识符中的一个或多个:由经度和纬度范围表示的区域标识符、帧描述符(例如,图21中的全局特征串316)、wi-fi指纹、特征描述符(例如,图21中的特征描述符310)、以及指示对地图做出贡献的一个或多个设备的设备标识。373.在示出的示例中,规范地图120以二维模式在地理上布置,因为它们可以存在于地球表面上。规范地图120可以由相应的经度和纬度唯一地可识别,因为具有重叠的经度和纬度的任何规范地图都可以合并为新的规范地图。374.图28是示出根据一些实施例的选择规范地图的方法的示意图,该方法可以用于将新的跟踪地图定位到一个或多个规范地图。该方法可以从访问(动作120)规范地图120的世界开始,作为示例,该规范地图120的世界可以存储在可通行世界的数据库中(例如,可通行世界模块538)。规范地图的世界可以包括来自所有先前到访过的位置的规范地图。xr系统可以将所有规范地图的世界过滤为一个小的子集或仅一个地图。应当理解,在一些实施例中,由于带宽限制,不可能将所有规范地图发送到观看设备。选择被选择为可能用于匹配跟踪地图的候选的子集发送到设备可以减少与访问地图的远程数据库相关联的带宽和等待时间。375.该方法可以包括基于具有预定大小和形状的区域来过滤(动作300)规范地图的世界。在图27的示例中,每个方形可以表示一个区域。每个方形可以覆盖50m×50m。每个方形可以有六个相邻区域。在一些实施例中,动作300可以选择覆盖经度和纬度的至少一个匹配规范地图120,其中的经度和纬度包括从xr设备接收到的位置标识符的经度和纬度,只要在该经度和纬度处存在至少一个地图即可。在一些实施例中,动作300可以选择覆盖与匹配的规范地图相邻的经度和纬度的至少一个相邻规范地图。在一些实施例中,动作300可以选择多个匹配规范地图和多个相邻规范地图。动作300可以例如将规范地图的数量减少大约十倍,例如从数千减少到数百,以形成第一过滤选择。替代地或附加地,可以使用除纬度和经度以外的标准来识别相邻地图。例如,xr设备可以先前已经利用集合中的规范地图进行定位作为同一会话的一部分。云服务可以保留有关xr设备的信息,包括先前定位到的地图。在该示例中,在动作300处选择的地图可以包括覆盖与xr设备定位到的地图相邻的区域的那些地图。376.该方法可以包括基于wi-fi指纹来过滤(动作302)规范地图的第一过滤选择。动作302可以基于作为位置标识符的一部分从xr设备接收的wi-fi指纹来确定纬度和经度。动作302可以将来自wi-fi指纹的纬度和经度与规范地图120的纬度和经度进行比较,以确定形成第二过滤选择的一个或多个规范地图。动作302可以将规范地图的数量减少大约十倍,例如,从数百个规范地图减少到形成第二选择的数十个(例如50个)规范地图。例如,第一过滤选择可以包括130个规范地图,第二过滤选择可以包括130个规范地图中的50个,并且可以不包括130个规范地图中的其他80个。377.该方法可以包括基于关键帧来过滤(动作304)规范地图的第二过滤选择。动作304可以将表示由xr设备捕获的图像的数据与表示规范地图120的数据进行比较。在一些实施例中,表示图像和/或地图的数据可以包括特征描述符(例如,图25中的dsf描述符)和/或全局特征串(例如,图21中的316)。动作304可以提供规范地图的第三过滤选择。在一些实施例中,例如,动作304的输出可以仅是在第二过滤选择之后识别出的50个规范地图中的五个规范地图。然后,地图发送器122将基于第三过滤选择的一个或多个规范地图发送到观看设备。动作304可以将规范地图的数量减少大约十倍,例如,从数十个规范地图减少到形成第三选择的个位数的规范地图(例如,5个)。在一些实施例中,xr设备可以在第三过滤选择中接收规范地图,并且尝试定位到所接收的规范地图中。378.例如,动作304可以基于规范地图120的全局特征串316和基于由观看设备捕获的图像(例如,可以是用户的本地跟踪地图的一部分的图像)的全局特征串316来过滤规范地图120。因此,图27中的每个规范地图120具有与其相关联的一个或多个全局特征串316。在一些实施例中,当xr设备向云端提交图像或特征细节并且在云端处理这些图像或特征细节以生成用于规范地图120的全局特征串316时,可以获取全局特征串316。379.在一些实施例中,云端可以接收由观看设备捕获的实时/新/当前图像的特征细节,并且云端可以生成实时图像的全局特征串316。然后,云端可以基于实时全局特征串316来过滤规范地图120。在一些实施例中,可以在本地观看设备上生成全局特征串。在一些实施例中,可以例如在云端远程生成全局特征串。在一些实施例中,云端可以将过滤后的规范地图连同与过滤后的规范地图相关联的全局特征串316一起发送到xr设备。在一些实施例中,当观看设备将其跟踪地图定位到规范地图时,它可以通过将本地跟踪地图的全局特征串316与规范地图的全局特征串进行匹配来做到这一点。380.应当理解,xr设备的操作可以不执行所有动作(300、302、304)。例如,如果规范地图的世界相对较小(例如,500个地图),则尝试进行定位的xr设备可以基于wi-fi指纹(例如,动作302)和关键帧(例如,动作304)来过滤规范地图的世界,但是省略了基于区域的过滤(例如,动作300)。而且,没有必要对整个地图进行比较。例如,在一些实施例中,两个地图的比较可以导致识别共同的持久点,例如在新地图中和从地图世界选择的地图中都出现的持久姿势或pcf。在那种情况下,描述符可以与持久点相关联,并且可以比较那些描述符。381.图29是示出根据一些实施例的选择一个或多个排名的环境地图的方法900的流程图。在所示的实施例中,对正在创建跟踪地图的用户的ar设备执行排名。因此,跟踪地图可用于对环境地图进行排名。在其中跟踪地图不可用的实施例中,可以使用不明确依赖于跟踪地图的环境地图的选择和排名的一些或全部部分。382.方法900可以从动作902开始,其中可以访问位于形成跟踪地图的位置附近的环境地图(其可以被格式化为规范地图)数据库中的一组地图,并且然后过滤以便排名。另外,在动作902处,确定用户的ar设备正在其中操作的区域的至少一个区域属性。在用户的ar设备正在构造跟踪地图的场景中,区域属性可对应于在其上创建跟踪地图的区域。作为特定示例,可以在ar设备正在计算跟踪地图的同时基于从接入点到计算机网络的接收信号来计算区域属性。383.图30描绘了根据一些实施例的ar系统800的示例性地图排名部分806。地图排名部分806可以在云计算环境中执行,因为它可以包括在ar设备上执行的一部分和在诸如云的远程计算系统上执行的部分。地图排名部分806可以被配置为执行方法900的至少一部分。384.图31a描绘了根据一些实施例的数据库中的跟踪地图(tm)1102和环境地图cm1-cm4的区域属性aa1-aa8的示例。如图所示,环境地图可以与多个区域属性相关联。区域属性aa1-aa8可以包括由ar设备计算跟踪地图1102检测到的无线网络的参数,例如,ar设备所连接的网络的基本服务集标识符(bssid)和/或通过例如网络塔1104到无线网络的接入点的接收信号的强度。无线网络的参数可以符合包括wi-fi和5gnr的协议。在图32中所示的示例中,区域属性是用户ar设备在其中收集传感器数据以形成跟踪地图的区域的指纹。385.图31b描绘了根据一些实施例的跟踪地图1102的所确定的地理位置1106的示例。在所示的示例中,确定的地理位置1106包括质心点1110和围绕质心点环绕的区域1108。应当理解,本技术的地理位置的确定不限于所示出的格式。所确定的地理位置可以具有任何合适的格式,包括例如不同的区域形状。在该示例中,使用将区域属性与地理位置相关联的数据库,从区域属性确定地理位置。数据库是可商购的,例如,将wi-fi指纹与表达为纬度和经度的位置相关联并且可用于该操作的数据库。386.在图29的实施例中,包含环境地图的地图数据库还可以包括那些地图的位置数据,包括地图所覆盖的纬度和经度。在动作902处的处理可能需要从该数据库中选择一组环境地图,该环境地图覆盖针对跟踪地图的区域属性确定的相同纬度和经度。387.动作904是对在动作902中访问的一组环境地图的第一过滤。在动作902中,基于与跟踪地图的地理位置的接近度,将环境地图保留在该组中。可以通过比较与该组中的跟踪地图和环境地图相关联的纬度和经度来执行该过滤步骤。388.图32描绘了根据一些实施例的动作904的示例。每个区域属性可以具有对应的地理位置1202。该组环境地图可以包括具有至少一个区域属性的环境地图,该至少一个区域属性具有与跟踪地图的确定的地理位置重叠的地理位置。在所示的示例中,一组识别的环境地图包括环境地图cm1、cm2和cm4,每个环境地图都具有至少一个区域属性,该区域属性具有与跟踪地图1102的确定的地理位置重叠的地理位置。与区域属性aa6相关联的cm3未包括在该组中,因为它在跟踪地图的确定的地理位置之外。389.还可以对该组环境地图执行其它过滤步骤,以减少/排名该组中最终被处理的环境地图的数量(诸如,用于地图合并或向用户设备提供可通行世界信息)。方法900可以包括基于与跟踪地图和该组环境地图的环境地图相关联的网络接入点的一个或多个标识符的相似性来过滤(动作906)该组环境地图。在地图的形成期间,可以将收集传感器数据以生成地图的设备通过网络接入点(诸如通过wi-fi或类似的无线通信协议)连接到网络。接入点可以通过bssid来识别。当用户设备移动通过收集数据的区域以形成地图时,用户设备可以连接到多个不同的接入点。同样,当多个设备提供信息以形成地图时,该设备可能已通过不同的接入点进行连接,因此出于该原因,在形成地图时也可能会使用多个接入点。因此,可能存在与地图相关联的多个接入点,并且该组接入点可以是地图位置的指示。来自接入点的信号强度可以反映为rssi值,可以提供进一步的地理信息。在一些实施例中,bssid和rssi值的列表可以形成针对地图的区域属性。390.在一些实施例中,基于网络接入点的一个或多个标识符的相似性来过滤该组环境地图可以包括:基于网络接入点的一个或多个标识符,将与跟踪地图的至少一个区域属性具有最高jaccard相似性的环境地图保留在该组环境地图中。图33描绘了根据一些实施例的动作906的示例。在所示的示例中,可以将与区域属性aa7相关联的网络标识符确定为跟踪地图1102的标识符。动作906之后的该组环境地图包括:环境地图cm2,其可具有与aa7更高的jaccard相似性内的区域属性;以及环境地图cm4,其还包括区域属性aa7。环境地图cm1不包括在该组中,因为它具有与aa7最低的jaccard相似性。391.可以基于与地图相关联的元数据来执行动作902-906的处理,而无需实际访问存储在地图数据库中的地图的内容。其它处理可涉及访问地图的内容。动作908指示在基于元数据过滤之后访问保留在子集中的环境地图。应当理解,如果可以对所访问的内容执行后续操作,则可以在该过程中的较早或较晚时执行该动作。392.方法900可以包括基于表示跟踪地图和一组环境地图的环境地图的内容的度量的相似性来过滤(动作910)一组环境地图。表示跟踪地图和环境地图的内容的度量可以包括从地图的内容计算出的值的矢量。例如,如上所述,为用于形成地图的一个或多个关键帧计算的深度关键帧描述符可以提供用于比较地图或地图的部分的度量。度量可以从在动作908处取得的地图来计算,或者可以被预先计算并存储为与那些地图相关联的元数据。在一些实施例中,基于表示跟踪地图和一组环境地图的环境地图的内容的度量的相似性来过滤一组环境地图可包括:将跟踪地图的特征矢量与表示一组环境地图中的环境地图的矢量之间具有最小矢量距离的环境地图保留在一组环境地图中。393.方法900可以包括:基于跟踪地图的一部分与一组环境地图的环境地图的部分之间的匹配程度来进一步过滤(动作912)一组环境地图。匹配程度可以被确定为定位过程的一部分。作为非限制性示例,可以通过在跟踪地图和环境地图中识别与它们可以表示物理世界的相同部分足够相似的临界点来执行定位。在一些实施例中,关键点可以是特征、特征描述符、关键帧、关键装配、持久姿势和/或pcf。然后,可能将跟踪地图中的一组临界点对齐以与环境地图中的该组临界点产生最优适配。可能计算对应的临界点之间的均方距离,并且如果低于跟踪地图的特定区域的阈值,则用作指示跟踪地图和环境地图表示物理世界的相同区域。394.在一些实施例中,基于跟踪地图的一部分与一组环境地图的环境地图的部分之间的匹配程度来过滤一组环境地图可包括:计算由跟踪地图表示的物理世界的体积,该跟踪地图也表示在一组环境地图的环境地图中;以及将具有比从一组中过滤出的环境地图更大的计算体积的环境地图保留在一组环境地图中。图34描绘了根据一些实施例的动作912的示例。在示出的示例中,在动作912之后的一组环境地图包括环境地图cm4,该环境地图cm4具有与跟踪地图1102的区域匹配的区域1402。环境地图cm1不包括在该组中,因为它不具有与跟踪地图1102的区域匹配的区域。395.在一些实施例中,可以按照动作906、动作910和动作912的顺序来过滤该组环境地图。在一些实施例中,可以基于动作906、动作910和动作912来过滤该组环境地图,可以根据从最低到最高的,基于执行过滤所需的处理的顺序来执行该动作906、动作910和动作912。方法900可以包括加载(动作914)该组环境地图和数据。396.在所示的示例中,用户数据库存储指示使用ar设备的区域的区域标识。区域标识可以是区域属性,该区域属性可以包括ar设备在使用中检测到的无线网络的参数。地图数据库可以存储由ar设备提供的数据和相关联的元数据构造的多个环境地图。相关联的元数据可以包括从提供数据的ar设备的区域标识中导出的区域标识,环境地图从该数据中构造。ar设备可以向pw模块发送消息,指示创建或正在创建新的跟踪地图。pw模块可以计算用于ar设备的区域标识符,并基于接收到的参数和/或计算出的区域标识符来更新用户数据库。pw模块还可以确定与请求环境地图的ar设备相关联的区域标识符,基于区域标识符从地图数据库中识别该组环境地图,过滤该组环境地图,并且向ar设备发送过滤的一组环境地图。在一些实施例中,pw模块可以基于一个或多个标准来过滤该组环境地图,该标准包括例如跟踪地图的地理位置,与跟踪地图以及该组环境地图的环境地图相关联的网络接入点的一个或多个标识符的相似性,表示跟踪地图和该组环境地图的环境地图的内容的度量的相似性,以及跟踪地图的一部分与该组环境地图的环境地图的部分之间的匹配程度。397.至此已经描述了一些实施例的几个方面,应当理解,本领域技术人员将容易想到各种改变、修改和改进。作为一个示例,结合增强(ar)环境来描述实施例。应当理解,在此描述的一些或全部技术可以在mr环境中或更普遍地在其它xr环境和vr环境中应用。398.作为另一个示例,结合诸如可穿戴设备的设备来描述实施例。应当理解,可以经由网络(诸如云)、分立应用和/或设备、网络和分立应用的任何合适的组合来实现在此描述的一些或全部技术。399.此外,图29提供了可用于过滤候选地图以产生一组高排名地图的标准的示例。代替所描述的标准或除了所描述的标准之外,可以使用其它标准。例如,如果多个候选地图具有用于过滤掉不太理想的地图的度量的相似值,则候选地图的特性可以用于确定哪些地图被保留为候选地图或被过滤掉。例如,更大或更密集的候选地图可以优先于较小的候选地图。在一些实施例中,图27-28可以描述图29-34中描述的全部或部分的系统和方法。400.图35和36是示出根据一些实施例的被配置为对多个环境地图进行排名和合并的xr系统的示意图。在一些实施例中,可通行世界(pw)可以确定何时触发对地图进行排名和/或合并。在一些实施例中,确定要使用的地图可以至少部分地基于以上关于图21至图25描述的深度关键帧。401.图37是示出根据一些实施例的创建物理世界的环境地图的方法3700的框图。方法3700可以从将由用户佩戴的xr设备捕获的跟踪地图定位(动作3702)到规范地图(例如,通过图28的方法和/或图900的方法900选择的规范地图)的群组。动作3702可以包括将跟踪地图的关键装配定位到规范地图的群组中。每个关键装配的定位结果可以包括关键装配的本地化姿势和2d到3d特征对应关系的集合。402.在一些实施例中,方法3700可以包括将跟踪地图分裂(动作3704)为连接的部分,这可以通过合并连接的片段来鲁棒地合并地图。每个连接的部分可以包括在预定距离内的关键装配。方法3700可以包括:将大于预定阈值的连接部分合并(动作3706)到一个或多个规范地图中;以及从跟踪地图中移除已合并的连接部分。403.在一些实施例中,方法3700可以包括合并(动作3708)与跟踪地图的相同连接部分进行合并的群组中的规范地图。在一些实施例中,方法3700可以包括将尚未与任何规范地图合并的跟踪地图的其余连接部分提升(动作3710)为规范地图。在一些实施例中,方法3700可以包括合并(动作3712)跟踪地图和规范地图的持久姿势和/或pcf,其中的规范地图与跟踪地图的至少一个连接部分进行合并。在一些实施例中,方法3700可以包括例如通过融合地图点并修剪冗余关键装配来最终化(行动3714)规范地图。404.图38a和38b示出了根据一些实施例的通过更新规范地图700创建的环境图3800,该规范地图700可以用新跟踪地图从跟踪地图700(图7)进行升级。如相对于图7所图示和描述的,规范地图700可以提供由点702表示在相应物理世界中的重建物理对象的平面图706。在一些实施例中,地图点702可以表示物理对象的特征,该物理对象可以包括多个特征。可以捕获关于物理世界的新跟踪地图,并将其上传到云端以与地图700合并。新跟踪地图可以包括地图点3802以及关键装配3804、3806。在所示的示例中,关键装配3804表示通过例如建立与地图700的关键装配704的对应关系(如图38b所示)而成功地定位到规范地图的关键装配。另一方面,关键装配3806表示尚未定位到地图700的关键装配。在一些实施例中,可以将关键装配3806提升为单独的规范地图。405.图39a至39f是示出基于云的持久坐标系的示例的示意图,该基于云的持久坐标系为相同物理空间中的用户提供共享的体验。图39a示出了例如来自云端的规范地图4814由图20a至图20c的用户4802a和4802b所佩戴的xr设备接收。规范地图4814可具有规范坐标框架4806c。规范地图4814可以具有带有多个相关联的pp的pcf4810c(例如,图39c中的4818a、4818b)。406.图39b示出了xr设备在其相应的世界坐标系4806a、4806b与规范坐标框架4806c之间建立的关系。例如,这可以通过定位到相应设备上的规范地图4814来完成。对于每个设备,将跟踪地图定位到规范地图可以导致对于每个设备其本地世界坐标系与规范地图的坐标系之间的变换。407.图39c示出可以计算在相应设备上的本地pcf(例如,pcf4810a、pcf4810b)到规范地图上的相应持久姿势(例如,pp4818a、pp4818b)之间的变换(例如,变换4816a、变换4816b)作为定位的结果。利用这些转换,每个设备都可以使用其本地pcf来确定相对于本地设备在何处显示附接到pp4818a、pp4818b或规范地图的其他持久点的虚拟内容,其中的本地pcf可以通过处理利用设备上的传感器检测到的图像来在设备本地进行检测。这样的方法可以相对于每个用户准确地定位虚拟内容,并且可以使每个用户能够在物理空间中具有虚拟内容的相同体验。408.图39d示出了从规范地图到本地跟踪地图的持续姿势快照。可以看出,本地跟踪地图通过持久姿势相互连接。图39e示出了由用户4802a佩戴的设备上的pcf4810a能够通过pp4818a在用户4802b佩戴的设备中访问。图39f示出了跟踪地图4804a、4804b和规范地图4814可以合并。在一些实施例中,一些pcf可以由于合并而被去除。在所示的示例中,合并地图包括规范地图4814的pcf4810c,但不包括跟踪地图4804a、4804b的pcf4810a、pcf4810b。在地图合并之后,先前与pcf4810a、pcf4810b相关联的pp可以与pcf4810c相关联。409.示例410.图40和图41示出了由图9的第一xr设备12.1使用跟踪地图的示例。图40是根据一些实施例的三维的第一本地跟踪地图(地图1)的二维表示,其可以由图9的第一xr设备生成。图41是示出根据一些实施例的从图9的第一xr设备向服务器上传地图1的框图。411.图40示出第一xr设备12.1上的地图1和虚拟内容(内容123和内容456)。地图1具有原点(原点1)。地图1包括许多pcf(pcfa至pcfd)。从第一xr设备12.1的角度来看,pcfa例如被定位在地图1的原点处并具有(0,0,0)的x、y和z坐标,并且pcfb具有x、y和z坐标(-1,0,0)。内容123与pcfa相关联。在本示例中,内容123具有相对于(1,0,0)的pcfa的x、y和z关系。内容456具有相对于pcfb的关系。在本示例中,内容456具有相对于pcfb的(1,0,0)的x、y和z关系。412.在图41中,第一xr设备12.1将地图1上传到服务器20。在该示例中,由于服务器没有为跟踪地图所表示的物理世界的同一区域存储规范地图,并且跟踪地图被存储为初始规范地图。服务器20现在具有基于地图1的规范地图。第一xr设备12.1具有在该阶段为空的规范地图。为了讨论的目的,并且在一些实施例中,服务器20除了地图1之外不包括其它地图。第二xr设备12.2上没有存储地图。413.第一xr设备12.1还向服务器20发送其wi-fi签名数据。服务器20可以使用wi-fi签名数据基于从其它设备收集的情报来确定第一xr设备12.1的大致位置,该其它设备过去已经与已记录的这类其它设备的gps位置一起连接到服务器20或其它服务器。第一xr设备12.1现在可以结束第一会话(参见图8),并且可以与服务器20断开连接。414.图42是示出了根据一些实施例的图16的xr系统的示意图,示出了在第一用户14.1终止第一会话之后,第二用户14.2已经使用xr系统的第二xr设备发起第二会话。图43a示出第二用户14.2发起第二会话的框图。因为第一用户14.1的第一会话已经结束,所以以虚线示出了第一用户14.1。第二xr设备12.2开始记录对象。服务器20可以使用具有不同粒度的各种系统来确定第二xr设备12.2的第二会话与第一xr设备12.1的第一会话在相同的附近处。例如,第一xr设备12.1和第二xr设备12.2中可以包括wi-fi签名数据、全球定位系统(gps)定位数据、基于wi-fi签名数据的gps数据或指示位置的任何其它数据,以记录他们的位置。可替代地,由第二xr设备12.2识别的pcf可以显示与地图1的pcf的相似性。415.如图43b中所示,第二xr设备启动并开始收集数据,诸如来自一个或多个相机44、46的图像1110。如图14中所示,在一些实施例中,xr设备(例如第二xr设备12.2)可以收集一个或多个图像1110并执行图像处理以提取一个或多个特征/关注点1120。每个特征可以转换为描述符1130。在一些实施例中,描述符1130可以用于描述关键帧1140,该关键帧1140可以具有附加的关联图像的位置和方向。一个或多个关键帧1140可以对应于单个持久姿势1150,该单个持久姿势1150可以在距先前持久姿势1150阈值距离(例如3米)之后被自动生成。一个或多个持久姿势1150可以对应于单个pcf1160,该单个pcf1160可以在预定距离(例如,每5米)之后被自动生成。随着时间推移,随着用户继续在用户的环境周围移动,并且xr设备继续收集更多的数据(诸如图像1110),可能创建附加pcf(例如pcf3和pcf4、5)。一个或多个应用1180可以在xr设备上运行,并将虚拟内容1170提供给xr设备以呈现给用户。虚拟内容可以具有关联的内容坐标框架,该内容坐标框架可以相对于一个或多个pcf放置。如图43b中所示,第二xr设备12.2创建三个pcf。在一些实施例中,第二xr设备12.2可以尝试定位到存储在服务器20上的一个或多个规范地图。416.在一些实施例中,如图43c中所示,第二xr设备12.2可以从服务器20下载规范地图120。第二xr设备12.2上的地图1包括pcfa至d和原点1。在一些实施例中,服务器20可以具有用于各个位置的多个规范地图,并且可以确定在第一会话期间第二xr设备12.2位于与第一xr设备12.1附近相同的附近处,并向第二xr设备12.2发送该附近的规范地图。417.图44示出第二xr设备12.2开始识别pcf以用于生成地图2。第二xr设备12.2仅识别了单个pcf,即pcf1,2。第二xr设备12.2的pcf1,2的x、y和z坐标可以是(1,1,1)。地图2具有其自己的原点(原点2),该原点可以基于在设备开始时当前头部姿势会话的设备2的头部姿势。在一些实施例中,第二xr设备12.2可以立即尝试将地图2定位到规范地图。在一些实施例中,因为系统不能识别两个地图之间的任何或足够的重叠,所以地图2可能不能定位到规范地图(地图1)中(即,定位可能失败)。可以通过识别在第一地图中表示的、也在第二地图中表示的物理世界的一部分,并计算对齐这些部分所需的第一地图和第二地图之间的变换来执行定位。在一些实施例中,系统可以基于本地地图和规范地图之间的pcf比较来定位。在一些实施例中,系统可以基于本地地图和规范地图之间的持久姿势比较来定位。在一些实施例中,系统可以基于本地地图和规范地图之间的关键帧比较来定位。418.图45示出第二xr设备12.2识别出地图2的其它pcf(pcf1、2,pcf3,pcf4、5)之后的地图2。第二xr设备12.2再次尝试将地图2定位到规范地图。由于地图2已扩展为与规范地图的至少一部分重叠,因此定位尝试将成功。在一些实施例中,本地跟踪地图、地图2和规范地图之间的重叠可以由pcf、持久姿势、关键帧或任何其它合适的中间或派生构造来表示。419.此外,第二xr设备12.2已将内容123和内容456与地图2的pcf1、2和pcf3相关联。内容123具有相对于的pcf1、2的x、y和z坐标(1,0,0)。类似地,相对于地图2中的pcf3,内容456的x、y和z坐标为(1,0,0)。420.图46a和图46b示出地图2到规范地图的成功定位。定位可以基于将一个地图中的特征与另一个地图匹配。通过适当的变换,这里涉及一个地图相对于另一个地图的平移和旋转,地图1410的重叠区域/体积/截面表示地图1和规范地图的共同部分。由于地图2在定位之前创建了pcf3和4、5,而规范地图在创建地图2之前创建了pcfa和c,因此创建了不同的pcf以表示实际空间中的相同体积(例如,在不同的地图中)。421.如图47中所示,第二xr设备12.2扩展了地图2,以包括来自规范地图的pcfa-d。包括pcfa-d表示地图2到规范地图的定位。在一些实施例中,xr系统可以执行优化步骤以从重叠区域去除重复的pcf,诸如1410中的pcf,pcf3和pcf4、5。在地图2定位后,虚拟内容(诸如内容456和内容123)的放置将予更新的地图2中最接近的更新的pcf相关联。虚拟内容相对于用户出现在相同的真实世界位置中,尽管更改了内容的pcf附加,并且尽管更新了地图2的pcf。422.如图48中所示,第二xr设备12.2继续扩展地图2,例如当用户围绕真实世界走动时,第二xr设备12.2会识别出其它pcf(pcfe、f、g和h)。还应注意,地图1在图47和图48中没有扩展。423.参考图49,第二xr设备12.2将地图2上传到服务器20。服务器20将地图2与规范地图一起存储。在一些实施例中,当针对第二xr设备12.2的会话结束时,地图2可以上传到服务器20。424.服务器20内的规范地图现在包括pcfi,该pcfi不包括在第一xr设备12.1上的地图1中。当第三xr设备(未示出)将地图上传到服务器20并且该地图包括pcfi时,服务器20上的规范地图可能已扩展为包括pcfi。425.在图50中,服务器20将地图2与规范地图合并以形成新的规范地图。服务器20确定pcfa至d对于规范地图和地图2是共同的。服务器扩展规范地图以包括pcfe至h和来自地图2的pcf1、2,以形成新的规范地图。第一xr设备12.1和第二xr设备12.2上的规范地图基于地图1,并且已过时。426.在图51中,服务器20将新的规范地图发送到第一xr设备12.1和第二xr设备12.2。在一些实施例中,当第一xr设备12.1和第二设备12.2试图在不同的或新的或随后的会话期间进行定位时,这可能发生。第一xr设备12.1和第二xr设备12.2如上所述进行,以将其相应的本地地图(分别为地图1和地图2)定位到新的规范地图。427.如图52中所示,头部坐标框架96或“头部姿势”与地图2中的pcf相关。在一些实施例中,地图的原点,原点2,是基于会话开始时的第二xr设备12.2的头部姿势。在会话期间创建pcf时,将相对于世界坐标框架原点2放置pcf。地图2的pcf用作相对于规范坐标框架的持久坐标框架,其中世界坐标框架可以是前一会话的世界坐标框架(例如,图40中的地图1的原点1)。这些坐标框架通过用于将地图2定位到规范地图的相同变换相关,如上面结合图46b所讨论的。428.先前已经参考图9讨论了从世界坐标框架到头部坐标框架96的变换。图52中所示的头部坐标框架96仅具有两个正交轴,该两个正交轴相对于地图2的pcf处于特定的坐标位置中,以及相对于地图2处于特定的角度。然而应当理解,头部坐标框架96相对于地图2的pcf位于三维位置,并且在三维空间内具有三个正交轴。429.在图53中,头部坐标框架96已相对于地图2的pcf移动。由于第二用户14.2已移动其头部,因此头部坐标框架96已移动。用户可以以六个自由度(6dof)移动其头部。头部坐标框架96因此可以在6dof(即,从其在图52中的先前位置在三维中,以及相对于地图2的pcf围绕三个正交轴)中移动。当图9中的真实对象检测相机44和惯性测量单元48分别检测头部单元22的真实对象和运动时,头部坐标框架96被调节。关于头部姿势跟踪的更多信息公开在题为“用于显示设备的增强姿势确定(enhancedposedeterminationfordisplaydevice)”的美国专利申请序列号16/221,065中,并且通过引用全部并入在此。430.图54示出声音可以与一个或多个pcf相关联。用户可以例如佩戴具有立体声的头戴式耳机或耳机。通过耳机的声音位置可以使用传统技术进行模拟。声音的位置可以位于固定位置,使得当用户将其头部向左旋转时,声音的位置向右旋转,使得用户感知到来自真实世界中相同位置的声音。在本示例中,声音的位置由声音123和声音456表示。为了便于讨论,图54在分析方面与图48相似。当第一用户14.1和第二用户14.2在相同或不同时间位于同一房间时,他们感知到声音123和声音456来自真实世界中的相同位置。431.图55和图56示出上述技术的另一实现方式。如参考图8所述,第一用户14.1已经发起了第一会话。如图55中所示,第一用户14.1已经终止了第一会话,如虚线所示。在第一会话结束时,第一xr设备12.1将地图1上传到服务器20。第一用户14.1现在已在比第一会话更晚的时间发起了第二会话。由于地图1已经存储在第一xr设备12.1上,因此第一xr设备12.1不会从服务器20下载地图1。如果丢失了地图1,则第一xr设备12.1从服务器20下载地图1。然后,第一xr设备12.1继续构建地图2的pcf,定位到地图1,并进一步开发如上所述的规范地图。然后,如上所述,第一xr设备12.1的地图2用于关联本地内容、头部坐标框架、本地声音等。432.参考图57和图58,也有可能多于一个的用户在同一会话中与服务器交互。在本示例中,第一用户14.1和第二用户14.2由第三用户14.3与第三xr设备12.3结合在一起。每个xr设备12.1、12.2和12.3开始生成自己的地图,即分别是地图1,地图2和地图3。当xr设备12.1、12.2和12.3继续开发地图1、2和3时,地图被增量上传到服务器20。服务器20合并地图1、2和3以形成规范地图。然后将规范地图从服务器20发送到xr设备12.1、12.2和12.3中的每个xr设备。433.图59示出根据一些实施例的用于恢复和/或重置头部姿势的观看方法的方面。在所示的示例中,在动作1400处,观看设备被通电。在动作1410处,响应于通电,发起新的会话。在一些实施例中,新的会话可以包括建立头部姿势。通过首先捕获环境的图像并且然后从图像确定表面,在固定到用户头部的头戴式框架上的一个或多个捕获设备捕获环境的表面。在一些实施例中,表面数据可以与来自重力传感器的数据相结合以建立头部姿势。可以使用其他合适的建立头部姿势的方法。434.在动作1420处,观看设备的处理器输入用于跟踪头部姿势的例程。当用户移动其头部以确定头戴式框架相对于表面的取向时,捕获设备继续捕获环境的表面。435.在动作1430处,处理器确定头部姿势是否已经丢失。头部姿势可能由于“边缘”情况而丢失,诸如可导致低特征获取的过多的反射表面、弱光、空白的墙壁、在室外等;或者由于诸如移动和形成地图的一部分的人群的动态情况而丢失。在1430处的例程允许经过一定量的时间,例如10秒,以允许足够的时间来确定头部姿势是否已经丢失。如果头部姿势尚未丢失,则处理器返回到1420,并再次进入对头部姿势的跟踪。436.如果在动作1430处头部姿势已经丢失,则处理器在1440处进入例程以恢复头部姿势。如果由于弱光导致头部姿势丢失,则将通过观看设备的显示器向用户显示诸如以下消息的消息:437.系统正在检测弱光条件。请移动到光线更充足的区域。438.系统将继续监视是否有足够的光可用以及是否可以恢复头部姿势。该系统可以可替代地确定表面的低纹理正在导致头部姿势丢失,在这种情况下,在显示器中向用户给出以下提示,作为改善表面捕获的建议:439.系统无法检测到具有精细纹理的足够的表面。请移动至表面纹理较不粗糙以及纹理更精细的区域。440.在动作1450处,处理器进入例程以确定头部姿势恢复是否已经失败。如果头部姿势恢复没有失败(即,头部姿势恢复已经成功),则处理器通过再次输入对头部姿势的跟踪来返回动作1420。如果头部姿势恢复已经失败,则处理器返回到动作1410以建立新的会话。作为新会话的一部分,所有缓存的数据均无效,此后重新建立头部姿势。任何合适的头部跟踪方法都可以与图59中描述的过程结合使用。美国专利申请第16/221,065号描述了头部跟踪,因此通过引用将其全部内容并入本文。441.远程定位442.各种实施例可以利用远程资源来促进个人和/或用户组之间的持久且一致的交叉现实体验。发明人已经认识到并理解,可以在不下载一组规范地图的情况下实现利用如本文所述的规范地图操作xr设备的益处,诸如图30中所示。例如,益处可以通过将特征和姿势信息发送到维护一组规范地图的远程服务来实现。寻求使用规范地图以将虚拟内容定位在相对于规范地图指定的位置的设备可以从远程服务接收特征与规范地图之间的一个或多个变换。这些变换可以在设备上使用,该设备维护关于这些特征在物理世界中的位置的信息,以将虚拟内容定位在相对于规范地图指定的位置中,或者以其他方式识别物理世界中相对于规范地图指定的位置。443.在一些实施例中,空间信息由xr设备捕获并传送到远程服务,例如基于云的服务,该服务使用空间信息将xr设备定位到由xr系统的应用或其他部件使用的规范地图,从而指定虚拟内容相对于物理世界的位置。一旦被定位,将由设备维护的跟踪地图链接到规范地图的变换可以被传送到设备。可以结合跟踪地图使用变换来确定渲染相对于规范地图指定的虚拟内容的位置,或者以其他方式识别物理世界中相对于规范地图指定的位置。444.发明人已经意识到,与传送地图数据相比,需要在设备和远程定位服务之间交换的数据可能非常小,传送地图数据可能在设备将跟踪地图传送到远程服务并从该服务接收一组规范地图以用于基于设备的定位时发生这种情况。在一些实施例中,在云资源上执行定位功能仅需要从设备向远程服务传输少量的信息。例如,不需要将完整的跟踪地图传送给远程服务以执行定位。在一些实施例中,特征和姿势信息,例如可能与如上所述的持久姿势相关地存储,可以被传输到远程服务器。如上所述,在特征由描述符表示的实施例中,上传的信息可能更小。445.从定位服务返回到设备的结果可以是将上传的特征与匹配的规范地图的部分相关的一个或多个变换。这些变换可以在xr系统中结合其跟踪地图用于识别虚拟内容的位置或以其他方式识别物理世界中的位置。在使用诸如上述pcf的持久空间信息来指定相对于规范地图的位置的实施例中,定位服务可以在成功定位之后将特征与一个或多个pcf之间的变换下载到设备。446.结果,xr设备和用于执行定位的远程服务之间的通信所消耗的网络带宽可能很低。该系统因此可以支持频繁定位,使与系统交互的每个设备能够快速获得用于定位虚拟内容或执行其他基于位置的功能的信息。当设备在物理环境中移动时,它可能会重复针对更新的定位信息的请求。此外,设备可能会频繁地获取对定位信息的更新,例如当规范地图发生变化时,例如通过合并额外的跟踪地图以扩展地图或提高其准确性。447.此外,上传特征和下载变换可以通过增加凭借欺骗获得地图的难度,来增强在多个用户之间共享地图信息的xr系统中的隐私。例如,可以阻止未授权的用户通过发送对表示物理世界中未授权的用户并不处于的部分的规范地图的虚假请求来从系统获取地图。未授权的用户不太可能访问其所正在请求的地图信息的物理世界的区域中的特征,如果未授权的用户并非在该区域中实际存在的话。在特征信息被格式化为特征描述的实施例中,在对地图信息的请求中欺骗特征信息的难度将更加复杂。此外,当系统返回旨在应用于在请求位置信息的区域中操作的设备的跟踪地图的变换时,系统返回的信息可能对冒名顶替者几乎没有用处或没有用。448.根据一个实施例,定位服务被实现为基于云的微服务。在一些示例中,实现基于云的定位服务可以帮助节省设备计算资源,并且可以使定位所需的计算能够以非常低的延迟执行。这些操作可以由几乎无限的计算能力或通过提供额外的云资源而可用的其他计算资源来支持,从而确保xr系统的可扩展性以支持众多设备。在一个示例中,可以在存储器中维护许多规范地图以进行几乎即时的访问,或者将其存储在高可用性设备中以减少系统延迟。449.此外,对云服务中的多个设备执行定位可以实现对过程的改进。定位遥感(telemetry)和统计可以提供关于哪些规范地图在有源存储器和/或高可用性存储中的信息。例如,可以使用多个设备的统计来识别最频繁被访问的规范地图。450.作为在云环境或具有相对于远程设备的大量处理资源的其他远程环境中的处理的结果,也可以实现额外的准确性。例如,相对于在本地设备上执行的处理,可以在云中更高密度的规范地图上进行定位。地图可以存储在云中,例如,具有更多的pcf或每个pcf更高密度的特征描述符,从而提高了来自设备的一组特征与规范地图之间匹配的准确性。451.图61是xr系统6100的示意图。在用户会话期间显示交叉现实内容的用户设备可以有多种形式。例如,用户设备可以是可穿戴xr设备(例如,6102)或手持移动设备(例如,6104)。如上所述,这些设备可以配置有软件,例如应用或其他部件,和/或硬连线以生成可以用于在它们各自的显示器上渲染虚拟内容的本地位置信息(例如,跟踪地图)。452.可以相对于全局位置信息指定虚拟内容定位信息,例如,全局位置信息可以被格式化为包含一个或多个pcf的规范地图。根据一些实施例,例如图61中所示的实施例,系统6100配置有支持虚拟内容在用户设备上的运行和显示的基于云的服务。453.在一个示例中,定位功能被提供为基于云的服务6106,其可以是微服务。基于云的服务6106可以在多个计算设备中的任何一个上实现,计算资源可以从这些计算设备分配给在云中执行的一个或多个服务。那些计算设备可以彼此互连并且对于诸如可穿戴xr设备6102和手持设备6104的设备是可访问的。这样的连接可以通过一个或多个网络提供。454.在一些实施例中,基于云的服务6106被配置为接受来自各个用户设备的描述符信息并且将设备“定位”到匹配的一个或多个规范地图。例如,基于云的定位服务将接收到的描述符信息与相应的规范地图的描述符信息相匹配。可以使用如上所述的技术来创建规范地图,该技术通过合并由具有图像传感器或获取关于物理世界的信息的其他传感器的一个或多个设备所提供的地图来创建规范地图。然而,不要求规范地图由访问它们的设备来创建,因为这样的地图可以由地图开发者创建,例如,地图开发者可以通过使地图对定位服务6106能够使用来发布地图。455.根据一些实施例,云服务处理规范地图识别,并且可以包括将规范地图的存储库过滤为一组潜在匹配的操作。过滤可以如图29所示来执行,或者通过使用过滤标准的任何子集和代替图29中所示的过滤标准或者除了图29中所示的过滤标准之外的其他过滤标准来执行。在一个实施例中,地理数据可用于将匹配规范地图的搜索限制为表示与请求定位的设备靠近的区域的地图。例如,区域属性,例如wi-fi信号数据、wi-fi指纹信息、gps数据、和/或其他设备位置信息,可用作存储的规范地图上的粗略过滤器,从而将描述符的分析限制为已知的或可能靠近用户设备的规范地图。类似地,每个设备的位置历史可以由云服务维护,以便优先搜索设备最后位置附近的规范地图。在一些示例中,过滤可以包括上面关于图31b、图32、图33和图34讨论的功能。456.图62是可以由设备执行以使用基于云的服务来利用规范地图定位设备的位置并接收指定设备本地坐标系和规范地图的坐标系之间的一个或多个变换的变换信息的示例流程。各种实施例和示例可以将一个或多个变换描述为指定从第一坐标框架到第二坐标框架的变换。其他实施例包括从第二坐标框架到第一坐标框架的变换。在其他实施例中,变换实现从一个坐标框架到另一个坐标框架的转变,所得到的坐标框架仅取决于期望的坐标框架输出(包括例如在其中显示内容的坐标框架)。在又一实施例中,坐标系变换可以使得能够确定从第二坐标框架到第一坐标框架和从第一坐标框架到第二坐标框架。457.根据一些实施例,可以向设备传送反映关于规范地图所定义的每个持久姿势的变换的信息。458.根据一个实施例,过程6200可以在6202处以新会话开始。在设备上开始新会话可以启动图像信息的捕获以构建设备的跟踪地图。此外,设备可以发送消息,向定位服务的服务器注册,提示服务器为该设备创建会话。459.在一些实施例中,在设备上开始新会话可选地可以包括从设备向定位服务发送调整数据。定位服务向设备返回基于一组特征和相关联的姿势所计算的一个或多个变换。如果在计算变换之前基于设备特定信息调整特征的姿势和/或在计算变换之后基于设备特定信息调整变换,而不是在设备上执行那些计算,则设备特定信息可能被发送到定位服务,以便定位服务可以应用这些调整。作为特定示例,发送设备特定的调整信息可以包括捕获传感器和/或显示器的校准数据。校准数据可用于例如调整特征点相对于测量位置的位置。替代地或附加地,校准数据可用于调整命令显示器渲染虚拟内容的位置,以便看起来针对该特定设备准确定位。该校准数据可以例如从使用设备上的传感器拍摄的同一场景的多个图像中获得。在那些图像中检测到的特征的位置可以表示为传感器位置的函数,使得多个图像产生可以求解传感器位置的一组方程。可以将计算出的传感器位置与标称位置进行比较,并且可以从任何差异中得出校准数据。在一些实施例中,关于设备构造的内在信息还可以使得能够针对显示器计算校准数据,在一些实施例中。460.在针对传感器和/或显示器生成校准数据的实施例中,校准数据可应用于测量或显示过程中的任何点。在一些实施例中,可以将校准数据发送到定位服务器,该定位服务器可以将校准数据存储在为每个设备建立的数据结构中,该每个设备已经向定位服务器注册并且因此处于与服务器的会话中。定位服务器可以将校准数据应用于作为用于提供该校准数据的设备的定位过程的一部分而计算的任何变换。因此,使用校准数据来提高感测和/或显示信息的准确性的计算负担由校准服务承担,从而提供了进一步的机制来减少设备上的处理负担。461.一旦建立了新会话,过程6200可以在6204继续捕获设备的环境的新帧。在6206,每个帧可以被处理以生成用于捕获的帧的描述符(包括例如上面讨论的dsf值)。这些值可以使用上面描述的一些或所有技术来计算,包括上面关于图14、图22和图23讨论的技术。如所讨论的,描述符可以被计算为特征点的映射,或者在一些实施例中,特征点周围的图像块到描述符的映射。描述符可以具有能够在新获取的帧/图像和存储的地图之间进行有效匹配的值。此外,从图像中提取的特征的数量可以被限制为每幅图像的特征点的最大数量,例如每幅图像200个特征点。如上所述,可以选择特征点来表示关注点。因此,动作6204和6206可以作为形成跟踪地图或以其他方式周期性地收集设备周围的物理世界的图像的设备过程的一部分来执行,或者可以但不必为了定位而单独执行。462.在6206的特征提取可以包括将姿势信息附加到在6206提取的特征。姿势信息可以是设备的本地坐标系中的姿势。在一些实施例中,姿势可以相对于跟踪地图中的参考点,例如如上所述的持久姿势。替代地或附加地,姿势可以相对于设备的跟踪地图的原点。这样的实施例可以使如本文所述的定位服务能够为范围广泛的设备提供定位服务,即使它们不使用持久姿势。无论如何,姿势信息可以附加到每个特征或每组特征,使得定位服务可以使用姿势信息来计算可以在将特征与存储的地图中的特征匹配时返回给设备的变换。463.过程6200可以继续到决策框6207,在该决策框6207中做出是否请求定位的决定。可以应用一个或多个标准来确定是否请求定位。该标准可以包括时间的流逝,使得设备可以在一定阈值时间量之后请求定位。例如,如果在阈值时间量内没有尝试定位,则该过程可以从决策框6207继续到动作6208,在该处从云请求定位。该阈值时间量可以在10到30秒之间,例如25秒。替代地或附加地,定位可以由设备的运动来触发。执行过程6200的设备可以使用imu和/或其跟踪地图来跟踪其运动,并在检测到距设备最后被请求定位的位置超过阈值距离的运动时启动定位。例如,阈值距离可以在1到10米之间,例如在3到5米之间。作为又一替代,可以响应于事件来触发定位,例如当设备创建新的持久姿势或设备的当前持久姿势改变时,如上所述。464.在一些实施例中,可以实现决策框6207,从而可以动态地建立用于触发定位的阈值。例如,在特征很大程度上一致使得将一组提取的特征与存储的地图的特征进行匹配的置信度可能较低的环境中,可能会更频繁地请求定位,以增加至少一次定位尝试将会成功的机会。在这种情况下,可以降低在决策框6207应用的阈值。类似地,在特征相对较少的环境中,可以降低在决策框6207应用的阈值以增加定位尝试的频率。465.不管定位如何被触发,当被触发时,过程6200可以进行到动作6208,其中设备向定位服务发送请求,包括由定位服务用来执行定位的数据。在一些实施例中,可以提供来自多个图像帧的数据用于定位尝试。例如,除非多个图像帧中的特征产生一致的定位结果,否则定位服务可能不会认为定位成功。在一些实施例中,过程6200可以包括将特征描述符和附加的姿势信息保存到缓冲器中。缓冲器可以例如是循环缓冲器,存储从最近捕获的帧中提取的特征集。因此,定位请求可以与在缓冲器中累积的多个特征集一起发送。在一些设置中,缓冲器尺寸被实现为累积更有可能产生成功定位的多个数据集。在一些实施例中,缓冲器尺寸可以被设置为从例如两个、三个、四个、五个、六个、七个、八个、九个或十个帧中累积特征。可选地,缓冲器尺寸可以具有可以响应于定位失败而增加的基线(baseline)设置。在一些示例中,增加缓冲器尺寸和传输的特征集的相应数量会降低后续定位功能无法返回结果的可能性。466.不管如何设置缓冲器尺寸,设备都可以将缓冲器的内容传送到定位服务作为定位请求的一部分。其他信息可以连同特征点和附加的姿势信息一起传输。例如,在一些实施例中,可以传输地理信息。地理信息可以包括例如gps坐标或与跟踪地图的设备相关联的无线签名或当前持久姿势。467.响应于在6208发送的请求,云定位服务可以分析特征描述符以将设备定位成规范地图或由服务维护的其他持久地图。例如,描述符与设备所定位的地图中的一组特征相匹配。基于云的定位服务可以相对于基于设备的定位执行如上所述的定位(例如,可以依赖于上面讨论的用于定位的任何功能(包括地图排名、地图过滤、位置估计、过滤的地图选择、图44至图46中的示例,和/或相对于定位模块、pcf和/或pp识别和匹配等进行讨论的)。然而,代替将识别的规范地图传送到设备(例如,在设备定位中),基于云的定位服务可以继续基于规范地图的匹配特征和从设备发送的特征集的相对取向来生成变换。定位服务可以将这些变换返回给设备,设备可以在框6210处接收。468.在一些实施例中,由定位服务维护的规范地图可以采用pcf,如上所述。在这样的实施例中,与从设备发送的特征点匹配的规范地图的特征点可以具有相对于一个或多个pcf指定的位置。因此,定位服务可以识别一个或多个规范地图,并且可以计算在随定位请求发送的姿势中表示的坐标框架与一个或多个pcf之间的变换。在一些实施例中,通过基于相应设备的地理数据过滤潜在地图来帮助识别一个或多个规范地图。例如,一旦过滤到候选集(例如,通过gps坐标等其他选项),可以详细分析规范地图的候选集以确定匹配的特征点或如上所述的pcf。469.在动作6210返回到请求设备的数据可以被格式化为持久姿势变换表。该表可以伴随一个或多个规范地图标识符,指示设备由定位服务定位到的规范地图。然而,应当理解,定位信息可以以其他方式格式化,包括作为变换列表,具有相关联的pcf和/或规范地图标识符。470.不管变换是如何被格式化的,在动作6212,设备可以使用这些变换来计算渲染虚拟内容的位置,该虚拟内容的位置已经由xr系统的应用或其他部件相对于任何pcf进行指定。该信息替代地或附加地在设备上用于执行任何基于位置的操作,其中基于pcf来指定位置。471.在一些场景中,定位服务可能无法将从设备发送的特征匹配到任何存储的规范地图,或者可能无法匹配与对定位服务的请求一起传送的足够数量的特征集从而认为成功进行了定位。在这样的场景中,定位服务可以向设备指示定位失败,而不是如上面结合动作6210所述的将变换返回给设备。在这样的场景中,过程6200可以在决策框6209处分支到动作6230,其中设备可以采取一个或多个动作用于失败处理。这些动作可以包括增加保存为了定位而发送的特征集的缓冲器的尺寸。例如,如果定位服务不认为定位成功,除非三个特征集匹配,则缓冲器尺寸可以从5增加到6,从而增加三个所传输的特征集与由定位服务维护的规范地图匹配的机会。472.替代地或附加地,失败处理可以包括调整设备的操作参数以触发更频繁的定位尝试。例如,可以减少定位尝试之间的阈值时间和/或阈值距离。作为另一示例,可以增加每个特征集中的特征点的数量。当从设备发送的集合中的足够数量的特征与地图的特征匹配时,可以认为发生特征集与存储在规范地图内的特征之间的匹配。增加发送的特征数量可以增加匹配的机会。作为具体示例,初始特征集大小可以是50,在每次连续定位失败时,其可以增加到100、150,然后是200。在成功匹配后,设置的大小然后可以返回到它的初始值。473.失败处理还可以包括除了从定位服务以外获得定位信息。根据一些实施例,用户设备可以被配置为缓存规范地图。缓存地图允许设备访问和显示云不可用的内容。例如,缓存的规范地图允许在通信失败或其他不可用的情况下进行基于设备的定位。474.根据各种实施例,图62描述了用于设备发起基于云的定位的高级流程。在其他实施例中,所示步骤中的各种一个或多个步骤可以进行组合、省略、或调用其他过程以完成对相应设备视图中的虚拟内容的定位和最终可视化。475.此外,应当理解,虽然过程6200示出了设备在决策框6207处确定是否启动定位,但是用于启动定位的触发可以来自设备外部,包括来自定位服务。例如,定位服务可以维护关于与其会话中的每个设备的信息。例如,该信息可以包括每个设备最近被定位到的规范地图的标识符。xr系统的定位服务或其他部件可以更新规范地图,包括使用上面结合图26描述的技术。当规范地图被更新时,定位服务可以向最近被定位到该地图的每个设备发送通知。该通知可以用作设备请求定位的触发和/或可以包括使用从设备最近发送的特征集所重新计算的更新的变换。476.图63a、图63b和图63c是示出设备和云服务之间的操作和通信的示例过程流。框6350、6352、6354和6456所示的是示例架构和参与基于云的定位过程的部件之间的分离。例如,被配置为处理用户设备上的感知的模块、部件和/或软件在6350处示出(例如,660,图6a)。用于持久世界操作的设备功能在6352处示出(包括,例如,如上所述并且关于持久世界模块(例如,662,图6a))。在其他实施例中,不需要6350和6352之间的分离并且所示的通信可以在设备上执行的过程之间。477.类似地,在框6354处示出的是被配置为处理与可通行世界/可通行世界建模相关联的功能的云过程(例如,802、812,图26)。在框6356处示出的是云过程,其被配置为处理与基于从设备发送的信息将设备定位到所存储的规范地图的存储库中的一个或多个地图相关联的功能。478.在所示实施例中,过程6300在6302处开始,此时新会话开始。在6304获得传感器校准数据。获得的校准数据可以取决于在6350处表示的设备(例如,多个相机、传感器、定位设备等)。一旦针对设备获得传感器校准,在6306处校准可以被缓存。如果设备操作导致频率参数(例如,收集频率、采样频率、匹配频率、以及其他选项)的变化,则在6308处频率参数被重置为基线。479.一旦新会话功能完成(例如,校准,步骤6302-6306),过程6300可以继续捕获新帧6312。在6314,从帧中提取特征及其对应的描述符。在一些示例中,描述符可以包括dsf,如上所述。根据一些实施例,描述符可以具有附加到它们的空间信息以实现后续处理(例如,变换生成)。在6316处,在设备上生成的姿势信息(例如,如上所述,相对于设备的跟踪地图指定的用于定位物理世界中的特征的信息)可以附加到提取的描述符。480.在6318,描述符和姿势信息被添加到缓冲器。以循环执行步骤6312-6318中所示的新帧捕获和添加到缓冲器,直到在6319超过缓冲器尺寸阈值。在6320处,响应于确定满足缓冲器尺寸,将定位请求从设备传送到的云。根据一些实施例,该请求可以由在云中实例化的可通行世界服务(例如,6354)来处理。在进一步的实施例中,用于识别候选规范地图的功能操作可以与用于实际匹配的操作分离(例如,示出为框6354和6356)。在一个实施例中,用于地图过滤和/或地图排名的云服务可以在6354执行并处理从6320接收的定位请求。根据一个实施例,地图排名操作被配置为在6322确定可能包括设备的位置的候选地图集。481.在一个示例中,地图排名功能包括用于基于地理属性或其他位置数据(例如,观察或推断的位置信息)来识别候选规范地图的操作。例如,其他位置数据可以包括wi-fi签名或gps信息。482.根据其他实施例,可以在与设备和用户的交叉现实会话期间捕获位置数据。过程6300可以包括针对给定设备和/或会话(未示出)填充(populate)位置的附加操作。例如,位置数据可以存储为设备区域属性值和用于选择接近设备位置的候选规范地图的属性值。483.任何一个或多个位置选项可用于将规范地图集过滤为可能表示包括用户设备的位置的区域的那些规范地图集。在一些实施例中,规范地图可以覆盖物理世界的相对较大的区域。规范地图可以被分割成区域,使得地图的选择可能需要地图区域的选择。例如,地图区域可以是几十平方米的数量级。因此,经过滤的规范地图集可以是地图的区域集。484.根据一些实施例,可以从候选规范地图、姿势特征、和传感器校准数据构建定位快照(snapshot)。例如,候选规范地图、姿势特征和传感器校准信息的阵列可以与确定特定匹配规范地图的请求一起发送。可以基于从设备接收的描述符和与规范地图相关联的存储的pcf数据来执行与规范地图的匹配。485.在一些实施例中,将来自设备的特征集与作为规范地图的一部分存储的特征集进行比较。该比较可以基于特征描述符和/或姿势。例如,可以基于候选集中特征的数量来选择规范地图的候选特征集,这些特征的描述符与来自设备的特征集的描述符足够相似以致于它们可能是相同的特征。例如,候选集可以是从用于形成规范地图的图像帧中导出的特征。486.在一些实施例中,如果相似特征的数量超过阈值,则可以对候选特征集执行进一步处理。进一步的处理可以确定来自设备的姿势特征集可以与候选特征集对齐的程度。可以对于来自规范地图的特征集(类似于来自设备的特征)进行摆姿势。487.在一些实施例中,特征被格式化为高维嵌入(例如,dsf等)并且可以使用最近邻搜索来进行比较。在一个示例中,系统被配置(例如,通过执行过程6200和/或6300)以使用欧几里得距离找到前两个最近邻,并且可以执行比率测试。如果最近邻比第二近邻更接近,则系统认为最近邻是匹配的。例如,可以通过欧几里得距离相对于第二近邻的比率比欧几里得距离相对于最近邻的比率超出阈值倍数来确定该上下文中的“更接近”。一旦来自设备的特征被认为与规范地图中的特征“匹配”,系统就可以配置为使用匹配特征的姿势来计算相对变换。从姿势信息发展而来的变换可用于指示将设备定位到规范地图所需的变换。488.内围层(inlier)的数量可以用作匹配质量的指示。例如,在dsf匹配的情况下,内围层的数量反映了在接收到的描述符信息和存储的/规范地图之间匹配的特征的数量。在另外的实施例中,可以通过计数每个集合中“匹配”的特征的数量来确定在该实施例中确定的内围层。489.可以替代地或附加地以其他方式确定匹配质量的指示。在一些实施例中,例如,当计算变换以基于匹配特征的相对姿势使来自设备的可能包含多个特征的地图定位到规范地图时,针对多个匹配特征中的每一个计算的变换统计可以作为质量指示。例如,较大的差异可以表明匹配质量较差。替代地或附加地,对于确定的变换,系统可以计算具有匹配描述符的特征之间的平均误差。可以针对变换计算平均误差,反映位置失配的程度。均方误差是误差度量的具体示例。不管具体的误差度量如何,如果误差低于阈值,则可以确定变换可用于从设备接收的特征,并且计算的变换用于定位设备。替代地或附加地,内围层的数量还可用于确定是否存在与从设备接收到的描述符和/或设备的位置信息匹配的地图。490.如上所述,在一些实施例中,设备可以发送多个特征集用于定位。当至少阈值数量的特征集与来自规范地图的特征集以误差低于阈值和/或内围层数量高于阈值相匹配时,可以认为定位成功。该阈值数可以是例如三个特征集。然而,应当理解,用于确定足够数量的特征集是否具有合适值的阈值可以根据经验或以其他合适的方式来确定。同样,匹配过程的其他阈值或参数,例如被视为匹配的特征描述符之间的相似度、用于选择候选特征集的内围层数、和/或失配误差的大小,可以类似地根据经验或以其他合适的方式确定。491.一旦确定匹配,就识别与匹配的一个或多个规范地图相关联的持久地图特征集。在匹配基于地图区域的实施例中,持久地图特征可以是匹配区域中的地图特征。持久地图特征可以是如上所述的持久姿势或pcf。在图63的示例中,持久地图特征是持久姿势。492.不管持久地图特征的格式如何,每个持久地图特征可以具有相对于它所属的规范地图的预定取向。该相对取向可以应用于计算的变换,以使来自设备的特征集与来自规范地图的特征集对齐,从而确定来自设备的特征集与持久地图特征之间的变换。任何调整,例如可能来自校准数据的调整,都可以应用于该计算的变换。得到的变换可以是设备的本地坐标框架和持久地图特征之间的变换。该计算可以针对匹配地图区域的每个持久地图特征执行,并且可以将结果存储在表中,在6326中表示为持久_姿势_表(persistent_pose_table)。493.在一个示例中,框6326返回持久姿势变换、规范地图标识符和内围层数的表。根据一些实施例,规范地图id是用于唯一标识规范地图和规范地图版本(或地图的区域,在定位基于地图区域的实施例中)的标识符。494.在各种实施例中,在6328,计算的定位数据可用于填充由定位服务维护的定位统计和遥感。该信息可以针对每个设备存储,并且可以针对每次定位尝试进行更新,并且可以当设备的会话结束时清除。例如,设备匹配过的地图可用于改进地图排名操作。例如,覆盖设备先前匹配的相同区域的地图可以在排名中被优先考虑。同样,覆盖相邻区域的地图可能比更偏远的区域被赋予更高的优先级。此外,可能基于检测到的设备随时间的轨迹对相邻地图进行优先级排序,其中在运动方向上的地图区域被赋予比其他地图区域更高的优先级。定位服务可以使用该信息,例如,根据来自设备的后续定位请求来限制在存储的规范地图中针对候选特征集搜索的地图或地图区域。如果在该有限区域中识别出具有低误差度量和/或大量或大百分比的内围层的匹配,则可以避免处理该区域外部的地图。495.过程6300可以继续从云(例如,6354)到用户设备(例如,6352)的信息传送。根据一个实施例,在6330,将持久姿势表和规范地图标识符传送给用户设备。在一个示例中,持久姿势表可以由至少包括识别持久姿势id的字符串(string)和使该设备的跟踪地图与持久姿势进行链接的变换的元素构成。在持久地图特征是pcf的实施例中,该表可以替代地指示对匹配地图的pcf的变换。496.如果在6336处定位失败,则过程6300通过调整可以增加从设备发送到定位服务的数据量的参数来继续,以增加定位成功的机会。例如,当在规范地图中找不到具有超过阈值数量的相似描述符的特征集时,或者当与所有变换的候选特征集相关联的误差度量高于阈值时,可以指示失败。作为可以调整的参数的示例,描述符缓冲器的尺寸约束可以增加(6319)。例如,在描述符缓冲器尺寸为5的情况下,定位失败可以触发增加到从至少六个图像帧中提取的至少六个特征集。在一些实施例中,过程6300可以包括描述符缓冲器增量值。在一个示例中,增量值可用于控制缓冲器尺寸的增加速率,例如,响应于定位失败。其他参数,例如控制定位请求速率的参数,可以在未能找到匹配的规范地图时更改。497.在一些实施例中,6300的执行可以在6340处生成错误条件,其包括定位请求未能工作而不是返回不匹配结果的执行。例如,由于网络错误导致保存规范地图数据库的存储对于执行定位服务的服务器不可用,或接收到的针对定位服务的请求包含不正确格式信息,可能会发生错误。在错误条件的情况下,在该示例中,过程6300在6342处调度请求的重试。498.当定位请求成功时,响应于失败而调整的任何参数可以被重置。在6332,过程6300可以继续操作以将频率参数重置为任何默认值或基线。在一些实施例中,无论任何改变如何都执行6332,从而确保始终建立基线频率。499.在6334,设备可以使用接收到的信息来更新高速缓存定位快照。根据各种实施例,相应的变换、规范地图标识符、和其他定位数据可以由设备存储,并用于将相对于规范地图指定的位置,或者例如持久姿势或pcf的它们的持久地图特征,与由设备相对于其本地坐标框架而确定的位置(这些位置诸如可以根据其跟踪地图来确定)进行相关。500.用于在云中定位的过程的各种实施例可以实施任何一个或多个前述步骤并且基于前述架构。其他实施例可以组合前述步骤中的各种一个或多个,同时、并行或以另一顺序执行步骤。501.根据一些实施例,在交叉现实体验的上下文中的云中的定位服务可以包括附加功能。例如,可以执行规范地图缓存来解决连接问题。在一些实施例中,设备可以周期性地下载和缓存它已经定位到的规范地图。如果云中的定位服务不可用,则设备可以自己运行定位(例如,如上所述——包括关于图26)。在其他实施例中,从定位请求返回的变换可以被链接在一起并应用于后续会话。例如,设备可以缓存一系列变换并使用变换序列来建立定位。502.系统的各种实施例可以使用定位操作的结果来更新变换信息。例如,定位服务和/或设备可以被配置为将跟踪地图上的状态信息维护到规范地图变换。接收到的变换可以随时间平均。根据一个实施例,可以将平均操作限制为在阈值数量的定位成功(例如,三、四、五或更多次)之后发生。在进一步的实施例中,可以在云中跟踪其他状态信息,例如通过可通行世界模块。在一个示例中,状态信息可以包括设备标识符、跟踪地图id、规范地图参考(例如,版本和id)、以及规范地图到跟踪地图的变换。在一些示例中,系统可以使用状态信息来不断更新并获得更准确的规范地图,以采用每次执行基于云的定位功能来跟踪地图变换。503.对基于云定位的附加增强可以包括向设备传送特征集中与规范地图中的特征不匹配的异常值(outlier)。设备可以使用该信息例如来改进其跟踪地图,诸如通过从用于构建其跟踪地图的特征集中移除异常值。替代地或附加地,来自定位服务的信息可以使设备能够将针对其跟踪地图的光束平差(bundleadjustment)限制为基于内围层特征的计算调整或以其他方式对光束平差过程施加约束。504.根据另一个实施例,各种子过程或附加操作可以结合针对基于云定位所讨论的过程和/或步骤和/或作为针对基于云定位所讨论的过程和/或步骤的替代来使用。例如,候选地图识别可以包括基于与相应地图一起存储的区域标识符和/或区域属性来访问规范地图。505.pcf质量506.本文描述了用于多个用户参与共享xr体验的方法和装置。如上所述,多个xr设备可以通过在各个xr设备上运行的应用进行交互,在xr设备中,虚拟内容的位置相对于共享坐标框架来表示。如上所述的pcf在本文中用作共享坐标框架的示例。这种持久空间信息由xr设备定位到的共享地图来提供。507.xr系统可以被配置为计算指示虚拟内容的位置不确定性(uncertainty)的质量信息,当由xr设备渲染时,其具有最初相对于pcf指定的位置。可以针对提供给每个xr设备的每个pcf计算该质量信息,因为具有相对于pcf指定的位置的渲染虚拟内容的位置不确定性可能取决于多个误差,包括与xr设备本地的坐标框架、pcf、以及xr设备本地的坐标框架与pcf之间的转换中的任何或全部相关联的误差。508.这样的质量信息可以用于在共享体验中调整设备的操作。如果相对于pcf定位的对象在由不同的xr设备渲染时未出现在同一位置,尽管系统针对所有的xr设备指定了例如与pcf位置相同的固定偏移(offset),在通过不同的xr设备查看时共享虚拟对象的位置也可能会发生偏差。例如,与佩戴不同xr设备的另一个用户相比,佩戴xr设备的用户可能会感知到对象在左侧一英寸处。当通过各个设备与相同的虚拟内容进行交互时,这些偏差可能会降低用户的体验。例如,如果用户看到他们的对手通过抓住虚拟棋子的左侧一英寸的空白空间而不是抓住棋子本身来移动棋子,则用户体验将受到负面影响。509.由不同xr设备渲染的共享虚拟对象的位置偏差可以反映多个误差源的累积。在本文提供的示例中,每个xr设备的本地坐标框架是利用跟踪地图(tm)建立的。每个设备可以定位到共享地图,其示例是规范地图(cm),类似地表示3d环境。pcf在规范地图中的位置误差、tm中的误差、以及在定位中引入的误差都可能影响各个xr设备渲染与pcf相关联的虚拟内容的准确性。由于所渲染的虚拟内容的位置可能是多步姿势估计的结果,因此总体误差可能涉及位置误差和/或不确定性通过类似的变换集的传播。多步姿势估计可以包括姿势变换链(chain),包括例如共享地图中的pcf姿势估计(例如,cm_t_pcf),以及xr设备的本地坐标框架与共享地图的坐标框架之间的变换(例如,tm_t_cm)。可以应用类似的变换来将在整个过程中发生的误差与所渲染的虚拟内容的位置误差相关联。510.关于虚拟内容(最初是相对于pcf指定的)在被渲染时的位置误差的质量信息可以以多种形式中的任何一种来表示。误差可以统计地表达,例如通过方差、协方差、或位置不确定性的其他统计指示,并且质量信息可以基于这些中的任何一个或所有来表达。在一些实施例中,关于pcf的质量信息可以指示被附接到pcf的虚拟内容在由xr设备渲染时的上限位置误差。上限位置误差可以包括平移和旋转误差。511.在一些实施例中,质量信息可以全部或部分地基于关于pcf的位置的置信水平,其中pcf的位置被提供给已经定位到包括pcf的地图的xr设备。在一些实施例中,pcf可以基于3d环境中的特征集来定义,并且置信水平可以全部或部分地基于3d环境中那些物理特征相对于pcf的位置之间的偏差低于阈值量的概率。512.在一些实施例中,质量信息可以全部或部分地基于定位过程中的不确定性。这种不确定性可以与定位时的xr设备与pcf之间的距离成反比关系。例如,在定位时,靠近xr设备的pcf的置信水平可能会增加,而对于更远的pcf,置信水平可能会降低。在一些实施例中,置信水平可以随着xr设备移动靠近pcf而增加并且随着xr设备移动远离pcf而降低。513.关于pcf的质量信息可以通过将一个或多个变换应用于姿势变换链而使这些和/或其他误差源聚合来计算。每个姿势可以包括六个参数(例如,6dof)的向量,具有误差的平均值(μ)和协方差(σ)。多个姿势可以通过变换链(例如,tm_t_cm*cm_t_pcf)进行组合以定义组合姿势及其相关联的误差协方差,其对与链式姿势估计过程相关联的不确定性进行编码。可以使用用于误差传播的无迹(unscented)变换技术或通过计算各个协方差矩阵的迹(trace)来估计组合的姿势协方差矩阵。协方差矩阵的迹对应于其特征值的总和。可以通过组合(例如,相加(adding))各个协方差矩阵的迹来近似组合的链式不确定性。关于pcf的质量信息可以包括组合的链式不确定性。514.该质量信息可以直接用作虚拟内容(相对于pcf指定的)在由xr设备渲染时的定位质量的指示。然而,在一些实施例中,该信息可用于计算用作质量度量的单个或少量的值。例如,基于经变换的平均值(μut)和协方差(σut),可以提供虚拟内容位于该内容的真实位置的阈值距离内的概率。替代地或附加地,位置误差的统计可以用于计算位置误差小于阈值量的概率。该概率可以以一个或多个假设为条件,例如便携式设备在pcf的阈值距离(例如10米)内。替代地或附加地,该度量可以被表示为虚拟内容的位置将被渲染为在用户看来是在真实位置的阈值距离内或将具有一些其他特性的置信度。515.不管质量信息如何被格式化,在xr设备上运行的应用可以根据关于pcf的质量信息调整其运行时行为。在一些实施例中,应用可能不会由xr设备启动,除非该应用使用的pcf的置信水平高于阈值。在一些实施例中,在xr设备上运行的应用可以基于关于pcf的质量信息来调整与pcf相关联的虚拟对象的渲染,包括例如通过采取诸如放大虚拟对象的至少一部分的动作,降低虚拟对象的至少一部分的分辨率,前述渲染虚拟对象的至少一部分,和/或阻止与第二便携式电子设备共享虚拟内容。516.图64是图示根据一些实施例的其中多个xr设备(例如,xr设备2102、2104)通过相同的应用(例如,游戏2106)交互的场景的示意图。每个xr系统可以包括应用2106的至少一部分的副本。在一些实施例中,应用2106的至少一部分的副本可以位于设备上,例如在可穿戴计算包上,或者副本可以位于可能是xr系统的一部分或xr系统可以访问的云上。517.在所示示例中,佩戴xr设备2102的用户(例如,用户a)可以在3d环境(例如,客厅)中通过xr设备2102玩游戏2106。xr设备2102可以与可通行世界模块2110通信并且定位到房间的地图(例如,由xr设备2102创建的跟踪地图,或者存储在可通行世界模块2110中的规范地图)。被定位的地图可以包括附加了由游戏2106创建的虚拟内容的pcf。518.xr设备2102可以检查关于房间的地图的质量信息。关于地图的质量信息可以包括关于地图中各个pcf的质量信息。然而,在一些实施例中,关于地图的质量信息可以表示针对房间的地图中的所有pcf计算的聚合(aggregate)质量度量,其可以基于跨pcf的平均或最坏情况质量度量来计算。519.xr设备2102可以基于质量信息有条件地启动游戏,例如仅当关于房间的地图的质量信息指示房间内的位置准确度足以用于游戏时才启动游戏。例如,游戏的开发者可以定义足够的质量。因此,例如,需要与虚拟内容进行高度共享交互的游戏可能不会在质量低劣的房间中启动,但是仅向用户输出信息使得不因渲染的虚拟内容的位置精度差而影响功能的应用可以启动。520.当质量不够时,xr设备可以采取一个或多个替代动作。例如,游戏可以向用户输出建议用户在另一个位置玩游戏的消息。替代地或附加地,当确定房间地图的质量不足以进行游戏时,xr设备2102可以尝试定位到不同的地图。在一些实施例中,关于地图的质量信息可以指示应用的合适模式,包括例如单设备模式或多设备模式。521.足以用于应用的定位地图的质量可以取决于应用的性质。例如,与在墙上显示日历相比,国际象棋游戏可能需要更高的精度,因此需要更高的质量,因为国际象棋游戏具有许多紧密放置在一起的虚拟棋子,可以由玩家单独移动。如果玩家佩戴的xr设备未定位到具有足够质量的地图,则国际象棋游戏应用可以更改所保存的国王位置并将经移动的国王正确显示给第一用户(例如,国王在该用户手中并放置在虚拟棋盘的正确方格上)。另一方面,第二用户可以替代看到第一用户抓住虚拟国王棋子旁边的空白空间,看到国王漂浮在空中,以及看到国王被放置在两个方格之间的线上而不是单个方格内。作为另一个示例,乒乓球比赛可能需要更高的质量,因为虚拟乒乓球可能无法真实响应在与乒乓球比赛的应用识别出的位置不同的位置看到乒乓球的玩家的击球(例如,用户可能会看到球拍击中虚拟球,但球没有响应击球,因为它实际上位于球拍挥动体积之外的空间中)。522.图64图示了在提供质量度量时可能的进一步动作。佩戴xr设备2104的另一个用户(例如,用户b)可以走进房间。xr设备2104可以与可通行世界模块2110通信并且定位到房间的地图中。设备2104已经定位到的房间的地图可以与设备2102已经定位到的地图相同或不同,这取决于例如房间的大小、房间中用户的位置、以及存储在可通行世界模块2110中的房间的地图的数量。xr设备2104可以在定位到地图中之后检查关于房间地图的质量信息。由于设备上的不同跟踪地图或影响每个设备渲染的虚拟内容的位置准确性的其他条件,该质量信息可能与用户a的不同。523.用户a可以通过xr设备2102的显示器看到游戏内按钮并点击触发用户界面(ui)的按钮(例如,“朋友邀请选择器”)。ui2108可以在游戏2106仍在xr设备2102上运行时被触发。在ui2108中,用户a可以在朋友列表下看到用户b并且在客人列表下看到用户c。用户c可能是家里的客人,但目前不在客厅。524.游戏应用可以以一种或多种方式利用质量信息。例如,用户a可以经由ui2108邀请用户b一起玩游戏2106,例如通过在朋友邀请选择器中选择用户b并点击提交邀请。在提交邀请之后,用户a可以不再看到ui2108并继续玩游戏。在一些实施例中,xr设备2102可以基于设备2102已定位到的房间地图的质量信息来通知用户a是否适合参与多设备模式。在一些实施例中,xr设备可以检查关于受邀设备已定位到的地图的质量信息,并通知用户a是否适合与受邀设备进行多设备模式。在一些实施例中,当确定与要被共享的虚拟内容相关联的一个或多个pcf的质量对于多设备模式而言不足时,xr设备2102可以拒绝发送邀请。525.例如,用户b可以通过xr设备2104的显示器看到通知,而不管xr设备2104上运行的任何应用。通知可以指示来自用户a的玩游戏2106的邀请。用户b可以与通知进行交互,通过例如接受或拒绝邀请。当用户b接受邀请时,xr设备2104可以启动游戏2106,使得用户b可以在游戏内与用户a交互。在一些实施例中,xr设备2104可以基于与要被共享的虚拟内容相关联的pcf的质量信息来通知用户b是否适合参与多设备模式。在一些实施例中,当确定用户b已定位到的房间地图的质量对于多设备模式而言不足时,xr设备2102可以拒绝接受邀请。526.关于地图的质量信息可以包括关于地图中的pcf的质量信息。在一些实施例中,关于pcf的质量信息可以直接对xr设备的用户可见。在一些实施例中,关于pcf的质量信息可以对应用的各个副本可见,使得应用的副本可以在由各个xr设备渲染时,基于相对于pcf指定的虚拟内容的位置准确性有关的质量信息来修改动作。527.图65描绘了根据一些实施例操作xr系统的方法2200。方法2200可以从将3d环境中的xr设备定位(动作2202)到3d环境的地图开始。xr设备的一个或多个传感器可以捕获图像流。动作2202可以包括根据图像形成特征信息集,并且获得存储在地图中的与来自图像的该特征信息集匹配的特征信息。在一些实施例中,动作2202可以包括上面结合图63a至图63c描述的基于云的定位。528.作为定位的结果,设备可以获得关于设备已经定位到的共享地图的信息。方法2200可以包括从3d环境的地图获得(动作2204)pcf信息。在一些实施例中,获得的pcf信息可以包括与来自图像的该特征信息集匹配的特征信息。在一些实施例中,获得的pcf信息可以包括一个或多个pcf。例如,定位服务可以返回关于地图中xr设备的定位位置的阈值距离内的所有pcf的信息。在一些实施例中,阈值区域可以是具有阈值距离半径的圆形区域。529.在一些实施例中,所获得的pcf信息可以包括关于为其返回信息的pcf的质量信息。在图65的示例中,关于pcf的质量信息是利用在执行动作2202的处理的定位服务上可用的信息来计算的。然而,在其他实施例中,关于提供给xr设备的pcf的质量信息可以是在计算质量度量中所使用的信息的一部分。可以在设备上生成其他信息,并且可以通过将由服务生成的信息与在设备上生成的信息相结合来计算最终质量度量。在服务上生成的信息可以指示pcf的位置不确定性。可以在设备上生成关于xr设备本地的坐标框架的不确定性的信息。计算在定位服务上生成的xr设备本地的pcf坐标框架与xr设备上生成的pcf坐标框架之间的变换中引入的不确定性有关的信息可以在服务与设备之间共享,从而可以计算总体质量得分。因此,在各种实施例中,可以在定位服务器、xr设备或类似地有权访问计算中使用的信息的另一计算机上,计算质量度量。530.可以使用一种或多种技术来确定特定pcf和特定设备的不确定性。在一些实施例中,关于pcf的质量信息可以包括或者可以基于关于作为设备定位到pcf的结果而获得的该pcf的位置的置信水平。在一些实施例中,置信水平可以是在至少一个自由度上在所获得的pcf的位置和pcf与其相关联的物理特征之间的偏差在阈值量内的概率。531.在一些实施例中,置信水平可以基于定位过程的特征来确定。例如,置信度可以取决于定位时定位的xr设备和pcf之间的距离。置信水平可以与距离成反比关系。例如,当xr设备靠近pcf时,置信水平可能会增加,而当xr设备远离pcf时,置信水平可能会降低。距离与不确定性之间的启发式或经验确定的关系可用于确定不确定性。532.替代地或附加地,置信水平可以取决于可由xr设备在pcf周围测量的特征的数量。例如,当可以测量更多特征时,关于pcf的置信水平可能会增加,因为更多测量的特征可能会减少使用该特征集将设备定位到pcf时引入的不确定性。特征数量与不确定性之间的启发式或经验确定的关系可用于确定不确定性。533.图66是pcf6602周围的空间图6600,描绘了如何生成关于pcf6602的质量信息的另一个示例,例如可以在动作2206处生成的。pcf6602可以包括节点6610和坐标框架使相对于节点的位置能够被指定为具有六个自由度(6dof)6612。如上所述,pcf可以具有与其相关联的特征集,使得xr设备可以通过匹配由设备可检测的特征和与pcf相关联的特征集而相对于pcf进行定位。在一些实施例中,在本地设备上渲染的相对于pcf定位的内容的位置准确性可以取决于匹配的质量。534.在一些实施例中,质量信息的全部或一部分可以基于在定位过程中引入的误差。在此示例中,定位过程中引入的位置不准确性可以取决于xr设备相对于与pcf相关联的特征集的位置。当xr设备离产生该特征集的对象更远时,因此与pcf相距更远,位置不准确性可能会更大。在一些实施例中,特征可以或不可以表示在平面中。在这种情况下,由于设备捕获的特征与与pcf相关联的特征集相匹配的结果,xr设备相对于该平面的法线的角度可能会影响位置不确定性。535.作为这种误差的结果的位置不准确性可以表示为多个置信水平之一。为了反映在定位时xr设备和pcf之间的距离引起的位置不准确性,置信水平可以对应于pcf周围具有不同半径的球形区域。置信水平可以具有介于0和1之间的值。在所示示例中,质量信息6600包括对应于具有增加的半径的三个球形区域6604、6606和6608的三个置信水平。在一些实施例中,置信水平可以随着半径的增加而降低。当半径高于阈值(例如,10米)时,置信水平可能会变为零。一些应用可能需要最低置信度才能启动,例如,高于0.8。因此,置信水平之一可以具有设置为对应于该阈值的半径。536.在其中在定位时xr设备和pcf之间的角度影响位置不准确性的实施例中,球面置信水平可以基于xr设备相对于pcf的角度位置被进一步分割,例如,沿着pcf的三个轴中的每一个。对于每个片段(segment),可以分配不同的置信度。置信水平的分配可以启发式地或通过测试代表性设备来进行。不管置信水平如何被确定,总置信度可以在设备定位时通过选择与xr设备在定位时所处的片段相关联的置信水平来选择。537.不管用于确定质量信息的具体技术是什么,当虚拟内容具有相对于pcf定义的位置时,关于位置不确定性的质量信息可以表示为度量或其他格式。在一些实施例中,例如,关于提供给xr设备的pcf的质量信息可以指示在由xr设备渲染时附接到pcf的虚拟内容的上限位置误差。在一些实施例中,关于pcf的质量信息可以包括获得的pcf的上限误差。上限误差可以包括相对于xr设备本地的坐标框架的关于pcf的旋转误差和关于pcf的平移误差。538.在一些实施例中,上限误差可以等于定位误差,因为可以使用定位姿势从规范地图导入pcf。随着xr设备创建的跟踪地图的增长,跟踪地图可能会被扭曲,以使跟踪地图与规范地图对齐,这可能具有减少xr设备感知的pcf误差的效果。539.在图65的示例中,方法2200包括计算(动作2206)关于设备已定位到的pcf的质量信息。多个源可能影响渲染与获得的pcf相关联的虚拟内容的不准确性。具有跟踪地图的xr设备可以定位到来自与跟踪地图所表示的区域相同的区域的规范地图。可以将规范地图中的pcf和附接到pcf的虚拟内容被提供给xr设备。540.方法2200可以包括基于所获得的pcf信息来渲染(动作2208)虚拟内容。在一些实施例中,动作2208可以包括使用获得的pcf信息选择性地进行渲染。该信息可以包括定位信息,例如pcf和xr设备的本地坐标框架之间的变换,使得设备可以在xr设备的显示器上渲染相对于pcf指定的内容。获得的pcf信息还可以包括质量信息。在一些实施例中,选择性地渲染可以基于质量信息。例如,渲染虚拟内容的设备的部件可以通过基于质量信息来放大虚拟对象的至少一部分、降低虚拟对象的至少一部分的分辨率、和/或放弃渲染虚拟对象的至少一部分来选择性地进行渲染。541.替代地或附加地,不是分配单个置信水平来反映在定位期间引入的误差或以其他方式影响使用定位结果渲染的虚拟内容的位置精度,误差可以反映为协方差或误差的其他统计表示。误差可以用多维统计格式表示,例如协方差矩阵。然而,该表示可能在与用于渲染虚拟内容的坐标框架不同的坐标框架中。例如,协方差矩阵可能位于pcf的坐标框架中,该坐标框架不同于在其中渲染虚拟内容的xr设备的本地坐标框架。根据用于将pcf与xr设备的本地坐标框架相关联的多步姿势估计过程,该误差可以被转换为xr设备的坐标框架。542.图67描绘了根据一些实施例的多步姿势估计2600,以使xr设备2104(图64)能够在规范地图2606中渲染相对于pcf2612指定的虚拟内容。误差和由此产生的位置不确定性可以根据类似的多步姿势估计过程被传播。在所示示例中,xr设备2102(图64)被定位到规范地图2606。规范地图2606可以包括规范坐标框架2610和pcf2612。虚拟对象2614可以相对于pcf2612被定位。虚拟对象2614可以具有虚拟对象2614本地的坐标框架和相对于pcf2612的姿势。543.pcf2612可以在规范地图2606中具有姿势m(γt),其中γ可以表示平移向量并且t可以表示旋转四元数。pcf姿势m(γt)可以具有与姿势估计相关联的误差(σm,μm),其中σm是协方差矩阵,μm是平均误差。可以通过pcf2612和规范地图坐标框架2610之间的非线性变换(cm_t_pcf)来计算姿势m(γt)和相关联的误差(σm,μm)。544.xr设备2104可以具有跟踪地图2608。跟踪地图2608可以包括xr设备2104本地的坐标框架2618。一个或多个捕获的图像,其可以表示为如上所述的关键帧或关键装配,用于xr设备2104的定位尝试具有跟踪地图姿势p(θt),其中θ表示平移向量并且t表示旋转四元数。跟踪地图姿势p(θt)具有与姿势估计相关联的误差(σp,μp),其中σp表示协方差矩阵,μp表示平均误差。在基于关键装配计算姿势的情况下,姿势p(θt)和相关联的误差(σp,μp)可以通过跟踪地图与关键装配(tm_t_rig)之间的非线性变换来计算。545.xr设备2104用于定位尝试的关键装配可以具有定位姿势其中表示平移向量并且t表示旋转四元数。定位姿势可以具有与姿势估计相关联的误差(σl,μl),其中σl表示协方差矩阵,μl表示平均误差。可以通过规范地图坐标框架2610和关键装配(cm_t_rig)之间的非线性变换来计算姿势和相关联的误差(σl,μl)。提供给xr设备2104的关于pcf2612的信息(tm_t_pcf)可以是所有姿势的非线性函数546.提供给xr设备2104的关于pcf2612的信息可以是包括姿势估计链的多步姿势估计2600的结果。姿势估计链可以包括通过例如计算cm_t_rig*倒转(inverse)(tm_t_rig)来计算xr设备2104本地的坐标框架2618与规范地图坐标框架2610之间的变换(cm_t_tm)。在一些实施例中,cm_t_tm可以在多个关键装配上进行平均。姿势估计链可以包括通过例如计算倒转(inverse)(cm_t_tm)*cm_t_pcf来计算pcf2612与xr设备2104本地的坐标框架2618之间的变换(tm_t_pcf)。在过程的每个步骤中可能会出现影响利用所得到的变换进行渲染的虚拟内容的位置准确性的误差,从而可以将总误差确定为这些误差的聚合。547.图68描绘了根据一些实施例的方法2206的处理细节。方法2206可以包括计算(动作6802)关于将xr设备定位到地图的质量信息。在一些实施例中,动作6802可以包括通过计算非线性变换cm_t_rig和计算与非线性变换cm_t_rig相关联的误差(σl,μl)来估计定位姿势可以例如使用启发式或收集的数据来计算误差(σl,μl),从而反映误差作为可能影响定位过程的一个或多个参数的函数。例如,xr设备在定位时的距离和/或与设备定位到的pcf相关联的特征的数量可用于指示定位姿势中的误差。可以替代地或附加地使用定位误差的其他指示,例如失败的定位尝试的数量和/或能够成功定位的连续特征集的数量。548.方法2206可以包括计算(动作6804)关于规范地图中的pcf的质量信息(例如,cm_t_pcf)。在一些实施例中,动作6804可以包括通过计算非线性变换cm_t_pcf和计算与非线性变换cm_t_pcf相关联的误差(σm,μm)来估计pcf姿势m(γt)。例如,可以使用启发式或收集的数据来计算误差(σm,μm),从而将误差反映为可能会影响pcf的创建一个或多个参数的函数。因此,此误差信息可以在创建pcf时与pcf一起存储。在一些实施例中,例如,该误差信息可以启发式地或经验地确定。在一些实施例中,可以假设所有pcf的误差相同。549.方法2206可以包括计算(动作6806)关于用于定位的跟踪地图的质量信息(例如,tm_t_rig)。在一些实施例中,动作6806可以包括通过计算非线性变换tm_t_rig和计算与非线性变换tm_t_rig相关联的误差(σp,μp)来估计跟踪姿势p(θt)。例如,可以使用启发式或收集的数据来计算误差(σp,μp),以反映误差作为可能会影响相对于跟踪地图的姿势的一个或多个参数的函数。例如,添加到跟踪地图的新图像帧中的特征与已经在跟踪地图中的特征之间的均方误差可以用作误差的指示。类似地,跟踪地图中的光束法平差之后的残余误差可以指示误差量。550.在任何特定实施例中,在确定基于这些变换渲染的虚拟内容的位置的不确定性时,可以考虑这些误差源中的一个或多个。例如,一些误差可能太小而不会影响结果和/或可能在pcf和设备之间基本恒定,因此可能不包括在计算中。551.不管考虑哪些误差,这些误差源并不都在相同的坐标框架中,并且并非所有的误差源都反映了相对于要在其中渲染虚拟内容的设备的坐标框架的误差。为了实现误差源的聚合和/或在其中将在xr设备上渲染虚拟内容的坐标框架中表示误差,可以将这些误差源转换为xr设备的坐标框架。方法2206可以包括通过对误差应用变换(例如,无迹变换)来聚合(动作6808)误差源。该变换可以基于用于导出pcf的位置信息的姿势变换链(例如,tm_t_pcf=tm_t_cm*cm_t_pcf)。在一些实施例中,误差统计将与使用无迹变换的位置变换一起传播。552.在一些实施例中,动作6808可以包括组合变换链(tm_t_cm*cm_t_pcf)以生成新的参数向量。例如,每个变换(tm_t_cm,cm_t_pcf)可以是6dof中的刚性变换,其可以通过六维向量x(例如,xrm_cm,xcm_pcf)来参数化。每个向量x可以具有误差的相关联均值和协方差。在一些实施例中,动作6808可以包括通过组合每个变换的向量x来生成新的参数向量。通过组合每个变换的误差的均值和协方差,新的参数向量可以具有误差的相关联均值和协方差。在一些实施例中,动作6808可以包括应用无迹变换来计算新的参数向量。无迹变换可以包括选择点集(例如,sigma点和相关联的权重),使得所选点的均值和协方差等于与新的参数向量相关联的均值和协方差。变换链可以应用于每个所选点。变换点的加权统计可能具有指示姿势变换链的传播误差的均值和协方差。553.应当理解,动作6802至6806可以采用任何合适的顺序。尽管上面描述了无迹变换作为示例,但是应该理解可以使用任何适当的变换,例如泰勒展开,和/或使用迹算子来链接由协方差矩阵捕获的误差。554.无论哪个误差源被变换,用于将那些误差源的统计数据转换成与虚拟内容的渲染和执行计算的特定位置相关的公共坐标的特定计算方法,所得的统计信息可以直接使用或转换为如上所述的度量。该度量可通过编程接口提供给在xr设备上执行的应用。555.该api可以具有任何合适的形式。例如,它可以提供表示一组条件下位置不确定性的单个量。这组条件可以由应用提供或预编程到api中。例如,该度量可以指示要在pcf的定义距离内渲染的虚拟对象的位置不确定性或最坏情况误差。或者,该度量可以指示可以用定义的不确定性渲染虚拟对象的距pcf的最大距离。作为其他实施例的示例,api可以提供用于多个自由度中的每一个中的位置不确定性的度量,或者可以提供用于平移误差的度量和用于旋转误差的单独度量。556.不管api提供的度量的具体格式如何,应用可以使用质量度量来选择性地渲染虚拟内容,如上所述。在一些实施例中,可以使用其他形式的计算机软件来代替api。557.其它考虑558.图60示出根据一些实施例的计算机系统1900的示例性形式的机器的示意图,在该机器内可以执行一组指令以使该机器执行在此讨论的方法中的任何一个或多个方法。在替代实施例中,该机器作为独立设备操作,或者可以连接(例如,联网)到其它机器。此外,虽然仅示出了单个机器,但是术语“机器”也应被理解为包括机器的任何集合,该机器单独地或共同地执行一组(或多组)指令以执行在此讨论的任何一个或多个方法。559.示例性计算机系统1900包括经由总线1908彼此通信的处理器1902(例如,中央处理单元(cpu)、图形处理单元(gpu)或二者)、主存储器1904(例如,只读存储器(rom)、闪存,诸如同步dram(sdram)或rambusdram(rdram)等的动态随机存取存储器(dram))和静态存储器1906(例如闪存、静态随机存取存储器(sram)等)。560.计算机系统1900可以进一步包括磁盘驱动器单元1916和网络接口设备1920。561.磁盘驱动器单元1916包括机器可读介质1922,在其上存储体现在此所述方法或功能中的任何一个或多个方法或功能的一组或多组指令1924(例如,软件)。在计算机系统1900执行软件期间,软件还可以全部或至少部分地驻留在主存储器1904内和/或处理器1902内,主存储器1904和处理器1902也构成机器可读介质。562.还可以经由网络接口设备1920在网络18上发送或接收软件。563.计算机系统1900包括用于驱动投影仪以生成光的驱动器芯片1950。驱动器芯片1950包括其自己的数据存储1960及其自己的处理器1962。564.虽然在示例性实施例中将机器可读介质1922示为单个介质,但是术语“机器可读介质”应理解为包括存储一组或多组指令的单个介质或多个介质(例如,集中式或分布式数据库,和/或相关联的缓存和服务器)。术语“机器可读介质”也应被认为包括能够存储、编码或携带一组指令以供机器执行并且使机器执行本发明的任何一种或多种方法的任何介质。因此,术语“机器可读介质”应被认为包括但不限于固态存储器、光学和磁性介质以及载波信号。565.至此已经描述了一些实施例的几个方面,应当理解,本领域技术人员将容易想到各种改变、修改和改进。566.作为一个示例,结合增强(ar)环境来描述实施例。应当理解,在此描述的一些或全部技术可以在mr环境中或更普遍地在其它xr环境和vr环境中应用。567.作为另一个示例,结合诸如可穿戴设备的设备来描述实施例。应当理解,可以经由网络(诸如云)、分立应用和/或设备、网络和分立应用的任何合适的组合来实现在此描述的一些或全部技术。568.此外,图29提供了可用于过滤候选地图以产生一组高排名地图的标准的示例。代替所描述的标准或除了所描述的标准之外,可以使用其它标准。例如,如果多个候选地图具有用于过滤掉不太理想的地图的度量的相似值,则候选地图的特性可以用于确定哪些地图被保留为候选地图或被过滤掉。例如,更大或更密集的候选地图可以优先于较小的候选地图。569.这种改变、修改和改进旨在是本公开的一部分,并且旨在处于本公开的精神和范围内。此外,尽管指示了本公开的优点,但是应当理解,并非本公开的每个实施例将包括每个描述的优点。在一些情况下,一些实施例可能不实现在此描述为有利的任何特征。因此,前面的描述和附图仅作为示例。570.本公开的上述实施例可以以多种方式中的任何一种方式来实现。例如,可以使用硬件、软件或其组合来实现实施例。当以软件实现时,软件代码可以在任何合适的处理器或处理器集合上执行,无论是在单个计算机中提供还是在多个计算机中分布。这种处理器可以被实现为集成电路,在集成电路部件中具有一个或多个处理器,包括本领域已知的可商购的集成电路部件,其名称诸如cpu芯片、gpu芯片、微处理器、微控制器或协处理器。在一些实施例中,可以在定制电路(诸如asic)或者在通过配置可编程逻辑器件而产生的半定制电路中实现处理器。作为另一替代方案,处理器可以是较大的电路或半导体设备的一部分,无论是可商购的,半定制的还是定制的。作为特定示例,一些可商购的微处理器具有多个核心,使得这些核心中的一个或子集可以构成处理器。但是,可以使用任何适当格式的电路来实现处理器。571.此外,应当理解,计算机可以以多种形式中的任何一种形式来体现,诸如机架式计算机、台式计算机、膝上型计算机或平板计算机。另外,计算机可以被嵌入通常不被认为是计算机但具有合适的处理能力的设备中,该设备包括个人数字助理(pda)、智能电话或任何其它合适的便携式或固定电子设备。572.此外,计算机可以具有一个或多个输入和输出设备。这些设备尤其可以用于呈现用户界面。可以用于提供用户界面的输出设备的示例包括用于视觉呈现输出的打印机或显示屏,以及用于听觉呈现输出的扬声器或其它声音生成设备。可以用于用户界面的输入设备的示例包括键盘和指向设备,诸如鼠标、触摸板和数字化平板计算机。作为另一个示例,计算机可以通过语音识别或其它可听格式接收输入信息。在所示的实施例中,输入/输出设备被示为与计算设备物理上分开。然而,在一些实施例中,输入和/或输出设备可以物理地集成到与处理器或计算设备的其它元件相同的单元中。例如,键盘可能实现为触摸屏上的软键盘。在一些实施例中,输入/输出设备可以与计算设备完全断开,并且通过无线连接在功能上集成。573.这种计算机可以通过任何适当形式的一个或多个网络互连,包括作为局域网或诸如企业网络或互联网的广域网。这种网络可以基于任何适当的技术,并且可以根据任何适当的协议进行操作,并且可以包括无线网络、有线网络或光纤网络。574.此外,在此概述的各种方法或过程可以被编码为可在采用多种操作系统或平台中的任何一种操作系统或平台的一个或多个处理器上执行的软件。另外,可以使用多种合适的编程语言和/或编程或脚本工具中的任何一种来编写此类软件,并且还可以将其编译为可执行的机器语言代码或在框架或虚拟机上执行的中间代码。575.在这方面,本公开可以体现为采用一个或多个程序编码的计算机可读存储介质(或多个计算机可读介质)(例如,计算机存储器、一个或多个软盘、压缩光盘(cd)、光盘、数字视频盘)(dvd)、磁带、闪存、现场可编程门阵列或其它半导体设备或其它有形计算机存储介质中的电路装置),该程序在一个或多个计算机或其它处理器上执行时将执行实现以上讨论的本公开的各种实施例的方法。从前述示例显而易见,计算机可读存储介质可以将信息保留足够的时间,以提供非暂态形式的计算机可执行指令。这种一个或多个计算机可读存储介质可以是可移动的,使得可以将存储在其上的一个或多个程序加载到一个或多个不同的计算机或其它处理器上,以实现如上所述的本公开的各个方面。如在此所使用的,术语“计算机可读存储介质”仅涵盖可以被认为是制品(即,制造品)或机器的计算机可读介质。在一些实施例中,本公开可以体现为除计算机可读存储介质之外的计算机可读介质,诸如传播信号。576.在一般意义上在此使用术语“程序”或“软件”来指代可用于对计算机或其它处理器进行编程以实现如上所述的本公开的各个方面的计算机代码或计算机可执行指令集。另外,应当理解,根据该实施例的一方面,当被执行时执行本公开的方法的一个或多个计算机程序不需要驻留在单个计算机或处理器上,而是可以以模块化的方式在多个不同的计算机或处理器之间分布,以实现本公开的各个方面。577.计算机可执行指令可以具有许多形式,诸如由一个或多个计算机或其它设备执行的程序模块。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、部件、数据结构等。通常,在各种实施例中,程序模块的功能可以根据需要进行组合或分布。578.此外,数据结构可以以任何合适的形式存储在计算机可读介质中。为了简化说明,可以示出数据结构具有通过数据结构中的位置而相关的字段。同样地,可以通过传达字段之间的关系的在计算机可读介质中的位置为字段分配存储来实现此类关系。然而,可以使用任何合适的机制来建立数据结构的字段中的信息之间的关系,包括通过使用指针、标签或在数据元素之间建立关系的其它机制。579.本公开的各个方面可以单独、组合或在前述实施例中未具体讨论的各种布置中使用,并且因此,在其应用中不限于在前面的描述中阐述或在附图中示出的部件的细节和布置。例如,一个实施例中描述的方面可以以任何方式与其它实施例中描述的方面组合。580.此外,本公开可以体现为一种方法,已经提供了方法的一个示例。作为该方法的一部分执行的动作可以以任何合适的方式排序。因此,可以构造实施例,其中以与所示出的顺序不同的顺序执行动作,即使在说明性实施例中被示为顺序动作,该动作也可以包括同时执行一些动作。581.在权利要求中使用诸如“第一”、“第二”、“第三”等序数术语来修改权利要求元素本身并不表示一个权利要求元素相对于执行方法动作的另一个顺序或临时顺序的任何优先级、优先权或顺序,但仅用作标记,以区分具有某些名称的一个权利要求元素与具有相同名称的另一个元素(但用于序数词)来区分权利要求元素。582.另外,在此使用的措词和术语是出于描述的目的,并且不应被视为限制。在此“包括”、“包含”或“具有”、“包含了”、“涉及”及其变体的使用旨在涵盖其后列出的项目及其等同物以及其它项目。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献