论文地址:https://arxiv.org/abs/2006.11275
论文代码:https://github.com/tianweiy/CenterPoint
3D 目标通常表示为点云中的 3D Boxes。
CenterPoint
在第一阶段,使用关键点检测器检测对象的中心,然后回归到其他属性,包括 3D 大小、3D 方向和速度;
在第二阶段,它使用目标上的附加点特征来细化这些估计。
在 CenterPoint 中,3D 目标跟踪简化为贪婪的最近点匹配。
论文背景
2D 目标检测: 根据图像输入预测轴对齐的边界框。 RCNN 系列找到与类别无关的候选边界框,然后对其进行分类和细化。 YOLO、SSD 和 RetinaNet 直接找到特定于类别的框候选,回避了后续的分类和细化。基于中心的检测器,例如CenterNet 或CenterTrack,直接检测隐式对象中心点,而不需要候选框。许多 3D 检测器都是从这些 2D 检测器演变而来的。
3D 目标检测: 旨在预测 3D 旋转边界框。它们与输入编码器上的 2D 检测器不同。
Vote3Deep 利用以特征为中心的投票来有效处理等间距 3D 体素上的稀疏 3D 点云;
VoxelNet 在每个体素内使用 PointNet 来生成统一的特征表示,具有 3D 稀疏卷积和 2D 卷积的头从中产生检测;
SECOND 简化了 VoxelNet 并加速了稀疏 3D 卷积;
PIXOR 将所有点投影到具有 3D 占据和点强度信息的 2D 特征图上,以消除代价较高的 3D 卷积;
PointPillars 用柱表示替换所有体素计算,每个地图位置有一个高的细长体素,提高了主干效率;
MVF 和 Pillar-od 结合多个视图特征来学习更有效的支柱表示。
论文的贡献集中在输出表示上,并且与任何 3D 编码器兼容,并且可以改进它们。
VoteNet 使用点特征采样和分组通过投票聚类来检测对象。
相比之下,论文通过中心点的特征直接回归到 3D 边界框,无需投票对每个对象使用单个 postive 单元格并使用关键点估计损失。
点云上的 3D 目标检测的挑战:
1. 点云稀疏,并且 3D 对象的大部分部分没有测量结果;
2. 生成的输出是一个三维框,通常无法与任何全局坐标系很好地对齐;
3. 3D 目标有各种尺寸、形状和纵横比。
Axis-aligned 2D box 不能很好地代表自由形式的 3D 对象。
一种解决方案可能是:为每个对象方向分类不同的模板(锚点),但这不必要地增加了计算负担,并可能引入大量潜在的误报检测。
论文认为连接 2D 和 3D 域的主要潜在挑战在于对象的这种表示。
论文相关
2D CenterNet
2D CenterNet [1] 将目标检测重新表述为关键点估计。
它采用输入图像并为 K K K 个类别中的每一个l类别预测 w × h w × h w×h heatmap Y ^ ∈ [ 0 , 1 ] w × h × K \hat Y \in [0, 1]^{w×h×K} Y^∈[0,1]w×h×K。输出 heatmap 中的每个局部最大值(即值大于其八个邻居的像素)对应于检测到的目标的中心。为了检索 2D 框,CenterNet 回归到所有类别之间共享的尺寸图 S ^ ∈ R w × h × 2 \hat S ∈ \R^{w×h×2} S^∈Rw×h×2。
对于每个检测对象,尺寸图将其宽度和高度存储在中心位置。 CenterNet 架构使用标准的全卷积图像主干,并在顶部添加密集预测头。
在训练期间,CenterNet 学习使用 rendered 高斯核来预测每个类 c i ∈ { 1... K } c_i \in \{1 ... K\} ci∈{1...K}的每个带注释的对象中心 q i \boldsymbol q_i qi 处的 heatmap,并回归到带注释的边界框中心的目标大小 S S S。为了弥补主干架构跨步引入的量化误差,CenterNet 还回归到局部偏移 O ^ \hat O O^。
在测试时,检测器会生成 K K K 个 heatmap 和稠密的与类别无关的回归图。热图中的每个局部最大值(峰值)对应于一个目标,置信度与峰值处的热图值成正比。对于每个检测到的目标,检测器从相应峰值位置的回归图中检索所有回归值。根据应用领域,可能需要非极大值抑制 (NMS)。
[1] Xingyi Zhou, DequanWang, and Philipp Kr¨ahenb¨uhl. Objects as points. arXiv:1904.07850, 2019.
3D 目标检测
P = { ( x , y , z , r ) i } \cal P=\{ (x,y,z,r)_i \} P={(x,y,z,r)i} 是 3D 位置 ( x , y , z ) (x,y,z) (x,y,z) 和 反射率 r r r 测量的无序点云。3D 目标检测旨在从该点云预测鸟瞰图中的一组 3D 对象边界框 B = { b k } B = \{b_k\} B={bk}。每个边界框 b = ( u , v , d , w , l , h , α ) b = (u, v, d, w, l, h, \alpha ) b=(u,v,d,w,l,h,α) 由相对于物体地平面的中心位置 ( u , v , d ) (u, v, d) (u,v,d) 和 3D 尺寸 ( w , l , h ) (w, l, h) (w,l,h) 组成,旋转由 yaw α \alpha α 表示。不失一般性,使用以自我为中心的坐标系,传感器位于 ( 0 , 0 , 0 ) (0, 0, 0) (0,0,0) 且 y a w = 0 yaw= 0 yaw=0。
当前 3D 目标检测器使用 3D 编码器将点云量化为常规 bins。然后,基于点的网络提取 bins 内所有点的特征。然后,3D 编码器将这些特征汇集到其主要特征表示中。
大部分计算发生在主干网络中,该网络仅对这些量化和池化的特征表示进行操作。主干网络的输出是 map-view 参考帧中宽度为 W W W、长度为 L L L、具有 F F F 个通道的 map-view 特征图 M ∈ R W × L × F M ∈ \R^{W×L×F} M∈RW×L×F。宽度和高度都与各个体素 bins 的分辨率和主干网络的步幅直接相关。常见的backbone 有 VoxelNet 和 PointPillars。
使用 map-view 特征图 M M M,检测头(最常见的是一级或两级边界框检测器),然后从锚定在此overhead 特征图上的一些预定义边界框完成目标检测。
1.由于3D边界框具有各种大小和方向,基于锚的3D检测器难以将轴对齐的2D框拟合到3D对象。
2.在训练期间,先前的基于锚的3D检测器依赖于2D Box IoU进行目标分配,这为为不同类别或不同数据集选择正/负阈值带来了不必要的负担。
论文内容
CenterPoint 总体框架如下:
设 M ∈ R W × H × F M \in \R^{W×H×F} M∈RW×H×F 为 3D Backbone 的输出。
第一阶段: 预测类别特定的热图、对象大小、子体素位置细化、旋转和速度。所有输出都是dense 预测。
Center heatmap head
Center heatmap head的目标是在任何检测到的目标的中心位置处产 生heatmap 峰值。该头部产生 K K K 通道 heatmap Y ^ \hat Y Y^, K K K 个类别中的每个类别对应一个通道。
在训练过程中,它将标注边界框的3D中心投影到 map-view 中产生的2D高斯作为目标。使用 focal loss。
自上而下的 map-view 中的目标比图像中的目标更稀疏。在 map-view 中,距离是绝对的,而图像视图会通过透视(perspective)来扭曲它们。
考虑一个道路场景,在 map-view 中车辆占据的区域很小,但在图像视图中,几个大的物体可能占据大部分屏幕。 此外,透视(perspective)投影中深度维度的压缩自然地将对象中心放置得更靠近彼此。
遵循 CenterNet 的标准监督会产生非常稀疏的监督信号,其中大多数位置被视为背景。为了抵消这一点,论文通过放大在每个地面实况目标中心处渲染的高斯峰来增加对目标热图 Y Y Y 的积极监督。将高斯半径设置为 σ = max ( f ( w l ) , τ ) σ = \max(f(wl),τ) σ=max(f(wl),τ),其中 τ = 2 τ = 2 τ=2 是允许的最小高斯半径, f f f 是 CornerNet 中定义的半径函数。通过这种方式,CenterPoint 保持了基于中心的目标分配的简单性;模型从附近的像素获得更密集的监督。
Regression heads
在目标的中心特征处存储几个目标属性:子体素位置细化 o ∈ R 2 o ∈ \R^2 o∈R2,离地高度 h g ∈ R h_g ∈\R hg∈R,3D尺寸 s ∈ R 3 s ∈ \R^3 s∈R3,以及偏航旋转角 ( sin ( α ) , cos ( α ) ) ∈ [ − 1 , 1 ] 2 (\sin(α),\cos(α)) \in [-1,1]^2 (sin(α),cos(α))∈[−1,1]2。子体素位置 o o o 细化减少了来自 backbone 网络的体素化和跨步的量化误差。地面以上高度 h g h_g hg 有助于在3D中定位目标,并添加由 map-view 投影移除的缺失高程信息。方位预测使用偏航角的正弦和余弦作为连续回归目标。结合框大小,这些回归头提供了3D边界框的完整状态信息。每个输出都使用自己的头。
在训练时,论文在 ground-truth 中心位置使用 L1 Loss 训练所有输出。回归到对数大小,以更好地处理各种形状的bounding box。
在推理时,论文通过索引到每个目标的峰值位置处的稠密回归头输出来提取所有属性。
速度头和跟踪
为了通过时间跟踪对象,学习预测每个检测到的目标的二维速度估计 v ∈ R 2 v ∈ \R^2 v∈R2 作为额外的回归输出。速度估计需要时间点云序列。
在论文的实现中,将先前帧中的点转换并合并到当前参考帧中,并预测由时间差(速度)归一化的当前和过去帧之间的目标位置差异。与其他回归目标一样,速度估计也使用当前时间步长处的 ground-truth 目标位置处的 L1 Loss 来监督。
推理阶段,使用此偏移量以贪婪的方式将当前检测与过去的检测相关联。具体来说,将当前帧中的目标中心投影回前一帧,通过应用负速度估计,然后通过最近距离匹配将它们与跟踪目标进行匹配。Following SORT[2],在删除它们之前保留不匹配的轨道直到 T = 3
帧。更新每个不匹配的轨道与其最后已知的速度估计。
Alex Bewley, Zongyuan Ge, Lionel Ott, Fabio Ramos, and Ben Upcroft. Simple online and realtime tracking. ICIP, 2016.
CenterPoint 将所有 heatmap 和回归损失合并到一个共同目标中,并联合优化它们。它简化和改进了以前基于锚点的3D探测器。然而,所有目标属性目前都是从目标的中心特征推断的,其可能不包含用于准确目标定位的足够信息。例如,在自动驾驶中,传感器通常只能看到物体的侧面,而不能看到其中心。
第二阶段: 过使用第二个精化阶段和一个轻量级的点特征提取来改进中心点。CenterPoint 作为第一阶段。第二阶段从主干的输出中提取额外的点特征。
Two-Stage CenterPoint
从预测边界框的每个面的3D中心提取一个点特征。需要注意的是,边界框中心、顶面中心和底面中心都投影到 map-view 中的同一点。因此,只考虑四个朝外的 box 面和预测的目标中心。对于每个点,使用双线性插值从 backbone map-view 输出 M M M中提取特征。接下来,将提取的点特征连接起来,并将它们传递给 MLP。第二阶段在一阶段 CenterPoint 的预测结果之上预测类不可知的置信度得分和框细化。
对于类别不可知的置信度得分预测,使用由框的3D IoU 引导的得分目标 I I I 以及相应的 gound-truth 边界框:
I = min ( 1 , max ( 0 , 2 × I o U t − 0.5 ) ) (1) \tag1 I=\min(1,\max(0,2\times IoU_t-0.5)) I=min(1,max(0,2×IoUt−0.5))(1)其中 I o U t IoU_t IoUt 是第 t t t 个 proposal 和 ground-truth 之间的 IoU。
使用二进制交叉熵损失进行训练:
L s c o r e = − I t log ( I ^ t ) − ( 1 − I t ) log ( 1 − I ^ t ) (2) \tag2 L_{score} =-I_t \log(\hat I_t) - (1-I_t) \log(1- \hat I_t) Lscore=−Itlog(I^t)−(1−It)log(1−I^t)(2) 其中 I ^ t \hat I_t I^t 是预测的置信度得分。
推理阶段,直接使用第一阶段 CenterPoint 的类别预测,并且计算最终的置信分数计算为两个分数 Q ^ t = Y ^ t ∗ I ^ t \hat Q_t = \sqrt{\hat Y_t * \hat I_t} Q^t=Y^t∗I^t 的几何平均值。其中, Q ^ t \hat Q_t Q^t是对象 t t t 的最终预测置信度, Y ^ t = max 0 ≤ k ≤ K Y ^ p , k \hat Y_t = \max_{0 ≤k≤K} \hat Y_{p,k} Y^t=max0≤k≤KY^p,k 和 I ^ t \hat I_t I^t 分别是第一阶段和第二阶段目标 t t t 的置信分数。
对于框回归,模型预测在第一阶段 proposal 之上的改进,用 L1 Loss 训练模型。论文的两阶段CenterPoint 简化并加速了之前的两阶段3D探测器,这些探测器使用代价比较大的基于PointNet的特征提取器和RoIAlign操作。
Architecture
所有第一级输出共享第一个 3 × 3 卷积层,批量归一化和 ReLU。然后,每个输出都使用自己的分支,由两个3×3卷积组成,由批处理范数和ReLU分隔。我们的第二阶段使用共享的两层MLP,具有批规范,ReLU 和 Dropout ,drop 率为0.3,然后是单独的三层 MLP 用于置信度预测和 Box 回归。
论文总结
论文提出了一种基于中心的激光雷达点云 3D 目标检测与跟踪框架。使用一个标准的三维点云编码器,在头部加上一些卷积层来生成鸟瞰 heatmap 和其他 dense 回归输出。检测是一种简单的局部峰值提取和细化,而跟踪是最近距离匹配。CenterPoint简单、接近实时,在Waymo和nuScenes基准测试中实现了最先进的性能。