Code Monkey home page Code Monkey logo

ss-dpc-net's Introduction

Supporting Code for "Self-Supervised Deep Pose Corrections for Robust Visual Odometry"

Dependencies:

Datasets

We trained and tested on the KITTI dataset. Download the raw dataset here. We provide a dataloader, but we first require that the data be preprocessed. To do so, run create_kitti_data.py within ss-dpc-net/data (be sure to specify the source and target directory). We preprocessed the data by resizing the images and removing 'static' frames.

Training

Two bash scripts are provided that will run the training experiments (for monocular pose corrections and stereo pose corrections respectively):

run_mono_exps.sh

run_stereo_exps.sh

Prior to training, the data directory should be modified accordingly to point to the processed KITTI data. During training, to visualize the training procedure, open a tensorboard from the main directory:

tensorboard --logdir runs

Pretrained Models

Our pretrained models are available online. To download them, run the following bash script from the source directory:

bash download_data.sh

Inference

run:

run_inference.py

This will recompute the pose corrections for a specified KITTI sequence. Currently, it plots the corrected trajectory only.

Reproduction of Paper Results

Within paper_plots_and_data, run the four scripts to generate the tables and/or plot the trajectories within our paper.

Citation

If you use this in your work, please cite:

@inproceedings{2020_Wagstaff_Self-Supervised,
  author = {Brandon Wagstaff and Valentin Peretroukhin and Jonathan Kelly},
  booktitle = {Proceedings of the {IEEE} International Conference on Robotics and Automation {(ICRA'20})},
  date = {2020-05-31/2020-06-04},
  month = {May 31--Jun. 4},
  title = {Self-Supervised Deep Pose Corrections for Robust Visual Odometry},
  url = {https://arxiv.org/abs/2002.12339},
  year = {2020}
}

ss-dpc-net's People

Contributors

brandonwagstaff avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ss-dpc-net's Issues

Using SS-DPC-Net with Non-KITTI dataset

Hello,

First, thank you for sharing your source code of your SS-DPC-Net research!

I'm planning to use it on our own dataset instead of the KITTI dataset and I'm wondering what the required files are in order to successfully run your source code. I'll greatly appreciate any tips you can give me.

Best regards,

Paul

SE(3) pose concatenation in your code

Thank you for sharing your nice work!
I have a question about SE(3) pose concatenation in your code implementations.


Let's define the following symbol:
$T^w_t$: SE(3) pose at time $t$ w.r.t. $w$.

Then, as I know, the relative dT pose from $t-1$ to $t$ and pose concatenation should be as follows:

$T^{t-1}_{t} $

$=( T^w_{t-1} )^{-1} T^{w}_{t}$

and

$T^{w}_{t}$

$= T^w_{t-1} T^{t-1}_t$

However, according to the your code implementations of get relative pose and pose concat. using dT pose,

they are defined as following reverse order:

$T^{t-1}_t$

$= (T^w_{t})^{-1} T^w_{t-1}$

and

$T^{w}_{t}$

$= (T^{t-1}_{t} {(past pose)}^{-1})^{-1}$

where
$(past pose)$

$= (T^{w}_{t-1})$


these are somewhat different from my definition, and my pdf visualization result of VO estimation is weird.
Why is it implemented in reverse order?

Thank you

Error calculation

The error calculation is very confusing for me, more specifically the test trajectory function in validate.py. I am trying to run the network with non-kitti dataset, and I have made everything to look like kititi dataset, however I am getting a wrong error value between the GT and pose estimate. The value is around 7m in translation, and I used evo and actually the result is around 0.1m, any idea what might be the reason?

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.