pointpillars的理论解读

发布时间:2026/7/19 2:42:37
pointpillars的理论解读 随着学习的加深会不断补充的文章目录一、pointpillars是什么二、pointpillars架构1.柱子是怎么划分的1.1 鸟瞰图 是什么意思一、pointpillars是什么PointPillars是一种用于三维物体检测3D目标检测的深度学习算法它主要解决自动驾驶或机器人领域中如何从激光雷达LiDAR点云数据中快速、准确地识别出车辆、行人、骑行者等障碍物的位置、大小和朝向问题。其核心思想是将无序、稀疏的三维点云通过垂直方向Z轴堆叠成“柱子”Pillars从而转化为类似图像的伪二维特征图进而可以无缝利用高效的二维卷积神经网络CNN进行端到端的推理。这种设计在显著降低计算开销的同时保持了极高的检测精度使其成为兼顾速度与性能的经典工业级部署方案尤其适用于对实时性要求苛刻的无人驾驶场景。二、pointpillars架构特征编码器将点云“升维”成图首先把点云在鸟瞰图平面上划分成一个个网格柱子即Pillars。对每个柱子里的点用简化的PointNet提取特征并聚合成一个固定长度的向量。这样所有柱子就拼成了一张伪图像伪图像高H宽W通道C成功把3D稀疏问题转化成了2D密集问题。2D卷积主干特征提纯将生成的伪图像送入一个2D卷积网络通常带下采样类似FPN结构。这个主干进一步提取空间和语义信息输出高分辨率的特征图用于定位以及低分辨率的特征图用于分类和回归。检测头输出3D框最后在特征图的每个位置上预设多个不同大小和朝向的锚框锚点。检测头会并行预测每个锚框是前景还是背景分类以及它对真实3D框的残差回归量中心点偏移、尺寸对数缩放、朝向角正弦值。最后通过非极大值抑制NMS过滤掉冗余框输出最终的检测结果。1.柱子是怎么划分的PointPillars首先在鸟瞰图平面上将预设的感兴趣区域划分成固定尺寸的二维网格每个网格单元即一个“柱子”Pillar代表一个垂直延伸、高度不限的空间柱体。随后根据每个原始点云的(x,y)坐标将其映射到对应的柱体中并对每个柱子内包含的点进行统一采样或填充使每个柱子固定包含N个点。接着对每个柱子内的这N个点利用一个简化的PointNet由共享MLP和最大池化组成进行特征聚合将每个柱子内所有点的特征压缩为一个固定长度的特征向量。这样所有柱子就被转换为一个形如(H×W×C)的二维伪图像特征图其中H和W对应网格的行列数C为聚合后的特征通道数从而成功将稀疏、无序的3D点云转化为结构化、密集的2D图像表示以便后续使用高效的2D卷积神经网络进行特征提取和目标检测。1.1 鸟瞰图 是什么意思前视图正面看就像你开车时透过挡风玻璃看到的景象。能清晰看到物体的高度和正面轮廓但距离和深度信息很难判断。鸟瞰图俯视看就像你在高空中看地面。物体之间的左右距离X方向和前后距离Y方向被完美保留且不会互相遮挡但物体的高度信息Z轴被“压扁”了。为什么自动驾驶和PointPillars要使用鸟瞰图物理尺度恒定在鸟瞰图下无论物体离车是近是远同一个物体比如一辆车的像素大小基本是固定的除非它真的变大。而在前视图下近处物体很大远处很小这不利于卷积神经网络学习尺度特征。无遮挡问题在鸟瞰图中车辆、行人之间几乎不存在遮挡。而在前视图中前车会完全挡住后车导致网络无法检测到被遮挡的物体。方便回归位置3D框的中心点x y在鸟瞰图上就是一个像素点网络直接在这个平面上回归位置xy最方便。而高度z和朝向绕Z轴的旋转角则单独作为额外的属性去回归。