nearest-neighbor - 最近邻搜索带有方向向量警告的点

标签 nearest-neighbor kdtree

我有一组 3D 点,每个点都与一个方向相关联(例如单位向量)。给定另一个点 + 方向,我想找出集合中最近的点(使用标准 2 范数),该点也满足方向向量的特定条件(例如,两个方向向量之间的角度在特定角度量内)。到目前为止,我对 3D 点进行了基于 KD 树的范围搜索,然后检查这些点中的任何一个是否符合角度约束,但意识到这是一个高度未优化的 hack。想知道是否有明显更好的方法来做到这一点。

非常感谢。

最佳答案

对我来说,您当前公式中的主要问题是角度比较是核化的(即需要向量之间的比较)。如果将每个角度的方向扩展为单独的 2D 向量(cos theta,sin theta),那么您应该能够在此空间中以有限的半径进行另一个最近邻搜索(KDTree 应该没问题)并取交集两个结果集。

关于nearest-neighbor - 最近邻搜索带有方向向量警告的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21692843/

相关文章:

matlab - 找到两组矩阵之间最近的点对

algorithm - 百万个 3D 点 : How to find the 10 of them closest to a given point?

java - 在 K-Nearest 算法中获取最短的 'K' 距离 (Java)

python-3.x - sklearn 中的 K 最近邻 - ValueError : query data dimension must match training data dimension

python - 最近邻的距离函数的输入维度

c# - 四叉树和Kd树

c++ - kd-tree 构建非常慢

algorithm - 使用空间索引查找彼此范围内的点

mysql - 索引k-d树?

algorithm - K-D树与Brute-force搜索时间对比