Ask Your Question

FREAK descriptor type with selectPairs

asked 2013-08-02 03:25:18 -0600

ximobayo gravatar image

Hi everyone!

I am developing a tracker, I was using SURF features and descriptors, and I want to try the FREAK descriptor.

I have read the paper of the autor and I understand more or less the procedure but I have some doubts wiht the opencv implementation.

The return of selectPairs() is a int vector, but to match them I think is needed unsigned char because with other types I get an execution error.

What I do now is: -extract features with ORB (for example) -select pairs -copy the result into a Mat (there I have to cast from int to char) -call match with the Mat

Am I doing correctly? Is there an important speed up with flann instead bruteforce? (small sets to match)


edit retag flag offensive close merge delete


Do you want to share some of the important part of your code?

Moster gravatar imageMoster ( 2013-08-02 05:58:15 -0600 )edit

1 answer

Sort by ยป oldest newest most voted

answered 2013-08-04 11:02:24 -0600

Guanta gravatar image

Could it be that you are just using it wrong? You don't need the function selectPairs(), just use FREAK as the other descriptors, i.e. run your favorite detector and then use the compute() function of your freak-descriptor and you get a uchar-matrix containing the keypoint-corresponding feature vectors. See <your-opencv-folder>/samples/cpp/freak_demo.cpp for an example.

For the matching part you can then either use flann or bruteforce-matcher with Hamming-distance. Typically you don't use flann for tracking purposes since then you need to build an index each time, see also for more thoughts on this topic.

edit flag offensive delete link more


Thank you! I will try in that way.

ximobayo gravatar imageximobayo ( 2013-08-04 14:58:19 -0600 )edit

Question Tools


Asked: 2013-08-02 03:25:18 -0600

Seen: 426 times

Last updated: Aug 04 '13