新闻  |   论坛  |   博客  |   在线研讨会
清华大学&英伟达最新|Occ3D:通用全面的大规模3D Occupancy预测基准(1)
计算机视觉工坊 | 2023-05-20 17:22:29    阅读:289   发布文章

自动驾驶感知需要对3D几何和语义进行建模。现有的方法通常侧重于估计3D边界框,忽略了更精细的几何细节,难以处理一般的、词汇表外的目标。为了克服这些限制,本文引入了一种新的3D占用预测任务,旨在从多视图图像中估计目标的详细占用和语义。为了促进这项任务,作者开发了一个标签生成pipeline,为给定场景生成密集的、可感知的标签。该pipeline包括点云聚合、点标签和遮挡处理。作者基于Waymo开放数据集和nuScenes数据集构造了两个基准,从而产生了Occ3D Waymo和Occ3D nuScene基准。最后,作者提出了一个模型,称为“粗略到精细占用”(CTF-Occ)网络。这证明了在3D占用预测任务中的优越性能。这种方法以粗略到精细的方式解决了对更精细的几何理解的需求。

引言

3D感知是自动驾驶等基于视觉的自动驾驶系统的关键组成部分。最流行的视觉感知任务之一是3D目标检测,它根据单目或双目相机图像估计固定本体树中定义的目标的位置和尺寸。虽然输出是可供下游任务使用的简洁的3D边界框,但其表达能力仍然有限,如下图1所示:

图片

  1. 3D边界框表示消除了目标的几何细节,例如,弯曲的总线有两个或多个部分通过旋转连接,工程车辆,所述工程车辆具有从所述主体突出的机械臂;

  2. 很少看到的目标,如街道上的垃圾或树枝,通常被忽略,并且在数据集中没有标注,因为目标类别不能在本体树中广泛枚举。

这些限制要求通用且连贯的感知表示,该感知表示可以对本体树中和本体树外的目标的详细几何结构和语义进行建模。作者认为,了解3D空间中每个体素的占用状态对于实现这一目标很重要。移动自动驾驶中估计占用状态的一项经典任务是占用网格图(OGM)。OGM在一段时间内聚集range测量(如激光雷达扫描),并在贝叶斯框架内估计每个体素被占用的概率。然而,这种解决方案假设了静态环境,不适用于视觉输入。

在这项工作中,作者为基于视觉的自动驾驶感知定义了一个全面的3D场景理解任务,称为3D占用预测。3D占用预测联合估计多视图图像中场景中每个体素的占用状态和语义标签。每个体素的占用状态可以是空闲的、占用的或未观察到的。在3D占有率预测中,为体素提供未观察到的标签至关重要,以考虑可见性并排除未观测到的体素。对占用的体素估计语义标签。对于数据集中具有预定义类别的目标,它们的语义标签对应于各自的类别。相反,未分类的目标被标注为常规目标(GOs)。尽管GOs很少被编码,但出于安全考虑,它们对于自动驾驶感知任务至关重要,因为它们通常不会被预定义类别的3D目标检测检测到。

此外,作者为3D占用预测任务创建了一个标签生成pipeline,以生成场景的密集和可见性感知的真值。该pipeline由几个步骤组成,如时间点云分离、动态目标变换、激光雷达能见度估计和相机能见度估计。通过利用自我姿态和目标轨迹,点云聚合和动态目标变换增强了静态场景的密度,并恢复了动态目标的详细几何结构。此外,作者利用基于光线投射的方法来估计激光雷达和相机的可见性,因为可见性mask对于评估3D占用预测任务至关重要。在公共Waymo开放数据集和nuScenes数据集的基础上,作者相应地为任务生成了两个基准,Occ3D Waymo和Occ3D nuScenes。该任务采用了一系列以体素为中心的语义分割评价指标。最后,作者开发了一个基于transformer的粗略到精细3D占用预测模型,命名为CTF-Occ。CTF-Occ通过交叉注意力操作以有效的从粗到细的方式将2D图像特征聚集到3D空间中。

综上所述,本文的贡献如下:

  1. 作者提出了3D占用预测,这是一项用于基于视觉的自动驾驶应用的通用和全面的3D感知任务。占用预测可以有效地再现任何场景的语义和几何结构。

  2. 作者为occupancy预测开发了一个严格的标签生成pipeline,构建了两个具有挑战性的数据集(Occ3D Waymo和Occ3D nuScenes),并建立了一个基准和评估指标,以促进未来的研究。

  3. 作者提出了一种新的CTF-Occ网络,该网络具有出色的占用预测性能。对于这项具有挑战性的任务,CTF-Occ在Occ3D-Waymo上的性能优于基线3.1 mIoU.

相关工作

3D检测: 3D目标检测的目标是在预先定义的本体中估计目标的位置和尺寸。3D目标检测通常在激光雷达点云中进行。最近,基于视觉的3D目标检测由于其低成本和丰富的语义内容而受到更多关注,此外领域内还提出了几种激光雷达相机融合方法。

3D占用预测:3D occpancy预测的一项相关任务是占用网格图(OGM),这是移动自动驾驶中的一项经典任务,旨在从连续的噪声范围测量中生成概率图。通常,自动驾驶的姿态是已知的,并且这个建图问题可以在贝叶斯框架内解决。最近的一些工作进一步将语义分割与OGM相结合,用于下游任务。请注意,OGM需要来自激光雷达和雷达等测距传感器的测量,并且还假设场景随着时间的推移是静态的。作者提出的3D占用预测任务不具有这些约束,可以应用于动态场景中的纯视觉自动驾驶系统。一项并行工作TPVFormer提出了一种三视角视图方法来预测3D占用率。然而,由于激光雷达的监督,其输出很少。

