Point-SLAM

Sandström 2023 · 论文

一句话总结 — 将神经特征锚定在一个动态生长的点云中,而不是固定的网格上,使表示密度能够适应场景细节,从而实现高效的稠密神经SLAM。

问题

基于网格的神经SLAM(NICE-SLAM、Vox-Fusion)将场景特征锚定在一个分辨率预先固定、空间上均匀的稀疏网格中:空的或缺乏特征的区域会浪费内存,而细节丰富的区域可能分辨率不足,并且必须预先指定场景边界。Point-SLAM则将神经场景表示的特征”锚定在一个以输入依赖、数据驱动的方式迭代生成的点云中”(摘要),使表示能力随输入的信息密度而变化——这篇论文的核心问题是:基于点的神经场景表示能否同时服务于具备实时能力的SLAM中的跟踪和建图?

方法与架构

神经点云P={(pi,fig,fic)i=1,,N}P=\{(p_i, f^{g}_i, f^{c}_i)\mid i=1,\dots,N\}——每个点都携带一个几何特征描述子和一个颜色特征描述子,均位于 R32\mathbb{R}^{32} 中。在每个建图阶段,XX 个均匀采样的像素加上来自梯度最大的前 5Y5Y 个颜色梯度像素中的 YY 个像素,会利用传感器深度进行反投影;如果搜索半径 rr 内没有已有点,就会沿射线在深度 (1ρ)D(1-\rho)DDD(1+ρ)D(1+\rho)D(一个考虑深度噪声的更新带)处添加三个点。点云随探索而增长,但会收敛到一个有界的集合——不需要场景边界。

动态分辨率:搜索半径会在图像纹理丰富的地方收缩,通过对颜色梯度幅值 I(u,v)\nabla I(u,v) 进行一个截断线性映射来实现:

r(u,v)={rlif I(u,v)guβ1I(u,v)+β2if glI(u,v)guruif I(u,v)glr(u,v)=\begin{cases}r_l & \text{if }\nabla I(u,v)\geq g_u\\ \beta_1\nabla I(u,v)+\beta_2 & \text{if } g_l\leq\nabla I(u,v)\leq g_u\\ r_u & \text{if }\nabla I(u,v)\leq g_l\end{cases}

因此精细细节会获得密集的点,而平坦区域会被压缩(实践中 gl=0.01g_l=0.01gu=0.15g_u=0.15)。

渲染:因为点只存在于表面附近,每条射线在 (1ρ)D(1-\rho)D(1+ρ)D(1+\rho)D 之间只需5个采样点即可——相比之下,NICE-SLAM需要雕刻自由空间,需要48个采样点。占据率和颜色被解码为 oi=h(xi,Pg(xi))\mathrm{o}_i=h(x_i,P^{g}(x_i))ci=gξ(xi,Pc(xi))\mathbf{c}_i=g_\xi(x_i,P^{c}(x_i))(采用NICE-SLAM的架构;几何解码器是预训练并冻结的),其中特征通过反平方距离加权,从 2r2r 范围内最近的8个邻居聚合而来:

Pg(xi)=kwkkwkfkgwithwk=1pkxi2,P^{g}(x_i)=\sum_k \frac{w_k}{\sum_k w_k} f^{g}_k \quad\text{with}\quad w_k=\frac{1}{\|p_k-x_i\|^{2}},

颜色特征先经过一个小型相对位置MLP FθF_\theta 处理。射线终止权重 αi=opij=1i1(1opj)\alpha_i=\mathrm{o}_{\mathbf{p}_i}\prod_{j=1}^{i-1}(1-\mathrm{o}_{\mathbf{p}_j}) 给出渲染深度 D^=iαizi\hat{D}=\sum_i\alpha_i z_i、颜色 I^=iαici\hat{I}=\sum_i\alpha_i\mathbf{c}_i,以及深度方差 S^D\hat{S}_D

建图和跟踪共享同一个表示。 建图在特征和颜色解码器权重上最小化 Lmap=mDmD^m1+λmImI^m1\mathcal{L}_{map}=\sum_m |D_m-\hat{D}_m|_1+\lambda_m|I_m-\hat{I}_m|_1(前40%的迭代仅优化深度),关键帧像素的正则化方式与NICE-SLAM相同,建图迭代次数会根据新增点的数量自适应缩放。跟踪从匀速假设初始化,通过方差归一化的损失优化 {R,t}\{\mathbf{R},\mathbf{t}\}

Ltrack=m=1MtDmD^m1S^D+λtImI^m1.\mathcal{L}_{track}=\sum_{m=1}^{M_t}\frac{|D_m-\hat{D}_m|_1}{\sqrt{\hat{S}_D}}+\lambda_t |I_m-\hat{I}_m|_1.

对于曝光变化的场景,一个逐图像的潜变量被输入到共享的曝光MLP中,输出仿射颜色校正。

实验结果

对SLAM的意义

Point-SLAM为神经隐式SLAM带来了自适应密度控制:表示能力会流向场景真正需要的地方,而不是浪费在空白空间上——并且由于不需要雕刻自由空间,射线采样从数十个采样点骤减到5个。它在经典点云建图与神经隐式方法之间架起了桥梁,在NeRF风格SLAM这一代方法中取得了数一数二的重建质量。这种显式、自适应稠密化的特征承载基元集合的思路,预示了后来的3D高斯Splatting SLAM。

相关条目