Skip to content

三维点云处理

点云(Point Cloud)是三维世界最直接的数字表示——一组带坐标的空间点集。自动驾驶的 LiDAR、机器人的深度相机、无人机测绘的激光扫描,都产出海量点云数据。本页梳理从传统算法(ICP、RANSAC)到深度学习(PointNet、PointPillars)的完整点云处理技术谱系。前置阅读:CNN 主线、深度估计与3D视觉。

想象你站在一间黑暗的房间里,有人给你一张写满坐标的小纸条——每个坐标是墙、桌、椅上某一点的精确位置,但纸条上不写”这是桌子”。点云处理就是从这堆”无名坐标点”中理解三维世界的过程:

  • 点云 = 黑暗房间里用激光”打点”描出来的世界轮廓。点很密但无组织——不像照片有整齐的像素网格,点云是一团”散沙”,点的顺序没有意义。
  • 传统方法 = 你用量角器和尺子手工测量:先找到地面(RANSAC 平面拟合),再把剩下的点聚类成物体(DBSCAN),最后把两帧扫描对齐(ICP)。每一步都有清晰的几何含义。
  • PointNet = 天才设计——直接吃这堆无序点集,用一个 MaxPool 对称函数解决”点排列顺序无关”的问题,像一位摄影师不管你把照片怎么打乱洗牌,都能认出同一张脸。
  • 体素化 / Pillar 化 = 把散乱的点”装进”规则的 3D 网格里(像把沙子倒进冰格),这样就能套用成熟的 2D/3D 卷积网络——自动驾驶感知的核心技巧。

点云是由三维扫描设备采集的三维点集合,每个点至少包含空间坐标,还可附带丰富属性:

  • 坐标:每点的空间位置。
  • 颜色(RGB):彩色扫描仪或 RGB-D 相机(如 RealSense)附带。
  • 法线(Normal):该点处表面的朝向,由邻域点拟合估计。
  • 强度(Intensity):激光反射强度,LiDAR 特有,金属与沥青的反射率不同,可用于材质区分。
  • 时间戳:动态 LiDAR 逐帧采集的时间信息,可用于运动补偿。

点云的来源主要有三类:

  • 机械/固态 LiDAR:发射激光脉冲,测量飞行时间(ToF, Time of Flight)计算距离。自动驾驶标配(64 线/128 线),每秒百万点,探测距离可达 200m+。计算公式:distance = (c * Δt) / 2,其中 c 为光速、Δt 为脉冲往返时间。
  • 深度相机(RGB-D):结构光(如 Kinect、RealSense D435)或 ToF 原理,输出对齐的彩色图 + 深度图,室内场景常用,距离较短(0.3-10m)。
  • 结构光扫描 / 激光扫描:工业级高精度扫描,用于逆向工程、文物保护、BIM 建模,单次扫描可产生亿级点。

三维数据有四种常见表示,各有适用场景:

表示方式数据结构优势劣势典型用途
点云N x (3+) 无序点集原始精确、无量化损失无拓扑、无序、稀疏不均LiDAR 感知、SLAM
体素网格3D 规则栅格可用 3D 卷积显存巨大、量化损失PointPillars/SECOND 中间表示
Mesh顶点 + 面紧凑、有拓扑难以直接输入神经网络图形学、3D 打印、游戏
NeRF / 3DGS隐式辐射场可渲染新视角训练慢、不可直接检测新视角合成、场景重建

