Photo-SLAM

Huang 2024 · Paper

One-line summary — A “hyper primitives” map couples explicit ORB-feature geometry (for factor-graph localisation) with learned photometric attributes rendered by 3DGS, giving real-time photorealistic SLAM for monocular, stereo and RGB-D cameras — even on a Jetson AGX Orin.

Problem

Neural-rendering SLAM had shown promising joint localisation and photorealistic reconstruction, but “existing methods, fully relying on implicit representations, are so resource-hungry that they cannot run on portable devices, which deviates from the original intention of SLAM.” NICE-SLAM/ESLAM-style systems optimise poses through ray-sampling losses, which is slow, needs depth (or depth predictors) for convergence, and requires a pre-defined bounding volume. Photo-SLAM’s answer is a division of labour: explicit geometric features for localisation, learned photometric features for appearance, with no dependence on dense depth.

Method & architecture

Four parallel threads — localization, geometry mapping, photorealistic mapping, loop closure — jointly maintain a hyper primitives map: point clouds PR3\mathbf{P}\in\mathbb{R}^{3} each carrying an ORB feature OR256\mathbf{O}\in\mathbb{R}^{256}, rotation rSO(3)\mathbf{r}\in SO(3), scaling sR3\mathbf{s}\in\mathbb{R}^{3}, density σ\sigma, and spherical-harmonic coefficients SHR16\mathbf{SH}\in\mathbb{R}^{16}. ORB features serve 2D-2D/2D-3D correspondence; the photometric attributes serve splatting-based rendering.

{R,t}=argminR,tiXρ(piπ(RPi+t)Σg2),\{\mathbf{R},\mathbf{t}\}=\mathop{\arg\min}\limits_{\mathbf{R},\mathbf{t}}\sum_{i\in\mathcal{X}}\rho\left(\lVert\mathbf{p}_{i}-\pi(\mathbf{R}\mathbf{P}_{i}+\mathbf{t})\rVert^{2}_{\Sigma_{g}}\right),

with π\pi the projection, ρ\rho the Huber cost, Σg\Sigma_g the keypoint’s scale covariance. Geometry mapping runs local BA over covisible keyframes and points — tracking never depends on rendering convergence.

L=(1λ)IrIgt1+λ(1SSIM(Ir,Igt)),λ=0.2.\mathcal{L}=(1-\lambda)\left|I_{\text{r}}-I_{\text{gt}}\right|_{1}+\lambda\left(1-\text{SSIM}(I_{\text{r}},I_{\text{gt}})\right), \qquad \lambda=0.2 .

Results

Desktop = RTX 4090; also run unchanged on a laptop (RTX 3080 Ti) and Jetson AGX Orin:

Why it matters for SLAM

Photo-SLAM demonstrated that photorealistic 3DGS SLAM can run in real time on embedded robotic platforms, not just desktop GPUs. Its decoupled template — classical feature-based tracking for robustness, Gaussian splatting purely for appearance — became one of the standard architectures for practical Gaussian SLAM (and the design GS-ICP SLAM benchmarks against as the “decoupled” alternative). It is also the reminder that a mature classical frontend (ORB-SLAM3) plus a modern map back-end can beat end-to-end designs on efficiency without sacrificing accuracy.