点云采样

原文链接

点云采样分类

点云采样的方法有很多种,常见的有均匀采样,几何采样,随机采样,格点采样等。下面介绍一些常见的采样方法。


格点采样

格点采样,就是把三维空间用格点离散化,然后在每个格点里采样一个点。具体方法如下:

1. 创建格点:如中间图所示,计算点云的包围盒,然后把包围盒离散成小格子。格子的长宽高可以用户设定,也可以通过设定包围盒三个方向的格点数来求得。

2. 每个小格子包含了若干个点,取离格子中心点最近的点为采样点,如右图所示。

grid_sample_step

格点采样的特点:

  • 效率非常高
  • 采样点分布比较均匀,但是均匀性没有均价采样高
  • 可以通过格点的尺寸控制点间距
  • 不能精确控制采样点个数

均匀采样

均匀采样的方法有很多,并且有一定的方法来评估采样的均匀性。这里介绍一种简单的均匀采样方法,最远点采样。具体方法如下:

输入点云记为C,采样点集记为S,S初始化为空集。

1. 随机采样一个种子点Seed,放入S。如图1所示。

2. 每次采样一个点,放入S。采样的方法是,在集合C-S里,找一点距离集合S距离最远的点。其中点到集合的距离为,这点到集合里所有点距最小的距离。如图2-6所示,采样点S的数量分别为2,4,10,20,100.

uniform_sample_step

最远点采样的特点:

  • 采样点分布均匀
  • 算法时间复杂度有些高,因为每次采样一个点,都要计算集合到集合之间的距离。可以采用分治的方法来提高效率。
  • 采样点一般先分布在边界附近,这个性质在有些地方是有用的,比如图元检测里面的点采样。

几何采样

几何采样,在点云曲率越大的地方,采样点个数越多。下面介绍一种简单的几何采样方法,具体方法如下:

输入是一个点云,目标采样数S,采样均匀性U

 

1. 点云曲率计算比较耗时,这里我们采用了一个简单方法,来近似达到曲率的效果:给每个点计算K邻域,然后计算点到邻域点的法线夹角值。曲率越大的地方,这个夹角值就越大。

2. 设置一个角度阈值,比如5度。点的邻域夹角值大于这个阈值的点,被放入几何特征区域G。这样点云就分成了两部分,几何特征区域G和其它区域。

3. 均匀采样几何特征区域G和其它区域,采样数分别为S * (1 - U),S * U。

下图是一个均匀采样和几何采样的比较图,这个采样方法的特点:

  • 几何特征越明显的区域,采样点个数分布越多
  • 计算效率高
  • 采样点局部分布是均匀的
  • 稳定性高:通过几何特征区域的划分,使得采样结果抗噪性更强

pointcloudsampling

有兴趣的读者,欢迎参考视频版本

posted @ 2019-10-16 14:50  NT4点4  阅读(2419)  评论(0编辑  收藏  举报