对跟踪和映射误差稳健的大规模表面重构转让专利

申请号 : CN201480064731.0

文献号 : CN105765631B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : M·J·格莱J·A·克拉克

申请人 : 微软技术许可有限责任公司

摘要 :

物理空间的深度图是使用由诸如机器人或用户所佩戴的头戴式显示设备之类的装备承载的深度传感器来获得的。可见光图像也被获得。这些图像和定向读数被用来创建包括通过链接连接的节点的姿态图。这些节点与装备的不同姿态相关联以及相应的图像相关联。这些节点之间的链接表示这些图像之间的对应关系以及这些节点的坐标系之间的变换。随着新图像被捕捉,姿态图被更新以降低误差累积。此外,物理空间中的各表面可根据姿态图的当前状态在任何时间被重构。表面重构过程中使用的体被锚定到这些节点,使得随着姿态图被更新,这些体的位置被调整。

权利要求 :

1.一种重构物理空间的方法,包括:

在装备通过多个姿态在所述物理空间中移动时,使用所述装备承载的相机获得所述物理空间的多个图像;

确定每一姿态的定向和坐标系;

将所述物理空间划分成多个体;

对于所述多个体中的每一体,使用所述装备承载的深度传感器获得所述物理空间的深度图;

提供姿态图,所述姿态图包括多个节点和所述节点之间的链接,每一节点与所述姿态之一相关联,所述图像之一与所述姿态之一相关联,且所述坐标系之一与所述姿态之一相关联,并且所述链接定义所述图像之间的对应关系以及所述坐标系之间的变换;

对于每一体,将该体锚定到所述节点之一;

随着多个图像被获得,更新所述姿态图的状态,所述更新包括更新所述节点中的一者或多者以及所述链接中的一者或多者;

根据所述姿态图的所述状态重构所述体中的一者或多者中的表面(1306-1308);以及将虚拟对象显示在距增强现实投影系统的所述表面指定距离处。

2.如权利要求1所述的方法,其特征在于,进一步包括:基于对所述姿态图的所述状态的更新,将所述体之一重新锚定到所述节点中的另一节点。

3.如权利要求1所述的方法,其特征在于:更新所述姿态图的状态包括更新所述坐标系中的一者或多者以提供一个或多个经更新的坐标系;以及所述重构包括使用所述一个或多个经更新的坐标系将所述体中的一者或多者投影到所述深度图中的一者或多者中。

4.如权利要求1所述的方法,其特征在于,进一步包括:将所述体中的一者或多者中的每一个分割成多个块;以及确定所述块中的哪些块处于所述深度传感器的视锥体中以及所述块中的哪些块不处于所述深度传感器的视锥体中,所述重构包括将处于所述视锥体中的块投影到所述深度图中的一者或多者中,但不将不处于所述视锥体中的块投影到所述深度图中的一者或多者中。

5.如权利要求1所述的方法,其特征在于:更新所述姿态图的所述状态包括执行批量调整,在所述批量调整中,所述坐标系和所述变换被调整。

6.如权利要求1所述的方法,其特征在于:更新所述姿态图的状态包括更新所述对应关系中的一者或多者。

7.如权利要求1所述的方法,其特征在于:更新所述姿态图的状态包括执行重新定位,在所述重新定位中,所述姿态图中的拓扑结构存在改变,并且所述重新定位包括环闭合,在所述环闭合中所述节点的经闭合的环被形成在所述姿态图中。

8.如权利要求1所述的方法,其特征在于:所述体被定义为在所述多个体中的各相邻体中提供处于或大于最小阈值的重叠量;以及对于所述体中的至少一者,对所述姿态图的所述状态的更新降低重叠量。

9.一种用于重构物理空间的装置,包括:定向传感器;

深度传感器;

相机;

增强现实投影系统;以及

与所述定向传感器、所述深度传感器、所述相机以及所述增强现实投影系统通信的处理器,所述处理器被配置成:从所述相机获得所述物理空间的多个图像,基于所述定向传感器来将姿态和坐标系与每一图像关联,将所述物理空间划分成多个体;

对于所述多个体中的每一体,通过所述深度传感器获得所述物理空间的深度图,提供姿态图,所述姿态图包括多个节点和所述节点之间的链接,每一节点与所述姿态之一相关联,所述图像之一与所述姿态之一相关联,且所述坐标系之一与所述姿态之一相关联,并且所述链接定义所述图像之间的对应关系以及所述坐标系之间的变换;

对于每一体,将该体锚定到所述节点之一;

随着所述多个图像被获得,更新所述姿态图的状态;

根据所述姿态图的所述状态重构所述体中的一者或多者中的表面;以及使得所述增强现实投影系统显示与所述平面有关的增强现实图像。

10.如权利要求9所述的装置,其特征在于,所述处理器被配置成:为了更新所述姿态图的所述状态,更新所述坐标系中的一者或多者以提供一个或多个经更新的坐标系;以及为了重构所述表面,使用所述一个或多个经更新的坐标系将所述体中的一者或多者投影到所述深度图中的一者或多者中。

说明书 :

对跟踪和映射误差稳健的大规模表面重构

