2. 点云数据基础

点云是三维空间中离散采样点的集合,每个点通常携带三维坐标,并可选地附带颜色、强度、法向量、时间戳等属性。它是激光雷达、深度相机、结构光扫描仪等设备对真实世界表面进行采样的直接结果,也是点云配准与三维地图构建的原始输入。理解点云的数据组织方式、坐标表达、噪声来源与预处理流程,是后续实现高精度配准与地图融合的前提。

一、点云的定义与数据组织

从数学角度看,点云可表示为集合 P = {p₁, p₂, …, pₙ},其中每个点 pᵢ = (x, y, z) 表示在某一坐标系下的三维位置。若包含附加属性,则可扩展为 pᵢ = (x, y, z, r, g, b, intensity, t)。点云与图像的最大区别在于:图像是规则栅格上的像素阵列,而点云是无序、稀疏、密度不均的散点集合,因此其存储、索引与邻域查询方式都不同于二维图像。

常见的点云组织方式包括无序点列表、有序点云(如深度图反投影得到的行列结构)以及体素化、八叉树、KD 树等空间索引结构。空间索引直接影响最近邻搜索、法向量估计和配准迭代的效率,是工程实现中不可忽视的一环。

二、点云的获取方式

点云获取方式主要分为主动式与被动式两类。主动式设备主动发射能量并接收回波,典型代表是激光雷达(LiDAR)和结构光/ToF 深度相机;被动式设备则依赖环境光,通过多视图立体视觉(MVS)或双目立体匹配恢复深度。不同获取方式在精度、密度、视场角、成本与适用场景上差异明显。

获取方式 典型设备 精度与密度 适用场景
机械/固态激光雷达 Velodyne、禾赛、Livox 厘米级,密度中等 自动驾驶、测绘、机器人导航
结构光/ToF 相机 Kinect、RealSense、Azure Kinect 毫米级,近距离密度高 室内重建、手势交互、抓取
多视图立体视觉 单目/双目相机 + SfM 依赖纹理,密度可调 文化遗产、大场景低成本重建
激光扫描仪 Faro、Leica 地面站 毫米级,密度极高 建筑测绘、工业检测

三、常见格式与坐标系

点云数据在存储与交换中形成了多种格式。PCD(Point Cloud Data)是 PCL 生态中最常用的格式,支持 ASCII 与二进制,可携带丰富字段;PLY 兼顾点云与网格,兼容性好;LAS/LAZ 是测绘领域标准,包含分类与回波信息;此外还有 OBJ、XYZ、BIN 等。选择格式时需权衡字段完整性、读写效率与工具链兼容性。

# PCD 文件头部示例
VERSION .7
FIELDS x y z intensity
SIZE 4 4 4 4
TYPE F F F F
COUNT 1 1 1 1
WIDTH 213
HEIGHT 1
VIEWPOINT 0 0 0 1 0 0 0
POINTS 213
DATA ascii
0.93773 0.33763 0 10.05
0.90805 0.35641 0 10.05
...

坐标系是点云处理的“语言”。常见坐标系包括传感器坐标系、载体坐标系、世界坐标系与地图坐标系。传感器坐标系以设备光心或激光原点为原点;世界坐标系通常由标定或 SLAM 前端确定;地图坐标系则是多帧融合后的全局参考。配准的本质,就是求解不同坐标系之间的刚体变换 T = [R | t],把源点云变换到目标点云所在坐标系。

四、噪声、离群点与预处理流程

真实点云几乎不可能“干净”。噪声主要来自传感器测距误差、表面材质反射、运动畸变、多路径效应以及标定误差;离群点则表现为远离主体结构的稀疏点、飞点或孤立簇。若直接用于配准,噪声会拉偏对应点匹配,离群点会破坏法向量估计与 ICP 收敛。

常见误区:很多初学者跳过预处理直接做 ICP,结果配准失败却归因于算法。实际上,未去噪、未降采样、未统一坐标系的点云,会让最近邻匹配大量落在错误对应上,迭代容易陷入局部最优。

一个稳健的预处理流程通常包括:坐标统一与单位检查、体素降采样、统计/半径离群点去除、直通或条件滤波、地面分割(视场景而定)、法向量估计与特征计算。每一步都服务于后续配准与建图,而不是孤立操作。

点云获取 → 坐标表达 → 预处理 → 配准输入 获取方式 LiDAR / ToF 结构光 / MVS 地面激光扫描 数据格式 PCD / PLY LAS / LAZ XYZ / BIN 坐标系 传感器坐标系 世界坐标系 地图坐标系 噪声与离群点 测距误差 / 运动畸变 多路径 / 标定误差 飞点 / 孤立簇 数据预处理流程 坐标统一 单位 / 外参 体素降采样 均匀密度 离群点去除 统计 / 半径 条件滤波 直通 / 地面 法向量与特征 FPFH / 法线估计

五、案例与工程建议

以室内机器人建图为例:Kinect 采集的原始点云包含大量深度缺失与边缘飞点,若直接送入 ICP,配准误差可达数十厘米。工程上通常先做体素降采样(如 0.02 m),再用统计离群点去除(MeanK=50, StddevMulThresh=1.0),随后估计法向量并计算 FPFH 特征,最后才进入粗配准与精配准。经过这一流程,同一场景的配准误差可稳定在厘米级以内。

实践建议:预处理参数没有“万能值”。体素尺寸应与场景尺度、传感器精度和配准精度目标匹配;离群点阈值应结合点云密度调整。建议把预处理参数写入配置文件,便于复现与调参。

总之,点云数据基础决定了配准与建图的上限。明确点云的定义与组织方式,理解获取方式带来的精度与噪声特性,统一坐标系与格式,并建立规范的预处理流程,才能让后续的配准算法在干净、一致的数据上发挥应有性能。