1 | initial version |
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.