I used this paper and associated code in my undergraduate thesis. After decoupling the C++ code from MATLAB I was able to make it into a library and use it to search binary features instead of the floating point features hashed with Locality Sensitive Hashing, giving an exact k-NN instead of approximate. The code was fast but the benefits really manifest with large numbers of codes (pretty much what we want). Contact me if you would like to see the performance of this code for various m and image corpuses, or the rest of my paper.
Well this datastructure lets us find the k nearest neighbors in Hamming space (think binary vectors in binary vector space) quickly. If we can map features (for simplicity lets think of images) to points in hamming space such that similar features have a small hamming distance then we have a fast way of finding similar images. That is the problem that this paper proposes to help with, but I could easily see this also applying to sound clips or other media, though my imagination is not that great. When I used this code I applied it to the problem of image matching using binary codes generated by a feature detector [1]. The benefit of using binary codes over traditional floating point vectors is they are much faster to compare.
[1] http://docs.opencv.org/modules/features2d/doc/feature_detect...)
6 comments
[ 3.1 ms ] story [ 3.6 ms ] threadEDIT: also it's probably best to link to the homepage for the paper: http://www.cs.toronto.edu/~norouzi/research/mih/ and the code: https://github.com/norouzi/mih/
http://blog.underdog.io/post/120612462747/curalate-helping-t...