Skip to content

ChienTeLee/visual_odometry

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Visual Odometry

Overview

Visual odometry is an algorithm which estimates camera motions from camera images. The goal of this project is to implement feature-based reconstruction on scene geometry, and analyze the path of a car from the driving record. In the beginning, we do image processing to recover image color and undistort the images. Next, we extract SURF features and find match points between current image and next image. After that, apply 8-point algorithm and RANSAC to the match points and estimate the camera Fundamental matrix. With the Fundamental matrix, we can reconstruct the camera translation and rotation, and then plot the trajectory on the 2D plane. Finally, we compare the result using self implemented method with the result using matlab library. (This project is implemented in matlab code and is only for self-practice purpose.)

Dataset

This project uses OXFORD ROBOTCAR DATASET from Oxford's Robotics Institute.

Visual Odometry dataset (used in this project)

OXFORD ROBOTCAR DATASET original website

How to run

  1. Create a folder named "input"
  2. Download Visual Odometry dataset and unzip Oxford_dataset.zip.
  3. put "model" and "stereo" folder in "input" folder
  4. run VisualOdometry.m.
  5. After running, an output figure containing the car route will appear in "output" folder.

Implementation

  1. Do image processing including recovering image color, undistorting the images for calibration, doing histogram equalization to ehnance contast, and applying gaussian filter for image smoothing.

  2. Extract SURF features and find match points between current image and next image.

  1. Apply 8-point algorithm and RANSAC to the match points for estimating the camera Fundamental matrix.

  2. From the Fundamental matrix, we can reconstrct 4 rotation and translation solutions. Check the image depth and feature point depth to find the only valid rotation and translation pair.

  3. plot the camera motion path on 2D plane.

Result

The red path is the visual odometry using self implemented methods. The blue path is the implementation using matlab library. We can tell that the car is driving a rectangle route, and the red and blue path matched pretty well.

Slides

Slides

Reference

  1. Visual odometry (wikipeida)

  2. detectSURFFeatures

  3. KTH DD2429 Lecture 3 - Two view geometry & the Essential Matrix

  4. NTU Digital Visual Effects Structure from motion

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages