2

高次元データを処理すると思われる FLANN の kd-tree を実装する vlfeat の kdtree を使用しています。ただし、現在、128x15000 のデータセットから構築された kdtree があり、kd ツリーのクエリは、1 回のクエリで 8 秒まで遅くなりました。これはkd-treesの限界ですか?FLANNは、より高速に最適化されたkdtreeでもあるはずでした...

他にどのようなオプションがありますか?

4

4 に答える 4

1

David M. Mount と Sunil Arya ANN (Approximate Nearest Neighbor Searching) を使用してみてください

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-mean ツリー) の両方を実装しています。おそらく、あなたの場合、アルゴリズムの選択またはパラメーターセット (またはその両方) が正しくありません。元の FLANN または OpenCV の FLANN 実装 (まあ、または VLFeat に基づいて独自に実装) を試して、適切なアルゴリズムとパラメーターを取得してください。

于 2013-05-30T06:15:12.047 に答える
0

私の推測では、一度に 1 つのデータ ポイントをクエリしていたと思われます。ドキュメントからのこの関数呼び出しのように、すべてのクエリを一度にマトリックスとして送信したい場合があります。

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

の数が 15 に制限されていることに注意してくださいMaxComparisons。これは、高速なパフォーマンスを達成するための重要な部分です。

于 2015-12-04T20:03:55.493 に答える