This is the implementation of the paper "Efficient Indexing of Billion-Scale datasets of deep descriptors". The implementation of learn_GNOIMI.cpp
is based on the original implementation of the paper. Compared to the original implementation, current learn_GNOIMI.cpp
supports random thread number and random chunk size.
In current version, since I did not need to reconstruct the original feature vectors as described in the paper, I did not use the re-ranking part of the paper (i.e., search_GNOIMI.cpp
). Therefore, I had my own query function for feature matching.
The implementation need Yael library, which can be downloaded here. After compile the Yael library, we need to add the following line to the ~/.bashrc
:
export YAEL_DIR= path/to/Yael
Besides Yael library, Lapack, OpenBLAS and MKL are needed. Once all the dependencies are installed, we can compile the code as follows:
mkdir build && cd build
cmake .. && make -j