Visual-SLAM why filter?

Strasdat 2012 · Paper

One-line summary — Rigorously showed that keyframe-based bundle adjustment gives more accuracy per unit of computing time than filtering, formalizing visual SLAM’s paradigm shift from filtering to optimization.

Problem

By 2012 the field had two working recipes for real-time monocular SLAM: MonoSLAM (2007) jointly estimated camera pose and landmarks with an EKF, while PTAM (2007) introduced keyframe-based bundle adjustment. Both ran in real time, but the community lacked a principled comparison. The two paradigms make opposite structural choices on the SLAM graph: filtering marginalises out all past poses, leaving a dense joint distribution over the current pose and all landmarks, while keyframe BA simply discards non-keyframe poses and their measurements, keeping the problem sparse. Strasdat, Montiel, and Davison asked: for the same computational budget, which choice buys more accuracy?

Method & architecture

Two carefully matched pipelines, both implemented and run in Monte Carlo simulation.

BA-SLAM: at each keyframe, initialise replacement points where features left the view, estimate the pose by motion-only BA, refine points by structure-only BA, then jointly optimise everything (g2o, Levenberg–Marquardt with Schur complement):

χ2(y)=zi,jZ0:i(zi,jz^(Ti,xj))2,χ2(Ti)=zjZi(zjz^(Ti,xj))2,\chi^2(\mathbf{y}) = \sum_{\mathbf{z}_{i,j} \in Z_{0:i}} \big(\mathbf{z}_{i,j} - \hat{\mathbf{z}}(\mathbf{T}_i, \mathbf{x}_j)\big)^2, \qquad \chi^2(\mathbf{T}_i) = \sum_{\mathbf{z}_j \in Z_i} \big(\mathbf{z}_j - \hat{\mathbf{z}}(\mathbf{T}_i, \mathbf{x}_j)\big)^2,

over y=(T1,...,Ti,X)\mathbf{y} = (\mathbf{T}_1, ..., \mathbf{T}_i, \mathcal{X})^\top with the first frame fixed as gauge.

Filter-SLAM: a state-of-the-art Gauss–Newton information filter, deliberately built to be the best case for filtering: points use anchored inverse-depth coordinates ψj:=inv_d(Aa(j)xj)\boldsymbol{\psi}_j := \mathrm{inv\_d}(A_{a(j)}\, \mathbf{x}_j) with inv_d(a)=1a3(a1,a2,1)\mathrm{inv\_d}(\mathbf{a}) = \frac{1}{a_3}(a_1, a_2, 1)^\top, and each update minimises measurement residuals against the Gaussian map prior:

χ2(Φi,Ti)=(ΦiΦi1)ΛΦi1(ΦiΦi1)+zjZidjΛzdj,\chi^2(\Phi_i, \mathbf{T}_i) = (\Phi_i \boxminus \Phi_{i-1})^\top \Lambda_{\Phi_{i-1}} (\Phi_i \boxminus \Phi_{i-1}) + \sum_{\mathbf{z}_j \in Z_i} \mathbf{d}_j^\top \Lambda_z \mathbf{d}_j,

followed by the information-matrix update Λi=Λi1+Ddiag(Σz1,)D\Lambda_i = \Lambda_{i-1} + D^\top \mathrm{diag}(\Sigma_z^{-1}, \ldots)\, D, where DD is the stacked reprojection Jacobian. The defining filter property: the linearisation point of absorbed measurements is fixed forever, whereas BA relinearises everything each iteration.

Metrics. Accuracy is the end-pose translation error, measured as RMSE and as entropy reduction in bits relative to the weakest configuration,

E=12log2det(ΣMmin,15)det(ΣM,N),E = \frac{1}{2} \log_2 \frac{\det(\Sigma_{\langle M_{\min},\,15 \rangle})}{\det(\Sigma_{\langle M,N \rangle})},

for varying numbers of intermediate frames MM and points NN; efficiency is entropy reduction per second of compute (E/cE/c, bits per second). Asymptotics: BA costs O(NM2+M3)O(NM^2 + M^3) (Schur complement + reduced camera system), filtering costs O(MN3)O(MN^3) — linear vs cubic in the number of points. Four camera motions are tested (sideways with full scene overlap; sideways with partial overlap; sideways + 30° rotation; sharp forward turn), each monocular and stereo, with σz=12\sigma_z = \frac{1}{2} pixel measurement noise.

Results

Why it matters for SLAM

This paper provided the theoretical justification for the shift that PTAM demonstrated empirically, cementing keyframe-based bundle adjustment as the standard visual SLAM backend. ORB-SLAM, LSD-SLAM, DSO, and essentially all subsequent systems are built on its conclusion, and its accuracy-versus-budget methodology became a standard way to argue SLAM design choices. Note the nuance that matters today: the argument is about vision-only SLAM with many landmarks — tightly-coupled VIO systems still use filters (e.g. MSCKF) where the trade-offs differ, and the authors themselves scoped the claim to local SLAM with loop closure left to appearance-based methods.