原文链接:https://arxiv.org/pdf/1812.05784.pdf
1 引言
PointPillars是端到端学习方法,仅需要2D卷积。性能可达SotA(甚至超过部分基于激光雷达+图像的方法),且速度快。
2 网络
由3个部分组成:特征编码器(将点云转化为伪图像)、2D卷积主干(将伪图像处理为高级表达)、检测头(检测和回归3D边界框)。
2.1 点云到伪图像
先将点云在平面离散化为等大小的网格,得到柱体集合。然后使用柱体内所有点的中心坐标
和与柱体中心的偏移量
增强所有点,则包含原来的坐标和反射强度
,所有点都有
个维度。
为便于后面处理,设置为每个点云的非空体素数,
每个柱体内的点数。如果一个柱体内的点大于
,则随机采样柱体内的点;如果一个柱体内的点少于
,则进行零填充。这样得到
维度的张量。
然后使用简化的PointNet处理每个柱体内的点,即使用线性层(卷积)+BN+ReLU将各点维度变为
(此时张量为
维度),再沿通道维度最大池化,得到
维度的张量。最后将各特征还原到原来的柱体位置,生成
的伪图像。
2.2 主干
包含两个子网络,一个自上而下提取特征(2D卷积+BN+ReLU),一个上采样各层特征(转置2D卷积+BN+ReLU)并拼接。
2.3 检测头
使用Single Shot Detector (SSD)的设置。使用2D边界框的IoU来匹配预测和真实边界框。边界框的高度和提升值为额外的回归量。
3 实施细节
3.2 损失函数
损失函数与SECOND相同(具体公式见这篇综述的附录D(2)(a))。
由于角度定位损失不能区分翻转180°的边界框,将角度空间离散化并使用softmax分类损失,来学习朝向。
总的损失
其中为正锚框的数量。
4 实验设置
4.1 数据集
KITTI。由于在图像可见的物体才有标注,故仅使用能投射到图像的激光雷达点。对汽车和行人/自行车分别训练网络。
4.2 设置
使用与VoxelNet相同的锚框设置和匹配策略。每个锚框由长宽高和坐标描述,且包含0°和90°两个朝向。与真实边界框有最高IoU的锚框,以及IoU高于正阈值的锚框视为正锚框,而小于负阈值的锚框视为负锚框。其余锚框在计算损失时被忽略。
推断时,使用轴对齐的非最大抑制(NMS),重叠阈值为0.5。该方法比旋转NMS更快,且性能相近。
对不同的类别物体,统计数据集中的相关量得到锚框的尺寸、高度值和正负匹配阈值。
4.3 数据增广
使用复制粘贴增广方法,即在其余帧随机采样3D边界框,将其中的点粘贴到当前帧。然后进一步将所有边界框随机旋转小角度并随机平移小距离。
此外,还将所有点云沿轴径向翻转,再全局旋转、缩放,并小距离平移。