What is this? BRIEF is a general-purpose feature point descriptor that can be combined with arbitrary detectors. It is robust to typical classes of photometric and geometric image transformations. BRIEF is targeting real-time applications leaving them with a large portion of the available CPU power for subsequent tasks but also allows running feature point matching algorithms on computationally weak devices such as mobile phones. For details including comparisons to the state-of-the-art, please refer to the paper.
Accuracy. Comparing BRIEF with OpenCV SURF on standard Wall (left) and Fountain datasets. The plots show the recognition rate (accuracy) for U-SURF-64 and BRIEF-32 versus five image pairs of the respective image sequence. 1000 points were matched for each image pair.
Speed. Owing to its salient simplicity, BRIEF is extremely efficient to compute which results in a speed-up of almost two orders of magnitude over U-SURF-64. Compared to a recent GPU implementation of SURF, BRIEF-32P is still about 4 times faster to compute while using a single 2.53 GHz CPU. The timings are the median values obtained from 10 runs of a standard detect-describe-match cycle.
Note on Efficient Distance Computations. Computing the Hamming distance between two binary vectors corresponds to a simple bitcount on the result of a binary XOR operation between the vectors. The bitcount becomes particularly efficient on CPUs supporting the
POPCNT instruction: The first in this series are Intel’s Bloomfield (SSE 4.2) and AMD’s Phenom (SSE 4a). If your CPU supports this instruction, you can safely; enable
-msse4a, respectively) in
test_app/Makefile. This should give you a 10- to 15-fold speed increase for matching. If enabled despite SSE 4.2 (SSE 4a, respectively) is not supported, you will get an
Illegal instruction. On linux, try
grep sse /proc/cpuinfo and look for
sse4a, respectively) to find out whether or not
POPCNT is available on your machine.