Junzhuodu / SFND_2D_Feature_Tracking

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SFND 2D Feature Tracking

As for this project, you will build the feature tracking part and test various detector / descriptor combinations to see which ones perform best. This project consists of four parts:

  • First, focus on loading images, setting up data structures and putting everything into a ring buffer to optimize memory load.
  • Then, integrate several keypoint detectors such as HARRIS, FAST, BRISK and SIFT and compare them with regard to number of keypoints and speed.
  • In the next part, focus on descriptor extraction and matching using brute force and also the FLANN approach.
  • In the last part, once the code framework is complete, test the various algorithms in different combinations and compare them with regard to some performance measures.

Dependencies for Running Locally

Basic Build Instructions

  1. Clone this repo.
  2. Make a build directory in the top level directory: mkdir build && cd build
  3. Compile: cmake .. && make
  4. Run it: ./2D_feature_tracking.

Results

Keypoints detected

Total number of keypoints in every image for each detector (SHITOMASI, HARRIS, FAST, BRISK, ORB, AKAZE, SIFT)

Corresponding time taken for each detector in every image

Matched Keypoints

Averaged number of matched keypoints for all images using all possible combinations of detectors and descriptors

Corresponding averaged time taken for all possible combinations of detectors and descriptors

Conclusion

To balance the accuracy and speed for each detector / descriptor combination, the ratio of mean-num-of-matched-keypoints to mean-detection-time-taken is used to evaluate the overall performance.

The TOP-3 detector-descriptor combinations are:

rank detector descriptor
1 FAST BRIEF
2 FAST ORB
3 SHITOMASI BRIEF

About

License:MIT License


Languages

Language:C++ 78.8%Language:Python 18.9%Language:CMake 2.3%