1. 点云数据基础:概念、获取、格式与特点
大家好,我是你们这门课的老师。今天咱们正式开篇,聊聊点云数据最基础的东西。
说实话,我刚开始接触点云的时候,也觉得这东西挺玄乎的。一堆密密麻麻的点,能干啥?后来做项目做多了,才慢慢摸到门道。说白了,点云就是三维世界的一种数字化快照。
1.1 点云到底是什么?
点云,英文叫 Point Cloud。你可以把它想象成:用成千上万个点,去描述一个物体的表面形状。
每个点,都带着自己的三维坐标 (X, Y, Z)。有些点还带着颜色 (RGB)、反射强度 (Intensity) 等信息。这些点组合在一起,就构成了一个三维的“云”。
嗯,这里要注意:点云不是实体模型,它只是点的集合。点与点之间没有连接关系,不像网格模型那样有面片。所以,处理点云的核心,就是处理这些离散的点。
核心概念:点云 = 三维坐标 + 属性信息。坐标是骨架,属性是血肉。
1.2 点云是怎么来的?
获取点云的方式,我接触过的主要有两种:LiDAR 和深度相机。它们各有各的脾气。
1.2.1 LiDAR(激光雷达)
LiDAR 是我个人最常用的设备。它通过发射激光束,测量激光返回的时间,来计算距离。说白了,就是“激光测距”的升级版。
LiDAR 的优点是:精度高,探测距离远,不受光照影响。我在做自动驾驶项目时,用的就是 64 线 LiDAR,能看清 100 米外的行人轮廓。
但 LiDAR 也有缺点:贵!而且点云密度不均匀。离得近的地方点很密,远的地方点很稀疏。你想想看,这会给后续的聚类算法带来什么麻烦?
1.2.2 深度相机
深度相机,比如 Kinect、RealSense,是另一种选择。它通过结构光或飞行时间法,直接输出深度图,再转换成点云。
深度相机的优点是:便宜,帧率高,适合室内场景。我记得有一次做室内三维重建,用的就是 Intel RealSense,效果还不错。
但它的缺点也很明显:受光照影响大,室外基本不能用。而且精度比 LiDAR 差一个数量级。
| 特性 | LiDAR | 深度相机 |
|---|---|---|
| 精度 | 毫米级 | 厘米级 |
| 探测距离 | 100m+ | 10m以内 |
| 光照影响 | 无 | 大 |
| 成本 | 高 | 低 |
| 典型应用 | 自动驾驶、测绘 | AR/VR、室内建模 |
1.3 常见的点云格式
做点云处理,绕不开文件格式。我见过不下十种格式,但最常用的就三种:PCD、PLY、XYZ。
1.3.1 PCD 格式
PCD 是 Point Cloud Library (PCL) 的亲儿子。它的特点是:文件头清晰,支持多种数据类型。
一个典型的 PCD 文件长这样:
# .PCD v0.7 - Point Cloud Data file format
VERSION 0.7
FIELDS x y z rgb
SIZE 4 4 4 4
TYPE F F F F
COUNT 1 1 1 1
WIDTH 640
HEIGHT 480
VIEWPOINT 0 0 0 1 0 0 0
POINTS 307200
DATA ascii
0.123 0.456 0.789 255 0 0
0.234 0.567 0.890 0 255 0
...
我个人习惯用 PCD 格式做中间存储,因为 PCL 库直接支持,读写方便。
1.3.2 PLY 格式
PLY 格式更通用,它不仅能存点云,还能存网格。PLY 也分 ASCII 和二进制两种。
PLY 的头部比 PCD 更灵活,可以自定义属性。我在做三维重建时,经常用 PLY 保存带法向量的点云。
1.3.3 XYZ 格式
XYZ 格式最简单,就是纯文本,每行三个数字:X Y Z。没有任何头部信息。
这种格式的好处是:通用性极强,任何语言都能解析。但缺点也很明显:没有属性信息,没有坐标系说明。
我的建议:做算法原型时用 XYZ 格式,方便调试。做正式项目时用 PCD 或 PLY,信息更完整。
1.4 点云数据的特点
点云数据跟图像数据很不一样。图像是规整的网格,点云是散乱的。我总结了几个关键特点:
- 无序性:点云没有固定的顺序。同样的点云,换个顺序,还是同一个点云。这给深度学习带来了挑战。
- 稀疏性:点云只在物体表面有数据,其他地方是空的。你想想看,一个房间的点云,大部分空间都是空的。
- 密度不均匀:离传感器近的地方点密,远的地方点稀。我在做聚类时,经常要处理这个问题。
- 噪声多:LiDAR 和深度相机都会引入噪声。尤其是边缘区域,噪声更明显。
避坑指南:我曾经因为没处理好点云的密度不均匀,导致聚类算法把远处的物体误判为噪声。后来加了密度自适应阈值,才解决问题。
1.5 知识体系总览
为了让大家对本章内容有个整体认识,我画了一张图。这张图展示了点云数据基础的核心逻辑。
这张图把本章的知识点串起来了。从概念出发,到获取方式,再到格式和特点,最后指向后续的分割和聚类算法。你想想看,是不是这个逻辑?
好了,第一章的内容就到这里。点云数据基础是后面所有算法的基础,一定要打好。下一章,我们开始讲点云的预处理,包括滤波、降采样这些实操内容。