一、点云数据基础:从零认识三维世界的“像素”

说实话,我第一次接触点云的时候,脑子里就一个想法——这不就是一堆密密麻麻的坐标点吗?后来做项目做多了,才慢慢体会到,这堆“点”背后藏着的,是整个三维世界的数字化表达。

点云,说白了就是三维空间里一组离散点的集合。每个点通常包含 X、Y、Z 三个坐标值,有时候还带着颜色、强度、法向量这些附加信息。你想想看,我们人眼看世界是连续的,但计算机要理解世界,就得靠这些离散的采样点。

核心理解:点云 ≈ 三维世界的“像素”。一张2D图片由像素网格构成,一个3D点云由空间中的离散点构成。

1.1 点云里到底有什么?

我习惯把点云数据拆成两部分来看:几何信息属性信息

  • 几何信息:就是每个点的三维坐标 (x, y, z)。这是点云的骨架,决定了物体长什么样。
  • 属性信息:包括但不限于——
    • 强度值 (Intensity):激光雷达返回的反射强度。我在做路面检测时,就靠这个区分沥青和车道线。
    • 颜色 (RGB):通常由相机融合得到,视觉上更直观。
    • 法向量 (Normal):每个点所在局部平面的朝向,做分割和识别时特别有用。
    • 时间戳:对于运动物体,这个信息能帮你做去畸变。

我的经验:刚入行时我总忽略强度值,觉得坐标就够了。直到有一次做地面分割,沥青和标线的反射率差异让我眼前一亮——强度值才是区分它们的利器。

1.2 常见的点云文件格式

做点云处理,绕不开文件格式。我这些年接触最多的就三种:PCD、LAS、PLY。每种格式都有自己的脾气。

格式 全称 特点 常见场景
PCD Point Cloud Data PCL库原生格式,支持ASCII和二进制,灵活度高 科研、算法开发、PCL生态
LAS LASer 行业标准,支持分类、回波数等属性,压缩率高 测绘、地理信息系统
PLY Polygon File Format 支持顶点和面片,可带颜色,结构清晰 三维重建、计算机图形学

PCD 格式是我用得最多的。它的头部信息非常直观,看一眼就知道数据长什么样。比如下面这个例子:

# .PCD v0.7 - Point Cloud Data file format
VERSION 0.7
FIELDS x y z intensity
SIZE 4 4 4 4
TYPE F F F F
COUNT 1 1 1 1
WIDTH 1000
HEIGHT 1
VIEWPOINT 0 0 0 1 0 0 0
POINTS 1000
DATA ascii
1.0 2.0 3.0 150
1.1 2.1 3.1 155
...

你看,FIELDS 告诉你每个点有哪些字段,SIZE 告诉你每个字段占几个字节。这种透明感,让我调试时特别安心。

注意:PCD 的 DATA ascii 模式虽然可读性好,但文件体积大、读写慢。我建议生产环境用 DATA binary,速度能快 5-10 倍。

LAS 格式是测绘领域的“老大哥”。它支持点分类(比如地面、建筑、植被),还有回波次数信息。我曾经处理过一个 LiDAR 扫描的森林数据,LAS 格式里记录了每个点的“回波编号”——第一次回波可能是树冠,最后一次回波才是地面。这个信息对滤波太关键了。

PLY 格式在图形学圈子里很流行。它既能存点云,也能存三角网格。如果你做三维重建,最后输出 PLY 带颜色,视觉效果会非常好。

1.3 点云是怎么获取的?

这个问题,我经常被学生问到。其实获取方式就三大类,各有各的脾气。

1.3.1 激光雷达(LiDAR)

这是目前最主流的方案。激光雷达发射激光束,打到物体上反射回来,通过飞行时间(ToF)计算距离。

  • 单线雷达:只扫描一个平面,常用于避障。我最早玩的是 SICK LMS 系列,就一条线,但测距很准。
  • 多线雷达:比如 Velodyne 的 16线、32线、64线。线束越多,垂直分辨率越高。我做过一个项目,用 16 线雷达做园区无人车,地面点稀疏得让人头疼——后来换了 32 线,效果立竿见影。
  • 固态激光雷达:没有旋转部件,靠光学相控阵或 MEMS 微镜扫描。体积小、寿命长,但视场角有限。

一句话总结:激光雷达精度高、范围远,但价格贵、点云稀疏。多线雷达是 SLAM 的主力,单线雷达适合做平面检测。

1.3.2 深度相机

深度相机(比如 Intel RealSense、Microsoft Kinect、Apple LiDAR)通过结构光或双目立体视觉获取深度图,再转成点云。

  • 结构光:投射红外光斑,通过变形计算深度。室内效果好,室外见光死。
  • 双目立体:两个摄像头视差计算深度。依赖纹理,白墙会“翻车”。
  • ToF 相机:类似激光雷达,但用面阵接收。帧率高,但分辨率低。

我记得有一次用 RealSense D435 做室内重建,光线暗一点点云就全是洞。后来加了补光灯,效果才勉强能看。深度相机适合 1-5 米 的近距离场景,再远误差就大了。

1.3.3 多线雷达 vs 其他方案

这里我多说两句。多线雷达(比如 Velodyne VLP-16、Ouster OS1)是目前自动驾驶和机器人领域的主流选择。为什么?

  • 360° 水平视场角:转一圈,周围全扫到。
  • 30-100 米测距:高速场景下,提前感知障碍物。
  • 抗光照干扰:激光不怕黑夜,也不怕强光。

但多线雷达也有痛点:点云稀疏、垂直分辨率有限、运动畸变。嗯,这些坑我们后面章节会专门讲怎么填。

避坑指南:我曾经在项目里直接用原始点云做匹配,结果因为运动畸变,匹配结果一塌糊涂。后来才意识到——多线雷达扫描一圈需要 100ms,这期间车已经移动了。所以,去畸变是必做的一步。

1.4 本章知识体系

为了让你更直观地理解点云数据的基础脉络,我画了一张图:

点云数据基础 · 知识体系 点云数据 什么是点云 文件格式 获取方式 几何信息 属性信息 PCD LAS PLY 激光雷达 深度相机 单线 多线 固态 结构光 双目 理解点云 = 理解三维世界的数字化采样

这张图把本章的核心内容串起来了。你从中心出发,往三个方向走——先搞清楚点云是什么,再了解怎么存,最后知道怎么来。这三块打扎实了,后面的滤波、分割、配准才有根基。


好了,点云的基础知识就聊到这儿。说实话,这些概念看起来简单,但真正用起来,每个细节都可能让你踩坑。我当年就是吃了不少亏,才慢慢摸清门道的。希望你能从这些经验里少走些弯路。

一句话记住本章:点云是三维世界的离散采样,PCD/LAS/PLY 是三种主流格式,激光雷达和深度相机是两大获取手段。多线雷达是 SLAM 的主力,但别忘了去畸变。

公众号:蓝海资料掘金营,微信deep3321