【3D目标检测/跟踪】Center-based 3D Object Detection and Tracking阅读笔记(2021)

1、为什么要做这个研究(理论走向和目前缺陷) ?
之前做3D目标检测大多基于Anchor来做,不好表达,且不利于下游任务,如跟踪。
2、他们怎么做这个研究 (方法,尤其是与之前不同之处) ?
本文提出将3D目标表达为一个中心点,设计了两个模型,单阶段的CenterPoint和两阶段的CenterPoint。单阶段CenterPoint主干网络用VoxelNet或PointPillar,输出的特征图加一个2D卷积输出目标的中心点(中心点设置及计算损失参考CornerNet),以及对每个点回归3D框尺寸、朝向、速度(大小及方向)、高度等信息。跟踪的话就利用一阶段预测的目标中心点及速度,将速度方向反向推断出上一帧中此目标的位置,用贪心算法找上一帧中最近距离的障碍物中心点进行匹配。两阶段CenterPoint的第一阶段就是单阶段CenterPoint,第二阶段将第一阶段获取的框中心点(BEV视图)特征及四个边界中心点特征输入到MLP中进行进一步分类和框回归。
3、发现了什么(总结结果,补充和理论的关系)?
基于中心点的方法相对基于anchor的方法避免了设置大量anchor,节省了计算量。且有利于用中心点做跟踪,效果比卡尔曼滤波的方法好,且快。

摘要:利用点云做3D目标时也是把目标表达为一个3D,这其实是源于2D目标检测的范式。但是3D目标会有各种各样的朝向,基于3D框的检测器不可能列举出所有的方向。本文提出将表达、检测、跟踪任务都基于点来做,即CenterPoint。CenterPoint在第一阶段利用关键点检测器找出所有目标中心点,并回归出3D尺寸、3D朝向、以及速度。在第二阶段,利用目标中的点特征对上述预测进一步精细化。CenterPoint把3D目标跟踪简化到贪心最近匹配,最终的检测和跟踪算法都很简单且高效。

1、引言
点云3D目标检测和2D目标检测差异:1)点云稀疏,不像图像密集。2)最终的3D框方向往往和任何坐标轴都不平行。3)3D目标尺寸、形状、长宽比等变化剧烈。
如果用3D框作为anchor,anchor朝向会比较多,增大计算量。而CenterPoint的主干网络用的是VoxelNet或者PointPillars,将主干网络输出的特征展成俯视图,然后用2D卷积做关键点检测找出目标中心点。基于每个中心点位置的点特征回归出一个3D尺寸、朝向以及速度。

2、相关研究
2D检测:RCNN系列、YOLO、SSD、RetinaNet、CenterNet、CenterrTrack等
3D检测:Vote3Deep、VoxelNet,SECOND,PIXOR,PointPillars,MVF,Pillar-od,VoteNet。
2阶段3D检测:计算量大。而本文仅提取5个表面中心点来节约计算量。
3D跟踪:有许多2D的跟踪算法都可以直接拿来做3D跟踪,但是基于卡尔曼滤波的专用跟踪器仍然更具优势。而本文采用类似与CenterTrack的跟踪算法,利于预测的中心点和速度方向来做跟踪,更快,而且比卡尔曼滤波更准。

3、先验知识
2D CenterNet:简述CenterNet原理
3D 检测:略

4、CenterPoint
CenterPoint第一阶段利用3D主干网络(VoxelNet或PointPillars)对每个点都针对每个类别做热力图、目标尺寸、中心点位置偏移、朝向、速度的密集预测。模型架构如下图所示。
中心点热力图预测头:热力图有K个通道,对应K个类别。训练时,将3D框中心点投影到鸟瞰图中而生成的二维搞死曲线作为gt热力图(参考的CornerNet),用focal loss计算损失。
回归头:对每个点都回归出中心点偏移、中心点距离地面高度、3D尺寸、旋转角(cos(theta), sin(theta)表示)。训练时,只对中心点位置计算l1损失。
【3D目标检测/跟踪】Center-based 3D Object Detection and Tracking阅读笔记(2021)_第1张图片

速度头和跟踪:为了跟踪,需要预测一个二维的速度方向,故训练时用一个两通道的热力图作为监督,也是只计算目标中心点的L1损失。
推断阶段,对每个当前帧都预测出目标的速度,故可以速度方向取反从而计算出上一帧此目标的位置,然后用贪心算法找到上一帧中离此反推出的位置离得最近的目标点。连续3帧都没再被跟踪上的目标丢弃,对于每个在当前帧没被跟踪到的上一帧的目标,基于其预测的速度计算其在当前帧的位置。
到此,所有的3D目标的特性(大小、朝向、中心点、速度、高度等)都是用中心点特征计算的,并没有包含足够的信息实现准确定位,比如,激光打到车上往往只有车的一侧有点,车的中心是没点的,故考虑在第二阶段对3D框的位置精细化。

4.1 两阶段的CenterPoint
上面介绍的是单阶段的CenterPoint,两阶段CenterPoint就是在第二阶段提取出目标的4个边界中心点特征,加上一个中心点特征共计5个点特征(所有的点特征都来源于第一阶段的计算输出),输入到一个MLP中,预测各个类别的得分及边界框精细化,类别得分计算公式:
在这里插入图片描述

第一阶段第二阶段都预测了得分,最后的得分是这两个得分相乘然后开方。

4.2 架构

5、实验
在Waymo和nuScenes两个大型3D数据集上做了实验。
训练两阶段的CenterPoint时,随机采样128个第一阶段输出的3D框,其中正例框数和负例框数均为64,与GT框的IOU大于0.55认为是正例框。推断阶段,对第一阶段输出按得分排序取500个3D框,然后NMS后输入到第二阶段进行精细化回归。
5.1主要实验结果
【3D目标检测/跟踪】Center-based 3D Object Detection and Tracking阅读笔记(2021)_第2张图片

3D检测:见表1和表2,无论在行人还是在车辆表现都是最好的,而且很快。
3D跟踪:见表3和表4,Waymo官方的baseline AB3D用的是卡尔曼滤波做跟踪,本文的基于速度的最近距离匹配显著优于AB3D,而且本文方法不需要建立运动模型。

5.2 消融研究
基于中心点的方法和基于anchor方法对比:基于anchor的方法waymo数据集上以PV-RCNN设置anchor方法为例,nuScenes上以CBGS设置Anchor的为例,仅仅替换CenterPoint的center-based部分,其余不变,实验结果见表5和表6。表7和表8是度进一步分析anchor-based方法性能不及center-based方法的原因做的实验。

一阶段对比两阶段
见表9,在Waymo数据上两阶段CenterPoint相对但阶段CenterPoint有提升,但是在nuScenes数据上没有提升,分析原因可能是nuScenes数据集用的32线激光雷达,单阶段网络已经将其潜力榨干。

不同特征组合对第二阶段提升影响:本文的第二阶段网络只用了第一阶段基于2D卷积输出的特征,还可以考虑加入2D卷积之前的体素特征(参考PV-RCNN中的体素集合特征和RBF插值体素特征)进一步提升性能,实验结果见表10,实验结果表明提升不大。
【3D目标检测/跟踪】Center-based 3D Object Detection and Tracking阅读笔记(2021)_第3张图片

在检测一样的情况下,用本文基于速度的贪心点最近距离跟踪结果比卡尔曼滤波跟踪结果要好,而且快非常多,见表12.

你可能感兴趣的:(3D目标检测,自动驾驶,人工智能,深度学习,pytorch,自动驾驶)