可通行世界的映射和定位
1.相关申请的交叉引用
2.本技术要求2019年11月18日提交的题为“mapping and localization of a passable world”(可通行世界的映射和定位)的第62/937056号美国专利申请和2020年1月31日提交的题为“mapping and localization of a passable world”(可通行世界的映射和定位)的第62/968751号美国专利申请的优先权。本技术涉及2015年4月18日提交的题为“systems and method for augmented and virtual reality”(用于增强和虚拟现实的系统和方法)的第14/690,401号美国专利申请。本技术还涉及2017年12月29日提交的题为“systems and methods for augmented reality”(用于增强现实的系统和方法)的第15/859,277号美国专利申请,以及2015年5月8日提交的题为“recognizing objects in a passable world model in augmented or virtual reality system”(在增强或虚拟现实系统中识别可通行世界模型中的对象)的第9,767,616号美国专利申请。本技术还涉及2019年6月21日提交的题为“waypoint creation in map detection”(地图检测中的路径点创建)的第16/448743号美国专利申请。本技术还涉及2019年12月9日提交的题为“portion of a display screen with guiding graphics”(具有引导图形的显示屏幕的一部分)的第29/716368号美国外观设计专利申请。本技术还涉及2019年12月9日提交的题为“portion of a display screen with guiding graphics”(具有引导图形的显示屏幕的一部分)的第29/716361号美国外观设计专利申请。本技术还涉及2019年12月9日提交的题为“portion of a display screen with guiding graphics”(具有引导图形的显示屏幕的一部分)的第29/716375号美国外观设计专利申请。本技术还涉及2019年12月9日提交的题为“portion of a display screen with guiding graphics”(具有引导图形的显示屏幕的一部分)的第29/716363号美国外观设计专利申请。本技术还涉及2019年12月9日提交的题为“portion of a display screen with guiding graphics”(具有引导图形的显示屏幕的一部分)的第29/716367号美国外观设计专利申请。本技术还涉及2019年12月9日提交的题为“portion of a display screen with guiding graphics”(具有引导图形的显示屏幕的一部分)的第29/716364号美国外观设计专利申请。上述专利文件的内容在此通过引用以整体明确并入本文。
技术领域
3.本公开总体上涉及系统和方法以促进一个或多个用户的交互式虚拟或增强现实环境。
背景技术:4.现代计算和显示技术促进了用于所谓“虚拟现实”、“增强现实”或“混合现实”体验的系统的开发,其中数字再现的图像或其部分以它们看起来是真实的或者可能感知为真实的方式呈现给用户。虚拟现实或“vr”场景通常涉及数字或虚拟图像信息的呈现,而对其他实际现实世界的视觉输入不透明;增强现实或“ar”场景通常涉及数字或虚拟图像信息的呈
现,作为对用户周围实际世界的可视化的增强;混合现实或“mr”,涉及合并现实世界和虚拟世界,以产生物理和虚拟对象共存并实时交互的新环境。事实证明,人类的视觉感知系统非常复杂,产生一种促进舒适、感觉自然、丰富呈现的虚拟图像元素以及其他虚拟或现实世界的图像元素的vr、ar或mr技术是一项挑战。本文公开的系统和方法解决了与vr、ar和mr技术相关的各种挑战。
技术实现要素:5.本公开的实施例涉及用于实现针对一个或多个用户的虚拟或增强现实交互的设备、系统和方法。
6.以下在详细描述、附图和权利要求中描述了本公开的特征、目的和优点的进一步细节。前述一般描述和以下详细描述都是示例性和解释性的,并不旨在限制本公开的范围。
7.在一些示例中,增强现实(ar)系统可以包括:ar显示器,被配置为向ar系统的用户呈现虚拟内容;面向外的相机,被配置为捕获用户的环境的一个或多个图像,其中用户的环境的对用户可见的一部分包括用户的视场(fov);以及与ar显示器和面向外的相机通信的硬件处理器,该硬件处理器被编程为:从包括与用户的头部相关联的位置的源点生成多个光线投射;分析多个光线投射以识别与环境的未映射位置相关联的光线投射;更新虚拟内容以包括与未映射位置相关联的图形;收集与用户的环境相关联的数据;以及响应于收集到与未映射位置相关联的充足数据,向用户发出数据已被成功收集的信号。
8.在一些示例中,增强现实(ar)系统可以包括:ar显示器,被配置为向ar系统的用户呈现虚拟内容;面向外的相机,被配置为捕获用户的环境的一个或多个图像,其中用户的环境的对用户可见的一部分包括用户的视场(fov);以及与ar显示器和面向外的相机通信的硬件处理器,该硬件处理器被编程为:接收用户对地图的选择;从包括与用户的头部相关联的位置的原点生成多个光线投射;分析多个光线投射以识别与环境的未映射位置相关联的光线投射;更新虚拟内容以包括与未映射位置相关联的图形;引导用户以观察图形;收集与用户的环境相关联的数据;响应于收集到与未映射位置相关联的充足数据,向用户发出数据已被成功收集的信号;以及响应于确定所收集的数据中的至少一个标记(marker)对应于地图中的至少一个标记,显示与地图相关联的虚拟现实内容;或者响应于确定所收集的数据中没有标记对应于地图中的标记,针对另一个未映射的位置重复所述更新、引导、收集和发信号。
9.在一些示例中,一种创建或更新用户环境的增强现实地图的方法,该方法由具有一个或多个硬件计算机处理器和存储软件指令的一个或多个非瞬态计算机可读存储设备的计算机系统执行,其中软件指令能够由该计算系统执行以执行包括如下操作的计算机化方法:从用户周围的多个方向中的每一个方向获得距离数据,该距离数据指示在相应的方向上检测到物理对象的距离;创建与具有距离超过阈值距离的距离数据相关联的路径点的排名列表,其中与最大距离相关联的路径点在排名列表中是第一;显示关于最高排名的路径点所定位的图形,用于在由用户佩戴的增强现实(ar)设备上观看,该图形被配置为将用户引导到用户环境中的其中增强现实地图不完整的区域;检测用户移动,该用户移动允许由ar设备收集与路径点相关联的数据;确定排名列表中其他路径点是否保留;响应于确定其他路径点保留在排名列表中,利用下一个最高排名的路径点执行所述显示、检测和确定。
10.在一些示例中,增强现实(ar)系统可以包括:ar显示器,被配置为向ar系统的用户呈现虚拟内容;面向外的相机,被配置为捕获用户的三维(3d)环境的一个或多个图像;以及与ar显示器和面向外的相机通信的硬件处理器,该硬件处理器可以被编程为:接收访问共享地图的邀请;促进用户访问共享地图;引导用户观察用户的3d环境;收集与用户的3d环境相关联的数据;如果在用户的3d环境中找到与共享地图相关联的数据,则加载与共享地图相关联的内容。
11.在一些示例中,增强现实(ar)系统可以包括:ar显示器,被配置为向ar系统的用户呈现虚拟内容;面向外的相机,被配置为捕获用户的三维(3d)环境的一个或多个图像;以及与ar显示器和面向外的相机通信的硬件处理器,该硬件处理器可以被编程为:接收用户输入以更新地图;引导用户观察用户的3d环境;收集与用户的3d环境相关联的数据;确定与地图相关联的地图质量指数;在ar显示器上显示地图质量指数的指示;基于所收集的数据来更新地图;以及响应于识别包括停止的用户输入或确定地图质量指数超过阈值的停止条件而停止引导用户。
附图说明
12.在整个附图中,附图标记被重新用于指示所标记的元件之间的对应关系。提供以下附图和相关描述以说明本公开的实施例并且不限制权利要求的范围。
13.附图说明了本公开的各种实施例的设计和实用性。应当注意,附图不是按比例绘制的,并且相似结构或功能的元件在所有附图中由相似的附图标记表示。为了更好地理解如何获得本公开的各个实施例的上述和其他优点和目的,将参考本公开的具体实施例对以上简要描述的本公开进行更详细的描述,这些具体实施例在附图中说明。理解这些附图仅描绘了本公开的典型实施例并且因此不应被视为对其范围的限制,将通过使用附图以附加的具体性和细节来描述和解释本公开,其中:
14.图1描绘了具有某些虚拟现实对象和人所观看的某些物理对象的混合现实场景的图示。
15.图2示意性地示出了可以实施示例路径点系统的可穿戴系统的示例。
16.图3示意性地示出了用于使用多个深度平面来模拟三维图像的方法的各个方面。
17.图4示意性地示出了用于向用户输出图像信息的波导堆叠的示例。
18.图5示出了可以由波导输出的示例出射光束。
19.图6是示出光学系统的示意图,该光学系统包括波导装置、用于将光光学耦合到波导装置或从波导装置光学耦合光的光耦合器子系统、和控制子系统,用于生成多焦点体积显示、图像或光场。
20.图7是可穿戴系统的示例的框图。
21.图8是渲染与识别的对象相关的虚拟内容的方法的示例的过程流程图。
22.图9是包括示例路径点系统的可穿戴系统的另一个示例的框图。
23.图10是用于确定对可穿戴系统的用户输入的方法的示例的过程流程图。
24.图11是用于与虚拟用户界面交互的方法的示例的过程流程图。
25.图12示意性地示出了描绘相互交互的多个用户设备的整体系统视图。
26.图13a是根据一些实施例的示出了当用户穿着ar显示系统时,该ar显示系统在用
户移动穿过物理世界环境时渲染ar内容的示意图.
27.图13b是示出根据一些实施例的观看光学组件和伴随部件的示意图。
28.图13c是示出根据一些实施例的使用世界重建系统的ar系统的示意图。
29.图13d是示出根据一些实施例的维持可通行世界的模型的ar系统的部件的示意图。
30.图14是示出根据一些实施例的持久坐标框架(pcf)的创建以及xr内容到pcf的附接的框图。
31.图15是示出根据一些实施例的建立和使用pcf的方法的流程图。
32.图16是根据一些实施例的包括第二xr设备的图8的xr系统的框图。
33.图17是示出根据一些实施例的房间和为房间中的各个区域建立的关键帧的示意图。
34.图18是示出根据一些实施例的基于关键帧的持久姿势的建立的示意图。
35.图19是示出根据一些实施例的基于持久姿势的持续坐标框架(pcf)的建立的示意图。
36.图20a至图20c是示出根据一些实施例的创建pcf的示例的示意图;
37.图21示出了地图创建过程的示例框图。
38.图22a示出了用于新用户的示例地图创建流程。
39.图22b示出了用于现有用户的示例地图创建流程。
40.图23a示出了示例重定位过程的示例流程图。
41.图23b示出了示例重定位流程。
42.图24a示出了示例地图准许和/或存储流程。
43.图24b-1、图24b-2和图24b-3示出了地图准许和/或存储配置的各种示例。
44.图25a至图25h示出了与本地地图的示例用户交互,包括本地重定位和地图创建。
45.图26a示出了示例环境同步流程。
46.图26b和图26c示出了定位到共享地图的示例过程。
47.图27示出了示例地图管护(curation)流程。
48.图28示出了可以由ar系统实现的示例扫描过程。
49.图29示出了示例路径点派生(spawning)过程。
50.图30示出了示例路径点引导过程的示例流程图。
51.图31a和图31b示出了示例指示器环(indicator ring)。
52.图32示出了示例路径点激活过程。
53.图33示出了示例路径点动画过程。
54.图34a至图34c示出了示例路径点动画过程的示例阶段。
具体实施方式
55.a.引言
56.虚拟和增强现实环境由计算机部分地使用描述环境的数据来生成。例如,该数据可以描述用户可以感知并与之交互的各种对象。这些对象的示例包括渲染和显示以供用户观看的对象、播放供用户收听的音频、以及供用户感受的触觉(或触觉)反馈。用户可以通过
各种视觉、听觉和触觉方式感测虚拟和增强现实环境并与之交互。
57.虚拟或增强现实(ar)系统可用于许多应用,涵盖科学可视化、医学和军事训练、工程设计和原型设计、远程操作和远程呈现以及个人娱乐等领域。与虚拟现实相比,增强现实包括与物理世界的真实对象相关的一个或多个虚拟对象。这样的体验极大地增强了用户对增强现实系统的体验和享受,也为允许用户同时体验真实对象和虚拟对象的各种应用打开了大门。
58.然而,在提供这样的系统方面存在重大挑战。为了向用户提供逼真的增强现实体验,ar系统应始终了解用户的物理环境,以便正确关联虚拟对象相对于真实对象的位置。此外,ar系统应该正确地知道如何相对于用户的头部、身体等来定位虚拟对象。这需要始终广泛了解用户相对于世界的位置。此外,这些功能有利地应该以保持成本(例如,能源成本等)低同时保持速度和性能的方式执行。
59.因此,需要改进的系统以向用户提供逼真的增强现实体验。
60.b.可穿戴系统的3d显示的示例
61.可穿戴系统(在此也称为增强现实(ar)系统)可以被配置为向用户呈现2d或3d虚拟图像。图像可以是静止图像、视频的帧或视频的组合等。可穿戴系统的至少一部分可以在可穿戴设备上实现,该可穿戴设备可以针对用于交互单独或组合地呈现vr、ar或mr环境。可穿戴设备可以是头戴式设备(hmd),其作为ar设备(ard)被互换地使用。此外,出于本公开的目的,术语“ar”与术语“mr”可被互换地使用。
62.图1描绘了具有某些虚拟现实对象以及由人观看的某些物理对象的混合现实场景的图示。在图1中,描绘了mr场景100,其中mr技术的用户看到了真实世界的公园状设置110,其以人、树、背景中的建筑物以及混凝土平台112为特征。除了这些项目之外,mr技术的用户还可以感知到他“看到”了站在真实世界平台112上的机器人雕像114,以及似乎是大黄蜂的拟人化的飞行着的卡通般化身角色140,尽管这些元素在真实世界中不存在。
63.为了使3d显示器产生真实的深度感,且更具体地,产生表面深度的模拟感,可能希望显示器视野中的每个点都生成与其虚拟深度相对应的调节响应。如果对显示点的调节响应不符合该点的虚拟深度(如由会聚和立体视觉的双目深度提示确定),则人眼可能会遇到调节冲突,从而导致成像不稳定,有害的眼睛疲劳,头痛,以及在缺乏调节信息的情况下的几乎完全的表面深度缺失。
64.vr、ar和mr体验可以通过具有显示器的显示系统来提供,在该显示器中,与多个深度平面相对应的图像被提供给观看者。对于每个深度平面,图像可能不同(例如,提供场景或对象的稍微不同的呈现),并且可能由观看者的眼睛分别聚焦,从而基于使位于不同深度平面上的场景的不同图像特征聚焦所需的眼睛调节,或基于观察在不同深度平面上失焦的不同图像特征,为用户提供深度提示。如在此其它地方所讨论的,这种深度提示提供了可靠的深度感知。
65.图2示出可穿戴系统200的示例,其可被配置为提供ar/vr/mr场景并且可以包括这里描述的示例路径点系统。可穿戴系统200还可称为ar系统200。可穿戴系统200包括显示器220以及支持显示器220的功能的各种机械和电子模块和系统。显示器220可以耦合至框架230,该框架230可以由用户、佩戴者或观看者210佩戴。显示器220可以放置于用户210的眼睛前面。显示器220可以向用户呈现ar/vr/mr内容。显示器220可以包括戴在用户的头上的
头戴式显示器。在一些实施例中,扬声器240被耦合至框架230并且邻近用户的耳道放置(在一些实施例中,未示出的另一个扬声器邻近用户的另一耳道放置以提供立体声/可塑的声音控制)。显示器220可包括用于检测来自环境的音频流并捕获环境声音的音频传感器(例如,麦克风)232。未示出的一个或多个其它音频传感器可以以提供立体声接收而被放置。立体声接收可以用来确定声源的位置。可穿戴系统200可以对音频流执行声音或语音识别。
66.可穿戴系统200可以包括面向外成像系统464(图4中所示),该面向外成像系统464观察用户周围环境中的世界。可穿戴系统200还可以包括可以跟踪用户的眼睛运动的面向内成像系统462(图4中所示)。面向内成像系统可以跟踪一只眼睛的运动或两只眼睛的运动。面向内成像系统462可以附接至框架230,并且可以与处理模块260或270电通信,该处理模块260或270可以处理由面向内成像系统获取的图像信息以确定用户210的例如眼睛的瞳孔直径或取向的眼睛运动或眼睛姿势。
67.作为示例,可穿戴系统200可使用面向外成像系统464或面向内成像系统462来获取用户的姿势的图像。图像可以是静止图像、视频的帧,或视频。
68.显示器220可以诸如通过有线引线或无线连接可操作地耦合250到本地数据处理模块260,该本地数据处理模块260可以以各种配置安装,诸如固定地附接至框架230,固定地附接至由用户佩戴的头盔或帽子,嵌入耳机中或以其它方式可移除地附接至用户210(例如,以背包式配置、皮带耦合式配置)。
69.本地处理和数据模块260可以包括硬件处理器以及数字存储器,诸如非易失性存储器(例如,闪存),二者都可以用于辅助数据的处理、缓存和存储。数据可以包括如下数据:a)从传感器(其可以例如可操作地耦合至框架230或以其它方式附接至用户210)捕获,诸如图像捕获设备(例如,面向内成像系统或面向外成像系统中的相机)、音频传感器(例如,麦克风)、惯性测量单元(imu)、加速度计、罗盘、全球定位系统(gps)单元、无线电设备或陀螺仪;或b)使用远程处理模块270或远程数据存储库280获取或处理,可能在这种处理或取得之后传递给显示器220。本地处理和数据模块260可以通过通信链路262或264(诸如经由有线或无线通信链路)可操作地耦合至远程处理模块270或远程数据存储库280,使得这些远程模块可用作本地处理和数据模块260的资源。此外,远程处理模块270和远程数据存储库280可以可操作地彼此耦合。
70.远程处理模块270可以包括被配置为分析和处理数据或图像信息的一个或多个处理器。远程数据存储库280可以包括数字数据存储设施,其可以通过互联网或以“云”资源配置的其它联网配置来使用。数据可以被存储并且计算可以在本地处理和数据模块中执行,从而允许来自远程模块的完全自主的使用。
71.人的视觉系统是复杂的,并且提供对深度的真实感是具有挑战性的。不受理论的限制,据信由于聚散和调节的组合,对象的观看者可以将对象感知为三维的。两只眼睛相对于彼此的聚散运动(例如,用于会聚眼睛的视线以固定在对象上的瞳孔朝向或远离彼此的转动运动)与眼睛晶状体的聚焦(或“调节”)密切相关。在正常情况下,改变眼睛晶状体的焦点或调节眼睛,以在被称为“调节-聚散反射”的关系下将焦点从一个对象改变为在另一距离处的另一对象来自动将聚散变化匹配到相同距离。同样,在正常情况下,聚散的变化将触发调节的匹配变化。在调节和聚散之间提供更好匹配的显示系统可以形成更逼真的和更舒适的三维图像模拟。
72.图3示出了用于使用多个深度平面来模拟三维图像的方法的各种方面。参考图3,眼睛302和304适应在z轴上距眼睛302和304不同距离处的对象,以使得那些对象在焦点上。眼睛302和304呈现特定的适应状态以使沿z轴不同距离处的对象集中在焦点上。因此,可以说特定的适应状态与深度平面306中的特定一个深度平面相关联,该深度平面具有相关联的焦距,以使得当眼睛处于针对该深度平面的适应状态时,特定深度平面中的对象或对象的一部分位于焦点中。可以通过为每只眼睛302和304提供不同的图像呈现,并且还通过提供与每个深度平面对应的图像的不同呈现来模拟三维图像。虽然为了说明的清楚而显示为分开的,但是应当理解,眼睛302和304的视场可以重叠,例如,随着沿z轴的距离增加。此外,虽然为了便于说明而显示为平坦的,但应当理解,深度平面的轮廓可以在物理空间中弯曲,使得深度平面中的所有特征与在特定的适应状态下的眼睛聚焦。不受理论限制,相信人眼通常可以解释有限数量的深度平面以提供深度感知。因此,可以通过向眼睛提供与这些有限数量的深度平面中的每一个对应的图像的不同呈现来实现对感知深度的高度可信模拟。
73.c.波导堆叠组件
74.图4示出用于向用户输出图像信息的波导堆叠的示例。可穿戴系统400包括波导的堆叠,或堆叠的波导组件480,其可以用于使用多个波导432b、434b、436b、438b、4400b向眼睛/大脑提供三维感知。可穿戴系统400可以对应于图2的可穿戴系统200,图4示意性地更详细地示出该可穿戴系统200的一些部分。例如,波导组件480可以被集成到图2的显示器220中。
75.继续参考图4,波导组件480还可在波导之间包括多个特征458、456、454、452。特征458、456、454、452可以是透镜。特征458、456、454、452可以不是透镜。而是,它们可以仅仅是间隔物(例如,覆盖层或用于形成气隙的结构)。
76.波导432b、434b、436b、438b、440b或多个透镜458、456、454、452可以被配置为以各种水平的波前曲率或光线发散将图像信息发送到眼睛。每个波导级可以与特定的深度平面相关联,并且可以被配置为输出与该深度平面相对应的图像信息。图像注入设备420、422、424、426、428可以被用来将图像信息注入波导440b、438b、436b、434b、432b,波导中的每个波导可以被配置为将入射光横跨每个相应的波导分布,用于朝向眼睛410输出。光离开图像注入设备420、422、424、426、428的输出表面,并且被注入到波导440b、438b、436b、434b、432b的对应输入边缘中。单个光束(例如,准直光束)可以被注入到每个波导中,以输出克隆准直光束的整个场,该样本出射光瞳束以对应于与特定波导相关联的深度平面的特定角度(和发散量)导向眼睛410。
77.图像注入设备420、422、424、426、428可以是分立的显示器,其各自产生图像信息以分别注入到对应的波导440b、438b、436b、434b、432b中。另外或替代地,图像注入设备420、422、424、426、428可以是单个多路复用显示器的输出端,该显示器可以例如经由一个或多个光导管(诸如光缆)将图像信息传送到图像注入设备420、422、424、426、428中的每一个。
78.控制器460控制堆叠的波导组件480和图像注入设备420、422、424、426、428的操作。控制器460可以包括调节定时和向波导440b、438b、436b、434b、432b提供图像信息的编程(例如,非暂态计算机可读介质中的指令)。控制器460可以是单个集成设备,或者是通过有线或无线通信信道连接的分布式系统。在一些实施例中,控制器460可以是处理模块260
或270(在图2中示出)的一部分。
79.波导440b、438b、436b、434b、432b可以被配置为通过全内反射(tir)在每个相应波导内传播光。波导440b、438b、436b、434b、432b可各自是平面的或具有另一种形状(例如,弯曲的),具有主要的顶部表面和底部表面以及在那些主要的顶部表面和底部表面之间延伸的边缘。在所示的配置中,波导440b、438b、436b、434b、432b可各自包括光提取光学元件440a、438a、436a、434a、432a,其被配置为通过将在每个相应波导内传播的光重定向而从波导中提取出光,以将图像信息输出到眼睛410。所提取的光也可以称为出耦合光,并且光提取光学元件也可以称为出耦合光学元件。在波导中传播的光撞击光重定向元件的位置处,可以由波导输出所提取的光束。光提取光学元件(440a、438a、436a、434a、432a)可以例如是反射或衍射光学特征。尽管为了便于描述和清楚起见而示出设置在波导440b、438b、436b、434b、432b的底部主表面上,但是光提取光学元件440a、438a、436a、434a、432a可以设置在顶部主表面或底部主表面,或者可以直接设置在波导440b、438b、436b、434b、432b的体积中。光提取光学元件440a、438a、436a、434a、432a可以形成为材料层,该材料层附接至透明基板上以形成波导440b、438b、436b、434b、432b。波导440b、438b、436b、434b、432b可以是单片材料,并且光提取光学元件440a、438a、436a、434a、432a可以形成在该片材料的表面上或内部中。
80.继续参考图4,如在此讨论的,每个波导440b、438b、436b、434b、432b可以被配置为输出光以形成与特定深度平面相对应的图像。例如,最靠近眼睛的波导432b可以被配置为将注入到这种波导432b中的准直光传送到眼睛410。准直光可以代表光学无限远焦平面。下一个波导向上434b可以被配置为在通过第一透镜452(例如,负透镜)的准直光到达眼睛410之前发出该准直光。第一透镜452可以被配置为产生轻微的凸波前曲率,使得眼睛/大脑将来自下一个波导向上434b的光解释为来自光学无限远朝内更加靠近眼睛410的第一焦平面。类似地,第三向上波导436b在到达眼睛410之前将其输出光通过第一透镜452和第二透镜454二者。第一透镜452和第二透镜454的组合光焦度可以配置为产生另一增量的波前曲率,使得眼睛/大脑将来自第三波导436b的光解释为来自第二焦平面,该第二焦平面比来自下一个波导向上434b的光从光学无限远朝内更加靠近人。
81.其它波导层(例如,波导438b、440b)和透镜(例如,透镜456、458)被类似地配置,堆叠中的最高波导440b通过其与眼睛之间的所有透镜发送其输出,以用于代表相对于人的最接近焦平面的聚合光焦度。为了在观看/解释来自堆叠波导组件480另一侧上的世界470的光时补偿透镜458、456、454、452的堆叠,可以在堆叠的顶部处设置补偿透镜层430,以补偿下面的透镜堆叠458、456、454、452的总焦度。此类配置提供与可用的波导/透镜对一样多的感知焦平面。波导的光提取光学元件和透镜的聚焦方面二者都可以是静态的(例如,不是动态的或电激励的)。另外或替代地,其一者或二者可以动态使用电激活特征。
82.继续参考图4,光提取光学元件440a、438a、436a、434a、432a可被配置为既将光重定向到其相应的波导之外,又针对与波导相关联的特定深度平面以适当的发散或准直量输出该光。结果,具有不同相关联的深度平面的波导可以具有光提取光学元件的不同配置,该光提取光学元件取决于相关联的深度平面输出具有不同发散量的光。如在此所讨论的,光提取光学元件440a、438a、436a、434a、432a可以是体积或表面特征,该体积或表面特征可以被配置为以特定角度输出光。例如,光提取光学元件440a、438a、436a、434a、432a可以是体
积全息图、表面全息图、或衍射光栅。在2015年6月25日公开的美国专利公开号2015/0178939中描述了诸如衍射光栅的光提取光学元件,其通过引用整体并入在此。
83.在一些实施例中,光提取光学元件440a、438a、436a、434a、432a是形成衍射图案的衍射特征,或“衍射光学元件”(在此也称为“doe”)。优选地,doe具有相对较低的衍射效率,使得光束的光的仅一部分在doe的每个相交处朝向眼睛410偏转离开,而其余的光经由全内反射继续移动通过波导。承载图像信息的光因此可被分成多个相关的出射束,该出射束在多个位置处离开波导,并且结果是针对在波导内到处弹跳的该特定的准直光束而朝向眼睛304的相当均匀的出射发射的图案。
84.一个或多个doe可以在它们主动衍射的“开”状态与它们不明显衍射的“关”状态之间切换。例如,可切换的doe可以包含聚合物分散液晶层,其中微滴在主体介质中包含衍射图案,并且微滴的折射率可以切换为与主体材料的折射率基本上匹配(在这种情况下,该图案不会明显衍射入射光),或者微滴可以切换到与主体介质的折射率不匹配的折射率(在这种情况下,该图案主动衍射入射光)。
85.可以基于观看者的眼睛的瞳孔大小或取向来动态地改变深度平面或景深的数量和分布。景深可能与观看者的瞳孔大小成反比。结果,随着观看者眼睛的瞳孔的大小减小,景深增加,使得因为该平面的位置超出了眼睛的焦点深度而无法辨别的一个平面可能会变得可辨别,并且随着瞳孔大小的减小和景深的相应增加而显得越来越集中。同样地,可以随着瞳孔大小的减小而减少用于向观看者呈现不同图像的间隔开的深度平面的数量。例如,观看者可能在不将眼睛的调节从一个深度平面调节到另一个深度平面的情况下无法在一个瞳孔大小下清楚地感知第一深度平面和第二深度平面二者的细节。然而,这两个深度平面可以同时在不改变调节的情况下以另一个瞳孔大小对用户充分聚焦。
86.显示系统可以基于对瞳孔大小或取向的确定,或者基于接收指示特定瞳孔大小或取向的电信号,来改变接收图像信息的波导的数量。例如,如果用户的眼睛无法区分与两个波导相关联的两个深度平面,则控制器460(其可以是本地处理和数据模块260的实施例)可以被配置或编程以停止向这些波导中的一个波导提供图像信息。有利地,这可以减少系统上的处理负担,从而增加系统的响应性。在波导的doe可在开和关状态之间切换的实施例中,当波导确实接收到图像信息时,doe可被切换到关状态。
87.可能希望使出射束满足直径小于观看者的眼睛直径的条件。然而,鉴于观看者瞳孔大小的可变性,满足该条件可能是一个挑战。通过响应于观看者的瞳孔大小的确定而改变出射束的大小,可以在宽范围的瞳孔大小上满足该条件。例如,随着瞳孔大小减小,出射束的大小也可以减小。可以使用可变孔径来改变出射束的大小。
88.可穿戴系统400可以包括对世界470的一部分进行成像的面向外成像系统464(例如,数码相机)。世界470的该部分可以被称为世界相机的视场(fov),并且成像系统464有时被称为fov相机。世界相机的fov可以与观看者210的fov相同或可以不相同,该观看者210的fov涵盖观看者210在给定时间感知的世界470的一部分。例如,在一些情况下,世界相机的fov可以大于可穿戴系统400的观看者210的观看者210。观看者可用于观看或成像的整个区域可以被称为关注场(for)。for可以包括围绕可穿戴系统400的立体角为4π的弧度,因为佩戴者可以移动他的身体、头部或眼睛以感知空间中的基本上任何方向。在其它上下文中,佩戴者的动作可能会更受限制,并且因此佩戴者的for可能会产生更小的立体角。从面向外成
像系统464获得的图像可以用于跟踪用户做出的手势(例如,手或手指的手势),检测用户前面的世界470中的对象等。
89.可穿戴系统400可以包括音频传感器232,例如麦克风,以捕获环境声音。如上所述,可以放置一个或多个其它音频传感器以提供用于确定语音源的位置的立体声接收。作为另一示例,音频传感器232可以包括定向麦克风,该定向麦克风还可以提供关于音频源位于何处的这样的有用的定向信息。可穿戴系统400可以在定位语音源时使用来自面向外成像系统464和音频传感器232二者的信息,或者在特定时刻确定活动说话者等。例如,可穿戴系统400可以单独或者与说话者的反射图像(例如,如在镜子中看到)结合使用语音识别以确定说话者的身份。作为另一示例,可穿戴系统400可以基于从定向麦克风获取的声音来确定说话者在环境中的位置。可穿戴系统400可以采用语音识别算法来解析来自说话者位置的声音,以确定语音的内容,并使用语音识别技术来确定说话者的身份(例如,姓名或其他人口统计信息)。
90.可穿戴系统400还可以包括面向内成像系统462(例如,数码相机),其观察用户的运动,诸如眼睛运动和面部运动。面向内成像系统462可以用于捕获眼睛410的图像以确定眼睛304的瞳孔的大小或取向。面向内成像系统462可以用于获得图像以用于确定用户正在看的方向(例如,眼睛姿势)或用户的生物度量识别(例如,经由虹膜识别)。可以为每只眼睛使用至少一个相机,以独立地确定每只眼睛单独的瞳孔大小或眼睛姿势,从而允许向每只眼睛呈现图像信息以针对该只眼睛被动态地调整。仅单只眼睛410的瞳孔直径或取向可以被确定(例如,每双眼仅使用单个相机),并且假定对于用户的两只眼睛是相似的。可以分析由面向内成像系统462获得的图像以确定用户的眼睛姿势或心情,可穿戴系统400可以使用该眼睛姿势或心情来确定应该向用户呈现哪些音频或视觉内容。另外或替代地,可穿戴系统400可以使用诸如imu、加速度计、陀螺仪等的传感器来确定头部姿势(例如,头部位置或头部取向)。
91.可穿戴系统400可以包括用户输入设备466,用户可以通过该用户输入设备466向控制器460输入命令以与可穿戴系统400交互。例如,用户输入设备466可以包括触控板、触摸屏、游戏杆、多自由度(dof)控制器、电容感测设备、游戏控制器、键盘、鼠标、方向垫(d-pad)、棒、触觉设备、图腾(例如,充当虚拟用户输入设备)等。多dof控制器可以以控制器的一些或所有可能的平移(例如,向左/向右、向前/向后或向上/向下)或旋转(例如,偏航、俯仰或滚动)来感测用户输入。支持平移运动的多dof控制器可以称为3dof,而支持平移和旋转的多自由度控制器可以称为6dof。用户可以使用手指(例如,拇指)在触敏输入设备上按下或滑动以向可穿戴系统400提供输入(例如,向由可穿戴系统400提供的用户界面提供用户输入)。用户输入设备466可以在可穿戴系统400的使用期间被用户的手握住。用户输入设备466可以与可穿戴系统400进行有线或无线通信。
92.图5示出了由波导输出的出射光束的示例。图示了一个波导,但应当理解,波导组件480中的其他波导可以类似地起作用,其中波导组件480包括多个波导。光520可以在波导432b的输入边缘432c处被注入到波导432b中并且通过tir在波导432b内传播。在光520入射到doe 432a上的点处,一部分光作为出射光束510离开波导。出射光束510被示为基本平行,但它们也可以被重定向以以一定角度传播到眼睛410(例如,形成发散的出射光束),这取决于与波导432b相关联的深度平面。应当理解,基本上平行的出射光束可以指示具有光提取
光学元件的波导,这些光提取光学元件将光向外耦合以形成看起来被设置在距眼睛410大距离(例如,光学无穷远)的深度平面上的图像。其他波导或其他组光提取光学元件可以输出更发散的出射光束图案,这将需要眼睛410适应更近的距离以使其聚焦在视网膜上并且将被大脑解释为光来自比光学无穷远更靠近眼睛410的距离。
93.图6是示出光学系统的示意图,该光学系统包括波导装置、用于将光光学耦合到波导装置或从波导装置光学耦合光的光耦合器子系统、以及控制子系统,用于生成多焦点体积显示器、图像或光场。光学系统可以包括波导装置、将光光学耦合到波导装置或从波导装置光学耦合光的光耦合器子系统、以及控制子系统。光学系统可用于生成多焦点体积、图像或光场。光学系统可以包括一个或多个初级平面波导632a(图6中仅示出一个)和与至少一些初级波导632a中的每一个相关联的一个或多个doe 632b。平面波导632b可以类似于参考图4讨论的波导432b、434b、436b、438b、440b。光学系统可以采用分布波导装置来沿第一轴(在图6的视图中垂直或y轴)中继光并沿第一轴(例如,y轴)扩展光的有效出射光瞳。例如,分布波导装置可以包括分布平面波导622b和与分布平面波导622b相关联的至少一个doe 622a(由双点划线示出)。分布平面波导622b可以在至少一些方面与初级平面波导632b相似或相同,具有与其不同的取向。同样,至少一个doe 622a可以在至少某些方面与doe 632a相似或相同。例如,分布平面波导622b或doe 622a可以分别由与初级平面波导632b或doe 632a相同的材料构成。图6所示的光学显示系统600的实施例可以集成到图2所示的可穿戴系统200中。
94.经中继的和出射光瞳扩展的光可以从分布波导装置被光学耦合到一个或多个初级平面波导632b中。初级平面波导632b可以沿第二轴中继光,优选地与第一轴正交(例如,图6视图中的水平或x轴)。值得注意的是,第二轴可以是与第一轴非正交的轴。初级平面波导632b沿该第二轴(例如,x轴)扩展光的有效出射光瞳。例如,分布平面波导622b可以沿垂直或y轴中继和扩展光,并将该光传递到可以沿水平或x轴中继和扩展光的初级平面波导632b。
95.光学系统可以包括一个或多个彩色光源(例如,红色、绿色和蓝色激光)610,其可以光学耦合到单模光纤640的近端。光纤640的远端可以通过压电材料的中空管642进行螺纹或被接收。远端从管642突出作为无固定的柔性悬臂644。压电管642可以与四个象限电极(未示出)相关联。电极可例如镀在管642的外侧、外表面或外周或直径上。芯电极(未示出)也可位于管642的芯、中心、内周或内径中。
96.驱动电子器件650,例如经由导线660电耦合,驱动相对的电极对以在两个轴上独立地弯曲压电管642。光纤644的突出远侧尖端具有共振的机械模式。共振频率可以取决于光纤644的直径、长度和材料特性。通过在光纤悬臂644的第一机械共振模式附近振动压电管642,可以使光纤悬臂644振动,并且可以扫过大的偏转。
97.通过在两个轴上激发共振振动,光纤悬臂644的尖端在填充二维(2d)扫描的区域中被双轴扫描。通过调制光源610的强度与光纤悬臂644的扫描同步,从光纤悬臂644射出的光可以形成图像。这种设置的描述在第2014/0003762号美国专利公开中提供,该专利通过引用整体并入本文。
98.光耦合器子系统的部件可以准直从扫描光纤悬臂644发出的光。准直光可以被镜表面648反射到包含至少一个衍射光学元件(doe)622a的窄分布平面波导622b中。准直光可
以通过tir沿着分布平面波导622b垂直传播(相对于图6的视图),并且在这样做时反复地与doe 622a相交。doe 622a优选地具有低衍射效率。这会导致一部分(例如,10%)的光在与doe 622a的每个相交点处朝向较大的初级平面波导632b的边缘衍射,并且一部分光沿其原始轨迹经由tir向下继续沿着分布平面波导622b的长度。
99.在与doe 622a的每个相交点处,其他光可以朝向初级波导632b的入口衍射。通过将入射光分成多个出耦合组(outcoupled set),光的出射光瞳可以由分布平面波导622b中的doe 622a垂直扩展。耦合出分布平面波导622b的这种垂直扩展光可以进入初级平面波导632b的边缘。
100.进入初级波导632b的光可以经由tir沿着初级波导632b水平地传播(相对于图6的视图)。当光通过tir沿着初级波导632b的长度的至少一部分水平传播时,光在多个点处与doe 632a相交。doe 632a可以有利地被设计或配置为具有作为线性衍射图案和径向对称衍射图案的总和的相位分布,以产生光的偏转和聚焦。doe 632a可以有利地具有低衍射效率(例如,10%),使得只有一部分光束的光在doe 632a的每个相交处被偏转朝向观看者的眼睛,而其余的光继续经由tir传播通过初级波导632b。
101.在传播光与doe 632a之间的每个相交点处,一部分光朝向初级波导632b的相邻面衍射,从而允许光逃离tir并从初级波导632b的面射出。doe 632a的径向对称衍射图案还可以为衍射光赋予聚焦水平,既可以成形单个光束的光波前(例如,赋予曲率),也可以将光束以与所设计的聚焦水平相匹配的角度进行转向。
102.因此,这些不同的路径可以通过多个doe 632a以不同的角度、聚焦水平、或在出射光瞳处产生不同的填充图案而使光耦合出初级平面波导632b。出射光瞳处的不同填充图案可以有益地用于创建具有多个深度平面的光场显示。可以采用波导组件中的每一层或堆叠中的一组层(例如,3层)来产生相应的颜色(例如,红色、蓝色、绿色)。因此,例如,可以采用第一组三个相邻层来分别在第一焦深处产生红光、蓝光和绿光。可以采用第二组三个相邻层来分别在第二焦深处产生红光、蓝光和绿光。可以采用多组来生成具有各种焦深的全3d或4d彩色图像光场。
103.d.可穿戴系统的其它组件
104.在许多实现方式中,除了上述可穿戴系统的组件之外或作为其替代,可穿戴系统可包括其它组件。可穿戴系统可以例如包括一个或多个触觉设备或组件。触觉设备或触觉组件可以可操作以向用户提供触感。例如,当触摸虚拟内容(例如,虚拟物体、虚拟工具、其它虚拟构造)时,触觉设备或组件可以提供压力或纹理的触感。触感可以复制虚拟对象所代表的物理对象的感觉,或者可以复制虚拟内容所代表的想象的对象或角色(例如,龙)的感觉。在一些实现方式中,触觉设备或组件可以由用户佩戴(例如,用户可佩戴的手套)。在一些实现方式中,触觉设备或组件可以由用户握持。
105.可穿戴系统可以例如包括可由用户操纵以允许输入可穿戴系统或与可穿戴系统交互的一个或多个物理对象。这些物理对象在此可以称为图腾。一些图腾可能采取无生命物体的形式,诸如例如一块金属或塑料、墙壁、桌子表面。在一些实现方式中,图腾实际上可能没有任何物理输入结构(例如,键、触发器、操纵杆、轨迹球、摇杆开关)。取而代之的是,图腾可以简单地提供物理表面,并且可穿戴系统可以渲染用户界面,以使用户看起来在图腾的一个或多个表面上。例如,可穿戴系统可以将计算机键盘和触控板的图像渲染为看起来
驻留在图腾的一个或多个表面上。例如,可穿戴系统可以将虚拟计算机键盘和虚拟触控板渲染为出现在用作图腾的铝制矩形薄板的表面上。矩形板本身没有任何物理键、触控板或传感器。然而,可穿戴系统可以将用户采用矩形板操纵或交互或触摸检测为经由虚拟键盘或虚拟触控板进行的选择或输入。用户输入设备466(图4中所示)可以是图腾的实施例,其可以包括触控板、触摸板、触发器、操纵杆、跟踪球、摇杆或虚拟开关、鼠标、键盘、多自由度控制器或另一物理输入设备。用户可以单独或与姿势结合使用图腾与可穿戴系统或其他用户进行交互。
106.可与本公开的可穿戴设备、hmd和显示系统一起使用的触觉设备和图腾的示例在美国专利公开no.2015/0016777中进行了描述,其全部内容通过引用合并于此。
107.e.示例可穿戴系统、环境和界面
108.可穿戴系统可以采用各种映射相关技术,以便在渲染的光场中实现高景深。在映射出虚拟世界时,了解真实世界中的所有特征和点以相对于真实世界准确地描绘虚拟对象是有利的。为此,可以通过包含传达有关真实世界的各个点和特征的信息的新图片,将从可穿戴系统用户捕获的fov图像添加到世界模型。例如,可穿戴系统可以收集一组地图点(例如2d点或3d点)并找到新的地图点以渲染世界模型的更准确版本。可以将第一用户的世界模型(例如,通过诸如云网络的网络)传送给第二用户,使得第二用户可以体验围绕第一用户的世界。
109.图7是mr环境700的示例的框图。mr环境700可以被配置为从一个或多个用户可穿戴系统(例如,可穿戴系统200或显示系统220)或固定房间系统(例如,房间相机等)接收输入(例如,来自用户的可穿戴系统的视觉输入702,诸如室内相机的静止输入704,来自各种传感器的感测输入706,手势,图腾,眼睛跟踪,来自用户输入设备466的用户输入等)。可穿戴系统可以使用各种传感器(例如,加速度计、陀螺仪、温度传感器、运动传感器、深度传感器、gps传感器、面向内成像系统、面向外成像系统等)来确定用户环境的位置和各种其它属性。该信息可以进一步补充有来自房间中固定相机的信息,该固定相机可以从不同的视角提供图像或各种提示。由相机(诸如房间相机或面向外成像系统的相机)获取的图像数据可以减少到一组映射点。
110.一个或多个对象识别器708可以爬行通过所接收的数据(例如,点的集合)并且识别或映射点、标签图像,借助于地图数据库710将语义信息附加到对象。地图数据库710可以包括随时间推移收集的各种点及其对应的对象。各种设备和地图数据库可以通过网络(例如,lan、wan等)彼此连接以访问云。
111.基于该信息和地图数据库中的点的集合,对象识别器708a至708n可以识别环境中的对象。例如,对象识别器可以识别面部、人物、窗户、墙壁、用户输入设备、电视、文档(例如,本安全示例中在此所述的旅行机票、驾照、护照)、用户环境中的其它对象等。一个或多个对象识别器可以专门用于具有某些特征的对象。例如,对象识别器708a可用于识别面部,而另一对象识别器可用于识别文档。
112.可以使用多种计算机视觉技术来执行对象识别。例如,可穿戴系统可以分析由面向外成像系统464(图4中所示)获取的图像以执行场景重构、事件检测、视频跟踪、对象识别(例如人或文档)、对象姿势估计、面部识别(例如,来自环境中的人或文档上的图像)、学习、索引、运动估计或图像分析(例如,在文档中识别标记,诸如照片、签名、标识信息、旅行信息
等)等。可以使用一种或多种计算机视觉算法来执行这些任务。计算机视觉算法的非限制性示例包括:尺度不变特征变换(sift)、加速鲁棒特征(surf)、定向fast和旋转的brief(orb)、二进制鲁棒不变可扩展关键点(brisk)、快速视网膜关键点(freak)、viola-jones算法、eigenfaces方法、lucas-kanade算法、horn-schunk算法、均值漂移算法、视觉同时定位和映射(vslam)技术、顺序贝叶斯估计器(例如,卡尔曼过滤器、扩展卡尔曼过滤器等)、束调节、自适应阈值(和其它阈值技术)、迭代最近点(icp)、半全局匹配(sgm)、半全局块匹配(sgbm)、特征点直方图、各种机器学习算法(诸如例如支持矢量机、k最近邻算法、朴素贝叶斯、神经网络(包括卷积或深度神经网络)或其它监督/无监督模型等)等。
113.对象识别可以另外地或可替代地通过各种机器学习算法来执行。训练后,机器学习算法可以由hmd存储。机器学习算法的一些示例可以包括有监督或无监督的机器学习算法,包括回归算法(诸如例如普通最小二乘回归)、基于实例的算法(诸如例如学习矢量量化)、决策树算法(诸如例如分类和回归树)、贝叶斯算法(诸如例如朴素贝叶斯)、聚类算法(诸如例如k均值聚类)、关联规则学习算法(诸如例如先验算法)、人工神经网络算法(诸如例如perceptron)、深度学习算法(诸如例如deep boltzmann machine或深度神经网络)、降维算法(诸如例如,主要成分分析)、整体算法(例如,stacked generalization)或其它机器学习算法。可以为各个数据集定制单独的模型。例如,可穿戴设备可以生成或存储基本模型。基本模型可以用作生成特定于数据类型(例如,远程呈现会话中的特定用户)、数据集(例如,用户在远程呈现会话中获得的一组附加图像的集合)、有条件的情况或其它变化的附加模型的起点。可穿戴hmd可以被配置为利用多种技术来生成用于分析聚合数据的模型。其它技术可以包括使用预定义的阈值或数据值。
114.基于该信息和地图数据库中的点的集合,对象识别器708a至708n可以识别对象并向对象补充语义信息以赋予对象生命。例如,如果对象识别器将一组点识别为门,则系统可以附加一些语义信息(例如,门具有铰链并且围绕铰链具有90度的运动)。如果对象识别器将一组点识别为镜子,则系统可以附加该镜子具有可以反射房间中对象图像的反射表面的语义信息。语义信息可以包括在此所述的对象的功能可见性。例如,语义信息可以包括对象的法线。系统可以分配矢量,其方向指示对象的法线。随着时间推移,地图数据库会随着系统(其可驻留在本地或可通过无线网络访问)从世界收集更多数据而增长。一旦对象被识别,信息就可以被传输到一个或多个可穿戴系统。例如,mr环境700可以包括关于在加利福尼亚州发生的场景的信息。环境700可被传输给纽约的一个或多个用户。基于从fov相机和其它输入接收的数据,对象识别器和其它软件组件可以映射从各种图像收集的点,识别对象等,使得可以将场景准确地“传递”给第二用户,该第二用户可能在世界的不同部分。环境700也可以将拓扑图用于定位目的。
115.图8是关于所识别的对象渲染虚拟内容的方法800的示例的过程流程图。方法800描述了可以如何向可穿戴系统的用户呈现虚拟场景。用户可以在地理位置上远离场景。例如,用户可能在纽约,但可能想要观看当前在加利福尼亚州发生的场景,或者可能想与居住在加利福尼亚州的朋友一起散步。
116.在框810处,可穿戴系统可以从用户和其他用户接收关于用户的环境的输入。这可以通过各种输入设备以及地图数据库中已经拥有的知识来实现。在框810处,用户的fov相机、传感器、gps、眼睛跟踪等将信息传达到系统。在框820处,系统可以基于该信息来确定稀
疏点。稀疏点可以用于确定姿势数据(例如,头部姿势、眼睛姿势、身体姿势或手势),该姿势数据可以用于显示和理解用户周围环境中的各种对象的取向和位置。在框830处,对象识别器708a-708n可爬行通过这些收集的点并使用地图数据库识别一个或多个对象。然后,在框840处,该信息可以被传达到用户的单独的可穿戴系统,并且在框850处,所需的虚拟场景可以因此被显示给用户。例如,所需的虚拟场景(例如,加利福尼亚州的用户)可以相对于纽约的用户的各种对象和其它周围环境以适当的取向、位置等显示。
117.图9是可穿戴系统的另一个示例的框图。在该示例中,可穿戴系统900包括地图920,该地图可以包括包含用于世界的地图数据的地图数据库710。地图可以部分地本地驻留在可穿戴系统上,并且可以部分地驻留在可通过有线或无线网络(例如,在云系统中)访问的联网存储位置。姿势过程910可以在可穿戴计算架构(例如,处理模块260或控制器460)上执行并且利用来自地图920的数据来确定可穿戴计算硬件或用户的位置和取向。当用户正在体验系统并在世界中操作时,可以根据即时(on the fly)收集的数据来计算姿势数据。数据可以包括图像、来自传感器(例如惯性测量单元,其通常包括加速度计和陀螺仪部件)的数据、以及与真实或虚拟环境中的对象相关的表面信息。
118.稀疏点表示可以是同时定位和映射(例如,slam或vslam,指的是其中输入仅是图像/视觉的配置)过程的输出。该系统可以被配置为不仅找出各种部件在世界中的位置,还找出世界是由什么组成的。姿势可以是实现许多目标的构建块,包括填充地图和使用来自地图的数据。
119.在一个实施例中,稀疏点位置本身可能并不完全充足,并且可能需要进一步的信息来产生多焦点ar、vr或mr体验。密集表示,通常指深度图信息,可用于至少部分地填充该空白。这种信息可以从称为立体(stereo)940的过程中计算出来,其中深度信息是使用诸如三角测量或飞行时间感测的技术来确定的。图像信息和活动(active)模式(例如使用活动投影仪创建的红外模式)、从图像相机获取的图像、或手势/图腾950可以用作立体过程940的输入。大量的深度图信息可以融合在一起,其中一些可以用表面表示来概括。例如,数学上可定义的表面可能是有效的(例如,相对于大的点云)并且可消化输入到其他处理设备(如游戏引擎)。因此,立体过程(例如,深度图)940的输出可以在融合过程930中组合。姿势910也可以是这个融合过程930的输入,并且融合930的输出变成填充的映射过程920输入。子表面可以彼此连接,例如在地形映射中,以形成更大的表面,并且地图变成较大的点和表面混合。
120.为了解决混合现实过程960中的各个方面,可以利用各种输入。例如,在图9所示的实施例中,可以输入游戏参数以确定系统的用户正在玩怪物战斗游戏,其中一个或多个怪物在不同位置、在各种条件下怪物死亡或逃跑(例如如果用户射击怪物)、墙壁或其他对象位于不同位置等。世界地图可以包括关于对象的位置的信息或对象的语义信息,并且世界地图可以是混合现实的另一个有价值的输入。相对于世界的姿势也成为一种输入,并且对几乎任何交互式系统都起着关键作用。
121.来自用户的控制或输入是对可穿戴系统900的另一输入。如本文所述,用户输入可以包括视觉输入、手势、图腾、音频输入、感觉输入等。为了四处移动或玩游戏,例如,用户可能需要指示可穿戴系统900关于他或她想要做什么。除了在空间中移动自己之外,还存在可以使用的各种形式的用户控件。图腾(例如,用户输入设备)、或诸如玩具枪之类的对象可以
由用户持有并被系统跟踪。该系统优选地将被配置为知道用户正拿着该物品并了解用户正在与该物品进行什么样的交互(例如,如果图腾或对象是枪,则该系统可以被配置为了解位置和取向,以及用户是否在点击触发器或其他感应按钮或可能配备有传感器(例如,imu)的元件,这可能有助于确定正在发生的事情,即使此类活动不在任何相机的视场内。)
122.手势跟踪或识别也可以提供输入信息。可穿戴系统900可以被配置为跟踪和解释用于按钮按压、向左或向右手势、停止、抓取、保持等的手势。例如,在一种配置中,用户可能想要在非游戏环境中翻阅电子邮件或日历,或与其他人或玩家进行“拳头碰撞”。可穿戴系统900可以被配置为利用最小量的手势,该手势可以是动态的也可以不是动态的。例如,手势可以是简单的静态手势,例如张开手用于停止、竖起大拇指用于好、大拇指向下用于不好;或手向右、向左或向上/向下翻转用于方向命令。
123.眼睛跟踪是另一个输入(例如,跟踪用户正在看的位置以控制显示技术以在特定深度或范围进行渲染)。可以使用三角测量来确定眼睛的辐辏,然后使用为该特定人开发的辐辏/适应模型,可以确定适应。眼睛相机可以执行眼睛跟踪以确定眼睛注视(例如,一只或两只眼睛的方向或取向)。其他技术可用于眼睛跟踪,例如,通过放置在眼睛附近的电极测量电势(例如,眼电图)。
124.语音跟踪可以是另一个输入,可以单独使用或与其他输入结合使用(例如,图腾跟踪、眼睛跟踪、手势跟踪等)。语音跟踪可以包括单独或组合的语音识别、话语识别。系统900可以包括从环境接收音频流的音频传感器(例如,麦克风)。系统900可以结合语音识别技术来确定谁在说话(例如,语音是来自ard的佩戴者还是来自其他人或话语(例如,由环境中的扬声器发射的录制话语))、以及语音识别技术来确定所说的内容。本地数据和处理模块260或远程处理模块270可以处理来自麦克风的音频数据(或另一个流中的音频数据,例如用户正在观看的视频流),以通过应用各种语音识别算法来识别语音的内容,例如隐马尔可夫模型、基于动态时间规整(dtw)的语音识别、神经网络、深度学习算法,例如深度前馈和递归神经网络、端到端自动语音识别、机器学习算法(参考图7描述),或使用声学建模或语言建模等的其他算法。在一些情况下,语音将来自多个来源,例如,来自用户附近的另一个人,来自在人附近播放的电视上的播音员,以及来自通过扬声器240向ard的用户播放的语音内容。如下文进一步描述的,可以对这些不同的语音源(例如,在本示例中的人、电视播音员和音频流)进行内容分析,并且可以通过ard的用户界面向用户以不同方式呈现不同的主题(例如,不同主题被组织成不同线程,不同扬声器的语音被组织成不同的线程,或这些的组合)。
125.本地数据和处理模块260或远程处理模块270还可以应用能够识别说话者的身份的话语识别算法,例如说话者是可穿戴系统900的用户210还是与用户正在交谈的其他人。一些示例话语识别算法可以包括频率估计、隐马尔可夫模型、高斯混合模型、模式匹配算法、神经网络、矩阵表示、矢量量化、说话者分类、决策树和动态时间规整(dtw)技术。话语识别技术还可以包括反说话者技术,例如群组模型(cohort model)和世界模型。频谱特征可用于表示说话者特性。本地数据和处理模块或远程数据处理模块270可以使用参考图7描述的各种机器学习算法来执行语音识别。
126.路径点映射系统970的实现可以通过用户界面(ui)使用这些用户控制或输入。ui元素(例如,控件、弹出窗口、气泡、数据输入域等)可用于消除辅助信息的显示,或将单词添加到常用词典中。参考图13至图24描述了路径点映射系统970的这种实施方式的示例和这
些使用。
127.关于相机系统,图9中所示的示例性可穿戴系统900可以包括三对相机:布置在用户面部侧面的相对宽的fov或无源slam相机对、定向在用户前方以处理立体成像过程940并且还捕获用户面部前方的手势和图腾/对象跟踪的不同的相机对。fov相机和用于立体过程940的相机对可以是面向外成像系统464的一部分(图4所示)。可穿戴系统900可以包括朝向用户眼睛取向的眼睛跟踪相机(其可以是图4所示的面内向成像系统462的一部分),以便对眼睛矢量和其他信息进行三角测量。可穿戴系统900还可以包括一个或多个纹理光投影仪(例如红外(ir)投影仪)以将纹理注入到场景中。
128.图10是用于确定对可穿戴系统的用户输入的方法1000的示例的过程流程图。在此示例中,用户可以与图腾交互。用户可能有多个图腾。例如,用户可能已经针对社交媒体应用指定了一个图腾,针对玩游戏指定了另一个图腾等。在框1010,可穿戴系统可以检测图腾的运动。图腾的移动可以通过面向外的成像系统来识别,或者可以通过传感器(例如,触觉手套、图像传感器、手部跟踪设备、眼睛跟踪相机、头部姿势传感器等)来检测。
129.在框1020,至少部分地基于检测到的姿势、眼睛姿势、头部姿势、或通过图腾的输入,可穿戴系统检测图腾(或用户的眼睛或头部或姿势)相对于参考系的位置、取向或移动。参考系可以是一组地图点,可穿戴系统基于这些地图点将图腾(或用户)的移动转换为动作或命令。在框1030,对用户与图腾的交互进行映射。在框1040,基于用户交互相对于参考系1020的映射,系统确定用户输入。
130.例如,用户可以来回移动图腾或物理对象以表示翻转虚拟页面并移动到下一页或从一个用户界面(ui)显示屏幕移动到另一个ui屏幕。作为另一个示例,用户可以移动他们的头部或眼睛以观看用户的for中的不同的真实或虚拟对象。如果用户注视特定真实或虚拟对象的时间长于阈值时间,则可以选择真实或虚拟对象作为用户输入。可以跟踪用户眼睛的辐辏,并且可以使用适应/辐辏模型来确定用户眼睛的适应状态,这提供了用户正在聚焦的深度平面的信息。可穿戴系统可以使用光线投射技术来确定哪些真实或虚拟对象沿着用户的头部姿势或眼睛姿势的方向。光线投射技术可以包括以基本上小的横向宽度投射细射线(thin,pencil ray)或以相当大的横向宽度(例如,圆锥或截头锥体)投射射线。
131.用户界面可以由如本文所述的显示系统(例如图2中的显示器220)投影。它也可以使用多种其他技术来显示,例如一个或多个投影仪。投影仪可以将图像投影到物理对象上,例如画布或地球仪(globe)。与用户界面的交互可以使用系统外部的一个或多个相机或系统的一部分(例如,使用面向内的成像系统462或面向外的成像系统464)来跟踪。
132.图11是用于与虚拟用户界面交互的方法1100的示例的过程流程图。方法1100可以由本文所述的可穿戴系统执行。可穿戴系统可以使用方法1100的实施例来检测可穿戴系统的fov中的人或文件。
133.在框1101,可穿戴系统可以识别特定ui。ui的类型可以由用户确定。可穿戴系统可以基于用户输入(例如,手势、视觉数据、音频数据、感觉数据、直接命令等)来识别需要被填充的特定ui。ui可以特定于安全场景,其中系统的佩戴者正在观察向佩戴者出示文件的用户(例如,在旅行检查站)。在框1105,可穿戴系统可以为虚拟ui生成数据。例如,可以生成与边界、一般结构、ui的形状等相关联的数据。此外,可穿戴系统可以确定用户物理位置的地图坐标,从而可穿戴系统可以显示与用户物理位置相关的ui。例如,如果ui以身体为中心,
则可穿戴系统可以确定用户的物理姿势、头部姿势或眼睛姿势的坐标,从而可以在用户周围显示环形ui,或者可以在墙上或在用户的前面显示平面ui。在本文描述的安全上下文中,ui可以被显示为好像ui围绕着正在向系统的佩戴者呈现文件的旅行者,使得佩戴者可以在观看旅行者和旅行者的文件的同时容易地观看ui。如果ui以手部为中心,则可以确定用户手部的地图坐标。这些地图点可以通过fov相机接收的数据、感测输入或任何其他类型的收集数据得出。
134.在框1115,可穿戴系统可以将数据从云发送到显示器,或者数据可以从本地数据库发送到显示器组件。在框1125,基于发送的数据向用户显示ui。例如,光场显示器可以将虚拟ui投射到用户的一只或两只眼睛中。在框1135,一旦创建了虚拟ui,可穿戴系统可以简单地等待来自用户的命令以在虚拟ui上生成更多虚拟内容。例如,ui可以是围绕用户身体或用户的环境中的人的身体(例如,旅行者)的以身体为中心的环。可穿戴系统然后可以等待命令(手势、头部或眼睛移动、语音命令、来自用户输入设备的输入等),并且如果它被识别(框1165),则与命令相关联的虚拟内容可以被显示给用户(框1175)。
135.可穿戴系统、ui和用户体验(ux)的其他示例在第2015/0016777号美国专利公开中进行了描述,该专利通过引用以其整体并入本文。
136.f.可穿戴系统之间的示例通信
137.图12示意性地示出描绘彼此交互的多个用户设备的整体系统视图。计算环境1200包括用户设备1230a、1230b、1230c。用户设备1230a、1230b和1230c可以通过网络1290彼此通信。用户设备1230a-1230c可以各自包括网络接口,以经由网络1290与远程计算系统1220(也可以包括网络接口1271)通信。网络1290可以是lan、wan、对等网络、无线电、蓝牙或任何其它网络。计算环境1200也可以包括一个或多个远程计算系统1220。远程计算系统1220可以包括集群的并且位于不同地理位置的服务器计算机系统。用户设备1230a、1230b和1230c可以经由网络1290与远程计算系统1220通信。
138.远程计算系统1220可以包括远程数据仓库1280,该远程数据仓库1280可以维护关于特定用户的物理或虚拟世界的信息。远程数据存储库可以是图2中所示的远程数据存储库280的实施例。远程计算系统1220还可以包括远程处理模块1270。远程处理模块1270可以是图2中所示的远程处理模块270的实施例。远程处理模块1270可以包括一个或多个处理器,该处理器可以与用户设备(1230a、1230b、1230c)和远程数据仓库1280通信。处理器可以处理从用户设备和其它来源获得的信息。处理或存储的至少一部分可以由本地处理和数据模块260(如图2中所示)提供。远程计算系统1220可以使给定用户能够与另一用户共享关于特定用户自己的物理和/或虚拟世界的信息。
139.用户设备可以是单独或组合的可穿戴设备(诸如hmd或ard)、计算机、移动设备或任何其它设备。例如,用户设备1230b和1230c可以是可以被配置为呈现ar/vr/mr内容的图2中所示的可穿戴系统200(或图4中所示的可穿戴系统400)的实施例。
140.一个或多个用户设备可以与图4中所示的用户输入设备466一起使用。用户设备可以获得关于用户和用户的环境的信息(例如,使用图4中所示的面向外成像系统464)。用户设备或远程计算系统1220可以使用从用户设备获得的信息来构造、更新和构建图像、点和其它信息的集合。例如,用户设备可以处理获取的原始信息,并将处理的信息发送到远程计算系统1220以进行进一步处理。用户设备还可以将原始信息发送到远程计算系统1220以进
行处理。用户设备可以从远程计算系统1220接收处理的信息,并在投影到用户之前提供最终处理。用户设备还可以处理获得的信息,并将处理的信息传递给其他用户设备。用户设备可以在处理获取的信息的同时与远程数据存储库1280通信。多个用户设备或多个服务器计算机系统可以参与所获取图像的构造或处理。
141.关于物理世界的信息可以随时间推移发展,并且可以基于由不同用户设备收集的信息。虚拟世界的模型也可随时间推移而发展,并基于不同用户的输入。此类信息和模型有时在此可以被称为世界地图或世界模型。如参考图7和图9所述,由用户设备获取的信息可以用于构造世界地图1210。世界地图1210可以包括图9中描述的地图920的至少一部分。各种对象识别器(例如708a,708b,708c
…
708n)可用于识别对象和标记图像,以及将语义信息附加到对象。这些对象识别器也在图7中描述。
142.远程数据存储库1280可以用于存储数据并且促进世界地图1210的构造。用户设备可以不断更新关于用户环境的信息并接收关于世界地图1210的信息。世界地图1210可以由用户或其他人创建。如在此所讨论的,用户设备(例如1230a、1230b、1230c)和远程计算系统1220可以单独或组合地构造或更新世界地图1210。例如,用户设备可以与远程处理模块1270和远程数据仓库1280通信。用户设备可以获取或处理关于用户和用户环境的信息。远程处理模块1270可以与远程数据存储库1280和用户设备(例如,1230a、1230b、1230c)通信,以处理关于用户和用户的环境的信息。远程计算系统1220可以修改由用户设备(例如,1230a、1230b、1230c)获取的信息,诸如例如,选择性地裁剪用户的图像,修改用户的背景,将虚拟对象添加到用户的环境,采用辅助信息注释用户的语音等。远程计算系统1220可以将处理的信息发送到相同或不同的用户设备。
143.g.示例地图
144.图13a示出了当用户1331移动通过物理世界环境1333(下文称为“环境1333”)时,佩戴渲染ar内容的ar显示系统的用户1331。ar系统沿着用户的移动路径捕获的信息可以被处理成一个或多个跟踪地图。用户1331将ar显示系统定位在位置1334,并且ar显示系统记录可通行世界相对于位置1334的环境信息(例如,物理世界中真实对象的数字表示,其可以随着对真实对象在物理世界的改变被存储和更新)。该信息可以与图像、特征、定向音频输入或其他所需数据结合起来作为姿势存储。位置1334例如作为跟踪地图的一部分被聚集到数据输入1336,并且至少由可通行世界模块1338处理,该可通行世界模块1338可以例如通过在远程处理模块上的处理来实现。在一些实施例中,可通行世界模块1338可以包括头部姿势部件和世界重建部件,使得经处理的信息可以结合与在渲染虚拟内容中使用的物理对象相关的其他信息来指示对象在物理世界中的位置。
145.可通行世界模块1338至少部分地确定如从数据输入1336确定的ar内容1340可以被放置在物理世界中的位置和方式。ar内容通过经由用户界面呈现物理世界呈现和ar内容二者来“放置”在物理世界中,ar内容渲染为好像与物理世界中的对象进行交互,并且物理世界中的对象呈现为好像ar内容在适当时掩盖了用户对这些对象的观看。在一些实施例中,可以通过从重建中适当地选择固定元素1342(例如桌子)的部分来确定ar内容1340的形状和位置来放置ar内容。作为示例,固定元素可以是桌子,并且虚拟内容可以定位成使得其看起来好像在该桌子上。在一些实施例中,可以将ar内容放置在视野1344中的结构内,该视野可以是当前视野或估计的未来视野。在一些实施例中,ar内容可以持续相对于物理世界
的模型1346(例如网格)。
146.如所描绘的,固定元素1342用作可存储在可通行世界模块1338中的物理世界内的任何固定元素的代理(例如,数字副本),使得用户1331可以感知固定元素1342上的内容而无需每次用户1331看到固定元素1342时系统都必须地图构建到固定元素1342。因此,固定元素1342可以是来自先前建模会话的网格模型,或者可以由单独的用户确定但是仍然由可通行世界模块1338存储,以供多个用户将来参考。因此,可通行世界模块1338可以从先前地图构建的环境中识别环境1333并显示ar内容,而无需用户1331的设备首先对环境1333的全部或一部分进行地图构建,从而节省了计算过程和周期并避免了任何渲染的ar内容的时延。
147.可以通过ar显示系统来创建物理世界的网格模型1346,并且用于交互和显示ar内容1340的适当的表面和度量可以由可通行世界模块1338存储,以供用户1331或其他用户将来取得,而无需完全或部分地重新创建模型。在一些实施例中,数据输入1336是诸如地理位置、用户标识和当前活动的输入,以向可通行世界模块1338指示一个或多个固定元素中的哪个固定元素1342可用,哪个ar内容1340最后被放置在固定元素1342上,以及是否显示该相同的内容(无论用户如何观看特定的可通行世界模型,这种ar内容都是“持久”内容)。
148.即使在其中对象被认为是固定的(例如,厨房桌子)实施例中,可通行世界模块1338也可以不时更新物理世界模型中的那些对象新,以考虑到物理世界中变化的可能性。固定对象的模型可能以非常低的频率更新。物理世界中的其它对象可能正在移动或以其它方式不被认为是固定的(例如厨房椅子)。为了渲染具有真实感的ar场景,ar系统可以以比用于更新固定对象的频率高得多的频率来更新这些非固定对象的位置。为了能够准确跟踪物理世界中的所有对象,ar系统可以从多个传感器(包括一个或多个图像传感器)中获取信息。
149.图13b是观看光学组件1348和伴随部件的示意图。在一些实施例中,指向用户眼睛1349的两个眼睛跟踪相机1350检测用户眼睛1349的度量,诸如用户眼睛1349上的眼睛形状、眼睑闭塞、瞳孔方向和闪烁。
150.在一些实施例中,传感器之一可以是深度传感器1351,诸如飞行时间传感器,其向世界发射信号并检测来自附近对象的那些信号的反射以确定与给定对象的距离。深度传感器例如可以由于那些对象的运动或用户姿势的变化而快速确定对象是否已经进入用户的视野。然而,关于对象在用户视野中的位置的信息可以可替代地或另外地由其它传感器收集。深度信息例如可以从立体视觉图像传感器或全光传感器获得。
151.在一些实施例中,世界相机1352记录大于外围的视图以对环境1333进行地图构建和/或以其他方式创建环境1333的模型,并检测可影响ar内容的输入。在一些实施例中,世界相机1352和/或相机1353可以是灰度和/或彩色图像传感器,该传感器可以以固定的时间间隔输出灰度和/或彩色图像帧。相机1353可以在特定时间进一步捕获用户视野内的物理世界图像。即使基于帧的图像传感器的像素的值不变,也可以重复对其像素进行采样。世界相机1352、相机1353和深度传感器1351中的每一个具有相应的视野1354、1355和1356,以从物理世界场景中收集数据并记录该物理世界场景。
152.惯性测量单元1357可以确定观看光学组件1348的运动和取向。在一些实施例中,每个部件可操作地耦合到至少一个其它部件。例如,深度传感器1351可操作地耦合到眼睛
跟踪相机1350,以相对于用户眼睛1349正在注视的实际距离来确认所测量的适应。
153.例如,在一些实施例中,观看光学组件1348可以包括两个世界相机1352而不是四个。可替代地或另外地,相机1352和1353不需要捕获其全部视野的可见光图像。观看光学组件1348可以包括其它类型的部件。在一些实施例中,观看光学组件1348可以包括一个或多个动态视觉传感器(dvs),其像素可以异步地响应超过阈值的光强度的相对变化。
154.在一些实施例中,基于飞行时间信息,观看光学组件1348可以不包括深度传感器1351。例如,在一些实施例中,观看光学组件1348可以包括一个或多个全光相机,其像素可以捕获光强度和入射光的角度,由此可以确定深度信息。例如,全光相机可以包括覆盖有透射衍射掩模(tdm)的图像传感器。可替代地或另外地,全光相机可以包括图像传感器,该图像传感器包含角度敏感像素和/或相位检测自动聚焦像素(pdaf)和/或微透镜阵列(mla)。代替深度传感器1351或除了深度传感器1351之外,这种传感器可以用作深度信息源。
155.还应当理解,图13b中的部件的配置被提供为示例。观看光学组件1348可以包括具有任何适当配置的部件,该适当配置可以设定为向用户提供对于一组特定部件实际可行的最大视野。例如,如果观看光学组件1348具有一个世界相机1352,则该世界相机可以放置在观看光学组件的中心区域而不是侧面。
156.来自观看光学组件1348中的传感器的信息可以耦合到系统中的一个或多个处理器。处理器可以生成可以被渲染以便使用户感知与物理世界中的对象交互的虚拟内容的数据。可以以任何合适的方式来实现该渲染,包括生成描绘物理和虚拟对象二者的图像数据。在其它实施例中,可以通过调制用户在物理世界中浏览的显示设备的不透明度来在一个场景中描绘物理和虚拟内容。可以控制不透明度以便创建虚拟对象的外观,并且还阻止用户看到物理世界中被虚拟对象遮挡的对象。在一些实施例中,当通过用户界面观看时,图像数据可以仅包括虚拟内容,该虚拟内容可以被修改以使得虚拟内容被用户感知为与物理世界现实地交互(例如,剪辑内容以考虑遮挡)。
157.观看光学组件1348上的显示内容以产生对象位于特定位置的印象的位置可以取决于观看光学组件的物理性质。此外,用户头部相对于物理世界的姿势以及用户眼睛注视的方向可以影响在物理世界中显示内容的位置将会出现在观察光学组件上的特定位置。如上所述的传感器可以收集该信息,和/或提供可以从中计算该信息的信息,使得接收传感器输入的处理器可以计算应该在观看光学组件1348上渲染对象的位置从而为用户创建期望的外观。
158.无论如何向用户呈现内容,都可以使用物理世界的模型,使得可以正确计算可受到物理对象影响的虚拟对象的特性,包括虚拟对象的形状、位置、运动和可见性。在一些实施例中,模型可以包括物理世界的重建,例如重建1318。
159.可以根据从用户的可穿戴设备上的传感器收集的数据来创建该模型。但是,在一些实施例中,可以从多个用户收集的数据中创建模型,该数据可以在远离所有用户的计算设备中汇总(并且该数据可以在“云中”)。
160.模型可以至少部分地由世界重建系统创建,诸如例如,图6a中描绘的世界重建。世界重建部件516可以包括感知模块1360,该感知模块1360可以生成、更新和存储物理世界的一部分的表示。在一些实施例中,感知模块1360可以将传感器的重建范围内的物理世界的部分表示为多个体素。每个体素可以对应于物理世界中预定体积的3d立方体,并且包括表
面信息,该表面信息指示在体素表示的体积中是否存在表面。可以为体素分配值,该值指示是否已经确定了它们的对应体积以包括物理对象的表面,确定为空的还是尚未用传感器测量,并且因此其值是未知的。应当理解,不需要明确地存储指示被确定为空或未知的体素的值,因为可以以任何合适的方式将体素的值存储在计算机存储器中,包括不存储被确定为空或未知的体素的信息。
161.除了生成用于持久世界表示的信息之外,感知模块1360还可以识别并输出ar系统的用户周围的区域中的变化的指示。这种变化的指示可以触发对作为持久世界的一部分存储的体积数据的更新,或者触发其它功能,诸如触发生成ar内容以更新ar内容的触发部件604。
162.在一些实施例中,感知模块1360可以基于符号距离函数(sdf)模型来识别变化。感知模块1360可以被配置为接收诸如例如深度图1360a和头部姿势1360b的传感器数据,并且然后将传感器数据融合到sdf模型1360c中。深度图1360a可以直接提供sdf信息,并且图像可以被处理以获得sdf信息。sdf信息表示距用于捕获该信息的传感器的距离。由于那些传感器可以是可穿戴单元的一部分,因此sdf信息可以从可穿戴单元的角度以及因此从用户的角度表示物理世界。头部姿势1360b可以使sdf信息能够与物理世界中的体素相关。
163.在一些实施例中,感知模块1360可以生成、更新和存储在感知范围内的物理世界的部分的表示。感知范围可以至少部分地基于传感器的重建范围来确定,该传感器的重建范围可以至少部分地基于传感器的观察范围的限制来确定。作为特定示例,使用主动ir脉冲操作的主动深度传感器可以在一定距离范围内可靠地操作,从而创建传感器的观察范围,该观察范围可以从几厘米或几十厘米到几米。
164.世界重建部件516可以包括可以与感知模块1360交互的附加模块。在一些实施例中,持久世界模块1362可以基于由感知模块1360获取的数据来接收对物理世界的表示。持久世界模块1362还可以包括物理世界的各种格式的表示。例如,可以存储诸如体素的体积元数据1362b以及网格1362c和平面1362d。在一些实施例中,可以保存其它信息,诸如深度图。
165.在一些实施例中,物理世界的表示(诸如图6a中所示的表示)与稀疏地图相比(诸如如上所述的基于特征点的跟踪地图)可以提供关于物理世界的相对密集的信息。
166.在一些实施例中,感知模块1360可以包括以各种格式生成物理世界的表示的模块,这些格式包括例如网格1360d、平面和语义1360e。物理世界的表示可以跨本地存储介质和远程存储介质进行存储。取决于例如存储介质的位置,可以在不同的坐标框架中描述物理世界的表示。例如,可以在相对设备本地的坐标框架中描述存储在设备中的物理世界的表示。物理世界的表示可以具有存储在云端中的对应表示(counterpart)。可以由xr系统中的所有设备所共享的坐标框架中描述云端中的对应表示。
167.在一些实施例中,这些模块可以基于在生成表示时一个或多个传感器的感知范围内的数据以及在先前时间捕获的数据和持久世界模块1362中的信息来生成表示。在一些实施例中,这些部件可以关于采用深度传感器捕获的深度信息来操作。然而,ar系统可以包括视觉传感器,并且可以通过分析单眼或双眼视觉信息来生成这种表示。
168.在一些实施例中,这些模块可以在物理世界的区域上操作。当感知模块1360检测到物理世界的子区域中的物理世界的变化时,可以触发那些模块以更新物理世界的子区
域。例如,可以通过在sdf模型1360c中检测新的表面或其它标准(例如改变表示子区域的充足数量的体素的值)来检测这种变化。
169.世界重建部件516可以包括可以从感知模块1360接收物理世界的表示的部件1364。关于物理世界的信息可以由这些部件根据例如来自应用的使用请求来提取。在一些实施例中,可以诸如经由对预识别区域中的变化或感知范围内的物理世界表示的变化的指示,将信息推送到使用部件。部件1364可以包括例如游戏程序和执行用于视觉遮挡、基于物理的交互以及环境推理的处理的其它部件。
170.响应于来自部件1364的查询,感知模块1360可以一种或多种格式发送用于物理世界的表示。例如,当部件1364指示该使用是用于视觉遮挡或基于物理的交互时,感知模块1360可以发送表面的表示。当部件1364指示该使用是用于环境推理时,感知模块1360可以发送物理世界的网格、平面和语义。
171.在一些实施例中,感知模块1360可以包括格式化信息以提供部件1364的部件。这种部件的示例可以是光线投射部件1360f。使用部件(例如,部件1364)例如可以从特定的视点查询关于物理世界的信息。光线投射部件1360f可以从该视点从视野内的物理世界数据的一种或多种表示中选择。
172.从以上描述中应该理解,感知模块1360或ar系统的另一部件可以处理数据以创建物理世界的部分的3d表示。可以通过以下方式来减少要处理的数据:至少部分基于相机视锥和/或深度图像来剔除3d重建体积的部分;提取和保留平面数据;捕获、保留和更新块中的3d重建数据,这些块允许在保持近邻一致性的同时进行本地更新;将遮挡数据提供给生成此类场景的应用,其中遮挡数据是从一个或多个深度数据源的组合中导出的;和/或执行多阶段网格简化。重建可以包含不同复杂程度的数据,包括例如原始数据(例如实时深度数据),融合体积数据(例如体素)和计算数据(例如网格)。
173.在一些实施例中,可通行世界模型的部件可以是分布式的,其中一些部分在xr设备上本地执行,而一些部分在远程执行,例如在网络连接的服务器上,或者在云端。本地xr设备与云端之间的信息处理和存储的分配可以影响xr系统的功能和用户体验。例如,通过将处理分配给云端来减少本地设备上的处理可以延长电池寿命并减少本地设备上产生的热量。但是,将过多的处理分配给云端可能会产生不希望的延迟,这导致无法接受的用户体验。
174.图13d描绘了根据一些实施例的被配置用于空间计算的分布式部件架构1370。分布式部件架构1370可以包括可通行世界部件1372(例如,图5a中的pw 538)、lumin os 1374、api 1376、sdk 1378和应用1380。luminos 1374可以包括基于linux的内核,其具有与xr设备兼容的自定义驱动器。api 1376可包括准许xr应用(例如,应用1380)访问xr设备的空间计算特征的应用编程接口。sdk 1378可包括允许创建xr应用的软件开发套件。
175.架构1370中的一个或多个部件可以创建并保持可通行世界的模型。在此示例中,传感器数据是在本地设备上收集的。该传感器数据的处理可以部分地在xr设备上本地执行,部分地在云端执行。pw 538可以包括至少部分基于由多个用户佩戴的ar设备所捕获的数据而创建的环境地图。在ar体验的会话期间,各个ar设备(诸如以上结合图4描述的可穿戴设备)可以创建跟踪地图,该跟踪地图是地图的一种类型。
176.在一些实施例中,设备可以包括构建稀疏地图和密集地图的部件。跟踪地图可以
用作稀疏地图,并且可以包括扫描环境的ar设备的头部姿势以及在每个头部姿势处在该环境内检测到的对象有关的信息。可以为每个设备在本地保持那些头部姿势。例如,每个设备上的头部姿势可以是相对于设备开启其会话时的初始头部姿势。结果,每个跟踪地图对创建它的设备可以是本地的。密集地图可以包括表面信息,该表面信息可以由网格或深度信息表示。替代地或附加地,密集地图可以包括从表面或深度信息中导出的更高级别的信息,例如平面和/或其他对象的位置和/或特征。
177.在一些实施例中,密集地图的创建可以独立于稀疏地图的创建。例如,可以在ar系统内的单独的处理管线中执行密集地图和稀疏地图的创建。例如,分开的处理可以使得能够以不同的速率来执行不同类型的地图的生成或处理。例如,稀疏地图的刷新速度可能比密集地图的刷新速度快。然而,在一些实施例中,即使在不同的管线中执行,密集地图和稀疏地图的处理也可能是相关的。例如,在稀疏地图中显露的物理世界的变化可以触发密集地图的更新,反之亦然。此外,即使是独立创建的,这些地图也可以一起使用。例如,从稀疏地图导出的坐标系可以用于定义密集地图中的对象的位置和/或取向。
178.稀疏地图和/或密集地图可以被持久保存以由同一设备重用和/或与其他设备共享。这样的持久性可以通过将信息存储在云端来实现。ar设备可以将跟踪地图发送到云端,从而例如与从先前存储在云端的持久地图中选择的环境地图合并。在一些实施例中,可以将所选的持久地图从云端发送到ar设备以进行合并。在一些实施例中,持久地图可以相对于一个或多个持久坐标框架取向。这样的地图可以用作规范地图,因为它们可以被多个设备中的任何一个使用。在一些实施例中,可通行世界的模型可以包括一个或多个规范地图或由一个或多个规范地图创建。即使基于设备本地的坐标框架执行一些操作,设备也可以通过确定设备本地的坐标框架与规范地图之间的变换来使用规范地图。
179.规范地图可以起源于跟踪地图(tm)(例如,图31a中的tm 1102),其可以被提升为规范地图。可以持久保存规范地图,以便访问规范地图的设备一旦确定其本地坐标系与规范地图的坐标系之间的变换,就可以使用规范地图中的信息来确定规范地图中表示的对象在设备周围的物理世界中的位置。在一些实施例中,tm可以是由xr设备创建的头部姿势稀疏地图。在一些实施例中,当xr设备将一个或多个tm发送到云服务器以与由xr设备在不同时间或由其他xr设备捕获的附加tm合并时,可以创建规范地图。
180.规范地图或其他地图可以提供由被处理以创建相应地图的数据所表示的物理世界的各个部分有关的信息。例如,跟踪地图可以提供由点表示的对应物理世界中的物理对象的平面图。在一些实施例中,地图点可以表示可以包括多个特征的物理对象的特征。例如,桌子的每个角可以是由地图上的点所表示的特征。这些特征可以通过处理图像导出,例如图像可以用增强现实系统中的可穿戴设备的传感器来获取。例如,可以通过以下方式来导出特征:通过处理传感器输出的图像帧,以基于图像中的大梯度或其他适当的标准来识别特征。进一步的处理可能会限制每个帧中的特征数量。例如,处理可以选择可能表示持久对象的特征。一种或多种试探法可以应用于该选择。
181.跟踪地图可以包括关于由设备收集的点的数据。对于具有跟踪地图中所包括的数据点的每个图像帧,可以存储姿势。姿势可以表示从其捕获图像帧的取向,使得每个图像帧内的特征点可以在空间上相关。该姿势可以通过定位信息来确定,定位信息诸如可通过可穿戴设备上的传感器(诸如imu传感器)导出。替代地或附加地,可以通过将图像帧匹配到描
绘物理世界的重叠部分的其他图像帧来确定姿势。通过寻找这种位置相关性,这可以通过匹配两个帧中的特征点的子集来实现,可以计算两个帧之间的相对姿势。相对姿势对于跟踪地图可能就充足了,因为该地图可以相对于基于在开始构建跟踪地图时设备的初始姿势而建立的该设备本地的坐标系。
182.并非设备收集的所有特征点和图像帧都可以保留为跟踪地图的一部分,因为用传感器收集的许多信息很可能是多余的。相反,仅某些帧可以添加到地图。可以基于一个或多个标准来选择那些帧,例如与地图中已经存在的图像帧的重叠程度,它们包含的新特征的数量、或该帧中特征的质量度量。未添加到跟踪地图的图像帧可以被丢弃或可用于修改特征的位置。作为另一替代方案,可以保留表示为一组特征的所有或大多数图像帧,但是可以将这些帧的子集指定为关键帧,以用于进一步处理。
183.关键帧可以被处理以产生关键装配(keyrig)。关键帧可以被处理以产生特征点的三维集合并被保存为关键装配。例如,这种处理可能需要比较从两个相机同时得到的图像帧来立体确定特征点的3d位置。元数据可以与这些关键帧和/或关键装配(例如,姿势)相关联。
184.环境地图可以取决于例如环境地图的存储位置而具有多种格式中的任何一种,该环境地图包括例如ar设备的本地存储和远程存储。例如,在内存有限的可穿戴设备上,远程存储中的地图可比本地存储中的地图具有更高的分辨率。为了将更高分辨率的地图从远程存储发送到本地存储,可以对地图进行下采样或以其它方式转换为适当的格式,例如通过减少存储在地图中的物理世界的每个区域的姿势数量和/或为每个姿势存储的特征点的数量。在一些实施例中,来自远程存储的高分辨率地图的切片或部分可以被发送到本地存储,其中切片或部分未被下采样。
185.当创建新的跟踪地图时,可以更新环境地图的数据库。为了确定数据库中可能非常大量的环境地图中的哪一个环境地图将被更新,更新可以包括有效地选择数据库中存储的与新的跟踪地图有关的一个或多个环境地图。可以通过相关性对所选的一个或多个环境地图进行排名,并且可以选择最高排名的地图中的一个或多个地图以进行处理,以将较高排名的所选环境地图与新的跟踪地图合并以创建一个或多个更新的环境地图。当新的跟踪地图表示没有预先存在的环境地图要更新的物理世界的一部分时,该跟踪地图可以作为新的环境地图存储在数据库中。
186.h.持久坐标框架
187.发明人已经认识并理解到,可以通过持久坐标框架(pcf)提供空间持久性。可以基于一个或多个点来定义pcf,这些点表示在物理世界中识别的特征(例如,拐角、边缘)。可以选择特征,使得它们从xr系统的一个用户实例到另一个用户实例看起来是相同的。
188.此外,当相对于仅基于跟踪地图的本地地图进行渲染时,使得计算的跟踪路径(例如,相机轨迹)偏离实际跟踪路径的跟踪期间的漂移会导致虚拟内容的位置出现错位。当xr设备随着时间收集场景的更多信息时,可以细化空间的跟踪地图以校正漂移。但是,如果在地图细化之前将虚拟内容放置在真实对象上并相对于从跟踪地图导出的设备的世界坐标框架进行保存,则虚拟内容可能会出现位移,就像真实对象在地图细化过程中已移动一样。可以根据地图细化来更新pcf,因为pcf是基于特征定义的,并且随着特征在地图细化期间移动而被更新。
189.pcf可以包括六个自由度相,对于地图坐标系的平移和旋转。pcf可以存储在本地存储介质和/或远程存储介质中。取决于例如存储位置,可以相对于地图坐标系计算pcf的平移和旋转。例如,设备本地使用的pcf可能相对于设备的世界坐标框架具有平移和旋转。云端的pcf可能具有相对于规范地图的规范坐标框架的平移和旋转。
190.pcf可以提供对物理世界的稀疏表示,提供的关于物理世界的信息少于所有可用信息,使得它们可以被有效地处理和转移。用于处理持久空间信息的技术可包括基于跨越一个或多个会话的真实空间中的一个或多个坐标系来创建动态地图,在稀疏地图上生成持久坐标框架(pcf),其可通过例如应用编程接口(api)暴露给xr应用。
191.图14是示出根据一些实施例的持久坐标框架(pcf)的创建以及xr内容到pcf的附加的框图。每个框可以表示存储在计算机存储器中的数字信息。在应用1180的情况下,数据可以表示计算机可执行指令。在虚拟内容1170的情况下,数字信息可以定义例如由应用1180指定的虚拟对象。在其他框的情况下,数字信息可以表征物理世界的某些方面。
192.在所示的实施例中,一个或多个pcf根据可穿戴设备上的传感器捕获的图像来创建。在图14的实施例中,传感器是视觉图像相机。这些相机可以是与用于形成跟踪地图的相机相同的相机。因此,由图14建议的一些处理可以作为更新跟踪地图的一部分而被执行。但是,图14示出了除了跟踪地图之外还生成了提供持久性的信息。
193.为了导出3d pcf,一起处理来自以能够进行立体图像分析的配置被安装到可穿戴设备的两个相机的两个图像1110。图14示出了图像1和图像2,图像1和图像2中的每个图像均来自相机之一。为了简单起见,示出了来自每个相机的单个图像。然而,每个相机可以输出图像帧的流,并且可以针对流中的多个图像帧执行图14的处理。
194.因此,图像1和图像2可以分别是图像帧序列中的一个帧。可以对序列中的连续图像帧重复图14所示的处理,直到包含特征点的图像帧提供合适的图像以根据该图像形成持久的空间信息。替代地或附加地,在用户移动使得用户不再充足靠近先前(previous)识别的pcf以可靠地使用该pcf来确定相对于物理世界的位置时,可以重复图14的处理。例如,xr系统可以为用户保持当前的pcf。当该距离超过阈值时,系统可以切换到更靠近用户的新的当前pcf,其可以根据图14的过程使用在用户当前位置获取的图像帧来生成。
195.即使当生成单个pcf时,也可以处理图像帧的流以识别描述物理世界中内容的图像帧,该内容可能是稳定的,并且可以由图像帧中描绘的物理世界区域附近的设备容易地识别出来。在图14的实施例中,该处理开始于图像中的特征1120的识别。例如,可以通过寻找图像中超过阈值或其他特征的梯度的位置来识别特征,该特征可以例如对应于对象的拐角。在所示的实施例中,特征是点,但是可以替代地或附加地使用其他可识别的特征,例如边缘。
196.在所示的实施例中,选择固定数量n的特征1120进行进一步处理。可以基于一个或多个标准,例如,梯度的大小或与其他特征点的接近度,来选择那些特征点。替代地或附加地,特征点可以例如基于暗示特征点是持久的特性来试探性地选择。例如,可以基于可能对应于窗户或门或大件家具的拐角的特征点的特性来定义试探法。这种试探法可能会考虑到特征点本身及其周围的事物。作为特定示例,每个图像的特征点的数量可以在100与500之间或150与250之间,例如200。
197.不管选择的特征点的数量如何,都可以为特征点计算描述符1130。在该示例中,为
每个选择的特征点计算描述符,但是可以为特征点的组或特征点的子集或图像内的所有特征计算描述符。描述符表征特征点,以便在物理世界中表示相同对象的特征点被分配相似的描述符。描述符可以实现两个帧的对齐,例如在一个地图相对于另一个地图定位时可能会发生。代替搜索使两个图像的特征点之间的距离最小化的帧的相对取向,可以通过识别具有相似的描述符的特征点来进行两个帧的初始对齐。图像帧的对齐可以基于具有相似描述符的对齐点,与计算图像中所有特征点的对齐相比,这可能需要更少的处理。
198.描述符可以被计算为特征点到描述符的映射,或者在一些实施例中,计算为特征点周围的图像的块(patch)到描述符的映射。描述符可以是数值量。美国专利申请16/190,948描述了特征点的计算描述符,并且通过引用将其全部内容结合在此。
199.在图14的示例中,为每个图像帧中的每个特征点计算描述符1130。基于描述符和/或特征点和/或图像本身,图像帧可以被识别为关键帧1140。在所示的实施例中,关键帧是满足某一标准的图像帧,然后选择该图像帧用于进一步处理。例如,在制作跟踪地图时,可以选择将有意义的信息添加到地图的图像帧作为整合到地图中的关键帧。另一方面,可以丢弃基本上与已经将图像帧整合到地图中的区域重叠的图像帧,使得它们不会成为关键帧。替代地或附加地,可以基于图像帧中的特征点的数量和/或类型来选择关键帧。在图14的实施例中,被选择以包括在跟踪地图中的关键帧1150也可以被视为用于确定pcf的关键帧,但是可以使用选择用于生成pcf的关键帧的不同或附加标准。
200.尽管图14示出了关键帧被用于进一步处理,但是从图像获取的信息可以以其他形式被处理。例如,可以替代地或附加地处理诸如在关键装配中的特征点。而且,尽管关键帧被描述为是从单个图像帧导出的,但是关键帧与所获取的图像帧之间不必存在一对一的关系。例如,关键帧例如可以获取自多个图像帧,诸如通过将图像帧拼接或者聚合在一起,使得在关键帧中仅保留出现在多个图像中的特征。
201.关键帧可以包括图像信息和/或与图像信息相关联的元数据。在一些实施例中,可以将由相机44、46(图9)捕获的图像计算为一个或多个关键帧(例如,关键帧1、2)。在一些实施例中,关键帧可以包括相机姿势。在一些实施例中,关键帧可以包括以相机姿势捕获的一个或多个相机图像。在一些实施例中,xr系统可以确定以相机姿势捕获的相机图像的一部分是无用的,并且因此不将该部分包括在关键帧中。因此,使用关键帧将新图像与场景的早期认知对齐可以减少xr系统计算资源的使用。在一些实施例中,关键帧可以在具有方向/角度的位置处包括图像和/或图像数据。在一些实施例中,关键帧可以包括可以观察到一个或多个地图点的位置和方向。在一些实施例中,关键帧可以包括具有id的坐标帧。美国专利申请第15/877,359号描述了关键帧,在此通过引用将其全部内容并入本文。
202.可以选择一些或全部关键帧1140进行进一步处理,例如为关键帧生成持久姿势1150。该选择可以基于图像帧中所有特征点或其子集的特性。这些特性可以根据对描述符、特征和/或图像帧本身进行处理来确定。作为特定示例,选择可以基于被识别为可能与持久对象有关的特征点的聚类。
203.每个关键帧与获取该关键帧的相机的姿势相关联。对于选择用于处理成持久姿势的关键帧,该姿势信息可以与关于关键帧的其他元数据一起保存,例如在获取时和/或在获取位置处的wifi指纹和/或gps坐标。
204.持久姿势是设备可以用来相对于先前获取的有关物理世界的信息进行自身定向
的信息源。例如,如果从中创建了持久姿势的关键帧被合并到物理世界的地图中,则设备可以使用与持久姿势相关联的关键帧中充足数量的特征点,将自身相对于该持久姿势进行定向。设备可以将其对周围环境拍摄的当前图像与持久姿势对齐。该对齐可以基于将当前图像与引起持久姿势的图像1110、特征1120和/或描述符1130、或该图像或那些特征或描述符的任何子集进行匹配。在一些实施例中,与持久姿势匹配的当前图像帧可以是已合并到设备的跟踪地图中的另一个关键帧。
205.关于持久姿势的信息可以以促进在多个应用之间共享的格式存储,该多个应用可以在相同或不同的设备上执行。在图14的示例中,一些或所有的持久姿势可以被反映为持久坐标框架(pcf)1160。像持久姿势一样,pcf可以与地图相关联并且可以包括设备可以用来确定其相对于该pcf的取向的一组特征或其他信息。pcf可以包括定义相对于其地图的原点的变换的变换,使得通过将其位置与pcf相关联,设备可以确定其相对于地图中所反映的物理世界中的任何对象的位置。
206.由于pcf提供了一种用于确定相对于物理对象的位置的机制,因此应用(例如应用1180)可以定义虚拟对象相对于一个或多个pcf的位置,这些位置用作虚拟内容1170的锚点。例如,图14示出了app 1已经将其虚拟内容2与pcf 1,2相关联。同样,应用2已将其虚拟内容3与pcf 1,2相关联。还示出了app 1将其虚拟内容1与pcf 4,5相关联,并且示出了app 2将其虚拟内容4与pcf 3相关联。在一些实施例中,pcf 3可以基于图像3(未示出),并且pcf 4,5可以基于图像4和图像5(未显示),类似于pcf 1,2如何基于图像1和图像2。当渲染此虚拟内容时,设备可以应用一个或多个变换来计算信息,例如虚拟内容相对于设备的显示的位置和/或物理对象相对于虚拟内容的所需位置的位置。使用pcf作为参考可以简化此类计算。
207.在一些实施例中,持久姿势可以是具有一个或多个相关联的关键帧的坐标位置和/或方向。在一些实施例中,可以在用户已经行进一定距离(例如三米)之后自动创建持久姿势。在一些实施例中,持久姿势可以在定位期间用作参考点。在一些实施例中,可以将持久姿势存储在可通行世界中(例如,可通行世界模块538)。
208.在一些实施例中,可以基于相邻pcf之间允许的预定距离来确定新的pcf。在一些实施例中,当用户行进预定距离(例如,五米)时,可以将一个或多个持久姿势计算到pcf中。在一些实施例中,pcf可以与例如可通行世界中的一个或多个世界坐标框架和/或规范坐标框架相关联。在一些实施例中,取决于例如安全设置,pcf可以被存储在本地数据库和/或远程数据库中。
209.图15示出了根据一些实施例的建立和使用持久坐标框架的方法4700。方法4700可以开始于使用xr设备的一个或多个传感器捕获(动作4702)关于场景的图像(例如,图14中的图像1和图像2)。可以使用多个相机,并且一个相机可以生成多个图像,例如以流的形式。
210.方法4700可以包括从捕获的图像提取(4704)关注点(例如,地图点,图14中的特征1120),生成(动作4706)所提取的关注点的描述符(例如,图14中的描述符1130),并基于描述符生成(动作4708)关键帧(例如,关键帧1140)。在一些实施例中,该方法可以比较关键帧中的关注点,并形成共享预定量的关注点的关键帧对。该方法可以使用各个关键帧对来重建物理世界的一部分。可以将物理世界的映射部分保存为3d特征(例如,关键装配)。在一些实施例中,关键帧对中的被选择部分可以用于构建3d特征。在一些实施例中,可以选择性地
保存映射的结果。未用于构建3d特征的关键帧可以通过姿势与3d特征关联,例如,利用关键帧的姿势之间的协方差矩阵表示关键帧之间的距离。在一些实施例中,可以选择关键帧对来构建3d特征,使得构建的3d特征的每个之间的距离在预定距离内,这可以被确定以平衡所需的计算量和结果模型的准确度水平。这样的方法能够为xr系统提供具有适合于进行高效且准确计算的数据量的物理世界的模型。在一些实施例中,两个图像的协方差矩阵可以包括两个图像的姿势(例如,六个自由度)之间的协方差。
211.方法4700可以包括基于关键帧生成(动作4710)持久姿势。在一些实施例中,该方法可以包括基于从关键帧对中重建的3d特征来生成持久姿势。在一些实施例中,持久姿势可以被附接到3d特征。在一些实施例中,持久姿势可以包括用于构建3d特征的关键帧的姿势。在一些实施例中,持久姿势可以包括用于构建3d特征的关键帧的平均姿势。在一些实施例中,可以生成持久姿势,使得相邻的持久姿势之间的距离在预定值内,例如在一米至五米的范围内,介于两者之间的任何值或任何其他适当的值。在一些实施例中,相邻的持久姿势之间的距离可以由相邻的持久姿势的协方差矩阵表示。
212.方法4700可以包括基于持久姿势来生成(动作4712)pcf。在一些实施例中,可以将pcf附接到3d特征。在一些实施例中,pcf可以与一个或多个持久姿势相关联。在一些实施例中,pcf可以包括相关联的持久姿势之一的姿势。在一些实施例中,pcf可以包括相关联的持久姿势的姿势的平均姿势。在一些实施例中,可以生成pcf,以使得相邻pcf之间的距离在预定值内,例如在三米到十米的范围内,介于两者的任何值或任何其他适当的值。在一些实施例中,相邻pcf之间的距离可以由相邻pcf的协方差矩阵表示。在一些实施例中,pcf可以经由例如应用编程接口(api)暴露给xr应用,使得xr应用可以通过pcf访问物理世界的模型而无需访问模型本身。
213.方法4700可以包括将要由xr设备显示的虚拟对象的图像数据与pcf中的至少一个相关联(动作4714)。在一些实施例中,该方法可以包括计算虚拟对象相对于相关联的pcf的平移和取向。应当理解,没有必要将虚拟对象与由放置虚拟对象的设备生成的pcf相关联。例如,设备可以获取云端的规范地图中的被保存的pcf,并将虚拟对象与获取到的pcf相关联。应当理解,在随时间而调整pcf时,虚拟对象可以与相关联的pcf一起移动。
214.图16示出了根据一些实施例的第一xr设备12.1以及第二xr设备12.2和服务器20的视觉数据和算法。图16中所示的部件可以操作以执行与如本文中所描述的生成、更新和/或使用空间信息(诸如,持久姿势、持久坐标框架、跟踪地图或规范地图)相关联的一些或全部操作。尽管未示出,但是第一xr设备12.1可以被配置为与第二xr设备12.2相同。服务器20可以具有地图存储例程118、规范地图120、地图发送器122和地图合并算法124。
215.可以与第一xr设备12.1处于相同场景中的第二xr设备12.2可以包括永久坐标框架(pcf)集成单元1300、生成可以用于渲染虚拟对象的图像数据68的应用1302、以及框架嵌入生成器308。在一些实施例中,可以将地图下载系统126、pcf识别系统128、地图2、定位模块130、规范地图合并器132、规范地图133和地图发布者136集合为可通行世界单元1304。pcf集成单元1300可以连接到可通行世界单元1304和第二xr设备12.2的其它部件,以允许pcf的取得、生成、使用、上传和下载。
216.包括pcf的地图可以在变化的世界中实现更多的持久性。在一些实施例中,定位包括例如图像的匹配特征的跟踪地图可以包括从由pcf构成的地图中选择表示持久内容的特
征,这使得能够进行快速匹配和/或定位。例如,在人们进出场景并且诸如门之类的对象相对于场景移动的世界中,需要更少的存储空间和传输速率,并且能够使用单独的pcf及其相互之间的关系(例如,pcf的集成星座)来映射场景。
217.在一些实施例中,pcf集成单元1300可以包括先前存储在第二xr设备12.2的存储单元上的数据存储中的pcf 1306、pcf跟踪器1308、持久姿势获取器1310、pcf检查器1312、pcf生成系统1314、坐标框架计算器1316、持久姿势计算器1318和包括跟踪地图和持久姿势变换器1320、持久姿势和pcf变换器1322以及pcf和图像数据变换器1324的三个变换器。
218.在一些实施例中,pcf跟踪器1308可以具有由应用1302可选择的打开提示和关闭提示。应用1302可以由第二xr设备12.2的处理器可执行,以例如显示虚拟内容。应用1302可以具有经由打开提示来打开pcf跟踪器1308的调用。当pcf跟踪器1308打开时,pcf跟踪器1308可以生成pcf。应用1302可以具有可以经由关闭提示来关闭pcf跟踪器1308的后续调用。当pcf跟踪器1308关闭时,pcf跟踪器1308终止pcf生成。
219.在一些实施例中,服务器20可包括先前已经与规范地图120相关联地保存的多个持久姿势1332和多个pcf 1330。地图发送器122可将规范地图120与持久姿势1332和/或pcf 1330一起发送到第二xr设备12.2。持久姿势1332和pcf 1330可以与规范地图133相关联地存储在第二xr设备12.2上。当地图2定位到规范地图133时,可以与地图2相关联地存储持久姿势1332和pcf 1330。
220.在一些实施例中,持久姿势获取器1310可以获取地图2的持久姿势。pcf检查器1312可以连接到持久姿势获取器1310。pcf检查器1312可以基于由持久姿势获取器1310取得的持久姿势从pcf 1306取得pcf。由pcf检查器1312取得的pcf可以形成初始组的pcf,该初始组的pcf用于基于pcf的图像显示。
221.在一些实施例中,应用1302可能需要生成附加pcf。例如,如果用户移动到之前未地图构建的区域,则应用1302可以打开pcf跟踪器1308。pcf生成系统1314可以连接到pcf跟踪器1308,并且随着地图2开始扩展而开始基于地图2生成pcf。由pcf生成系统1314生成的pcf可以形成第二组pcf,该第二组pcf可以用于基于pcf的图像显示。
222.坐标框架计算器1316可以连接到pcf检查器1312。在pcf检查器1312取得pcf之后,坐标框架计算器1316可以调用头部坐标框架96以确定第二xr设备12.2的头部姿势。坐标框架计算器1316还可调用持久姿势计算器1318。持久姿势计算器1318可直接或间接连接到帧嵌入生成器308。在一些实施例中,可以将图像/帧指定为与先前的关键帧相距阈值距离(例如3米)行进之后的关键帧。持久姿势计算器1318可以基于多个(例如,三个)关键帧生成持久姿势。在一些实施例中,持久姿势可以基本上是多个关键帧的坐标框架的平均值。
223.跟踪地图和持久姿势变换器1320可以连接到地图2和持久姿势计算器1318。跟踪地图和持久姿势变换器1320可以将地图2变换为持久姿势以确定相对于地图2的原点处的持久姿势。
224.持久姿势和pcf变换器1322可以连接到跟踪地图和持久姿势变换器1320,并进一步连接到pcf检查器1312和pcf生成系统1314。持久姿势和pcf变换器1322可以将(跟踪地图已经变换到的)持久姿势从pcf检查器1312和pcf生成系统1314变换为pcf,以确定相对于持久姿势的pcf。
225.pcf和图像数据变换器1324可以连接到持久姿势和pcf变换器1322以及数据通道
62。pcf和图像数据变换器1324将pcf变换为图像数据68。渲染引擎30可以连接到pcf和图像数据变换器1324以相对于pcf向用户显示图像数据68。
226.pcf集成单元1300可以将采用pcf生成系统1314生成的附加pcf存储在pcf 1306内。pcf 1306可以相对于持久姿势存储。当地图发布者136向服务器20发送地图2时,地图发布者136可以取得pcf 1306和与pcf 1306相关联的持久姿势,地图发布者136还向服务器20发送与地图2相关联的pcf和持久姿势。当服务器20的地图存储例程118存储地图2时,地图存储例程118还可以存储由第二观看设备12.2生成的持久姿势和pcf。地图合并算法124可以采用与规范地图120相关联并分别存储在持久姿势1332和pcf 1330内的地图2的持久姿势和pcf来创建规范地图120。
227.第一xr设备12.1可以包括与第二xr设备12.2的pcf集成单元1300相似的pcf集成单元。当地图发送器122向第一xr设备12.1发送规范地图120时,地图发送器122可以发送与规范地图120相关联并且源自第二xr设备12.2的持久姿势1332和pcf 1330。第一xr设备12.1可以将pcf和持久姿势存储在第一xr设备12.1的存储设备上的数据存储内。然后,第一xr设备12.1可以利用源自第二xr设备12.2的持久姿势和pcf以用于相对于pcf的图像显示。另外地或替代地,第一xr设备12.1可以以类似于如上所述的第二xr设备12.2的方式取得、生成、使用、上传和下载pcf和持久姿势。
228.在所示的示例中,第一xr设备12.1生成本地跟踪地图(以下称为“地图1”),并且地图存储例程118从第一xr设备12.1接收地图1。然后,地图存储例程118将地图1作为规范地图120存储在服务器20的存储设备上。
229.第二xr设备12.2包括地图下载系统126、锚点识别系统128、定位模块130、规范地图合并器132、本地内容定位系统134以及地图发布者136。
230.在使用中,地图发送器122将规范地图120发送到第二xr设备12.2,并且地图下载系统126从服务器20下载并存储规范地图120作为规范地图133。
231.锚点识别系统128连接到世界表面确定例程78。锚点识别系统128基于由世界表面确定例程78检测到的对象来识别锚点。锚点识别系统128使用锚点生成第二地图(地图2)。如循环138所示,锚点识别系统128继续识别锚点并继续更新地图2。基于由世界表面确定例程78提供的数据,将锚点的位置记录为三维数据。世界表面确定例程78从真实对象检测相机44接收图像并且从深度传感器135接收深度数据,以确定表面的位置以及它们与深度传感器135的相对距离。
232.定位模块130连接到规范地图133和地图2。定位模块130重复尝试将地图2定位到规范地图133。规范地图合并器132连接到规范地图133和地图2。当定位模块130将地图2定位到规范地图133时,规范地图合并器132将规范地图133合并到地图2的锚点中。然后,采用规范地图中包括的丢失数据来更新地图2。
233.本地内容定位系统134连接到地图2。本地内容定位系统134例如可以是用户可以在世界坐标框架内的特定位置定位本地内容的系统。然后,本地内容将自身附加到地图2的一个锚点。本地到世界坐标变换器104基于本地内容定位系统134的设置将本地坐标框架变换为世界坐标框架。已经参考图2描述了渲染引擎30、显示系统42和数据通道62的功能。
234.地图发布者136将地图2上传到服务器20。服务器20的地图存储例程118然后将地图2存储在服务器20的存储介质内。
235.地图合并算法124将地图2与规范地图120合并。当已经存储了多于两个的地图(例如,与物理世界的相同或相邻区域相关的三个或四个地图)时,地图合并算法124将所有地图合并到规范地图120中以渲染新规范地图120。然后,地图发送器122将新规范地图120发送到位于由新规范地图120表示的区域中的任何和所有设备12.1和12.2。当设备12.1和12.2将它们相应的地图定位到规范地图120时,规范地图120成为升级的地图。
236.图17图示了根据一些实施例的为场景的地图生成关键帧的示例。在所示示例中,针对房间左墙壁上的门生成了第一关键帧kf1。针对房间的地板、左墙壁和右墙壁相交的角落区域生成第二关键帧kf2。针对房间右墙壁上的窗户区域生成第三关键帧kf3。在墙壁的地板上,在地毯的远端区域生成第四关键帧kf4。针对地毯的最接近用户的区域生成第五关键帧kf5。
237.图18示出了根据一些实施例的为图17的地图生成持久姿势的示例。在一些实施例中,当设备测量行进的阈值距离时,和/或当应用请求新的持久姿势(pp)时,创建新的持久姿势。在一些实施例中,阈值距离可以是3米、5米、20米或任何其它合适的距离。选择较小的阈值距离(例如1m)可导致计算负荷的增加,因为与较大的阈值距离相比,可以创建和管理较大数量的pp。选择较大的阈值距离(例如40m)可导致增加的虚拟内容放置错误,因为将创建较少数量的pp,这将导致创建的较少pcf数量,意味着附加到pcf的虚拟内容可能是远离pcf相对较大的距离(例如30m),并且误差随着从pcf到虚拟内容的增加距离而增加。
238.在一些实施例中,可以在新会话开始时创建pp。该初始pp可以被认为是零,并且可以可视化为具有等于阈值距离的半径的圆的中心。当设备到达圆的周长,并且在一些实施例中,应用请求新的pp时,可以将新的pp放置在设备的当前位置(在阈值距离处)。在一些实施例中,如果设备能够在距设备新位置的阈值距离内找到现有的pp,则不会在阈值距离处创建新的pp。在一些实施例中,当创建新的pp时(例如,图14中的pp 1150),设备将一个或多个最接近的关键帧附加到pp。在一些实施例中,pp相对于关键帧的位置可以基于在创建pp时设备的位置。在一些实施例中,当设备行进阈值距离时将不会创建pp,除非应用请求pp。
239.在一些实施例中,当应用具有要显示给用户的虚拟内容时,应用可以从设备请求pcf。来自应用的pcf请求可触发pp请求,并且在设备行进阈值距离后将创建新的pp。图18示出第一永久姿势pp1,其可以具有通过例如计算关键帧与持久姿势之间的相对姿势附加的最接近的关键帧(例如,kf1、kf2和kf3)。图18还示出第二永久姿势pp2,其可以具有附加的最接近的关键帧(例如,kf4和kf5)。
240.图19示出了根据一些实施例的为图17的地图生成pcf的示例。在所示示例中,pcf 1可以包括pp1和pp2。如上所述,pcf可用于显示与pcf相关的图像数据。在一些实施例中,每个pcf可以具有另一个坐标框架(例如,世界坐标框架)中的坐标和pcf描述符,例如,唯一地识别pcf。在一些实施例中,可以基于与pcf相关联的帧中的特征的特征描述符来计算pcf描述符。在一些实施例中,可以组合pcf的各种星座以需要较少数据和较少数据传输的持久方式来表示现实世界。
241.图20a至20c是示出建立和使用持久坐标框架的示例的示意图。图20a示出具有尚未定位到规范地图的相应的本地跟踪地图4804a、4804b的两个用户4802a、4802b。各个用户的原点4806a、4806b由其相应区域中的坐标系(例如,世界坐标系)来描绘。每个跟踪地图的这些原点对于每个用户来说可能是本地的,因为这些原点取决于启动跟踪时他们各自设备
的取向。
242.当用户设备的传感器扫描环境时,该设备可以捕获如以上结合图14所描述的可以包含表示持久对象的特征的图像,使得那些图像可以被分类为关键帧,可以根据这些关键帧创建持久姿势。在该示例中,跟踪地图4804a包括持久姿势(pp)4808a;跟踪地图4804b包括pp 4808b。
243.同样如以上结合图14所述,一些pp可以被分类为pcf,这些pcf用于确定虚拟内容的取向以将其渲染给用户。图20b示出了相应的用户4802a、4802b所佩戴的xr设备可以基于pp 4808a、4808b来创建本地pcf 4810a、4810b。图20c示出了持久内容4812a、4812b(例如,虚拟内容)可以通过相应的xr设备附接到pcf 4810a,4810b。
244.在该示例中,虚拟内容可以具有虚拟内容坐标框架,该虚拟内容坐标框架可以由生成虚拟内容的应用使用,而不管应如何显示虚拟内容。例如,虚拟内容可以被指定为相对于虚拟内容坐标框架以特定位置和角度的表面,例如网格的三角形。为了将该虚拟内容渲染给用户,可以相对于要感知该虚拟内容的用户来确定那些表面的位置。
245.将虚拟内容附加到pcf可以简化确定虚拟内容相对于用户的位置时所涉及的计算。可以通过应用一系列变换来确定虚拟内容相对于用户的位置。这些变换中的一些可能会更改,并且可能会频繁更新。这些变换中的其他变换可能是稳定的,可能会频繁更新或根本不更新。无论如何,可以以相对较低的计算负担来应用变换,使得可以相对于用户频繁地更新虚拟内容的位置,从而为所渲染的虚拟内容提供逼真的外观。
246.在图20a至图20c的示例中,用户1的设备具有一个坐标系,该坐标系与通过变换rig1_t_w1定义地图原点的坐标系有关。用户2的设备具有类似的变换rig2_t_w2。这些变换可以表示为6个变换度,指定平移和旋转以将设备坐标系与地图坐标系对齐。在一些实施例中,变换可以表示为两个单独的变换,一个指定平移,另一个指定旋转。因此,应当理解,可以以简化计算或以其他方式提供优势的形式来表达变换。
247.跟踪地图的原点与由相应的用户设备识别出的pcf之间的变换表示为pcf1_t_w1和pcf2_t_w2。在此示例中,pcf和pp相同,因此相同的变换也表征了pp。
248.因此,可以通过这些变换的串行应用来计算用户设备相对于pcf的位置,例如rig1_t_pcf1=(rig1_t_w1)*(pcf1_t_w1)。
249.如图20c所示,通过obj1_t_pcf1的变换,虚拟内容相对于pcf进行定位。该变换可以由生成虚拟内容的应用来设置,该应用可以从世界重建系统接收描述相对于pcf的物理对象的信息。为了将虚拟内容渲染给用户,计算到用户设备的坐标系的变换,这可以通过变换obj1_t_w1=(obj1_t_pcf1)*(pcf1_t_w1)将虚拟内容坐标框架关联到跟踪地图的原点来计算。然后,该变换可以通过进一步的变换rig1_t_w1与用户的设备相关。
250.基于来自生成虚拟内容的应用的输出,虚拟内容的位置可以改变。当变化时,可以重新计算从源坐标系到目的地坐标系的端到端变换。另外,用户的位置和/或头部姿势可以随着用户移动而改变。结果,变换rig1_t_w1可以改变,取决于用户的位置或头部姿势的任何端到端变换也可以改变。
251.可以基于跟踪用户相对于物理世界中的静止对象的位置,随着用户的运动来更新变换rig1_t_w1。可以通过如上所述的处理图像序列的耳机定位部件或系统的其他部件来执行这种跟踪。可以通过确定用户相对于固定参考框架(例如pp)的姿势来进行这样的更
新。
252.在一些实施例中,由于pp被用作pcf,因此可以相对于最近的持久姿势或在该示例中为pcf来确定用户设备的位置和取向。可以通过在利用设备上的传感器捕获的当前图像中识别表征pp的特征点来做出这样的确定。使用诸如立体图像分析的图像处理技术,可以确定设备相对于那些特征点的位置。根据该数据,系统可以基于关系rig1_t_pcf1=(rig1_t_w1)*(pcf1_t_w1)计算与用户运动相关联的变换的变化。
253.系统可以以计算高效的顺序确定并应用变换。例如,可以通过跟踪用户姿势并定义虚拟内容相对于基于持久姿势而构建的pp或pcf的位置,来避免从产生rig1_t_pcf1的测量中计算rig1_t_w1的需要。这样,从虚拟内容的源坐标系到用户设备的目的地坐标系的变换可以基于根据表达式(rig1_t_pcf1)*(obj1_t_pcf1)的测量到的变换,其中第一变换由系统来测量,后一变换由指定虚拟内容进行渲染的应用提供。在其中虚拟内容相对于地图的原点定位的实施例中,端到端变换可以基于地图坐标与pcf坐标之间的进一步变换将虚拟对象坐标系与pcf坐标系相关。在虚拟内容相对于与针对其跟踪用户位置的pp或pcf不同的pp或pcf进行定位的实施例中,可以在两者之间进行变换。这样的变换可以是固定的,并且可以例如从两者都出现的地图中确定。
254.例如,可以在具有处理传感器数据以构建跟踪地图的部件的设备中实现基于变换的方法。作为该过程的一部分,这些部件可以识别可用作持久姿势的特征点,而这些持久姿势又可以变成pcf。这些部件可以限制针对地图生成的持久姿势的数量,以在持久姿势之间提供适当的间隔,同时允许用户无论物理环境中的位置如何都足够接近持久姿势位置,以准确计算用户的姿势,如以上结合图17至图19所示。随着距用户最近的持久姿势的更新,由于用户移动,对跟踪地图或其他的细化使得用于计算取决于pp(或pcf,如果正在使用)的位置的虚拟内容相对于用户的位置的任何变换都可以进行更新并存储以供使用,至少直到用户离开该持久姿势为止。尽管如此,通过计算和存储变换,每次更新虚拟内容的位置时的计算负担可以相对较低,从而可以以相对较低的等待时间来执行它。
255.图20a至图20c示出了相对于跟踪地图进行定位,并且每个设备具有其自己的跟踪地图。但是,可以相对于任何地图坐标系生成变换。xr系统的用户会话之间的内容持久性可以通过使用持久地图来实现。通过使用可以将多个用户设备定向到的地图,也可以实现用户的共享体验。
256.在下面更详细描述的一些实施例中,可以相对于规范地图中的坐标来指定虚拟内容的位置,规范地图的格式被设置为使得多个设备中的任何一个可以使用该地图。每个设备可能保持跟踪地图,并且可以确定用户的姿势相对于跟踪地图的变化。在此示例中,可以通过“定位”过程来确定跟踪地图与规范地图之间的变换,该过程可以通过将跟踪地图中的结构(诸如一个或多个持久姿势)匹配到规范地图的一个或多个结构(例如一个或多个pcf)来执行。
257.下面更详细地描述了以这种方式创建和使用规范地图的技术。
258.i.地图创建过程
259.如果用户之前没有与他们的当前环境交互或访问过他们的当前环境,之前没有扫描他们的当前环境,或者ar系统无法识别用户的环境,则用户可以创建他们的环境的地图。图21示出了地图创建过程2100的示例流程图。地图创建过程2100的示例可以包括诸如图
22a中所示的新用户地图创建流程2200或诸如图22b中所示的现有用户地图创建流程2201。地图创建过程2100可以包括但不限于启动框2110、扫描框2112、地图识别框2114、地图质量框2116、决策框2118、恢复内容框2120、保存地图框2122,以及进入景观(landscape)框2124。
260.在映射启动框2110,ar系统可以确定是否启动用户的环境的扫描或映射。例如,ar系统可以确定是否满足开始扫描环境的启动条件。在一些示例中,启动条件可以包括系统检测到用户移动到新的和/或不熟悉的位置、来自一个或多个传感器的输入、和/或用户输入。用户输入可以包括对一个或多个提示的肯定或否定响应。一个或多个提示可能会基于任意数量的ar系统条件而有所不同,例如用户是新用户还是现有用户,用户之前是否扫描过他们的环境以创建地图,或者用于启动提示的程序类型。
261.例如,如图22a所示,针对新用户的映射启动提示可以包括特定于新用户的一个或多个用户界面(如框2210、2212所示,标记为屏幕00到屏幕6)。例如,用户界面可以包括欢迎界面。欢迎界面可以包括提示用户扫描或继续扫描用户的环境的对话。在一些示例中,欢迎界面可以接收用户输入。ar系统可以基于该用户输入启动或不启动扫描。附加地或替代地,ar系统可以基于用户输入向用户呈现另一个提示。附加地或替代地,映射启动提示可以包括在框2212处的开始映射提示。开始映射提示可以包括与扫描或映射用户的环境的过程相关联的信息。附加地或替代地,开始映射提示可以包括开始映射或扫描用户的环境或跳过映射或扫描用户的环境的提示。ar系统可以接收响应提示的用户输入。ar系统可以基于该输入启动或不启动映射。
262.在另一示例中,如图22b所示,用于现有用户的映射启动提示可以包括与现有用户相关联的一个或多个用户界面(例如在框或屏幕2230、2232中所示,如标记为屏幕00到屏幕6)。例如,用户界面2230可以包括识别界面。识别界面可以包括提示用户选择先前的地图以将内容恢复到用户的环境的对话。附加地或替代地,界面2230可以包括用于跳过对地图的选择或生成新地图的提示。因此,界面可以基于用户输入启动或不启动映射、输入保存的地图、或将用户移动到另一个提示。附加地或替代地,映射启动提示可以包括单独的或地图选择提示的一部分的开始映射提示。开始映射提示可以包括为用户将在扫描过程中创建的地图选择名称的提示。然后,ar系统可以基于或使用该输入来启动映射或扫描。例如,用户可以选择地图是办公室、家庭、学校或其他位置,并且ar系统可以基于用户输入标记新创建的地图。
263.如果ar系统确定将启动映射,则系统可以继续进行到框2112以扫描或映射用户的环境。如果ar系统确定不会启动主动(active)映射,则系统可以在框2124进入ar景观。如图22a和图22b所示,ar景观可以包括应用或用户界面,如与增强现实内容相关联的框2224、2244所示。
264.附加地或替代地,ar系统可以被动地(passively)扫描或映射用户的环境。例如,在ar系统确定不会启动主动映射(或用户在完成之前退出主动映射)的情况下,ar系统可以在进入ar景观之后来映射或扫描用户的环境。因此,有利地,在ar景观中的会话结束之前,如果地图质量达到充足的阈值,则与用户的当前环境相关联的用户内容可以与该环境相关联地被检索,即使没有通过游戏化流或主动扫描过程进行主动映射。在将来识别出该环境的情况下,ar系统可能会在以后提示用户命名或标记该位置。但是,如果地图质量没有达到
充足的阈值,则ar系统可能不会保存或恢复内容以供以后使用。
265.在扫描块2112处,ar系统可以启动扫描过程,例如参考图28至图34c进一步详细描述或在图22a中的框2214、2216、2218、2220或图22b中的框2234、2236、2238、2240处所示的一个或多个过程。有利地,在扫描框2112处的扫描过程可以是具有游戏化元素以帮助引导用户在他们的环境中移动并在他们的空间中收集数据的过程。例如,如以下参考图28至图34c所述,ar系统可以在用户的环境周围生成和显示一个或多个图形(也称为路径点),并指导用户与图形交互,直到满足结束标准。如本文所用,路径点可指地图内的特定位置和/或地图内特定位置的图形(或其他指示)。在一些示例中,路径点可以包括在地图内标记特定位置和/或将用户引向路径点位置的图形。在用户与一个或多个图形交互期间,ar系统可以收集关于用户的环境的数据。
266.在一些示例中,ar系统可以在地图识别框2114检查用户的空间是否已知或被识别。ar系统可以在扫描块2112期间或之后执行该检查。例如,ar系统可以在框2112处执行扫描过程,并且ar系统可以在扫描过程期间每隔一段时间检查用户的环境是否与已知环境匹配(例如,ar系统可以将在用户当前环境中找到的一个或多个pcf与用户的保存地图中的一个或多个pcf匹配)。如果地图被ar系统识别,则ar系统可以在框2120恢复与识别的地图相关联的ar内容,然后在框2124进入风景。如果地图未被ar系统识别,则系统可以在框2116检查地图的质量。
267.在地图质量框2116处,ar系统可以检查基于在扫描框2112期间收集的数据(和/或与存储在虚拟世界地图中的数据相结合)生成的地图是否具有足够高的质量以在当前和/或未来使用期间提供优质的用户体验。质量标准可以是用于评估地图质量的任何合适的标准,例如关键帧的数量、pcf或与用户的环境中的网格相关联的其他数据。例如,ar系统可以确定是否已经找到或基于收集的数据生成了充足的pcf,以使用户的空间在未来的扫描中可识别。pcf的数量可以是合适的数量,例如用户的环境中的一个、两个、三个或五个pcf。然而,其他数量也是可能的。例如,特定环境所需的pcf的数量可以由ar系统动态确定,例如基于对收集的扫描数据和/或先前与环境相关联的地图数据的分析。一旦ar系统确定地图通过了质量阈值,ar系统就可以在框2122使用收集的数据保存地图。
268.在保存框2122,ar系统可以将地图保存到远程或本地存储器以供用户或第三方检索。附加地或替代地,系统可以提示用户输入与地图相关联的其他信息以作为元数据与地图一起存储,例如名称或地球物理位置。如图22a所示,系统可以在框2222显示界面以提示用户选择或输入地图位置。附加地或替代地,如图22b所示,ar系统可以在框2242处显示确认界面或消息,其向用户发信号通知已经创建或保存了新地图。
269.如果地图质量未能通过地图质量阈值或不足以提供优质的用户体验,则ar系统可以在决策框2118确定用户是否愿意继续扫描或映射用户的环境。例如,ar系统可以提示用户继续扫描或停止扫描过程。ar系统可以接收用户输入作为对提示的响应,并在框2112继续扫描环境或在框2124输入景观。
270.附加或替代地,ar系统可以在任何点停止地图创建过程2100并且在框2124进入景观。例如,用户可以在框2112在扫描过程期间输入退出或跳过命令。ar系统然后可以在框2112中止扫描过程或在框2124进入景观。
271.j.重定位过程
272.ar系统可以尝试将用户重定位或放置到保存的或以其他方式识别的空间中,以便在用户的环境中恢复增强现实内容(例如,从保存的世界地图)。图23a示出了示例重定位过程2300,将参考图23b中所示的示例ar图像来解释该示例重定位过程2300。重定位过程2300可以包括地图确定步骤2310、重定位检查2312、扫描框2314、重定位检查2316、决策框2318、内容恢复框2310、以及进入景观框2322。根据实施例,图23的方法可以包括更少或额外的框和/或这些框可以以不同于图示的顺序执行。
273.在地图确定块2310,ar系统可以确定要为用户恢复的地图。例如,ar系统可以自动确定与检测到的用户地理位置相关联的地图。在另一个示例中,如图23b中的方框2410所示,ar系统可以显示提示以供用户选择现有地图(和/或确认由ar系统自动选择的地图)。附加地或替代地,ar系统可以显示提示以供用户创建新地图或跳过扫描或映射过程。如果用户选择现有地图,ar系统可以尝试将用户重定位到可能包括所选地图的已知环境中并移动到框2312。如果用户选择创建新地图,则ar系统可以移动到地图创建过程,例如参考图21至图22b所描述的。如果用户选择跳过映射或扫描过程,则ar系统可以在框2322进入景观。附加地或替代地,如果用户选择跳过映射或扫描过程,则ar系统可以被动地收集关于用户的环境的数据并采用被动收集的数据来重定位。如图23b所示,ar景观可以包括与增强现实内容相关联的应用或用户界面,例如框2420所示的界面。在接收到跳过扫描过程的用户输入之后,ar系统可以启动与ar景观相关联的应用。
274.在重定位检查2312处,ar系统可以确定重定位是否已经发生在框2310所确定的地图中。ar系统可以通过例如确定在用户的环境中是否找到存储在已知环境中的至少一个pcf(在一些实现方式中,或者一些其他最小数量的pcf)来确定已经发生重定位。例如,已知环境可能具有一个或多个pcf。在使用ar系统的过程中,ar系统可以被动或主动地收集关于用户的环境的数据。收集的数据可以包括用户当前环境中的pcf。在框2312,ar系统可以确定用户当前环境中的任何pcf是否与已知环境中的那些相匹配。如果pcf匹配,则ar系统可以确定发生了重定位。如果pcf不匹配,则ar系统可以确定没有发生重定位。如果ar系统确定已经发生重定位,则ar系统可以在框2320恢复与识别的地图相关联的内容,然后在框2322进入景观。如果地图未被ar系统识别,则ar系统可以在框2314移动到扫描或映射环境。
275.在扫描框2314,ar系统可以启动扫描过程,例如参考图28至图34c描述的或在图24中的框2412、2414、2416所示的一个或多个过程。有利地,如上所述关于地图创建,在扫描框2314的扫描过程可以是具有游戏化元素的过程,以帮助引导用户在他们的环境中移动并在他们的空间中收集数据。例如,如以下参考图28至图34c所述,ar系统可以生成和显示用户的环境周围的一个或多个图形,并引导用户与路径点交互,直到满足结束标准。在用户与一个或多个图形交互期间,ar系统可以收集关于用户的环境的数据以构建用户的环境的地图。
276.在重定位检查2316,ar系统可以检查用户的空间是否已知或被识别。ar系统可以在扫描框2314期间或之后执行该检查。例如,ar系统可以在框2314执行扫描过程,并且ar系统可以在扫描过程期间每隔一段时间检查用户的环境是否与已知环境匹配,ar系统可以将在用户当前环境中找到的一个或多个pcf与所选地图或用户的另一保存地图中的一个或多个pcf进行匹配。然而,其他重定位方法也是可能的。如果地图被ar系统识别,则ar系统可以在框2320恢复与识别的地图相关联的ar内容,然后在框2322进入景观。如果地图未被ar系
统识别,则可以继续到框2318。
277.在决策框2318,ar系统可以确定是否继续扫描。例如,如果没有发生重定位,则ar系统可能需要更多数据来生成新地图或在用户的环境中找到一个或多个pcf。然而,ar系统可以利用超时、用户输入、或其他结束标准来停止扫描过程(例如,在框2314期间)。ar系统然后可以提示用户输入关于继续扫描用户的环境(例如,通过扫描过程2314)。如果ar系统确定由于例如用户输入或其他标准而应继续扫描,则ar系统可在框2314继续扫描。如果ar系统确定不应继续扫描,则ar系统可以在框2322进入景观。
278.附加地或替代地,ar系统可以在任何点停止地图创建过程2300的一个或多个方面,并在框2322进入景观。在一些示例中,ar系统可以响应于用户输入而停止地图创建过程2300的一个或多个方面。例如,用户可以在框2314在扫描过程期间输入退出或跳过命令。ar系统然后可以在框2314中止扫描过程或在框2322进入景观。
279.附加地或替代地,ar系统可以被动地扫描或映射用户的环境。例如,在ar系统没有成功将用户重定位到已知地图的情况下,ar系统可以在进入ar景观之后映射或扫描用户的环境。因此,有利地,如果用户没有找到已知环境并且用户当前环境的地图质量在ar景观中的会话结束之前达到充足的阈值,则ar系统可以提示用户将环境保存为新地图。
280.k.地图准许和存储
281.可以以多种方式存储由用户生成的地图以供一个或多个用户访问。例如,用户可以将地图存储在他们的设备上或外部存储器上(例如,远程服务器上的“云”存储)。当地图存储在他们的设备或云存储上时,用户可以设置用于访问地图的准许,使得只有有权访问云存储的授权用户才能访问地图内容并与之交互。在一些示例中,地图可以存储在用户设备上并且只能由生成地图的用户访问。在一些示例中,地图可以存储在用户设备上并且可由该用户设备的所有用户访问。在一些示例中,地图可以存储在外部存储器中(例如,本地联网设备或云存储中)。在一些示例中,所存储的地图可以只能由生成该地图的用户访问。在一些示例中,地图可以存储在外部存储器中(例如,本地联网设备或云存储中)。在一些示例中,具有访问该外部存储器的准许的用户可以访问所存储的地图。图24a示出了用于为用户生成的地图设置存储设置和访问准许的示例过程3400。
282.在框3402,ar系统可以确定地图准许。地图准许可以包括与访问和存储当前的、将要生成的或新生成的地图相关联的一个或多个特定于地图的用户设置。在一些示例中,特定于地图的用户设置可以包括用于存储地图数据的期望位置。期望位置可以包括仅设备存储、个人世界存储、共享世界存储、它们的某种组合、或用于地图数据的其他存储。仅设备存储可以包括地图的内部或设备上存储。仅设备存储可以将地图数据的访问限制为存储生成的地图的设备的用户。个人世界存储可以包括地图数据的外部或基于云的存储。个人世界存储可以将地图数据的访问限制为特定用户,例如生成地图的用户。共享世界存储可以包括地图数据的外部或基于云的存储。共享世界存储可以允许多个用户访问地图数据。
283.可以基于由ar系统、用户或第三方设置的授权来确定对共享世界数据的访问和/或可见性。地图数据,诸如可以根据用户设置存储的地图数据,可以包括与地图相关联的任何数量的信息,诸如地图点数据、pcf、环境网格数据、声学数据、照明数据、其他模型信息、识别的对象、等等,或它们的某种组合。在一些示例中,地图准许可以包括至少一部分地图数据的可见性和/或可交互性的某种组合。例如,地图准许可以包括地图数据对用户是可见
的、不可见的、可选择的、不可选择的、可交互的、不可交互的等,或其某种组合。
284.附加地或替代地,ar系统可以允许用户针对不同类型的地图数据来选择不同的地图存储位置。有利地,这可以允许用户基于感知的隐私和/或其他需要来个性化他们的地图共享。例如,用户可以选择将世界特征(诸如,pcf和/或一个或多个稀疏地图)存储在共享世界存储中,但可以仅在设备上存储世界模型(诸如,密集网格、照明、平面检测、或声学数据)。世界理解(诸如,对象识别和/或场景理解)可以是用户选择存储位置或设置的另一个选项。在一些示例中,世界理解可以默认存储在与世界特征相同的位置。在其他示例中,用户可以选择存储世界理解的位置。
285.在一些示例中,ar系统可以基于对用户的一个或多个提示来确定地图准许。例如,ar系统可以在用户界面内显示一个或多个提示以接收关于地图的一个或多个准许特征的用户输入。参考图24b-1、图24b-2和图24b-3,ar系统可以呈现关于存储和/或地图准许的一个或多个选项以确定与地图数据相关联的存储和/或地图准许。在一些示例中,用户可以基于地图分类观看和/或选择一个或多个选项。例如,可以向用户呈现在设备上、个人世界、或共享世界中存储世界特征和/或世界模型的选项。附加地或替代地,可以向用户呈现存储世界理解的选项。在一些示例中,世界理解可以默认存储在与世界模型相同的位置。在这种情况下,可以向用户呈现保存或不保存世界理解的选项。在一些示例中,世界理解可以存储在与世界模型不同的位置。在向用户呈现选项时,ar系统可以使选项可见且可选择、可见但不可选择、可见且已选择、或以其他方式。在选择了选项的情况下,ar系统可以指示选择。ar系统可以通过例如在选项旁边显示复选标记或通过选项的其他突出显示来指示选择。
286.如图24b-1所示,如果ar系统已经确定用户想要在设备上存储世界特征,则ar系统可以允许用户仅在设备上存储世界模型和/或可以不允许用户存储世界理解。然后用户可以选择这些选项的某种组合。例如,参考图24b-1,在第一选项配置中,世界特征可以存储在设备上,世界模型可以存储在设备上,并且世界理解可以不被存储。
287.如图24b-2所示,如果ar系统已经确定用户想要将世界特征存储在个人世界中,则ar系统基于世界模型的存储选项的选择,可以允许用户将世界模型存储在设备上或个人世界中,和/或可以不允许用户存储世界理解。然后用户可以选择这些选项的某种组合。例如,参考图24b-2,在第二选项配置中,世界特征可以存储在个人世界中,世界模型可以存储在设备上,并且可以不存储世界理解。在第三配置中,世界特征可以存储在个人世界中,世界模型可以存储在个人世界中,并且可以不存储世界理解。在第四配置中,世界特征可以存储在个人世界中,世界模型可以存储在设备上,并且世界理解可以存储在个人世界中。在第五配置中,世界特征可以存储在个人世界中,世界模型可以存储在个人世界中,并且世界理解可以存储在个人世界中。
288.如图24b-3所示,如果ar系统已确定用户想要将世界特征存储在共享世界中,则ar系统基于世界模型的存储选项的选择,可以允许用户将世界模型存储在设备上或共享世界中,和/或可以不允许用户存储世界理解。然后用户可以选择这些选项的某种组合。例如,参考图24b-3,在第六选项配置中,世界特征可以存储在共享世界中,世界模型可以存储在设备上,并且可以不存储世界理解。在第七配置中,世界特征可以存储在共享世界中,世界模型可以存储在共享世界中,并且可以不存储世界理解。在第八配置中,世界特征可以存储在共享世界中,世界模型可以存储在设备上,并且世界理解可以存储在共享世界中。在第九配
置中,世界特征可以存储在共享世界中,世界模型可以存储在共享世界中,并且世界理解可以存储在共享世界中。
289.虽然这里描述了地图数据和存储和/或准许的某些组合,但是地图数据的存储和/或准许的任何组合都是可能的。例如,地图数据可以分类为世界特征、世界模型或世界理解。
290.继续参考图24a,在框3404,ar系统可以确定是否启动用户的环境的扫描或映射。例如,ar系统可以确定是否满足启动条件以开始扫描环境。在一些示例中,启动条件可以包括系统检测到用户移动到新的和/或不熟悉的位置、来自一个或多个传感器的输入、和/或指示应该执行附加映射的用户输入。用户输入可以包括对一个或多个提示的肯定或否定响应。一个或多个提示可能会基于任意数量的ar系统条件而有所不同,例如用户是新用户还是现有用户,用户之前是否扫描过他们的环境以创建地图,或者用于启动提示的程序的类型。
291.在框3406,ar系统可以映射和/或扫描用户的环境。映射或扫描过程可以包括扫描过程,例如参考图28至图34c所描述的。在框3406的映射或扫描过程可以包括通过例如将在用户的环境中找到的一个或多个pcf与保存的地图中的一个或多个pcf匹配来识别地图的步骤。在框3406的映射或扫描过程可以包括检查基于收集的数据(和/或与存储在虚拟世界地图中的数据相结合)生成的地图是否具有足够高的质量以在当前和/或将来使用期间提供高质量的用户体验。质量标准可以是用于评估地图质量的任何合适的标准,例如关键帧的数量、pcf、或与用户的环境中的网格相关联的其他数据。例如,ar系统可以根据收集的数据确定是否已经找到或生成了充足的pcf,以使用户的空间在未来的扫描中可识别。
292.在框3408,ar系统可以根据地图准许来存储地图。例如,ar系统可以根据在框3402中确定的准许将地图保存到远程或本地存储器。附加地或替代地,系统可以提示用户输入与地图相关联的其他信息,以将其作为元数据与地图一起存储,例如名称或地球物理位置。系统可以在框2222(例如,图22a)显示界面以提示用户选择或输入地图位置。附加地或替代地,ar系统可以在框2242(例如,图22b)显示确认界面或消息,其向用户发出信号表明已经创建或保存了新地图。
293.在框3410,ar系统可以进入景观。例如,ar系统可以允许用户访问与共享地图相关联的内容。该应用可以允许用户与其他用户协作体验增强现实内容。
294.l.示例地图交互
295.1.本地地图交互
296.在一些示例中,用户可以与私人或本地保存的地图交互。例如,用户可以保存私人住宅或办公室地图以供用户将来使用。图25a至图25h说明了与本地地图的示例用户交互,包括本地重定位和地图创建。
297.图25a示出了重定位到所选地图的示例。例如,用户可以选择或命名地图,例如“家”,以允许定位和/或未来重定位到地图中。例如,该过程可能发生在图23的框2310期间。ar系统可以通过主动或被动收集用户的环境中的数据来主动或被动地找到pcf。然后,ar系统可以将那些找到的pcf与所选地图进行匹配,以将用户重定位到所选地图中。
298.图25b示出了将未选择的地图重定位到保存的地图的示例。例如,当用户移动到新环境时(例如当用户进入用户家中的另一个房间时),ar系统可以自动扫描pcf。用户可以拒
绝或不选择要定位到的地图。ar系统可以通过主动或被动收集用户的环境中的数据来主动或被动地找到pcf。然后,ar系统可以将那些找到的pcf与保存的或以其他方式已知的地图中的pcf进行匹配,以将用户重定位到保存的或以其他方式已知的地图中。
299.图25c示出了具有所选地图的示例重定位和失败重定位到所选地图中。例如,用户可以选择或命名地图,例如“家”,以定位到所选地图。ar系统可以通过主动或被动收集用户的环境中的数据来主动或被动地找到pcf。ar系统可能找不到收集的pcf与保存或选择的地图中的pcf的匹配。然后,ar系统可以将pcf保存为具有相同或不同名称的第二地图,或者将pcf保存为所选或保存的地图的未连接部分。在一些示例中,ar系统的进一步数据收集可以导致随后成功地重定位到所选地图中,如图25d中所示。
300.在一些实施方式中,ar系统可以尝试同时将用户重定位到多个地图中。因此,即使用户在重定位阶段选择了地图(例如,“家”)(或者如果用户没有选择地图),ar系统也可以由于尝试重定位可能与用户当前位置相关联的多个房间而识别与不同房间(例如,“办公室”)相关联的内容。然后,ar系统可以通知用户他们正在被重定位到另一个房间(例如,“欢迎来到您的办公室”)。
301.图25d示出了在重定位失败之后成功重定位到所选地图的示例。例如,ar系统可以在不同地图的大致相同位置来保存、生成地图或以其他方式与地图交互。在一些示例中,ar系统可以连接两个地图,有效地扩展地图以包含来自两个地图的数据。ar系统可以通过定位到第一地图然后从用户的环境中的第二地图确定pcf的存在来连接地图。ar系统可以在本地化地图中寻找pcf,以便合并两个地图,例如,ar系统最初无法定位到所选地图中。在这种情况下,ar系统可以将创建的地图保存为所选地图的版本,以供以后定位或扩展所选地图。例如,如图25c所示,用户可以选择“家”地图。ar系统可能无法将用户重定位到之前保存的“家”地图中。因此,ar系统可能会将新创建的地图保存为“家”的版本。在扫描了更多用户环境或在用户的环境中找到来自原始版本的“家”的pcf之后,ar系统可以随后将原始版本的“家”与新创建版本的“家”连接。
302.有利地,合并地图可以允许ar系统定位到大地图或环境中。例如,ar系统可能无法从命名地图中找到pcf以重定位到命名地图,但仍使用命名地图标记找到的pcf,以便系统可以在命名地图上构建而不生成新地点。
303.图25e示出了成功重定位的另一示例。例如,用户可以选择地图进行重定位。在重定位期间扫描用户的环境时,ar系统可能会找到用于第二地图的pcf。然后,ar系统可以连接地图。ar系统可以在本地化地图中查找pcf,以便连接两个地图,例如,ar系统最初无法定位到所选地图(如图25d所示)或ar系统找到与第二地图相关联的pcf同时扫描不同的所选地图。
304.图25f示出了具有所选地图和添加的pcf的示例重定位。例如,在重定位过程期间,例如图23和图24中所描述的,ar系统可以识别先前未保存在所选地图中的一个或多个pcf。在一些示例中,ar系统可以将一个或多个识别的pcf添加或保存到所选地图中。
305.图25g示出了使用新pcf的示例地图创建。例如,当用户决定跳过扫描或不选择地图进行重定位时,ar系统可以被动地确定用户的环境中的pcf。在一些示例中,ar系统可以将找到的pcf保存到未命名或未标记的地图中。如图25h所示,在用户的环境的后续扫描期间,未命名或未标记的地图可以与已命名的地图合并或连接。
306.2.外部存储的地图交互
307.在一些示例中,用户可能希望与用户未创建的地图交互。例如,可能会邀请或要求用户加入由第三方或ar系统的其他用户创建的外部存储地图。在另一个示例中,用户可能希望与公共可用地图交互,例如公共或半公共环境中的地图。在一些示例中,一个或多个用户可以定位到外部存储的地图中。当一个或多个用户定位到外部存储的地图中时,用户可能能够与地图的虚拟元素进行交互。例如,一个用户对虚拟对象的改变可能被定位在地图中的另一用户感知。例如,两个用户可能能够在共享的虚拟国际象棋游戏中移动虚拟棋子。在另一示例中,聊天会话中的两个用户可能能够在一个用户的环境中显示或共享虚拟内容,这些虚拟内容能够由共享环境中的其他用户观看。图26a示出了到共享地图中的示例定位过程3300的流程图。图26b和图26c图示了用于将用户定位到共享地图中的示例图形用户界面。有利地,下面描述的过程可以允许用户访问与用户尚未映射或创建的空间相关联的共享地图或ar内容。
308.参考图26a,在框3302,ar系统可以接收、识别、传输或生成加入共享会话或定位到外部存储的地图的邀请。例如,用户可以被第二用户邀请加入共享会话。共享会话可以包括多个用户与可以与多个用户中的两个或更多个用户共享或以其他方式相关联的虚拟内容交互的情况。在一些示例中,用户或多个用户可以被提示或以其他方式决定定位到地图中。有利地,定位到共享地图中可以允许用户访问与地图相关联的信息或通过可能与地图相关联的内容在共享会话内更好地交互。该地图可以是存储在外部存储系统或云中的地图。邀请可以包括加入地图或定位到地图的提示。例如,一个或多个用户可以利用单个现实世界空间。第一用户可以邀请第二用户访问两个用户当前占据的真实世界空间的地图,以使得用户可以访问与该地图相关联的虚拟内容。在另一示例中,用户可以接收ar系统的邀请以定位到ar系统识别的地图中。例如,用户可以进入公共空间,例如剧院或博物馆。ar系统可以将公共空间识别为与云存储中的地图匹配。然后,ar系统可以邀请或提示用户定位、加入或同步到地图中。在一些示例中,ar系统可以接收或发送多于一个地图邀请。例如,如果一个以上的用户已经映射了空间并且邀请用户定位到地图中,则ar系统可以发送一个以上的邀请或定位到其中的地图的选择。
309.在框3304,ar系统可以确定用户是否已经接受来自框3302的加入地图的邀请。例如,用户可以向ar系统提供与地图邀请相关联的输入。该输入可以包括对地图邀请的接受、拒绝或其他响应。如果用户提供接受,则ar系统可以继续在框3306确定用户授权或在框3308扫描环境。如果用户提供拒绝,则ar系统可以继续到框3316以进入景观。
310.作为框3302或3304的补充或替代,用户可以进入框3306以基于用户输入或ar系统识别的条件来扫描环境。例如,用户可以向ar系统提供输入以访问地图。用户输入可以包括通过例如扫描用户的环境以将信息添加到所指示的地图来改进诸如个人世界地图或其他地图的地图的指示。在另一示例中,用户输入可以包括定位到地图中的指示。附加地或替代地,ar系统可以开始扫描用户的环境以定位到地图中,而无需用户直接输入。例如,ar系统可以识别用户处于包含地图的地理位置。ar系统可以启动用户的环境的映射或扫描,以尝试定位到该地图,而无需等待用户输入。
311.在框3306,ar系统可以确定用户是否具有访问地图的授权。例如,如上面参考图24所讨论的,可以存储具有一组准许的地图。准许可以帮助指示用户是否可以访问地图。在地
图的情况下,准许可以包括用户是否是用于访问和/或更新地图的授权用户。用户的授权状态可以包括当前授权用户或其他授权源是否已授权用户访问或编辑地图。在一些示例中,地图可以是存储在用户设备外部但对用户而言是私人的地图,使得只有生成该地图的用户可以访问该地图。在另一示例中,地图可以是公开的,使得有权访问存储地图的云存储的所有用户都可以访问该地图。在一些示例中,可能存在层级(tier)或不同类型的地图准许,使得某些用户可能具有访问准许并且某些用户可能具有编辑准许。如果确定用户被授权访问或编辑地图,则ar系统可以继续进行到框3308以扫描用户的环境。如果确定用户没有访问或编辑地图所需的授权,则ar系统可以继续进行到框3316以在不加载或访问地图的情况下进入景观。在一些示例中,用户可能有权访问地图,但没有编辑地图的准许。在这种情况下,ar系统可能允许用户扫描环境,但阻止用户存储对地图的任何更改。
312.在框3308,ar系统可以映射和/或扫描用户的环境。映射或扫描过程可以包括扫描过程,例如参考图28至图34c所描述的。例如,ar系统可以引导用户通过他们的环境以找到用户的环境中的一个或多个pcf。ar系统可以基于用户在扫描空间时确定的目的以不同的方式引导用户通过他们的环境。例如,如果用户指示他们正在更新地图,则ar系统可以更优先地将用户引导(例如通过参考图28至图34c描述的扫描处理)到用户的环境中具有较少信息的区域以帮助将尚未包含在地图中的信息添加到地图中。在另一示例中,如果用户指示他们正在被定位到地图中或同步到地图中,则ar系统可以优先将用户引导到具有更多信息的环境区域以帮助定位用户。框3308的映射或扫描过程可以包括通过例如将在用户的环境中找到的一个或多个pcf与外部存储或保存的地图中的一个或多个pcf进行匹配来识别地图的步骤。
313.在框3310,ar系统可以确定用户是否已经定位到地图中。例如,ar系统可以基于收集的数据确定是否已经找到或生成了充足的pcf,从而识别用户的空间或与用户的空间相关联的地图数据。在一些示例中,定位可以由用户找到与外部存储的地图相关联的一个或多个pcf(也称为共享pcf)来定义。然而,其他类型的定位也是可能的。在一些示例中,用户可能会找到单个共享pcf以成功定位到共享地图中。在另一示例中,用户可能会找到多个pcf,以便成功定位到地图中。定位的成功可以由用户、ar系统、或与地图数据相关联的特定应用来确定。例如,应用可能需要物理世界数据和虚拟数据的更精确的环境同步。因此,ar系统可以增加用户查找所需的pcf数量,以帮助确保更好或更准确的定位。如果ar系统确定已经发生定位,则ar系统可以在框3312加载与本地化地图相关联的地图数据。如果ar系统确定没有发生定位,则ar系统可以在框3314确定是否继续扫描。
314.附加地或替代地,如果ar系统确定可能正试图定位到同一地图中的一个或多个用户没有发生定位,则ar系统可以加载与该地图相关联的地图数据。但是,由于定位失败,地图数据可能无法跨用户对齐。在一些示例中,多个用户的地图数据的粗略对齐可以通过操纵与地图相关联的内容通过用户手动或半手动对齐公共参考系来实现。例如,共享会话可以包括操纵(handle)或供用户操作的其他内容,以帮助实现内容的对齐。粗略对齐机制可适用于未能在共享现实世界空间中定位的用户和/或远程现实世界空间中的用户。在一些示例中,当ar系统确定已经发生定位时,粗略对齐机制可用于纠正定位中的错误或感知错误。
315.在框3314,ar系统可以确定是否继续扫描。例如,如果没有发生定位,则ar系统可
能需要更多数据来生成新地图或在用户的环境中找到一个或多个pcf。然而,ar系统可以利用超时、用户输入、或其他结束标准来停止扫描过程。然后,ar系统可以提示用户输入关于继续扫描用户的环境的输入(例如,通过框3308处的扫描过程)。如果ar系统由于例如用户输入或其他标准而确定应继续扫描,则ar系统可在框3308继续扫描。如果ar系统确定不应继续扫描,则ar系统可在框3308进入景观。
316.附加地或替代地,ar系统可以在任何点停止过程3300并在框3316进入景观。例如,用户可以在框3308在扫描过程期间输入退出或跳过命令。ar系统然后可以中止扫描过程或进入景观。
317.在框3318,ar系统可以通知用户定位的状态。例如,如果用户已成功定位,则ar系统可以通知定位到地图中的用户或成功定位的其他用户(例如当前定位或试图定位到同一地图中的用户)。在另一示例中,如果用户没有成功定位,则ar系统可以通知尝试定位到地图中的用户或失败定位的其他用户(例如当前定位或尝试定位到同一地图中的用户)。
318.图26b示出了在定位2500到公共或世界地图期间的示例图形用户界面。例如,在邀请框2510,ar系统可以接收或发送邀请以供用户加入共享地图。共享地图可以是其他用户可访问的地图。如果用户在框2518接受邀请,则ar系统可以确定ar系统是否被定位到共享地图中。如果ar系统没有被定位到共享地图中,则ar系统可以在框2512提示用户开始对其环境的扫描过程。如果ar系统被定位到共享地图中,ar系统可以提示用户在框2512开始扫描用户的环境。然后,ar系统可以在框2514扫描用户的环境,例如通过游戏化扫描过程引导用户。然后,ar系统可以在框2516检查定位是否成功。如果定位成功,则ar系统可以在框2520恢复内容。如果定位不成功,则ar系统可以提示用户继续扫描他们的环境或生成新地图。一旦ar系统确定定位完成或满足其他结束标准,ar系统就可以在框2522进入ar景观。例如,ar系统可以切换到允许用户访问与共享地图相关联的内容的应用。该应用可以允许用户与其他用户协作体验增强现实内容。
319.图26c示出了在定位2501到共享私有地图期间的示例图形用户界面。例如,在邀请框2530,用户可以发送或接收用户加入共享地图的邀请。共享地图可以是其他用户可访问的地图。如果用户接受邀请,则ar系统可以在框2532接收与共享地图相关联的标记。标记可以包括与共享地图相关联的一个或多个pcf。ar系统可以在框2534提示用户启用扫描用户的环境的准许。在接收到用户准许之后,ar系统可以在框2536扫描用户的环境。一旦ar系统识别出用户的环境中的标记,ar系统可以在框2538通过例如视觉、听觉、或触觉反馈来指示成功完成定位。一旦ar系统确定定位完成或满足其他结束标准,ar系统就可以在框2540进入ar景观。例如,ar系统可以切换到允许用户访问与共享地图相关联的内容的应用。该应用可以允许用户与其他用户协作体验增强现实内容。
320.3.地图管护
321.在一些示例中,ar系统可以利用诸如参考图28至图34c所描述的扫描过程来提高地图质量。例如,已经生成的地图可能缺少完整的信息,例如网格数据或pcf数据。ar系统可以使用扫描过程将用户引导到该地图中缺乏质量数据的区域,以便通过映射这些区域来提高地图质量。提高地图质量可以称为地图管护。这种地图管护可以由先前已经构建或生成该地图或另一地图的用户来完成。例如,软件开发者和/或用户可以进入地图管护模式以提高地图质量。在其他示例中,多个用户可以管护地图并且可以合并数据以便提高地图质量。
2020年1月27日提交的题为“augmented reality map curation(增强现实地图管护)”的相关的第62/966267号美国专利申请提供了关于可以实施到本文讨论的实施例中的地图管护过程的进一步细节,并在此通过引用并入其全部用于所有目的。
322.在框3502,ar系统可以确定要管护的地图。例如,ar系统可以自动确定与检测到的用户地理位置相关联的地图。在另一示例中,ar系统可以显示提示以供用户选择要管护的现有地图(和/或确认由ar系统自动选择的地图)。如果用户选择了地图,则ar系统在框3504确定地图是否需要进一步管护。在一些示例中,如果用户选择地图,则ar系统可以转到框3506以扫描环境而无需在框3504确定所选地图是否满足地图质量阈值。
323.在框3504,ar系统可以确定所选地图是否满足地图质量阈值。例如,ar系统可以确定地图质量是否足以使地图需要改进或不需要改进。如果地图质量不满足阈值质量,则ar系统可以移动到框3506以扫描用户的环境。在一些示例中,地图质量阈值可以包括用于环境的可用地图数据的阈值百分比、环境中保存的pcf的数量等,或它们的某种组合。
324.作为框3504的补充或替代,ar系统可以让用户管护地图而不管质量如何。例如,用户可能希望将地图的大小扩展到新区域。在一些示例中,地图可能是高质量的,但不像用户期望的那样大或完整。因此,ar系统可以继续扫描环境以管护地图,直到用户希望结束管护过程。
325.在框3506,ar系统可以映射和/或扫描用户的环境。映射或扫描过程可以包括扫描过程,例如参考图28至图34c所描述的。例如,ar系统可以引导用户通过他们的环境以找到用户的环境中的一个或多个pcf。例如,如果用户指示他们正在更新地图,则ar系统可以更优先地引导用户(例如通过参考图28至图34c描述的扫描处理)到用户的环境中具有较少信息的区域以提供帮助将不在共享地图中的信息添加到共享地图。在另一示例中,ar系统可以根据一个或多个标准引导用户通过用户空间,例如参考图28至图34c所描述的。框3308的映射或扫描过程可以包括通过例如将在用户的环境中找到的一个或多个pcf与共享或保存的地图中的一个或多个pcf进行匹配来识别地图的步骤。
326.在一些示例中,在框3506的扫描过程期间,ar系统可以基于识别的地图质量来引导用户。例如,地图的区域可能比地图的其他区域具有更高的地图质量。ar系统可以将用户引导到地图质量较差的区域,以便在这些区域收集数据并提高那里的地图质量。地图质量可以通过任何数量的标准来定义,包括但不限于在地图的那个区域收集的数据量。在一些示例中,当用户在他们的空间中移动时,ar系统可以通知用户当前的地图质量,以便通知用户需要或完成了多少地图管护。该通知可以涉及对当前地图质量的用户的图形、触觉、听觉、或其他反馈,例如在上面提到的相关应用中进一步详细描述的。在一个示例中,通知可以包括与标准化地图质量索引或值相关联的进度条。在另一个示例中,通知可以包括地图的颜色编码。
327.在框3508,ar系统可以确定是否继续扫描。例如,ar系统可以识别地图质量是否足以停止扫描,或者是否应该继续扫描。如果地图质量仍然很低,那么ar系统可能需要更多数据并引导用户帮助在用户的环境中找到一个或多个pcf。然而,ar系统可以利用超时、用户输入、或其他结束标准来停止扫描过程。然后,ar系统可以提示用户输入关于继续扫描用户的环境(例如,通过框3506处的扫描过程)。如果ar系统由于例如用户输入或其他标准而确定应继续扫描,则ar系统可在框3506继续扫描。如果ar系统确定不应继续扫描,则ar系统可
以在框3512退出管护。在一些示例中,唯一的退出标准可以是用户输入,使得用户可以继续映射或扫描他们的空间,直到他们决定退出。有利地,这允许用户在他们正在管护的地图中获得他们希望的尽可能多的细节,而无需ar系统确定用于映射或扫描过程的退出标准。
328.m.环境扫描过程
329.如上所述,在将用户重定位或定位到地图中或创建地图时,ar系统可能需要扫描用户的环境以识别用户的环境内的pcf或其他标记。在一些示例中,当用户自然地在他们的环境中移动时,ar系统可以被动地收集数据以扫描用户的环境。然而,在一些示例中,ar系统可以通过鼓励用户四处走动并观察他们的环境来主动扫描环境。ar系统可以鼓励用户使用路径点或在整个用户的环境中显示的图形来执行此扫描。此外,ar系统可以显示与成功数据收集相关联的动画。图26示出了一个示例扫描过程2600,它可以由ar系统实施以扫描用户的环境。例如,扫描过程可以包括路径点确定框2610、用户引导框2612、数据收集框2614、以及结束标准确定框2616。
330.在路径点确定框2610,ar系统可以确定在用户的环境中放置一个或多个图形(例如,可视化)的位置。例如,ar系统可以根据诸如参考图29描述的过程来确定图形的位置。在一些示例中,ar系统可以确定分散在用户的环境中的一个或多个图形的位置。ar系统可以基于任意数量的标准来选择位置,包括但不限于用户的环境的区域内是否存在收集的数据或网格。附加地或替代地,ar系统可以基于距用户或其他所选路径点位置的距离来选择位置。有利地,ar系统可以选择远离用户或其他路径点位置的位置,以鼓励用户更多探索他们的环境。
331.ar系统可以通过用于分析收集的关于用户的环境的数据的任何合适的方式来确定路径点位置。例如,ar系统可以使用一个或多个面向外的相机或传感器来收集关于用户的环境的数据。ar系统可以根据一个或多个标准来分析数据以确定潜在的路径点位置。例如,ar系统可以基于来自面向外的相机的数据来确定32个潜在的路径点位置。ar系统可以基于距用户和其他潜在或已确定的路径点位置的距离,对32个潜在位置进行排序。然后,ar系统可以选择所排序位置的子集以显示给用户。
332.在用户引导框2612,ar系统可以引导用户在框2610确定的路径点位置处使用一个或多个图形来探索他们的环境。例如,ar系统可以在框2610确定的一个或多个位置处显示一个或多个图形。ar系统可以顺序地、一次地显示图形,顺序地或一次地显示图形的一部分,或者它们的某种组合。ar系统可以通过例如显示引导动画(例如,参见下面参考图30描述的引导动画过程)将用户引导到一个或多个路径点位置。ar系统可以使用引导动画将用户引导到用户的环境内的多个路径点位置。例如,如果有六个路径点位置,ar系统可以将用户顺序地引导到六个路径点位置中的每一个。在另一个示例中,ar系统可以一次确定单个路径点位置,并将用户引导到每个所选路径点位置。然后,ar系统可以基于已经完成的路径点位置确定后续路径点位置,并将用户引导到后续路径点位置。
333.在数据收集块2614,ar系统可以收集与用户的环境相关联的数据。例如,ar系统可以使用与ar系统相关联的一个或多个传感器来收集数据,例如ar系统的头戴式显示器上的一个或多个面向外的相机。ar系统可以在扫描过程2600的任何步骤之前、期间或之后来收集数据。例如,ar系统可以在路径点位置确定框2610或用户引导框2612期间收集数据。附加地或替代地,ar系统可以在与在框2610确定的路径点位置处的图形交互期间收集数据。例
如,当用户通过例如进入路径点位置的阈值距离内与图形交互时,ar系统可以收集关于该路径点位置附近用户的环境的数据。有利地,ar系统可以收集数据的同时在框2612将用户引导到路径点位置的,并且在框2614收集更大量的详细数据的同时在框2610与确定的路径点位置处的图形交互。因此,ar系统可以在用户的环境的可以被识别为需要收集数据的地方的区域收集更详细的数据。
334.在结束标准确定框2616,ar系统可以确定是否需要收集更多数据或者是否结束扫描过程2600。ar系统可以通过分析是否已满足一个或多个结束扫描标准来确定结束扫描过程。例如,ar系统可以在框2614在路径点位置收集数据。ar系统可以确定用户是否已在阈值数量的路径点位置处收集数据,识别出最小数量的pcf,和/或已满足用于确定用户的环境中充足数量的网格的其他标准。在一些实施例中,结束标准可以匹配发生定位过程的标准。如果ar系统确定用户已在阈值数量的路径点位置处收集了数据,则ar系统可以结束扫描过程。如果ar系统确定用户没有在阈值数量的路径点位置处收集数据,则ar系统可以在框2610继续或重新开始扫描过程2600。在另一示例中,ar系统可以接收来自用户的输入以在过程2600中的任何时候停止或者跳过扫描过程。如果用户已经停止了扫描过程2600,ar系统可以结束扫描过程。如果ar系统没有停止扫描过程2600,ar系统可以继续扫描过程。在另一示例中,ar系统可以确定是否在阈值时间范围内收集了阈值量的数据。如果ar系统确定在阈值时间范围内没有收集到充足的数据,则ar系统可以结束过程2600。如果ar系统确定没有经过阈值时间范围并且应该收集更多数据,则ar系统可以继续扫描过程。
335.n.路径点生成示例
336.如上所述,扫描过程的一个方面,例如参考图28所描述的,可以包括确定用户的环境内的路径点或图形位置。图27示出了示例图形派生过程2700。例如,图形派生过程2700可以包括光线投射框2712、光线投射类型框2714、顺序确定框2716、选择框2718、显示框2720、和结束标准框2722。
337.在光线投射框2712,ar系统可以在用户周围发送光线投射。在各种实施例中,光线投射技术可以包括在用户的环境的数字版本中投射具有基本上小的横向宽度的薄数字射线(thin digital ray)或投射具有相当大的横向宽度(例如,圆锥或截头锥体)的射线。例如,射线可以是远离用户延伸并且可以与现实世界的数字副本内的一个或多个真实或虚拟对象相交的数字线。在一些实施例中,真实对象可以由真实世界的数字副本中的网格表示。在一些实施例中,虚拟对象可以由可渲染的3d资产(例如,3d模型,例如以网格和对应的网格渲染数据)来表示。光线投射可用于在特定方向快速获取有限的数据收集到用户的环境中。例如,有限的数据收集可以包括网格的方向上的表面或内容的存在、网格是否存在于光线投射的方向上、到任何找到的内容或网格的距离等,或者它们的某种组合。光线投射可以从与用户相关联的原点水平、垂直和/或径向延伸。例如,光线投射可以从用户的头部水平延伸,使得一个或多个光线投射垂直于用户佩戴的头戴式显示器。ar系统可以发送任意数量的光线投射。例如,ar系统可以发出以用户头部为中心的32个光线投射。然而,其他数量的光线投射也是可能的。例如,特定环境所需的光线投射数量可以由ar系统动态确定,例如基于对收集的扫描数据和/或先前与环境相关联的地图数据的分析。
338.在光线投射类型框2714,ar系统可以针对来自框2712的一个或多个光线投射分配、确定或分类类型。例如,光线投射可以包括与用户的环境、网格、或其他ar内容相关联的
信息。ar系统可以根据从各个光线投射获得的信息对一个或多个光线投射进行分类。例如,ar系统可以将每个光线投射分类为命中、未命中或未观察到的类型光线投射。在一些实施例中,系统可以通过用网格划分空间来将环境划分为一系列单元。命中光线投射可以包括在距离光线投射的原点的阈值距离内与内容相交的光线投射,或与包含例如网格或pcf的内容的单元相交的光线投射。未命中光线投射可以包括距离光线投射的原点的阈值距离内与不包含内容的单元相交的光线投射,或与诸如网格或pcf之类的内容相交的光线投射。未观察到的光线投射可以包括这样的光线投射,其中不知道在距光线投射的原点的阈值距离内或在阈值距离内的单元内是否有内容。未观察到的光线投射可以指示用户可能没有在与光线投射相关联的位置以收集数据。然后,ar系统可以选择未观察到的光线投射类型和/或其他光线投射类型,以便在确定显示图形的位置时进行进一步分析,以鼓励用户移动,从而允许获取更多网格数据。
339.在顺序确定框2616,ar系统可以根据与光线投射相关联的一个或多个标准来布置光线投射。例如,ar系统可以根据距离光线投射的原点最远到最近的距离对未观察到的光线投射进行排序。有利地,根据距离布置光线投射可以允许ar系统确定或优先选择用于远离用户来显示图形的位置。与距离用户更近的位置相比,距离用户更远地显示图形可以允许ar系统引导用户更多探索环境。在一些示例中,可以使用其他排序标准。
340.在选择框2718,ar系统可以确定位置或在用户的环境内的位置处显示图形。ar系统可以根据光线投射选择一个位置来显示图形,该位置大约是用户视场内的中心位置或另一位置。在另一示例中,ar系统可以显示位于用户fov之外的位置的图形。在一些示例中,ar系统可以根据光线投射分析数据,以确定用户的环境中可以使用更多数据收集的位置。例如,ar系统可以确定没有被网格化的位置。ar系统可以优先选择未被网格化的位置。附加地或替代地,ar系统可以选择用户的阈值距离之内或之外的位置。例如,ar系统可以确定初始路径点位置在距用户的阈值距离处。在一些示例中,阈值距离可以是一米、两米、五米或其他距离。在一些示例中,ar系统可以使用多于一个标准来确定路径点图形的派生位置。例如,ar系统可以确定距用户大于阈值距离(例如,2米)且距另一所选位置(例如前一个路径点)大于阈值距离(例如,2米)的位置,或网格化区域。有利地,将初始路径点位置放置在距用户阈值距离处可以鼓励用户在他们的环境中移动以与图形交互。
341.在一些示例中,ar系统可以根据已经向用户显示了多少图形来选择路径点位置。例如,如果ar系统没有向用户显示任何图形,扫描过程是第一次开始,或者扫描过程已经重新启动,则ar系统可以在用户的fov内显示图形。附加地或替代地,ar系统可以根据在顺序确定框2716确定的顺序在最佳位置处显示图形。如果ar系统已经向用户显示图形,则ar系统可以在最佳位置显示图形。
342.在显示图形框2720处,ar系统可以在一个或多个确定的路径点位置处显示一个或多个图形。例如,ar系统可以在单个路径点位置显示图形。一旦在路径点位置收集到数据,ar系统可以确定第二路径点位置并从框2712重复过程2700。附加地或替代地,ar系统可以在一个以上位置显示图形。
343.在结束标准框2722,ar系统可以确定是否需要显示更多图形或是否结束图形显示过程2700。ar系统可以通过分析是否已经满足一个或多个结束标准来确定结束过程2700。例如,ar系统可以确定路径点位置并在路径点位置收集数据。ar系统可以确定用户是否已
在阈值数量的路径点位置处收集数据。如果ar系统确定用户已在阈值数量的路径点位置处收集了数据,则ar系统可以结束扫描过程。如果ar系统确定用户没有在阈值数量的路径点位置处收集数据,则ar系统可以继续或重新启动过程2700以显示更多图形。在另一示例中,ar系统可以在过程2700期间的任何时间从用户接收输入以停止或跳过扫描过程。如果用户已经停止扫描过程,则ar系统可以结束过程2700。
344.o.示例路径点引导
345.为了鼓励用户与所显示的图形或由ar系统派生或生成的路径点进行交互,ar系统可以将用户引导到用户的环境内的派生路径点。图30示出了用于使用指示环图形将用户引导到用户的环境内的一个或多个路径点的示例引导过程2800。示例指示环级(stage)在图31a和图31b中示出。指示环图形是可用于识别路径点并鼓励用户朝向路径点移动的图形的一个示例。在其他实施方式中,可以向用户提供任何其他图形和/或音频引导。例如,过程2800可以包括视场确定框2810、外部fov引导框2812、内部fov引导框2814、更新框2816、激活确定框2818、和结束框2820。
346.在视场确定框2810,ar系统可以确定路径点是否在用户的视场(fov)中。如果一些或全部图形在用户的fov内,则路径点可被视为在用户的fov内。例如,如果路径点的阈值部分在用户的fov内,则ar系统可以确定该路径点在用户的fov内。阈值部分可以包括10%、25%、50%、或其他百分比。附加地或替代地,ar系统可以确定路径点是否隐藏在用户的fov内(例如,在用户的环境中的对象后面)。如果ar系统确定路径点隐藏在用户的fov内,则ar系统可以将路径点视为在用户的fov之外。附加地或替代地,ar系统可以将隐藏的路径点重定位到未隐藏在用户的fov内的位置,并引导用户到新的位置,例如使用将路径点移动到非遮挡位置的动画。如果ar系统确定路径点在用户的fov内,则ar系统可以使用与ar系统确定路径点在用户的fov之外不同的图形将用户引导到路径点。例如,如果ar系统确定路径点在用户的fov之外,则ar系统可以使用部分环,如图29a所示,以在框2812将用户引导到路径点。如果ar系统确定路径点在用户的fov内,则ar系统可以使用全环,例如图29b中所示,以在框2814将用户引导到路径点。
347.在外部fov引导框2812,ar系统可以将用户引导到在框2810确定的用户fov之外的路径点。例如,ar系统可以在视觉上、听觉上、或以其他方式指示用于用户移动以找到显示的路径点的方向。例如,ar系统可以显示部分环图形2910,如图31a所示。部分环图形2910可以具有曲率。曲率可能有一个峰。峰可指示行进、观看或扫描以找到路径点的方向,例如上、下、左或右。附加地或替代地,部分环图形2910可以包括布置成弧形的多个气泡或颗粒。弧可以在沿着弧的位置处具有增加的气泡或颗粒密度,以指示行进、观看或扫描以找到路径点的方向。
348.返回图28,在内部fov引导框2814,ar系统可以将用户引导到在框2810确定的用户fov内的路径点。例如,ar系统可以在视觉上、听觉上或以其他方式指示用户移动以找到显示的路径点的方向。例如,ar系统可以在显示的路径点2916周围显示环图形2914,如图31b所示。环2914的直径可以大于或等于路径点图形2916的宽度。例如,环2914的直径可以是路径点图形2916的宽度的两倍。在一些示例中,ar系统可以以取决于用户距路径点位置的距离的大小来显示环2914。在一些示例中,ar系统可以以固定大小来显示环2914,直到用户进入路径点位置的阈值距离内。在一些示例中,当路径点2916在用户的fov中时,ar系统可以
在路径点2916周围显示环2914。
349.返回图28,在更新框2816,ar系统可以更新引导图形,例如环。例如,ar系统可以确定用户与路径点位置的接近度。ar系统可以基于用户接近度来改变引导图形的外观。例如,ar系统可以改变环的大小以靠近路径点或显示的图形。附加地或替代地,ar系统可以播放音频或生成触觉反馈以指示接近路径点。
350.在激活确定框2818,ar系统可以确定目标路径点是否已被激活。例如,ar系统可以确定目标路径点已被用户激活,该用户达到与路径点位置的阈值接近度。当路径点被激活时,ar系统可以向用户显示或指示确认,例如参考图32至图34c所描述的。例如,ar系统可以显示动画、听觉确认、和/或触觉确认,例如参考图31描述的。如果路径点被激活或引导过程以其他方式被停止,则ar系统可以确定新的目标路径点并以新的目标路径点开始过程2800。在另一示例中,ar系统可以结束引导过程2800。如果未激活路径点,则ar系统可以通过例如在框2810再次开始过程来以当前路径点继续引导过程2800。
351.p.示例路径点激活过程
352.一旦ar系统已经成功地将用户引导到路径点位置(例如,通过参考图29描述的引导过程),ar系统可以触发与路径点激活相关联的激活过程。激活过程可以包括存储与路径点附近的用户的环境相关联的信息,并通过视听或触觉反馈向用户指示路径点的成功完成。图32示出了示例路径点激活过程3000。路径点激活过程3000可以包括交互确定框3010、动画框3012、以及移除框3014。
353.在交互确定框3010,ar系统可以确定用户与路径点的交互。在一些示例中,交互可以包括用户注视或与路径点的接近。在另一示例中,交互可以包括通过启动用户输入设备或其他用户输入来选择路径点。如果交互超过阈值交互,则ar系统可以在框3012为路径点设置动画。
354.在动画框3012处,ar系统可以显示成功交互或激活路径点的指示。例如,如参考图33至图34c所讨论的,ar系统可以显示动画或一系列图形,或者生成与激活或与路径点交互相关联的听觉或触觉反馈。
355.在移除框3014,ar系统可以从要派生或显示的路径点列表中移除路径点,该路径点可能已作为路径点派生过程的一部分生成,例如参考图29所描述的。在ar系统一次显示单个路径点或一次确定单个路径点位置的示例中,可能没有路径点列表,ar系统可以动态确定显示给用户的下一个路径点。附加地或替代地,ar系统可以将当前路径点位置保存为已经访问过的位置。
356.图33示出了可以被执行以指示路径点的激活的示例路径点动画过程3100。例如,ar系统可以在框3110生成气泡,通过在框3116确定碰撞轨迹在框3112激活气泡,将气泡制作成动画(例如,行进到用户的环境中的碰撞地点),或制作成与用户的环境中的对象或网格碰撞的动画,并在框3114从显示器移除气泡。在其他实施方式中,可以向用户提供任何其他图形和/或音频引导作为路径点激活的指示。在一个示例实施方式中,当用户激活他们的第一个路径点时,ar系统会通知他们“环顾四周的光粒子(particle of light)”(例如,气泡或一些其他视觉效果)。通过观察它们,那些特定的气泡将会激活。这可能具有使用户更多地环顾他们的环境的有益副作用,从而提高他们的地图质量。因此,以这种方式使用气泡(和/或其他视觉效果)可以为用户提供有趣的视觉/听觉奖励,但也提供实际益处。
357.在框3110,ar系统可以生成一个或多个气泡或其他图形。气泡或其他图形可以从路径点生成。例如,如图34a所示,路径点3210可以包括图形。一旦如上所述激活路径点,ar系统可以使路径点弹出(pop)或爆炸成多个较小的气泡3220,例如图34b中所示。气泡可以显示在用户的fov内的不同点处。例如,气泡可能会在用户的fov内随机显示。在另一示例中,可以显示气泡,使得气泡3220看起来好像路径点气泡3210已经弹出。有利地,将气泡定位在用户的fov内的分散点可以鼓励用户在路径点位置附近环顾他们的环境,甚至比没有气泡动画时更多。气泡可以是静态的或动态的。作为气泡3220的补充或替代,ar系统可以显示激活的指示3214。指示3214可以包括成功激活的复选标记或其他指示。附加地或替代地,ar系统可以播放音频或生成与指示相关联的触觉反馈。
358.在一些示例中,ar系统可以引导用户观看气泡(或围绕路径点或与路径点相关联的其他图形)。当ar系统检测到用户已经与气泡或其他图形交互时,ar系统可以移动到框3116以激活气泡。例如,ar系统可以确定用户已经将他们的视线指向了气泡。然后,ar系统可以激活该气泡。
359.如下文进一步讨论的,在一些实施方式中,当气泡被激活时(例如,通过用户看着它),ar系统计算到它的位置(通常也远离用户)的接近网格。然后气泡直接飞到那个接近网格位置并弹出(例如,触发另一个动画)。如果气泡附近没有网格,它可以飞离用户并在没有较大的弹出动画的情况下淡出。在一些实施方式中,被激活的一些或所有气泡可以在随机轨迹中移动。
360.在框3116,ar系统可以确定一个或多个气泡3210的轨迹。例如,ar系统可以确定一个或多个气泡3210在用户的环境内的行进的方向。在一些示例中,气泡的行进方向可以遵循从起点(例如,路径点)到用户的环境内的内容(例如网格)的路径。例如,至少一些气泡可以移动到通过用户激活路径点而生成和/或更新的网格区域。ar系统可以选择气泡3210朝向用户的环境中的网格或其他内容的轨迹。在框3118,ar系统可以将气泡3210制成动画以沿着确定的轨迹行进。在框3120,ar系统可以将气泡3210和用户的环境中的网格3216之间的碰撞制成动画。例如,ar系统可以显示碰撞3218并显示在其周围发生碰撞3218的网格3216的一部分。ar系统可以继续碰撞气泡3210,直到满足结束标准。例如,结束标准可以包括在用户的环境中计算的网格3216的阈值部分的显示。在另一示例中,结束标准可以包括所显示的气泡碰撞的阈值数量。在框3114,一旦发生气泡碰撞,ar系统可以从显示器上移除气泡。例如,ar系统可以通过使气泡淡出或将气泡移出用户的fov来将使气泡消散制成动画。如图34c所示,动画过程3100的结果可以包括可以显示在已完成或激活的路径点3214的区域中的网格3216。
361.q:其他示例
362.本文所述的系统、方法和设备各自具有若干方面,其中没有一个单独负责其所需属性。在不限制本公开的范围的情况下,现在将简要讨论几个非限制性特征。以下段落描述了本文描述的设备、系统和方法的各种示例实施方式。
363.示例1:一种增强现实ar系统,包括:ar显示器,其被配置为向所述ar系统的用户呈现虚拟内容;面向外相机,其被配置为捕获所述用户的环境的一个或多个图像,其中,所述用户的环境的对所述用户可见的部分包括所述用户的视场fov;以及与所述ar显示器和所述面向外相机通信的硬件处理器,所述硬件处理器被编程为:从包括与所述用户的头部相
关联的位置的原点生成多个光线投射;分析所述多个光线投射以识别与所述环境的未映射位置相关联的光线投射;更新所述虚拟内容以包括与所述未映射位置相关联的图形;收集与所述用户的环境相关联的数据;以及响应于收集到与所述未映射位置相关联的充足数据,向所述用户发送数据被成功收集的信号。
364.示例2:根据示例1所述的ar系统,其中,所述硬件处理器被配置为引导所述用户观看所述图形。
365.示例3:根据示例1或2所述的ar系统,其中,所述硬件处理器被配置为:响应于确定在所述环境内存在其它未映射位置,针对所述其它未映射位置重复所述更新、引导、收集、以及发送信号。
366.示例4:根据示例1至3中任一项所述的ar系统,其中,重复所述更新、引导、收集、以及发送信号,直到至少获得与未映射位置相关联的最小阈值的数据。
367.示例5:根据示例1至4中任一项所述的ar系统,其中,所述硬件处理器还被配置为:基于所收集的数据,确定在所述用户的环境中是否存在至少一个持久坐标框架pcf;其中,确定在所述环境中是否存在其它未映射位置是基于确定是否识别出至少一个pcf。
368.示例6:根据示例1至5中任一项所述的ar系统,其中,所述硬件处理器还被配置为:响应于确定存在至少一个pcf,加载与包括所述至少一个pcf的已保存地图相关联的内容。
369.示例7:根据示例1至6中任一项所述的ar系统,其中,为了分析所述多个光线投射,所述硬件处理器被配置为,对于光线投射:确定沿着所述光线投射存在网格;计算所述网格沿着所述光线投射的距离;以及基于所述网格的存在、所述内容的存在、以及所述网格的距离,确定包括内容类型、无内容类型、或未观看类型的光线投射类型。
370.示例8:根据示例7所述的ar系统,其中,所述内容类型包括在距所述用户和其他未观看的位置中的至少一个的最大距离内的所述网格上具有内容的光线投射。
371.示例9:根据示例8所述的ar系统,其中,所述最大距离是2米。
372.示例10:根据示例7至9中任一项所述的ar系统,其中,所述无内容类型包括在所述最大距离内的所述网格上不具有内容的光线投射。
373.示例11:根据示例7至10中任一项所述的ar系统,其中,所述未观看类型包括所述最大距离内具有未知内容的光线投射。
374.示例12:根据示例1至12中任一项所述的ar系统,其中,所述硬件处理器被配置为:在所述用户的fov的中心处显示图形。
375.示例13:根据示例12所述的ar系统,其中,所述硬件处理器被配置为:在所述未观看的位置处生成所述图形之前,在所述用户的fov的中心处显示所述图形。
376.示例14:根据示例12至13中任一项所述的ar系统,其中,所述硬件处理器被配置为:引导所述用户观看在所述用户的fov的中心处的所述图形;以及向所述用户发送在所述至少一个未观看的位置附近数据被成功收集的信号,其中,所收集的数据包括与所述用户的fov的中心相关联的数据。
377.示例15:根据示例1至14中任一项所述的ar系统,其中,为了向所述用户发送在所述未观看的位置处数据被成功收集的信号,所述硬件处理器被配置为:在所述未观看的位置显示与所述图形相关联的动画。
378.示例16:根据示例15所述的ar系统,其中,为了显示所述动画,所述ar系统被配置
为:生成与所述图形相关联的至少一个气泡;确定与所述至少一个气泡相关联的碰撞轨迹;使所述至少一个气泡动画化以沿着所述碰撞轨迹朝向与所述用户的环境的地图相关联的网格上的碰撞位置移动;以及显示所述至少一个气泡与所述网格的碰撞。
379.示例17:根据示例1至16中任一项所述的ar系统,其中,为了引导用户观看所述图形,所述硬件处理器被配置为:相对于所述用户的位置,基于所述未观看的位置显示指示环。
380.示例18:一种增强现实ar系统,包括:ar显示器,其被配置为向所述ar系统的用户呈现虚拟内容;面向外相机,其被配置为捕获所述用户的环境的一个或多个图像,其中,所述用户的环境的对所述用户可见的部分包括所述用户的视场fov;以及与所述ar显示器和所述面向外相机通信的硬件处理器,所述硬件处理器被编程为:接收用户对地图的选择;从包括与所述用户的头部相关联的位置的原点生成多个光线投射;分析所述多个光线投射以识别与所述环境的未映射位置相关联的光线投射;更新所述虚拟内容以包括与所述未映射位置相关联的图形;引导所述用户观看所述图形;收集与所述用户的环境相关联的数据;响应于收集到与所述未映射位置相关联的充足数据,向所述用户发送数据被成功收集的信号;以及响应于确定所收集的数据内的至少一个标记对应于所述地图中的至少一个标记,显示与所述地图相关联的虚拟现实内容;或者响应于确定所收集的数据中没有标记对应于所述地图中的标记,针对另一个未映射位置重复所述更新、引导、收集、以及发送信号。
381.示例19:根据示例18所述的ar系统,其中,所述至少一个标记包括至少一个pcf。
382.示例20:根据示例18至19中任一项所述的ar系统,其中,为了分析所述多个光线投射,所述硬件处理器被配置为,对于光线投射:确定沿着光线投射存在网格;计算所述网格沿着所述光线投射的距离;以及基于所述网格的存在、所述内容的存在、以及所述网格的距离,确定包括内容类型、无内容类型、或未观看类型的光线投射类型。
383.示例21:根据示例20所述的ar系统,其中,所述内容类型包括在距所述用户和其他未观看的位置中的至少一个的最大距离内的所述网格上具有内容的光线投射。
384.示例22:根据示例21所述的ar系统,其中,所述最大距离是2米。
385.示例23:根据示例20至22中任一项所述的ar系统,其中,所述无内容类型包括在所述最大距离内的所述网格上不具有内容的光线投射。
386.示例24:根据示例20至23中任一项所述的ar系统,其中,所述未观看类型包括在所述最大距离内具有未知内容的光线投射。
387.示例25:根据示例18至24中任一项所述的ar系统,其中,所述硬件处理器被配置为:在所述用户的fov的中心处显示图形。
388.示例26:根据示例25所述的ar系统,其中,所述硬件处理器被配置为:在所述未观看的位置处生成所述图形之前,在所述用户的fov的中心处显示所述图形。
389.示例27:根据示例25至26中任一项所述的ar系统,其中,所述硬件处理器被配置为:引导所述用户观看在所述用户的fov的中心处的所述图形;以及向所述用户发送在所述至少一个未观看的位置附近数据被成功收集的信号,其中,所收集的数据包括与所述用户的fov的中心相关联的数据。
390.示例28:根据示例18至27中任一项所述的ar系统,其中,为了向所述用户发送在所述未观看的位置处数据被成功收集的信号,所述硬件处理器被配置为:在所述未观看的位
置处显示与所述图形相关联的动画。
391.示例29:根据示例28所述的ar系统,其中,为了显示所述动画,所述ar系统被配置为:生成与所述图形相关联的至少一个气泡;确定与所述至少一个气泡相关联的碰撞轨迹;使所述至少一个气泡动画化以沿着所述碰撞轨迹朝向与所述用户的环境的地图相关联的网格上的碰撞位置移动;以及显示所述至少一个气泡与所述网格的碰撞。
392.示例30:根据示例18至29中任一项所述的ar系统,其中,为了引导用户观看所述图形,所述硬件处理器被配置为:相对于所述用户的位置,基于所述未观看的位置显示指示环。
393.示例31:一种创建或更新用户环境的增强现实地图的方法,所述方法由具有一个或多个硬件计算机处理器和存储软件指令的一个或多个非暂态计算机可读存储设备的计算系统执行,所述软件指令能够由所述计算系统执行以执行包括如下操作的计算机化方法:从用户周围的多个方向中的每一个方向获取距离数据,所述距离数据指示在相应的方向上检测到物理对象的距离;创建与距离超过阈值距离的距离数据相关联的路径点的排名列表,其中,与最大距离相关联的路径点在所述排名列表中位于第一;显示参考最高排名的路径点所定位的图形,以用于在由用户佩戴的增强现实ar设备上观看,所述图形被配置为将所述用户引导到所述用户环境的其中所述增强现实地图不完整的区域;检测所述用户的移动,所述用户的移动允许由所述ar设备收集与路径点相关联的数据;确定在所述排名列表中是否还有其它路径点;响应于确定所述排名列表中还有其他路径点,用下一个最高排名的路径点执行所述显示、检测、以及确定。
394.示例32:根据示例31所述的方法,其中,所述排名列表包括六个路径点。
395.示例33:根据示例31或32所述的方法,其中,重复所述显示、检测、以及确定,直到至少收集到最小阈值的数据。
396.示例34:根据示例31至33中任一项所述的方法,还包括:基于所收集的数据,确定在所述用户的环境中存在至少一个持久坐标框架pcf。
397.示例35:根据示例31至34中任一项所述的方法,包括:响应于确定至少一个pcf的存在,加载与包括所述至少一个pcf的已保存地图相关联的内容。
398.示例36:根据示例31至35中任一项所述的方法,包括:在所述用户的fov的中心处显示图形。
399.示例37:根据示例36所述的方法,其中,所述硬件处理器被配置为:在生成参考最高排名的路径点所定位的所述图形之前,在所述用户的fov中心处显示所述图形。
400.示例38:根据示例36或37所述的方法,包括:检测所述用户的移动,所述用户的移动允许由所述ar设备收集与所述用户的fov的中心相关联的数据。
401.示例39:根据示例31至38中任一项所述的方法,包括:在参考最高排名的路径点的位置处显示与所述图形相关联的动画。
402.示例40:根据示例39所述的方法,其中,显示所述动画包括:a.生成与所述图形相关联的至少一个气泡;确定与所述至少一个气泡相关联的碰撞轨迹;使所述至少一个气泡动画化以沿着所述碰撞轨迹朝向与所述用户的环境的地图相关联的网格上的碰撞位置移动;以及显示所述至少一个气泡与所述网格的碰撞。
403.示例41:根据示例31至40中任一项所述的方法,包括:将所述用户引导到所述路径
点。
404.示例42:根据示例41所述的方法,其中,引导所述用户包括:显示指示环。
405.示例43:一种增强现实ar系统,包括:ar显示器,其被配置为向所述ar系统的用户呈现虚拟内容;面向外相机,其被配置为捕获所述用户的三维3d环境的一个或多个图像;以及与所述ar显示器和所述面向外相机通信的硬件处理器,所述硬件处理器被编程为:接收访问共享地图的邀请;促进所述用户访问所述共享地图;引导所述用户观看所述用户的3d环境;收集与所述用户的3d环境相关联的数据;以及如果在所述用户的3d环境中找到与所述共享地图相关联的数据,则加载与所述共享地图相关联的内容。
406.示例44:根据示例43所述的ar系统,其中,所述硬件处理器还被配置为:基于所收集的数据,确定在所述用户的环境中存在至少一个持久坐标框架pcf;其中,确定是否在所述用户的3d环境中找到与所述共享地图相关联的数据是基于确定在所收集的数据中是否识别出与所述共享地图相关联的至少一个pcf。
407.示例45:根据示例43至44中任一项所述的ar系统,其中,为了加载内容,所述硬件处理器被配置为:响应于确定至少一个pcf的存在,加载与包括所述至少一个pcf的所述共享地图相关联的内容。
408.示例46:根据示例43至45中任一项所述的ar系统,其中,所述硬件处理器被配置为:在所述用户的fov的中心处显示图形。
409.示例47:根据示例46所述的ar系统,其中,所述硬件处理器被配置为:在未观看的位置处生成图形之前,在所述用户的fov中心处显示所述图形。
410.示例48:根据示例43至47中任一项所述的ar系统,其中,所述硬件处理器被配置为:引导所述用户观看位于所述用户的fov中心处的所述图形;以及向所述用户发送在至少一个未观看的位置附近数据被成功收集的信号,其中,所收集的数据包括与所述用户的fov的中心相关联的数据。
411.示例49:根据示例43至48中任一项所述的ar系统,其中,为了向所述用户发送在所述未观看的位置数据被成功收集的信号,所述硬件处理器被配置为在所述未观看的位置显示与所述图形相关联的动画。
412.示例50:根据示例49所述的ar系统,其中,为了显示所述动画,所述ar系统被配置为:生成与所述图形相关联的至少一个气泡;确定与所述至少一个气泡相关联的碰撞轨迹;使所述至少一个气泡动画化以沿着所述碰撞轨迹朝向与所述用户的环境的地图相关联的网格上的碰撞位置移动;以及显示所述至少一个气泡与所述网格的碰撞。
413.示例51:根据示例43至50中任一项所述的ar系统,其中,所述共享地图包括被存储在所述ar显示器外部的位置处的地图。
414.示例52:根据示例43至51中任一项所述的ar系统,其中,所述共享地图包括多个ar设备或多个用户能够访问的地图。
415.示例53:根据示例43至52中任一项所述的ar系统,其中,为了引导用户观看所述图形,所述硬件处理器被配置为:相对于所述用户的位置,基于所述未观看的位置显示指示环。
416.示例54:根据示例43至53中任一项所述的ar系统,其中,所述硬件处理器被配置为:确定要存储的地图;确定包括设备上存储或设备外存储的存储位置;确定与所识别的地
图相关联的一个或多个用户准许,其中,所述一个或多个用户准许包括授权一个或多个用户访问所识别的地图;以及基于所确定的存储位置和所确定的一个或多个用户准许,存储所识别的地图。
417.示例55:一种增强现实ar系统,包括:ar显示器,其被配置为向所述ar系统的用户呈现虚拟内容;面向外相机,其被配置为捕获所述用户的三维3d环境的一个或多个图像;以及与所述ar显示器和所述面向外相机通信的硬件处理器,所述硬件处理器被编程为:接收更新地图的用户输入;引导所述用户观看所述用户的3d环境;收集与所述用户的3d环境相关联的数据;确定与所述地图相关联的地图质量指数;在所述ar显示器上显示所述地图质量指数的指示;基于所收集的数据来更新所述地图;以及响应于识别出包括停止的用户输入或确定所述地图质量指数超过阈值的停止条件,停止引导所述用户。
418.示例56:根据示例55所述的ar系统,其中,所述地图质量指数是基于具有相关联的收集数据的3d环境的百分比。
419.示例57:根据示例55至56中任一项所述的ar系统,其中,所述硬件处理器被配置为在所述用户的fov的中心处显示图形。
420.示例58:根据示例57所述的ar系统,其中,所述硬件处理器被配置为在未观看的位置生成图形之前,在所述用户的fov的中心处显示所述图形。
421.示例59:根据示例55至58中任一项所述的ar系统,其中,所述硬件处理器被配置为:引导所述用户观看位于所述用户的fov的中心处的所述图形;以及向所述用户发送在至少一个未观看的位置附近数据被成功收集的信号,其中,所收集的数据包括与所述用户的fov的中心相关联的数据。
422.示例60:根据示例55至59中任一项所述的ar系统,其中,为了向所述用户发送在所述未观看的位置数据被成功收集的信号,所述硬件处理器被配置为:在所述未观看的位置显示与所述图形相关联的动画。
423.示例61:根据示例60所述的ar系统,其中,为了显示所述动画,所述ar系统被配置为:生成与所述图形相关联的至少一个气泡;确定与所述至少一个气泡相关联的碰撞轨迹;使所述至少一个气泡动画化以沿着所述碰撞轨迹朝向与所述用户的环境的地图相关联的网格上的碰撞位置移动;以及显示所述至少一个气泡与所述网格的碰撞。
424.示例62:根据示例55至61中任一项所述的ar系统,其中,为了引导用户观看所述图形,所述硬件处理器被配置为:相对于所述用户的位置,基于所述未观看的位置显示指示环。
425.r.其它注意事项
426.在此描述或附图中描绘的过程、方法和算法中的每个可以在由一个或多个物理计算系统、硬件计算机处理器、专用电路或配置为执行专用和特定计算机指令的电子硬件执行的代码模块中体现,并且完全或部分地由代码模块自动执行。例如,计算系统可以包括采用特定计算机指令或专用计算机、专用电路等编程的通用计算机(例如服务器)。代码模块可以被编译并链接到可执行程序中,安装在动态链接库中,或者可以用解释的编程语言编写。在一些实现方式中,特定操作和方法可以由特定于给定功能的电路执行。
427.此外,本公开的功能的某些实现方式在数学上、计算上或技术上足够复杂,以使得专用硬件或一个或多个物理计算设备(利用适当的专用可执行指令)可能有必要例如由于
所涉及的计算的量或复杂性而执行功能或者基本上实时地提供结果。例如,动画或视频可以包括许多帧,每个帧具有数百万个像素,并且需要专门编程的计算机硬件来处理视频数据,以在商业上合理的时间量内提供期望的图像处理任务或应用。
428.代码模块或任何类型的数据可以被存储在任何类型的非暂态计算机可读介质上,诸如包括硬盘驱动器、固态存储器、随机存取存储器(ram)、只读存储器(rom)、光盘、易失性或非易失性存储设备,与它们相同或类似物的组合等的物理计算机存储装置。方法和模块(或数据)还可以作为所生成的数据信号(例如,作为载波或其它模拟或数字传播信号的一部分)在各种计算机可读传输介质(包括基于无线的和有线的/基于电缆的介质)上发送,并且可以采用多种形式(例如,作为单个或多路复用模拟信号的一部分,或者作为多个离散数字分组或帧)。所公开的过程或过程步骤的结果可以持久地或以其它方式存储在任何类型的非暂态有形计算机存储装置中,或者可以经由计算机可读传输介质传送。
429.在此描述或附图中描绘的流程图中的任何过程、框、状态、步骤或功能应当理解为可能表示代码模块、代码段或代码部分,其包括用于实施特定功能(例如,逻辑或算术)或过程中的步骤的一个或多个可执行指令。各种过程、块、状态、步骤或功能可以与在此提供的说明性示例组合、重新排列、添加、删除、修改或以其它方式改变。在一些实施例中,附加或不同的计算系统或代码模块可以执行在此描述的一些或全部功能。在此描述的方法和过程也不限于任何特定序列,并且与其相关的块、步骤或状态可以以适当的其它顺序执行,例如,以串行、并行或以一些其它方式。可以向所公开的示例实施例添加任务或事件或从中移除任务或事件。此外,在此描述的实现方式中的各种系统组件的分离是出于说明性目的,并且不应被理解为在所有实现方式中都需要这种分离。应当理解,所描述的程序部件、方法和系统通常可以一起集成在单个计算机产品中或打包成多个计算机产品。许多实现方式变化都是可能的。
430.过程、方法和系统可以在网络(或分布式)计算环境中实现。网络环境包括企业范围的计算机网络、内联网、局域网(lan)、广域网(wan)、个人局域网(pan)、云计算网络、众包计算网络、互联网和万维网。网络可以是有线或无线网络或任何其它类型的通信网络。
431.本公开的系统和方法各自具有若干创新方面,其中没有一个单独地对在此公开的期望属性负责或要求。以上所述的各种特征和过程可以彼此独立地使用,或者可以以各种方式组合。所有可能的组合和子组合都旨在落入本公开的范围内。对本领域技术人员来说,对本公开中描述的实现方式的各种修改是显而易见的,并且在不脱离本公开的精神或范围的情况下,在此定义的一般原理可以应用于其它实现方式。因此,权利要求不旨在限于在此所示的实现方式或实施例,而是与符合在此公开的本公开、原理和新颖特征的最宽范围相一致。
432.在单独实现方式或实施例的上下文中在本说明书中描述的某些特征也可以在单个实现方式或实施例中组合实施。相反,在单个实现方式或实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实现方或实施例式中实现。此外,尽管特征可以在上面被描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下可以从组合中排除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以用于子组合或子组合的变体。对于每个和所有实施例,没有单个特征或特征组是必需或必不可少的。
433.除非另有说明,或者在所使用的上下文中以其它方式理解,否则在此使用的条件语言,诸如“能够”、“可以”、“可能”、“可”、“例如”等通常旨在传达某些实施例包括某些特征、元件或步骤,而其它实施例不包括某些特征、元件或步骤。因此,这种条件语言通常不旨在暗示对于一个或多个实施例以任何方式需要特征、元素或步骤,或者一个或多个实施例必须包括用于决定是否在任何特定实施例中包括或将要执行这些特征、元件或步骤(无论是否有作者输入或提示)的逻辑。术语“包含”、“包括”、“具有”等是同义的并且以开放式方式包含使用,并且不排除附加元件、特征、动作、操作等。此外,术语“或”在其包含意义上(而不是在其独有意义上)使用,因此当使用时,例如,为了连接元素列表,术语“或”表示列表中的一个、一些或全部元素。另外,除非另有说明,否则本技术和所附权利要求中使用的冠词“一”、“一个”和“该”应理解为表示“一个或多个”或“至少一个”。
434.如在此所使用的,指代项目列表中的“至少一个”的短语是指那些项目的任何组合,包括单个成员。例如,“a、b或c中的至少一个”旨在涵盖:a、b、c、a和b、a和c、b和c,以及a、b和c。除非另外特别说明,否则诸如短语“x、y和z中的至少一个”的联合语言以其它方式通过上下文理解为通常用于传达项目、术语等可以是x、y或z中的至少一个。因此,这种联合语言通常不旨在暗示某些实施例需要x中的至少一个、y中的至少一个和z中的至少一个各自存在。
435.类似地,虽然可以以特定顺序在附图中描绘操作,但应认识到,不需要以所示的特定顺序或按顺序执行这些操作,或者执行所有示出的操作,以实现期望的结果。此外,附图可以以流程图的形式示意性地描绘一个或多个示例过程。然而,未示出的其它操作可以包含在示意性示出的示例方法和过程中。例如,可以在任何所示操作之前、之后、同时或之间执行一个或多个附加操作。另外,可以在其它实现方式中重新排列或重新排序操作。在某些情况下,多任务处理和并行处理可能是有利的。此外,上述实现方式中的各种系统组件的分离不应被理解为在所有实现方式中都需要这种分离,并且应当理解,所描述的程序组件和系统通常可以在单个软件产品中集成在一起或者被打包到多种软件产品。另外,其它实现方式在以下权利要求的范围内。在一些情况下,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。