/ImageFeaturesAndMatching

Image features and related matching methods

Primary LanguageC++MIT LicenseMIT

Image Features Matching

motivation

Design an abstract class where multiple image features, descriptors and matching methods can be chosen from the config file, including traditional and deep learning based methods, for some visual feature based tasks, such as visual slam, AR/VR and object tracking.

Supportted image features: BRISK, ORB, AKAZE, SIFT, SURF, CONTOUR, SuperPoint (with TensorRT accelerated)

Supportted descriptor types: BRIEF, ORB, FREAK, AKAZE, SIFT, BRISK, SURF, SuperPoint (with TensorRT accelerated)

Supported matching methods: BF_HAMMING, BF_L2, SuperGlue (with TensorRT accelerated)

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: ./image_matching [keypoints type] [descriptor type].

Reference

SFND_2D_Feature_Tracking

feature detection

Image Matching from Handcrafted to Deep Features: A Survey

Image Matching Across Wide Baselines: From Paper to Practice

Image Registration Techniques: A Survey

ORB

SIFT

SuperPoint

SuperGlue

BRISK

BRIEF

FREAK

AKAZE