K2E-B-G5-6 · Paper Note
GO-SLAM
- Description:GO-SLAM 论文笔记 — 全局优化神经隐式 SLAM:DROID 风格回环检测 + 全局 BA + Instant-NGP 隐式 SDF 建图,实现全局一致三维重建
- My Notion Note ID:K2E-B-G5-6
- Created:2024-03-31
- Updated:2026-06-08
- License:转载欢迎:转载请注明作者 Yu Zhang 并附原文出处(yuzhang.io)
Table of Contents
- 1. Summary
- 2. Key Contributions
- 3. Method
- 4. Experiments & Results
- 5. Ablation & Discussion
- 6. Strengths / Limitations / Future Work
- References
1. Summary
Title: GO-SLAM: Global Optimization for Consistent 3D Instant Reconstruction Authors: Y. Zhang, F. Tosi, S. Mattoccia, M. Poggi Paper: arXiv:2309.02436 (ICCV 2023) Github: youmi-zym/GO-SLAM
GO-SLAM (博洛尼亚大学, 2023):神经隐式 SLAM 的"全局优化"代表作。前作(iMAP、NICE-SLAM、Vox-Fusion)均为纯增量系统,无回环 → 长轨迹漂移累积 → 地图不一致。GO-SLAM 在 DROID-SLAM 风格稠密 BA 的基础上引入回环检测 + 全局 BA,并让 Instant-NGP 隐式 SDF 地图在位姿全局更新后即时重对齐,实现全局一致重建。支持单目 / 双目 / RGB-D 三种输入,无需架构变更。
Replica 平均 ATE 0.34 cm (RGB-D) / 0.39 cm (单目),F-score 85.56%;TUM RGB-D ATE 平均 1.1 cm;EuRoC 11 序列平均 ATE 2.4 cm;整体 ~8 FPS (RTX 3090)。

2. Key Contributions
- 回环检测:基于关键帧间平均刚性光流衡量共视,阈值 ,检测长期闭合
- 全局 BA:在整个关键帧图上做稠密 BA(非滑窗),把闭环误差均摊回全轨迹
- 即时重对齐:全局 BA 更新历史位姿后,神经隐式 SDF 地图持续在线 fine-tune 跟随,保持几何-位姿一致
- 多传感器统一架构:同一框架支持单目 / 双目 / RGB-D,核心算法不变
- 全局关键帧选择策略:三路:最新/未建图帧 + 位姿变化 top-10(优先 BA 修正过的帧)+ 历史分层采样,兼顾局部稳定和全局覆盖
3. Method
3.1 三线程架构
| 线程 | 功能 | 频率 |
|---|---|---|
| 前端跟踪 | RAFT 光流 → 局部稠密 BA → 关键帧图 → 回环检测 | 实时级 |
| 后端全局 BA | 在整个关键帧图上全局稠密 BA,回环后触发 | ~10 FPS |
| 即时建图 | Instant-NGP + 隐式 SDF,订阅最新全局位姿 → 即时重对齐 | 异步 |
3.2 前端跟踪与回环检测
前端沿用 DROID-SLAM 的做法,用 RAFT(Recurrent All-Pairs Field Transforms,一种用循环 GRU 对全像素对相关体迭代更新光流场的稠密光流网络)风格的循环更新算子计算帧间稠密光流,输出局部稠密 BA 的位姿 + 逐像素逆深度;同时维护关键帧图 :顶点 = 关键帧,边 = 有共视/光流约束、参与联合 BA 的关键帧对。
回环检测:计算关键帧对之间的平均刚性光流 —— 把一帧像素按当前估计的逆深度 + 相对位姿"刚性"投影到另一帧,得到纯由相机运动诱导的像素位移场,对其求均值(区别于网络直接预测的光流,它只反映几何位移)。位移均值小 ⇒ 两帧视角接近、共视高。均值低于阈值 (像素)的帧对为回环候选 → 需连续三帧候选才确认(防误检)→ 建边,纳入全局 BA 图。邻域抑制半径 ,避免同一位置重复建边。
3.3 后端全局 BA
在完整关键帧历史图上执行稠密 BA(不只滑窗),cost function:
为源帧 中的像素坐标(2D); 为该像素在目标帧 中的对应坐标(由 RAFT 光流网络预测); 为关键帧 的相对位姿变换; 为反投影(像素坐标 + 逆深度 → 3D 点); 为投影; 为 RAFT 输出的逐像素光流置信权重矩阵(不确定处权重低)。
阻尼 Gauss-Newton 联合优化所有关键帧位姿和每像素深度。回环触发后全局 BA 把闭环误差通过图均摊 → 消除长轨迹漂移。
3.4 即时隐式 SDF 建图
采用 Instant-NGP 多分辨率哈希编码(NeuS 风格 SDF 体渲染):
- SDF 网络(单层 MLP,哈希编码输入):,输出 SDF + 几何特征 ( 为多分辨率哈希编码)
- 颜色网络(两层 MLP):,其中 为 SDF 梯度归一化得到的表面法向
- 体渲染权重:,透明度
(NeuS 无偏 SDF→密度, 为 sigmoid)
采样:24 分层 + 48 重要性采样;截断距离 cm;每次更新 像素。
建图总损失:。其中两项关键非平凡式:
- 深度损失(按 DBA 给出的逐像素方差 加权,非普通 L1):
- SDF 损失近表面用 ( 为该点到观测深度的带符号距离),自由空间(远离表面)用指数惩罚:
( = RGB L1, = Eikonal 正则)
3.5 地图在线重对齐
建图线程持续异步运行,每轮都拉取最新的全局位姿对 Instant-NGP 做在线 fine-tune(Adam 更新哈希表 + MLP),不等某一轮全局 BA 完成才触发——这正是"instant"的来源。于是全局 BA 一旦改了历史位姿,隐式 SDF 几何就随后续训练轮即时跟随,实现"全局 BA 改位姿 ↔ 隐式地图跟随"。这是 GO-SLAM 区别于纯增量神经 SLAM 的核心机制。
4. Experiments & Results
数据集
| 数据集 | 场景 | 评估 |
|---|---|---|
| Replica | 8 (合成室内) | ATE + F-score + 重建质量 |
| TUM RGB-D | 3 序列 | ATE |
| ScanNet | 8 场景 | ATE |
| EuRoC | 11 双目序列 | ATE |
Replica 平均 (8 场景)
| Method | ATE (cm) ↓ | F-score (%) ↑ | Comp Ratio (%) ↑ |
|---|---|---|---|
| iMAP* | 18.34 | — | 79.06 |
| NICE-SLAM | 1.95 | — | 82.41 |
| Vox-Fusion | 0.54 | — | 92.86 |
| GO-SLAM (RGB-D) | 0.34 | 85.56 | 88.09 |
| GO-SLAM (单目) | 0.39 | — | — |
TUM RGB-D (ATE, m)
| Sequence | GO-SLAM |
|---|---|
| fr1/desk | 0.015 |
| fr2/xyz | 0.006 |
| fr3/office | 0.013 |
ScanNet 跟踪 (ATE, cm)
| DROID-SLAM | NICE-SLAM | GO-SLAM (单目) | GO-SLAM (RGB-D) | |
|---|---|---|---|---|
| 8 场景平均 | 52.60 | 9.63 | 17.59 | 7.02 |
EuRoC (11 双目序列)
GO-SLAM 平均 ATE 2.4 cm,媲美传统双目 SLAM。

