K2E-B-G5-1 · Paper Note

iMAP — Implicit Mapping and Positioning

Created 2024-03-31Updated 2026-06-11slam / papers / g-geometry-rendering / g5-nerf-slam

  • Description:iMAP 论文笔记 — 首个用单 MLP 实时 RGB-D 神经 SLAM;联合优化网络 + 位姿、损失引导像素采样、信息增益关键帧选择
  • My Notion Note ID:K2E-B-G5-1
  • Created:2024-03-31
  • Updated:2026-06-11
  • License转载欢迎:转载请注明作者 Yu Zhang 并附原文出处(yuzhang.io

Table of Contents


1. Summary

Title: iMAP: Implicit Mapping and Positioning in Real-Time Authors: E. Sucar, S. Liu, J. Ortiz, A. J. Davison Paper: arXiv:2103.12352 (ICCV 2021) Github: 无官方代码

iMAP (Imperial College London, Davison 组, 2021):首个以单 MLP 作为唯一场景表征的实时 RGB-D 神经 SLAM。传统稠密 SLAM 用 TSDF(截断有符号距离场,逐体素存与最近表面的有符号距离的传统稠密表示)/占用栅格存场景,内存随体素分辨率立方增长 (256³ TSDF ≈ 67 MB);iMAP 用一个 4 层 MLP 表示整个场景的体密度和颜色,room-scale 仅需 1 MB,比 TSDF 省 60×

核心思路:把 NeRF 式的隐式表示迁移到在线 SLAM — 网络在帧流中边接收 RGB-D 数据边训练,无预训练;位姿和网络权重联合优化。为实现实时性,引入两项关键机制:损失引导的稀疏像素采样(把 200 像素的预算集中在重建误差大的区域)和信息增益关键帧选择(新帧有显著未观测区域才加入关键帧集)。系统双进程并行:跟踪进程 ~10 Hz,建图进程 ~2 Hz。

Replica 数据集上 completion ratio (79.06%) 比 TSDF fusion (75.09%) 高 4%,在未观测区域补全上有明显优势。ATE RMSE 在 TUM RGB-D 上 2-6 cm,落后于传统方法,但开创了 NeRF-SLAM 方向。

iMAP 双进程系统:跟踪进程 (上) 固定网络仅优化位姿;建图进程 (下) 联合优化关键帧位姿和网络权重

2. Key Contributions

  • 首个 MLP-only 实时神经 SLAM:无体素、无点云,单网络既建图又用于跟踪;开创 NeRF-SLAM 方向
  • 极省内存:room-scale 1 MB vs. TSDF 256³ 67 MB,省 60×;连续隐式表示可平滑补全未观测区
  • 损失引导稀疏采样 (§3.4):图像分 8×8=64 格,200 像素按格内损失分配,把计算集中在高信息量区域
  • 信息增益关键帧选择 (§3.5):归一化深度误差大的区域过多时才加关键帧;room-scale 只需 10-14 帧
  • 联合优化:跟踪/建图分离双进程,分别优化位姿 (固定网络) 和网络+位姿 (关键帧集)

3. Method

3.1 MLP 场景表征

单个 4 层 MLP,输入 3D 点 p\mathbf{p} 经高斯位置嵌入后,输出颜色 c\mathbf{c} 和体密度 ρ\rho

Fθ(p)=(c,  ρ)(1)F_\theta(\mathbf{p}) = (\mathbf{c},\;\rho) \tag{1}

位置嵌入:高斯 Fourier 特征 Φ(p)=sin(Bp)\Phi(\mathbf{p}) = \sin(\mathbf{B}\mathbf{p})BR93×3\mathbf{B}\in\mathbb{R}^{93\times3}N(0,σ2)\mathcal{N}(0,\sigma^2) 采样,σ=25\sigma=25,嵌入维度 m=93m=93。高斯嵌入帮助 MLP 学习高频细节(坐标归一化到 ×1/10\times1/10)。

网络结构:4 hidden layers × 256 units,输出两个头 (颜色 3 维 + 密度 1 维),参数量 ~1 MB。与原始 NeRF 不同:无视角方向输入(室内 RGB-D 场景简化),且在线训练无预训练

3.2 体渲染

沿光线均匀采样 N=44N=44 点(粗采 32 + 细采 12),体密度转占用:

oi=1exp(ρiδi)(2)o_i = 1 - \exp(-\rho_i\delta_i) \tag{2}

δi=di+1di\delta_i = d_{i+1}-d_i 为采样间距。射线终止权重(类 NeRF 的 α\alpha-合成):

wi=oij=1i1(1oj)(3)w_i = o_i \prod_{j=1}^{i-1}(1-o_j) \tag{3}

加权得渲染深度和颜色:

D^=iwidi,I^=iwici(4, 5)\hat{D} = \sum_i w_i d_i, \quad \hat{I} = \sum_i w_i \mathbf{c}_i \tag{4, 5}

深度方差用于加权几何损失,降低不确定区域 (如遮挡边缘) 的影响:

D^var=iwi(D^di)2(6)\hat{D}_{var} = \sum_i w_i\bigl(\hat{D} - d_i\bigr)^2 \tag{6}

D^var\hat{D}_{var} 大的像素 → 深度估计不确定 → 在损失中降权。

3.3 联合优化损失

光度 + 几何 L1 损失联合优化网络参数 θ\theta 和关键帧位姿 {Ti}\{T_i\}

光度损失(渲染颜色 vs. RGB 观测,L1):

Lp=1Mi(u,v)siIi[u,v]I^i[u,v](7)\mathcal{L}_p = \frac{1}{M}\sum_i\sum_{(u,v)\in s_i}\bigl|I_i[u,v]-\hat{I}_i[u,v]\bigr| \tag{7}

几何损失(渲染深度 vs. 深度观测,按深度方差归一化):

Lg=1Mi(u,v)siDi[u,v]D^i[u,v]D^var[u,v](8)\mathcal{L}_g = \frac{1}{M}\sum_i\sum_{(u,v)\in s_i}\frac{\bigl|D_i[u,v]-\hat{D}_i[u,v]\bigr|}{\sqrt{\hat{D}_{var}[u,v]}} \tag{8}

联合目标

minθ,{Ti}  (Lg+λpLp),λp=5(9)\min_{\theta,\,\{T_i\}}\;\bigl(\mathcal{L}_g + \lambda_p\mathcal{L}_p\bigr), \quad \lambda_p = 5 \tag{9}

MM 为采样像素总数(跨关键帧),优化器 Adam。

3.4 损失引导像素采样

全图所有像素逐一渲染开销过大。iMAP 把图像分为 8×8=648\times8=64 格,每格按平均 loss 分配采样预算:

Pk=Lˉkk=164Lˉk(10, 11)P_k = \frac{\bar{\mathcal{L}}_k}{\sum_{k'=1}^{64}\bar{\mathcal{L}}_{k'}} \tag{10, 11}

Lˉk\bar{\mathcal{L}}_k 为第 kk 格内的平均损失,PkP_k 为该格的采样概率。每次迭代共采 200 像素,按概率分配到各格 → 计算集中在重建差的区域。

iMAP 损失引导采样:左侧为图像分格示意,右侧为对应 loss 分布热图,高 loss 区域集中更多采样点

3.5 关键帧选择

新帧检测:计算归一化深度误差超过阈值 tD=0.1t_D=0.1 的像素比例 PP;若 P<tP=0.65P < t_P=0.65(即有 35%+ 像素深度误差大)→ 加入关键帧集。

维护大小为 W=5W=5 的滑动关键帧窗口(包含最新帧、当前帧和 3 个高 loss 历史帧),避免内存无限增长。room-scale Replica 平均每场景 ~13 个关键帧。

3.6 双进程实时系统

类 PTAM(Parallel Tracking and Mapping,最早将跟踪与建图解耦为双线程的经典 SLAM,Klein & Murray 2007)/ORB-SLAM 的跟踪-建图分离:

进程 频率 固定 优化
跟踪 ~10 Hz 网络 θ\theta 当前帧位姿 TT
建图 ~2 Hz 网络 θ\theta + 关键帧位姿 {Ti}\{T_i\}

两进程共享网络权重,通过锁同步;建图进程联合优化全局一致性,跟踪进程利用最新网络状态估计位姿。

4. Experiments & Results

数据集

数据集 场景 评估内容
Replica 8 (room-02, office-04) 重建质量 (accuracy, completion, completion ratio)
TUM RGB-D fr1/desk, fr2/xyz, fr3/office 跟踪精度 (ATE RMSE)
Azure Kinect (real) 多种室内/室外 定性验证

Replica 重建质量

Metric iMAP TSDF Fusion
Accuracy (cm) ↓ 4.43 3.45
Completion (cm) ↓ 5.56 6.63
Completion Ratio (%) ↑ 79.06 75.09
Memory (MB) ↓ 1.04 67.10

iMAP 补全率高 4%(MLP 可外推未观测区),精度略低(过平滑)。

TUM RGB-D 跟踪精度 (ATE RMSE, cm)

对比方法:BAD-SLAM(基于 surfel 的稠密 RGB-D SLAM,Schöps 2019)、Kintinuous(TSDF 流式融合稠密 SLAM,Whelan 2012)、ORB-SLAM2(稀疏 ORB 特征点 SLAM):

Sequence iMAP BAD-SLAM Kintinuous ORB-SLAM2
fr1/desk 4.9 1.7 3.7 1.6
fr2/xyz 2.0 1.1 2.9 0.4
fr3/office 5.8 1.73 3.0 1.0

iMAP 跟踪精度落后传统方法,但作为首个 MLP-only 神经 SLAM 仍有参考意义。

iMAP vs. TSDF Fusion 的 Replica 重建对比:iMAP 在未观测区域 (遮挡背后等) 能平滑填补,TSDF 留空洞

5. Ablation & Discussion

论文在 Replica office-2 上消融网络宽度和关键帧窗口大小:

网络宽度(建图质量 vs. 速度):

宽度 跟踪时间 (ms) 建图时间 (ms) Comp. Ratio (%)
128 80 357 75.79
256 101 448 77.22
512 173 777 76.91

宽度 256 为最优平衡点,512 已出现性能饱和。

关键帧窗口大小:

W 跟踪 (ms) 建图 (ms) Comp. Ratio (%)
3 84 373 75.82
5 144 647 77.22
10 144 678 77.35

W=5W=5W=10W=10 质量相当,选 5 以控制计算量。

论文未做损失引导采样的定量消融,仅定性说明优于随机采样。

6. Strengths / Limitations / Future Work

Strengths

  • 首个 MLP-only 实时神经 SLAM,内存仅 1 MB (vs. TSDF 67 MB)
  • 隐式连续表示天然支持未观测区补全,Replica 补全率比 TSDF 高 4%
  • 开创 NeRF-SLAM 方向,后续 NICE-SLAMiMAP 改进系列 均以此为基础

Limitations (后续工作解决)

  • 灾难性遗忘:单 MLP 容量有限,场景变大时旧区域信息被覆盖 → NICE-SLAM 用局部特征网格解决
  • 过平滑:MLP 容量不足难以表示高频细节,精度 (4.43 cm) 差于 TSDF (3.45 cm)
  • 全局更新低效:每次建图更新整个网络;大场景代价线性增长
  • 跟踪精度落后传统方法 (ORB-SLAM2 fr2/xyz 0.4 cm vs. iMAP 2.0 cm)
  • 仅 RGB-D,无单目/立体支持;无回环闭合

Future Work

  • 局部化表示 → 解决遗忘和扩展性(见 NICE-SLAM
  • 更紧凑/高效的采样策略;回环检测集成

References

  • Sucar, E., Liu, S., Ortiz, J., & Davison, A. J. (2021). iMAP: Implicit Mapping and Positioning in Real-Time. ICCV. arXiv:2103.12352
  • 项目页: edgarsucar.github.io/iMAP
  • NeRF 笔记:体渲染基础
  • NICE-SLAM 笔记:iMAP 直接升级版,解决遗忘和过平滑问题
  • Davison (2018). FutureMapping — 隐式 SLAM 思想来源
  • Mildenhall et al. (2020). NeRF (ECCV):体渲染表示基础