D3VO
Yang 2020 · Paper
One-line summary — Integrated three deep predictions — depth, pose, and photometric uncertainty — into a DSO-style direct VO framework, leveraging learned priors in both front-end tracking and back-end photometric bundle adjustment.
Problem
By 2020 it was clear that a single learned quantity (depth, as in CNN-SLAM and DVSO) could strengthen classical monocular VO, but purely geometric monocular systems still trailed stereo and visual-inertial pipelines in accuracy and robustness. D3VO (“Deep Depth, Deep Pose and Deep Uncertainty for Monocular Visual Odometry”) asks how much of the gap can be closed by exploiting deep networks on three levels at once, tightly integrated into both the tracking front-end and the windowed nonlinear optimisation back-end of a sparse direct odometry framework.
Method & architecture
Self-supervised network — DepthNet predicts depth maps and uncertainty from a single left image; PoseNet predicts the relative pose plus affine brightness parameters from concatenated image pairs (both UNet-like). Training minimises the per-pixel minimum photometric reprojection error over temporal and static-stereo warps , with two additions. First, predicted brightness transformation aligns illumination on the fly, — the learning-time analogue of DSO’s affine brightness model. Second, heteroscedastic aleatoric uncertainty: the loss is attenuated by a predicted variance map,
so pixels violating brightness constancy (non-Lambertian surfaces, moving objects, high-frequency areas) get high , with the usual SSIM + photometric error.
Odometry — a windowed sparse photometric bundle adjustment as in DSO, minimising over keyframes and points with the standard affine-brightness Huber residual . D3VO injects the network on three levels:
- Deep depth: point depths are initialised metrically as , and DVSO’s virtual stereo term keeps optimised depth consistent with the prediction: .
- Deep uncertainty: the empirical gradient-based residual weight of DSO is replaced by the learned map,
down-weighting reflections, moving objects, and depth-discontinuity boundaries.
- Deep pose: PoseNet’s prediction replaces the constant-velocity model to initialise front-end direct image alignment (via a small factor graph over the current and last frames), and enters the back-end as a relative-pose prior between consecutive keyframes,
an analogy to an IMU pre-integration prior — but from a camera alone. is minimised with Gauss-Newton.
Results
Depth: on the KITTI Eigen split the full network reaches RMSE 4.485 vs Monodepth2’s 4.750 under the same stereo+mono self-supervision, close to DVSO (4.442) which needs sparse depth supervision; on EuRoC V2_01 it scores RMSE 0.337 vs Monodepth2’s 0.370, with the brightness transformation providing most of the gain. Odometry (KITTI): on the test split (01, 02, 06, 08, 09, 10), mean is 0.82% vs Stereo DSO 0.89, stereo ORB-SLAM2 0.91, and monocular DSO 65.8; on Seq. 09/10 D3VO gets 0.78/0.62 vs DVSO’s 0.83/0.74 and far below all end-to-end methods. EuRoC MAV: mean RMSE ATE 0.10 m over 5 test sequences — better than VI-DSO (0.11), VINS-Mono (0.18), OKVIS (0.28), ROVIO (0.24), MSCKF (0.25) despite using no IMU, and matching stereo-inertial Basalt (0.08 on the 4-sequence subset). Ablations show deep pose is what rescues the violent-motion sequences V1_03 and V2_03 (0.63→0.13 and 0.52→0.19 with Dd+Dp).
Why it matters for SLAM
D3VO is the culmination of the “deep priors inside a direct VO backend” line that runs CNN-SLAM → DVSO → D3VO: each step incorporated more learned quantities into the classical pipeline. Matching stereo and visual-inertial systems with a single passive camera was the strongest evidence to date that learned priors can substitute for extra sensors, and its learned uncertainty-weighted residuals and network-pose-as-IMU-prior designs became influential patterns in later hybrid systems.