All Projects β†’ BAILOOL β†’ Anms Codes

BAILOOL / Anms Codes

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

Programming Languages

python
139335 projects - #7 most used programming language
java
68154 projects - #9 most used programming language
matlab
3953 projects
cpp11
221 projects

Projects that are alternatives of or similar to Anms Codes

Pythonrobotics
Python sample codes for robotics algorithms.
Stars: ✭ 13,934 (+7908.05%)
Mutual labels:  robotics, slam, algorithm
Opencv Mingw Build
πŸ‘€ MinGW 32bit and 64bit version of OpenCV compiled on Windows. Including OpenCV 3.3.1, 3.4.1, 3.4.1-x64, 3.4.5, 3.4.6, 3.4.7, 3.4.8-x64, 3.4.9, 4.0.0-alpha-x64, 4.0.0-rc-x64, 4.0.1-x64, 4.1.0, 4.1.0-x64, 4.1.1-x64, 4.5.0-with-contrib
Stars: ✭ 401 (+130.46%)
Mutual labels:  cmake, opencv, qt
Cmake Templates
Some CMake Templates (examples). Qt, Boost, OpenCV, C++11, etc 一些栗子
Stars: ✭ 368 (+111.49%)
Mutual labels:  cmake, opencv, qt
Cleanit
Open-source Autonomy Software in Rust-lang with gRPC for the Roomba series robot vacuum cleaners. Under development.
Stars: ✭ 125 (-28.16%)
Mutual labels:  robotics, slam
M Loam
Robust Odometry and Mapping for Multi-LiDAR Systems with Online Extrinsic Calibration
Stars: ✭ 114 (-34.48%)
Mutual labels:  robotics, slam
Se2clam
SE(2)-Constrained Localization and Mapping by Fusing Odometry and Vision (IEEE Transactions on Cybernetics 2019)
Stars: ✭ 116 (-33.33%)
Mutual labels:  robotics, slam
Imagefeaturedetector
A C++ Qt GUI desktop program to calculate Harris, FAST, SIFT and SURF image features with OpenCV
Stars: ✭ 112 (-35.63%)
Mutual labels:  opencv, qt
Yolo Powered robot vision
Stars: ✭ 133 (-23.56%)
Mutual labels:  paper, opencv
Openage
Free (as in freedom) open source clone of the Age of Empires II engine πŸš€
Stars: ✭ 10,712 (+6056.32%)
Mutual labels:  cmake, qt
Notepanda
πŸ“ƒ A simple cross-platform notepad. Based on Qt and C++.
Stars: ✭ 134 (-22.99%)
Mutual labels:  cmake, qt
Ssl slam
SSL_SLAM: Lightweight 3-D Localization and Mapping for Solid-State LiDAR IEEE RA-L 2021
Stars: ✭ 144 (-17.24%)
Mutual labels:  robotics, slam
Scene Text Recognition
Scene text detection and recognition based on Extremal Region(ER)
Stars: ✭ 146 (-16.09%)
Mutual labels:  algorithm, opencv
Awesome Robotic Tooling
Tooling for professional robotic development in C++ and Python with a touch of ROS, autonomous driving and aerospace.
Stars: ✭ 1,876 (+978.16%)
Mutual labels:  robotics, slam
Autoannotationtool
A label tool aim to reduce semantic segmentation label time, rectangle and polygon annotation is supported
Stars: ✭ 113 (-35.06%)
Mutual labels:  opencv, qt
Ov2slam
OVΒ²SLAM is a Fully Online and Versatile Visual SLAM for Real-Time Applications
Stars: ✭ 119 (-31.61%)
Mutual labels:  slam, opencv
Qhttpengine
HTTP server for Qt applications
Stars: ✭ 112 (-35.63%)
Mutual labels:  cmake, qt
Opencv4androidwithcmake
Use Android Studio 3.0 (>=2.2) and Cmake Toolchain to make your Android device fly with Opencv (OpenCV 3.40)
Stars: ✭ 126 (-27.59%)
Mutual labels:  cmake, opencv
Flame
FLaME: Fast Lightweight Mesh Estimation
Stars: ✭ 164 (-5.75%)
Mutual labels:  robotics, slam
Door Slam
Distributed, Online, and Outlier Resilient SLAM for Robotic Teams
Stars: ✭ 107 (-38.51%)
Mutual labels:  robotics, slam
Robotics Coursework
πŸ€– Places where you can learn robotics (and stuff like that) online πŸ€–
Stars: ✭ 1,810 (+940.23%)
Mutual labels:  robotics, algorithm

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

  2. Choose your language: C++, Python, Matlab View ANMS-Codes on File Exchange, or Java.

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

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

Codes are tested with OpenCV 2.4.8, OpenCV 3.3.1 and Ubuntu 14.04, 16.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}
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].