Giter Club home page Giter Club logo

dpc-net's Introduction

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 https://github.com/utiasSTARS/dpc-net

Testing with pre-trained model on KITTI data

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

ftp://128.100.201.179/2017-dpc-net

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

  2. Run test_dpc_net.py --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).

Training

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 train_dpc_net.py and create_kitti_training_data.py as starting points. If you use our framework, you'll need to save your estimator's poses in a TrajectoryMetrics object.

Citation

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

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

dpc-net's People

Contributors

valentinp avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.