依据slam地图的广域定位的制作方法_2

文档序号:9422369阅读:来源:国知局
,使得附加的或可替换的信息叠加到装置上的所显示的现实世界图像/视频上。当用户在他们的装置上查看AR实现时,现实世界对象或场景可在装置显示器上实时替换或更改。可将虚拟对象(例如文本、图像、视频)插入到在装置显示器上描绘的场景的表示中。
[0027]图2示出了经配置以执行广域定位的示范性服务器的框图。服务器200 (例如WAL服务器)可包括一或多个处理器205、网络接口 210、地图数据库215、服务器WAL模块220和存储器225。所述一或多个处理器205可以经配置以控制服务器200的操作。网络接口210可经配置以与网络(未示出)进行通信,所述网络可经配置以与其它服务器、计算机和装置(例如装置100)进行通信。地图数据库215可以经配置以存储不同场所的3D地图、地标、地图和其它用户定义的信息。在其它实施例中,其它类型的数据组织和存储(例如平面文件)可以用于管理如本文中所用的不同场地的3D地图、地标、地图和其它用户定义的信息。服务器WAL模块220可以经配置以实现使用地图数据库215执行广域定位的各方法。例如,服务器WAL模块220可以经配置以实现下面图5中描述的各功能。在一些实施例中,服务器WAL模块220不是单独的模块或引擎,而是将其实现在软件中,或将其集成到存储器225(例如服务器200)的WAL服务器中。存储器225可以经配置以存储WAL服务器的程序代码、指令和数据。
[0028]图3示出了与广域环境进行的示范性客户端-服务器交互的框图。如本文中所用,广域可以包含比房间或建筑物更大的区域,并且可以是城市的多个街区、整个城镇或城市,或更大。在一个实施例中,WAL客户端可以执行SLAM,同时追踪广域(例如广域300)。在移动到由移动装置的第一位置100到第二位置100’所示的不同子地点时,WAL客户端可以通过网络320与服务器200 (例如WAL服务器)或基于云的系统进行通信。WAL客户端可以在不同位置和视点(例如第一视点305和第二视点310)俘获图像。WAL客户端可以如下面更加详细描述的那样将视点的表示(例如,作为关键帧)发送到WAL服务器。
[0029]在一个实施例中,WAL客户端-服务器系统(WAL系统)可以包含一或多个WAL客户端(例如装置100)和一或多个WAL服务器(例如WAL服务器200)。WAL系统可以将WAL服务器的电力和存储能力与WAL客户端的本地处理能力和相机视点一起使用,以实现完整的六个自由度(6D0F)的广域定位。本文中所用的相对定位是指确定装置100或WAL客户端的位置和姿势。本文中所用的全球定位是指确定在广域地图(例如WAL服务器上的3D地图)内的位置和姿势。
[0030]WAL客户端可以使用基于关键帧的SLAM地图而不是使用单个视点(例如为3D场景的2D投影的图像)来向WAL服务器查询全球定位。因此,所公开的使用从多个角度俘获的信息的方法可提供在含有许多相似特征的区域内的定位结果。例如,某些建筑物可能与某些传感器的视点在视觉上不能区分,或对于很多建筑物,墙壁的一部分可能是相同的。然而,在WAL服务器处理了移动装置的关键帧中的一或多者后,WAL服务器可以参考地图数据库来确定全球定位。由移动装置发送的初始关键帧可能不含有唯一或可区别的信息。然而,WAL客户端可以继续用WAL客户端上的SLAM地图提供相对定位,并且WAL服务器可以继续接收更新的关键帧并继续在增量基础上尝试全球定位。在一个实施例中,SLAM是计算传感器相对于环境的位置和定向的同时建立所述环境(例如WAL客户端环境)的地图的过程。上述传感器可以是一阵列的从场景俘获信息的一或多个相机(例如,相机114)。传感器信息可以是可视信息(例如标准成像装置)或直接深度信息(例如无源立体或有源深度相机)中的一者或其组合。来自SLAM系统的输出可以是相对于环境的传感器姿势(位置和定向),以及某种形式的SLAM地图。
[0031]SLAM地图(即客户端地图、本地/相应的重构或客户端侧的重构)可以包含以下各者中的一或多者:关键帧、三角测量的特征点以及关键帧和特征点之间的关联。关键帧可以由俘获的图像(例如由装置相机114俘获的图像)和用来产生图像的相机参数(例如,相机在坐标系中的姿势)组成。如本文中所用的特征点(即特征)是作为图像的令人感兴趣的或显著的一部分。从图像提取的特征可以表示沿着三维空间的不同的点(例如轴线X、Y及Z上的坐标),并且每一特征点可具有关联的特征位置。每个特征点可表示3D位置,并且与表面法线和一或多个描述符相关联。接着,在WAL服务器上的姿势检测可以涉及使SLAM地图的一或多个方面与服务器地图匹配。WAL服务器可以通过使来自SLAM地图的描述符与来自WAL服务器数据库的描述符匹配从而形成3D到3D的对应关系来确定姿势。在一些实施例中,SLAM地图包含至少稀疏的点(其可包含一般信息)和/或稠密的表面网格。
[0032]当装置100四处移动时,WAL客户端可以接收用于更新WAL客户端上的SLAM地图的附加的图像帧。例如,可以俘获附加的特征点及关键帧,并且将这些附加的特征点及关键帧结合到装置100 (例如WAL客户端)上的SLAM地图中。WAL客户端可以将来自SLAM地图的数据以增量的方式上传到WAL服务器。在一些实施例中,WAL客户端将关键帧上传到WAL服务器。
[0033]在一个实施例中,在接收到来自WAL客户端的SLAM地图后,WAL服务器可以用服务器地图或地图数据库来确定全球定位。在一个实施例中,服务器地图是由环境的图像俘获的集合重构的稀疏的3D重构。WAL服务器可以使从相机图像中提取的2D特征与服务器地图中包含的3D特征匹配(即重构)。根据匹配的特征的2D-3D对应关系,WAL服务器可以确定相机姿势。
[0034]使用SLAM框架,所公开的方法可以减少要从装置100发送到WAL服务器的数据量,以及减少关联的网络延迟,从而允许由发送到WAL服务器的数据计算相机的现场姿势。所述方法还使得来自多个视点的增量信息能够产生提高的定位精度。
[0035]在一个实施例中,WAL客户端可以初始化基于关键帧的SLAM,以独立于WAL服务器的服务器地图创建SLAM地图。WAL客户端可提取一或多个特征点(例如与场景相关联的3D地图点),并且可以由一组特征点的对应关系估计6D0F相机的位置和定向。在一个实施例中,WAL客户端可以独立地初始化SLAM地图,而无需接收信息或通过通信的方式耦合到云或WAL服务器。例如,WAL客户端可初始化SLAM地图,而无需先读取预先填充的地图、CAD模型、场景中的标记或来自WAL服务器的其它预定义的描述符。
[0036]图4是示出了一个实施例中的一种在移动装置(例如WAL客户端)处执行的广域定位的方法的流程图。在框405,一个实施例(例如,实施例可以是WAL客户端或装置100的软件或硬件)接收移动装置的本地环境的一或多个图像。例如,移动装置可具有来自包含图像流的相机传感器的视频馈送。
[0037]在框410,实施例利用一或多个图像初始化本地环境的基于关键帧的同时定位及建图(SLAM)地图。初始化可包括从这些图像中的一者中选择第一关键帧(例如,带有计算的相机位置的图像)。
[0038]在框415,实施例确定移动装置在本地环境内的相应定位(例如,用于确定地点和姿势的相对定位)。相对定位可以基于在WAL客户端(例如,移动装置)上在本地确定的基于关键帧的SLAM地图。
[0039]在框420,实施例将第一关键帧发送到服务器。在其它实施例中,WAL客户端可以将一或多个关键帧以及相应的相机标定信息发送到服务器。例如,相机标定信息可以包含相机在坐标系中的姿势,相机的姿势用来俘获关联的图像。WAL服务器可以使用WAL服务器(例如,在重建内部或服务器地图内部)处的关键帧以及待定位(例如,确定全球定位)的标定信息。
[0040]在框425,实施例接收来自服务器的第一全球定位响应。全球定位响应可基于第一关键帧的特征点和关联的描述符与服务器的特征点和关联的描述符的匹配来确定。全球定位响应可表示对移动装置上的本地地图的校正,且可以包含旋转信息、平移信息和比例信息。在一个实施例中,服务器可以考虑多个关键帧同时匹配,并使用服务器地图或地图数据库来确定全球定位。在一些实施例中,响应关键帧增量更新,服务器可将第二或更多的全球定位响应发送到移动装置。
[0041]在一个实施例中,WAL客户端使用移动装置的基于关键帧的SLAM框架并结合使用WAL服务器。基于关键帧的SLAM框架可以在WAL客户端上在本地实施,且除了 SLAM地图之夕卜,可以提供连续的相对的六个自由度的运动检测。SLAM地图可以包含关键帧(例如,带有计算的相机位置的图像),以及三角测量的特征点。WAL客户端可以使用SLAM地图用于本地追踪,以及(如果追踪丢失)用于重新定位。例如,如果全球定位丢失,WAL客户端可以使用SLAM地图继续追踪。
[0042]追踪丢失可以通过在当前相机图像中成功地追踪的特征的数量来确定。如果这一数量低于预定阈值,则认为追踪丢失。WAL客户端可以通过直接比较当前图像对存储在WAL客户端上的关键帧图像执行重新定位以查找匹配。此外,WAL客户端可以通过比较当前映像中的特征与本地存储在WAL客户端上的特征来执行重新定位以查找匹配。因为图像和特征可以本地存储在WAL客户端上,所以可以在与WAL服务器不进行任何通信的情况下,执行重新定位。
[0043]在一个实施例中,通过WAL客户端所获得的新信息(例如,对SLAM地图的更新)可以发送到WAL服务器以更新服务器地图。在一个实施例中,装置100 (也称为WAL客户端)可以经配置以建立一个SLAM环境,同时使相对于SLAM环境的装置100的姿势能够由WAL服务器进行计算。
[0044]在一个实施例中,WAL客户端将一或多个关键帧和相应的相机标定信息发送到WAL服务器作为定位查询(LQ)。在一个实施例中,可从当前LQ省略自最后的LQ以来由WAL服务器接收到的数据(例如,关键帧)。以前由WAL服务器接收到的LQ可以存储和
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1