5. Ablation & Discussion
回环 + 全局 BA 贡献 (ScanNet 8 场景):
| 配置 | ATE (cm) | FPS |
|---|---|---|
| 无回环 + 无全局 BA | ~11.59 | ~30 |
| + 回环 (无全局 BA) | ~8.83 | ~20 |
| + 全局 BA (无回环) | ~7.11 | ~12 |
| + 回环 + 全局 BA (完整) | 7.02 | ~10 |
关键帧选择策略 (F-score):
| 策略 | F-score (%) |
|---|---|
| 只取最新帧 | 49.55 |
| 最新 2 + 历史分层采样 | 85.56 |
SDF 建图损失 (F-score):
| 损失 | F-score (%) |
|---|---|
| 仅 RGB | 34.64 |
| 完整 SDF 损失 | 85.56 |
- 回环 + 全局 BA 对长轨迹一致性贡献最大
- 分层关键帧选择对重建质量影响巨大(49.55% → 85.56%)
- SDF 近表面约束不可或缺
6. Strengths / Limitations / Future Work
Strengths
- 神经隐式 SLAM 中首个做全局回环 + 全局 BA 的系统,长轨迹一致性大幅改善
- 单目 / 双目 / RGB-D 统一框架,versatile
- EuRoC 双目媲美传统 SLAM 精度,Replica RGB-D ATE 0.34 cm
Limitations
- 建图线程持续异步 fine-tune SDF 地图(不等 BA 完成,但一直在训),计算成本高,整体仅 8 FPS
- 大规模室外场景尚未验证;动态物体处理未讨论
- 内存需求高 (RTX 3090 ~15.63 GB)
Future Work
- 更高效的地图更新策略(避免全量重训)
- 室外和动态场景扩展
References
- Zhang, Y., Tosi, F., Mattoccia, S., & Poggi, M. (2023). GO-SLAM: Global Optimization for Consistent 3D Instant Reconstruction. ICCV 2023. arXiv:2309.02436
- 项目页: youmi-zym.github.io/projects/GO-SLAM
- 代码: github.com/youmi-zym/GO-SLAM
- Teed & Deng (2021). DROID-SLAM (NeurIPS):前端跟踪基础
- Instant-NGP 笔记:建图后端
- NICE-SLAM 笔记 / Vox-Fusion 笔记:增量对比基线