点云检测网络 PointPillar

📅 2026/7/10 13:44:48
点云检测网络 PointPillar
1. 提出PointPillar的目的在此之前对于不规则的稀疏的点云的做法普遍分为两派一是把点云数据量化到一个个Voxel里常见的有VoxelNet和SECOND但是这种做法比较普遍的问题是由于voxel大部分是空集所以会浪费算力SECOND利用稀疏卷积解决了它但是二者都还存在高度的信息所以还需要计算三维卷积的。一是从俯视角度将点云的数据进行处理将高度信息通过一系列手段去除从而获得一种类似Pseudo image的方式从而去用一些经典的图像网络去处理一些任务比如MV3D和AVOD。本文也有点类似上面的思想二有以下几个明显的亮点是一种结合了点试图思想忽略非空区域以及俯视图量化2D平面而得到伪图片的点云融合感知算法将三维点云处理为二维伪图像用传统CNN对伪图像进行特征提取推理速度显著提升是其他方法含3维卷积的2-4倍。2. PointPillar网络结构整个算法逻辑包含3个部分数据预处理神经网络后处理。其中神经网络部分原论文将其结构描述为3个部分PFN (Pillar Feature Net)将输入的点云转换为稀疏的伪图像的特征形式。Backbone (2D CNN)使用 2D 的 CNN 处理伪图像特征得到高维度的特征。Detection Head (SSD)检测和回归 3D 边界框。在实际部署的时候结构拆分和论文中的稍微有些出入。主要是分成PFN (Pillar Feature Network)MFN和RPN。其中MFN是用来将PFN提取的Pillar级的点云深度特征进一步转化为伪点云图像。RPN就是Backbone而检测头的部分功能被包含在后处理的逻辑里面。2.1. PFN (Pillar Feature Network) 模块因为不同点云帧的点云数量是变化的非空Pillar的数量自然也是不同的在考虑将PFN导出为ONNX模型时需要采用dynamic shape。从PFN的8个输入可知num_points表示每个Pillar包含的实际点云数量这个轴是dynamic的。首先将一个样本的点云空间划分成在 X 轴方向上点云空间的范围/pillar size在 Y 轴方向上点云空间的范围/pillar sizepillar 网格样本中的点根据会被包含在各个 pillar 中没有点的 pillar 则视为空 pillar。假设样本中包含的非空 pillar 数量为 P同时限制每个 pillar 中的点的最大数量为 N如果一个 pillar 中点的数量不及 N则用 0 补全若超过 N则从 pillar 内的点中采样出 N 个点来。并对 pillar 中的每个点进行编码其中每个点的表示会包括点的坐标反射强度pillar 的几何中心点与 pillar 几何中心的相对位置将每个点的表示的长度记为 D。这样我们的一个点云样本就可以用一个 (P, N, D) 的张量来表示。得到点云的 pillar 表示的张量后我们对其进行处理提取特征通过使用简化版的 PointNet 中的 SA 模块来处理每个 pillar。即先对每个 pillar 中的点使用多层 MLP 来使得每个点的维度从 D 变成 C这样张量变成了 (P, N, C)然后对每个 pillar 中的点使用 Max Pooling得到每个 pillar 的特征向量也使得张量中的 N 的维度消失得到了(P, C)维度的特征图。最后将 (P, C) 的特征根据 pillar 的位置展开成伪图像特征将 P 展开为(H, W)。这样我们就获得了类似图像的 (C, H, W) 形式的特征表示。总结shape变化(P, N, D)-(P, N, C)-(P, C)-(C, H, W)2.2. PFN的输入PFN有8个输入pillar_x包含Pillar化后的点云x坐标shape为(1,1,P,100)pillar_y包含Pillar化后的点云y坐标shape为(1,1,P,100)pillar_z包含Pillar化后的点云z坐标shape为(1,1,P,100)pillar_i包含Pillar化后的点云强度值shape为(1,1,P,100)num_points保存每个Pillar包含的实际点云数量shape为(1,P)x_sub_shaped保存Pillar的中心x坐标shape为(1,1,P,100)y_sub_shaped保存Pillar的中心y坐标shape为(1,1,P,100)maskpillar点云掩码shape为(1,1,P,100)2.3. PFN的输出PFN的输出shape为 (1, 64, pillar_num, 1)pillar_num表示非空pillar的数量是dynamic shape。因为不同点云帧的点云数量是变化的非空Pillar的数量自然也是不同的。参考文献点云深度学习-PointPillar_哔哩哔哩_bilibili点云检测算法之PointPillar深度解读-CSDN博客PointPillars: Fast Encoders for Object Detection from Point Clouds