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

文档序号:9422369阅读:来源:国知局
缓存。这种数据连续性使WAL服务器可以从WAL客户端中搜遍所有地图点,而无需将所有先前发送的关键帧重新发射到WAL服务器。在其它实施例中,WAL客户端可以发送整个SLAM地图或带有各自的LQ的多个关键帧,这意味着在WAL服务器上不需要临时存储。
[0045]WAL服务器和WAL客户端能够以增量方式更新SLAM环境,可以以增量方式启用广域定位,例如大城市街区,即使整个城市街区可不会以单个有限的相机视图俘获。此外,将SLAM环境的关键帧作为LQ发送到WAL服务器可以提高WAL客户端确定全球定位的能力,因为WAL服务器可以处理以第一次接收到的LQ开始的SLAM地图的一部分。
[0046]除了使用SLAM框架来定位装置100,WAL客户端可确定何时将LQ发送到WAL服务器200。当发送LQ中的关键帧时,可进行传输优化。例如,SLAM环境的部分可以以增量方式发送到WAL服务器200。在一些实施方案中,随着新的关键帧添加到WAL客户端上的SLAM地图,后台处理可以使一或多个关键帧流到WAL服务器。WAL服务器可以经配置以拥有会话处理能力,从而管理从一或多个WAL客户传入的多个关键帧。WAL服务器还可以经配置以使用服务器地图执行迭代最近点(ICP)匹配。WAL服务器可通过缓存以前的结果(例如,从描述符匹配)将新的或最近接收到的关键帧合并到ICP匹配中。
[0047]WAL服务器可以执行ICP匹配而不必使WAL客户端重新处理整个SLAM地图。这种方法可以支持增量关键帧处理(本文也称为增量更新)。与在大小相同的全新地图内定位相比,增量关键帧处理可以提高定位的效率(例如,相应定位)。当执行增强现实应用程序定位时,效率的提高可以是特别有用的。利用这种方法,新信息流变为可用,因为WAL客户端扩展SLAM地图的大小而不是具有在其处将数据发送到WAL服务器的明确决定点。因此,公开的方法因为可能发送新的信息而优化发送到WAL服务器的信息量。
[0048]图5是示出了一个实施例中的一种在WAL服务器处执行广域定位的方法的流程图。在框505,一个实施例(例如,所述实施例可以是WAL服务器的软件或硬件)接收来自WAL客户端的关键帧。在一个实施例中,WAL服务器也可以接收每个关键帧相应的相机标定。
[0049]在框510,实施例可以在服务器地图内定位一或多个关键帧。由WAL服务器接收到的关键帧可以在SLAM地图的相同的本地坐标系中登记。WAL服务器可以同时处理(即,匹配其它关键帧或服务器地图)从一或多个WAL客户端的接收到的多个关键帧。例如,WAL服务器可以处理来自第一客户端的第一关键帧,同时处理来自第二客户端的第二关键帧。WAL服务器还可在同一时间处理来自同一客户端的两个关键帧。WAL服务器可以通过极线约束链接在多个关键帧中观察到的特征点。在一个实施例中,WAL服务器可以将来自所有关键帧的所有特征点匹配到服务器地图或地图数据库内的所有特征点。匹配多个关键帧会导致比将单个关键帧匹配到服务器地图更多数量的候选匹配。例如,对于每个关键帧,WAL服务器可以计算三点姿势。三点姿势可以通过将关键帧图像中的特征匹配到地图数据库,并查找相当于一致姿势估计的三或更多个的2D-3D匹配。
[0050]在框515,实施例可以将定位结果提供到WAL客户端。WAL客户端可以使用定位结果连同WAL客户端上的标定以提供SLAM地图的尺寸估计。单个关键帧可以足以至少确定SLAM地图关于环境的定向估计(例如,相机定向),不过也可以通过传感器(例如,加速度计或罗盘)测量提供定向估计。若要确定地图比例,WAL服务器可以登记两个关键帧,或一个关键帧加单个3D点(即,特征点),这些可以在服务器地图中正确地匹配(即,重建)。若要验证登记,WAL服务器可以比较来自SLAM地图的相对相机姿势与来自关键帧登记过程的相对相机姿势。
[0051 ] 在另一个实施例中,WAL客户端将3D点的地图(例如,SLAM地图)提供到WAL服务器。WAL服务器可以使SLAM地图与服务器地图匹配(S卩,重建),且扩展基于图像的服务器地图和来自WAL客户端的SLAM地图的点。经扩展的地图可用于合并服务器地图中未标明的新对象或区域。在一个实施例中,服务器地图的外观可以用来自在WAL客户端的实时图像传送或视频的关键帧来更新。
[0052]上面描述的WAL客户端-服务器系统提供用于室内和室外环境的实时准确登记的相机姿势追踪。WAL客户端上的SLAM地图的独立性允许在任何定位延迟期间连续的六个自由度的追踪。因为SLAM系统在WAL客户端(例如,装置100)处是自包含的,全球定位的成本可只会在SLAM地图展开时发生,且可在SLAM地图内追踪,而不必执行全球特征查找。
[0053]在一个实施例中,WAL服务器维护关键帧、特征点、带有3D位置信息的描述符以及潜在表面法线组成的服务器地图和/或地图数据库215。WAL服务器关键帧、特征点和描述符可以类似于在WAL客户端处确定的关键帧、特征点和描述符。然而,在WAL服务器上的关键帧、特征点和描述符可相当于在脱机过程中预先生成的3D地图的部分。
[0054]可以利用具有未知比例因子的迭代最近点(ICP)算法完成SLAM地图到服务器地图的匹配方面。WAL服务器可以使用一种用于匹配的高效数据结构,使得描述符之间的最近邻搜索可以很快计算出。这些数据结构可以采取树(例如聚类算法、kD-树、二进制树)、哈希表,或最近邻分类器的形式。
[0055]在一个实施例中,WAL服务器可以将从WAL客户端接收到的描述符与地图数据库或服务器地图中的描述符进行比较。当WAL服务器确定WAL服务器和WAL客户端的描述符是同一类型时,通过发现WAL服务器地图数据库中描述符的最近邻的WAL客户端描述符,WAL服务器将WAL客户端发送的关键帧匹配到WAL服务器上的关键帧。在WAL服务器和WAL客户端上的描述符可以向量表示对象或场景的部分的外观。可能的描述符可包含但不限于尺度不变特征变换(SIFT)和快速鲁棒特征(SURF)。WAL服务器还可以使用来自客户端传感器的附加信息先验(例如SLAM地图相关联的罗盘信息),进一步帮助确定最近邻。
[0056]在一个实施例中,由于SLAM地图和服务器地图的特征点之间可能的偏差,WAL服务器可以执行ICP匹配和全球最小化以提供抵御杂点。在一个实施例中,在ICP之前,WAL服务器可以执行SLAM地图和带有特征点的服务器地图的表面密集采样。WAL服务器可执行基于块的多视图立体算法以创建来自服务器地图和SLAM地图的密集表面点云。WAL服务器也可使用密集点云用于ICP匹配。在另一个实施例中,WAL服务器匹配SLAM地图的点云和服务器地图直接假设的共同点。
[0057]在WAL服务器上的地图数据库的描述符可以与由WAL客户端计算的描述符不同(例如,具有更大的处理复杂度),或者可替换地没有描述符可用。例如,WAL客户端可创建低处理器开销描述符,而具有更大的处理能力的WAL服务器可以具有带有相对处理器密集型的描述符的服务器地图或地图数据库。在一些实施例中,WAL服务器可以计算从WAL客户端接收到的关键帧的新的或不同的描述符。WAL服务器可以计算来自从WAL客户端收到的3D特征点的一或多个关键帧。特征点计算可在联机时执行,同时接收来自WAL客户端的新的关键帧。WAL服务器可以使用提取的特征点,而不是作为SLAM地图的一部分从WAL客户端接收的特征点。
[0058]可使用众所周知的技术提取特征点,例如SIFT,所述技术定位特征点且生成它们的描述符。另外,可使用其它技术,如SURF、梯度位置方向直方图(GLOH)或类似的技术。
[0059]在一个实施例中,可按照空间组织地图数据库(例如,可除去或包含一或多个服务器地图的地图数据库215)。例如,可以使用嵌入式装置传感器确定WAL客户端的定向。当在地图数据库内匹配关键帧时,WAL服务器可以在最初专注于搜索在WAL客户端的定向的邻域内的关键帧。在另一个实施例中,WAL服务器关键帧匹配可专注于匹配移动装置俘获的对象的地图点,并使用初始搜索结果来协助地图数据库的后续搜索。WAL服务器关键帧到地图数据库的匹配可以使用从GPS、A-GPS或Skyhook式WiFi位置获得的大概地点信息。上文所述的各种方法可以应用于提高地图数据库中的关键帧的匹配效率。
[0060]在一个实施例中,如果WAL客户端未初始化SLAM地图,则WAL客户端可以使用旋转追踪器或陀螺仪来检测已经发生不足够的平移。如果存在不足够的平移并且SLAM地图未初始化,则WAL客户端可以替代地向WAL服务器提供单个关键帧或全景图像。使用单个关键帧或全景图像,WAL服务器可以继续对全球定位执行操作,同时WAL客户端尝试初始化本地SLAM地图。例如,WAL服务器可以在地图数据库与单个关键帧之间执行ICP匹配。
[0061]在一个实施例中,一旦未能重新定位第一 SLAM地图,WAL客户端可以开始构建第二 SLAM地图。WAL服务器可以使用来自第二 SLAM地图的信息以将定位结果提供到WAL客户端。WAL客户端可以将第一 SLAM地图保存到存储器,并且,如果存在足够重叠,之后可以合并第一 SLAM地图和第二 SLAM地图。WAL服务器可以偏置用于每个特征基上的重叠的搜索,因为重叠是从第一 SLAM地图重新投影到第二 SLAM地图的特征的直接结果。
[0062]在一个实施例中,来自SLAM地图的信息可以用于更新服务器地图。具体来说,WAL服务器可以添加新的特征(带有描述符的图像中的2d点)和点(场景中的3d点,其链接到2d特征),这些新的特征和点来自从当前的服务器地图中缺失的WAL客户端的关键帧。添加特征可以改善服务器地图,且使WAL服务器实现更好地弥补时间变更。例如,WAL客户端可尝试定位带有当在冬季期间树木落叶时俘获的关键帧的SLAM地图。WAL服务器可以接收带有缺失叶子的树木以合并到服务器地图的关键帧。WAL服务器可以存储取决于以年计的时间的服务器地图的多个变更。
[0063]在一个实施例中
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1