iMAP
Sucar 2021 · 论文
一句话总结 —— 首个类NeRF SLAM系统:单个MLP无需先验数据、实时在线训练,作为实时RGB-D跟踪与建图唯一的场景表示。
问题
稠密RGB-D SLAM一直依赖显式的地图结构——TSDF体素网格(KinectFusion)、面元(surfel,ElasticFusion)——这些结构需要精细的内存管理,分辨率需事先固定,并且相机从未看到的地方会留下空洞。NeRF刚刚证明了MLP可以连续且紧凑地表示场景,但只能通过对已知姿态图像进行数小时的离线训练来实现。iMAP提出的问题是:MLP能否成为一个实时SLAM系统的地图——“无需先验数据、在实时运行中训练”,处理来自手持RGB-D相机的数据流,同时还要用于跟踪。
方法与架构
地图网络。 单个MLP,4个隐藏层,宽度为256,将一个3D点映射为颜色与体密度,——不含观察方向(镜面反射未被建模)。输入经过一个可优化的高斯位置编码 (为 矩阵,,嵌入维度93),该编码也被拼接进第二层。
可微渲染。 对于像素 、姿态 ,沿反投影射线取 个采样点 (32个粗采样+12个细采样)。密度转换为占据概率 ,其中 ,光线终止权重为 ,深度、颜色与深度方差按下式渲染:
联合优化(建图)。 网络权重 与关键帧姿态 通过ADAM在稀疏像素采样 上联合优化,最小化 (),其中光度损失为L1误差,几何损失经方差归一化,以降低物体边界等不确定区域的权重:
并行跟踪。 依照PTAM的拆分方式,一个单独的进程仅针对锁定网络优化实时相机姿态,使用相同的损失函数,频率约10 Hz;而联合建图以约2 Hz运行;两者均为同一桌面GPU上的普通PyTorch多进程。
用于防止遗忘的关键帧选择。 当归一化深度误差小于 (相对于锁定的地图快照)的像素比例 低于 时,一帧被选为关键帧——即它看到了明显新的区域。关键帧集合起到重放记忆库的作用,使单个MLP不会灾难性地遗忘场景中先前观测到的部分。
主动采样。 每次迭代每幅图像仅渲染200个像素。每幅图像被划分为 的网格;每个网格的平均损失被归一化为分布 ,新的采样按此比例分配,从而将计算集中在地图不确定的地方。同样按损失比例的方案也用于在关键帧之间分配采样,每次建图迭代优化一个大小为 帧的有界窗口(3个按损失采样的关键帧+最新关键帧+实时帧)。
实验结果
- Replica(8个房间尺度场景,2000帧轨迹):平均精度(Accuracy)4.43厘米,完整度(Completion)5.56厘米,完整率(Completion Ratio,<5厘米)79.06%,平均仅使用约13个关键帧——相较之下,TSDF融合(使用iMAP的姿态)为3.45厘米/6.63厘米;iMAP的平均完整率高出约4%(在office-3上高出11%),这得益于对未观测区域的合理填补。
- 内存:整间房间用一个约1 MB参数的MLP建图,而TSDF网格在分辨率128/256/512下分别为8.38 / 67.10 / 536.87 MB。
- TUM RGB-D(ATE RMSE):在fr1-desk / fr2-xyz / fr3-office上为4.9 / 2.0 / 5.8厘米——未能超过BAD-SLAM(1.7/1.1/1.73)或ORB-SLAM2(1.6/0.4/1.0),但在2-6厘米范围内仍具竞争力,并且与它们不同的是,iMAP能填补未观测区域的空洞。
- 耗时:6次跟踪迭代耗时101毫秒,10次建图迭代耗时448毫秒(在同一GPU上并发运行)——即10 Hz跟踪、2 Hz地图更新;主动采样比随机采样收敛更快、完整度更高。
- 论文还展示了在手持Azure Kinect录制视频上的实时效果,包括深度传感器失效的黑色、反光和透明表面——光度损失加网络插值能够恢复这些区域。
对SLAM的意义
iMAP开启了神经隐式SLAM这整条研究路线。这里确立的”跟踪/建图对可微地图的拆分”——姿态优化针对冻结的地图,地图优化针对重放的关键帧——至今仍是基于NeRF和3DGS的SLAM所沿用的模板。它还重新定义了”地图”是什么:不是一个供你插入点的数据结构,而是一个你去拟合的函数,天然具备连续性、紧凑性和空洞填补能力。其单MLP容量的局限性(遗忘、在较大场景中过度平滑)直接推动了NICE-SLAM的分层网格、Co-SLAM的哈希网格,以及后来社区转向显式3D高斯地图。