语义场景补全:另一项相关任务是语义场景补全(SSC),其目标是从部分观测中估计密集的语义空间。SSC与3D占用预测在两个方面有所不同:

  1. SSC专注于通过给定可见部分推断遮挡区域,而占用预测并不去估计不可见区域;

  2. SSC通常适用于静态场景,而占用预测适用于动态场景。

3D占用预测任务定义

给定传感器输入序列,3D occpancy预测的目标是估计3D场景中每个体素的状态。具体地,任务的输入是N个环视图相机图像的T帧历史序列,其中i=1......N和t=1.......T。

作者还假设每个帧中已知的传感器固有参数和外在参数{[R_i| t_i]} 。任务的预期输出是每个体素的状态,包括占用(“已占用”、“空”)和语义(类别或“未知”)。例如,车辆上的体素标注为(“已占用”、“车辆”),自由空间中的体素则标注为(“空”、“无”)。注意,3D占用预测框架还支持额外的属性作为输出,例如实例ID和运动向量;作者把它们作为未来的工作。

处理一般目标

3D语义模糊预测任务的主要优势之一是有可能处理GOs或未知目标。与预先定义所有目标类别的3D目标检测不同,3D占用预测使用占用网格和语义来处理任意目标。目标的几何形状通常由体素表示,包括标注为(“已占用”、“未知”)的词汇表外目标。这种表示和检测通用目标的能力使任务更具通用性,更适合自动驾驶感知。

评估度量

mIoU:由于3D体素级占用预测任务与2D像素级语义分割任务具有相似性,作者使用mIoU来评估模型的性能:

图片

其中分别表示类别c的真正例、假正例和假反例预测。由于强调以视觉为中心的任务,在实践中,许多真值体素在图像中是不可见的。因此,作者只计算图像中可见区域的mIoU。

Occ3D数据集数据集构建pipeline

为3D场景获取密集的体素级别标注可能具有挑战性且不切实际。为了解决这一问题,作者提出了一种半自动标签生成pipeline,该pipeline利用现有的标注3D感知数据集。首先,作者依次聚合来自多个帧的点。然后,作者对加密的点云进行体素化。最后,作者根据它们的可见性来识别体素类型。

数据准备:标签生成pipeline(如下图2所示)需要一个3D数据集,其中每个场景都包含以下传感器数据:

  1. (多视图)相机图像序列;

  2. 3D激光雷达点云序列;

  3. 来自IMU的3D姿势序列。

所有相机和激光雷达的内参和外参也是坐标转换和投影所必需的。此外,作者需要常见目标的人工标注框级语义标签,以及可选的点级语义标签。

图片

点云聚合:稀疏激光雷达观测的3D重建是实时定位和建图(SLAM)[10]中的经典问题。给定一系列激光雷达点云和每帧的IMU姿态测量,作者可以联合优化自我姿态,并将点云聚合到一个统一的世界坐标系中。然而,动态目标在时间聚集之后会出现运动模糊。因此,作者分别处理动态目标和静态目标。根据每个帧处的边界框标注和不同帧之间的自我姿态,对动态目标的点进行转换和聚合。对于静态目标的点,作者只是根据自我姿态来聚合它们。

由于标注序列的每一帧都很耗时,因此一些现有的数据集仅在关键帧处进行标注,例如,nuScenes以10Hz的频率捕获,但以2Hz的频率进行标注。因此,作者在执行上述动态点聚合之前,对带标注的目标框序列进行时间插值,以自动标注未带标注的帧。关于未标注的帧中没有被边界框的点,它们很可能是静态背景。因此,作者使用K-最近邻进行投票,以确定它们的语义标签。通过这种方式,作者获得了密集标注的前景动态目标实例和背景静态点云。

激光雷达能见度:为了从聚合的激光雷达点云中获得密集而规则的3D occpancy网格,一种直接的方法是将包含点的体素设置为“占用”,其余设置为“空”。然而,由于激光雷达点是稀疏的,一些被占用的体素不会被激光雷达光束扫描,并且可能被错误地标注为“空”。为了避免这个问题,作者执行光线投射操作来确定每个体素的可见性。具体来说,作者将每个激光雷达点与传感器原点连接以形成射线,如果体素反射激光雷达点(“占用”)或被射线穿透(“空”),则体素是可见的;否则,它被标注为“未观察到”。通过这种方式,作者产生了一个体素级别的激光雷达可见性mask。

遮挡推理和相机可见性:由于专注于以视觉为中心的任务,作者进一步提出了一种遮挡推理算法,并生成了一个相机可见性mask,指示在当前的多相机视图中是否观察到每个体素。具体地说,对于每个相机视图,作者将每个占用的体素中心与相机中心连接起来,并形成一条射线。沿着每条射线,将第一个被占用的体素之前的体素(包括第一个被占据的体素)设置为“观察到的”,将其余的体素设置为“未观测到的”。未被任何相机射线扫描的体素也被标注为“未观察到”。如下图3所示,在累积激光雷达视图中观察到白色体素但在当前相机视图中未观察到。

图片

请注意,激光雷达能见度mask和相机能见度mask可能因两个原因而不同:

(1)激光雷达和相机的安装位置不同;

(2) 激光雷达的能见度在整个序列中是一致的,而相机的能见度在每个时间戳都不同。

确定体素的可见性对于评估3D占用预测任务很重要:评估仅在激光雷达和相机视图中对“观察到的”体素进行。


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客