优化HoloLens快速定位,微软专利提出基于GPS+传感器的重定位系统
基于GPS和传感器的重定位系统
(映维网Nweon 2022年03月28日)MR头显需要相对于物理环境的位置和/或物理环境的几何形状来呈现虚拟内容。所以,MR系统必须保持位置和方向的精确感知,从而能够根据用户的视角变化来显示自然的数字内容。
为了做到这一点,一系列的MR系统都依赖于SLAM技术。这通常要求用户在整个物理环境中移动,以允许MR系统捕获足够数量的物理环境关键帧,从而构建物理环境的映射。然而,初始映射构建非常耗时,并且极大地限制了MR系统提供多样化体验的多功能性。
为了避免初始映射构建过程,MR系统可以至少部分地利用先前构建的物理环境映射来初始化MR体验。然而,为了使用先前构建的物理环境映射来初始化MR体验,MR系统通常必须知晓MR系统相对于物理环境的位置。换言之,MR系统必须在物理环境中进行自定位/重定位。
另外,MR系统在关键帧之间进行搜索会耗费大量计算和时间,尤其是对于包含大量关键帧的大型现实世界空间映射。
针对上述问题,微软提出了一种旨在促进快速定位的优化技术和系统。在名为“Systems and methods for gps-based and sensor-based relocalization”的专利申请中,团队介绍了一种基于GPS和传感器的重定位系统。
图1示出了头戴式设备100的示例。头显100包括传感器150,而传感器150包括摄像头155、GPS 160和惯性测量单元(IMU)165。IMU 165可包括各种惯性追踪组件,例如加速计170、陀螺仪175、指南针180(例如一个或多个磁强计)和/或气压计185。
头显100的惯性追踪组件/系统可以与视觉追踪系统协同工作,以形成头部追踪系统,并为头显100生成姿势数据。在一个实施例中,视觉追踪系统包括捕捉环境的图像数据的一个或多个摄像头。
在一个实施例中,以上组件可以形成视觉惯性SLAM技术,并结合一个或多个摄像头捕获的视觉追踪数据和加速计170、陀螺仪175、传感器155、和/或罗盘(es)180来实时(或接近实时)估计头显00相对于环境的六自由度定位(即姿势)。
在一个实施例中,头显100的视觉追踪系统包括一对立体摄像头,其配置为获取用户环境的深度映射并提供用户环境的视觉映射。头显100可以利用环境的视觉映射数据来准确地显示关于用户环境的虚拟内容,以及促进头显100在环境中的帧到帧姿势追踪。可视化映射数据同时可以在共享的混合现实环境中实现用户之间的位置共享。
图1同时示出,头显100可以包括GPS 160,后者获取GPS数据以追踪头显100的全球位置。
现在请注意图2,图2示出了可以示例环境200。环境200包括各种区域,例如森林区域205、建筑210、建筑220和区域215。用户250穿戴的头显100可以获取环境映射,例如与区域215相关联的视觉映射数据,然后用于促进区域215内的SLAM追踪。头显100同时可以在环境200内获得GPS数据260、IMU数据265和/或图像数据270。
当用户250从森林区域205接近区域215时,与用户250相关联的系统可能需要建立其相对于区域215的位置,以便于SLAM在区域215内为用户250提供准确的MR体验。然而,环境200的映射可以包括区域215的大量视觉映射数据,而这或会导致延迟和/或错误定位。
针对这个问题,微软提出的系统可以配置为使用诸如GPS数据260和/或IMU数据265等数据来智能地/可选择地识别和选择视觉映射数据的子集,以用于在环境200内定位或重定位。
图3示出了与环境200相关联的示例映射300。如上所述,映射300包括映射300的区域315内的视觉映射数据。例如,映射300包括区域315内多个关键帧320和多个锚定点310形式的视觉映射数据。在一个实施例中,如图2所示,在用户250进入环境200的区域215之前获得映射300的区域315内的视觉映射数据。换言之,映射300的至少区域315可视为代表环境200的区域215的预映射,其配置为在区域215定位时促进位于区域215的MR体验,亦即不首先要求用户捕获或获取区域215的新视觉映射数据。
在一个实施例中,基于使用一个或多个摄像头捕获的图像来获得映射300的关键帧320。系统可从立体图像对中提取特征,以识别区域215内环境200的锚定点310。锚定点310可以提供参考点,并用于追踪区域215内的代理姿势变化。另外,系统可以对立体图像对执行深度计算,以获得在图像捕获期间识别各种锚定点310和立体摄像头对之间的距离的深度数据。根据深度数据,可以获得或建立立体摄像头对在图像捕获期间相对于锚定点310的位置和方向。
可以获得从区域215内的多个位置捕获的多个关键帧320,以及多个锚定点310,并将其存储为环境200的映射300的一部分,如图3所示,映射300的区域315代表环境200的区域215。与用户250相关联的系统可以利用关键帧320和锚定点310来追踪其相对于环境200的映射300的映射部分的姿势。例如,当系统的初始位置和方向不可靠时,系统可以在当前时间点捕捉区域315的一个或多个当前图像。
系统可以从当前图像中提取特征,并将特征和与各种关键帧320相关联的锚定点310进行比较。系统可识别与锚定点310相关联的特定关键帧320。然后,系统可基于与锚定点310相关联的特定关键帧320的位置和方向来估计其在映射300内的位置和方向,亦即系统可实现定位或重定位。
随后,系统可以追踪系统相对于定位点310的帧到帧姿态变化,并且系统可以使用与其他关键帧320相关联的锚定点310,以在用户250在整个区域215中移动时保持精确追踪。
图3示出了相对于用户250所在环境200的映射300,用户250(或与用户相关联的系统)的估计位置360和估计方向365。用户250的估计位置360和估计方向365至少部分地对应于环境200内用户250的位置250B。例如,当用户250位于环境中的位置250B时,与用户250相关联的系统可以获得GPS数据260和/或IMU数据265。
在一个实施例中,GPS数据260指示用户250相对于映射300的估计位置360。例如,GPS数据260可以指示与用户250相关联的GPS 160的估计经度和纬度,从而提供用户250的估计全球位置。应注意,映射300内的空间位置可与GPS坐标相关。
映射300内的空间位置和GPS坐标之间的相关性可以通过各种方式建立,例如在预映射过程中,可以在映射300手动覆盖GPS坐标。因此,用户250在环境200内的估计全球位置可以指示用户250相对于映射300的估计位置360。
在一个实施例中,IMU数据265指示相对于映射300的估计方向365。例如,IMU数据265可包括由罗盘180获得的航向数据,其可指示与用户250相关联的系统的估计航向或偏航。IMU数据265同时可以包括基于陀螺仪175获得的角速度数据,以及加速计170获得的重力矢量。
估计位置360和/或估计方向365可为识别系统搜索定位的映射300的关键帧320子集提供基础。图4示出了在映射300内定义搜索空间400的示例。如图4所示,搜索空间400基于和/或关于与用户250相关联的系统的估计位置360来定义。
搜索空间400识别映射300的多个关键帧320中的一个或多个关键帧。例如,关键帧420A、420B、420C、420D和420E识别为在基于估计位置360定义的搜索空间400内。以这种方式,系统使用估计的位置360来选择从环境200中的位置捕获的关键帧。关键帧420A、420B、420C、420D和420E可包括关键帧320的子集,与用户250相关联的系统可将其用作进入环境200的区域215时对系统进行本地化的候选。
所以,与用户250相关联的系统减少或限制搜索空间,并仅包括用于执行定位的映射300的关键帧320的子集,而非全部。因此,系统可以减少与相对于环境200的区域215定位系统相关联的延迟和/或计算负担。另外,仅利用关键帧子集进行定位降低了错误定位的可能性。
高GPS置信度410可以产生较小的搜索空间400,而低GPS置信度410则可能导致较大的搜索空间400。
与GPS数据260相关联的置信度测量可包括信噪比、可用于基于无线电的定位设备的若干GNSS格式、基于无线电的定位设备所使用的无线电频带、天线特性等等。另外,搜索空间400的大小和/或形状可至少部分取决于与IMU数据265相关联的置信度。例如,在系统至少部分地基于由与IMU 165的气压计185获得的高度数据来定义搜索空间400的情况时,气压计置信度415可以影响搜索空间400的大小和/或形状。
除了如上所述通过定义搜索空间400和识别搜索空间400内的关键帧子集来减少用于定位与用户250相关联的系统的映射300的关键帧320的数量之外,系统可采用附加或替代技术来进一步减少用于定位系统的关键帧的数量。
图5示出了基于估计方向365识别搜索空间400内的关键帧子集的示例。如上所述,映射300的每个关键帧320可以包括关键帧320被捕获的方向的指示。因此,搜索空间400内的关键帧420A、420B、420C、420D和420D包括与每个关键帧相关联的关键帧方向。系统可以将与用户250相关联的系统的估计方向365与搜索空间400内的关键帧的关键帧方向进行比较,以确定搜索空间400内的哪个关键帧子集用作定位候选。
在一个实施例中,系统定义了阈值方向相似性505。然后,系统可以执行关键帧方向分析500,以确定搜索空间400内的哪些关键帧包括满足或超过阈值方向相似性505的方向。例如,如图5所示,关键帧方向分析500可以包括分析关键帧420A的方向520A,以确定方向520A和估计方向365之间的差异是否满足或超过阈值方向相似性505。关键帧方向分析500可以包括对与其他关键帧相关联的其他方向执行类似的分析,例如关键帧420B的方向520B、关键帧420C的方向520C、关键帧420D的方向520D和关键帧420D的方向520D。
图5进一步示出了在搜索400内围绕关键帧420A、420D和420E中的每一个的圆圈,指示关键帧420A、420D和420E可以形成关键帧的子集,与用户250相关联的系统可以利用所述子集进行定位。
因此,图5说明了系统可以对搜索空间400内的关键帧执行关键帧方向分析500,以确定搜索空间400内用于定位的关键帧子集。这种技术可允许系统进一步减少用于定位的候选关键帧的数量,从而在降低计算成本和/或延迟的情况下促进定位。
图5同时示出了可以基于与IMU数据265相关联的置信度来定义或生成阈值方向相似性505。系统可基于各种因素来确定IMU置信度510。在IMU置信度510较低的情况下,系统定义更广泛的阈值方向相似性505,以补偿估计方向365的潜在不精确性。在其他实例中,在IMU置信度高的情况下,系统可定义窄阈值取向相似性505,其可进一步提高重定位处理的效率。
因此,与环境200内的用户250相关联的系统可利用系统的估计位置360(基于GPS数据260和/或IMU数据265)和/或估计方向365(基于IMU数据265)来限制环境200的映射300内的定位搜索空间,以识别映射300内的关键帧320子集,并将其用作环境200的候选关键帧本地化。因此,系统可以避免使用不包括在关键帧320的子集中的映射300的关键帧320作为用于定位的候选关键帧,这可以提高与环境200内的定位相关联的效率。
如上文参考图2所示,当用户位于环境200内的位置250B时,与用户250相关联的系统可以获得追踪数据255(包括GPS数据260、IMU数据265和图像数据270)。在一个实施例中,与用户250相关联的系统配置为在环境中的不同追踪模式之间选择性地转换。
在不同追踪模式之间有选择地转换可以避免不必要的数据采集,从而节省电池和/或计算资源。例如,图8是图2中的环境200,其描绘了用户250从区域205内的位置250A移动到区域215的位置250B。
如上所述,环境200的映射300可以省略视觉映射数据,以便于在环境的树木覆盖区域205内定位。因此,与用户250相关联的系统可以使用第一追踪模式810追踪环境200内的系统位置。
在一个实施例中,第一追踪模式810包括GPS追踪815。在一个实施例中,当在第一追踪模式810下操作时,系统避免执行与SLAM相关联的操作,例如捕获图像数据、提取特征、执行深度计算、追踪帧到帧六自由度姿势等,从而节省计算和/或电池资源。例如,系统可依赖GPS追踪815来维持系统相对于环境200的粗略位置感知,并且当GPS追踪815指示系统基本上在森林区域205内时,系统可以避免获取图像数据。
当用户250从位置250A过渡到位置250B时,与用户相关联的系统可检测到触发条件830。在一个实施例中,触发条件830配置为选择性地从第一追踪模式810切换到第二追踪模式850。在一个实施例中,第二追踪模式850包括相对于第一追踪模式810的高保真追踪模式。例如,第二追踪模式850可包括SLAM 870,其利用图像数据880和IMU数据890以厘米或毫米精度追踪系统的六自由度姿态。
相关专利:Microsoft Patent | Systems and methods for gps-based and sensor-based relocalization
名为“Systems and methods for gps-based and sensor-based relocalization”的微软专利申请最初在2021年6月提交,并在日前由美国专利商标局公布。