微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

FLANN如何选择要使用的算法和参数?

如何解决FLANN如何选择要使用的算法和参数?

FLANN(近似最近邻居的快速库)是用于在高维空间中执行快速近似最近邻居搜索的库。它包含一组我们发现最适合最邻近搜索的算法,以及一个根据数据集自动选择最佳算法和最佳参数的系统。 FLANN用C ++编写,包含以下语言的绑定:C,MATLAB,Python和Ruby。 https://github.com/mariusmuja/flann

FLANN有哪些可用的算法?它如何选择要使用的算法和参数?

我问是因为,在使用FLANN之前,我注意到使用体素滤镜的速度降低了10倍,并希望弄清楚该归因于什么。体素过滤器删除了数据中70%的点,但速度下降的幅度似乎要大得多。

解决方法

FLANN使用以下算法(defines.h):

FLANN_INDEX_LINEAR
FLANN_INDEX_KDTREE          
FLANN_INDEX_KMEANS 
FLANN_INDEX_COMPOSITE 
FLANN_INDEX_KDTREE_SINGLE
FLANN_INDEX_HIERARCHICAL
FLANN_INDEX_LSH     

FAST APPROXIMATE NEAREST NEIGHBORS WITH AUTOMATIC ALGORITHM CONFIGURATION,Mins,Lowe,2009页的第2节,其中提到:

在我们的实验中,取决于数据集和所需的精度,两种算法之一获得了最佳性能。这些算法使用层次结构 k-均值树多个随机kd-树

第3.3节回答了有关FLANN如何选择(从样本中)看起来最好的算法的问题。这是其中的一半:

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。