Double Window Optimisation
Strasdat 2011 · 论文
一句话总结 —— 一种分层后端,在一个小的内窗口中耦合完整的光束法平差,并在一个外窗口中采用软位姿图约束作为外围,从而在保持局部BA精度的同时实现恒定时间的视觉SLAM。
问题
完整的光束法平差(bundle adjustment)相对于关键帧数量呈线性到三次方的复杂度,这使其在长时间运行的SLAM中不可行。滑动窗口/主动窗口BA能保持恒定的计算成本,但会将边界关键帧固定为硬约束,这在闭环运动下会阻碍收敛;纯位姿图优化是有损的;相对光束法平差在闭环的局部区域内不能保证度量一致性。当时缺失的是一个能同时处理精确的闭环局部浏览和快速大范围探索、且计算时间恒定的单一后端。
方法与架构
SLAM图。 关键帧顶点(绝对位姿)、3D点,以及边,其中每条边携带一个共视权重(covisibility weight) = 两帧中都可见的点的数量。从当前参考关键帧开始,对共视关系进行统一代价搜索(优先选择最高的),选取前个关键帧作为内窗口,再选取接下来的个作为外窗口,其中。
一个联合代价,两种约束类型。 内窗口中所有可见的点都作为点-位姿(重投影)约束加入;所有外窗口帧则通过位姿-位姿约束与其共视邻居相连,两者被同时最小化:
其中是点在帧中的观测值,是被边缘化边所存储的相对位姿。作者没有采用真正的边缘化,而是有意用一个廉价的、以共视度加权的对角矩阵来近似精度矩阵,
——作者表示,采用真正的边缘化并没有显著改善结果,他们将此归因于密集互联的共视结构。位姿图外围充当软约束以稳定BA核心,这与固定(硬)边界关键帧形成对比。优化使用g2o,并通过Levenberg-Marquardt阻尼吸收规范自由度(没有帧被固定);重新进入窗口的位姿会沿相对位姿路径重新初始化,随后进行仅优化结构的迭代。
单目尺度处理。 位姿存在于(旋转、平移、尺度)而非中;新关键帧的,尺度仅在基于外观的回环检测时才会引入,此时对3D-3D对应关系进行3点RANSAC以恢复相似变换——在恒定时间内修正尺度漂移。
回环检测。 度量回环检测通过匹配在更大邻域中可见但不在直接邻域中的点来发现;如果有个点(通常为15-30个)共同对齐,则添加一条带约束的边缘化边。大范围回环检测则来自基于外观的检测,并通过3点RANSAC验证,匹配的3D点对被合并。
实验结果
在蒙特卡洛螺旋仿真中(500个关键帧,立体模型:焦距300,基线5厘米,640x480,1像素高斯噪声,10次试验,在Intel i7 960单核上运行g2o),恒定时间的cDWO(内窗口15,外窗口50)在内窗口范围内达到与完整BA相同的精度,而其计算成本保持平稳;gDWO(外窗口覆盖剩余全部485帧)则在全局范围内接近BA的表现。将外窗口在优化过程中固定的变体明显更差,验证了软约束的价值。在单目双环仿真中(内窗口30,外窗口100),平均1%的尺度漂移能在回环检测时以恒定时间被检测并修正。真实实验:在New College数据集上的立体SLAM(BRIEF + FAST前端)以5-7 FPS的速度接近实时运行,并进行大范围回环检测;改进版PTAM单目系统在单线程中以17 FPS运行,在回环检测时检测到6%的尺度变化;RGB-D(PrimeSensor)演示包括闭环式办公室浏览、轮式机器人建图和稠密物体模型构建。
对SLAM的意义
这篇论文提供了现代关键帧SLAM仍然沿用的后端蓝图:在精度重要的地方使用光束法平差,在尺度重要的地方使用共视度加权的位姿图,并将两者合并到同一个优化中。ORB-SLAM的局部BA/本质图划分及其共视图都是直接的后继,其回环闭合也采用了本文所展示的、能在恒定时间内处理尺度漂移的方法。阅读本文可以理解现代后端为何采用这样的结构。
相关条目
- Covisibility graph —— 驱动窗口选择的图结构
- Pose graph optimization —— 外窗口所使用的机制
- Marginalization —— 对角精度近似所替代的内容
- ORB-SLAM —— 使这种后端设计广为流行的系统
- Visual-SLAM why filter? —— 同一作者的配套分析