论文链接:https://arxiv.org/pdf/1812.05784.pdf
代码链接:open-mmlab/OpenPCDet: OpenPCDet Toolbox for LiDAR-based 3D Object Detection.
摘要
PointPillars 是2019年提出的基于点云的3D目标检测算法,旨在解决传统3D卷积方法(如VoxelNet、SECOND)计算量大、速度慢的问题,其在工业界被广泛使用。核心创新在于将点云编码为柱状结构(Pillars),将3D体素压缩为2D伪图像,从而避免3D卷积的计算负担,仅使用2D卷积即可实现端到端的高效检测。实验表明,PointPillars在KITTI数据集上达到62Hz的实时推理速度(更快版本可达105Hz),同时保持与3D卷积方法相当的精度,显著优于VoxelNet和SECOND。
主要贡献
-
柱状编码器(Pillar Feature Net, PFN)
-
将点云在俯视图的X-Y平面内划分为均匀网格(柱状区域),每个柱状结构在z轴是全部信息,避免对Z轴进行离散化,减少计算维度。
-
对每个柱状结构内的点进行特征增强,扩展至10维特征:原始坐标(x, y, z)、反射强度(r)、相对于pillar内点云中心的偏移(\(x_{c},y_{c},z_{c}\))、相对于pillar网格中心的偏移(\(x_{p},y_{p},z_{p}\))。
-
使用简化的PointNet对pillar内点云进行特征提取,通过最大池化生成每个pillar结构的全局特征,最终形成2D伪图像(C×H×W)。
-
-
高效2D卷积架构
-
采用2D卷积主干网络,结合多尺度特征融合(自上而下的特征提取与自下而上的上采样),提取高层次的语义信息,避免3D卷积的计算瓶颈。
-
-
优化的检测头与损失函数
-
使用SSD检测头进行边界框回归,分类任务采用Focal Loss解决类别不平衡问题,方向预测结合正弦角度损失和二分类Softmax修正180°误差。
-
引入数据增强策略:从其他点云中采样目标并融合到当前场景,提升模型鲁棒性。
-
网络结构
PointPillars以点云作为输入,输出汽车、行人和骑自行车的人的3D预测边界框。整个网络结构由三个主要阶段组成(图2):(1)将点云转换为稀疏伪图像的特征编码器网络;(2)将伪图像处理成高级表示的2D卷积主干;(3)检测并回归3Dbox的检测头。
1. 点云到伪图像的编码(Pillar Feature Net, PFN)
1.1 点云体素化
-
输入处理:输入点云 包含每个点的坐标 和反射率 。
-
柱状划分:将点云在俯视图(X-Y平面)划分为均匀的网格(即“柱状结构”,Pillars),z轴为整个高度(无需对高度(Z轴)进行离散化)。
-
参数设置:
-
网格分辨率:例如体素化网格设置为,控制伪图像的分辨率。
-
最大Pillar数目 和每个pillar内的点数N,如P=12000,N=30,超出部分随机采样,不足则补零。
-
1.2 特征增强
每个点被扩展为 10维特征(openpcedt框架),包括:
-
原始坐标:
-
反射率:
-
相对于pillar内点云中心的偏移:\(x_{c}=x-\bar{x},y_{c}=y-\bar{y},z_{c}=z-\bar{z}\)(其中\(\bar{x},\bar{y},\bar{z}\)为柱内点的均值)
-
相对于柱网格中心的偏移:\(x_p=x-x_\mathrm{grid},y_p=y-y_\mathrm{grid},z_p=z-z_\mathrm{grid}\)
1.3 稀疏数据处理
-
由于点云稀疏性(非空柱占比约 3%),通过张量 (维度=10, pillar数, 每个pillar点数)存储数据。
-
动态采样与填充:
-
若柱内点数超过 ,随机采样至 ;
-
若柱数超过 ,随机采样至 ;
-
不足则补零。
-
1.4 特征提取与伪图像生成
-
简化版 PointNet:
-
对每个点应用线性层(全连接)→ BatchNorm → ReLU,生成 的张量(为特征通道数)。
-
沿通道维度执行最大池化,得到每个pillar的全局特征 。
-
-
伪图像构建:将柱特征按原始网格位置映射为 2D 伪图像 ,其中 和 由网格分辨率决定(如 分辨率下,H=432, W=496)。
2. 2D Backbone
2.1 自上而下的特征提取
-
块结构:Backbone由多个块
Block(S, L, F)
构成:-
S(Stride):相对于输入伪图像的步长(如 S=2 表示分辨率减半)。
-
L(层数):每个块包含 L 个 3×3 卷积层。
-
F(通道数):每层输出特征通道数。
-
2.2 多尺度特征融合
-
上采样与拼接:
-
对每个块输出的特征进行转置卷积(反卷积)上采样,恢复至更高分辨率。
-
将不同尺度的特征拼接,形成多尺度融合特征图。
-
3. SSD 检测头
3.1 锚点设计
-
类别适配:针对不同目标(车辆、行人)设计锚框(Anchor):
-
车辆:尺寸 ,方向 ;
-
行人:尺寸 ,方向 。
-
-
匹配策略:基于 2D IoU(忽略高度),正样本阈值 ,负样本阈值 。
3.2 回归与分类目标
-
回归目标:3D 框参数:中心偏移 (Δx,Δy,Δz)、尺寸缩放 (Δl,Δw,Δh)、航向角 Δθ;
-
分类目标:使用 Focal Loss 解决类别不平衡问题。
-
方向预测:结合角度回归(Smooth L1 Loss)与方向分类(二分类 Softmax),避免 180° 误差。
3.3 损失函数
-
总损失:分类损失 + 回归损失 + 方向损失:
\(\mathcal{L}\quad=\frac{1}{N_{pos}}\left(\beta_{loc}\mathcal{L}_{loc}+\beta_{cls}\mathcal{L}_{cls}+\beta_{dir}\mathcal{L}_{dir}\right)\)
实验结果
总结
优势:
-
速度优势:通过2D伪图像和轻量化卷积设计,推理速度达62Hz(最高105Hz),远超VoxelNet和SECOND。
-
精度与效率平衡:在KITTI数据集上,检测的3D AP达59%,BEV AP达66%,接近3D卷积方法的精度。
-
工程友好性:伪图像兼容传统2D检测框架,易于部署和优化。
局限性:
-
小目标检测不足:行人和骑行者的检测精度较低,主要因伪图像分辨率不足。
-
Z轴信息损失:柱状编码忽略Z轴细节,可能影响高度敏感任务(如复杂地形检测)。
没有回复内容