ANMS Codes Save

Efficient adaptive non-maximal suppression algorithms for homogeneous spatial keypoint distribution

Project README

Efficient adaptive non-maximal suppression algorithms for homogeneous spatial keypoint distribution

This is the implementation of the paper "Efficient adaptive non-maximal suppression algorithms for homogeneous spatial keypoint distribution" that is published in Pattern Recognition Letters (PRL). Alternatively, see TL;DR version.

Algorithm Overview

While competing ANMS methods have similar performance in terms of spatial keypoints distribution, the proposed method SSC is substantially faster and scales better:

Retrieve 10% Retrieve 40% Retrieve 70%

Here is how proposed ANMS method visually compares to traditional methods: TopM | Bucketing | SSC (proposed)

TopM Bucketing SSC

Related algorithms that are implemented in this repository are:

  • "Visual Odometry based on Stereo Image Sequences with RANSAC-based Outlier Rejection Scheme" - bucketing
  • "Multi-Image Matching using Multi-Scale Oriented Patches" - original ANMS
  • "Efficiently selecting spatially distributed keypoints for visual tracking" - more efficient ANMS

For more details about the algorithm, experiments as well as the importance of homogeneously distributed keypoints for SLAM please refer to the paper.

How to run

  1. Clone this repository: git clone https://github.com/BAILOOL/ANMS-Codes.git. See codebase visualization to better understand code repository structure.

  2. Choose your language:

  3. Make sure the path to test image is set correctly

  4. Run produced executable ./ANMS_Codes for C++ or relevant script for other languages

Codes have been tested with OpenCV 2.4.8, OpenCV 3.3.1, OpenCV 4.2.0 and Ubuntu 14.04, 16.04, 20.04.

Contributing

Follow instructions in docs/contributing.

Citation

If you use these codes in your research, please cite:

@article{bailo2018efficient,
  title={Efficient adaptive non-maximal suppression algorithms for homogeneous spatial keypoint distribution},
  author={Bailo, Oleksandr and Rameau, Francois and Joo, Kyungdon and Park, Jinsun and Bogdan, Oleksandr and Kweon, In So},
  journal={Pattern Recognition Letters},
  volume={106},
  pages={53--60},
  year={2018},
  publisher={Elsevier}
}
Open Source Agenda is not affiliated with "ANMS Codes" Project. README Source: BAILOOL/ANMS-Codes