Skip to content

三维点云处理(一):引言与基础概念 ​

一、什么是三维点云? ​

三维点云(Point Cloud) 是三维空间中一组离散点的集合。每个点至少包含 三个坐标分量,因此一个含有 个点的点云可以表示为一个 的矩阵:

除了坐标外,每个点还可以携带额外属性:

属性说明数据来源
颜色 (R, G, B)与相机图像对齐后获取RGB-D 相机、彩色激光
法向量 (nx, ny, nz)局部表面朝向PCA 拟合估计
反射强度 (Intensity)激光反射信号强弱LiDAR 传感器
语义标签 (Label)所属类别(地面/车辆/行人等)人工标注或深度学习推理

二、点云的获取方式 ​

  • LiDAR(激光雷达):发射激光脉冲并测量飞行时间(Time-of-Flight),精度可达厘米级,广泛用于自动驾驶与测绘。
  • RGB-D 深度相机:如 Microsoft Kinect、Intel RealSense,通过红外结构光或飞行时间获取深度图像。
  • SfM(Structure from Motion)/ MVS(Multi-View Stereo):从多张普通照片中恢复三维结构,依赖特征匹配与三角化。

三、三维信息的表达形式 ​

三维世界的数字化表达有多种形式,各有优劣:

表达形式核心特点内存效率---
Mesh由三角面片构成,具有拓扑连接信息中游戏引擎、图形学渲染
Voxel Grid规则立方体均匀切分空间低()简单场景占用检测
Octree递归八分空间,仅在有数据处细分高大规模场景、LOD 渲染
Point Cloud纯坐标矩阵,无拓扑信息高传感器数据处理、算法开发

四、点云的工程应用场景与核心落地任务 ​

在工业界,点云数据的价值在于其能够提供精确的三维空间几何信息。以下是几个最典型的工程落地场景及核心算法任务:

1. 自动驾驶 (Autonomous Driving) ​

自动驾驶系统(如 Waymo、特斯拉或新势力的多传感融合方案)高度依赖车顶/车身 LiDAR 获取的 360° 环境点云。

  • 工程痛点:数据量极大,需极高的实时性(通常要求 10Hz/100ms 处理一帧)。
  • 核心任务:
    • 地面剥离 (Ground Extraction):使用 RANSAC 或形态学滤波提取地面。
    • 障碍物聚类 (Obstacle Clustering):基于 DBSCAN 或欧式聚类将非地面点划分出车辆、行人。
    • 3D 目标检测 (3D Object Detection):拟合 3D 定向包围盒 (OBB)。

2. 机器人导航与建图 (Robotics & SLAM) ​

无论是仓储 AMR、扫地机器人还是四足机器狗,都需要利用点云进行同步定位与建图(SLAM)。

  • 核心任务:
    • 前端里程计 (Front-end Odometry):帧间点云配准(ICP、NDT),实时估算机器人位姿。
    • 后端优化与回环检测 (Back-end & Loop Closure):提取全局描述子进行地图对齐,消除累积误差。
    • 占据栅格地图 (Occupancy Grid Map):将三维点云投影为二维/三维栅格,用于路径规划(A* 算法)。

3. 消费电子与空间计算 (Spatial Computing) ​

随着 iPhone Face ID (结构光) 和 Apple Vision Pro / Quest (LiDAR/ToF) 的普及,点云进入了消费端。

  • 核心任务:
    • 面部深度重建:高精度的活体检测与三维重构。
    • Mesh 重建与混合现实 (MR):将稀疏点云快速转化为 Mesh 网格,使虚拟物体能够与真实物理世界产生遮挡与碰撞交互。

4. 工业检测与逆向工程 (Industrial Inspection) ​

  • 核心任务:利用高精度扫描仪获取零件表面点云,与标准 CAD 模型进行精细配准 (Fine Registration)。通过计算点到模型的误差热力图,检测生产缺陷;或从手工雕塑的物理实体逆向生成 CAD 模型。

五、点云处理的核心挑战 ​

挑战工程描述
1. 密度不均 (Varying Density)近处密集、远处稀疏 (100m 外的车辆可能仅反射 < 10 个激光点),导致依赖固定半径的算法失效。
2. 无序性 (Unordered)点云无固定排列顺序 (矩阵行交换不应改变几何语义),要求算法(特别是深度学习框架如 PointNet)具备排列不变性。
3. 无纹理信息 (Textureless)纯几何点云缺乏颜色和纹理边缘,极易发生“几何歧义”(如一面平坦的白墙和黑墙在点云中完全一样)。
4. 海量数据与邻域搜索 (Scale & Search)一帧 64 线 LiDAR 包含数十万个点。由于缺乏图像的规整 2D 网格结构,寻找“最近邻”的暴力搜索极其缓慢,必须依赖 KD-Tree / Octree 等空间索引结构。

六、传统方法 vs 深度学习 ​

维度传统方法深度学习
流程问题定制化(不同任务需要不同算法流水线)统一流程(数据采集 → 标注 → 训练 → 推理)
可控性每个步骤数学可证、可调参黑盒特性,结果难以解释
门槛需要扎实的数学与几何学基础相对较低,框架封装完善
泛化性在已知约束下稳定对训练数据分布敏感
计算需求CPU 即可运行通常需要 GPU

核心观点:深度学习的易用性是一把双刃剑——它降低了入行门槛的同时也加剧了同质化竞争。精通传统方法是建立技术壁垒和深层理解的关键。


七、知识体系总览 ​

本系列教程涵盖以下核心模块:


八、实践工具与环境 ​

工具用途推荐
Python 3.10+算法实现主力语言★★★★★
Open3D点云数据加载、可视化与算法库★★★★★
NumPy / SciPy矩阵运算与科学计算★★★★★
Matplotlib二维/三维绘图★★★★
C++ / PCL工业级高性能点云处理★★★★

环境搭建方面,请参考下一篇《环境配置:Python + Open3D 安装指南》。


参考资料 ​

  • Radu B. Rusu, Steve Cousins. "3D is here: Point Cloud Library (PCL)", ICRA 2011.
  • Charles R. Qi et al. "PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation", CVPR 2017.
  • KITTI 3D Object Detection Benchmark: http://www.cvlibs.net/datasets/kitti/

基于 VitePress 强力驱动 | 记录技术与生活