Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

The method you are referring to is explained in Section 4.2 in the publication. In short, not all ~900 pairs are used to create the descriptor, only the most discriminant pairs are used to construct the descriptor. Section 4.2 explains how these pairs are chosen.

To find out which pairs are the most relevant, what the researchers did is they constructed ~50000 descriptors (details of the dataset they used are unknown), and from that they calculated which pairs had mean value closest to 0.5 (the value of a pair is either 1 or 0). These are the pairs that discriminate different images the most. Essentially the pairs are sorted by their entropy.

The authors provide a pre-generated set of pairs that are compiled in OpenCV. However, if this does not suit you, or you have a very specific use-case (industrial applications with very little variation, etc.), you can use you own pairs used for comparisons. You need to provide a list of images the pairs will be selected on, a list of lists of keypoints (one list per image). The selectPairs method will then "customize" the FREAK descriptor for your dataset according to Section 4.2 of the publication.

Note that once you generate your own set of pairs, you will have to always use this for descriptor comparison - you cannot compare descriptors generated with different sets of pairs - their order matters. So either use the pre-generated set, or you can try training the FREAK on your dataset and then always use the selected pairs.