# How rotation invariant is FAST + FREAK in practice?

I've been doing some experiments with FAST and FREAK, cause I read that it is rotation invariant. However, when I compare two images that are 180° rotated i get really poor results.

What I need to explain next might also be important: I only use the best 500 keypoints from each image (the ones with the biggest response). When I match the images with FAST (or FAST PYRAMID, doesn't make a difference) and FREAK I get 0 matches. When I use all the keypoints I get 23 matches, but they are just wrong (check image)

BRISK does quite a good job, but it's slow.

My Question is, just how rotation invariant is FAST+FREAK in practice? (in theory I guess it should even be good for 180°?) and is there a way to improve it without changing my detector and descriptor (both are quite fast, i know BRISK gives better results, but it's too slow for the application I am going to make).

EDIT: it might be important to add that I am doing this on a Android device with a Java Wrapper for the OpenCV Functions. It is critical for me that it all runs as fast as possible (hence not using the BRISK)

edit retag close merge delete

Sort by » oldest newest most voted

First of all, use ORB. In your example there's no scale difference, but it helps. I read a bit on ORB and it's an improvement on BRISK and other detectors and I has better orientation computation. Though I also read that FREAK computes orientation anyway so that's possibly irrelevant then. Using the best response of keypoints isn't a solely good way to filter them. What if you end up with points that are very close to each other, but only cover a very small part of the image?

I just did a test on an iron man image with size 1280x864, computed 500 ORB keypoints and used FREAK as descriptor with matching from OpenCV. The matching itself took around 0.005s, got me a mean match distance of 18.09 and returned 194 matches.

more

what matcher do you use for the ORB + FREAK, cause bruteforcehamming matching gives back only 13 matches. It might be important to say that I'm using an Android device, so my matching etc. take a bit longer. The images I use are 320*240 for the fastest results.

( 2013-05-12 17:03:45 -0600 )edit

Official site

GitHub

Wiki

Documentation