R3LIVE++

Lin 2023 · Paper

One-line summary — R3LIVE++ upgrades R3LIVE from simple RGB coloring to on-the-fly radiance map reconstruction, adding camera photometric calibration and online exposure-time estimation to improve both mapping fidelity and state-estimation accuracy.

Problem

R3LIVE stores raw RGB values on map points, but a pixel’s brightness is not a property of the scene — it is the scene’s radiance filtered through the camera’s non-linear response function, lens vignetting, and whatever exposure time auto-exposure chose for that frame. Ignoring this pipeline makes stored colors inconsistent across viewpoints and time and injects systematic error into photometric residuals. R3LIVE++ models the imaging pipeline explicitly so the map stores radiance, a physical quantity, instead of device-dependent RGB.

Method & architecture

Same two-subsystem ESIKF architecture as R3LIVE — a FAST-LIO-style LIO builds the geometric structure of the map, a direct VIO recovers the radiance of those points — but the visual side is now physically modeled:

Ii(ρ)=fi(τV(ρ)γi),\mathbf{I}_i(\boldsymbol{\rho}) = \mathbf{f}_i\big(\tau\, V(\boldsymbol{\rho})\, \boldsymbol{\gamma}_i\big),

where γi\boldsymbol{\gamma}_i is the scene radiance at the point, V(ρ)[0,1]V(\boldsymbol{\rho}) \in [0,1] the per-pixel vignetting factor, τ\tau the exposure time, and fi()\mathbf{f}_i(\cdot) the channel’s non-linear camera response function (CRF). CRF and vignetting are calibrated offline; inverting gives the radiance from an observed pixel: γi=fi1(Ii(ρ))/(τV(ρ))\boldsymbol{\gamma}_i = \mathbf{f}_i^{-1}(\mathbf{I}_i(\boldsymbol{\rho})) \,/\, (\tau V(\boldsymbol{\rho})). Under constant lighting and Lambertian reflection, radiance is invariant to camera pose — which is exactly what lets it drive ego-motion estimation.

rc(xˇk,Gps,γs)=Φsγs,Φs=ϵˇkΓk(ρˇsk),\mathbf{r}_c(\check{\mathbf{x}}_k, {^G}\mathbf{p}_s, \boldsymbol{\gamma}_s) = \boldsymbol{\Phi}_s - \boldsymbol{\gamma}_s, \qquad \boldsymbol{\Phi}_s = \check{\epsilon}_k\, \boldsymbol{\Gamma}_k(\check{\boldsymbol{\rho}}_{s_k}),

comparing the map point’s stored radiance γs\boldsymbol{\gamma}_s with the observed radiance Φs\boldsymbol{\Phi}_s at its projection. Because Φs\boldsymbol{\Phi}_s depends on ϵ\epsilon, the residual Jacobian has non-zero exposure entries — the same update that tracks the pose also estimates exposure.

Results

Why it matters for SLAM

R3LIVE++ is an early, practical step in the convergence of SLAM and photorealistic reconstruction: it treats appearance not as decoration but as a calibrated physical measurement, anticipating the radiance-field mindset (NeRF, Gaussian splatting) inside a real-time LVI estimator. Its photometric calibration and online exposure estimation were picked up by later direct LVI systems such as FAST-LIVO2. Reach for it when the deliverable is a high-fidelity colored map, not just a trajectory.