
本文介绍一篇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 |
|---|---|---|
![]() | ![]() | ![]() |










