V-SLAM重读(2): DSO: Direct Sparse Odometry (DSO)
学习VO论文之: Direct Sparse Odometry (DSO)
1. 摘要
DSO是一种基于新颖, 高精度稀疏直接化的结构和运动估计的视觉里程计算法。
它将一个完整直接概率模型(极小化广度误差)与相机几何运动的所有一致性参数进行联合优化(也就是将位姿估计与数据关联放在了一个统一的非线性优化问题中)。
由于该方法不要依赖于关键点检测器和描述子
, 它能够在经过有图像梯度的区域采样像素
, 包括边缘和无特征墙面
的平滑强度变化。
2.多种组合
-
稀疏+非直接:从关键点匹配估计3D几何误差,无几何先验。如monoSLAM[4], PTAM[16], ORB-SLAM[20].
-
稠密+非直接: 估计3D几何误差+几何先验[23], [27].
-
稠密+直接: 利用光度误差去估计半稠密和稠密几何, 如DTAM[21], LSD-SLAM[5].
-
稀疏+直接: 本文方法, 不传播几何先验知识, 只有优化来源与图像的光度误差,一个稀疏和直接化公式早就被提出[13] (该方法采用EKF). 本文采用非线性优化。
直接法的优势
1.不要求识别点,因此可以识别更细粒度的几何图形表示(像素的逆深度)。
2.对可行的所有数据进行采样, 包括边缘和低强度变化,获取一个在稀疏纹理的环境下鲁棒和完整的模型。
稀疏化的优势
添加几何先验的主要缺陷是在几何参数之间引入了相关性, 这使得统计上一致的实时联合优化不可行。
3.本文的贡献
(1). 本文提出一种稀疏直接法的视觉里程计, 据我们所知, 仅仅完整的直接法才会联合包含相机位姿,相机内参和逆深度(几何参数)模型
参数优化似然估计。
这与SVO的混合方法相反, 它是一个间接模型的联合优化。
(2).利用滑动窗口来进行优化, 即旧的相机位姿将会被边缘化。相对于已有的方法,本文的方法进一步的优势在于它的相机光度标定, 包含透镜衰减,伽马校准和曝光时间
,这种方法的优化进一步增加了算法的精确度和鲁棒性。
(3). 该方法有两种设置,第一种少点和少关键帧,将会得到5倍的实时运行速度; 另外一种是多点和多关键帧,竟会得到更高的精确度和中稠密地图。
4.滑动窗口
若干关键帧和他们关联的地图点组成的残差项,构成了整个滑动窗口的内容。
-
优化方法
Gauss-Newton / LevernBerg-Marquardt方法迭代.
这个窗口在整个VO过程一直存在,并一直保持在大概5~7个关键帧。
- 滑动窗口内的关键帧更新的规则
前端会通过一定的条件限制(如相机移动距离过大), 来判断新来的帧是否可作为新的关键帧插入后端;
后端会通过一定的条件限制,来去除(利用Schur complement边缘化掉 )多出来的帧。
5. 光度标定
DSO提出了光度标定
,认为对相机的曝光时间、暗角、伽马响应等参数进行标定后,能够让直接法更加精确和鲁棒。
对于未进行光度标定的相机,DSO也会在优化中动态估计光度参数。
这个过程建模了相机的成像过程,因此对于由相机曝光不同引起的图像明暗变化,会有更好的表现。
但是,如果由于环境光源发生变化,光度标定也是无能为力的。
这里只给出论文的核心思想, 详细的公式讨论会在代码研究中分析。