论文题目:Not All Points Are Equal: Learning Highly Efficient Point-based Detectors

for 3D LiDAR Point Clouds

cvpr 2022

如题目所说,本篇文章认为像pointnet++的sa层来采取下采样点或者像pvrcnn中的基于feature距离的代表点,随着下采样的进行,往往会遗漏一些前景目标,作者做了个实验:

万字长文概述单目3D目标检测算法 3d目标检测前景_数据集


实验发现,随着下采样点的减少,car类别还能基本保持recall不变,但是一些小目标如行人和自行车,下降得就比较厉害。pvrcnn中才用的基于feature距离的fps也仅仅起到了抑制作用。作者认为pointnet++的sa层很大一部分计算量运用在了计算背景点的特征上,这是没有必要的,因为他们对于目标的回归是不重要的。

因此本文提出的基于点的目标检测算法,实际上是基于前景点的目标检测算法,既兼顾了计算效率,又提升了尤其是小目标的检测ap,因为我们可以从前面的实验中看到下采样主要损失的是小目标的recall。老规矩,上图。

万字长文概述单目3D目标检测算法 3d目标检测前景_目标检测_02


文章主要是对于下采样阶段进行了创新。

对于输入的原始点云,首先把他们丢进3个轻量化的sa层,从后面的appendix可以看到这个sa层是异于pointnet++里的sa层的,他只有2个半径。

随后对于进行了一轮下采样后的点输入到instance-aware downsampling,这里主要是对于前面所输出的点进行两层mlp编码,输出每个点的label。分清楚他们是车、行人、自行车还是背景点,随后对于分数高的k个点我们进行采样,然后把他们输入到下一个编码层。训练中我们对于实际上的gt点进行onehot编码,方便进行训练:

万字长文概述单目3D目标检测算法 3d目标检测前景_sed_03


作者认为我们的下采样点还应该尽量选择靠近物体中心的:

万字长文概述单目3D目标检测算法 3d目标检测前景_数据集_04


于是便提出了基于中心的下采样:

万字长文概述单目3D目标检测算法 3d目标检测前景_数据集_05


第二部分作者则对于前面采样好的点进行vote。vote的loss函数作者进行了修改:

万字长文概述单目3D目标检测算法 3d目标检测前景_目标检测_06


最后类似pointnet++作者进行k聚类,输出k个proposals,最后进行3dnms处理。

万字长文概述单目3D目标检测算法 3d目标检测前景_sed_07


kitti数据集上很耀眼的是对于小目标的检测效果。

我的思考:

文章主要的贡献在于对于前景点的提取,我们从实验结果中看到,传统的fps确实对于小目标是不友好的。他们ap的drop确实是因为在下采样中被滤去了。