Programming Assignment 1

Yiming Liu (yimingl@princeton.edu)

Oct 9


Approximate Nearest Neighbor Search Acceleration

I have implemented the ANN acceleration in my program. The ANN library is very convenient to use. Its interface is self-explanatory.

However, in fact, without ANN library, we still have lots of intuitive techniques to accelerate the nearest neighbor search. The most important ones are:

The following images compare the difference between the algorithm without ANN and with ANN. Thanks to the acceleration techniques above, the program without ANN is not much slower than the one with ANN (145.7 seconds vs. 111.8 seconds). Note that because the distance decomposition loses some precision, and some randomness is involved on the coarsest level (I followed Efros' randomness setting on the coarsest level), the two results look quite different. However, their quality is similar.

Common parameters:

Exemplar:


Result without ANN (145.7 seconds)


Result with ANN (111.8 seconds)