问题标签 [approximate-nn-searching]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2463 浏览

computer-vision - Approximate Nearest Neighbor 是计算机视觉中最快的特征匹配吗?

使用特征描述符 [如 SIFT、SURF] 时,Approximate Nearest Neighbor 是在图像之间进行匹配的最快方法吗?

0 投票
5 回答
3204 浏览

algorithm - 如何在 500,000 个点的 100 维空间中找到最近的 2 个点?

我有一个在 100 维空间中有 500,000 个点的数据库,我想找到最接近的 2 个点。我该怎么做?

更新:空间是欧几里得,对不起。并感谢所有的答案。顺便说一句,这不是家庭作业。

0 投票
1 回答
501 浏览

ruby - Ruby 中的近似字符串匹配

我正在我的 Rails 应用程序中实现用户搜索功能。如果用户输入拼写错误,我希望应用程序建议正确的拼写。ruby中有没有这个插件。这可以在sql中完成吗?

问候, 潘卡伊

0 投票
1 回答
400 浏览

c++ - 使用“近似”STL 映射

我想创建一个 STL 映射来查找一个项目是否足够接近 3 维空间中的另一个项目。到目前为止,我的“小于函子”运行良好,粘贴到以下链接。

现在这个问题还不是“最近邻”问题。相反,这是一个“在一定距离内是否有邻居”的问题。

我的示例仅显示一个维度。为了清楚起见,我跳过了 Y/Z 尺寸。

到目前为止我的尝试

在极少数情况下,我的意思是——非常罕见——当位置重叠时,地图找不到匹配的条目。

仍然使用 STL 容器,我可以做些什么来更好地实现这一点?

0 投票
1 回答
868 浏览

c++ - 将 FLANN 与单独的 *double 数组一起使用

我正在编写一段代码,该代码执行与 128 维描述符的特征匹配。

图像的所有描述符都存储在 std::vector 中,其中 InterestPoint 包含一个成员 *double desc,它是描述符向量。

现在我想在 Flann 矩阵中使用这个结构来稍后进行近似最近邻特征匹配,我将其初始化为:

我现在如何用来自 ip1 向量的每个元素的 *double desc 成员填充这个 flann::Matrix ?这是我尝试过的:

编译但没有成功。flann 提供了一种访问 flann::Matrix 每一行的方法,使用运算符 [],因此 Matrix 类是行主要的。

提前致谢,

0 投票
1 回答
309 浏览

java - 如何在前缀树中查找最相似的位向量以进行 NN 搜索?

这个问题解释了我要解决的问题: Finding the single nearest neighbor using a Prefix tree in O(1)?

我的问题是关于该问题页面中提出的解决方案部分。在那一节中提到,我们通过从节点开始遍历树来从每个前缀树中找到最近的邻居。查找前缀树中是否存在键很简单,但得到最相似的键我根本不明白。如何做到这一点?

我希望有人可以向我解释这一点,如果不是以图形方式(这是首选),那么至少有一些细节。

编辑:

这是论文的代码。它是用 python 编写的,不幸的是我以前从未使用过 python。如果有人熟悉 python 并且可以查找代码以查看他们如何使用前缀树找到最近的邻居。https://github.com/kykamath/streaming_lsh/blob/master/streaming_lsh/nearest_neighbor_lsh.py

https://github.com/kykamath/streaming_lsh/blob/master/streaming_lsh/classes.py

0 投票
1 回答
590 浏览

algorithm - kd-tree 在内部节点中存储点?如果是,如何搜索NN?

维基百科中关于 kd-trees 在内部节点中存储点的链接。我必须执行 NN 查询,我认为(这里是新手),我理解这个概念。

但是,据说我从 Computational Geometry Algorithms and Applications(De Berg、Cheong、Van Kreveld 和 Overmars),第 5.2 节,第 99 页研究 Kd 树。我可以看到的主要区别是 Overmars 将拆分数据放在内部节点和叶子中数据集的实际点。例如,在 2D 中,内部节点将保存分割线。

另一方面,维基百科似乎将点存储在内部节点和叶子中(而 Overmars 仅在叶子上)。

在这种情况下,我们如何执行最近邻搜索?此外,为什么会有这种差异?

0 投票
1 回答
493 浏览

algorithm - 修改此算法用于最近邻搜索 (NNS) 以执行 Approximate-NNS

从课程的幻灯片中,我发现了这些:

给定 R^D 中的集合 P 和查询点 q,它的 NN 是 P 中的点 p_0,其中:

类似地,在近似因子 1 > ε > 0 的情况下,ε-NN 为 p_0,因此:

(我想知道为什么 ε 不能达到 1)。

我们构建了一个 KD-tree,然后我们使用这个算法搜索 NN: 在此处输入图像描述 就我的想法和测试而言,这是正确的。

我应该如何修改上述算法,以执行近似最近邻搜索 (ANNS)?

我的想法是将当前最佳值(在叶子中的更新部分)乘以 ε,并保持算法的其余部分不变。但是,我不确定这是否正确。有人可以解释吗?

PS - 我了解搜索 NN 的工作原理。

请注意,我在计算机科学网站上过,但我什么也没得到!

0 投票
1 回答
863 浏览

algorithm - 两组高维点:在另一组中找到最近邻

我有 2 组:A 和 B。两组都包含相同数量的高维点。如何为 Set B 中的每个点找到 Set A 中的最近邻居?

我考虑过使用 Voronoi 图,但似乎(根据维基百科)它不适合高于 2 的尺寸。

有人可以向我建议一种方法吗?

0 投票
1 回答
370 浏览

search - Adding an element to a VP tree (VP tree maintenance)

I have read few sources on VP-tree for similarity knn. No one wrote about adding an element to exists tree, which is required for maintenance. Explanation of adding element will be just great.