2

我正在使用 vlfeat 的 kdtree,它实现了 FLANN 的 kd-tree,据说它可以处理高维数据。但是,现在我有一个从 128x15000 数据集构建的 kdtree,并且对任何内容的 kd 树查询都已减慢到 8 秒。这是kd-trees的极限吗?FLANN 也应该是一个更快优化的 kdtree...

我现在还有什么其他选择?

4

4 回答 4

1

尝试使用 David M. Mount 和 Sunil Arya ANN(近似最近邻搜索)

http://www.cs.umd.edu/~mount/ANN/

于 2012-08-24T14:24:13.760 回答
0

真的有那么慢吗?您使用什么参数/设置?

除此之外,我可以推荐FLANN

于 2013-02-23T16:17:04.050 回答
0

VLFeat 实现了 FLANN 建议的算法(多个随机树和分层 k 均值树)。也许对于您的情况,算法选择或参数集(或两者)不正确。尝试原始的 FLANN 或 OpenCV 的 FLANN 实现(好吧,或者基于 VLFeat 实现自己的)以获得正确的算法和参数。

于 2013-05-30T06:15:12.047 回答
0

我的猜测是您一次查询一个数据点。也许您想一次将所有查询作为矩阵发送,例如文档中的这个函数调用:

[index, distance] = vl_kdtreequery(kdtree, X, Q, 'NumNeighbors', 10, 'MaxComparisons', 15);

请注意,它将数量限制MaxComparisons为 15,这是实现快速性能的关键部分。

于 2015-12-04T20:03:55.493 回答