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 三阶段:

  1. 只优化 mid 层特征 (fine-level 几何损失 $\mathcal{L}_g^f$)
  2. 联合 mid + fine (同样 loss)
  3. 颜色阶段:颜色网格 + 颜色解码器 + 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