FPS(FarthestPointSampling)最远点采样法

1. 简介

在 PointNet++ 中用到了FPS(Farthest Point Sampling) 最远点采样法,该方法比随机采样的优势在于它可以尽可能的覆盖空间中的所有点。

2. 实现步骤

假设一共有n个点,整个点集为N = {f1, f2,…,fn}, 目标是选取n1个起始点做为下一步的中心点:

  • 随机选取一个点fi为起始点,并写入起始点集 B = {fi};
  • 选取剩余n-1个点计算和fi点的距离,选择最远点fj写入起始点集B={fi,fj};
  • 选取剩余n-2个点计算和点集B中每个点的距离, 将最短的那个距离作为该点到点集的距离, 这样得到n-2个到点集的距离,选取最远的那个点写入起始点B = {fi, fj ,fk},同时剩下n-3个点, 如果n1=3 则到此选择完毕;
  • 如果n1 > 3则重复上面步骤直到选取n1个起始点为止.

源码实现链接:https://github.com/charlesq34/pointnet2/blob/42926632a3c33461aebfbee2d829098b30a23aaa/tf_ops/sampling/tf_sampling_g.cu#L105

参考文章:
https://www.cnblogs.com/yibeimingyue/p/11919514.html
https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-565.pdf

你可能感兴趣的:(算法,激光雷达,PointNet)