问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

三维点云处理中的滤波器技术详解

创作时间:
作者:
@小白创作中心

三维点云处理中的滤波器技术详解

引用
CSDN
1.
https://blog.csdn.net/weixin_49401384/article/details/137981135

前言

点云中往往会存在很多噪声,也就是常说的离群点,这些噪声可能会对有效数据的提取分析造成影响。因此,在数据分析前通常会考虑采用滤波器(Filter)等手段进行一些预处理的操作。过滤后的点云有助于对其进行更好的数据分析,如平面估计、分类、分割提取等。

常见的滤波算法

  1. 噪声去除
  • Radius Outlier Removal:基于半径的异常值去除
  • Statistical Outlier Removal:统计异常值去除
  1. 下采样
  • Voxel Grid Downsampling:体素网格下采样
  • Farthest Point Sampling:最远点采样
  • Normal Space Sampling:法线空间采样
  1. 上采样/平滑/噪声去除
  • Bilateral Filter:双边滤波

1. Radius Outlier Removal (ROR) 基于半径的异常值去除

基本思想:噪声点一般是离群孤立的,而正常数据点其周围会存在足够多的近邻点。

方法:检查数据点在其指定半径范围内的邻居数量,如果邻居数量少于某个阈值,则视为异常值并去除。

2. Statistical Outlier Removal (SOR) 统计异常值滤除

基本思想:基于点云数据的统计分布(如均值和标准差)来识别并移除异常值。

方法:根据每一点与邻近点距离的分布信息,计算这些点的高斯分布参数,然后使用 3σ 准则进行过滤。

3. Voxel Grid Downsampling (VGD) 体素网格下采样

基本思想:将三维点云空间划分为一系列的体素(Voxel),然后每个体素内选取少量特征点来表征该体素信息,最终生成降采样后的点云数据。

常见的选取方法如:中心点(Centroid)、随机点(Random select)。

  • VGD - Exact:通过排序实现点云降采样。
  • VGD - Approximated:使用 Hash Table 来加速降采样过程。

4. Farthest Point Sampling (FPS) 最远点采样

基本思想:从数据集中选择最远的点作为采样点,确保采样点分布均匀。

方法:从数据中随机选取一个点作为初始点,然后不断迭代地选择距离已有采样点集合的最远点。

5. Normal Space Sampling (NSS) 法向空间采样

基本思想:在法向量空间内均匀随机抽样,以保持地物特征。

方法:先在法向量空间构建一系列的容器,然后依据平面法向量将所有点放到对应容器中,接着从所有容器中均匀地选点。

6. Learning to Sample

通过几何意义上的限制,使得降采样后的点具有和降采样之前相似的几何状态。核心思路是基于语义检测任务,要求降采样之后的点能够达到语义分析的效果。

7. Bilateral Filter (BF) 双边滤波

基本思想:在滤波过程中同时考虑空间邻近度和像素值相似性,以达到保边去噪的效果。

应用场景:图像处理、点云上采样等。

Voxel Grid Downsampling 练习

1. 代码实现

体素网格降采样算法的基本流程包括:

  1. 根据输入的数据和体素尺寸,计算不同维度上可分割的体素数量
  2. 将数据映射到对应的体素单元得到索引
  3. 根据点云对应的体素索引进行排序
  4. 从每个体素格子中选取特征点(中心点、随机点)来代表该体素单元
  5. 降采样后的点云输出

2. 可视化效果

使用 ModelNet40 数据集进行点云降采样测试,降采样网格大小为0.1m,体素网格点云分别为中心点和随机点方式表示,测试效果如下:

上图从左到右分别是:原始点云图、VGD降采样点云(中心点法)、VGD降采样点云(随机点法)。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号