Subscribe
Issue No.09 - September (1997 vol.19)
pp: 989-1003
ABSTRACT
<p><b>Abstract</b>—The problem of finding the closest point in high-dimensional spaces is common in pattern recognition. Unfortunately, the complexity of most existing search algorithms, such as <it>k</it>-d tree and R-tree, grows exponentially with dimension, making them impractical for dimensionality above 15. In nearly all applications, the closest point is of interest only if it lies within a user-specified distance <tmath>$\epsilon.$</tmath> We present a simple and practical algorithm to efficiently search for the nearest neighbor within Euclidean distance <tmath>$\epsilon.$</tmath> The use of projection search combined with a novel data structure dramatically improves performance in high dimensions. A complexity analysis is presented which helps to automatically determine <tmath>$\epsilon$</tmath> in structured problems. A comprehensive set of benchmarks clearly shows the superiority of the proposed algorithm for a variety of structured and unstructured search problems. Object recognition is demonstrated as an example application. The simplicity of the algorithm makes it possible to construct an inexpensive hardware search engine which can be 100 times faster than its software equivalent. A C++ implementation of our algorithm is available upon request to <tt>search@cs.columbia.edu/CAVE/</tt>.</p>
INDEX TERMS
Pattern classification, nearest neighbor, searching by slicing, benchmarks, object recognition, visual correspondence, hardware architecture.
CITATION
Sameer A. Nene, Shree K. Nayar, "A Simple Algorithm for Nearest Neighbor Search in High Dimensions", IEEE Transactions on Pattern Analysis & Machine Intelligence, vol.19, no. 9, pp. 989-1003, September 1997, doi:10.1109/34.615448