《Parallel Tracking and Mapping for Small AR Workspaces》阅读笔记一

来源:互联网 发布:存货管理数据分析 编辑:程序博客网 时间:2024/06/06 09:58

一、摘要

1.提出一种在未知场景中估计相机位姿的方法,由机器人导航领域的SLAM算法发展而来,这种方法已经有所研究。

2.这篇论文主要的贡献在于:将跟踪线程和绘图线程分成两个线程,在双核计算机上并行运算。一个线程进行相机的稳定跟踪;另一个线程用之前观测的视频帧中的特征点生成3D地图。

3.使用了计算量大的batch optimisation techniques,该方法一般不在实时系统中使用。


二、介绍

大部分增强现实系统是在已知用户环境先验知识的情况下运行的,比如:城市的地图、相关部件的CAD模型、基准标志的稀疏点云图等。如果这些地图或目标的模型具有足够的信息,注册就可以直接进行。然而在实际条件下,这些信息并不充分,这就促进了extensible tracking[21,14,4,28,2]的发展。这些方法尝试给系统的初始地图添加未知场景信息,之后,当感知区域不在初始地图上时,仍然能够注册。文献[4]中的初始地图仅仅由一个模板构成。

要想实现用户与虚拟目标自由地交互,必须实现精确而稳定的相机跟踪和地图绘制,并在探索新区域的同时扩展地图。这是一个具有挑战的问题,为了简化问题,论文对跟踪的场景提出一些合理的限制:1)场景是静止的;2)场景是small(small的意思是用户经常呆的地方,如:桌子、房间一角、某个建筑门口等)。


三、SLAM方法回顾

这篇文章方法概况:1)跟踪和绘图是分开的,并行运算;

2)地图是基于关键帧的,用batch techniques (bundle adjustment)方法构建;

3)用立体图像对(5-point algorithm)进行稠密地图初始化;

4)用epipolar search方法添加新的特征点;

5)构建大量的特征点的地图。

当时两个著名的同步定位与绘图系统是:Davison在文献[5]中提出的EKF-SLAM[26]和Eade and Drummond在文献[8,7]中提出的FastSLAM2.0[17]。两种方法都采用了增量绘图方法,跟踪和绘图是关联在一起的,所以相机的位姿和地标的位置在视频中的每一帧都要更新。

跟踪相机比跟踪运动机器人要困难,原因:1)机器人通常可以接受某种形式的odometry;2)机器人可以以任意慢的速度移动。但是对于摄像机则没有这些条件,所以data-association errors是一大问题,并且由增量绘图方法产生的地图也会受其影响。为了避免数据关联误差,文献[5]中采用了Joint Compatibility Branch and Bound(JCBB)方法;文献[7]中采用了Random Sample Consensus(RANSAC)方法。尽管如此,两种方法都没有实现很好的鲁棒性。

这就促使跟踪和绘图线程的分裂。如果分为两个处理线程,一方面,跟踪就不再受地图绘制处理的限制,可以采用更加稳定的跟踪算法(文中采用一种coarse-to-fine approach with a robust estimator)。所以跟踪和绘图之间的数据关联就不需要共享。另外,这样也充分利用了双核计算机的性能,减小每帧地图更新的计算负担,跟踪线程可以处理更多的图像,提升算法性能。

另一方面,地图线程没有与跟踪线程捆绑在一起,从而不需要对每一个视频帧进行绘图。往往很多视频帧包含着冗余信息,尤其是相机静止的时候。大多数增量系统会一帧一帧的重新过滤相同的数据,这样浪费了很多时间。本篇论文就可以只处理少量的更加有用的关键帧。文中将增量绘图的方法换成了计算量大但精度高的batch method (bundle adjustment)。

bundle adjustment已经被用于离线的SfM,当时已经有了成功的应用:用于实时视觉odometry and tracking[20,18,9]。这些方法采用5-point stereo[27]方法进行地图初始化,然后用local bundle adjustment跟踪相机。


四、更加相关的文献

为了提高monocular SLAM的鲁棒性,文献[22]将EKF换成particle filter,克服摄像机快速运动的影响,然而绘图线程没有考虑帧对帧或相机对特征的相关性。为此,文献[3]将correlation-based search换成了一个更加稳定的图像描述子,减小了异常检测的概率,该系统能够适应于大量特征的搜索域,且不失鲁棒性,然而系统是基于unscented Kalman filter,对地图的扩展能力很差,只能绘制很少的点。

文献[11,28]中尝试了使用batch techniques进行extensible tracking。[11]在训练阶段使用了classic bundle adjustment,然后跟踪已经学习的特征,然而没有尝试扩展地图。[28]引入了一个不同的estimator,自称系统具有更好的鲁棒性和精确度,然而严重的性能代价使系统无法使用。

文献[2]中系统在线三角化新的特征块,同时跟踪一个预先知道的CAD模型,实现了明显的high-quality patch tracking。文中使用high-DOF minimisation technique跨越多尺度,实现了比SLAM算法中常用的NCC search更好的patch tracking结果。但是算法计算量很大,所以作者通过丢弃feature-feature covariances来简化地图的构建。

文献[15]使用了SfM techniques进行地图的构建,并且跟踪一个未知场景。算法采用两个处理器:作者从3D姿态估计中分离2D特征跟踪。







0 0
原创粉丝点击