在深度学习之前,点云处理依赖经典几何与统计方法:

  • ICP 配准(Iterative Closest Point, 1992):将两帧有重叠的点云对齐(配准)。迭代地找最近点对、估计刚体变换(旋转+平移)、再施加变换,直到收敛。是 SLAM(Simultaneous Localization and Mapping,即时定位与地图构建)和三维重建的基石。变体包括 Point-to-Point ICP、Point-to-Plane ICP(收敛更快)、GICP。

    ICP 的数学过程:

    输入:源点云 P={p1,…,pn}P = \{p_1, \ldots, p_n\},目标点云 Q={q1,…,qm}Q = \{q_1, \ldots, q_m\}。目标:求刚体变换 (R,t)(R, t) 使以下目标最小化:

    ∑∥R⋅pi+t−qi∥2\sum \|R \cdot p_i + t - q_i\|^2

    迭代:

    1. 对 PP 中每个点,在 QQ 中找最近点 qiq_i(KD-Tree 加速)
    2. 用 SVD 分解求解最优 (R,t)(R, t):
      • 计算两组点云质心 μp,μq\mu_p, \mu_q
      • 去质心化:pi′=pi−μpp'_i = p_i - \mu_p,qi′=qi−μqq'_i = q_i - \mu_q
      • 计算协方差矩阵 H=∑pi′⋅qi′TH = \sum p'_i \cdot q'^T_i
      • SVD 分解 H=U⋅Σ⋅VTH = U \cdot \Sigma \cdot V^T
      • 最优旋转 R=V⋅UTR = V \cdot U^T(需处理反射情况)
      • 最优平移 t=μq−R⋅μpt = \mu_q - R \cdot \mu_p
    3. 将变换施加到 PP,更新误差
    4. 若误差变化小于阈值则收敛
  • RANSAC 平面拟合:随机采样一致性(RANdom SAmple Consensus)。反复随机抽取少量点拟合平面,统计内点(符合平面的点)数量,保留内点最多的平面。是分离地面与障碍物的标准方法——地面是一个大平面,去掉地面后剩下的才是车辆、行人等目标。

    RANSAC 平面拟合流程:

    1. 从点云中随机抽取 3 个不共线的点

    2. 计算过这 3 点的平面方程:

      ax+by+cz+d=0ax + by + cz + d = 0
    3. 计算所有其他点到该平面的距离:

      dist=∣a⋅x+b⋅y+c⋅z+d∣a2+b2+c2\text{dist} = \frac{|a \cdot x + b \cdot y + c \cdot z + d|}{\sqrt{a^2 + b^2 + c^2}}
    4. 统计距离 <τ< \tau(阈值)的点数(内点数 inliers)

    5. 重复 NN 次,选内点最多的平面作为拟合结果

    6. 用所有内点重新最小二乘拟合精化平面参数

  • DBSCAN 聚类分割:基于密度的聚类(Density-Based Spatial Clustering of Applications with Noise)。从任意核心点出发,不断吸收密度可达的邻域点,形成簇。不需要预设簇数(不同于 K-Means),能发现任意形状的簇——用于将去除地面后的点云分割成独立目标。

  • 法线估计:对每个点,取其 k 近邻(如 30 个邻点),拟合局部平面(PCA 主成分分析),最小特征值对应的特征向量即为法线方向。法线是点云渲染、分割、配准的基础特征。

    法线估计的 PCA 方法:

    1. 取点 pp 的 kk 近邻 Nk(p)={p1,…,pk}N_k(p) = \{p_1, \ldots, p_k\}

    2. 计算局部质心:

      μ=1k∑pi\mu = \frac{1}{k} \sum p_i
    3. 构建协方差矩阵(3×33 \times 3):

      C=1k∑(pi−μ)(pi−μ)TC = \frac{1}{k} \sum (p_i - \mu)(p_i - \mu)^T
    4. 对 CC 做特征值分解:

      C=λ1v1v1T+λ2v2v2T+λ3v3v3TC = \lambda_1 v_1 v_1^T + \lambda_2 v_2 v_2^T + \lambda_3 v_3 v_3^T

      其中 λ1≥λ2≥λ3\lambda_1 \geq \lambda_2 \geq \lambda_3(λ3\lambda_3 最小,对应”最薄”方向)

    5. 法线方向 =v3= v_3(最小特征值对应的特征向量)

    直觉:如果局部是一个平面,垂直于平面的方向方差最小(λ3≈0\lambda_3 \approx 0)。

  • 欧式聚类分割:基于邻接关系的连通分量分割——将距离小于阈值的点归为同一簇。比 DBSCAN 更简单,适合目标已与背景分离的场景。

深度学习处理点云的核心挑战是点的无序性——同一组点打乱顺序应得到相同结果(排列不变性,Permutation Invariance)。此外,点云还有刚体运动不变性(旋转平移不改变物体本身)和密度不均匀性(近处密、远处疏)。主要技术路线:

PointNet 是里程碑之作,首次证明了深度学习可以直接处理无序点云。其架构极其简洁:

