karanamrahul / Visual-Odometry

This project explains how to implement a visual odometry for a stereo camera system using epipolar geometry constraints. Stereo Matching of the images is done using Semi Global Block Matching.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Visual-Odometry

This project explains how to implement a visual odometry for a stereo camera system. Stereo Matching of the images is done using Semi Global Block Matching.

├── Code
|  ├── stereovision.py
|  ├── helper.py
├── Docs
|  ├── VisualOdometry_Report.pdf
├── Results
|  |  ├── .png files

Input Dataset

Please downlaod the dataset from this drive link.

Packages needed

  • Opencv2
  • Numpy
  • Numba
  • Matplotlib
  • scipy

Steps to Run the code

git clone --recursive https://github.com/karanamrahul/Visual-Odometry.git
cd Visual-Odometry
python3 stereovision.py

You need to select the dataset and the method you want to use for stereo matching. ( Using Semi Global might take a little more time compared to the first method as it checks for four directions around the pixel)

Please choose the dataset number (1) - Curule (2) - Octagon (3) - Pendulum : 


Please choose the method number (1) - Simple Block Matching  (2) - Semi Global Block Matching :

Results

Dataset - 1 Simple block matching algorithm

alt test

Dataset - 2

alt test

Dataset - 3

alt test

Dataset - 1 Semi-global block matching algorithm

alt test

Dataset - 2

alt test

Dataset - 3

alt test

About

This project explains how to implement a visual odometry for a stereo camera system using epipolar geometry constraints. Stereo Matching of the images is done using Semi Global Block Matching.

License:MIT License


Languages

Language:Python 100.0%