DSO

Engel 2016 · Paper

One-line summary — Direct Sparse Odometry performs windowed photometric bundle adjustment over a sparse, evenly distributed set of high-gradient pixels, combining a fully direct probabilistic model with consistent joint optimisation of all model parameters.

Problem

Before DSO, the direct and sparse worlds each kept only half the prize. LSD-SLAM tracked photometrically but refined geometry with filtering and a pose graph, never jointly optimising structure and motion; feature-based methods (ORB-SLAM) did full bundle adjustment but reduced images to keypoints. DSO combines “a fully direct probabilistic model (minimizing a photometric error) with consistent, joint optimization of all model parameters” — poses, inverse depths, intrinsics, and per-frame brightness — in real time, made possible “by omitting the smoothness prior used in other direct methods and instead sampling pixels evenly throughout the images.”

Method & architecture

Epj:=pNpwp(Ij[p]bj)tjeajtieai(Ii[p]bi)γ,E_{\mathbf{p}j} := \sum_{\mathbf{p}\in\mathcal{N}_{\mathbf{p}}} w_{\mathbf{p}} \left\| (I_j[\mathbf{p}'] - b_j) - \frac{t_j e^{a_j}}{t_i e^{a_i}} (I_i[\mathbf{p}] - b_i) \right\|_{\gamma},

where p=Πc(RΠc1(p,dp)+t)\mathbf{p}' = \Pi_{\mathbf{c}}\big(\mathbf{R}\, \Pi_{\mathbf{c}}^{-1}(\mathbf{p}, d_{\mathbf{p}}) + \mathbf{t}\big) is the reprojection with inverse depth dpd_{\mathbf{p}} and relative pose TjTi1\mathbf{T}_j \mathbf{T}_i^{-1}; a,ba, b are affine brightness parameters (logarithmic parametrisation prevents drift), γ\|\cdot\|_\gamma the Huber norm, and wp=c2/(c2+Ii(p)22)w_{\mathbf{p}} = c^2 / (c^2 + \|\nabla I_i(\mathbf{p})\|_2^2) down-weights high-gradient pixels (implicit geometric noise). The total energy is

Ephoto:=iFpPijobs(p)Epj,E_{\text{photo}} := \sum_{i\in\mathcal{F}} \sum_{\mathbf{p}\in\mathcal{P}_i} \sum_{j\in\mathrm{obs}(\mathbf{p})} E_{\mathbf{p}j},

optimised by Gauss–Newton over a sliding window; each point has just one unknown (inverse depth in its host frame), so after the Schur complement the system solves like classical sparse BA.

Results

Evaluated on three datasets, every sequence run forwards and backwards (500 runs on TUM monoVO — 50 photometrically calibrated sequences, 105 min; 220 runs on EuRoC MAV — 11 sequences, 19 min; 80 runs on ICL-NUIM — 8 sequences, 4.5 min), reported as cumulative error plots capturing both accuracy and robustness:

Why it matters for SLAM

DSO is the definitive direct sparse method, closing the era opened by DTAM and LSD-SLAM and standing alongside ORB-SLAM as one of the two canonical classical baselines (direct vs feature-based). Its formulation spawned an entire family — LDSO, Stereo DSO, VI-DSO, DVSO, D3VO, DM-VIO — and its photometric-calibration insights, fixed-tangent marginalisation, and sliding-window design are still standard practice in odometry systems today.