PointNet 架构详解:

  • 输入:NN 个点,每个点 3 维坐标 (x,y,z)(x, y, z) [或更高维,含法线/颜色]

  • 共享 MLP(Shared MLP):对每个点独立做相同的线性变换 + ReLU,3→64→128→10243 \to 64 \to 128 \to 1024(逐层升维)。“共享”意味着所有点用同一组权重——等价于在点上做 1×11 \times 1 卷积

  • MaxPool 对称函数(关键!):N×1024→1024N \times 1024 \to 1024(逐通道取最大值)。这是 PointNet 的灵魂——MaxPool 是对称函数:

    MaxPool({p1,p2,…,pN})=MaxPool({pσ(1),pσ(2),…,pσ(N)})\text{MaxPool}(\{p_1, p_2, \ldots, p_N\}) = \text{MaxPool}(\{p_{\sigma(1)}, p_{\sigma(2)}, \ldots, p_{\sigma(N)}\})

    无论点的输入顺序如何,输出都相同 → 解决排列不变性

  • 全局特征向量(1024 维):这是整个点云的”摘要”

  • 任务头:

    • 分类:全局特征 → MLP → Softmax → KK 类概率
    • 分割:全局特征与每个点的局部特征拼接 → MLP → 每点类别

PointNet 的理论保证(论文中证明):MaxPool + 共合 MLP 构成的网络可以万能逼近任何连续的对称集合函数。缺点是只提取全局特征,丢失了局部结构信息——每个点独立处理,不建模点间关系。

PointNet++ 用类似 CNN 多层感受野的思路解决 PointNet 缺乏局部建模的问题:

PointNet++ 的 Set Abstraction(集合抽象)层:

  • Step 1 — 最远点采样(Farthest Point Sampling, FPS):从 NN 个点中均匀选取 N′N' 个中心点(比 NN 少)。FPS 比随机采样更均匀——每次选离已选点集最远的点。复杂度 O(N⋅N′)O(N \cdot N'),比随机采样贵,但覆盖更好
  • Step 2 — 球查询分组(Ball Query):以每个中心点为圆心,半径 rr 内的所有点归为一组,得到 N′N' 个局部点集(每组 ≤K\leq K 个点)。←── 这是定义”局部邻域”的方式,等价于 CNN 的感受野
  • Step 3 — 局部 PointNet:对每组的 KK 个点做 PointNet(共享 MLP + MaxPool),输出每个中心点一个局部特征向量。←── 等价于一次卷积操作

多层 Set Abstraction 串联:N→N/4→N/16→…N \to N/4 \to N/16 \to \ldots,逐层降采样、逐层扩大感受野,最终得到全局特征(类似 CNN 的全连接层前)。

PointNet++ 还引入了多尺度分组(Multi-Scale Grouping, MSG):在同一层用多个不同半径的球查询,捕获不同尺度的局部结构,提升对尺度变化的鲁棒性。

将 Transformer 的自注意力机制引入点云。每个点与邻域点计算注意力权重,动态聚合特征:

对中心点 xix_i 和邻域点 xjx_j,注意力权重为:

αij=softmax(MLPφ(MLPθ(xi)−MLPδ(xj)))\alpha_{ij} = \text{softmax}\left(\text{MLP}_\varphi\left(\text{MLP}_\theta(x_i) - \text{MLP}_\delta(x_j)\right)\right)

聚合特征:

yi=∑jαij⋅(MLPψ(xj)+δj)y_i = \sum_j \alpha_{ij} \cdot \left(\text{MLP}_\psi(x_j) + \delta_j\right)

其中 δj\delta_j 是相对位置编码——让注意力感知点间几何关系。

在多个基准上达到 SOTA。2023 年的 Point Transformer V2/V3 进一步引入了序列化注意力(通过空间填充曲线将 3D 点序列化),大幅提升效率。

将点云体素化(Voxelization)为 3D 网格,用 3D 卷积学习特征,端到端做 3D 检测。问题在于 3D 卷积的计算和显存开销大——一个 100m × 100m × 10m 的场景用 0.1m 分辨率就有 1000 × 1000 × 100 = 1 亿个体素。

稀疏卷积(Sparse Convolution)的核心洞察:点云中 90%+ 的体素是空的,不需要计算。SpConv 只维护非空体素的哈希表,卷积时只计算有数据的区域,将计算量降低 1-2 个数量级。是现代 3D 检测网络的标配算子。

  • 密集 3D 卷积:对所有位置做卷积 → O(W×H×D)O(W \times H \times D)
  • 稀疏卷积:只对非空位置做卷积 → O(M)O(M),MM = 非空体素数(通常 M≪W×H×DM \ll W \times H \times D)

