视觉SLAM综述(下)

来源:互联网 发布:阿里java面试题2017 编辑:程序博客网 时间:2024/06/03 15:26



6.视觉SLAM问题的解决方案


        用于解决视觉SLAM问题的解决方案可以分为三类:

        (a)经典方法,基于概率的滤波器的方法,系统用概率方式表示机器人位姿和环境路标点

        (b)采用增量的SfM((Structure from Motion)的方法

        (c)生物启发技术。以下章节将会对各个部分进行详细的描述。


6.1概率滤波器


        目前为止大多数的SLAM解决方案都是基于概率技术的。例如:扩展卡尔曼滤波(EKF),FastSLAM,最大似然(ML)和最大期望(EM)[130]。当要联合考虑机器人和地图不确定性的时候,前两个方法是最经常用到的,因为它们在这种情况下取得最好的效果。这些方法在小规模环境中是成功的,但是在大场景中的导航或者回环检测中添加信息的能力有限。


        以增量的方式构建地图的方法最先由[26]提出,它还给出了随机地图的概念,并且使用扩展卡尔曼滤波器的方法提升了SLAM问题的精度。基于扩展卡尔曼滤波器的SLAM方法就是通过观测和状态的非线性模型来迭代估计出状态向量,状态向量包含机器人位姿和地图元素。不确定性由概率密度函数表示。前提假设是这些概率密度函数的均值和协方差的迭代接近最优解。扩展卡尔曼滤波器的方法对错误的关联非常敏感,一个不正确的关联会导致整个滤波器发散。由于EKF的复杂度是路标点数目平方的,所以它难以建立很大的地图。有很多个方法可以减少复杂度,诸如:Atlas框架[131],压缩扩展卡尔曼滤波器(CEKF)[132],稀疏扩展信息滤波器(SEIF)[133],文章[6]给出的复杂度为的分治方法,文章[39]提出的条件独立子图(CI-Submaps)的方法。

FastSLAM方法被[134]提出,后来由[135]进一步发展。这种方法将机器人的位姿维持为一组Rao-Blackwellized粒子,其中每个粒子表示一条机器人的轨迹,并使用EKF来维护地图,且对数据关联有假设,在概率条件下才有意义。为了避免粒子随时间退化,这个方法分为粒子生成过程和重采样过程。这个方法的计算复杂度是,表示使用的粒子个数,表示地图中路标点的数目。它们的主要问题在于没有方法知道用多少的粒子就能够准确表示机器人的位姿。较多的粒子就会需要很多内存和长的计算时间,但是较少的粒子则会导致结果不准确。

[33]首次提出了一个实时单目概率系统,叫做单目SLAM。该方法使用数字FireWire相机(IEEE-1394),以每秒30帧的速度同时建立三维地图与定位。它考虑相机完整的自由度(6gdl):位置(x,y,z)和姿态(俯,偏,滚)。由于它使用EKF来估计数据,因此这个方法仅限于在有限空间或者室内进行。


        单目SLAM系统使用恒定的速度和角速度模型。这个模型是不方便的,因为它不能处理突然的移动,并且限制了相机的机动性。因此,为了跟踪,帧间的显著特征点的移动距离需要很小(否则,就需要花费较高的代价进行大范围的搜索特征进行匹配)。


        为了应对单目SLAM中相机的不规则运动问题,[78]提出了一个优化的版本,它能够使用考虑了加速度,线速度和角速度的扩展模型,并以200Hz的速度进行处理。然而,它的实时性只有几秒钟,因为地图的尺寸和计算代价会急剧增加。


        为了增加地图中的路标点,受[134]启发,[136]使用粒子滤波器的技术。这个技术能够在视频帧中以30个特征来进行跟踪,并且维护含有上千个路标点的稠密地图。[119]提出了一个方案能够将单目SLAM用于到室外大场景中。该方法基于分层建图技术和基于几何约束分支定界(GCBB)的鲁棒数据关联算法,能够处理大环形闭合(约250m)。


        如上面叙述的那样,单目视觉SLAM中的一个问题就是路标点的初始化问题,因为不能够从单一观测中获取深度。鉴于此,[33]使用延迟初始化技术,而[137]提出了叫做逆深度参数的技术,在EKF-SLAM系统中,当检测到第一帧的时候,它可以无延迟地对路标进行初始化操作。


6.2 从运动恢复结构


        从运动恢复结构(Structure from motion,SfM)技术从图像序列中计算相机位姿和场景的三维结构[138]。SfM起源于图形学和计算机视觉。标准的处理过程是从输入的图像中提取显著性特征,进行匹配,使用光束平差(BA)非线性优化技术来最小化重投影误差[139, 140]。


        SfM对相机的定位有很高的精度,但却不一定能建立出一致的地图。尽管这样,几个使用SfM技术的方案能够实现精确定位,并且创建了较好的环境表示。


        解决SfM问题的一种方法就是由[57]提出的视觉里程计。视觉里程计就是仅仅使用图片,同时确定每一帧下相机的位姿和特征点在三维世界坐标下的的位置。[59, 141]使用了一种类似于Nister的视觉里程计,但是不同的是加入了局部光束平差,可以达到500m的追踪。视觉里程计每一帧能够处理上千个特征,而概率的方法只能处理几个特征。


        [17]给出了一个并行跟踪和建图(PTAM)的单目方法。这种方法基于关键帧(参见附录一)技术,并运行两个并行进程。第一个进程鲁棒地进行特征点的跟踪,而第二个进程则使用光束平差技术生成三维地图。PTAM系统在相似纹理处和有移动物体时会出现错误。

在[51, 52]作者分别使用了叫做FrameSLAM和View-Based Maps的技术。这两种方法都把地图看成是“骨骼”,由帧间的非线性约束图构成(而不是单个的三维特征)。作者把立体视觉装置安装在轮式机器人上,在一些动态改变的环境下(城市)也能有很好的长距离(大约10km)跟踪。


        近来,[142]认识到为了增加单目SLAM系统的精度,应该增加特征的数目而不是帧的数目,同时,光束平差技术也比滤波器技术要好。但是,他们表明在具有高不确定性的环境中,滤波器的方法可能更加适合。理想的SLAM系统必需能够具有SfM技术和概率滤波器两者的优点。


6.3生物启发式模型


        [143]使用啮齿动物海马(负责空间记忆)的模型来创建称为RatSLAM的定位和建图系统。RatSLAM能够使用单个相机生成复杂环境的一致稳定表示。文章[8, 144]的实验结果显示在室内和室外环境中的实时任务中都有很好的性能。此外,在一天中的不同时间,它还能够在5km的距离内进行超过51次的闭环检测。在[145]中对RatSLAM进行了深入的研究,并且对诸如蜜蜂,蚂蚁,灵长类动物和人类的导航系统也进行了广泛的研究。


        [146]研究了蚂蚁在沙漠中的行为,以分析它们如何通过视觉路标点进行引导,而不是信息素轨迹。虽然这个研究专注在理解蚂蚁是如何使用视觉信息来导航的,但是作者说这个提出的方法是可行的并且很容易在机器人上实现。


7.观测世界的表示法


        建图是当下的一个活跃的研究领域。在地图中空置的和被占用(障碍物)的环境空间通过几何来表达。在以往的文章中,地图可以大致分为两类:度量地图和拓扑地图。度量地图能够抓住环境的几何性质,而拓扑地图则会描述两两地点间的连接关系。


        在度量地图中,通常又分为栅格地图[147]和路标地图[17, 38, 40, 59]。栅格地图使用离散的小方格对空置的和被占用的空间进行建模,这些小方格可能包含二维信息,2.5维信息或者三维信息。路标地图则标记出环境中显著特征的三维空间位置。文章[148]使用概率技术对室内环境中机器人建图的问题进行了详细的研究。


        路标地图中只有结构环境中那些孤立的路标点才会被表达,这减少了内存资源和计算成本。就像前面描述的那样,由于一个地方缺少路标点而被表明是空置空间,因此这种类型的地图不适合用于避障和路径规划。然而,当确定机器人位姿比地图更重要时,这种方法就显得适合了。


        拓扑地图会通过用弧(类似图)把一系列的重要地点连接起来用以表示地图[52, 124, 149, 150]。基于图的世界表示法简化了建立大扩展地图的问题。可是,它需要通过地图的全局优化来减少局部的误差[151, 152]。文章[153]给出了基于图的方式来建模SLAM问题的教程。其他相关的基于图的方案如:[51, 52]建立了帧间的姿态序列,它们能够从严重的误差中恢复过来。虽然在相机发生遮挡的时候,它们使用了IMU产生的姿态信息,但是它们展示了使用立体相机实现的超过10千米的跟踪。作者们表示他们的方案也适用于单目的SLAM,虽然他们并未展示。另一个可以替代的选择是[53],它使用相对光束平差技术来处理那些包含最近节点组成的局部地图,并且这个时间复杂度是恒定的。通过使用立体相机,它产生大约2千米的轨迹。


        拓扑方法的局限就是缺少度量信息,因此,使用这种地图不能够引导机器人。所以,[154-156]提出了策略在单独的一致模型中混合度量信息和拓扑信息。


        当前,最具有前景的环境表示方法是基于图的表示方法。但是仍然有很多的挑战需要克服:当检测到错误的位姿估计时编辑修改地图的能力,或者大尺寸全局地图的生成。


        用于评估视觉SLAM系统的包含真实图像序列的数据集在附录三中。


        在本篇文章中我们在给出了视觉SLAM的关键特征(Table 1),分为:

        (1)作者姓名和相应的参考

        (2)使用的传感器类型

        (3)视觉SLAM解决方案的核心

        (4)环境表示法的类型

        (5)特征提取的过程的细节

        (6)系统在移动物体,剧烈移动和大场景下以及回环   检测中的鲁棒性和性能

        (7)用于测试系统性能的环境类型。


8.结论


        这篇文章表明仅仅使用视觉来解决SLAM问题受到很大的关注。主要是因为相机是一个理想的传感器,它轻便,被动接收,能耗低,并且能够获取场景的丰富信息。然而,视觉的使用必须有好的算法,在光照变化,遮挡,由于行人和物体移动带来的表面变化,特征较少区域,白天和黑夜的改变,或者其他不能预见的情况,都能够有很好的效果。因此,使用唯一视觉的SLAM系统仍然是一个具有挑战性和值得研究的领域。


        图像匹配和数据关联在相应的计算机视觉和机器人视觉的领域中仍然是开放的研究领域。检测子和描述子的选择直接影响到系统跟踪显著特征的性能、回环检测、建立连续统一的地图、实时性等。特别是数据关联,在长期导航中,尽管数据库不断增长变化和极端环境下,显得更加重要。错误关联如果被采纳,那么会在SLAM系统中造成严重的错误,意味着定位和地图都会出现不一致。因此,提出新的减少假阳性的策略是非常重要的。


        在解决视觉SLAM的数据关联问题中,基于表观的方法已经被广泛应用。最广泛的技术就是词袋模型,它的速度很快。可是,它容易受到感知混叠现象的影响。同时,这项技术在循环区间经常发生闭合检测大视角或大尺度变化,绑架机器人问题,多会话以及协同建图中并未彻底测试。而且,词袋模型还没有考虑使用检测特征间的空间分布关系和三维几何信息,而这些对建立稳定的数据关联是很有用处的。


        虽然已经有几个提案建立终身地图,但这个问题仍然是一个令人感兴趣的主题,除此之外,还有在现实环境中造成的所有问题中构建地图的能力。


        到目前为止,还没有用于评估比较完整的视觉SLAM系统一般的效率和有效性的标准,然而,存在若干个可以表征其性能的指标,比如,人类的干预程度,定位精度,地图的一致性,实时操作以及随着地图增长而产生的计算成本的控制,等等。


附录一:关键帧

 

       关键帧是在视频序列中与其之前序列很不同的视频帧,它表示新的位置。关键帧也被用来有效估计相机的位姿并且减少信息的冗余。将视频帧分为关键帧的最简单的方法就是将视频帧与先前拍摄的视频帧进行比较,选择视频帧之间存在着一定数量匹配特征且采集时间最远的帧。[157]对视觉SLAM中的不同的关键帧检测技术进行了对比研究。


附录二:视觉词袋模型(BoVW)

 

       近来,视觉SLAM中的数据关联问题多使用视觉词袋模型[158],它的升级版本叫做词汇树[159]。词袋模型在信息检索领域,计算机视觉中基于内容的图像检索领域中已经取得了很大的成功,因为它能很快找出相似的图像。然而,这个技术并不完全精确,因为会出现假阳性数据。为了在一定程度上解决这个问题,在检索的后期阶段使用空间信息进行筛选,可以使用对极约束[121]进行后验校正,或者使用条件随机场[85]。这个验证可以去掉那些不符合几何一致性的数据。


        经典的视觉词袋模型是有一个全部的词语集合作为视觉词典,将图像转换成局部特征的视觉词语集合。许多的视觉词袋模型都使用大量的训练图像,离线使用K近邻聚类的方法来生成[118, 122]。另一个选择,并且更加有效的方法就是使用已经探索过的环境中的特征进行在线的动态生成词袋模型。这个机制在文章[121, 150]有描述。


        一些视觉词在用来识别两个图像是否显示同一个地方比其他词更加有用。为每个词分配特定权重的常见方案是TF-IDF。它结合了图像中的词的重要性(TF)和收集中的词的重要性(IDF)。此外,还有其他的机制,分为局部(平方TF,频率对数,二进制,BM25TF等等)和全局(概率IDF,平方IDF等)[160]。反向索引用于加速查询,其组织表示图像的整组视觉词。反向索引被构造为书索引。对图像集合中的每个单词都有一个条目,并附着含有该单词的所有图像列表。


附录三:用于测试视觉SLAM系统的数据集


一些公开的数据集可以用来测试视觉SLAM系统:

(a)New College and City Centre Datasets(室外)

(http://www.robots.ox.ac.uk/~mobile/IJRR_2008_Dataset/),

(b)The New College Vision and Laser Data Set(室外)

http://www.robots.ox.ac.uk/NewCollegeData/

(c)Bovisa (室外) and Bicocca (室内) Datasets of Rawseeds project

http://www.rawseeds.org/rs/datasets

(d)The Cheddar Gorge Data Set(室外)

http://www.openslam.org/misc/BAE_RSJCJR_2011.pdf

RGB-D datasets (室内) http://vision.in.tum.de/data/datasets/rgbd-dataset


【版权声明】

泡泡机器人SLAM的所有文章全部由泡泡机器人的成员花费大量心血制作而成 的原创内 容,希望大家珍惜我们的劳动成果,转载请务必注明出自【泡泡机器人SLAM】微信公众号,否则侵权必究!同时,我们也欢迎各位转载到自己的 朋友圈,让更多的人能进入到SLAM这个领域中,让我们共同为推进中国的 SLAM事业而努力!