最远点采样

FPS算法的逻辑为:
  1. 以点云第一个点,作为查询点,从剩余点中,取一个距离最远的点;
  2. 继续以取出来的点,作为查询点,从剩余点中,取距离最远的点。此时,由于已经取出来的点的个数大于1,需要考虑已经选出来的点集中的每个点。计算逻辑如下:
    1. 对于任意一个剩余点,计算该点到已经选中的点集中所有点的距离;
    2. 取最小值,作为该点到点集的距离;
    3. 计算出每个剩余点到点集的距离后,取距离最大的那个点。
  3. 重复第2步,一直采样到目标数量N为止。

从FPS算法逻辑上看,第1步可以认为是只有一个集合的点,所以可以统一按照第2步点逻辑来实现。在PointNet++源码中,有基于cuda的并行计算实现,实现细节可参考源码:

原文地址:https://www.cnblogs.com/yibeimingyue/p/11919514.html