NeRF-SLAM

Rosinol 2023 · 论文

一句话总结 — 将稠密单目SLAM前端(DROID-SLAM)与Instant-NGP辐射场后端相结合,用SLAM深度的边缘协方差对NeRF深度损失进行加权——实现了实时、且在几何与光度上都精确的稠密单目重建。

问题

最早的神经隐式SLAM系统(iMAP、NICE-SLAM)需要RGB-D输入,而仅靠光度损失训练的辐射场容易出现”浮空物”(floaters)——由不良初始化或不良局部极小值产生的伪影几何;加入深度监督可以消除这一问题并加快收敛。稠密单目SLAM可以实时提供这样的深度,但其深度图”由于密集,噪声极大,因为即便是无纹理区域也会被赋予深度值”。NeRF-SLAM的洞见是:稠密单目SLAM恰好能提供拟合NeRF所需的正确信息——精确的位姿加上带有相应不确定性的稠密深度图,从而使地图只在估计器本身有把握的程度上信任每个深度值。

方法与架构

两个线程在一块GPU(RTX 2080 Ti,11 GB,PyTorch + CUDA)上并行运行:

跟踪:带协方差的稠密SLAM。 DROID-SLAM使用类似RAFT的ConvGRU计算帧对之间的稠密光流 pij\mathbf{p}_{ij},该网络同时输出逐测量权重 Σpij\mathbf{\Sigma}_{\mathbf{p}_{ij}},然后求解一个稠密光束法平差(bundle adjustment),几何以逐关键帧逆深度图的形式参数化。线性化后得到分块稀疏系统

Hx=b,[CEETP][ΔξΔd]=[vw],H\mathbf{x}=\mathbf{b}, \quad \begin{bmatrix} C & E \\ E^{T} & P \end{bmatrix} \begin{bmatrix} \Delta\boldsymbol{\xi} \\ \Delta\mathbf{d} \end{bmatrix} = \begin{bmatrix} \mathbf{v} \\ \mathbf{w} \end{bmatrix},

其中 CC 是相机块,PP 是(对角的)逆深度块,EE 是相机与深度的耦合项,Δξ\Delta\boldsymbol{\xi}SE(3)SE(3) 位姿更新,Δd\Delta\mathbf{d} 是逐像素逆深度更新。舒尔补(Schur complement)给出约化后的相机矩阵 HTH_T,通过Cholesky分解 HT=LLTH_T = LL^{T} 求解。遵循Rosinol等人提出的概率体素融合方法(WACV 2022),深度与位姿的边缘协方差来自同一次分解:

Σd=P1+PTETΣTEP1,ΣT=(LLT)1.\mathbf{\Sigma}_{\mathbf{d}} = P^{-1} + P^{-T}E^{T}\mathbf{\Sigma}_{\mathbf{T}}EP^{-1}, \qquad \mathbf{\Sigma}_{\mathbf{T}} = (LL^{T})^{-1}.

建图:概率体素NeRF。 一个Instant-NGP哈希网格辐射场在所有关键帧上(无滑动窗口)用建图损失进行训练,同时对位姿 T\mathbf{T} 和网络参数 Θ\Theta 进行最小化:

LM(T,Θ)=Lrgb(T,Θ)+λDLD(T,Θ),λD=1.0,\mathcal{L}_{M}(\mathbf{T},\Theta) = \mathcal{L}_{\text{rgb}}(\mathbf{T},\Theta) + \lambda_{D}\,\mathcal{L}_{\text{D}}(\mathbf{T},\Theta), \qquad \lambda_D = 1.0,

其中深度损失以跟踪协方差进行马氏距离加权:

LD(T,Θ)=DD(T,Θ)ΣD2,\mathcal{L}_{\text{D}}(\mathbf{T},\Theta) = \|D - D^{\star}(\mathbf{T},\Theta)\|^{2}_{\Sigma_{D}},

Lrgb=II(T,Θ)2\mathcal{L}_{\text{rgb}} = \|I - I^{\star}(\mathbf{T},\Theta)\|^{2}。渲染深度是标准体渲染下射线终止距离的期望值:

d=iTi(1exp(σiδi))di,Ti=exp(j<iσjδj),d^{\star} = \sum_{i}\mathcal{T}_{i}\bigl(1-\exp(-\sigma_{i}\delta_{i})\bigr)d_{i}, \qquad \mathcal{T}_{i} = \exp\Bigl(-\sum_{j<i}\sigma_{j}\delta_{j}\Bigr),

其中 σi\sigma_i 是采样点 ii 处的密度,did_i 是其深度,δi=di+1di\delta_i = d_{i+1} - d_i;颜色以同样的方式合成 ci\mathbf{c}_i

线程接口。 跟踪线程维护一个最多8个关键帧的活动窗口,一旦平均光流超过2.5像素就生成一个新关键帧;每产生一个新关键帧,就把位姿、图像、深度图和深度协方差发送给建图线程——这是两个线程之间唯一的通信内容。

实验结果

在Replica数据集(8个场景,以深度L1和PSNR评估)上:

对SLAM的意义

NeRF-SLAM(出自以Kimera闻名的Rosinol,与麻省理工的Leonard、Carlone合作)将这一混合方案凝练成型——用估计理论意义上的SLAM来求解位姿、几何与不确定性,用神经场来构建地图——表明二者是互补而非竞争关系。它是对iMAP”网络即整个系统”这一纯粹主张的对立观点,且可以说是更具影响力的蓝图:如今大多数实用的神经SLAM与高斯SLAM系统都以这种方式将稳健的跟踪器与可微地图配对,而其不确定性加权的深度监督也成为将带噪声的估计几何融合进神经表示中的一种常见技巧。

相关条目