http://cvlab.epfl.ch/software/brief/
EPFL > I&C > CVLAB > Software > Brief
BRIEF is a fast and accurate interest point descriptor for real-time applications.
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 (on linux, try grep sse /proc/cpuinfo and look for sse4_2 (or sse4a, respectively), you can safely enable -msse4.2 (or -msse4a, respectively) in test_app/Makefile. This should give you a 10- to 15-fold speed increase for matching. If enabled although SSE 4.2 (SSE 4a, respectively) is not supported, it will cause an Illegal instruction.
Download
The source code is available under the GNU General Public License Version 2. In short, if you distribute software that uses BRIEF, you have to provide your source code along with that of BRIEF. If you are not willing to do so, you can contact us for more information on purchasing a commercial license.
Get BRIEF v1.0(C++, including Linux Makefile, released 2010-09-24). For more information, please see the README and LICENSE files in the package.
Author: Michael Calonder
We also have a very simple interactive demo: BRIEF_demo V0.5.
Dependencies
The distributed code assumes that you have already installed OpenCV and pkg-config is properly configured to locate it. Ask for help from your local *nix expert if this does not tell you much.
Related Paper
M. Calonder, V. Lepetit, C. Strecha, P. Fua, BRIEF: Binary Robust Independent Elementary Features, 11th European Conference on Computer Vision, Heraklion, Crete, Springer, September 2010. @inproceedings{Calonder10-brief,
author = {M. Calonder and V. Lepetit and C. Strecha and P. Fua},
title = {{BRIEF: Binary Robust Independent Elementary Features}},
booktitle = {European Conference on Computer Vision},
month = "September",
year = 2010
}