Jiahonzheng's Blog

点云滤波

字数统计: 1.2k阅读时长: 4 min
2019/11/28 Share

含义

点云滤波,顾名思义,就是过滤点云数据中的噪声。由于设备精度操作者经验环境因素电磁波的衍射特性等影响,原始采集的点云数据往往包含大量散列点、孤立点。

滤波处理是点云处理流程的第一步,其滤波效果直接关系到后续的配准特征提取曲面重建可视化等流程的效果。

尽管在信号处理领域中也存在滤波处理,但点云数据的滤波处理与信号处理中的滤波处理不一样,主要有以下方面原因:

  • 点云不是函数,对于复杂三维外形其$x$、$y$、$z$之间并非以某种规律或某种数值关系定义,因此点云无法建立坐标之间的关系。
  • 点云在空间中是离散的,不像图像信号有明显的定义域,因此无法以某种模板的形式对其进行滤波。
  • 点云在空间中分布广泛,建立点与点之间的关系较为困难。在图像处理中,建立点与点之间的关系是有迹可循的。
  • 点云滤波依赖于集合信息而非数值信息

以下是几种需要进行点云滤波处理的情况:

  • 点云数据密度不规则,需要平滑。
  • 因为遮挡等问题造成的离群点(Outliers),需要去除。
  • 点云数据量大,需要下采样
  • 噪声数据需要去除。

滤波方法

PCL常规滤波手段均进行了很好的封装,对点云的滤波通过调用各个滤波器对象来完成。主要的滤波器有直通滤波器体素格滤波器统计滤波器半径滤波器等。

不同特性的滤波器构成了较为完整的点云预处理族,并组合使用完成任务。实际上,滤波手段的选择和采集方式是密不可分的

直通滤波

如果使用线结构光扫描的方式采集点云,必然物体沿$z$向分布较广,但$x$、$y$向的分布处于有限范围内。此时可使用直通滤波器,确定点云在$x$或$y$方向上的范围,可较快剪除离群点,达到第一步粗处理的目的。

PCL示例代码:github.com/Ewenwan/MVision

体素格滤波

如果使用高分辨率相机等设备对点云进行采集,往往点云会较为密集,过多的点云数量会对后续分割工作带来困难。体素格滤波器可以达到向下采样同时不破坏点云本身几何结构的功能。值得注意的是:点云几何结构不仅是宏观的几何外形,也包括其微观的排列方式,比如横向相似的尺寸,纵向相同的距离。随机下采样虽然效率比体素滤波器高,但会破坏点云微观结构。

体素格滤波的实质:在体素内仅使用重心表示该体素内的所有点

PCL示例代码:github.com/Ewenwan/MVision

统计滤波

在点云观测过程中,离群点往往由测量噪声引入,其特征是在空间中分布稀疏。在点云数据中,每一个点都表达一定的信息,某个区域点越密集其蕴含信息可能越大。噪声信息属于无用信息,信息量较小,因此离群点表达的信息可以忽略不计。从离群点的特征出发,我们可以根据某处点云的密度小于某个密度的事实,判断该点云无效,即剔除了离群点

统计滤波器是根据上述的思想实现滤波处理的,其使用每个点到其最近的$k$个点的平均距离$\hat{d_i}$作为该点点云密度的估计。对于点云中的所有点来说,每个点的$\hat{d_i}$应构成高斯分布。因此,我们剔除若干标准差之外的点,实现离群点的剔除。

PCL示例代码:github.com/Ewenwan/MVision

半径滤波

半径滤波器与统计滤波器相比更加简单粗暴。以某点为中心作一个球,计算落在该球体内点的数量,当数量大于给定值时,则保留该点;数量小于给定值则剔除该点。此算法运行速度快,依序迭代留下的点一定是最密集的,但是球体半径球内点的判断阈值都需要人工指定。

PCL示例代码:github.com/Ewenwan/MVision

参考资料

CATALOG
  1. 1. 含义
  2. 2. 滤波方法
    1. 2.1. 直通滤波
    2. 2.2. 体素格滤波
    3. 2.3. 统计滤波
    4. 2.4. 半径滤波
  3. 3. 参考资料