点云目标检测:从 PointNet 到 PointPillars 的技术演进
点云(Point Cloud)是三维空间中物体表面的离散采样点集合,通常由激光雷达(Lidar)或深度相机获取。与二维图像不同,点云具有稀疏性、无序性和非结构化的特点,这决定了它需要不同于传统 CNN 的处理方法。
本文梳理基于 Lidar 的点云目标检测主流方法,从经典模型到工业部署方案,帮助你建立完整的技术地图。
1. 点云目标检测的四大路线
基于 Lidar 的目标检测模型,根据点云表示方式的不同,可以分为四大类:
| 方法类别 | 核心思想 | 代表模型 | 优点 | 缺点 |
|---|---|---|---|---|
| Point-based | 直接在原始点上操作 | PointNet, PointNet++, PointRCNN, IA-SSD | 信息无损,位置精度高 | 计算量大,难以实时 |
| Voxel-based | 将点云体素化为规则网格 | PointPillars, CenterPoint, VoxelNet | 推理速度快,利于硬件加速 | 信息有损,对体素参数敏感 |
| Point-Voxel 混合 | 结合两种表示的优势 | PV-RCNN, HVPR | 精度与速度的折中 | 架构复杂度高 |
| Multi-view-based | 多视角投影后融合 | PIXOR | 利用成熟的 2D 检测技术 | 投影过程会丢失信息 |
路线选择的核心矛盾
点云目标检测本质上在权衡一对矛盾:实时性开销 与 信息完整度。
- 逐点处理(Point-based)必然准确、信息完整,但计算慢
- 体素化处理(Voxel-based)会丢失位置信息,但算得快
工业界的主流选择是 Voxel-based 路线,并且在体素表示方式上不断改进,力求在速度和精度之间找到最优平衡。
2. Point-based:直接处理原始点云
2.1 PointNet — 奠基之作
PointNet(CVPR 2017)首次提出直接处理无序点云的方法,核心贡献在于:
- 对称函数(Max Pooling):解决了点云的无序性问题,无论点以什么顺序输入,输出相同
- T-Net 变换网络:学习空间变换矩阵,使模型对点云的旋转和平移具有一定不变性
- 全局特征聚合:每个点独立提取特征后,通过最大池化聚合为全局特征,再与逐点特征拼接进行分类或分割
PointNet 的局限性在于只能提取全局特征,难以捕获局部结构。
2.2 PointNet++ — 引入局部结构
PointNet++ 在 PointNet 基础上引入层次化特征学习:
- 通过最远点采样(FPS)选取若干中心点
- 在每个中心点周围用球查询(Ball Query)聚合邻域信息
- 在多个尺度上重复这一过程,形成类似 CNN 的层次化特征金字塔
这一设计使模型能够学习局部几何模式,显著提升了分割和检测性能。
2.3 PointRCNN — 两阶段检测
PointRCNN(CVPR 2019)是典型的 Point-based 两阶段检测器:
- 第一阶段:在原始点云上做前景分割,每个前景点生成一个 3D 候选框
- 第二阶段:对候选框内的点做精细化回归和分类
优势是精度高,但速度慢,不适合实时场景。
3. Voxel-based:体素化的工业主流
3.1 VoxelNet — 体素化的开山之作
VoxelNet 首次提出将点云体素化(Voxelization)处理:在三维空间的 x、y、z 三个方向划分网格,每个格子(voxel)内的点通过一个小型 PointNet 提取特征,然后使用 3D 卷积进一步处理。
问题:3D 卷积计算量巨大,体素粒度难以权衡——粒度过大丢失信息多,粒度过小计算量几何增长。
3.2 PointPillars — 速度与精度的优雅平衡
PointPillars(CVPR 2019)是 Voxel-based 路线的里程碑,核心创新是提出了 Pillar(柱体) 概念:
在 x-y 平面划分网格,z 轴不做切割,每个网格从地面延伸到最高点形成一个 Pillar。
具体流程:
- Pillar 化:将点云在 x-y 平面划分为 H×W 的网格,每个网格沿 z 轴拉伸覆盖全高度
- 特征编码:每个 Pillar 内的点通过简化的 PointNet 提取特征,得到 (D, P, N) 的张量
- 伪图像转换:将 Pillar 特征按网格位置”散开”,形成 (C, H, W) 的伪图像
- 2D 卷积骨干:用成熟的 2D 卷积网络(如 ResNet)提取特征
- 检测头:基于 SSD 的单阶段检测头输出 3D 框
为什么 PointPillars 快?
它将三维运算(体素化 + 3D 卷积)降解为二维运算(伪图像 + 2D 卷积),充分利用 GPU 对 2D 卷积的优化,推理速度远超 VoxelNet 等 3D 卷积方案。
为什么精度依然不错?
Pillar 在 z 轴保留了完整的点信息,避免了 Voxel 在 z 方向的信息损失。对于自动驾驶场景(目标主要在水平面分布),这种设计非常高效。
3.3 CenterPoint — 基于中心的检测
CenterPoint(CVPR 2021)进一步改进 Voxel-based 路线:先检测目标的中心点,再回归其他属性(尺寸、朝向、速度)。这种方法避免了 Anchor-based 方法的大量预设框,提升了召回率和效率。
4. 单阶段 vs 两阶段检测
点云目标检测同样继承了二维检测中的单阶段/两阶段范式:
| 范式 | 代表模型 | 特点 |
|---|---|---|
| 单阶段 | PointPillars, CenterPoint | 直接回归目标框,速度快,精度略低 |
| 两阶段 | PointRCNN, PV-RCNN | 先提候选框再精细化,精度高,速度慢 |
SSD、YOLO 是二维中的单阶段代表,Faster R-CNN 是两阶段代表。单阶段一次性输出多目标分类+回归,速度快但精略低;两阶段先选出候选框再精细分类回归,精度高但速度慢。这一分类在点云检测中同样成立。
5. 点云配准与多传感器融合
除了目标检测,点云研究还有两个重要方向:
5.1 点云配准(Point Cloud Registration)
将不同时间、视角获取的点云对齐到同一坐标系,经典方法包括 ICP(Iterative Closest Point)及其变体,近年来深度学习方法(如 PointNetLK、DCP、RPM-Net)也在兴起。
5.2 多传感器融合
- 相机-Lidar 融合:将 2D 图像的纹理颜色信息与 3D 点云的空间信息对齐
- 前融合、深度融合、后融合:不同融合阶段的三种策略
- 标定是关键:相机-Lidar 外参标定精度直接影响融合效果
6. 工程部署
6.1 边缘端部署方案
常见的自动驾驶和机器人部署栈:
- 硬件:NVIDIA Jetson 系列(Orin、AGX Xavier)
- 中间件:ROS/ROS2(机器人操作系统)
- 推理框架:TensorRT、ONNX Runtime
- 开源平台:Autoware.Auto(完整的自动驾驶软件栈)
6.2 模型部署优化
- TensorRT 加速:FP16/INT8 量化推理
- ONNX 导出:pt → onnx → TensorRT 转换链路
- 批处理优化:充分利用 GPU 并行能力
7. 发展趋势
当前点云目标检测的研究热点包括:
- Transformer 架构:将注意力机制引入点云特征提取,如 Point Transformer、Swin3D
- 多模态融合:点云 + 图像 + 毫米波雷达的多传感器融合
- 时序建模:利用连续帧点云的时序信息提升跟踪和检测性能
- 无监督/自监督预训练:减少对人工标注的依赖
- Occupancy Network:从检测目标框扩展到预测空间占用,做更精细的环境理解
8. 小结
点云目标检测经历了从 Point-based 到 Voxel-based,再到混合方法的演进。PointPillars 以 Pillar 的巧妙设计实现了工业可用的速度与精度平衡,是自动驾驶感知栈的重要里程碑。在此基础上,Transformer、多模态融合和时序建模正在将 3D 感知推向新的高度。
参考资料
- Qi et al., PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation (CVPR 2017)
- Qi et al., PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space (NeurIPS 2017)
- Lang et al., PointPillars: Fast Encoders for Object Detection from Point Clouds (CVPR 2019)
- Yin et al., Center-based 3D Object Detection and Tracking (CVPR 2021)
- Zhou & Tuzel, VoxelNet: End-to-End Learning for Point Cloud Based 3D Object Detection (CVPR 2018)