第一章:点云江湖——什么是点云?
各位同学,欢迎来到点云的世界。
我第一次接触点云,是在2015年做工业检测项目的时候。当时客户拿来一个铸件,说要用三维数据检测毛刺。我盯着屏幕上那密密麻麻的白色小点,心里想:这玩意儿能看出啥?
后来我才明白——这些点,就是物体在三维空间里的「数字化分身」。
1.1 点云到底是什么?
点云,说白了就是一堆三维坐标点的集合。每个点包含 (x, y, z) 三个坐标值,有些还带着颜色 (r, g, b) 或者反射强度信息。
点云的核心定义:
点云 = { P₁, P₂, ..., Pₙ },其中 Pᵢ = (xᵢ, yᵢ, zᵢ, [rᵢ, gᵢ, bᵢ], [intensityᵢ])
举个例子。你拿手机拍一张照片,得到的是二维像素矩阵。而点云,相当于给每个像素加了一个深度值,变成了三维空间里的点。你想想看,这差别有多大?
我习惯把点云比作「三维世界的乐高积木」。单个点没什么意义,但几百万个点拼在一起,就能还原出物体的完整形状。
1.2 点云数据怎么来的?
获取点云的方式,主要有三种。我在项目里都踩过坑,一个一个说。
1.2.1 激光雷达(LiDAR)
激光雷达的原理很简单:发射激光束,测量反射回来的时间,算出距离。嗯,就是「激光测距仪」的升级版。
常见类型:
- 机械式激光雷达:旋转扫描,360度视野。Velodyne HDL-64E 是经典款,64线,每秒能扫100多万个点。
- 固态激光雷达:没有旋转部件,靠光学相控阵或MEMS微镜扫描。成本低,但视野窄。
- MEMS激光雷达:介于两者之间,用微镜反射激光束。
我的经验:机械式激光雷达虽然精度高,但震动环境下容易出问题。我在做AGV导航时,遇到过因为路面颠簸导致点云出现「重影」的情况。后来换了固态雷达,问题才解决。
| 参数 | 机械式 | 固态 | MEMS |
|---|---|---|---|
| 视野 | 360° | 120°以内 | 120°-180° |
| 成本 | 高(数万-数十万) | 低(千元级) | 中(万元级) |
| 可靠性 | 中(有运动部件) | 高(无运动部件) | 中 |
| 典型应用 | 自动驾驶、测绘 | 机器人、工业 | 消费电子、车载 |
1.2.2 深度相机
深度相机是另一种常见方案。它直接输出一张「深度图」,每个像素的值就是该点的距离。
主流技术:
- 双目立体视觉:两个摄像头,像人眼一样计算视差。成本低,但依赖纹理特征。我在做室内机器人时,遇到过白墙场景下双目完全失效的情况——因为墙面太平整,找不到匹配点。
- ToF(飞行时间):发射调制光,测量相位差。速度快,但精度受环境光影响大。
- 结构光:投影已知图案,通过变形计算深度。精度高,但室外阳光下基本不能用。
避坑指南:我曾经在户外用Intel RealSense D435做测试,大太阳底下深度图全是噪点。后来才知道,ToF和结构光在强光下都会「瞎」。如果你要做室外项目,老老实实用激光雷达。
1.2.3 结构光
结构光其实可以算深度相机的一种,但因为它太有代表性,我单独拿出来说。
原理:投影仪打出编码条纹,相机拍摄变形后的条纹,通过三角测量算出深度。
典型设备:
- Microsoft Kinect v1(第一代)—— 结构光方案,开创了消费级深度相机的时代
- Apple iPhone X 的 Face ID —— 微型结构光,用于人脸识别
- 工业级结构光扫描仪 —— 精度可达0.01mm,用于高精度检测
结构光的优势是精度高,劣势是受环境光干扰大。我在做文物数字化时,用的就是工业级结构光扫描仪。在暗室里扫描一尊佛像,点云精度能达到0.05mm,连佛像脸上的裂纹都能看清。
1.3 点云处理能干什么?
点云的应用场景,比大多数人想象的要广。我挑几个典型的说说。
1.3.1 自动驾驶
这是点云最「出圈」的应用。自动驾驶汽车用激光雷达感知周围环境:检测车辆、行人、路沿、障碍物。
核心任务:
- 目标检测:从点云中找出「这是车」、「这是人」
- 语义分割:给每个点打标签,比如「路面」、「建筑」、「植被」
- 跟踪:连续帧中跟踪同一个目标
我记得2018年做自动驾驶项目时,点云目标检测的mAP还不到60%。现在用PointPillars、CenterPoint这些方法,已经能到80%以上了。进步确实快。
1.3.2 机器人
机器人领域,点云主要用于:
- SLAM(同步定位与地图构建):机器人一边走,一边用点云建地图,同时确定自己在哪里
- 避障:检测前方障碍物,规划路径
- 抓取:识别物体位姿,规划抓取点
我做AGV导航时,最头疼的是动态障碍物。行人突然从旁边走过,点云里会多出一团「噪点」。后来加了卡尔曼滤波做跟踪,才把误检率降下来。
1.3.3 工业检测
这是点云「闷声发大财」的领域。很多工厂里,点云检测系统已经替代了传统的人工目检。
典型应用:
- 尺寸测量:检测零件长宽高是否在公差范围内
- 表面缺陷检测:找出凹陷、凸起、划痕
- 装配验证:检查螺丝是否拧紧、卡扣是否到位
我做过一个项目,检测手机中框的平面度。用线激光扫描仪获取点云,然后拟合平面,计算每个点到平面的距离。精度要求是0.02mm,最后做到了0.015mm。客户很满意。
1.3.4 文物保护
这个领域很有意思。用点云给文物做「数字孪生」,既方便研究,也方便修复。
具体工作:
- 三维重建:扫描文物,生成高精度三维模型
- 虚拟修复:在数字模型上模拟修复方案
- 变形监测:定期扫描,对比点云变化,发现早期损坏
我参与过敦煌莫高窟的一个项目,用激光雷达扫描洞窟。洞窟里光线极暗,结构光根本用不了。最后用Leica RTC360扫描仪,一站扫描5分钟,精度2mm。看到那些千年壁画变成数字点云的那一刻,说实话,挺震撼的。
1.4 本章知识体系
下面这张图,是我自己画的点云知识体系框架。你可以把它当作整个课程的「地图」。
1.5 一点个人感悟
点云处理这个领域,入门容易精通难。你可能会觉得,不就是处理一堆三维点吗?
但真正做项目时你会发现:传感器选型、数据预处理、算法调参、工程部署,每个环节都有坑。我见过太多人,算法跑得飞起,一到现场就崩。
所以这门课,我会尽量把「实战中踩过的坑」都讲出来。你跟着走一遍,至少能少走半年弯路。
给新手的建议:
1. 先别急着学算法。花一周时间,搞清楚你的传感器输出的是什么格式的数据。
2. 学会用可视化工具看数据。我习惯用CloudCompare,免费又好用。
3. 遇到问题先查点云库的文档。PCL(Point Cloud Library)的API文档写得不错。
好了,第一章就到这里。点云的世界已经为你打开,接下来我们一步步深入。
公众号:蓝海资料掘金营,微信deep3321