3. 点云数据获取与预处理
激光雷达输出的原始点云并不是“拿来即用”的感知输入。它同时包含真实目标、地面、噪声、离群点、运动畸变以及多帧之间的位姿偏差。预处理的目标,是把原始点云整理成几何一致、密度可控、语义可分的中间表示,为后续聚类、检测、跟踪和建图提供稳定基础。本节围绕去噪、滤波、下采样、地面分割与配准五类操作,梳理其原理、顺序与工程取舍。
一、核心原理:预处理是一条“几何净化链”
原始点云可视为三维空间中的离散采样集合。每个点包含坐标,通常还带有强度、时间戳、环号等属性。预处理本质上是在做三件事:剔除不可信点、控制点密度与分布、建立帧间或帧内几何一致性。去噪解决“哪些点不该存在”,滤波解决“哪些区域或属性需要保留”,下采样解决“用多少点表达同一结构”,地面分割解决“哪些点属于可通行平面”,配准则解决“两片点云如何对齐到同一坐标系”。
这五类操作并非随意堆叠。错误顺序会引入不可逆损失:先下采样再地面分割,可能把地面点稀疏到无法拟合平面;先配准再去噪,噪声会污染对应点匹配;先滤波再去除运动畸变,可能把真实结构误删。因此,工程上通常遵循“去畸变 → 去噪 → 滤波 → 下采样 → 地面分割 → 配准”的粗粒度顺序,但具体项目需根据传感器类型和任务目标调整。
二、方法流程:五类操作的工程实现
去噪常用统计滤波和半径滤波。统计滤波计算每个点到其K个近邻的平均距离,假设该距离服从高斯分布,剔除均值加标准差倍数之外的点。半径滤波则要求每个点在给定半径内至少有指定数量的邻居,否则视为离群点。两者对稀疏噪声和孤立飞点效果明显,但参数过严会削掉远处目标或细杆状结构。
# PCL 统计滤波典型参数
setMeanK(50); // 近邻数
setStddevMulThresh(1.0); // 标准差倍数
# 半径滤波
setRadiusSearch(0.8); // 搜索半径(m)
setMinNeighborsInRadius(5);// 最少邻居数
滤波更偏向“按规则保留”。直通滤波按X/Y/Z范围裁剪ROI,适合去除车体自身反射和远处无效区域;强度滤波按反射率筛选,可抑制低反射噪声;条件滤波可组合高度、距离、环号等条件。滤波的关键是明确“感知关注区域”,避免把有用目标一并裁掉。
下采样用于控制点密度。体素栅格滤波将空间划分为固定边长体素,每个体素用质心或中心点代替,能显著减少点数并保持整体几何形状。均匀采样按固定间隔取点,适合对密度均匀性要求高的场景。下采样倍率需与目标尺寸匹配:行人、锥桶等小目标若体素过大,可能只剩几个点甚至消失。
地面分割是城市和道路场景的核心步骤。常用方法包括RANSAC平面拟合、栅格高度差法、渐进形态学滤波和地面概率模型。RANSAC通过随机采样拟合平面,鲁棒性强但计算量随迭代次数上升;栅格法将XY平面分块,用每块最低点或高度阈值判断地面,实时性更好。地面分割的输出通常是非地面点云,供聚类和检测使用。
点云配准解决两帧或多帧点云的对齐问题。粗配准常用FPFH特征加RANSAC,精配准常用ICP或其变体。ICP通过最近点对应迭代求解旋转平移,但依赖初始位姿且易陷入局部最优;NDT用概率分布表示点云,对初值容忍度更高。配准的评估指标包括均方误差、内点比例和变换矩阵合理性。
三、案例场景:城市道路一帧点云的预处理
假设一辆搭载64线激光雷达的车辆在城市道路采集一帧点云,原始点数约12万。处理流程如下:
- 按时间戳对每列点做运动补偿,消除车辆行驶带来的畸变;
- 统计滤波去除空中飞点和雨雾噪声,保留约11.5万点;
- 直通滤波裁剪X∈[-50,80]m、Y∈[-30,30]m、Z∈[-3,5]m,去除车顶和远处无效区域;
- 体素滤波设置0.2m体素,点数降至约3.5万;
- RANSAC拟合地面,距离阈值0.15m,迭代200次,分离出约1.8万地面点;
- 对非地面点做聚类,得到车辆、行人、路沿等目标候选;
- 若需多帧建图,用NDT将当前帧配准到局部地图,输出位姿和拼接点云。
场景结论:预处理不是“越干净越好”,而是在保留目标几何特征与降低计算量之间取平衡。体素过大、滤波过严、地面阈值过高,都会让后续检测直接失效。
四、误区与复盘:常见问题与排查清单
| 误区 | 现象 | 原因 | 调整方向 |
|---|---|---|---|
| 先下采样再地面分割 | 地面点过稀,平面拟合失败 | 体素过大破坏地面连续性 | 先分割地面,再对非地面点下采样 |
| 统计滤波参数过严 | 远处行人、细杆消失 | 稀疏区域被误判为离群点 | 增大MeanK或放宽标准差倍数 |
| 直通滤波范围过小 | 目标被截断,跟踪丢失 | ROI未覆盖关注区域 | 按任务视距和FOV重新标定 |
| ICP初值不合理 | 配准发散或错位 | 两帧位姿差过大 | 先用NDT/FPFH粗配准,再ICP精配准 |
| 地面阈值过大 | 低矮目标被误分为地面 | 阈值未考虑路沿和坡度 | 结合坡度模型和局部高度差 |
复盘要点:预处理参数必须与传感器安装高度、线束密度、目标尺寸和场景坡度绑定。同一套参数换到另一台车或另一条道路,效果可能完全不同。建议每次调整只改一个参数,并记录点数变化、地面点比例、目标保留率和配准误差,形成可追溯的调参日志。
掌握去噪、滤波、下采样、地面分割与配准的基本原理和顺序约束后,后续的聚类、特征提取、检测与跟踪才有稳定的输入基础。预处理的每一步都应在“保留信息”和“降低复杂度”之间做出明确取舍,而不是机械地套用默认参数。