ANMS Codes
Efficient adaptive non-maximal suppression algorithms for homogeneous spatial keypoint distribution
This is the implementation of the [paper](https://www.researchgate.net/publication/323388062_Efficient_adaptive_non-maximal_suppression_algorithms_for_homogeneous_spatial_keypoint_distribution) *"Efficient adaptive non-maximal suppression algorithms for homogeneous spatial keypoint distribution"* that is published in Pattern Recognition Letters (PRL). Alternatively, see [TL;DR version](https://www.shortscience.org/paper?bibtexKey=journals/prl/BailoRJPBK18&a=ukrdailo). The project is written primarily in C++, distributed under the MIT License license, first published in 2017. Key topics include: adaptive-non-maximal-suppression, algorithm, algorithm-overview, anms, cmake.
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.

While competing ANMS methods have similar performance in terms of spatial keypoints distribution, the proposed method SSC is substantially faster and scales better:
![]() | ![]() | ![]() |
|---|
Here is how proposed ANMS method visually compares to traditional methods: TopM | Bucketing | SSC (proposed)
![]() | ![]() | ![]() |
|---|
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
-
Clone this repository:
git clone https://github.com/BAILOOL/ANMS-Codes.git. See codebase visualization to better understand code repository structure. -
Choose your language:
-
Make sure the path to test image is set correctly
-
Run produced executable
./ANMS_Codesfor 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:
text@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} }
Contributors
Showing top 3 contributors by commit count.






