1. 点云世界初探:什么是激光雷达点云?

大家好,我是这门课的主讲。在正式开始之前,我想先问一个问题:你想象过一台机器是如何“看见”三维世界的吗?摄像头?那是二维的。雷达?那是稀疏的。真正能让机器在三维空间里“摸”到物体的,就是激光雷达点云。

我第一次接触点云是在一个自动驾驶项目里。当时客户说“我们要让车看到路”,我心想这不就是装个摄像头嘛。结果被老工程师拉去看了LiDAR的原始数据——满屏密密麻麻的彩色点,像星空一样。他说:“这才是车真正的眼睛。”嗯,从那天起,我就入了点云的坑。

1.1 激光雷达点云的本质

说白了,激光雷达点云就是一束束激光打出去,碰到物体反射回来,测量往返时间,再结合激光头的角度,算出来的三维坐标集合。每个点代表物体表面上的一个采样位置。

你想想看,一秒钟发射几十万甚至上百万个激光脉冲,每个脉冲返回一个点,这些点堆在一起,就形成了“云”。所以叫点云。

核心定义:点云是三维空间中离散点的集合,每个点至少包含 (X, Y, Z) 坐标信息,通常还携带强度、回波等附加属性。

1.2 点云数据的核心特征

一个激光雷达点,远不止一个坐标那么简单。我习惯把点云的特征分成三个层次:

1.2.1 XYZ 坐标——骨架

这是点云的基础。X、Y、Z 三个值确定了点在三维空间中的位置。坐标系的定义因设备而异,但通常遵循右手定则:X 向前,Y 向左,Z 向上。

我在项目中遇到过一个问题:两台不同品牌的激光雷达,坐标系定义完全相反。一台的 X 正方向是车头,另一台是车尾。如果不做坐标系对齐,融合出来的点云就是“鬼影”。

1.2.2 强度值——纹理

强度(Intensity)是激光回波的信号强度。不同材质反射激光的能力不同:白色路面反射强,黑色轮胎反射弱,玻璃直接穿透或产生镜面反射。

强度值有什么用?我举个例子:在测绘中,靠强度值可以区分车道线和沥青路面。在自动驾驶中,靠强度值可以识别交通标志牌。说白了,强度就是点云的“灰度图”。

材质类型 典型强度值范围 说明
白色路面标线 180 - 255 高反射,容易识别
沥青路面 30 - 80 中等反射,表面粗糙
深色车辆轮胎 5 - 20 低反射,吸光材质
玻璃幕墙 0 - 10 或异常高值 穿透或镜面反射,不稳定

个人技巧:我习惯在可视化时把强度值映射成伪彩色。这样一眼就能看出路面标线、建筑物边缘和植被区域。比看灰度点云直观得多。

1.2.3 回波次数——穿透力

一个激光脉冲打出去,可能碰到多个物体。比如打到树叶边缘,一部分能量反射回来(第一次回波),剩下的继续往下走,打到地面(第二次回波)。

多回波能力是激光雷达的独门绝技。我记得在林业测绘项目中,靠回波次数能直接分离树冠和地面。第一次回波是树冠,最后一次回波是地面。中间的回波是灌木或树枝。这个特性在植被茂密的区域特别有用。

避坑指南:我曾经在处理一个城市点云时,忽略了回波次数信息,直接把所有点当成地面点做滤波。结果树冠上的点全被保留下来,地面模型上全是“毛刺”。后来加上回波次数筛选,问题立刻解决。记住:回波次数不是冗余信息,它是点云的“深度维度”。

1.3 点云数据的典型结构

一个标准的点云数据文件,比如 LAS 或 PCD 格式,每条记录大致长这样:

// 单点数据结构示例(伪代码)
struct Point {
    float X;          // X坐标,单位:米
    float Y;          // Y坐标,单位:米
    float Z;          // Z坐标,单位:米
    uint16_t Intensity; // 强度值,0-65535
    uint8_t ReturnNumber;   // 当前回波编号
    uint8_t NumberOfReturns; // 总回波次数
    uint8_t Classification; // 分类标签(地面、建筑、植被等)
    // ... 其他可选字段
};

你可能会问:为什么需要这么多字段?因为点云不是一张照片,它是一个数据容器。每个点都携带了丰富的环境信息。我常说,点云是“用数据堆出来的三维世界”。

1.4 点云的核心应用场景

点云不是实验室里的玩具,它在工业界已经大规模落地。我挑三个最典型的场景聊聊:

1.4.1 自动驾驶——感知的基石

自动驾驶汽车上,激光雷达是感知系统的核心传感器。它负责:

  • 障碍物检测:识别车辆、行人、自行车的位置和速度
  • 可行驶区域分割:区分路面、路沿、障碍物
  • 定位与建图:通过点云匹配实现高精度定位

我在做自动驾驶项目时,最头疼的不是算法,而是数据标注。一个城市道路场景,一帧点云可能有十几万个点,要逐帧标注车辆、行人、骑行者……那段时间我做梦都在画3D框。

1.4.2 机器人——环境感知与导航

机器人领域,点云主要用于:

  • SLAM(即时定位与地图构建):机器人在未知环境中一边移动一边建图
  • 避障:实时检测前方障碍物,规划安全路径
  • 物体抓取:识别目标物体的三维形状,计算抓取位姿

我记得有个仓储机器人项目,客户要求机器人在货架间穿梭。摄像头在昏暗灯光下基本失效,超声波又太粗糙。最后上了单线激光雷达,点云虽然稀疏,但足够检测货架腿和托盘位置。效果立竿见影。

1.4.3 测绘与地理信息——高精度三维重建

测绘是点云最传统的应用领域:

  • 地形测量:机载LiDAR扫描大面积地形,生成DEM/DSM
  • 建筑物建模:地面扫描仪获取建筑立面点云,逆向建模
  • 电力线巡检:检测输电线路与周围树木的距离

测绘领域对精度的要求极高。我见过一个桥梁检测项目,点云精度要求达到毫米级。扫描仪架在桥下,每个点都要精确到亚厘米。处理这种数据时,任何滤波参数调错,都会导致模型变形。

1.5 本章知识体系总览

为了让你对本章内容有个整体印象,我画了一张结构图。它把点云的核心概念、数据特征和应用场景串在了一起。

第1章:点云世界初探——知识体系总览 激光雷达点云 核心特征 数据结构 应用场景 XYZ坐标 强度值 回波次数 LAS格式 PCD格式 二进制/ASCII 自动驾驶 机器人 测绘与GIS 本章核心要点 • 点云是三维空间中离散点的集合,每个点至少包含XYZ坐标 • 强度值反映材质反射特性,回波次数揭示物体穿透层次 • 点云在自动驾驶、机器人、测绘三大领域已大规模落地 • 理解点云的数据结构是后续加载与可视化的前提

1.6 写在前面的话

这一章我们只做了一件事:搞清楚点云是什么,它长什么样,用在哪儿。没有代码,没有算法,只有概念。但别小看这些概念——我见过太多人一上来就调库、跑模型,结果连点云的强度值和回波次数都分不清。最后出了问题,排查三天才发现是数据理解错了。

所以我的建议是:把这一章的基础打牢。后面30章,每一章都会回到这些核心概念上。你越早理解点云的本质,后面学起来就越轻松。