DSO: Direct Sparse Odometry
DSO is a novel direct and sparse formulation for Visual Odometry. It combines a fully direct probabilistic model (minimizing a photometric error) with consistent, joint optimization of all model parameters, including geometry - represented as inverse depth in a reference frame - and camera motion. This is achieved in real time by omitting the smoothness prior used in other direct methods and instead sampling pixels evenly throughout the images. DSO does not depend on keypoint detectors or descriptors, thus it can naturally sample pixels from across all image regions that have intensity gradient, including edges or smooth intensity variations on mostly white walls. The proposed model integrates a full photometric calibration, accounting for exposure time, lens vignetting, and non-linear response functions. We thoroughly evaluate our method on three different datasets comprising several hours of video. The experiments show that the presented approach significantly outperforms state-of-the-art direct and indirect methods in a variety of real-world settings, both in terms of tracking accuracy and robustness.
Please see here for the TUM monoVO dataset, used for large parts of the evaluation and the above video. It contains over 2h of video and respective evaluation / benchmarking metrics / tools.
Supplementary material with all ORB-SLAM and DSO results presented in the paper can be downloaded from here: zip (2.7GB). We further provide ready-to-use Matlab scripts to reproduce all plots in the paper from the above archive, which can be downloaded here: zip (30MB)
14.10.2016.: We have updated the supplementary material with the fixed real-time results for ORB-SLAM, corresponding to the revised version of the papers.
The full source code is available on Github under GPLv3: https://github.com/JakobEngel/dso This main project is meant to run on datasets in the TUM monoVO dataset format (i.e., not with a live camera).
We also provide a minimalistic example (200 lines of c++ code) how to integrate DSO to work with a live camera, using ROS for video capture: https://github.com/JakobEngel/dso_ros. Feel free to your use-case / camera capture environment / ROS version.
Stereo DSO: Large-Scale Direct Sparse Visual Odometry with Stereo Cameras
Stereo DSO is a novel method for highly accurate real-time visual odometry estimation of large-scale environments from stereo cameras. It jointly optimizes for all the model parameters within the active window, including the intrinsic/extrinsic camera parameters of all keyframes and the depth values of all selected pixels. In particular, it integrates constraints from static stereo into the bundle adjustment pipeline of temporal multi-view stereo. Real-time optimization is realized by sampling pixels uniformly from image regions with sufficient intensity gradient. Fixed-baseline stereo resolves scale drift. It also reduces the sensitivities to large optical flow and to rolling shutter effect which are known shortcomings of direct image alignment methods. Quantitative evaluation demonstrates that the proposed Stereo DSO outperforms existing state-of-the-art visual odometry methods both in terms of tracking accuracy and robustness. Moreover, our method delivers a more precise metric 3D reconstruction than previous dense/semi-dense direct approaches while providing a higher reconstruction density than feature-based methods.
For this work we use the KITTI Visual Odometry Benchmark and the Frankfurt sequence of the Cityscapes Dataset for evaluations. The full evaluation results can be found in the supplementary material of our ICCV 2017 paper. Below we show some representative results.
KITTI Visual Odometry Benchmark
The following 4 figures show the average translational and rotational errors with respect to driving intervals (first row) and driving speed (second row) on the KITTI VO testing set. We compare our method with the current state-of-the-art direct and feature-based methods, namely the Stereo LSD-SLAM and ORB-SLAM2. Note that both of the compared methods are SLAM systems with loop closure based on pose graph optimization (ORB-SLAM2 also with global bundle adjustment), while ours is pure visual odometry.
As qualitative results we run our method on all the sequences from the training set and compare the estimated camera trajectories to the provided ground truth. Following are the results on some example sequences.
Update July 2017: After the ICCV 2017 deadline, we extended our method to a SLAM system with additional components for map maintenance, loop detection and loop closure. Our performance on KITTI is further boosted a little, as shown with black plot below. A demonstration video is shown above.
Frankfurt Sequence of Cityscapes
To verify that our method can work with industrial level cameras (high dynamic range, rolling shutter with high pixel read-out speed), we evaluate our method on the Frankfurt sequence from the Cityscapes dataset. We split the sequence to several smaller segments, each with a comparable scale to those sequences from KITTI. The estimated camera trajectories with their alignments to the GPS trajectory are shown below (blue: estimates, red: GPS). Note that the provide GPS coordinates are not accurate.
Some qualitative results on the 3D reconstruction are shown below.
Open-Source CodeUnder discussion.
|Online Photometric Calibration of Auto Exposure Video for Realtime Visual Odometry and SLAM , In IEEE Robotics and Automation Letters (RA-L), volume 3, 2018.([arxiv][video] Code coming soon. This paper was also selected by ICRA'18 for presentation at the conference.) [bib] [pdf]|
|Direct Sparse Odometry , In IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017. [bib] [pdf]|
|Conference and Workshop Papers|
|Stereo DSO: Large-Scale Direct Sparse Visual Odometry with Stereo Cameras , In International Conference on Computer Vision (ICCV), 2017.([supplementary][video][arxiv]) [bib] [pdf]|
|Challenges in Monocular Visual Odometry: Photometric Calibration, Motion Bias and Rolling Shutter Effect , In arXiv:1705.04300, 2017.([arxiv]) [bib] [pdf]|
|Direct Sparse Odometry , In arXiv:1607.02565, 2016. [bib] [pdf]|
|A Photometrically Calibrated Benchmark For Monocular Visual Odometry , In arXiv:1607.02555, 2016. [bib] [pdf]|