CORE
1. WHAT IS IT
The CORE algorithm (COnfusion REduction) is a pre-processing filter for reducing keypoints confusion. It efficiently removes repetitive patterns and tries to keep the relevant ones. All without any kind of training.

In these images, red keypoints correspond to repetitive patterns in the feature space whereas the ones in blue are interesting keypoints
Download sources (v1.02): here
The sources are written with Python 2.x, and make use of the pycuda library. Therefore, the use of an NVIDIA GPU is strongly advised.
2. HOW TO USE
example with OpenCV library:
In [1]: import cv2 as cv
In [2]: import CORE
In [3]: img1 = cv.imread("img1", cv.IMREAD_GRAYSCALE)
In [4]: orb = cv.ORB_create()
In [5]: kps1, des1 = orb.detectAndCompute(img1, None)
# 0.35 is mu / sigma parameter. Since ORB is a binary descriptor it is here the former.
# True is a flag wherever the feature is binary or not.
# last parameter (2000) sets the GPU call segmentation in order to avoid a CUDA driver time-out.
In [6]: core = CORE.Core(kps1, des1, 0.35, True, 2000)
In [7]: core.compute()
In [8]: kept1, discarded1 = core.filter(0.05)
3. REFERENCES
If you make use of CORE algorithm, please cite the following papers:
- Emilien Royer, Thibault Lelore, Frédéric Bouchara, COnfusion REduction (CORE) algorithm for local descriptors, floating-point and binary cases, Computer Vision and Image Understanding, Available online 12 January 2017, ISSN 1077-3142, http://dx.doi.org/10.1016/j.cviu.2017.01.005. (http://www.sciencedirect.com/science/article/pii/S107731421730005X)
- Royer, Emilien, Lelore, Thibault and Bouchara, Frédéric. "CORE: A COnfusion REduction Algorithm for Keypoints Filtering." Paper presented at the meeting of the VISAPP (1), 2015.