NICE-SLAM
- Description:NICE-SLAM 论文笔记 (读 arXiv 全文后所写) — 用分层特征网格 + 预训练解码器的神经隐式 SLAM,解决 iMAP 的过平滑 + 大场景遗忘问题
- Paper:Zhu, Z., Peng, S., Larsson, V., Xu, W., Bao, H., Cui, Z., Oswald, M. R., & Pollefeys, M. (2022). NICE-SLAM: Neural Implicit Scalable Encoding for SLAM. CVPR. arXiv:2112.12130
- K2E-B ID:[K2E-B-G5-2]
- Max3 PDF:
[K2E] SLAM/[K2E-B-G] Geometry & Rendering/[K2E-B-G5] NeRF SLAM/[K2E-B-G5-2][2021] NICE-SLAM Neural Implicit Scalable Encoding for SLAM.pdf - Notion ID:(待创建)
- Created:2024-03-31
- Updated:2026-06-02
- License:转载欢迎 — 请署名 Yu Zhang 并链回 yuzhang.io 原文
Table of Contents
1. NICE-SLAM 概述
NICE-SLAM (Zhu et al. 2022, CVPR, ETH Pollefeys 组) — iMAP 的升级。用分层特征网格 (hierarchical feature grid) + 预训练 MLP 解码器替代 iMAP 的单一全局 MLP,解决其两大问题:大场景遗忘 + 过平滑。
核心思想:把场景表征局部化 — 用空间特征网格存局部信息,只有相机视锥内的网格被更新 → 可扩展、不遗忘、保细节。
iMAP 见 iMAP 那篇 (G5-1);NeRF 表示见 NeRF。本笔记读 arXiv 全文整理。
2. 分层特征网格
4 个特征网格,各有用途。3 个几何网格各配一个固定的预训练 MLP 解码器 ($f^0/f^1/f^2$ 沿用 ConvONet 式占用网络解码器,在合成场景数据上预训练后冻结);颜色网格的解码器 $g_\omega$ 则随场景联合优化 (见下文颜色编码行):
几何编码 (3 层):
| 层 | 体素分辨率 | 作用 |
|---|---|---|
| Coarse | 2 m | 高层结构,预测未观测区域 |
| Mid | 32 cm | 主要几何重建 |
| Fine | 16 cm | 残差细节 (在 mid 基础上加偏移) |
颜色编码:单独一个特征网格 + 联合优化的解码器 (颜色解码器和几何解码器不同,颜色边训边学)。
3. 占用解码
任意 3D 点的占用 = 网格特征三线性插值 + MLP 解码:
$$ o^1_\mathbf{p} = f^1(\mathbf{p}, \phi^1(\mathbf{p})) \quad \text{(mid 层占用)} $$ $$ \Delta o_\mathbf{p} = f^2(\mathbf{p}, \phi^1(\mathbf{p}), \phi^2(\mathbf{p})) \quad \text{(fine 层残差)} $$ $$ o_\mathbf{p} = o^1_\mathbf{p} + \Delta o_\mathbf{p} $$
($\phi^i$ 是第 $i$ 层网格特征的三线性插值,$f^i$ 是预训练解码器)。fine 层输出占用偏移而非绝对值 — 在 mid 基础上加细节。
4. 渲染
沿光线采样 (类似 NeRF / iMAP,见 NeRF §3):
- 分层采样 32 点 (覆盖深度范围)
- 深度附近采样 16 点 ($N_\text{surface}=16$,观测深度附近均匀采样,非经典 PDF 重要性重采样)
- 占用累积 → 光线终止权重 → 加权和得深度/颜色
5. 建图优化
交错分阶段 优化 (coarse-to-fine)。注意:coarse 网格在独立进程单独优化,不属于下面 mid/fine 三阶段:
- 只优化 mid 层特征 (fine-level 几何损失 $\mathcal{L}_g^f$)
- 联合 mid + fine (同样 loss)
- 颜色阶段:颜色网格 + 颜色解码器 + mid/fine 几何网格 (coarse 独立优化,不参与);关键帧数 >4 时同步 Bundle Adjustment 联合优化 $K$ 个关键帧位姿
损失 = 几何 (深度) loss + 光度 (颜色) loss。
6. 跟踪
只优化当前帧位姿 (网格固定),对方差加权的几何 loss + 光度 loss 优化 — 降低不确定边缘区域的影响。
7. 为什么网格优于单 MLP
用局部网格特征代替单一全局 MLP,避免 iMAP 的:
- 灾难性遗忘 — 场景变大时,单 MLP 会忘旧区域;网格是局部的,更新视锥内的格子不影响别处
- 过平滑 — 单 MLP 容量有限糊掉细节;多分辨率网格存局部高频
- 全局更新低效 — iMAP 每帧更新整个网络;NICE-SLAM 只更新视锥内局部网格
同时 coarse 层的预训练几何先验让它能预测/补全未观测区域,保留 iMAP 的补全能力。
5 个数据集上 mapping + tracking 质量有竞争力,且可扩展到大场景。
References
- Zhu, Z., et al. (2022). NICE-SLAM: Neural Implicit Scalable Encoding for SLAM. CVPR. arXiv:2112.12130 — 论文 (本笔记读 arXiv 全文整理)
- 项目页: pengsongyou.github.io/nice-slam
- 前作 iMAP 见 iMAP (G5-1);升级版 NICER-SLAM (RGB-only) 见 G5 后续;NeRF 渲染见 NeRF