推荐入门
- VSLAM的子类:单目,双目/RGBD;滤波和优化
- 清华自动化高翔,半闲居士,《视觉SLAM十四讲》
- 四篇论文:rgbd:kinectfusion,budlefusion,qianyi.info这个网站上找robust reconstruction;lidar:cartographer(github名字,google的),以submap的形式结合起来做出整套系统
- kinect fusion:kinectfusion是微软研究院利用kinect进行三维重建的项目,深入了解该算法及其实现可以为3D重建的kinect类应用提供一定的参考。该项目本身需要比较强大的CUDA显卡支持实现实时重建。
- cartographer
SLAM是技术,手机端的话设计VIO,visual-inertial
RGBD是Dense Slam
InfiniTAM v3在8月中旬出的,可以趁热,几乎代表行业最高水准。实现可以考虑基于InfiniTAM v3,源码很适合学习,二次开发。
RGBD,Lidar,imu,odom,基于这些传感器做一个组合SLAM。涉及:前端的tracking和后端的优化
多传感器融合是趋势,视觉结合imu等传感器的slam,需要了解和掌握。
总结归纳
直接法的缺点:
怕模糊(需要全局曝光相机)
怕大运动(图像非凸性)
怕光照变化(灰度不变假设)
直接法的优点:
速度快
视觉SLAM系统
单目SLAM:
- PTAM 2007 很牛逼的工作,论文中提出的关键帧以及多线程处理思想成为之后视觉slam标配;甚至能够实时运行在手机上。不少AR是基于ptam的;
- DTAM 2011 direct slam方法的鼻祖;
- LSD-SLAM 2014年,将直接法应用到了半稠密的单目SLAM中。
- ORB-SLAM 2015年,代表着主流的特征点SLAM的一个高峰,属于稀疏建图。
RGBD:
- KinectFusion 2011
- RGBD-SLAM2 2014
- ElasticFusion 2015
- RTAB-MAP RGB-D在CPU上实现实时稠密地图
以我相对熟悉的单目slam为例,SLAM可分为前端和后台;前端主要负责tracking相机的姿态位置,并筛选关键帧;而后台则主要负责姿态图的优化。而优化的方法多采用G2O或者SBA。
一起做RGB-D SLAM
机器人会议:IJRR/TRO/RAM/JFD/ICRA/IROS
主流的VSLAM
视觉稀疏法:ORB-SLAM 、PTAM、MonoSLAM
半稠密法:LSD-SLAM、DSO、SVO
稠密法:DTAM、Elastic Fusion、Kintinous、DVO、RGBD-SLAM-V2、RTAB-MAP、MLM等
激光:Hector SLAM、Gmapping、tinySLAM
后端优化:g2o、ceres、GTSAM
数据:RGB-D SLAM Dataset and Benchmark、KITTI Vision Benchmark Suite、The EuRoC MAV Dataset等。
直接法:SVO、LSD-SLAM
MonoSLAM(2003-2007)
2007年,A.J.Davison教授提出的第一个实时的单目视觉SLAM系统。扩展卡尔曼滤波为后端,追踪前段非常稀疏的特征点。
缺点:
- 应用场景很窄
- 路标数量有限
- 特征点稀疏非常容易丢失
- 开发已经停止
PTAM(2007-2008)
2007年,Klein等人提出。基于FAST角点
优点:
- 跟踪和建图的并行化
- 第一个使用非线性优化。
- 同时是一个增强现实的软件
缺点:
- 缺乏回环检测和重定位
- 场景小,跟踪容易丢失
ORB-SLAM(2014-2015)
2015年,代表着主流的特征点SLAM的一个高峰,属于稀疏建图。
优点:
- 支持单目,双目,RGB-D。
- 围绕ORB特征进行计算,包括视觉里程计和回环检测的ORB字典。
- 回环检测是亮点,但要加载很大的ORB字典。
- 创新式地使用了三个线程:实时跟踪的Tracking,局部BA(小图),全局Pose Graph的回环检测和优化(大图)。
- 围绕特征点进行了不少的优化。保证了特征点的均匀分布,在优化位姿时使用了一种循环优化4遍以得到更多正确匹配的方法,比PTAM更为宽松的关键帧选取策略。
缺点:
- 每副图像计算一遍ORB特征,非常耗时。
- 三线程结构也给CPU带来了较重的负担,移植到嵌入式设备上有一定的困难。
- 建图为稀疏特征点,没有开放存储和读取地图后进行重新定位的功能。
- 稀疏特征点地图只能满足定位要求,无法提供导航,避障,交互等功能,因此仅用ORB-SLAM来处理定位问题太重量级。
LSD-SLAM(2013-2014)
2014年,J.Engle等人提出。标志着单目直接法的成功应用,将直接法应用到了半稠密的单目SLAM中。
优点:
- 直接法是针对像素进行的。有创见地提出了像素梯度与直接法的关系,以及像素梯度与极线方向在稠密重建中的角度关系。
- 在CPU上实现了实时半稠密场景的重建。
- 不是利用单个像素,而是在极线上等距离取5个点,度量其SSD。用了很多精妙的手段来保证追踪的实时性和稳定性。
- 直接法的优点:对特征缺失区域不敏感
缺点:
- 对相机内参和曝光非常敏感,在相机快速运动时容易丢失
- 没有基于直接法的回环检测。因此必须依赖于特征点方法来进行回环检测,尚未摆脱特征点的计算。
SVO(Semi-direct Visual Odoemtry,半直接视觉里程计)(2014)
2014年,Forster等人提出。基于稀疏直接法的视觉里程计。特征点和直接法混合:跟踪一些关键点(角点,没有描述子),然后像直接法那样将关键点周围4×4的小块进行块匹配,来估计相机自身的运动。
SVO 2.0 2016年:
C. Forster, Z. Zhang, M. Gassner, M. Werlberger, and D. Scaramuzza.
SVO 2.0: Semi-direct visual odometry for monocular and multicamera
systems. TRO, 2016.
优点:
- 速度极快。在PC平台上能达到每秒100多帧,后续的SVO 2.0能达到每秒400帧。
- 非常适用于无人机,手持AR/VR设备这些计算平台受限场合的定位
- 创新之处:提出了深度滤波器的概念,并推导了基于均匀-高斯混合分布的深度滤波器。
- 代码清晰易读
缺点:
- 目标应用平台是无人机的俯视相机,所以在平视相机中表现不佳
- 为了速度和轻量化,舍弃了后端优化和回环检测,基本没有建图功能。所以位姿估计存在累计误差,丢失后不太容易进行重定位,所以SVO只是个VO。
DSO(直接稀疏VO,2016)
DSO [13]是LSD-SLAM的作者Jakob Engel放出的另一个大杀器,从其展示的实验结果看,无论是robustness,或是accuracy,或是计算速度,都完爆LSD-SLAM和ORB-SLAM,上个月又放出了code。
RTAB-MAP
RGB-D在CPU上实现实时稠密地图。
支持常见的RGB-D和双目传感器,提供实时的建图和定位功能
集成度较高,进行二次开发比较困难,更适合作为SLAM应用而非研究使用
DVO-SLAM(RGBD)
TUM的基于RGBD camera的VO方法