实现关键:

  1. Rule Book:预计算”输入非空体素 → 输出哪些位置需要计算”的映射表
  2. 在 GPU 上按映射表做 gather-matmul-scatter 操作
  3. 避免对空白区域的任何计算和存储

点云目标检测(自动驾驶感知核心)

Section titled “点云目标检测(自动驾驶感知核心)”

自动驾驶的 3D 感知是点云检测最重要的应用,主流方法:

  • PointPillars(2019):将点云按高度压缩为 2D 伪图像(柱体 Pillar 表示),再用 2D CNN 做检测。速度极快(62 FPS),工业部署广泛。
  • SECOND(2018):用稀疏 3D 卷积替代密集 3D 卷积,大幅提速,是 3D 检测的基础骨干。
  • CenterPoint(2021):基于中心点的无锚框检测。将目标表示为其中心点 + 属性回归,避免了繁琐的 3D 锚框设计,精度高且简洁,是当前主流基线。
  • BEVFormer / BEVFusion(2022):将多视角相机图像转换为鸟瞰图(BEV)特征并与 LiDAR 点云融合——多模态 3D 感知的趋势。

PointPillars 是工业部署最广泛的方案,因为它巧妙地把 3D 问题转化为 2D 问题:

PointPillars 三阶段架构:

Phase 1 — Pillar Feature Network (PFN)

  • 输入:原始点云 (x,y,z,intensity)(x, y, z, \text{intensity})
  • 操作:
    1. 将空间在 XY 平面划分为网格(如 0.16m×0.16m0.16\text{m} \times 0.16\text{m})
    2. 每个网格柱体 = 一个 Pillar(Z 轴不切分,只切 XY)
    3. 每个 Pillar 内取最多 PP 个点(不够的补零,多的截断)
    4. 每个点增强为 9 维:(x,y,z,intensity,xc,yc,zc,xp,yp)(x, y, z, \text{intensity}, x_c, y_c, z_c, x_p, y_p)
      • 其中 xc/yc/zcx_c/y_c/z_c 是到 Pillar 中心的距离,xp/ypx_p/y_p 是到网格中心的距离
    5. 对每点做共享 MLP + MaxPool(沿点维度)
    6. 输出:H×W×CH \times W \times C 的 2D 伪图像

Phase 2 — 2D Backbone

标准 2D CNN(类似 ResNet 的 FPN 结构),两个下采样分支:

  • Top-down:逐层降采样提取多尺度特征
  • Bottom-up:上采样融合回高分辨率
  • 输出:多尺度 BEV 特征图

Phase 3 — Detection Head

在 BEV 特征图上用 SSD(Single Shot Detector)做检测,输出每个目标的 (x,y,z,w,l,h,θ,class)(x, y, z, w, l, h, \theta, \text{class})。θ\theta 为朝向角(heading angle),是 3D 检测区别于 2D 检测的关键。

PointPillars 为什么快?因为 Phase 2 和 3 都是成熟的 2D CNN 推理,可以用高度优化的 2D 卷积库。代价是 Z 轴信息被压缩——但实验表明这对车辆/行人检测影响不大。

3D 目标检测的训练损失比 2D 更复杂,因为包围盒有更多自由度:

3D Bounding Box 损失 = Lcls+Lreg+LdirL_{\text{cls}} + L_{\text{reg}} + L_{\text{dir}}

LclsL_{\text{cls}}(分类损失):Focal Loss,解决前景/背景极度不平衡。

FL(p)=−α(1−p)γ⋅log⁡(p)(γ 通常取 2.0)\text{FL}(p) = -\alpha(1 - p)^\gamma \cdot \log(p) \quad (\gamma \text{ 通常取 } 2.0)

LregL_{\text{reg}}(回归损失):对 (cx,cy,cz,w,l,h,sin⁡θ,cos⁡θ)(c_x, c_y, c_z, w, l, h, \sin\theta, \cos\theta) 分别回归。用 Smooth L1 Loss(对离群值更鲁棒):

