Skip to content
Switch branches/tags
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

DPC-Net: Deep Pose Correction for Visual Localization

Code for Dense Pose Corrections. DPC-Net learns SE(3) corrections to classical geometric and probabilistic visual localization pipelines (e.g., visual odometry).

Installation & Pre-Requisites

  1. Ensure that pytorch is installed on your machine. We perform all training and testing on a a GTX Titan X (Maxwell) with 12GiB of memory.

  2. Install pyslam and liegroups. We use pyslam's TrajectoryMetrics class to store computed trajectories, and use it to compute pose graph relaxations.

  3. Clone DPC-net:

git clone

Testing with pre-trained model on KITTI data

  1. Download pre-trained models and stats for our sample estimator (based on libviso2):

  1. Open and edit the appropriate variables (mostly paths) in

  2. Run --seqs 00 --corr pose.

Note that this code does not include the pose graph relaxation, and as a result the statistics it outputs are based on a simple correction model (where in between poses are left untouched).


To train DPC-Net, you need two things:

  1. A list of frame-to-frame corrections to a localization pipeline (this is typically computed using some form of ground-truth).
  2. A set of images (stereo or mono, depending on whether the correction is SO(3) or SE(3)) from which the model can learn corrections.

Using KITTI data

To use the KITTI odometry benchmark to train DPC-Net, you can use the scripts and as starting points. If you use our framework, you'll need to save your estimator's poses in a TrajectoryMetrics object.


If you use this code in your research, please cite:

  author = {Valentin Peretroukhin and Jonathan Kelly},
  doi = {10.1109/LRA.2017.2778765},
  journal = {{IEEE} Robotics and Automation Letters},
  link = {},
  title = {{DPC-Net}: Deep Pose Correction for Visual Localization},
  year = {2018}


Deep Pose Correction for Visual Localization




No releases published


No packages published