5-point algorithm and 8-point algorithm method
Explore the repository»
View Problem Statement
View Report
tags : visual odometry, 5-point algorithm, 8-point algorithm, fast, sift essential matrix, digital video
This project deals with the task of Visual Odometry using Nister’s five point algorithm and eight point algorithm for essential matrix estimation. We develop our own implementations for these methods. We implement RANSAC along with these methods for outlier rejection. We test our implementations and OpenCV implementations on a couple of sequences from KITTI dataset. We specifically use Sequences 03 and 10, since they are of relatively smaller size. We use FAST feature detection algorithm to detect the keypoint locations and keep track of at least 2000 keypoints in every frame at any time. A detailed description and analysis of the results are available in the Report.
This project was built with
- python v3.8
- The environment used for developing this project is available at environment.yml.
Clone the repository into a local machine using
git clone https://github.com/vineeths96/Visual-Odometry
Create a new conda environment and install all the libraries by running the following command
conda env create -f environment.yml
The KITTI dataset used in this project should to be downloaded to the input/
folder.
To plot the visual odometry of the video sequence, run the following command. Set the parameters for odometry estimation and camera parameters in the parameters file. This will estimate the trajectory, plots it along with true trajectory, and store the plots in this folder.
python visual_odometry.py
Note that the GIFs below might not be in sync depending on the network quality. Clone the repository to your local machine and open them locally to see them in sync.
A detailed description of methods and analysis of the results are available in the Report.
As one would expect, the OpenCV implementations are much more accurate and much faster than the implementations we develop. Especially, we find our implementations to be time consuming due to the naive sampling and implementation of RANSAC. We can trade off the accuracy and time by reducing the number of iterations for RANSAC. However, due to the cumulative nature of odometry, an error at one step adversely affects the estimate at all the successive steps.
Distributed under the MIT License. See LICENSE
for more information.
Vineeth S - [email protected]
Project Link: https://github.com/vineeths96/Visual-Odometry
-
Ali Shobeiri. Monocular Video Odometry Using OpenCV. https://github.com/alishobeiri/Monocular- Video-Odometery . 2019.