SmoothL1(x)={0.5x2if ∣x∣<1∣x∣−0.5otherwise\text{SmoothL1}(x) = \begin{cases} 0.5x^2 & \text{if } |x| < 1 \\ |x| - 0.5 & \text{otherwise} \end{cases}

θ\theta 用 sin⁡/cos⁡\sin/\cos 双输出避免角度周期性问题(0°0° 和 360°360° 应是同一个朝向)。

LdirL_{\text{dir}}(朝向损失):分类损失判断朝向是 0°0° 还是 180°180°。回归的 sin⁡/cos⁡\sin/\cos 只能确定轴线,无法区分车头朝前还是朝后 → 用一个二分类器判断方向。

从 LiDAR 采集到检测输出的完整流程:

Open3D:加载、降采样、法线估计、可视化

Section titled “Open3D:加载、降采样、法线估计、可视化”
import open3d as o3d
import numpy as np
# 1. 加载点云(支持 .pcd / .ply / .xyz 等格式)
pcd = o3d.io.read_point_cloud("cloud.ply")
print(f"原始点数: {len(pcd.points)}")
# 2. 体素降采样:用边长 0.02m 的立方体合并点,去噪+压缩
pcd = pcd.voxel_down_sample(voxel_size=0.02)
# 3. 统计离群点去除:剔除偏离邻域的点(20 邻居,标准差 2.0)
pcd, _ = pcd.remove_statistical_outlier(nb_neighbors=20, std_ratio=2.0)
# 4. 法线估计:30 近邻,估计每个点的表面朝向
pcd.estimate_normals(
search_param=o3d.geometry.KDTreeSearchParamHybrid(radius=0.1, max_nn=30)
)
# 5. 可视化(点 + 法线)
o3d.visualization.draw_geometries([pcd], point_show_normal=True)
import torch
import torch.nn as nn
class MiniPointNet(nn.Module):
"""简化版 PointNet,用于点云分类。"""
def __init__(self, in_dim=3, num_classes=40):
super().__init__()
# 共享 MLP: 逐点特征提取 (对每个点独立做相同的变换)
self.mlp = nn.Sequential(
nn.Linear(in_dim, 64), nn.BatchNorm1d(64), nn.ReLU(),
nn.Linear(64, 128), nn.BatchNorm1d(128), nn.ReLU(),
nn.Linear(128, 1024), nn.BatchNorm1d(1024), nn.ReLU(),
)
# 分类头
self.classifier = nn.Sequential(
nn.Linear(1024, 512), nn.ReLU(), nn.Dropout(0.3),
nn.Linear(512, 256), nn.ReLU(), nn.Dropout(0.3),
nn.Linear(256, num_classes),
)
def forward(self, x):
# x: (B, N, 3) —— B 个 batch,每批 N 个点,3 维坐标
B, N, D = x.shape
# 逐点 MLP:reshape 成 (B*N, D) 以共享权重
x = x.view(B * N, D)
x = self.mlp(x) # (B*N, 1024)
# MaxPool 对称函数:解决排列不变性
x = x.view(B, N, 1024)
x = x.max(dim=1)[0] # (B, 1024) —— 无论点的顺序如何,max 结果相同
# 分类
return self.classifier(x) # (B, num_classes)
# ModelNet40 数据集 (40 类 3D 物体) 测试
model = MiniPointNet(in_dim=3, num_classes=40)
x = torch.randn(4, 1024, 3) # 4 个样本,每个 1024 点
logits = model(x)
print(f"输入: {x.shape} → 输出: {logits.shape}") # (4, 1024, 3) → (4, 40)

点云深度学习的训练有一些与 2D 图像不同的注意事项:

  • 数据增强:除了常规的旋转、缩放、平移,点云特有的增强包括:

    • 随机丢点(Random Dropout):随机删除一部分点,模拟遮挡和稀疏化。
    • ** jitter(抖动)**:给每个点的坐标加高斯噪声,模拟传感器噪声。
    • 随机缩放:整体缩放点云,模拟不同距离。
    • 混合(Mixup):将两个点云混合为一个,标签也按比例混合。
  • 关键点采样策略:

    • FPS(最远点采样):均匀覆盖整个物体表面,比随机采样更优,但 O(N²) 复杂度高。
    • 随机采样(Random Sampling):简单快速,适用于大场景(自动驾驶)。
    • 重要性采样:按特征响应或密度加权采样,关注信息丰富的区域。
  • 损失函数加权:3D 检测中,远处目标(>50m)的点云极稀疏,检测难度大。对远处目标的回归损失加大权重(如距离加权),可以提升远距离检测召回率。

  • 多帧累积策略:单帧 LiDAR 点云对远处目标太稀疏。利用车辆运动将连续多帧(如 3-5 帧)点云配准累积到当前帧坐标系,能显著提升远处目标的点密度。但要注意运动物体的拖影问题——需先做运动补偿或物体级分离。

  • 先降采样再处理:LiDAR 单帧百万级点直接喂给算法极慢。体素降采样(voxel_down_sample)是标准操作,既压缩数据又均匀化点密度。
  • 去地面是关键预处理:地面点占 LiDAR 点云的大头,不去掉会严重干扰目标检测。高度滤波(简单快)或 RANSAC(更鲁棒)是标准操作。
  • PointNet 的对称函数不能省:直接用求和/平均虽也是对称函数,但 MaxPool 保留了”最显著特征”的语义,是 PointNet 精度的关键——别随手换成 Mean。
  • Pillar/Voxel 化权衡:点→Pillar(2D)速度极快但损失高度信息;Voxel(3D)精度高但计算重。自动驾驶通常折中——PointPillars 用 2D 加速,SECOND 用稀疏 3D 保精度。
  • 多帧累积提升密度:单帧 LiDAR 点云稀疏,利用车辆运动将多帧点云配准累积到同一坐标系,能显著提升远处目标的检测率。
  • LiDAR-Camera 融合是趋势:点云精确测距但缺纹理,相机有丰富纹理但无深度,融合两者是高阶自动驾驶系统的标配。
  • 自动驾驶 3D 感知:Waymo、蔚来、小鹏等用 LiDAR 点云做 3D 目标检测——精确输出车辆、行人的 3D 包围盒(位置 + 尺寸 + 朝向 + 类别),是规划与控制的基础。
  • BIM 建筑建模:用激光扫描建筑物,点云→BIM 模型(Revit),用于古建筑保护、施工进度监测、设施管理。
  • 无人机测绘:搭载 LiDAR 的无人机扫描地形,生成高精度数字高程模型(DEM),用于林业、矿业、城市规划。
  • 工业逆向工程:扫描实体零件得到点云,重建 CAD 模型——用于复制无图纸的老旧零件、产品设计迭代。
  • 机器人抓取:机械臂上的深度相机输出点云,估计物体位姿和形状,规划抓取策略——仓储物流分拣的核心技术。

2023 年 Tesla 提出占用网络(Occupancy Network),到 2025 年已成为自动驾驶感知的主流范式。核心思想:不再预测 3D 包围盒,而是将空间划分为体素网格,对每个体素预测是否被占用 + 语义类别。优势是能处理不规则形状物体(如施工路障、散落货物),不依赖预设类别——只要检测到”那里有东西占了空间”就避让。代表方法 OccNet、SurroundOcc 在 nuScenes 占用预测基准上不断刷新。

3D 高斯泼溅(3D Gaussian Splatting, 3DGS)

Section titled “3D 高斯泼溅(3D Gaussian Splatting, 3DGS)”

3DGS(2023)是继 NeRF 之后的新一代场景重建与渲染技术。它用一组带位置、协方差、颜色、透明度的 3D 高斯椭球体表示场景,通过可微分的光栅化(而非 NeDF 的射线采样)实现实时新视角渲染——渲染速度比 NeRF 快 100 倍以上。2025 年 3DGS 已扩展到 4D(动态场景)、SLAM(实时建图)、点云融合(直接从 LiDAR 点云初始化高斯),在自动驾驶仿真、VR/AR、数字孪生等领域快速落地。

2024-2025 年的趋势是从模块化感知(检测→跟踪→预测→规划)转向端到端方案——用一个大网络直接从传感器输入(多视角图像 + LiDAR 点云)输出规划轨迹。代表方法 UniAD、VAD、以及 Tesla FSD V12。点云在其中提供精确的几何先验,多模态 BEV 特征融合是核心技术。端到端减少了模块间的信息损失,但可解释性和安全性验证仍是挑战。

点云基础模型(Point Cloud Foundation Models)

Section titled “点云基础模型(Point Cloud Foundation Models)”

受 NLP 和 2D 视觉大模型启发,2024-2025 年出现了多个点云基础模型:

  • PointMAE / Point-BERT / Point-M2AE:将 MAE(掩码自编码器)和 BERT 的预训练范式迁移到点云,先在大量无标注 3D 数据上自监督预训练,再在下游任务上微调。
  • PointGPT / PointLLM:结合大语言模型,实现 3D 场景的对话式理解和推理——例如输入一段点云,用自然语言描述场景内容。
  • Uni3D / OpenScene:统一的 3D 场景理解框架,支持开放词汇(Open-Vocabulary)的 3D 检测与分割——不再局限于预定义类别,可以用自然语言查询任意物体。

nuScenes 和 Waymo Open Dataset 是自动驾驶 3D 感知的标准基准。2025 年新趋势是 4D 检测(加入时间维度),要求模型从连续多帧点云中检测和跟踪目标。Occ3D、OpenOccupancy 等占用预测基准也在推动向稠密空间理解方向发展。

类库语言说明
Open3DPython/C++点云处理全能库:IO、降采样、配准、分割、可视化、SLAM
PCLC++/Python点云库(Point Cloud Library),工业级,算法最全
PDALC++/Python点云数据处理管线,类似点云界的 GDAL
PyTorch3DPythonMeta 出品,3D 深度学习工具,含 PointNet 等模块
MMDetection3DPythonOpenMMLab 的 3D 检测框架,集成 PointPillars/SECOND/CenterPoint
CUDA-PCLC++/CUDANVIDIA 的 GPU 加速点云处理库
gsplatPython/CUDA3D 高斯泼溅的高性能 CUDA 实现,支持可微分渲染
术语英文解释
点云Point Cloud三维空间中的点集合,每个点含坐标及可选属性
LiDARLight Detection and Ranging激光雷达,发射激光脉冲测距,生成高精度三维点云
深度相机RGB-D Camera输出彩色图 + 深度图的相机,如 Kinect、RealSense
体素Voxel三维像素,将连续空间离散化为规则三维网格
ICP 配准Iterative Closest Point迭代最近点算法,通过迭代最小化点对距离对齐两帧点云
RANSACRandom Sample Consensus随机采样一致性,从含噪声数据中拟合模型(如平面)的经典方法
DBSCANDensity-Based Spatial Clustering基于密度的聚类算法,能发现任意形状的簇,无需预设簇数
法线Normal表面上某点的朝向向量,由邻域点拟合估计
排列不变性Permutation Invariance函数输出不随输入元素顺序改变而变化,点云网络的核心要求
稀疏卷积Sparse Convolution只对非空位置做卷积运算,大幅减少 3D 场景的计算量
PointNetPointNet直接处理无序点集的开创性网络,用 MaxPool 对称函数解决排列不变性
PointPillarsPointPillars将点云转为柱体伪图像再用 2D CNN 检测,速度极快的 3D 检测方法
鸟瞰图BEV (Bird’s Eye View)从正上方俯视的二维投影,是自动驾驶 3D 感知的统一表示空间
占用网络Occupancy Network将空间划分为体素并预测占用+语义,不依赖预设类别的感知范式
3D 高斯泼溅3D Gaussian Splatting (3DGS)用 3D 高斯椭球体表示场景,可微分光栅化实现实时新视角渲染
  • Qi et al.,「PointNet: Deep Learning on Point Sets」(CVPR 2017):PointNet 原始论文,开创性地解决了深度学习处理无序点云的问题,引用量 2 万+。
  • Qi et al.,「PointNet++: Deep Hierarchical Feature Learning on Point Sets」(NeurIPS 2017):PointNet 的层次化改进,引入多尺度局部特征提取。
  • Lang et al.,「PointPillars: Fast Encoders for Object Detection from Point Clouds」(CVPR 2019):PointPillars 论文,工业级 3D 检测的标杆方案。
  • Yin et al.,「Center-based 3D Object Detection with CenterPoint」(CVPR 2021):CenterPoint 论文,无锚框 3D 检测的主流基线。
  • Zhao et al.,「Point Transformer」(ICCV 2021):将 Transformer 引入点云,在多个基准上达到 SOTA。
  • Kerbl et al.,「3D Gaussian Splatting for Real-Time Radiance Field Rendering」(SIGGRAPH 2023):3DGS 论文,继 NeRF 之后的新一代场景重建技术。
  • Open3D 文档(open3d.org):最实用的点云处理库文档,含丰富的 Python 示例与教程。