本文介绍一篇Waymo
基于点云序列的3D物体检测网络:3D Auto Labeling
,论文已收录于CVPR 2021。 这里重点是理解本文提出的 Object-centric Auto Labeling。
论文链接为:https://arxiv.org/abs/2103.05073
2021-09-02补充:本文作者之一对这篇论文的解读。
Waymo研发经理|自动驾驶感知前沿技术介绍
0. Abstract
当前的 3D物体识别
研究主要集中在实时场景上,但仍有许多未充分探索的离线感知场景,例如使用机器自动生成高质量的 3D 标签。
由于输入和速度限制,现有的3D物体检测器无法满足离线使用的高质量需求。因此本文提出了一种使用点云序列数据的新型离线3D物体检测模型
。通过捕获物体在不同帧的视图,本文设计了一个离线检测器,通过多帧物体检测
和新的以物体为中心的细化模型
来使用点云序列进行检测。
在 Waymo
开放数据集上进行评估后,与最先进的在线检测器以及与离线基准相比,本文设计的 3D自动标注
模型显示出更高的性能,甚至可以达到人工标注的水平。
1. Introduction
在引言中,作者提出在点云序列中,物体的不同视角包含关于其几何形状的互补信息
,如左图所示。因此本文提出使用多帧点云作为输入
,同时又使用多物体追踪
将不同帧检测的物体关联起来,最终提取物体点云数据和检测框,检测性能如右图所示。
2. Offboard 3D Object Detection
问题描述:设输入点云序列
为 {Pi∈Rni×C},i=1,2,…,N\left\{\mathcal{P}_{i} \in \mathbf{R}^{n_{i} \times C}\right\}, i=1,2, \ldots, N{Pi∈Rni×C},i=1,2,…,N,其中NNN表示总帧数,Pi\mathcal{P}_{i}Pi表示每一帧点云。同时也已知不同帧的传感器坐标位置
{Mi=[Ri∣ti]∈R3×4},i=1,2,…,N\left\{\mathcal{M}_{i}=\left[R_{i} \mid t_{i}\right] \in \mathbf{R}^{3 \times 4}\right\}, i=1,2, \ldots, N{Mi=[Ri∣ti]∈R3×4},i=1,2,…,N,因此我们可以补偿自车运动。对于每一帧输出为 3D bounding box (中心位置,大小和方向),物体类别
,以及所有物体的ID号
。
与以往的以frame
为中心的多帧输入检测不同,本文提出以object
为中心进行多帧检测,使用多帧检测器输出初始的物体位置,对于每一个物体,通过追踪可以提取所有与物体相关的点云数据和检测box。然后对物体轨迹数据进一步处理,最终输出追踪级别的物体boxes,这一个过程与人工标注很相似(定位、追踪、追踪优化),因此也被成为 3D Auto Labeling
。
3. 3D Auto Labeling Pipeline (重点)
算法框架如下图所示,输入为点云序列,3D物体检测器
首先给出每一帧中的物体类型、得分、3D bounding box
。然后使用多物体追踪器
将不同帧的物体boxes关联起来。提取出每一个物体的点云数据和 3D bounding box
,最终通过object-centric auto labeling
来生成标签。
在3D物体检测
中,本文提出使用多帧的MVF++
作为检测器,通过自车运动将其余帧点云坐标转换为当前帧坐标;多物体追踪中本文使用了AB3DMOT
作为追踪器。接下来是提取点云数据{Pj,k},k∈Sj\left\{\mathcal{P}_{j, k}\right\}, k \in S_{j}{Pj,k},k∈Sj 和 3D bounding box
{Bj,k},k∈Sj\left\{\mathcal{B}_{j, k}\right\}, k \in S_{j}{Bj,k},k∈Sj。
3.1 Satic Object Auto Labeling
从图3可以看到,自动生成标签环节有三个小模块:motion state classification
、static object auto labeling
、dynamic object auto labeling
。本文中使用了一个线性分类器
来判断物体是否静止,准确度可以达到99%,具体细节可以看文章附录E。
下面介绍静态物体自动标注
模块,对于静态物体,该模块将物体在不同帧的点云进行合并得到新的点云 Pj=∪{Pj,k}\mathcal{P}_{j}=\cup\left\{\mathcal{P}_{j, k}\right\}Pj=∪{Pj,k},预测出单个box,然后根据传感器位置转换到不同帧中,流程图如图4所示。首先会将点云转换为box坐标,这里使用得分最高的box作为初始box。然后使用实体分割网络分割出前景点,同时迭代回归物体 bounding box,所有网络都是以PointNet
作为网络架构,具体细节可以看文章附录F。
3.2 Dynamic Object Auto Labeling
动态物体自动标注
流程图如图5所示。这里使用滑动窗口
方式预测出每一帧的box,有两个分支,一个点云序列分支,一个box序列分支。
点云子序列为 {Pj,k}k=T−rT+r\left\{\mathcal{P}_{j, k}\right\}_{k=T-r}^{T+r}{Pj,k}k=T−rT+r,根据当前帧检测box (Bj,T\mathcal{B}_{j, T}Bj,T) 将点云子序列转换为box坐标,同样地使用分割网络分割出前景点,然后通过点云编码网络将物体点云编码为Point Embedding
。
对于Box子序列 {Bj,k′}k=T−sT+s\left\{\mathcal{B}_{j, k}^{\prime}\right\}_{k=T-s}^{T+s}{Bj,k′}k=T−sT+s,同样地将box坐标转换为帧TTT下的坐标。将点云序列编码为trajectory embedding
,最后与Point Embedding
相结合,再通过一个回归网络输出当前帧TTT的预测。
4. Experiments
下面是本文算法与其余3D物体检测算法在Waymo val set
的比较。
下面是人工标注
和半监督学习
的对比实验。
Comparing human labels and auto labels in 3D object detection | Results of semi-supervised learning with auto labels | Ablation studies on the improvements to 3D detector MVF | Ablation studies on 3D detection AP vs. temporal contexts |
---|---|---|---|
下面是静态自动标注
、动态自动标注
、时域大小
的对比实验。
Ablation studies of the static auto labeling model | Comparing with alternative designs of dynamic object auto labeling | Effects of temporal context sizes for object auto labeling |
---|---|---|