class2 Nearest Neighbors
最近邻搜索问题
Nearest Neighbor (NN) Problem
主要有两种NN问题
-
K-NN
在空间
M
中有一个点集S
,一个查询点q∈Mq\in Mq∈M,找到查询点在S中最近的k个点下图是3-NN
-
Fixed Radius-NN
在空间
M
中有一个点集S
,一个查询点q∈Mq\in Mq∈M,找到所有在S中和查询点距离小于r的点∣∣s−q∣∣<r||s-q||<r∣∣s−q∣∣<r
-
NN 问题的应用领域
- 表面法向量估计
- 噪点滤除
- 降采样
- 聚类
- 特征点检测和特征提取
- 深度学习
- …
-
为什么最近邻搜索对点云来说很困难?
- 对于图像,最近邻搜索只要简单的x+Δx,y+Δyx+\Delta x,y+\Delta yx+Δx,y+Δy
- 对于点云来说
- 点云不规则
- 比图像多一个维度
- 点云数据量巨大
-
Core Ideas Shared by BST, kd-tree, octree
-
空间分割
- 把空间分割成不同的区域
- 只在一些特定的区域内搜索,不是搜索所有的数据
-
提前停止搜索
-
1.Binary Search Tree
二叉搜索树
-
节点定义
struct Node() { Node* left; Node* right; int val;// 存储的属性 int key;// 节点的数值 Node