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.

CORE result image examples

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: