Waymo离线点云序列3D物体检测网络 (3D Auto Labeling): Offboard 3D Object Detection from Point Cloud Sequences

在这里插入图片描述
本文介绍一篇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{PiRni×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=[Riti]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},kSj3D bounding box {Bj,k},k∈Sj\left\{\mathcal{B}_{j, k}\right\}, k \in S_{j}{Bj,k},kSj
在这里插入图片描述


3.1 Satic Object Auto Labeling

从图3可以看到,自动生成标签环节有三个小模块:motion state classificationstatic object auto labelingdynamic 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=TrT+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=TsT+s,同样地将box坐标转换为帧TTT下的坐标。将点云序列编码为trajectory embedding,最后与Point Embedding相结合,再通过一个回归网络输出当前帧TTT的预测。


4. Experiments

下面是本文算法与其余3D物体检测算法在Waymo val set的比较。
在这里插入图片描述
下面是人工标注半监督学习的对比实验。

Comparing human labels and auto labels in 3D object detectionResults of semi-supervised learning with auto labelsAblation studies on the improvements to 3D detector MVFAblation studies on 3D detection AP vs. temporal contexts
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

下面是静态自动标注动态自动标注时域大小的对比实验。

Ablation studies of the static auto labeling modelComparing with alternative designs of dynamic object auto labelingEffects of temporal context sizes for object auto labeling
在这里插入图片描述在这里插入图片描述在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/439623.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Waymo自动驾驶数据集介绍与使用教程

本文将对Waymo自动驾驶数据集(Waymo Open Dataset)进行介绍。 论文链接为:https://arxiv.org/abs/1912.04838v7 项目链接为:https://github.com/waymo-research/waymo-open-dataset 数据集链接为:https://waymo.com…

Java 并发基础——线程安全性

线程安全:多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替执行,并且在主调代码中不需要任何额外的同步或协调,这个类都能表现出正确的行为,那么久称这个类是线程安全的。 在线程安全类中封…

详解一阶段3D物体检测网络 SE-SSD: Self-Ensembling Single-Stage Object Detector From Point Cloud

本文介绍一篇一阶段的3D物体检测网络:SE-SSD,论文已收录于 CVPR 2021。 这里重点是理解本文提出的 Consistency Loss 、Orientation-Aware Distance-IoU Loss、Shape-Aware Data Augmentation。 论文链接为:https://arxiv.org/pdf/2104.0980…

详解3D点云分割网络 Cylindrical and Asymmetrical 3D Convolution Networksfor LiDAR Segmentation

本文介绍一篇3D点云分割网络:Cylinder3D,论文已收录于 CVPR 2021。 这里重点是理解本文提出的 Cylindrical Partition 和 Asymmetrical 3D Convolution Network。 论文链接为:https://arxiv.org/pdf/2011.10033.pdf 项目链接为:…

自动驾驶3D物体检测研究综述 3D Object Detection for Autonomous Driving: A Survey

本文介绍一篇最新的自动驾驶3D物体检测研究综述(2021年6月份发布),来源于中国人民大学,论文共26页,99篇参考文献。 论文链接为:https://arxiv.org/pdf/2106.10823.pdf 0. Abstract 自动驾驶被看作是避免人…

Java中接口的多继承

我们知道Java的类只能继承一个类,但可以实现多个接口。但是你知道么?Java中的接口却可以继承多个接口。本文就来说一说Java中接口的多继承。 进入主题之前,先扩展一下。Java为什么只支持单继承呢? 我们不妨假设Java支持多继承&a…

详解基于IMU/GPS的行人定位: IMU/GPS Based Pedestrian Localization

本文介绍一篇使用 IMU/GPS 数据融合的行人定位论文,这里重点是理解本文提出的 Stop Detection 和 GPS Correction。 论文地址为:https://www.researchgate.net/publication/261452498_IMUGPS_based_pedestrian_localization 1. Introduction 低成本的 …

每次maven刷新jdk都要重新设置

pom.xml <java.version>17</java.version> 改为<java.version>1.8</java.version>

【CodeForces - 706D】Vasiliy's Multiset(01字典树)

题干&#xff1a; Author has gone out of the stories about Vasiliy, so here is just a formal task description. You are given q queries and a multiset A, initially containing only integer 0. There are three types of queries: " x" — add integer …

详解自动驾驶仿真框架OpenCDA: An Open Cooperative Driving Automation Framework Integrated with Co-Simulation

本文介绍一款同时支持协同驾驶开发与测试、自动驾驶全栈开发 和 CARLA-SUMO联合仿真的开源框架 OpenCDA&#xff0c;论文已收录于 ITSC 2021。主要feature有&#xff1a; 支持CARLA-SUMO联合仿真&#xff0c;CARLA端主管环境渲染、传感器模拟、车辆动力&#xff0c;Sumo端主管…

JavaMonitor 监视器

为什么wait(), notify()和notifyAll()必须在同步方法或者同步块中被调用&#xff1f; 当一个线程需要调用对象的wait()方法的时候&#xff0c;这个线程必须拥有该对象的锁&#xff0c;接着它就会释放这个对象锁并进入等待状态直到其他线程调用这个对象上的notify()方法。同样的…

KITTI自动驾驶数据集可视化教程

本文介绍关于自动驾驶数据集KITTI的基本操作&#xff0c;包括Camera和LiDAR可视化教程&#xff0c;源码已上传&#xff1a;https://download.csdn.net/download/cg129054036/20907604 1. 数据准备 将 KITTI 数据 (calib, image_2, label_2, velodyne) 添加到 dataset/KITTI/ob…

重读经典《Quaternion kinematics for the error-state Kalman filter》

本文将介绍一篇关于 四元数运动学的误差卡尔曼滤波 经典论文。本文结构如下&#xff1a; 第1章四元数定义和性质介绍&#xff0c;包括&#xff1a;加法、减法、乘法&#xff08;矩阵表示&#xff09;、模、幂数、指数运算等。第2章旋转群定义和性质介绍&#xff0c;包括&#…

【CodeForces - 789C】Functions again(最大子段和变形,dp,思维)

题干&#xff1a; Something happened in Uzhlyandia again... There are riots on the streets... Famous Uzhlyandian superheroes Shean the Sheep and Stas the Giraffe were called in order to save the situation. Upon the arriving, they found that citizens are wo…

一步步编写操作系统 55 CPL和DPL入门2

接上节。 图中第132行的jmp指令&#xff0c;段选择子为SELECTOR_CODE&#xff0c;其RPL的值为RPL0&#xff0c;RPL0定义在include/boot.inc中&#xff0c;其值为0。选择子的索引部分值为1&#xff0c;表示对应GDT中第1个段描述符&#xff0c;该描述符的DPL为0&#xff0c;&…

详解停车位检测算法 Vision-Based Parking-Slot Detection: A DCNN-Based Approach and a Large-Scale Benchmark

本文介绍一篇基于深度学习的停车位检测论文&#xff1a;DeepPS&#xff0c;作者同时公开了数据集ps2.0&#xff0c;工作很扎实&#xff0c;对于入门停车位检测很有帮助&#xff0c;论文发表在 IEEE T-IP 2018。 项目链接为&#xff1a;https://cslinzhang.github.io/deepps/ 0…

Monitor(管程)是什么意思?Java中Monitor(管程)的介绍

本篇文章给大家带来的内容是关于Monitor&#xff08;管程&#xff09;是什么意思&#xff1f;Java中Monitor&#xff08;管程&#xff09;的介绍&#xff0c;有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对你有所帮助。 monitor的概念 管程&#x…

详解经典GPS辅助惯性导航论文 A GPS-aided Inertial Navigation System in Direct Configuration

本文介绍一篇 IMU 和 GPS 融合的惯性导航论文&#xff0c;重点是理解本文提出的&#xff1a;Dynamical constraints update、Roll and pitch updates 和 Position and heading updates。 论文链接为&#xff1a;https://www.sciencedirect.com/science/article/pii/S166564231…

详解停车位检测论文:Attentional Graph Neural Network for Parking-slot Detection

本文介绍一篇注意力图神经网络用于停车位检测论文&#xff0c;论文已收录于 RA-L2021。在之前的基于卷积神经网络的停车位检测方法中&#xff0c;很少考虑停车位标记点之间的关联信息&#xff0c;从而导致需要复杂的后处理。在本文中&#xff0c;作者将环视图中的标记点看作图结…

详解3D物体检测模型 SPG: Unsupervised Domain Adaptation for 3D Object Detection via Semantic Point Generation

本文对基于激光雷达的无监督域自适应3D物体检测进行了研究&#xff0c;论文已收录于 ICCV2021。 在Waymo Domain Adaptation dataset上&#xff0c;作者发现点云质量的下降是3D物件检测器性能下降的主要原因。因此论文提出了Semantic Point Generation (SPG)方法&#xff0c;首…