Giter VIP home page Giter VIP logo

dvo_python's Introduction

dvo_python: Dense visual odometry in Python(3.6(.6))

Coded up in slightly longer than a night! :)

Someone tweeted about this elegant implementation , and that's what made my day (rather, my night). I was like, "Hmm, a good refresher on dense SLAM would be to implement this, let me do it in Python."

The first coding sprint ran for about 7.5 hours, in which I implemented most of the framework, i.e., the residual and Jacobian computation, and a simplish gradient-descent optimizer.

Micromanagement

  • Work out dependencies (numpy, OpenCV, some SE(3) package(??), matplotlib)
  • Read in a pair of pointclouds and visualize them
  • Construct image and depth pyramids
  • Compute the residual (warping error)
  • Implement SE(3) routines
  • Implement image gradient computation
  • Compute Jacobian of the error function
  • Write a Gradient-descent optimizer
  • Write a Gauss-Newton optimizer
  • Robustify the error function (IRLS / M-Estimators)
  • Debug the two-image alignment case
  • Extend to a sequence of several images
  • Setup class to load a TUM RGB-D sequence and run dvo _python on it.
  • Debug!
  • Check for any possibile visualization glitches/enhancements.

Big picture checklist

  • Barebones version of repo up
  • Chalk out repo structure, order in which to code
  • Put the order up as a checklist
  • Code & Debug (on a pair of images)!
  • Code & Debug on a sequence of images
  • Get it to run on TUM RGB-D!
  • Benchmark (time and accuracy)
  • Finish up documentation and README
  • Take a moment to revel in a sense of accomplishment ;)
  • Get some sleep!!! :)

Activity Log

Times are in 24-hour format.

Night 1: 21 November-22 November 2018

  • 2000 - 2020: Chalk out action plan.
  • 2020 - 2050: Dinner break.
  • 2100 - 2130: Download a sequence from TUM RGB-D, load and display stuff
  • 2140 - 2300: Build pyramid levels (plus a lot of interruptions :|)
  • 2330 - 0115: Compute the photometric warp error
  • 0115 - 0145: Get SE(3) helper functions in
  • 0200 - 0220: Image gradient computation, fetch SE(3) Jacobian helper functions
  • 0220 - 0310: Implement Jacobian computation
  • 0310 - 0330: Implement gradient descent optimizer

Day 2: 22 November 2018

  • 1100 - 1130: Vectorize image pyramid level construction
  • 1614 - 1645: Vectorize edge-preserving depth pyramid level construction

dvo_python's People

Contributors

krrish94 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

Watchers

 avatar  avatar  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.