[0001] 背景
[0002] 表面重构(SR)涉及标识物理空间中的对象的表面。例如,表面可表示房间中的墙壁、地板、天花板、家具或其他对象。各表面提供物理环境的模型。这样的模型可在大范围应用中使用。一个示例是引导机器人通过物理空间。另一示例是诸如通过使用头戴式显示设备向用户显示虚拟对象。
[0003] 概述
[0004] 本文中描述的技术提供用于重构物理空间中的表面的各实施例。
[0005] 物理空间的深度图是使用深度传感器获得的。深度图包含表示从深度传感器到物理空间中的各表面的距离的深度值。深度图是相对于物理空间中的各体(volume)来定义的,并且这些体的位置是相对于坐标系来定义的。例如,坐标系可根据用于承载深度传感器的装备的姿态(例如,位置和定向)来被定义。
[0006] 然而,随着附加的深度图被获得且附加的体被定义,这些体的位置的误差可累积。为了降低误差累积,物理空间的可见光图像被获得并被用于形成姿态图。姿态图包括与该装备的不同姿态以及相应的图像相关联的节点。各节点之间的链接表示这些图像之间的对应关系以及这些节点的坐标系之间的变换。有时,随着新图像被捕捉,姿态图被更新。例如,节点可通过更新与节点相关联的坐标系来被更新。
[0007] 通过将体锚定到姿态图的节点,表面重构过程得益于由坐标系的更新导致的增加的准确性。结果,体和表面可被更准确地放置。表面可根据姿态图的当前状态在任何时间重构。
[0008] 提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。本概述并非旨在标识出要求保护的主题的关键特征或必要特征,亦非旨在用作辅助确定要求保护的主题的范围。
[0009] 附图简述
[0010] 在附图中,相同编号的元素彼此对应。
[0011] 图1是用于表面重构的系统5的框图,该系统5包括装备、服务器和中枢计算系统。
[0012] 图2是图1的装备20作为头戴式显示(HMD)设备150的实现的俯视图。
[0013] 图3是描绘图2的HMD设备150的各个组件的框图。
[0014] 图4是描述图2的处理单元105的各个组件的框图。
[0015] 图5是图1的中枢计算系统50的一个实施例的框图。
[0016] 图6A描绘了用于使用姿态图来重构物理空间中的各表面的过程。
[0017] 图6B描绘了图6A的步骤603的进一步细节。
[0018] 图6C描绘了图6A的步骤604的进一步细节。
[0019] 图6D描绘了图6A的步骤605的进一步细节。
[0020] 图6E描绘了图6A的步骤606的进一步细节。
[0021] 图7描绘了用于执行图6A的过程的表面重构流水线。
[0022] 图8A描绘了如结合图7的3D融合子系统734讨论的符号距离函数(SDF)的示例。
[0023] 图8B描绘了如结合图7的3D融合子系统734讨论的投影到体素中的深度图的示例。
[0024] 图9A描绘了一组体900-904以及深度传感器的视锥体(frustum)920。
[0025] 图9B描绘了被添加到图9A的一组体900-904中的新的体,如由初始放置的体905和经重新定位的体906所表示的。
[0026] 图10A描绘了具有初始重叠量的体。
[0027] 图10B描绘了在图10A的体的位置被基于对姿态图的调整而调整从而导致降低的重叠量之后的这些体。
[0028] 图11A描绘了因过量的重叠而裁剪体中的块的示例。
[0029] 图11B描绘了因过量的重叠而裁剪体中的块的另一示例。
[0030] 图12A描绘了表示物理空间中的装备的姿态的姿态图的示例。
[0031] 图12B描绘了针对相机所捕捉的图像的示例数据记录。
[0032] 图12C描绘了针对深度传感器所捕捉的深度图的示例数据记录。
[0033] 图12D描绘了姿态图的示例数据记录。
[0034] 图13A描绘了示出深度传感器的视锥体的示例物理空间。
[0035] 图13B描绘了与图13A一致的深度图。
[0036] 图13C描绘了图13B的深度图的距离值。
[0037] 图14A描绘了示出可见光相机的视野的图13A的示例物理空间。
[0038] 图14B描绘由图14A的可见光相机获得的图像。
[0039] 图14C描绘了随着HMD设备的姿态被改变而示出可见光相机的另一视野的图13A的示例物理空间。
[0040] 图14D描绘了由图14C的可见光相机获得的图像。
[0041] 图15A描绘了各体在图13A的物理空间中的初始放置。
[0042] 图15B描绘了图15A的体的经调整的放置。
[0043] 图16描绘了其中虚拟对象被放置在图13A的物理空间中的示例应用。
[0044] 详细描述
[0045] 表面重构可在许多应用中被使用,包括放置虚拟对象、定义游戏空间、路径查找、碰撞检测或虚拟对象对物理空间的遮挡。
[0046] 大规模的表面重构要求对跟踪和映射误差的稳健性。例如,具有大尺寸的物理空间可以是家里的房间、办公室或博物馆或室外空间。在表面重构过程中,使用由装备上承载的深度传感器获取的多个深度图来获取各表面。这些表面是使用易造成累积不准确性的计算机视觉跟踪和映射技术来相对于彼此定位的。此外,随着更多关于环境的信息变得可用,对装备的姿态估计随时间改变。
[0047] 一些SR解决方案在小规模上操作,或者忽略跟踪误差。然而,这导致非自身一致的SR数据。本文中提供的技术解决了以上和其他问题。在一个方法中,SR过程涉及创建要重构的多个分开的SR体。每一体都被锚定到跟踪和映射姿态图中的节点(例如,关键帧)(例如,与该节点相关联)。在姿态图诸如由于批量调整或重新定位而更新时,这些体相应地自动调整其姿态。
[0048] 附加方面包括允许这些体在其被初始放置时以某种程度重叠以避免原本在基于姿态图的更新来调整体的位置时可能发生的间隙。新的体可被创建,或者现有的体可在尺寸方面被扩展,以移除物理空间的覆盖中可能发生的任何间隙。此外,当各SR体过度重叠时,可删除冗余的体。在合适的情况下,可偶尔将体重新锚定到最接近的节点。
[0049] 图1-5描述可用于表面重构的各种系统。图6和更后面的附图描绘表面重构技术和场景。
[0050] 图1是用于表面重构的系统5的框图,该系统5包括装备、服务器和中枢计算系统。装备、服务器和中枢计算系统是硬件计算设备的示例。装备20可表示在物理空间中到处移动的设备。该设备可被安装到例如自主移动机器人上,或例如由用户(例如人)携带或佩戴,诸如在头戴式显示设备上。装备在其到处移动时具有不同的姿态。在跟踪和映射算法的上下文中,姿态指示空间点和方向。也就是说,姿态是位置和定向的组合。装备包括诸如用于经由网络30与服务器10通信的通信接口11。增强现实投影系统22可用于将增强现实图像(例如,虚拟对象)显示在用于执行表面重构的物理空间中。控制电路23用于控制装备的各个组件。可见光相机24例如以固定速率(诸如每秒钟若干次)或以指定的次数获得物理空间的图像。
[0051] 深度传感器25获得物理空间的深度图。通常,与相机图像相比,深度图被更不频繁地获得。深度传感器可以是例如飞行时间相机或立体相机。在装备是头戴式显示设备的情况下,注视检测系统26可用于确定用户的注视。例如,这在将虚拟对象放置在物理空间中时可以是有用的。定向传感器27获得关于装备的定向的读数。例如,定向读数可与每一图像和深度图相关联。这些可以是例如以下进一步讨论的惯性传感器。存储器28可存储由控制电路执行的可执行代码以提供本文中描述的功能,并存储由可见光相机24、深度传感器25、注视检测系统26和定向传感器27获得的信息。
[0052] 任选地,装备与服务器10通信。例如,装备可上传其收集的一些信息或下载诸如可执行代码之类的信息、增强现实投影系统的数据或其他内容。在一个方法中,服务器在该装备远程。在另一方法中,装备与诸如在用户的家中的本地中枢计算系统50通信。中枢计算系统可以是例如运行各种游戏和非游戏应用的游戏控制台。还参见图5。
[0053] 在一个方法中,网络30是诸如 红外(例如, )或蜂窝(例如,GSM)之类的无线网络。任选地,多个装备可在公共物理空间内彼此通信。
[0054] 结合以下附图提供了这些系统的进一步细节。
[0055] 一般来说,这些通信接口允许各计算设备之间的通信。控制电路提供对相应的计算设备的硬件和/或软件的控制。例如,控制电路可包括执行存储在一个或多个其上包含有处理器可读软件的有形的非瞬态处理器可读存储设备上的指令以供执行本文所述方法的一个或多个处理器。存储器可存储指令作为代码,并可提供处理器可读存储设备。存储器可提供数据库、数据存储或被访问来执行本文中描述的技术的其他数据源。存储器可以是硬件存储器设备。
[0056] 图2是图1中的装备20作为头戴式显示器(HMD)设备150的实现的俯视图。仅详细描绘了HMD设备的右侧。HMD设备包括通常可以是眼镜架形状的头戴式镜架101、镜腿102和103、以及鼻梁104的前镜片框。在鼻梁104中置入了话筒110以用于记录声音(包括说出的用户命令)以及将对应的音频数据传送给处理单元105。在透视近眼HMD设备的示例中,透镜
116和119是透视的。沉浸式HMD设备可被替代地使用。
[0057] HMD设备可被戴在用户的头上,使得该用户可以透过显示器看并从而看到包括不是由该HMD设备生成的图像的现实世界场景。HMD设备可以是自包含的,使得其所有组件由镜架来承载。任选的,HMD设备的一个或多个组件不由该镜架来承载。例如,不被该镜架承载的一个或多个组件可以通过导线来物理地附连到该镜架所承载的某一组件。
[0058] 此外,未被该镜架承载的一个或多个组件可以与该镜架所承载的某一组件进行无线通信,并且没有通过导线或以其他方式物理地附连到该镜架所承载的某一组件。在一种方法中,未被该镜架承载的一个或多个组件可由该用户携带,如在腕上。例如,处理单元105可经由有线链路或经由无线链路连接到该镜架中的组件。术语“HMD设备”可涵盖镜架上的组件和相关联的镜架外的组件两者。
[0059] 处理单元105包括用于操作HMD设备的计算能力中的许多能力。该处理器可以执行存储在处理器可读存储设备上的指令以执行本文描述的过程。在一个实施例中,处理单元与一个或多个服务器、中枢计算系统、其他HMD、或其他计算设备无线通信。控制电路136提供支持HMD设备的其他组件的各种电子装置。
[0060] 在HMD设备的前面是一个或多个面向前方的或面向房间的可见光相机113。相机可包括可捕捉视频和静态图像以及将图像传送给处理单元的至少一个可见光摄像机。相机可用于标识物理空间中的各特征,诸如色彩、图案、形状、线等等。深度传感器可由红外发射器115和红外传感器/检测器117的组合来形成。可见光视频相机也可以是深度传感器的一部分。可见光相机113面朝外,并具有与用户的视点类似的视点。
[0061] HMD设备的镜架的一部分围绕包括一个或多个透镜的显示器。该显示器包括光导光学元件112、不透明滤光器114、前部右侧透视透镜116和后部右侧透视透镜118。在一个实施例中,不透明滤光器114处于透视透镜116之后并与其对齐,光导光学元件112处于不透明滤光器114之后并与其对齐,而透视透镜118处于光导光学元件112之后并与其对齐。不透明滤光器114滤除自然光(要么逐像素地,要么均匀地)以增加增强现实图像的对比度。光导光学元件112将人造光引导到眼睛。类似地,HMD的左侧包括前部左侧透视透镜119和后部左侧透视透镜121。
[0062] 在镜腿102处或镜腿102内安装有图像源,该图像源(在一个实施例中)包括用于对增强现实图像进行投影的微显示器120、以及用于将图像从微显示器引导到光导光学元件112中的透镜122。在一个实施例中,透镜122是准直透镜。增强现实发射器可包括微显示器、诸如透镜122和光导光学元件112之类的一个或多个光学组件、以及诸如驱动器之类的相关联的电子装置。这样的增强现实发射器与该HMD设备相关联,并向用户的眼睛发射光,其中该光表示增强现实静态图像或视频图像。这可用于将虚拟对象显示在物理空间中。
[0063] 结合附图3进一步讨论的控制电路136提供支持HMD设备的其他组件的各种电子装置。处于镜腿102内部或安装在镜腿102处的有耳机130、惯性传感器132(例如,图1的定向传感器27的示例)。在一个实施例中,惯性传感器132包括三轴磁力计132A、三轴陀螺仪132B、以及三轴加速度计132C(参见图3)。惯性传感器用于感测HMD设备的位置、定向、突然加速。例如,惯性传感器可以是用于确定佩戴在用户的头部上的HMD的定向和位置的一个或多个传感器。
[0064] 微显示器通过透镜122来投影图像。光导光学元件112将来自微显示器的光传送到用户的眼睛140,同时允许来自HMD设备前方的光传送经过光导光学元件一直到眼睛140,如箭头142所描绘的,从而允许用户除了接收来自微显示器的增强现实图像之外还具有HMD设备的前方空间的实际直接视图。从而,光导光学元件的壁是透视的。光导光学元件包括第一反射面124(例如镜面或其他表面)。来自微显示器的光穿过透镜122并入射在反射面124上,反射面124反射该入射光,使得光通过内反射而被陷在包括光导光学元件的平面基底内。在基底的表面上进行若干次反射之后,所陷的光波到达选择性反射面的阵列,包括示例表面126。
[0065] 反射面126将从基底出射的入射光波耦合进用户的眼睛140。由于不同光线以不同角度击中各反射面126,它们将在基底内部行进并以不同角度被反弹。因此,不同光线将被所述反射面中的不同反射面从基底反射出。关于哪些光线将被哪个表面126从基底反射出的选择是通过选择表面126的合适角度来设计的。在一个实施例中,每只眼睛将具有其自己的光导光学元件。当HMD设备具有两个光导光学元件时,每只眼睛都可具有其自己的微显示器,微显示器可以在两只眼睛中显示相同图像或者在两只眼睛中显示不同图像。在另一实施例中,可以存在将光反射到两只眼睛中的一个光导光学元件。
[0066] 图3是描绘图2的HMD设备150的各个组件的框图。HMD设备组件包括跟踪各种条件的许多传感器。在示例实现中,HMD设备将从处理单元105接收关于增强现实图像的指令,并且将传感器信息提供回给图4中描绘的处理单元。任选地,处理单元还从服务器或中枢计算设备接收感测信息。基于该信息和/或其他准则,处理单元可确定在何处以及在何时向用户提供增强现实图像并相应地将指令发送给HMD设备。
[0067] 注意,一些组件(例如眼睛跟踪相机134B、微显示器120、不透明滤光器114、眼睛跟踪照明134A、以及耳机130)是以阴影示出的,以指示出这些设备中的每一者都存在两个,其中一个用于HMD设备的左侧,而一个用于HMD设备的右侧。类似地,深度传感器313可包括例如红外发射器115和红外传感器/检测器117。在另一方法中,彼此间具有已知间隔的两个或更多个相机被用作深度相机,以便获得房间内的对象的深度数据,深度数据指示出从相机/HMD设备到该对象的距离。任选地,使用一个可见光相机113。眼睛跟踪相机134B和眼睛跟踪照明134A是眼睛跟踪组件134的一部分。
[0068] 来自面向前方的相机的图像可被用于标识用户的视野中的人、手势、以及其他对象。例如,可确定用户何时作出诸如指向某一对象之类的手势。现实世界对象可被标识并与数据流相关联,或者被用作显示先前相关联的数据流的位置。
[0069] 控制电路300与电源管理电路302通信。控制电路300包括处理器310、与存储器344(例如DRAM)通信的存储器控制器312、相机接口/缓冲器316、深度传感器接口/缓冲器318、显示驱动器320、显示格式化器322、定时生成器326、显示输出接口328、以及显示输入接口330。GPS电路317可用于标识HMD设备的位置。
[0070] 在一个实施例中,控制电路300的所有组件都通过专用线路或一个或多个总线彼此进行通信。在另一实施例中,控制电路300的每个组件都与处理器310通信。相机接口/缓冲器316向可见光相机提供接口并存储来自可见光相机的图像。深度传感器接口/缓冲器318向深度传感器提供接口并存储来自深度传感器的图像。
[0071] 显示驱动器320驱动微显示器。显示格式化器322向控制不透明滤光器114的不透明度控制电路324提供与微显示器上正在显示的增强现实图像有关的信息。定时生成器326被用于为该系统提供定时数据。显示输出接口328是用于将来自面向前方的相机113的图像提供给处理单元105的缓冲器。显示输入接口330是用于接收诸如要在微显示器上显示的增强现实图像之类的图像的缓冲器。
[0072] 当处理单元通过导线被附连到HMD设备的镜架,或通过无线链路通信,以及通过腕带被佩戴在用户的腕上时,显示输出接口328和显示输入接口330与作为到处理单元的接口的带接口332进行通信。该方法降低了HMD设备的镜架承载的组件的重量。如上所述,在其他方法中,处理单元可由镜架承载并且不使用带接口。
[0073] 电源管理电路302包括电压调节器334、眼睛跟踪照明驱动器337、音频DAC和放大器338、话筒前置放大器音频ADC 340、以及时钟生成器345。电压调节器334通过带接口332从处理单元接收电力,并将该电力提供给HMD设备的其他组件。眼睛跟踪照明驱动器如上文所述的那样为眼睛跟踪照明134A提供红外(IR)光源。音频DAC和放大器338接收来自耳机130的音频信息。话筒前置放大器和音频ADC340提供用于话筒110的接口。作为定向传感器是一部分,电源管理单元302还向三轴磁力计132A、三轴陀螺仪132B以及三轴加速度计132C提供电力并从其接收回数据。
[0074] 图4是描述图2的处理单元105的各组件的框图。控制电路404与电源管理电路406通信。控制电路404包括中央处理单元(CPU)420、图形处理单元(GPU)422、高速缓存424、RAM 426、与存储器430(例如DRAM)进行通信的存储器控制器428、与闪存434(或其他类型的非易失性存储)进行通信的闪存控制器432、经由带接口402和带接口332(在被使用时)与HMD设备进行通信的显示输出436、经由带接口402和带接口332(在被使用时)与HMD设备进行通信的显示输入438、与用于连接到话筒的外部话筒连接器442进行通信的话筒接口440、用于连接到无线通信组件446的外围部件互连(PCI)express接口444、以及(诸)USB端口448。
[0075] 在一个实施例中,无线通信组件446可包括启用 的通信设备、 通信设备、或红外通信设备。无线通信组件446是无线通信接口,在一个实现中,该无线通信接口接收与由HMD设备显示的内容同步的数据。进而,可响应于所接收的数据来显示增强现实图像。在一个方法中,这样的数据是从服务器、中枢计算系统、本地 网络或WLAN、蜂窝电话网络、本地存储设备或其他源接收的。
[0076] USB端口可被用于将处理单元对接到中枢计算设备50,以便将数据或软件加载到处理单元上以及对处理单元进行充电。在一个实施例中,CPU 420和GPU 422是用于确定在何处、何时以及如何在用户的视野内插入增强现实图像的主负荷设备。
[0077] 电源管理电路406包括时钟生成器460、模数转换器462、电池充电器464、电压调节器466和HMD电源476。模数转换器462连接到充电插座470以用于接收AC供电并为该系统产生DC供电。电压调节器466与用于向该系统提供电能的电池468进行通信。电池充电器464被用来在从充电插孔468接收到电能之际(通过电压调节器466)对电池470进行充电。HMD电源476向HMD设备提供电力。
[0078] 确定在何处、如何以及何时插入增强现实图像的计算可由HMD设备和/或由与HMD设备通信的计算设备来执行。
[0079] 在一个示例实施例中,HMD设备将基于HMD设备的视野,创建用户所处环境的模型并跟踪该环境中的各种对象。模型以及跟踪信息被提供给处理单元。HMD设备所获得的传感器信息被传送给处理单元4。处理单元细化用户的视野并向HMD设备提供关于如何、在何处以及何时插入增强现实图像的指令。
[0080] 图5是图1的中枢计算系统50的一个实施例的框图。在这一实施例中,计算系统是多媒体控制台500,诸如游戏控制台等。多媒体控制台具有CPU 501以及便于处理器访问各种类型的存储器的存储器控制器502,各种类型的存储器包括闪存只读存储器(ROM)503、随机存取存储器(RAM)506、硬盘驱动器508,以及便携式媒体驱动器505。在一种实现中,CPU包括1级高速缓存510和2级高速缓存512,这些高速缓存用于临时存储数据并因此减少对硬盘驱动器508进行的存储器访问周期的数量,从而提高处理速度和吞吐量。
[0081] CPU、存储器控制器以及各种存储器设备经由一个或多个总线(未示出)互连。
[0082] 在一个实现中,CPU、存储器控制器、ROM以及RAM被集成到公用模块514上。在此实现中,ROM被配置为通过PCI总线和ROM总线(两者都没有示出)连接到存储器控制器的闪存ROM。RAM被配置为多个双倍数据速率同步动态RAM(DDR SDRAM)模块,它们被存储器控制器通过分开的总线(未示出)独立地进行控制。硬盘驱动器和便携式媒体驱动器被示为通过PCI总线和AT附加(ATA)总线516连接到存储器控制器。
[0083] GPU 520和视频编码器522形成用于高速和高分辨率图形处理的视频处理流水线。
[0084] 音频处理单元524和音频编解码器(编码器/解码器)526形成对应的用于对各种数字音频格式进行多通道音频处理的音频处理流水线。通过通信链路(未示出)在音频处理单元和音频编解码器之间传送音频数据。视频和音频处理流水线向A/V(音频/视频)端口528输出数据,以便传输到电视机或其它显示器。在所示出的实现中,视频和音频处理组件520-528被安装在模块上。
[0085] 模块514包括USB主控制器531和网络接口532。USB主控制器被示为通过总线(例如,PCI总线)与CPU和存储器控制器进行通信,并用作外围控制器504(1)-504(4)的主机。网络接口提供对网络(例如,因特网、家庭网络等)的访问,并且可以是各种各样的各种有线或无线接口组件中的任一者。
[0086] 在所描绘的实现中,控制台包括用于支持四个外围设备控制器的控制器支持子组件540。控制器支持子部件包括支持与诸如,例如,媒体和游戏控制器之类的外部控制设备的有线和无线操作所需的任何硬件和软件组件。前面板I/O子组件542支持电源按钮512、弹出按钮541,以及任何LED(发光二极管)或暴露在控制台的外表面上的其它指示器等多个功能。这些子部件通过一个或多个电缆部件544与模块进行通信。在其他实现中,控制台可以包括另外的控制器子组件。光学I/O接口535发送和接收可被传达到模块514的信号。该接口可对遥控器590作出响应。
[0087] 存储器单元(MU)540(1)和540(2)可以分别连接到MU端口“A”530和“B”530。附加的MU(例如,MU 540(3)-540(6))被示为可连接到外围设备控制器504(1)和504(3),即每一个控制器两个MU。控制器504(2)和504(4)也可以被配置成接纳MU(未示出)。每一个MU都提供附加存储,在其上面可以存储游戏、游戏参数、及其它数据。在一些实现中,其它数据可以包括数字游戏组件、可执行的游戏应用,用于扩展游戏应用的指令集、以及媒体文件中的任何一种。当被插入到控制台或控制器中时,MU可以被存储器控制器访问。系统供电模块向控制台的组件供电。风扇552冷却控制台内的电路。还提供微控制器单元554。
[0088] 包括机器指令的应用560被存储在硬盘驱动器上。当控制台被接通电源时,应用的各个部分被加载到RAM、和/或高速缓存中以供在CPU上执行,其中应用是一个这样的示例。各种应用可以被存储在硬盘驱动器上以供在CPU上执行。
[0089] 控制台可通过简单地将系统连接到监视器、电视机、视频投影仪、或其它显示设备而被用作独立系统。在此独立模式下,控制台允许一个或多个玩家玩游戏或欣赏数字媒体,例如观看电影或欣赏音乐。然而,随着宽带连接的集成通过网络接口而成为可能,控制台还可以作为较大的网络游戏社区的参与者来操作。
[0090] 图6A描绘了用于使用姿态图来重构物理空间中的各表面的过程。步骤600指示装备在物理空间中以不同的姿态移动。步骤601涉及通过装备上的可见光相机获得物理空间的图像。步骤602涉及通过装备上的定向传感器获得定向读数。步骤603涉及处理这些图像和定向读数以提供和更新姿态图。步骤604通过装备上的深度相机获得物理空间中的各体的定向深度图。步骤605涉及将这些体锚定到姿态图中的节点。步骤606涉及基于姿态图的状态来重构物理空间中的各表面。注意,这些步骤中的一些步骤可并发地执行或按不同的次序执行。一般来说,获得图像和更新姿态图可与获得深度图和重构各表面分开地发生。类似地,获得深度图可与获得图像和更新姿态图分开地发生。随着装备继续移动,附加的图像和深度图可被捕捉和处理。关于该过程的更多细节在以下提供。
[0091] 图6B描绘了图6A的步骤603的进一步细节。步骤603涉及处理这些图像和定向读数以提供并更新姿态图。步骤610涉及更新定向读数以及装备的姿态的图像,并确定图像特征。一般来说,图像可被处理以按紧凑方式表示该图像、降低数据存储需求以及促成基于特征的图像匹配。图像可包括诸如色彩、图案、形状、线等特征,并且两个图像中的共同特征可被标识出。表示图像的一种方式是使用特征检测器和描述器。流行的描述器包括比例不变特征变换(SIFT)和加速稳健特征(SURF)。已知这些对缩放、旋转和照明改变稳健。
[0092] 例如,在SIFT技术中,首先从一组参考图像中提取物理空间中的对象的关键点,并将其存储在数据库中。通过将来自新图像的每一特征个体地与该数据库进行比较并基于其特征向量的欧式距离寻找出候选匹配特征来识别新图像中的对象。在完整的匹配集合中,就对象及其在新图像中的位置、尺寸和定向方面达成一致的关键点子集被标识出以过滤出良好匹配。确定一致群集是通过使用通用霍夫变换的高效散列表实现来快速执行的。就对象及其姿态达成一致的三个或更多个特征的每一群集随后遭受更详细的模型验证,并随后异常值被丢弃。最后,在给出拟合准确性和可能的错误匹配的数目的情况下,特定特征集合指示存在对象的概率被计算。通过所有这些测试的对象匹配可用高置信度被标识为正确。
[0093] 判定步骤611确定该姿态是否为新。在一个方法中,如果姿态并不与先前姿态或另一姿态显著不同,则该姿态不可被认为是新的,在该情况下,流程返回到步骤610。例如,如果定向与其他节点中的显著不同,则该姿态可以是新的。或则,如果图像的特征与其他节点中的显著不同或者如果自最后一个新姿态起已经经过了指定时间量,则该姿态可以是新的。在一个方法中,相机提供视频图像序列,并且所选的图像适合在定义节点时使用。
[0094] 如果该姿态是新的,则步骤612将新节点添加到姿态图。步骤613确定与姿态的定向相关联的坐标系。或者,该坐标系可能已经被确定。步骤614将以该姿态取得的图像(例如,在装备/相机已采取该姿态时,由该装备上的该相机捕捉的图像)以及坐标系与新节点相关联。例如,这可涉及将该信息存储在数据库中,如以下进一步讨论的。图像可按任何形式(包括像素数据和/或提取的特征数据)来表示和存储。步骤615确定与新节点相关联的图像与姿态图中的一个或多个其他节点的图像之间的对应关系。例如,这可涉及将新节点的图像的特征与姿态图中接近于该新节点的一个或多个其他节点的图像的特征进行比较。当两个图像中的特征相对近似时,这两个图像之间的对应关系相对较高。例如,对应关系的程度可使用SIFT技术来确定。
[0095] 步骤616确定新节点的坐标系和一个或多个其他节点的坐标系之间的变换。步骤617将变换和对应关系与新节点和一个和多个其他节点之间的一个或多个链接关联。步骤
618在合适的情况下更新姿态图中的其他节点和链接。例如,姿态图的状态的更新可涉及执行批量调整,在该批量调整中坐标系和变换被调整,或者更新这些坐标系中的一者或多者,或者执行重新定位,在该重新定位中存在姿态图的拓扑结构的变化。例如,该重新定位可包括环闭合,在环闭合中,在姿态图中形成各节点的闭合环。
[0096] 图6C描绘了图6A的步骤604的进一步细节。步骤604涉及通过装备上的深度传感器获得物理空间中的各体的深度图。步骤620涉及决定获取深度图。例如,这可在装备对准物理空间中其深度数据尚未被获得的区域时发生。步骤621涉及将物理空间划分成一个或多个体,并在合适的情况下创建新的体。体可以是物理空间中形状统一的空间,诸如立方体。在一个方法中,体被分割成被称为块的子体,其中每个体存在N×N×N子体,并且N是1或大于1的整数。此外,每一块可被分割成8×8×8个体素。步骤622涉及将这些体定位成彼此重叠。例如,当体被初始定位时,重叠量可被设为超过最小阈值,但不超过最大阈值。参见图
10A和10B以得到进一步细节。在体被初始定位后,可调整体的位置,使得重叠量可改变。然而,对重叠的初始使用趋于避免在调整体的位置时形成间隙。步骤623涉及对具有过多重叠量(例如,多于最大阈值)的体进行裁剪。参见图11A和11B。
[0097] 图6D描绘了图6A的步骤605的进一步细节。步骤605涉及将这些体锚定到姿态图中的节点。步骤630涉及标识姿态图中具有与同深度图相关联的姿态类似的姿态的节点。也就是说,被用来创建姿态图中的节点的装备的姿态与深度图被捕捉时装备的姿态类似或相同。在一个方法中,这些姿态是相同的并且在相同时间发生。在另一方法中,这些姿态是相同或相似的,并在不同时间发生。步骤631涉及将体锚定到例如在以下进一步讨论的数据库中标识出的节点。由此,体与节点相关联,使得该体是基于该节点的坐标系被定位在物理空间中的。当该节点的坐标系被调整时,该体在物理空间中的位置也被调整。通常,体持续被锚定到一个节点,但该体有可能被重新锚定到不同的节点,诸如在由于对姿态图的更新,不同节点的姿态变得更接近于用于获得该体的姿态的情况下。同样,各体可在一对一或多对一的基础上被锚定到各节点。
[0098] 图6E描绘了图6A的步骤606的进一步细节。步骤606涉及基于姿态图的状态来重构物理空间中的各表面。步骤640涉及标识一个或多个体及相关联的深度图以用于表面重构。例如,这些体可对应于物理空间的在用户的视野中的一部分。当用户转动他的头并看物理空间的不同部分时,表面重构中所涉及的体可相应地改变。步骤641涉及确定一个或多个体被锚定到的一个或多个节点。这可通过查找数据库中被交叉引用到体的节点来完成。步骤
642涉及确定一个或多个节点的坐标系。这可通过查找数据库中被交叉引用到节点的坐标系来完成。步骤643涉及基于一个或多个坐标系将一个或多个体投影到一个或多个深度图中。尤其地,深度图是相对于坐标系来定义的,使得该深度图的深度值基于该坐标系与体的各部分相关联。
[0099] 图7描绘用于执行图6A的过程的表面重构流水线。在该示例实现中,SR流水线跨专用集成电路(ASIC)700和片上系统(SoC)740两者运行。ASIC和SoC各自托管多个设备和子系统。箭头指示数据流动方向。传感器710连接到ASIC。传感器被承载在诸如HMD设备或机器人之类的装备上。这些传感器包括诸如惯性测量单元(IMU)之类的感测旋转和线加速度的定向传感器711。可见光相机712获得物理空间的可见光图像,并且深度传感器713获得物理空间的深度图。示例实现使用作为深度传感器的飞行时间相机的时间。这一传感器测量从相机闪光、从物理空间中的表面反弹并返回到该传感器的光的往返时间。总往返时间花费几十纳秒。深度传感器的另一实现是一对立体可见光相机,但该方法可能导致较低质量的深度图。
[0100] 跟踪子系统720将传感器数据转换成姿态和互连的坐标框架的图。例如,在为HMD设备的示例情况下,这可以是头部跟踪子系统。跟踪子系统720对图服务子系统741作出响应,并包括跟踪和映射过程721。跟踪子系统720和图服务子系统741一起形成跟踪和映射子系统742。
[0101] SR融合和提取内核(SRFEK)730将深度图和姿态转换成表面图。SRFEK在ASIC上运行,并与ASIC和SoC两者中的其他过程通信。SRFEK在以下两条输入数据中取得:深度图和姿态。原始到深度子系统731从深度传感器中捕捉原始红外图像,并将其转换成深度图中的深度值。深度值指示物理空间中的一个或多个表面距深度传感器的距离。这些深度图具有透镜失真。为了解决这个,去失真子系统732将来自相机的透镜的失真效果从深度图中移除,以提供经去失真的深度图。这可涉及应用透镜失真模型(该模型的参数是通过校正测量的)以产生平的经去失真的图像。在运行时,这可涉及创建去失真图(查找表)并将其应用于每一深度图像素。
[0102] 3D融合子系统734将经去失真的深度图与姿态组合以将其融合到3D体中。融合涉及将深度图(其是2D图像)投影到体(其是3D的)中。例如,可使用表示从深度传感器到对象的表面的距离的符号距离函数(SDF)。参见图8A和8B以得到进一步细节。
[0103] 提取算法733用该体数据创建多边形网格。不是所有应用都需要多边形网格,但是多边形网格通常在诸如游戏引擎之类的使用网格来进行渲染和碰撞的应用中有用。在填充SDF体后提取网格的一种方式使用称为移动立方体(Marching Cubes)的算法。移动立方体背后的概念涉及将每一体数据框都转为多边形集合,其中这些多边形的顶点位于这些框的边上。
[0104] 3D融合子系统734和提取算法733的输出可被存储在SRFEK高速缓存735中。该输出包括表示物理空间的几何结构的经重构的表面。
[0105] 在给予SR服务750数据块和处理该数据的命令的情况下,SR服务750是控制SRFEK的较高级过程。SR服务还将通过表面重构获得的表面数据馈送给应用。该服务包括深度图获取子系统751,该深度图获取子系统751基于在何处以及在何时需要深度图来决定何时触发对深度图的获取。体放置子系统752决定如何将物理空间划分成各体,例如要创建多少体以及要将其放置在何处。决定要将体放置在何处是初始问题。可从一组先前定义的SR体开始。参见图9A和9B以获得进一步细节。
[0106] SR数据可占用很多存储器,使得该服务使用高速缓存驱逐和重新填充子系统753来决定要将哪些数据保持在存储器(例如SR服务器高速缓存754)中以及要将哪些数据存储在例如后备存储755中以供稍后使用。SR服务决定要驱逐和重新填充什么SR数据、何时驱逐和重新填充该数据、并向应用供应SR数据。SR服务在管理缩放时有用,两者都基于物理空间的尺寸以及所生成的数据的质量。该系统应对延伸在用户的紧邻邻近度上的物理范围(例如在若干米的物理空间中,诸如在办公建筑中)起作用。蛮力解决方案不将起作用,因为即使中间尺寸的区域使用了成百或上千个SR体并且每一SR体可使用几兆字节。SR系统可通过以下来缩放:将空间分区成诸体并在存储器和盘之间对这些体进行分页(例如,转移)。
[0107] SR服务可用高速缓存驱逐和重新填充子系统来实现持久性和数据可伸缩性两者。例如,该子系统可建立最大数目的体。这提供关于SR服务消耗的SoC主存储器的量的上限。
当那个上限将通过添加更多数据、或更多SR体而被超过时,可重新填充一些其他体。这类似于近期最少使用(LRU)驱逐策略,只是SR服务可驱逐最远的的体,例如距装备最远的体。此外,当装备重新进入其先前捕捉SR数据的区域时,可向高速缓存重新填充那个数据。由此,可通过将最接近的体加载到装备中来间歇地从后备存储重新填充高速缓存。注意,仍可添加新的体,使得其也对高速缓存填充作出贡献。
[0108] 许多应用可按类似的方式消耗SR数据。SR扩展和利用子系统760为应用开发者提供共用功能。扩展和利用可包括用于用现实世界集合结构来遮挡全息图的遮挡渲染761、用于添加有用的辅助信息的后处理762、现实对象和虚拟对象之间的碰撞检测763、用于帮助全息图放置的运作空间定义764和负空间分配765。SR网格后处理例程的示例包括接合顶点、拉合网格、计算表面法线、剪裁重叠网格中的三角、平滑网格、以及简化网格以降低多边形的数目。
[0109] 关于全息图放置,网格对于某些类型的全息图放置逻辑而言太过精细和复杂。相反,应用开发者可发现处理诸如墙壁、天花板和底板之类的抽象物更容易。一个解决方案将是寻找出平坦三角形、标识连接的平坦区域并随后将各平面装到那些区域。为了寻找出低曲率的连续区域,多个分开的网格先被组合到单个连续网格。这是接合和拉合有用的地方。
[0110] 关于计算表面法线,为了寻找出平坦区域,计算表面曲率是有用的。SR流水线可从SDR(使用有限的差异)或从网格(使用每个面的法线)生成每个体素的法线。
[0111] SR网格后处理的另一示例是应用如通过相机捕捉的纹理。
[0112] 图8A描绘如结合图7的3D融合子系统734讨论的符号距离函数的示例。水平轴描绘从深度传感器到物理空间中的对象800的距离。垂直轴描绘SDF的值。对象具有前表面801和后表面802。线805表示SDF。在对象外部的区域具有正距离,在对象内部的区域具有负距离,并且在对象的表面处的区域具有零值。在一些情况下,检测对象的前表面,但不检测后表面。融合涉及用通过将体素投影到深度图中而推断出的SDF值来填充大量体素。从SDF体开始,随后获取深度图及其相对于那个体的姿态。融合算法如下注入形成的深度图。对于每一体素,将其投影到深度图中并根据该体素的距离相对于距表面的距离来更新SDF值。表面位于负SDF值和正SDF值之间的边界上,其中该函数为零—即所谓的零水平设置。对每一深度图重复该过程。
[0113] 图8B描绘投影到体素上的深度图的示例。每一方块表示一体素。所示的体素可以是一个或多个块的部分。实线810表示对象的表面。虚线811表示没有被检测到但被假设远离传感器、越过可被检测到的最大深度的表面。该表面的深度值可被设在默认深度。被这些线穿越的体素具有SDF=0,并由带斜纹线的图案来表示,诸如对于体素813。被认为在对象内部的体素具有SDF<0,并由带点的图案来表示,诸如对于体素812。被认为在对象外部的体素具有SDF>0,并由无图案的框来表示,诸如对于体素814。线815表示深度传感器的视锥体的边界。所示的视图可以是房间的顶视图,其中线810表示墙壁和该墙壁的框架。
[0114] 图9A描绘了一组体900-904以及深度传感器的视锥体920。注意,示出了各体之间的一些重叠。一些体用带虚线的图案示出的以将这些体清楚地区分开。当SR服务决定获取深度图时,深度传感器被激活。视锥体表示深度传感器的视野,例如其中可获得深度读数的物理空间的一部分。SR服务随后将深度图视锥体与该组SR体进行比较。如果深度图视锥体中的任何部分都没有被任何SR体覆盖,则该服务可创建新的体。然而,新的体的放置(包括其相对于其他体的定向)是个问题。新的体最初可被放置在视锥体没有被任何现有体覆盖的任何地方。随后,新的体被重新定位以与现有体对准。该重新定位可涉及在物理空间中的平移和/或旋转,这改善了该新的体的位置。这可包括提供新的体相对于一个或多个现有体的期望重叠量。
[0115] 图9B描绘了被添加到图9A的一组体900-904中的新的体,如由初始放置的体905和经重新定位的体906所表示的。
[0116] 图10A描绘了具有初始重叠量的体。为了简化起见,以两个维度描绘示例体1000-1008。每一体包括一三维空间。体1005和1008在重叠区域1009中彼此重叠。重叠的程度可被表示为体的宽度的比例(例如,百分比)。此外,最小重叠阈值可被设为体的宽度的指定比例。宽度是体在重叠方向的相关维度。在该情况下,重叠超过最小阈值。这可在新的体(例如,体105)相对于邻近体(例如,体1008)放置时发生。
[0117] 图10B描绘了在基于对姿态图的调整而调整了图10A的体的位置从而导致降低的重叠量之后的这些体。在该情况下,由于对物理空间中的各体的位置的调整,重叠区域1010小于图10A中的重叠区域1009。例如,由于该调整体1008可移动得更远离体1005。有利地,没有导致间隙,使得这些体中的经重构的表面将不具有间隙。
[0118] 相反,假设最初将各SR体放置为彼此完美地对准,且没有间隙或重叠。则在姿态调整后,这些SR体可在它们之间具有间隙。因此,初始将各SR体放置为具有某种适度的重叠。通过那种方式,当这些SR体由于姿态调整而移动时,有较小的机会使得在它们之间将具有间隙。间隙一般是不合需的,因为间隙导致经重构的表面的不连续性。
[0119] 图11A描绘了因过量的重叠而裁剪体中的块的示例。在该示例中,体1100包括7×7个块。每一块由一小方块表示。与体1110的重叠量超过最大重叠阈值,这指示对块的裁剪是合需的。描绘了一行经裁剪的块,包括示例经裁剪的块1111。每一经裁剪的块具有带网纹的图案。块1112是体1100中的处于重叠区域1101中的没有被裁剪的示例块。块1113是体1100中的不处于重叠区域1101中的示例块。将剪裁的块是在表面重构期间被忽略以减少处理和存储需求的非活动块。
[0120] 图11B描绘了因过量的重叠而剪辑体中的块的另一示例。此处,体1120相对于体1130在某角度中,使得重叠区域1121一般为三角形。剪裁平面被设为使得存在四个经剪裁的块,包括示例经剪裁的块1131。每一经裁剪的块都具有带网纹的图案。块1132是体1120中的处于重叠区域1121中的没有被裁剪的示例块。块1133是体1120中的不处于重叠区域1121中的示例块。
[0121] 对体中的各块进行剪辑可用作在各体之间提供重叠的对应动作。如所提到的,姿态调整使得SR体相对于彼此移动。为了提前避免间隙,SR服务将体放置成具有某种间隙。但是重叠处于最佳冗余并且处于最差冲突。SR服务删除完全冗余的块,但这可仍留下那些块中仅部分重叠的无关系的三角形或呈其他形状的区域。应用通常希望忽略重叠区域。因此,SR利用可包括快速且高效的网格剪裁过程以消除重叠的三角形。剪裁例程可提供允许小重叠或小间隙的选项。两者都是有用的。例如,小重叠提供容易且快速的方式来生成表现为没有间隙的网格。这对于遮挡渲染是有用的。另一方面,小间隙促成将多个分开的网格拉合成单个连续的网格,这促成了进一步的网格处理。
[0122] 图12A描绘了表示物理空间中的装备的姿态的姿态图1200的示例。姿态图包括通过链接连接的节点。节点包括如由可见光相机捕捉的物理空间的图像以及相关联的坐标系。两个节点之间的链接(例如,边)包括两个节点的图像之间的对应关系以及两个节点的坐标框架之间的变换。姿态图表示装备的路径循环。箭头1210描绘了装备的路径。示例节点是N1-N9。示例链接是节点N1和N2之间的链接L(N1,N2)以及节点N1和N3之间的链接L(N1,N3)。
[0123] 具体地,装备的姿态图可用于为表面重构优化各体在物理空间中的放置。空间划分的问题并不因SR而异,并且存在许多空间划分方案。为了理解为何文本中描述的技术能针对SR良好工作,首先考虑装备跟踪如何工作的各方面。装备的跟踪和映射子系统742(图7)通过分析由装备的相机捕捉到的图像(例如图片)来在空间和时间上跟踪装备的轨迹。想象装备在第一时间内通电,并且相机捕捉图像。跟踪和映射子系统从这些图像中提取特征,估计这些特征在图像中的位置并存储这些特征。跟踪和映射子系统还创建它要使用来测量位置和定向的坐标系(例如,坐标框架)。图像和坐标系两者都与节点一起被存储在图中。随后装备移动。跟踪和映射子系统拍摄更多的图片,并创建另一坐标框架,该图将这些更多的图片和另一坐标框架与另一节点关联。图服务子系统741认识到第一和第二图像具有一些共有的特征。映射器使用计算机视觉算法和IMU数据来估计那两个节点之间的相对姿态。
[0124] 节点之间的链接表示两种事物:图像之间的对应关系以及两个节点的坐标系之间的变换。然而,当映射器可获得针对节点之间的变换的多个估计时,那些变换可能是不一致的。跟踪和映射系统通过调整坐标变换和特征位置来使不一致性最小化。这被称为批量调整。随着装备到处移动,映射器继续添加节点和链接,并且这导致附加的姿态调整。结果,物理空间的图随时间变化。也就是说,对特征位置的估计改变了,并且姿态图被改善。例如,姿态图中的链接可使距离或定向变化。SR应当对姿态调整稳健。
[0125] 为了理解该问题可能有多严重以及图像中的特征可表现为移动得有多远,考虑环闭合—姿态图调整的突变形式。环闭合是重定位的形式。例如,想象装备访问分开的空间,而无需访问连接这些空间的区域。映射器将具有针对每一空间的分开的图分量。随后,想象装备访问这些空间之间的区域。跟踪和映射子系统将认识到这些区域被连接,并且将添加链接到姿态图。重新定位指的是姿态图的任何拓扑变化。
[0126] 一种形式的环闭合在装备最终在它已经访问过的空间点并且跟踪和映射子系统观察到了那个事实时发生。例如,想象在起始位置开始,佩戴HMD设备的用户走进诸如美术馆中的房间并且总是面对距该用户最近的墙壁。用户没有打量该房间也没有看该用户的后面。在跟踪和映射子系统创建新节点时,该用户随后绕开该房间,转而看着每一墙壁。就在用户返回起始点之前,跟踪和映射子系统还没有认识到它又在起始点了。但是,最后,跟踪和映射子系统将认识到用户在起始点时捕捉的特征,并将标识在该环的起始和结束处拍摄的图像之间的对应关系。因此,它将在姿态图中创建新链接,由此形成闭合环。就在环闭合之前,该环的开始和结束之间的变换需要许多跳点。就在环闭合之后,该环的开始和结束之间的变换仅需要单个跳点。每一跳点都具有某个误差,并且这些误差累积。就在环闭合之后,累积误差量较小。因此,就在环闭合之前和就在环闭合之后,节点之间的变换将突然改变。本文中提供的技术通过将各体锚定到姿态图中的节点以及其坐标系来允许SR过程从对姿态图的调整中获益。当姿态图变化时,针对该装备的SR体出现,因为这些体跟随其被锚定到的姿态图节点。
[0127] 图12B描绘了针对相机所捕捉的图像的示例数据记录。每一图像或图像集合(诸如视频)都可被存储在数据记录(例如,图像1)中。装备的定向读数(例如,OR1)可与该图像相关联。
[0128] 图12C描绘了针对深度传感器所捕捉的深度图的示例数据记录。每一深度图都可被存储在数据记录(例如,DM1)中。装备的定向读数(例如,OR1)可与深度图相关联。
[0129] 图12D描绘了姿态图的示例数据记录。节点的记录可包括节点标识符(例如,N1)、相机图像(例如,图像1)和坐标系(例如,CS1)。针对链接L(N1,N2)的记录可包括链接标识符(例如,L(N1,N2))、图像对应关系数据(例如,C(N1,N2))和坐标系之间的变换(例如,T(N1,N2))。针对链接L(N1,N3)的记录可包括链接标识符(例如,L(N1,N3))、图像对应关系数据(例如,C(N1,N3))和坐标系之间的变换(例如,T(N1,N3))。变换可以是将作为矩阵的一个坐标系与作为矩阵的另一坐标系相关的矩阵。
[0130] 图13A描绘了示出深度传感器的视锥体的示例物理空间。物理空间1300是诸如佩戴作为装备的示例的HMD设备1302的用户1301的家中的房间。HMD设备上的深度传感器具有视野,该视野由延伸在后表面1304和房间的墙壁1306处的前表面1305之间的视锥体1303表示。墙壁包括门道1307和装饰画1308。该画被附贴到墙壁1306并具有可注意的深度。线1309表示深度传感器的视野的中心轴,例如深度传感器(和用户和HMD设备)正注视的方向。具有正交轴xr、yr和zr的笛卡尔坐标系1310是HMD设备的示例坐标系(r表示装备)。例如,xr轴可具有与表示装备的定向的(与线1309重合的)向量相同的方向。yr轴可被定义为与地面平行地延伸。zr轴因此与xr和yr轴正交。还描绘了物理空间的具有正交轴x、y和z的笛卡尔坐标系1311。深度传感器在该坐标系的原点处。
[0131] 图13B描绘了与图13A一致的深度图1315。该深度图包括针对墙壁1306的区域1320、针对画1308的区域1321和针对门道1307的区域1322。
[0132] 图13C描绘了图13B的深度图的距离值。水平轴描绘了与深度传感器的中心线1309正交的方向,诸如yr轴的方向。垂直轴描绘了对象距深度传感器的距离,诸如沿着xr轴的距离。线1330表示深度。该线的对应于墙壁的深度的部分具有深度值D墙壁。该线的对应于画的深度的部分具有深度值D画。该线的对应于门道的深度的部分具有深度值Dmax,即深度传感器可检测到的最大深度。在该情况下,由于深度传感器穿过门道看向在检测范围上方的表面,深度值可被设为最大值。Dmin表示深度传感器可检测到的最小深度。
[0133] 图14A描绘了示出可见光相机的视野的图13A的示例物理空间。一般来说,相机的视野1340可不同于深度传感器的视野,但是它们可看着同一方向,例如HMD设备的方向,并且它们可基本上重叠。在该示例中,相机的视野1340比深度传感器的视野略微更窄且更高。作为示例但这并不是必须的,HMD设备的坐标系1310与图13A中的相同。该轴可与相机的中心线重合,该中心线与深度传感器的中心线1309相同。
[0134] 图14B描绘由图14A的可见光相机获得的图像。图像1400包括表示墙壁的部分1410、表示画的部分1402和表示门道的部分1403。
[0135] 图14C描绘了随着HMD设备的姿态被改变而示出可见光相机的另一视野的图13A的示例物理空间。在该情况下,用户已经移动,使得HMD设备的相机捕捉物理空间的不同图像。例如,用户可能已旋转了他的头和/或在房间中到处走动。视野1420是相对于坐标系1430定义的,坐标系1430不同于图14A的坐标系1310。在一种方法中,xr轴与相机1421的中心线重合。
[0136] 图14D描绘由图14C的可见光相机获得的图像。图像1440包括表示墙壁1306和毗邻墙壁1415的部分1441和表示画的墙壁1442。如可明白的,图像1400和1440将具有诸如画框的水平线1444、画框的垂直线1443和画中的花和花瓶的色彩和形状之类的相应特征。
[0137] 图15A描绘了各体在图13A的物理空间中的初始放置。描绘了视锥体1303以及八个体(包括示例体1500),这八个体是相对于坐标系1310来定义的并被定位成包围该视锥体。
[0138] 图15B描绘了图15A的体的经调整的放置。在此简化示例中,体被类似地调整。然而,在实践中,每一体可被独立地调整。示例体1500被调整为提供示例体1501。此外,体1500是相对于一个(例如,初始)坐标系1310(包括轴xr、yr和zr)来定义的,并且体1501是相对于经更新的坐标系1510(包括轴xr’、yr’和zr’)来定义的。
[0139] 图16描绘了其中虚拟对象被放置在图13A的物理空间中的示例应用。虚拟对象1610是用户1301可见的作为HMD设备1302的增强现实图像的人。视野1600与HMD设备的增强现实投影系统相关联。由于房间中的各表面是已知的,因此虚拟对象可被放置在物理空间
1300中的适当位置。例如,虚拟对象可被放置于在墙壁1306前面并在门道1307侧面的指定距离处。此外,在诸如画1308之类的虚拟对象后面的现实世界对象可被遮挡以提供更大的真实性。注意,不同或共同的视野可与深度传感器、相机及增强现实投影系统相关联。此外,尽管已描述了涉及HMD设备的示例实现,但文本中描述的技术可适用于许多其他场景,包括涉及机器人和其他类型的装备的那些场景。
[0140] 尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。更确切而言,上述具体特征和动作是作为实现权利要求的示例形式公开的。