点云滤波概述
点云滤波概述
点云噪声是指在获取点云数据时,由于设备精度、操作经验或环境因素等影响,导致获取到的数据存在误差,在实际应用中,这些噪声点会对数据处理产生不良影响。
除了噪声点以外,由于外界干扰、障碍物等因素,还可能出现一些距离主体较远的离散点,这些点被称为离群点。
因此,需要对点云进行一个滤波处理,来去除这些噪声点和离群点,获得一个精度较高的点云数据,同时,滤波还可以实现平滑处理,下采样、孔洞修复等。
在点云处理流程中,滤波处理作为点云处理第一步,对后续数据处理有较大影响。只有经过滤波处理,才能更好地进行后续的:配准、特征提取、曲面重建、可视化等。
PCL中的滤波模块:PCL(点云库)中提供了丰富的滤波算法,包括但不限于:双边滤波、高斯滤波、条件滤波、直通滤波、随机采样一致性滤波、半径滤波、体素网格滤波,统计离群点滤波等
现在做一个统计整理一下这些传统的点云滤波算法
| 算法名称 | 核心原理 | 主要用途 | 关键参数 | 优缺点 |
|---|---|---|---|---|
| 直通滤波(PassThrough) | 沿指定坐标轴(X/Y/Z)保留 / 删除指定范围的点 | 快速裁剪 ROI、去除远离主体的离群点 | setFilterFieldName()、setFilterLimits() |
优点:简单高效;缺点:仅单轴 / 多轴范围过滤,灵活性有限 |
| 条件滤波(ConditionalRemoval) | 自定义多条件(坐标、强度、颜色、法向量等)筛选点 | 高度定制化过滤(如保留地面以上点、过滤特定强度值) | 条件表达式(如 x>0.5 && z<1.0)、逻辑运算符 |
优点:灵活强大; 缺点:需手动设计条件,复杂度高 |
| 体素滤波(VoxelGrid) | 空间划分为体素,每个体素用重心点替代 | 数据降采样、加速后续处理、保持宏观形状 | setLeafSize()(体素边长) |
优点:降采样效果好、速度快; 缺点:会丢失局部细节 |
| 统计滤波(StatisticalOutlierRemoval) | 计算点与 K 近邻平均距离,剔除距离超全局均值 ±N 倍标准差的点 | 去除稀疏离群噪声(如测量误差产生的孤立点) | setMeanK()(近邻数)、setStddevMulThresh()(标准差倍数) |
优点:稳健去噪; 缺点:对密度不均点云敏感、计算量较大 |
| 半径滤波(RadiusOutlierRemoval) | 以点为中心画球,球内邻居数 < 阈值则删除该点 | 去除孤立噪点、保留密集区域 | setRadiusSearch()(搜索半径)、setMinNeighborsInRadius()(最小邻居数) |
优点:简单直观、速度快; 缺点:半径 / 阈值需经验调参 |
| 高斯滤波(GaussianFilter) | 邻域点按高斯分布加权平均,平滑点云 | 去除高频噪声、平滑表面 | 高斯核标准差 sigma、搜索半径 |
优点:平滑效果好; 缺点:易模糊边缘、丢失细节 |
| 双边滤波(BilateralFilter) | 同时考虑空间距离与属性(强度)差异加权平均,保边去噪 | 平滑噪声同时保留边缘 / 细节(如工业零件、医疗扫描) | 空间标准差 sigma_s、属性标准差 sigma_i、搜索半径 |
优点:保边 + 去噪; 缺点:仅处理强度字段、计算量较大 |
| 随机采样一致性滤波(RANSAC) | 迭代随机采样拟合几何模型(平面 / 线 / 球),保留内点、剔除外点 | 拟合基础几何、分离地面 / 墙面、去除模型外噪声 | 模型类型、inlierThreshold(内点距离阈值)、最大迭代次数 |
优点:抗外点能力极强; 缺点:迭代耗时、需预设模型 |
后面会依次介绍一下对应各种算法的原理以及对应的实现代码,感兴趣的朋友可以关注一下。
浙公网安备 33010602011771号