Ask Your Question

RobustMatcher does not work with FREAK

asked 2012-08-27 04:15:26 -0500

this post is marked as community wiki

This post is a wiki. Anyone with karma >50 is welcome to improve it.

The RobustMatcher tool in chapter 9 (Matching Images using Random Sample Consensus) of the OpenCV 2 cookbook ( works for SURF:

But it does not work for FREAK (just added in OpenCV 2.4.2). How can RobustMatcher be modified to work with FREAK?

edit retag flag offensive close merge delete



i don't think it's a problem of robustmatcher. I have tested FREAK and 90% of the time it can't detect the object. I have got much better results with ORB

yes123 gravatar imageyes123 ( 2012-08-27 06:19:46 -0500 )edit

Any solution for the problem?

szanto90balazs gravatar imageszanto90balazs ( 2013-02-01 06:05:21 -0500 )edit

1 answer

Sort by ยป oldest newest most voted

answered 2012-08-27 04:47:24 -0500

sammy gravatar image

SIFT algorithm creates float descriptors - that is a vector of floating-point values. In the same family is the SURF descriptor. There are some good reasons they work this way, but processors are lazy when crunching float numbers. This is why scientists developed binary descriptors, which describe points as a sequence of 0's and 1's.

Binary descriptors are fast - much faster to compare and match. So a new generation of image keypoint descriptors has grown using this technique: among them BRIEF and FREAK. They are in many ways similar to their float cousins, but it's clear that the internals cannot be compatible - an algorithm that compares strings of bits cannot compare vectors of floats.

The techniques involved in matching the two classes of descriptors and the math foundations differ. I do not know exactly how the RobustMatcher works, but it's a good chance that adapting it is not as simple as replacing float with bool.

edit flag offensive delete link more

Question Tools



Asked: 2012-08-27 04:15:26 -0500

Seen: 685 times

Last updated: Aug 27 '12