Ask Your Question

Michal Kottman's profile - activity

2013-04-11 04:51:42 -0600 received badge  Good Answer (source)
2012-09-21 09:51:09 -0600 received badge  Nice Answer (source)
2012-09-20 11:38:36 -0600 received badge  Teacher (source)
2012-09-20 06:24:01 -0600 commented question Does FREAK eat keypoints when it can't find any descriptors?

I'm not sure the SURF detector is suited for the FREAK descriptor. When you read the publication, they used mutliscale AGAST (based on FAST). You do not need orientation-enabled detector, because FREAK will calculate the orientation itself.

2012-09-20 05:10:58 -0600 received badge  Supporter (source)
2012-09-20 04:16:17 -0600 answered a question Clarifying FREAK: Fast Retina Keypoint descriptor

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.

2012-09-20 04:03:20 -0600 answered a question BRISK runs out of memory on iOS

Have you tried the Fast Retina Keypoint (FREAK) descriptor instead of BRISK? It is newer, partly based on BRISK and has some benefits, such as lower memory usage and faster descriptor calculation. You can read the details of the descriptor in this paper. It is implemented in OpenCV, so it should be simple to replace BRISK by FREAK.