When dealing with point clouds distributed on manifold surfaces in 3D space, or when the query point is far from the data, the efficiency of traditional nearest neighbor search algorithms (e.g., KD Tree and R Tree) may degrade. In extreme cases, the complexity of the query can approach O(n). In this paper, we propose a novel dynamic programming technique that precomputes a Directed Acyclic Graph (DAG) to enable more efficient nearest neighbor queries for 2D manifold data. By leveraging this structure, only a small number of distance comparisons between point pairs are required to accurately identify the nearest neighbor. Extensive experimental results demonstrate that our method achieves query speeds that are 1x-10x faster than traditional methods. Moreover, our algorithm exhibits significant potential. It achieves query efficiency comparable to KD-trees on uniformly distributed point clouds. Additionally, our algorithm supports nearest neighbor queries among the first k points. Coupled with our algorithm, a farthest point sampling algorithm with lower complexity can also be implemented. Furthermore, our method has the potential to support nearest neighbor queries with different types of primitives and distance metrics. We believe that the method proposed in this paper represents the most concise and straightforward exact nearest neighbor search algorithm currently available, and it will contribute significantly to advancements in the field.
翻译:当处理三维空间中分布在流形表面上的点云,或查询点远离数据时,传统最近邻搜索算法(如KD Tree和R Tree)的效率可能会下降。在极端情况下,查询复杂度可能接近O(n)。本文提出一种新颖的动态规划技术,通过预计算有向无环图(DAG)来实现对二维流形数据更高效的最近邻查询。利用该结构,仅需少量点对间的距离比较即可准确识别最近邻。大量实验结果表明,本方法的查询速度比传统方法快1-10倍。此外,本算法展现出显著潜力:在均匀分布的点云上达到与KD树相当的查询效率;支持前k个点的最近邻查询;结合本算法还可实现复杂度更低的远点采样算法。本方法未来有望支持不同图元类型和距离度量的最近邻查询。我们认为,本文提出的方法是当前最简洁、最直观的精确最近邻搜索算法,将为该领域的进步做出重要贡献。