Point-SLAM

Sandström 2023 · Paper

One-line summary — Anchors neural features in a dynamically growing point cloud rather than fixed grids, adapting representation density to scene detail for efficient dense neural SLAM.

Problem

Grid-based neural SLAM (NICE-SLAM, Vox-Fusion) anchors scene features in a sparse grid at resolutions fixed in advance and uniform in space: memory is wasted on empty or featureless regions while detailed areas may be under-resolved, and scene bounds must be specified beforehand. Point-SLAM instead anchors the features of the neural scene representation “in a point cloud that is iteratively generated in an input-dependent, data-driven manner” (abstract), so representation capacity follows the information density of the input — the paper’s driving question: can point-based neural scene representations serve both tracking and mapping in real-time-capable SLAM?

Method & architecture

Neural point cloud: P={(pi,fig,fic)i=1,,N}P=\{(p_i, f^{g}_i, f^{c}_i)\mid i=1,\dots,N\} — each point carries a geometric and a colour feature descriptor in R32\mathbb{R}^{32}. During each mapping phase, XX uniformly sampled pixels plus YY pixels from the top-5Y5Y colour-gradient pixels are unprojected using the sensor depth; if no existing point lies within search radius rr, three points are added along the ray at depths (1ρ)D(1-\rho)D, DD, (1+ρ)D(1+\rho)D (a depth-noise-aware update band). The cloud grows with exploration but converges to a bounded set — no scene bounds needed.

Dynamic resolution: the search radius shrinks where image texture is high, via a clamped linear map of the colour gradient magnitude 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}

so fine detail gets dense points while flat regions are compressed (gl=0.01g_l=0.01, gu=0.15g_u=0.15 in practice).

Rendering: because points exist only near surfaces, just 5 samples per ray between (1ρ)D(1-\rho)D and (1+ρ)D(1+\rho)D suffice — versus 48 for NICE-SLAM, which must carve free space. Occupancy and colour are decoded as oi=h(xi,Pg(xi))\mathrm{o}_i=h(x_i,P^{g}(x_i)) and ci=gξ(xi,Pc(xi))\mathbf{c}_i=g_\xi(x_i,P^{c}(x_i)) (NICE-SLAM’s architecture; the geometric decoder is pre-trained and frozen), where features are aggregated from the 8 nearest neighbours within 2r2r by inverse-squared-distance weighting:

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}},

colour features passing first through a small relative-position MLP FθF_\theta. Ray termination weights αi=opij=1i1(1opj)\alpha_i=\mathrm{o}_{\mathbf{p}_i}\prod_{j=1}^{i-1}(1-\mathrm{o}_{\mathbf{p}_j}) give rendered depth D^=iαizi\hat{D}=\sum_i\alpha_i z_i, colour I^=iαici\hat{I}=\sum_i\alpha_i\mathbf{c}_i, and depth variance S^D\hat{S}_D.

Mapping and tracking share this one representation. Mapping minimises Lmap=mDmD^m1+λmImI^m1\mathcal{L}_{map}=\sum_m |D_m-\hat{D}_m|_1+\lambda_m|I_m-\hat{I}_m|_1 over features and colour-decoder weights (depth-only for the first 40% of iterations), with keyframe pixels regularising as in NICE-SLAM and mapping iterations scaled adaptively by the number of newly added points. Tracking optimises {R,t}\{\mathbf{R},\mathbf{t}\} from a constant-speed initialisation with the variance-normalised loss

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.

A per-image latent fed to a shared exposure MLP outputs an affine colour correction for exposure-varying scenes.

Results

Why it matters for SLAM

Point-SLAM brought adaptive density control to neural implicit SLAM: representation capacity goes where the scene needs it, instead of being wasted on empty space — and with no free-space carving, ray sampling collapses from dozens of samples to five. It bridged classical point-cloud mapping with neural implicit methods and achieved among the best reconstruction quality of the NeRF-style SLAM generation. The idea of an explicit, adaptively densified set of feature-carrying primitives foreshadowed 3D Gaussian Splatting SLAM.