Spatial Anchors(空间锚点)表示存在于云中的物理点。对于增强现实应用,全息图可以附着到空间锚点。空间锚点的独特地方在于,它能够在云中存储和持久化,并在以后由创建它的设备或任何其他受支持设备进行查询。这能够实现锚点的云备份和基于云的锚点共享。
在用例方面,空间锚点是创建室内导航系统的关键技术。空间锚点可由支持使用空间锚点的设备重新检测。尽管用于创建稳健空间锚点的指南属于可视化形式,但通常要求用户在空间中寻找特定类型的特征,或者以从不同角度捕捉特定类型特征的方式在空间中移动。对于失明或视力低下的用户而言,创建空间锚点可能是一项挑战。
为了帮助用户轻松创建空间锚点,微软提出了一种面向所有人的引导系统,包括盲人或低视力人士。简单来说,可以通过语音和触觉反馈等方式来引导用户创建空间锚点。
图2示出了真实世界区域224的示例平面图。用户214可以在真实世界区域224中的第一位置212开始。在映射到真实世界区域224的模型中,第一位置可以是空间锚点。模型中的空间锚点可用于向用户提供映射到真实世界区域224的起点或终点。
用户214可以从第一空间锚点214移动到第二空间锚点216。第二空间锚点216在模型中映射到真实世界区域224中的第二位置。
用户214可以使用诸如用户设备102、104a和104n的用户设备来从空间锚点212导航到空间锚点216。两个点之间的导航对应于用户214在真实世界区域224中移动以在映射到真实世界区域222的模型中相应地移动。
当在模型中导航时,用户设备可以检测用户212在真实世界224中的位置,然后可以使用模型的信息向用户提供相应的指令以在两个空间锚214和216之间导航。例如,用户设备能够使用用户设备中的摄像头来检测真实世界区域224的图像信息。
然后,可以将所述图像信息与映射模型的信息进行比较,以确定用户在模型中的位置。另外,可以基于用户214在空间锚点212的初始起点,以及来自用户设备214加速计和陀螺仪读数的速度和方向测量来确定用户的位置。
根据映射区域的模型信息,模型可以向用户214提供何时向右或向左转弯以避开障碍物(例如椅子220)或在真实世界区域(例如走廊223)中导航空间约束的信息。
如果用户214被指示在错误的时间向左或向右转弯,或者没有被警告现实世界区域224中存在物体(例如椅子220或门222),则用户214可能处于危险之中。所以,当输入映射到真实世界区域的模型时,正确捕捉锚点非常重要。
用户(例如用户214)可以使用用户设备来捕捉空间锚点。来自用户设备的图像信息可用于提供空间锚点的信息。
基于所接收的图像信息,可以在映射的模型中创建空间锚点。锚点可以由接收图像信息的用户设备和创建空间锚点的用户设备来创建,或者可以将图像信息发送到创建空间锚点的一个或多个计算设备。在一个实施例中,图像信息可以在转换到空间锚点之前或之后存储在数据存储108中。
空间锚点可以由模型的一个或多个用户通过在第一位置从用户设备输入图像信息来创建。然后将图像信息转换为第一位置的周围环境的几何信息。在一个实施例中,用户可以使用环境模型应用的用户界面来指示他们希望创建新的空间锚点。
然后,用户设备的应用可以从图像接收设备接收用户周围环境的图像信息。环境模型应用可以向用户提供指令(指导)信息,以帮助用户捕获创建空间锚点所需的进一步图像信息。这可以帮助世界应用捕捉从用户设备接收的第一图像信息中缺失的信息。然后,用户可以使用用户设备来跟踪引导信息以捕获丢失的信息,从而可以创建空间锚点。
引导信息可以经由用户的用户设备提供。指令信息可以包括音频信息。指令信息可以包括触觉反馈。
引导信息可以包括重新定向图像捕获设备的指令。引导信息可以包括更慢地移动摄像头的指令。在这样的示例中,可以是先前已经基于来自图像捕获设备的加速度计信息确定图像捕获设备移动得太快。
在一个实施例中,引导信息可以包括改变图像捕获设备周围的照明条件的指令,例如,如果环境照明不良。在这样的示例中,可以是先前已经基于用户设备302的光检测设备或图像捕获设备确定环境太暗。
可以在应用确定图像信息的第一部分不满足一个或多个质量阈值之后提供引导信息。所述质量阈值可以至少包括以下之一:用户设备的周围环境的最小光水平阈值;用户设备的最大移动速度阈值;用户设备的一个或多个最大倾斜角度阈值;用户设备周围环境的360度视图的最小覆盖级别阈值。
在一个实施例中,为了帮助用户捕获用于创建空间锚点的图像信息,应用程序可能需要比最初提供给应用程序的图像信息更大角度上的图像信息。引导信息可以引导用户提供进一步所需的图像信息。
为了用户捕获用于创建空间锚点的图像信息,应用程序可能需要环境的全360度视图的图像信息。
图4示出了用户414已经使用图像接收设备(例如,用户设备的相机)来捕获潜在空间锚点412的第一角度430a的图像信息的示例。
在一个示例中,潜在空间锚点412的第一角度430a的图像信息由图像接收设备在单个位置捕获。图像接收设备可以是用户设备的一部分,或者可以与用户设备分离。
潜在空间锚点412的第一角度430a的图像信息由图像接收设备在多于一个位置中捕获。在这样的示例中,用户414可以在捕获潜在空间锚点412的图像信息的同时移动图像接收设备。
可以确定应用需要来自潜在空间锚点412的其他角度的更多图像信息。在一个实施例中,可以确定需要在另一角度430b的图像信息来创建空间锚点。
当确定需要来自潜在空间锚点412的其他角度的更多图像信息时,应用可以向用户提供引导信息以旋转图像接收设备以捕捉空间锚点的其他角度。引导信息可以包括音频信息。引导信息可以包括触觉信息。例如,提供引导信息的应用可以指示用户捕捉进一步的角度430b。
应用可以通过计算用户捕捉的第一角度430a来确定尚未捕捉到完整的360度图像信息。这种计算可以基于图像接收设备捕获图像的角度和图像接收设备的方位(基于例如陀螺仪信息)。
在图像接收设备在图像信息捕获期间静止的示例中,计算可以基于图像接收设备捕获图像的角度和图像接收设备的方位。在图像接收设备在图像信息捕获期间不是静止的示例中,计算可以基于图像信息捕获过程中图像接收设备移动的速度和捕获图像信息的时间。
在一个实施例中,可以通过组合多于一个图像来确定角度430a的图像信息。
第一角度430a和另一角度430b的和是360度。这在生成空间锚点之后可能有用,因为从生成的空间锚点和来自使用空间锚点作为旅程的起点或终点的用户的图像信息,可以确定用户在空间锚点处的取向。
提供引导信息以帮助用户捕获空间锚点对于用户视力较低或受限的情况下有用,因为他们可能难以查看用于创建空间锚点的图像信息。
在生成空间锚点之后,应用的一个或多个用户可以发现使用上述任何方法生成的空间锚点。空间锚点同样可以由捕捉用于生成空间锚点的图像信息的用户“重新发现”。
在生成空间锚点时,用户可以注释模型中的空间锚点。这种注释可用于提供可提供给模型的用户的空间锚点的进一步信息,例如空间锚点的名称或描述。
在一个实施例中,用户不需要步行到其他位置以捕捉空间锚点。用户可能需要转身,但不能走到另一个位置。这对于视力低或受限的用户来说可能有用,因为他们在操作用户设备的图像接收设备时可能无法容易地访问通常的引导设备。
图5示出了示例方法流程。
在550,接收第一真实世界位置处的用户设备的周围环境的图像信息。在552,基于接收到的图像信息,确定需要什么进一步的信息来生成模型中的空间锚点。例如,可以确定创建空间锚点所需的信息完全丢失。在其他示例中,可以附加地或替代地确定已经接收的图像信息质量不够高(不满足最小质量阈值),并且需要由更高质量的图像信息来替换。
在554,向用户设备提供用于捕获创建空间锚点所需的进一步图像信息的引导信息。引导信息可以指导用户以某种方式移动图像接收设备以捕获所需的图像信息。引导信息可以包括改变图像接收设备的设置的指示。引导信息可以包括改变周围环境的属性。
在554之后,用户可以实现引导信息。在556,从用户设备接收生成空间锚点所需的进一步信息。在558,然后基于第一图像信息和另一图像信息生成模型中的空间锚点。
遵循图5的方法,生成的空间锚点可以由一个或多个用户使用模型来发现。这允许一个或多个用户导航到和/或从生成的空间锚点。
名为“Guidance system for the creation of spatial anchors for all users, including those who are blind or low vision”的微软专利申请最初在2021年6月提交,并在日前由美国专利商标局公布。