Paper:
http://www.gwylab.com/download/BRIEF_2010.pdf
Trait
BRIEF algorithm is a descriptor algorithm, not like SIFT/SURF
- BRIEF does not care about how to find potential corners
- BRIEF only contains a descriptor design
- BRIEF can be combined with FAST keypoints result
BRIEF essential is SOLVING THE MEMORY PROBLEM
like the document said SIFT/SURF ..
1 | "Creating such a vector for thousands of features takes a lot of memory which are not feasible for resource-constraint applications especially for embedded systems." |
How
How to save the memory ?
- Replace calculate float number by compare with binary stream Hamming Distance.
- Not generate too complicated descriptor in memory
method1 is also useful in SIFT/SURF process, BUT …
1 | "we need to find the descriptors first, then only can we apply hashing, which doesn't solve our initial problem on memory." |
method2 actually solve the memory problem
there are 3 main steps refer from official document
- selects a set of nd (x,y) location pairs around keypoint in a unique way
- compre the point p,q pixel intensity in each pair, an record the result with 0/1
- take the result binary stream(binary string) as a descriptor
about the “around”
- in paper it define as S x S area
- in openCV which default value S = 31
about the “unique way” detail can be explained in paper, in summary
- mean value sample
- p,q obey same gauss distribution sample
- p,q obey different gauss distribution sample
- use polar coordinate system
- p is fix to (0,0) then q around to p
Orientation Sensitivity:
From paper we can know
1 | "BRIEF is not designed to be rotationally invariant....it tolerates small amounts of rotation" |
from experience if rotate angle should less than 30 degree
IN CONCLUSION:
BRIEF descriptor not use the data as a descriptor, using the result calculate by data as descriptor