点击下方卡片,关注“自动驾驶之心”公众号
ADAS巨卷干货,即可获取
点击进入→自动驾驶之心【占用网络】技术交流群
后台回复【3D检测综述】获取最新基于点云/BEV/图像的3D检测综述!
作者|汽车人
编辑|自动驾驶之心
自动驾驶感知需要对3D几何和语义进行建模。现有的方法通常侧重于估计3D边界框,忽略了更精细的几何细节,难以处理一般的、词汇表外的目标。为了克服这些限制,本文引入了一种新的3D占用预测任务,旨在从多视图图像中估计目标的详细占用和语义。为了促进这项任务,作者开发了一个标签生成pipeline,为给定场景生成密集的、可感知的标签。该pipeline包括点云聚合、点标签和遮挡处理。作者基于Waymo开放数据集和nuScenes数据集构造了两个基准,从而产生了Occ3D Waymo和Occ3D nuScene基准。最后,作者提出了一个模型,称为“粗略到精细占用”(CTF-Occ)网络。这证明了在3D占用预测任务中的优越性能。这种方法以粗略到精细的方式解决了对更精细的几何理解的需求。
引言
3D感知是自动驾驶等基于视觉的自动驾驶系统的关键组成部分。最流行的视觉感知任务之一是3D目标检测,它根据单目或双目相机图像估计固定本体树中定义的目标的位置和尺寸。虽然输出是可供下游任务使用的简洁的3D边界框,但其表达能力仍然有限,如下图1所示:
![4753a0beb284c53a713c657ffbb958d4.png](https://i-blog.csdnimg.cn/blog_migrate/5bf322e22d10adb4f87a85026cdb2c59.png)
3D边界框表示消除了目标的几何细节,例如,弯曲的总线有两个或多个部分通过旋转连接,工程车辆,所述工程车辆具有从所述主体突出的机械臂;
很少看到的目标,如街道上的垃圾或树枝,通常被忽略,并且在数据集中没有标注,因为目标类别不能在本体树中广泛枚举。
这些限制要求通用且连贯的感知表示,该感知表示可以对本体树中和本体树外的目标的详细几何结构和语义进行建模。作者认为,了解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空间中。
综上所述,本文的贡献如下:
作者提出了3D占用预测,这是一项用于基于视觉的自动驾驶应用的通用和全面的3D感知任务。占用预测可以有效地再现任何场景的语义和几何结构。
作者为occupancy预测开发了一个严格的标签生成pipeline,构建了两个具有挑战性的数据集(Occ3D Waymo和Occ3D nuScenes),并建立了一个基准和评估指标,以促进未来的研究。
作者提出了一种新的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占用预测在两个方面有所不同:
SSC专注于通过给定可见部分推断遮挡区域,而占用预测并不去估计不可见区域;
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来评估模型的性能:
![075550b695a23ecc06a3e8fa1958c377.png](https://i-blog.csdnimg.cn/blog_migrate/11a2b04c89db3c4a00163998818fd792.png)
其中、和分别表示类别c的真正例、假正例和假反例预测。由于强调以视觉为中心的任务,在实践中,许多真值体素在图像中是不可见的。因此,作者只计算图像中可见区域的mIoU。
Occ3D数据集
数据集构建pipeline
为3D场景获取密集的体素级别标注可能具有挑战性且不切实际。为了解决这一问题,作者提出了一种半自动标签生成pipeline,该pipeline利用现有的标注3D感知数据集。首先,作者依次聚合来自多个帧的点。然后,作者对加密的点云进行体素化。最后,作者根据它们的可见性来识别体素类型。
数据准备:标签生成pipeline(如下图2所示)需要一个3D数据集,其中每个场景都包含以下传感器数据:
(多视图)相机图像序列;
3D激光雷达点云序列;
来自IMU的3D姿势序列。
所有相机和激光雷达的内参和外参也是坐标转换和投影所必需的。此外,作者需要常见目标的人工标注框级语义标签,以及可选的点级语义标签。
![7ed1a955cb09d5a3eba49fe4d26bb805.png](https://i-blog.csdnimg.cn/blog_migrate/5aef0c1fd534578e40ecfa0d7f19729c.png)
点云聚合:稀疏激光雷达观测的3D重建是实时定位和建图(SLAM)[10]中的经典问题。给定一系列激光雷达点云和每帧的IMU姿态测量,作者可以联合优化自我姿态,并将点云聚合到一个统一的世界坐标系中。然而,动态目标在时间聚集之后会出现运动模糊。因此,作者分别处理动态目标和静态目标。根据每个帧处的边界框标注和不同帧之间的自我姿态,对动态目标的点进行转换和聚合。对于静态目标的点,作者只是根据自我姿态来聚合它们。
由于标注序列的每一帧都很耗时,因此一些现有的数据集仅在关键帧处进行标注,例如,nuScenes以10Hz的频率捕获,但以2Hz的频率进行标注。因此,作者在执行上述动态点聚合之前,对带标注的目标框序列进行时间插值,以自动标注未带标注的帧。关于未标注的帧中没有被边界框的点,它们很可能是静态背景。因此,作者使用K-最近邻进行投票,以确定它们的语义标签。通过这种方式,作者获得了密集标注的前景动态目标实例和背景静态点云。
激光雷达能见度:为了从聚合的激光雷达点云中获得密集而规则的3D occpancy网格,一种直接的方法是将包含点的体素设置为“占用”,其余设置为“空”。然而,由于激光雷达点是稀疏的,一些被占用的体素不会被激光雷达光束扫描,并且可能被错误地标注为“空”。为了避免这个问题,作者执行光线投射操作来确定每个体素的可见性。具体来说,作者将每个激光雷达点与传感器原点连接以形成射线,如果体素反射激光雷达点(“占用”)或被射线穿透(“空”),则体素是可见的;否则,它被标注为“未观察到”。通过这种方式,作者产生了一个体素级别的激光雷达可见性mask。
遮挡推理和相机可见性:由于专注于以视觉为中心的任务,作者进一步提出了一种遮挡推理算法,并生成了一个相机可见性mask,指示在当前的多相机视图中是否观察到每个体素。具体地说,对于每个相机视图,作者将每个占用的体素中心与相机中心连接起来,并形成一条射线。沿着每条射线,将第一个被占用的体素之前的体素(包括第一个被占据的体素)设置为“观察到的”,将其余的体素设置为“未观测到的”。未被任何相机射线扫描的体素也被标注为“未观察到”。如下图3所示,在累积激光雷达视图中观察到白色体素但在当前相机视图中未观察到。
![44682b0dd68eca89e0ab188aa9a3521d.png](https://i-blog.csdnimg.cn/blog_migrate/9db57ab25b2cb412de4e70478267c3fc.png)
请注意,激光雷达能见度mask和相机能见度mask可能因两个原因而不同:
(1)激光雷达和相机的安装位置不同;
(2) 激光雷达的能见度在整个序列中是一致的,而相机的能见度在每个时间戳都不同。
确定体素的可见性对于评估3D占用预测任务很重要:评估仅在激光雷达和相机视图中对“观察到的”体素进行。
数据集统计
基于上述半自动标注pipeline,作者生成了两个3D占用预测数据集,Occ3D Waymo和Occ3D nuScenes。Occ3D Waymo包含798个用于训练的序列,202个用于验证的序列。它有14个已知的目标类和一个额外的GO类。Occ3D nuScenes包含600个用于训练的场景和150个用于验证的场景。它有16个GO类。下表1将作者提出的Occ3D数据集与现有数据集在各个方面进行了比较。
![08a019ddae236c4d743422d044cc6270.png](https://i-blog.csdnimg.cn/blog_migrate/987f97baa5baf1674fc3afcfea1bd8d6.png)
粗略到精细占用模型
为了解决具有挑战性的3D占用预测问题,作者提出了一种新的基于transformer的模型,称为粗略到精细占有(CTF-Occ)网络。作者将在本节中详细介绍模型设计。
总体架构
下图4显示了CTF-Occ网络架构图。
![07e266cd4e121488a248d15d137a6b06.png](https://i-blog.csdnimg.cn/blog_migrate/b877b8709ebfbc5b9ee755118852237c.png)
首先,利用图像主干网络从多视图图像中提取2D图像特征。然后,3D体素通过交叉注意力操作将聚集的2D图像特征queries到3D空间中。作者的方法涉及使用金字塔体素编码器,该编码器通过增量标注选择和空间交叉注意力以从粗到细的方式逐步改进体素特征表示。这种方法提高了空间分辨率,并细化了目标的详细几何结构,最终实现了更准确的3D占用预测。此外,作者使用了一个隐式占用解码器,它允许任意分辨率的输出。
粗略到精细体素编码器
与3D目标检测相比,3D占用预测任务涉及对更复杂的目标几何结构进行建模。为了说明这一点,作者的方法在不压缩高度的情况下预先服务于3D体素空间。最初,作者采用形状为H×W×L的可学习体素嵌入来将多视图图像特征聚合到3D网格空间中。然后,作者堆叠多个CTF体素编码器,以实现多尺度交互。每个金字塔级别的每个体素编码器由三个组件组成:增量标注选择模块、体素空间交叉注意力模块和卷积特征提取器。
增量token选择: 如前所述,预测3D占用任务需要详细的几何表示,但如果所有3D体素标注都用于与多视图图像中的感兴趣区域交互,这可能会导致显著的计算和内存成本。考虑到场景中大多数3D体素网格都是空的,作者提出了一种增量标注选择策略,该策略在交叉注意力计算中选择性地选择前景和不确定的体素标注。这种策略能够在不牺牲精度的情况下实现快速高效的计算。具体地,在每个金字塔级别的开始,每个体素token被馈送到二元分类器中,以预测该体素是否为空。作者使用二进制真值占用图作为监督来训练分类器。在作者的方法中,选择K个最不确定的体素标注用于后续的特征细化。有三种方法可以定义K个最不确定的体素:概率接近0.5的体素,得分最高的K个非空体素,或具有特定百分比的两种体素的组合。消融研究表明,在早期选择前景体素是一种更理想的选择。
空间交叉注意力: 在金字塔的每个级别,作者首先选择前K个体素标注,然后聚合相应的图像特征。特别地,作者应用空间交叉注意力来进一步细化体素特征。3D空间交叉注意力定义为:
![0e845143a85c70c434cb9907ca69740d.png](https://i-blog.csdnimg.cn/blog_migrate/067929da625cc690c109fe4fa05b8f00.png)
其中i,j是相机视图和参考点的索引。对于每个选定的体素标注查询,投影实现以获得第i个图像上的第j个参考点。F表示第i个相机视图的特征。作者计算与位于p=(x,y,z)处的查询对应的参考点的真实世界位置(x′,y′,z′)为:
![064e11be22b2f416cf866730c4d42f6a.png](https://i-blog.csdnimg.cn/blog_migrate/565d9916550db1f50b4dd2436f4ffb57.png)
其中H,W,L是当前金字塔级别的3D网格空间形状,s是体素网格的大小。
卷积特征提取器: 一旦作者将可变形的交叉注意力应用于相关的图像特征,就开始更新前景体素标注的特征。然后,使用一系列堆叠卷积来增强整个3D体素特征图中的特征交互。在当前级别结束时,作者使用三重线性插值对3D体素特征进行上采样。整个过程可以描述为:
![2bb16ace118f46711b82f4c3168e3239.png](https://i-blog.csdnimg.cn/blog_migrate/4dff197b0bc1f3ccaf964f6cc6611201.png)
隐式占用解码器
CTF体素编码器生成体素化特征输出,然后将体素特征输入到多个MLP中,以获得最终的占用预测′,其中C′是语义类的数量。此外,作者介绍了一种隐式占用解码器,它可以通过利用隐式神经表示提供任意分辨率的输出。隐式解码器被实现为MLP,该MLP通过两个输入输出语义标签:体素编码器提取的体素特征向量和体素内部的3D坐标。该过程可以描述为
![70be3edfe6867f91da32e103563713e9.png](https://i-blog.csdnimg.cn/blog_migrate/5be36b5167711a68fd67a18a56c1a191.png)
损失函数
为了优化占用预测,作者使用OHEM[30]损失进行模型训练,,,其中、和表示第k类的损失权重、标签和预测结果。此外,作者使用二进制体素掩码来监督每个金字塔级别中的二进制分类头。二进制体素掩码是通过使用,处理每个空间分辨率si下的尾数占用标签来生成的,并且第i级中的二进制分类头的输出表示为pi。二元分类的损失定义为,其中i表示第i个金字塔级。最后,总损失为。
实验
实验设置
数据集: Occ3D Waymo总共包含1000个公开可用的序列,其中798个场景用于训练,202个场景用于验证。场景范围沿X轴和Y轴设置为-40米至40米,沿Z轴设置为-5米至7.8米。Occ3D nuScenes包含700个训练场景和150个验证场景。X轴和Y轴的占用范围定义为-40米至40米,Z轴为-1米至5.4米。作者选择0.4m的体素大小在两个数据集上进行实验。
架构: 作者使用在FCOS3D[36]上预训练的ResNet-101[13]作为图像主干,对于Occ3D Waymo,图像大小被调整为(640×960),对于Occ3D nuScenes,图像大小调整为(928×1600)。除了z轴的分辨率外,作者对两个数据集采用了相同的CTF-Occ网络架构设置。体素嵌入的形状是(200×200),具有256个通道。体素嵌入将首先通过四个编码器层,而不进行token选择。Occ3D Waymo数据集有三个金字塔级,每个级的z轴分辨率分别为8、16和32。Occ3D nuScenes数据集的每个阶段的z轴分辨率分别为8和16(对于两个金字塔阶段)。每个阶段包含一个SCA层,并且对于所有金字塔阶段,增量token选择策略的top-k比率都设置为0.2。
作者还将两个主流BEV模型——BEVDet[14]和BEVFormer[18]扩展到3D占用预测任务。作者用CTF-Occ网络中采用的占用解码器取代了他们原来的检测解码器,并保留了他们的BEV特征编码器。根据他们的原始设置,作者采用从FCOS3D[36]检查点初始化的ResNet101 DCN作为图像主干。
实施细节: 作者使用AdamW优化器[23]和余弦学习速率调度器,学习速率设置为2e-4。除非另有规定,否则所有模型都训练了24个epoch进行比较,8个epoch进行消融研究。
6.2.与以前的方法进行比较
Occ3D nuScenes: 下表2显示了与Occ3D nuScenes数据集上的相关方法相比,3D占用预测的性能。可以观察到,在IoU度量下,作者的方法在所有类中的性能都比以前的基线方法好。这些观测结果与Occ3D Waymo数据集中的观测结果一致。
![90e3201b58ba5fd9230805c85fbb1aeb.png](https://i-blog.csdnimg.cn/blog_migrate/88d3c776a3767655402fe8ff33c325af.png)
Occ3D Waymo: 作者将CTF-Occ网络的性能与新提出的Occ3D Waymo数据集上最先进的模型进行了比较。结果如下表4所示。作者的方法比以前的方法有显著的优势,即将mIoU增加了3.11。特别是对于一些小目标,如行人和自行车,方法分别超过基线方法4.11和13.0 IoU。这是因为作者在不压缩高度的情况下捕捉3D体素空间中的特征,这将保留目标的详细几何结构。结果表明了作者的从粗到细体素编码器的有效性。
![62373e4dfeba916e499a80ffabfafbe0.png](https://i-blog.csdnimg.cn/blog_migrate/d570141ba4c905a529b68aa8a9648604.png)
消融研究
在本节中,作者消融了增量token选择和OHEM损失的选择。结果如下表3所示。CC代表交通锥,PED代表行人。作者专注于CC和PED,以验证作者在小目标上实现。这两种技术都能提高性能。使用OHEM损失和top-k token选择可产生最佳性能。如果没有OHEM损失,作者只能得到10.06 mIoU。将OHEM损失与随机token选择策略相结合,可实现14.75 mIoU。使用OHEM损失的不确定token选择策略可实现17.37mIoU。对于token选择,不确定选择和前k选择不相上下,它们显著优于随机选择。
![6f21ea3ae8ac9b6062a72810646b9bef.png](https://i-blog.csdnimg.cn/blog_migrate/62ba37acb0c0a4c3ce9a722cf36a6d03.png)
定性结果
作者将CTF-Occ网络输出与图5中Occ3D Waymo数据集上的最先进方法BEVFormer Occ进行了比较。作者可以看到,CTF-Occ网络输出了比BEVFormer-Occ结果更详细的体素几何结构。此外,作者的体素解码器能够以任何分辨率产生输出,而不受真值数据分辨率的限制。
![f53bde85d322df8776b72993b7c35b73.png](https://i-blog.csdnimg.cn/blog_migrate/737b367394f7aeb222c27153571a57ea.png)
结论
作者提出了Occ3D,一个用于视觉感知的大规模3D占用预测基准。该基准测试包括一个数据生成协议、两个数据集和用于该任务的模型CTF-Occ网络。它们都将开源,以促进未来的研究。研究表明,语义占用为目标提供了更具表现力和丰富的表示。此外,它提供了已知和未知目标的统一表示,这对户外自动驾驶感知至关重要。除了直接使用外,这个基准为未来的研究开辟了几个途径。例如,将实例ID添加到语义体素将从本质上改变任务为全景分割,并提供更丰富的信息。
参考
[1] Occ3D: A Large-Scale 3D Occupancy Prediction Benchmark for Autonomous Driving
开源地址:https://tsinghua-mars-lab.github.io/Occ3D/
视频课程来了!
自动驾驶之心为大家汇集了毫米波雷达视觉融合、高精地图、BEV感知、传感器标定、传感器部署、自动驾驶协同感知、语义分割、自动驾驶仿真、L4感知、决策规划、轨迹预测等多个方向学习视频,欢迎大家自取(扫码进入学习)
(扫码学习最新视频)
国内首个自动驾驶学习社区
近1000人的交流社区,和20+自动驾驶技术栈学习路线,想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D目标检测、Occpuancy、多传感器融合、目标跟踪、光流估计、轨迹预测)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频,期待交流!
【自动驾驶之心】全栈技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多传感器融合、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、产品经理、硬件配置、AI求职交流等方向;
添加汽车人助理微信邀请入群
备注:学校/公司+方向+昵称