In the BRIEF feature descriptor ("BRIEF: Binary Robust IndependentElementary Features", Calonder et al., 2011) they investigate five different methods of choosing point pairs to compute the binary values of the descriptor vectors:

Among these methods there are the methods named GI up to GIV that sample the point pairs randomly, according to various distributions.

Are these point pair sampled for every keypoint that we want to compute the descriptor for separately, or are these pairs sampled once and then remain the same for every keypoint?


When using a randomized pattern in BRIEF, this means that you computed random positions inside the patch once in an offline procedure, then used these random locations every time you computed the descriptors. This makes sense, as it means that when comparing descriptors you will actually compare the same locations, it's simply that the sampling pattern was not obtained by some regular or geometric scheme (which is probably what makes it a bit more generic than hand-crafted patterns).

For example, here is the sampling pattern used by OpenCV.

| improve this answer | |
  • $\begingroup$ Thanks a lot! I thought so but it wasn't completely clear from the paper, and thanks for the very convincing link to the OpenCV implementation:) $\endgroup$ – flawr Aug 26 at 12:14
  • $\begingroup$ Fun fact: knowing the sampling pattern used for the descriptor, you can actually invert it (ie compute the original image patch): computersdontsee.net/project/lbd-reconstruction $\endgroup$ – sansuiso Aug 27 at 15:39
  • $\begingroup$ That's an interesting idea - not that I have any application for that :) Thanks for sharing! $\endgroup$ – flawr Aug 27 at 15:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.