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

来源:互联网 发布:学生成绩管理系统c语言 编辑:程序博客网 时间:2024/06/05 17:57

提出的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-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优化浪费过多时间,即宽进严出策略。

阅读全文
0 0
原创粉丝点击