SVO2
Forster 2017 · Paper
One-line summary — Extends semi-direct visual odometry to multi-camera rigs, fisheye/catadioptric lenses, edgelet features, and motion priors, with an empirical convergence analysis of direct alignment and an optional iSAM2 bundle-adjustment backend.
Problem
The original SVO operated with a single perspective camera, but real robotic platforms — especially micro aerial vehicles — carry multiple cameras with wide-angle or fisheye lenses to maximise field of view. Direct methods were also used largely on faith: there was little analysis of when and why photometric alignment converges, and they lacked the optimality of feature-based joint optimisation. SVO2 (“SVO: Semi-Direct Visual Odometry for Monocular and Multi-Camera Systems”, TRO 2017) generalises the semi-direct approach — direct methods “to track and triangulate pixels that are characterized by high image gradients,” feature-based methods “for joint optimization of structure and motion” — to arbitrary camera systems.
Method & architecture
Sparse image alignment, generalised — incremental motion of a body frame (extrinsics per camera) is estimated by minimising the photometric error of patches around corner and edgelet features with known depth, summed over all cameras of the rig:
so every camera that sees structure contributes to one body-pose estimate; multi-camera support only changes the Jacobians. Optional motion priors (constant velocity, or gyroscope rotation ) add penalty terms to the same cost.
Relaxation and refinement — as in SVO, each feature is then re-aligned in 2D against the keyframe where it was first observed (affine-warped patch, inverse compositional Lucas-Kanade). Edgelets suffer the aperture problem, so their correction is restricted to the edge normal : . Finally, bundle adjustment minimises reprojection errors over keyframes and landmarks — edge-feature residuals projected along the normal, since the along-edge component is unobservable — solved in real time with the incremental smoother iSAM2 (or, cheaper, pose-and-points-only optimisation for embedded use).
Mapping — a recursive Bayesian filter per feature over inverse depth with inlier probability , measurements modelled as Gaussian + Uniform mixture and the posterior approximated as — outliers barely shift the mean while reports confidence. Filters are updated from previous and subsequent frames (better for forward motion) and skip measurements where the edge is parallel to the epipolar line.
Wide field of view — projection/unprojection use the polynomial omnidirectional camera model, so fisheye and catadioptric images are used undistorted; epipolar search samples the great circle (epipolar plane ∩ unit sphere) at roughly one-pixel angular resolution to follow the curved epipolar line.
Convergence study — a controlled experiment measures the probability that image-to-model alignment converges as a function of distance to the reference frame: convergence improves with patch size up to 4×4 pixels, dense alignment adds almost nothing over semi-dense (zero-gradient pixels have zero Jacobians), and sparse alignment has a smaller convergence radius than semi-dense — which is why SVO aligns only to the previous frame and relies on feature alignment to the map to kill drift.
Results
On the EuRoC MAV benchmark (11 sequences, averaged over 5 runs, loop closures disabled for competitors), SVO achieves higher accuracy than LSD-SLAM and than real-time ORB-SLAM in most runs, while DSO is consistently very accurate and mostly outperforms SVO in the monocular setting; stereo SVO is generally more accurate than monocular and immune to scale drift, though SVO fails on the Vicon Room sequences with abrupt illumination changes and on-spot rotations. Efficiency is the headline: mean 2.53 ms per frame (SVO Mono) on a laptop i7 with 55% CPU at 20 Hz, versus 29.81 ms/187% for ORB-SLAM and 23.23 ms/236% for LSD-SLAM — “up to ten times faster… and requires only a fourth of the CPU usage.” On an NVIDIA Jetson TX1, sparse image alignment takes 2.54 ms and feature alignment 1.40 ms. Edgelets add little accuracy in corner-rich EuRoC scenes but improve robustness where corners are absent; motion priors cut alignment iterations.
Why it matters for SLAM
SVO2 turned the semi-direct paradigm into a system deployable on real robotic platforms — especially MAVs carrying several wide-angle cameras — and was widely used on commercial and research drones. Its convergence analysis gave direct methods an empirical grounding (and justified coarse-to-fine, patch-size, and frame-rate design choices), and its Beta×Gaussian inverse-depth filter became a common reference for probabilistic per-pixel depth estimation. It remains a go-to design when very fast, lightweight odometry is needed on embedded hardware.
Related
- SVO — the original semi-direct monocular VO this work extends
- DSO — fully direct sparse odometry, a contemporary alternative
- PTAM — origin of the tracking/mapping split that SVO builds on
- ROVIO — filter-based VIO also aimed at MAV platforms
- Incremental smoothing — the iSAM2 machinery behind SVO2’s BA backend
- Camera models beyond pinhole — the fisheye/omnidirectional models SVO2 supports