Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

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.