1. 点云深度学习中的新下采样方法 (CSDN)

现在比较常见的下采样算法有:farthest point sampling(PointNet++,ShellNet)、random sampling(RandLA-Net)、grid sampling(KPConv,Grid-GCN)等。它们各有特点:

(1) Adaptive Hierarchical Down-Sampling (CVPR2020) (arxiv)

  • a. Critical Points Layer (CPL)
  • b. Weighted Critical Points Layer (WCPL)

(2) Adaptive Sampling (CVPR2020) (arxiv)

首先利用FPS进行采样,然后根据利用KNN获取邻域点,之后对k个邻域点进行自适应加权(attention的思想,权重的计算是直接对每个点应用MLP),求取加权平均值即为新的关键点。这种方式提升了对噪声点的鲁棒性,同时将邻域的几何空间特征引入到了采样过程中。

2. LiDAR 360 点云重采样方法 (LiDAR 360)

  • 最小点间距(默认,默认为“0.0000”):用户需要设置两点之间的最小点间距,这样采样后的点云任意两个点之间空间三维的最小距离不会小于该值。设置的值越大,保留的点越少。
  • 采样率(默认为“99.99%”):需要用户设置保留点数的百分比,在此模式下,LiDAR360会随机的保留指定的点数。保留的点数 = 总点数 * 采样率。该参数的取值范围为0 - 100%,设置的值越小,保留的点越少。
  • 八叉树(Octree)(默认为21):该模式允许用户选择一种“八叉树”的细分级别,在这个级别上,对于每个八叉树的细胞中,将会保留最接近于八叉树细胞中心的位置点。范围:1~21。设置的值越小,保留的点越少。

3. MATLAB 点云降采样方法 (pcdownsample)

  • ptCloudOut = pcdownsample(ptCloudIn,'random',percentage) random 返回具有随机采样且不替换的降采样点云。百分比输入指定要返回到输出的输入部分。 (可以动态调整采样率,输出特定点数N的采样数据)
  • ptCloudOut = pcdownsample(ptCloudIn,'gridAverage',gridStep) gridAverage 使用网格过滤器返回下采样点云。 gridStep 输入指定一个3D box的大小。(迭代采样间隔,可以获得>=最小采样点数N的采样结果)
  • ptCloudOut = pcdownsample(ptCloudIn,'nonuniformGridSample',maxNumPoints) nonuniformGridSample 使用非均匀盒网格滤波器返回下采样点云。必须在网格框中设置最大点数,maxNumPoints最小设置为6. (参数maxNumPoints从最小值6开始累加,找到输出的采样点云数为目标个数N时停止迭代,导出结果)

4. 通过其他聚类算法实现点云降采样 (scikit-learn)

julei.jpg

5. DBSCAN algorithm identifies the dense region

  • DBSCAN algorithm identifies the dense region by grouping together data points that are closed to each other based on distance measurement.
  • DBSCAN Clustering Algorithm in Machine Learning (kdnuggets)
  • Clustering with DBSCAN, Clearly Explained!!! (youtube)
  • DBSCAN Algorithm Clustering in Python (section)

6. Random Sample Consensus (RANSAC) algorithm

  • Parallel-RANSAC (github)
  • Parallel RANSAC: Speeding up plane extraction in RGBD image sequences using GPU

7. GeometryHub

  • 点云采样的方法有很多种,常见的有均匀采样,几何采样,随机采样,格点采样等。