您的位置:首页 > 其它

ROBOTICS2015 ORB-SLAM: a Versatile and Accurate Monocular SLAM System

2017-07-31 10:30 363 查看
提出的ORBSLAM系统对于严苛运动条件较鲁棒,允许宽基线的回环检测和重定位,并且包含全自动的初始化步骤,所有系统任务(跟踪、建图、重定位与回环检测)均基于相同的特征ORB。地图重建过程中甄选特征点与关键帧的策略,使系统构建出的地图紧凑而不失可追踪特性,且是递进增量式的,这使得系统满足终身建图特性。

ORBSLAM的核心继承于PTAM,场景识别来自于[5],回环检测来自于[6],大尺度下共视信息思想来自于[7][8],有如下贡献:

1.所有系统任务(跟踪、建图、重定位、回环检测)使用同一种特征ORB,ORB无需GPU即可实时并具有很好的视角不变性和光照鲁棒性

2.系统实时大尺度环境工作得益于共视图的引入,它使跟踪和建图步骤可以聚焦在局部可视范围而不是全局地图内

3.系统实时回环检测得益于Essential Graph本质图(共视图的稀疏子图)的优化,它由系统维持的最小生成树、回环连接关系以及共视图中的强连接边构成(边的权重由两关键帧间共视的地图点数量决定)

4.系统满足实时重定位(满足大视角不变性和光照鲁棒性),它使系统在跟踪失败的情况下能快速恢复并且加强地图的重用效果

5.新颖自动且鲁棒的初始化步骤,它基于多个模型的选择,同时满足平面和非平面场景

6.地图点和关键帧的宽进严出使系统跟踪鲁棒,关键帧冗余性的剔除使其可终身工作

系统回环检测使用的是本质图Essential Graph,它是共视图Convisibly Graph的稀疏子图,共视图本质上是稠密的。本质图包含一个最小生成树,共视图中权重Θ>100的边和回环连接边。文中VIII
4000
-E做了实验验证了对本质图进行姿态优化已经足够准确,额外的完全BA优化对系统提升不大。

由于前后关键帧间存在重叠部分,因此当搜寻数据库时返回最高分相似帧并不合理;原版的DBoW2中也考虑了重叠的问题,它将这些帧的得分都累加起来,最后还是返回一个最高分相似的关键帧;但是这会存在如下局限:即当在不同的时间插入同一场景的关键帧时(仅返回一个最相似关键帧可能会导致回环的丢失或者错配?);本文做了相应的改进,返回大于75%最高得分的所有帧。

杂项

在不限制计算资源的条件下,一个实时准确的SLAM系统需要在如下情况使用BA:

1.优化关键帧子集中特征点间的观测关系

2.减少冗余和复杂度的关键帧甄选机制

3.维持关键帧和特征点间的强关联网络关系(即存在较大视差和充足的回环匹配)

4.关键帧和特征点的初始估计中的非线性优化

5.可拓展局部地图的优化

6.回环检测中姿态图实时快速全局优化

PTAM的局限性:缺少回环检测;缺少遮蔽环境下的处理;重定位视角的低不变性;系统初始化需要人为干预。

DBoW由FAST + BRIEF构成,但是BRIEF对旋转和尺度都不具有旋转不变性;文献[11]中针对上述缺点采用ORB特征对DBoW进行了改进,并且根据共视关系返回多个相似图像而不是最佳匹配图像,该改进方法在1W张图像中识别仅需39ms(包括了特征提取的时间)。

深度估计(初始化)

通过跟踪已知的结构,基于滤波方法:通过对点深度的高不确定性进行逆深度参数化,并期望它们最终收敛致真实位置;LSD-SLAM同样将点的深度初始化于一个方差较大的随机的初始值。

通过两视图几何方法:

1)假定局部平面场景一致,相机的姿态可以通过计算单应性矩阵[23]求出

2)可用平面模型表示的一般场景,相机的姿态可通过五点法[26]计算本质矩阵[24,25]求出

上述方法在低视差的情况下,所有平面场景点距相机中心较近,因此平面场景的假设限制将不满足,求解将出现歧义性

3)非平面的场景可通过八点法[8]计算基本矩阵求出,且不具有歧义性

单目SLAM对比

基于滤波器:需要处理连续帧(即使新帧中含有少量的信息);累积的线性化误差

基于关键帧:需要使用精准但计算量较大的BA,但满足建图非实时特性的需要

[31]中Strasdat对比了在同样计算量下,基于关键帧方法的结果准确度要优于滤波器方法

相关工作

[34]利用相机到地面距离的先验信息来限制单目的尺度漂移;

[25]使用了同样的特征一致思路(感觉作者有点指责他们抄袭的意思),但选择BRIEF限制了系统只能在平面运动,仅跟踪最后一关键帧,不存在共视及地图重用,因此退化为VO并存在无限增长的问题;

[10]LSD-SLAM使用直接法可构建大尺度半稠密地图,无GPU加速情况下可以达到实时,但回环检测部分仍需要特征支持,并且定位精度比ORBSLAM和PTAM都要差;

[22]SVO的演示视频在四旋翼上的效果十分惊艳,但它没有回环检测部分并且目前的实现版本只针对俯视的摄像头,SVO的这个issue里 https://github.com/uzh-rpg/rpg_svo/issues/105 Forster对为什么要用俯视作了解释;

基本上所有的文献都认为将所有特征点和关键帧进行BA优化是不可行的;[31]Strasdat指出最可行的方法是尽可能多地保留点并且只保存非冗余的关键帧;PTAM对关键帧的插入十分谨慎,因此它在复杂环境下拓展容易失败;本文最合适的策略是先尽可能快的插入关键帧满足跟踪要求,再将冗余的关键帧去掉以防后续BA优化浪费过多时间,即宽进严出策略。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: