FLANNselect如何使用什么算法和参数?
How does FLANN select what algorithm and parameters to use?
FLANN(Fast Library for Approximate Nearest Neighbors)是一个用于在高维空间中执行快速近似最近邻搜索的库。它包含一组我们发现最适合最近邻搜索的算法,以及一个根据数据集自动选择最佳算法和最佳参数的系统。 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
第 2 节,最后一段,来自 FAST APPROXIMATE NEAREST NEIGHBORS
使用自动算法配置,Mins,Lowe,2009,它提到:
In our experiments, one of two algorithms obtained the best performance, depending on the dataset and desired precision. These algorithms used either the hierarchical
k-means tree or multiple randomized kd-trees.
第 3.3 节回答了您的问题,即 FLANN 如何选择它(从示例中)看起来最好的算法。这是一半:
FLANN(Fast Library for Approximate Nearest Neighbors)是一个用于在高维空间中执行快速近似最近邻搜索的库。它包含一组我们发现最适合最近邻搜索的算法,以及一个根据数据集自动选择最佳算法和最佳参数的系统。 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
第 2 节,最后一段,来自 FAST APPROXIMATE NEAREST NEIGHBORS 使用自动算法配置,Mins,Lowe,2009,它提到:
In our experiments, one of two algorithms obtained the best performance, depending on the dataset and desired precision. These algorithms used either the hierarchical k-means tree or multiple randomized kd-trees.
第 3.3 节回答了您的问题,即 FLANN 如何选择它(从示例中)看起来最好的算法。这是一半: