GithubHelp home page GithubHelp logo

nmamie / visual-odometry-pipeline Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jianhao-zheng/visual-odometry-pipeline

0.0 1.0 0.0 49.85 MB

Mini course project of Vision Algorithms for Mobile Robotics from uzh

Shell 0.12% Python 2.44% MATLAB 26.65% Jupyter Notebook 70.78%

visual-odometry-pipeline's Introduction

Monocular Visual Odometry Pipeline

Authors: Jianhao Zheng, Yujie He

Overview

Mini project for Vision Algorithms for Mobile Robots given by Prof. Davide Scaramuzza, 2021

Implementation of a working, simple, monocular visual odometry (VO) pipeline with the following implementation details:

  • KLT-based or descriptor matching for bootstrapping initialization
  • KLT Tracking of feature points across frames following by RANSAC
  • Triangulation of new landmarks
  • Local pose refinement through optimization
  • Bundle adjustment for better pose estimation
  • Release two custom sequences

Codebase

Machine specifications

  • CPU: AMD Ryzen 7 5800H, 3.2 GHz, 16 logical process
  • RAM: 16GB

Dev Environment

Test passed
matlab-2021b matlab-2020b
  • Toolbox used
    • Computer Vision Toolbox
    • Image Processing Toolbox
    • Optimization Toolbox

How to run

Download dataset and copy them to the right folder. For details on setting data, please refer to Data. To test the VO pipeline without bundle adjustment, run main_demo.m. Change variable ds to switch the testing dataset.

For VO with bundle adjustment, plese run main_BA.m and make sure hyper_paras.is_BA is true. (For now, only tested in parking dataset, ds = 2)

Folder Structure

Visual-Odometry-Pipeline/
├── Continuous_operation # (matlab) implemented algorithms about continuous operation
├── Initialization # (matlab) implemented algorithms about initialization
├── utils # (matlab) utility function for data processing and visualization in the pipeline
├── eval_notebook # (python) scripts to evaluate performance between different methods
├── main_BA.m # (matlab) script to demonstrate implemented method with bundle adjustment on `parking` data
├── main_demo.m # (matlab) script to demonstrate implemented method without bundle adjustment for every dataset
├── main_eval.m # (matlab) script to batch evaluate the implemented method with different features on `KITTI seq05` data
├── data # 3 data sequences provided by VAME team and 2 customized sequences
├── gifs # demonstration gifs
├── README.md
├── ...

Demo

Test sequences Demo Video
KITTI seq05 epfl_parking [link]
malaga epfl_parking [link]
parking epfl_parking [link]
epfl_parking epfl_parking [link]
lausanne_center_nav epfl_parking [link]

Data

Provided datasets

Download data from RPG VAME course website and place them in the following structure

├── data
│   ├── kitti
│   └── malaga
│   └── parking

Customized datasets

For more details, you could refer to readme in following subfolder

Related repos

visual-odometry-pipeline's People

Contributors

hibetterheyj avatar jianhao-zheng 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.