Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why binary descriptors work?

I am reading about binary descriptors but can't understand how they work. So far I have understood that the motivation is to create descriptors that can be computed and matched very fast. We sample n pairs of points, compare intensity at each of the n location pairs and construct a n-length vector. We then use the hamming distance as similarity measure between two patch's descriptors.

Suppose I am comparing two exactly same patches using their binary descriptor. Since I sample the n pairs independently both the times, there doesn't seem any correlation between the similarity of the patches and the feature vector. I may have sampled n pairs in first patch and the same n pairs in reverse order in the second patch and the resulting hamming distance would be n.

I have read the BRIEF paper.

like image 274
Tejus Gupta Avatar asked Jun 18 '26 01:06

Tejus Gupta


1 Answers

The implementation typically hard-encodes one single "random" order for the pairs, that is then used to calculate the descriptor for every patch.

For BRIEF in OpenCV you can find it on github.

like image 126
Tobias Hermann Avatar answered Jun 19 '26 23:06

Tobias Hermann