FLANN /
FLANNWhat is FLANN?FLANN is a library for performing fast approximate nearest neighbor searches in high dimensional spaces. It contains a collection of algorithms we found to work best for nearest neighbor search and a system for automatically choosing the best algorithm and optimum parameters depending on the dataset. FLANN is written in C++ and contains bindings for the following languages: C, MATLAB and Python. News
How fast is it?In our experiments we have found FLANN to be about one order of magnitude faster on many datasets (in query time), than previously available approximate nearest neighbor search software. PublicationsMore information and experimental results can be found in the following papers:
@article{flann_pami_2014, title={Scalable Nearest Neighbor Algorithms for High Dimensional Data}, author={Marius Muja and David G. Lowe}, journal={Pattern Analysis and Machine Intelligence, IEEE Transactions on}, volume={36}, year={2014}, publisher={IEEE} }
@inproceedings{Attach:binary_matching_crv2012, author = {Marius Muja and David G. Lowe}, title = {Fast Matching of Binary Features}, booktitle = {Computer and Robot Vision {(CRV)}}, year = {2012}, pages = {404-410} }
@inproceedings{muja_flann_2009, author = {Marius Muja and David G. Lowe}, title = {Fast Approximate Nearest Neighbors with Automatic Algorithm Configuration}, booktitle = {International Conference on Computer Vision Theory and Application VISSAPP'09)}, publisher = {INSTICC Press}, year = {2009}, pages = {331-340} } Getting FLANNThe latest version of FLANN can be downloaded from here:
If you don't want to compile FLANN from source you can try the binary installers prepared by the Point Cloud Library (PCL) project here (Ubuntu/Debian PPA, Windows Installers and Mac OS X Universal Binary). If you want to try out the latest changes or contribute to FLANN, then it's recommended that you checkout the git source repository: If you just want to browse the repository, you can do so by going here. System requirementsThe FLANN library was developed and tested under Linux. A C++ compiler is required to build FLANN. The Python bindings require the presence of the Numerical Python (numpy) package. Conditions of useFLANN is distributed under the terms of the BSD License. Questions/CommentsIf you have any questions or comments please email them to: mailto:mariusm@cs.ubc.ca. Please report bugs or feature requests using github's issue tracker. |