OccCylindrical
约 6614 字大约 22 分钟
2025-06-16
摘要:自动驾驶车辆(AVs)的安全运行高度依赖于其对周围环境的理解。为此,3D语义占据预测任务将传感器周围的三维空间划分为体素,并为每个体素标记占据和语义信息。现有的多传感器融合方法主要集中在笛卡尔坐标系下对传感器信息进行交互和融合,但忽略了传感器读数的分布特性,导致细节信息丢失和性能下降。本文提出了一种名为OccCylindrical的方法,该方法在柱坐标系下对不同模态的特征进行合并和细化,能够更好地保留传感器的细节几何信息,从而提升性能。我们在nuScenes数据集上进行了广泛的实验,包括具有挑战性的雨天和夜间场景,结果证明了我们方法的有效性和先进性。代码可在以下链接获取:https://github.com/DanielMing123/OccCylindrical
注
图1:两种方法的流程图。顶部是基于笛卡尔坐标系的方法,底部是我们的方法。与当前多传感器融合框架在笛卡尔坐标系下处理3D特征体积不同,我们在柱坐标系下进行不同模态的特征融合,以更好地保留细粒度几何信息。
I. 引言
理解和建模周围场景对于自动驾驶车辆(AVs)的安全性至关重要。AVs通常配备多种传感器,例如环视摄像头、环视雷达和高密度激光雷达,以提供更好的感知能力。3D语义占据表示的引入进一步增强了AVs的感知能力。基于多传感器融合的方法将环视摄像头、激光雷达和雷达信息作为输入,以预测3D语义占据。由于不同模态传感器之间的互补信息以及对复杂光照和天气条件的鲁棒性,这一研究方向变得越来越受欢迎。现有的方法主要集中在不同传感器模态之间的信息交互和融合上。然而,由于忽略了每种传感器的信息分布特性,这些方法未能有效保留细粒度细节,从而限制了整体模型性能。例如,激光雷达生成的3D点云在近距离区域是密集的,而在更远距离处则变得稀疏。同样,由于图像中的透视效应,靠近传感器的物体看起来更大,而远处的物体则显得更小。
为了克服上述限制并尽可能保留细粒度信息,我们提出了OccCylindrical(见图1底部)。与现有方法(见图1顶部)在笛卡尔坐标系下进行3D特征体的特征细化和融合不同,我们在柱坐标系下进行这些操作,以匹配激光雷达点云的3D点分布。我们从摄像头分支生成伪3D点云,并将其转换为柱坐标系以进行特征细化和融合。中间的3D柱坐标体进一步沿每个轴压缩,形成一组三视图(TPV)极坐标平面,然后通过共享的编码器-解码器进一步细化特征。通过与nuScenes数据集上的其他最新(SOTA)算法进行比较,包括具有挑战性的雨天和夜间场景,我们证明了我们方法的有效性和鲁棒性。本文的主要贡献总结如下:
- 我们提出了OccCylindrical,这是一种基于多传感器融合的3D语义占据预测框架,它使用柱坐标系来更好地保留每种传感器模态的细粒度几何信息。
- 我们引入了一种新的深度估计模块,通过从环视摄像头生成高质量的伪3D点云来增强视觉特征上下文中的深度信息和位置嵌入。
- 我们提出了TPV-Polar-Fusion模块,该模块在柱坐标系下执行空间分组池化和基于注意力的特征融合,以保留每种模态的细粒度几何信息。
- 我们通过与其他SOTA算法在3D语义占据预测任务中的比较,证明了我们方法的有效性。
本文的其余部分结构如下:第II节概述了相关研究,并指出了本研究与以往出版物的关键差异。第III节概述了OccCylindrical的整体框架,并详细解释了每个模块的实现。第IV节展示了我们的实验结果。最后,第V节总结了我们的工作。
II. 相关工作
A. 基于摄像头-雷达融合的3D语义占据预测
在文献[12]中,作者通过提出的高度关联变换器模块,对环视摄像头和雷达进行早期特征融合。该方法首先通过将稀疏雷达点云投影到环视视觉特征上进行早期特征融合,然后应用雷达加权反向投影进行中期特征融合。该方法在3D语义占据预测和3D目标检测任务上均取得了显著的性能表现。其特征处理在笛卡尔坐标系下进行,采用鸟瞰图(BEV)格式以保留相关空间信息。相比之下,我们的方法使用柱坐标系,这与旋转激光雷达生成点云的方式更为一致。这种对齐方式能够保持几何一致性,从而实现更有效的特征融合和中间特征细化,减少信息丢失并提升整体性能。
B. 基于摄像头-激光雷达融合的3D语义占据预测
在文献[11]中,作者采用VoxNet作为3D主干网络,从激光雷达和雷达数据中提取特征,生成初始的3D特征体。随后,应用文献[13]中提出的一种视图变换方法生成额外的3D特征体。这些特征体通过特征融合模块进行中期融合,最终得到融合后的3D特征表示。
类似地,在文献[10]中,作者利用文献[14]中提出的视图变换方法,在笛卡尔坐标系下从环视摄像头生成伪3D点云。然后,引入的深度编码器模块对伪3D点云进行细化。通过对激光雷达生成的真实3D点云和摄像头生成的伪3D点云进行体素化,得到两个分别代表不同模态的3D特征体。最后,引入跨模态融合模块将这两个3D特征体进行整合,得到最终的融合3D表示。尽管这两种方法在基准数据集上均表现出色,但它们依赖于笛卡尔坐标系下的体素化,未能考虑3D点云在空间中的非均匀分布,尤其是由传感器特性引起的密度变化。这导致在远距离区域出现大量空体素网格,细粒度几何细节丢失,从而限制了这些区域特征表示的有效性。
相比之下,我们的方法在柱坐标系下处理来自环视摄像头和激光雷达的伪3D点云和真实3D点云,以实现更好的表示并保留更多细粒度几何信息,从而提升性能。
III. OCCCYLINDRICAL
A. 问题描述
本文旨在利用自动驾驶车辆上的环视摄像头和激光雷达传感器,生成周围环境的密集3D语义占据网格。因此,问题可以表述为:
Occ=M(Cam1,Cam2,…,CamN,LiDAR)(1)
其中,M 表示融合框架,将摄像头和激光雷达信息整合在一起以进行3D语义占据预测。最终的3D语义占据预测结果表示为 Occ∈RX×Y×Z,每个网格被赋予一个语义属性,范围从0到17。在我们的案例中,类别值为0表示空网格。
B. 整体架构
注
图 2:OccCylindrical的整体架构。环视图像首先通过2D主干网络处理以提取视觉特征。随后,应用DepthNet生成基于这些视觉特征的深度分布特征。深度分布特征通过激光雷达点云进行深度监督。同时,预定义的深度分布坐标(作为位置嵌入)与深度特征一起重新融合到视觉特征中,生成深度感知上下文特征。对深度分布特征和深度感知上下文特征进行外积操作,生成伪3D点云。TPV-Polar-Fusion模块以伪3D点云和激光雷达点云为输入进行特征级融合,并输出三视图(TPV)极坐标平面。共享的编码器-解码器结构进一步细化TPV-Polar平面,并将其输出到预测头以进行3D语义占据预测。
整体架构如图2所示。
初始时,给定环视图像 Img={img1,img2,img3,…,imgN} 和激光雷达生成的密集3D点云 PLiDAR,我们应用2D主干网络(例如ResNet50)以获得单尺度视觉特征 V∈RN×C×H×W。
- 随后,将提出的DepthNet应用于视觉特征 V,生成深度分布特征 Vdepth∈RN×D×H×W 及其对应的深度bin坐标 Vdepth coord∈RN×D×H×W×3。
- 同时,利用激光雷达3D点云对深度分布特征 Vdepth 进行深度监督。深度分布特征以及每个深度bin坐标(作为位置嵌入)被加入到视觉特征 V 中,生成深度感知上下文特征 Vcontext∈RN×C×H×W。
- 通过对深度分布特征和深度感知上下文特征进行外积操作,生成伪3D点云 PCam∈Rx×y×z×C。将伪3D点云转换为柱坐标系 PCam Cylin∈Rr×θ×z×C,以实现更好的表示。
激光雷达生成的3D点云 PLiDAR raw 首先通过一个多层感知机(MLP)层以提取几何特征 PLiDAR geo∈Rx×y×z×C1,然后将每个3D点投影到深度感知上下文特征上以聚合语义信息,生成 PLiDAR sem∈Rx×y×z×C2。
- 随后,将 PLiDAR geo 和 PLiDAR sem 在特征通道维度上进行拼接,并输入到另一个MLP层中以进行特征过滤,得到最终的 PLiDAR∈Rx×y×z×C。这一过程描述如下:
PLiDAR geo=MLP(PLiDAR raw)(2)
PLiDAR sem=S(PLiDAR raw,Vcontext)(3)
PLiDAR=MLP(Cat(PLiDAR geo,PLiDAR sem))(4)
其中,S 表示投影和采样操作。随后,将 PLiDAR 转换为柱坐标系 PLiDAR Cylin∈Rr×θ×z×C,以实现更好的表示。TPV-Polar-Fusion模块以 PCam Cylin 和 PLiDAR Cylin 作为输入,生成三视图(TPV)极坐标平面。这些平面进一步通过共享的2D编码器-解码器进行细化,生成多尺度TPV-Polar平面。最后,将多尺度TPV-Polar平面输入到任务头中以进行3D语义占据预测。
重要
Bin: 在OccCylindrical框架中,bin(深度bin)是指在深度估计模块中用于表示深度分布的离散化区间。具体来说,深度bin是将连续的深度值划分为一系列离散的区间,每个区间对应一个深度bin。深度bin的设置是为了将深度信息从连续值转换为可处理的离散形式,便于模型学习和预测。
- 在深度估计模块中,沿着每个视觉特征网格的射线方向,预定义了一组深度bin。这些深度bin将深度范围(例如0到50米)划分为多个离散的区间。
- 每个深度bin的长度是固定的,例如在OccCylindrical中,深度bin的间隔 d 被设置为1米。
C. 深度估计模块
在深度估计模块中,环视图像首先通过2D主干网络处理,生成单尺度视觉特征 V,其分辨率为原始图像的1/16。按照文献[14]-[16]中提出的方法,我们开发了DepthNet,并采用激光雷达笛卡尔坐标系。在DepthNet中,我们沿每个视觉特征网格的射线预定义了一组深度bin,深度bin之间的间隔 d 设置为1米。沿射线的最远深度bin位于射线起点50米处。每个深度bin对应于笛卡尔坐标系中的一个3D点,并表示该体积被占据的概率。深度特征通过激光雷达生成的3D点云进行监督,从而能够更有效地捕捉3D场景的几何结构。此外,受PETR[17]的启发,我们将每个笛卡尔深度bin坐标转换为柱坐标,并将其作为位置嵌入与深度特征一起加入到原始视觉特征 V 中,生成深度感知上下文特征 Vcontext∈RN×C×H×W。这一过程描述如下:
Vcontext=V+CNN1(Vdepth)+CNN2(Vcoord)(5)
其中,Vcoord 表示所有深度bin的3D柱坐标,CNN1和CNN2是基于Conv2D的小型网络,用于将 Vdepth 和 Vcoord 投影到与 V 相同的特征通道维度。最后,对 Vdepth 和 Vcontext 进行外积操作,并将其转换为柱坐标系,生成最终的伪3D点云。
D. TPV-Polar-Fusion
给定柱坐标系下的真实3D点云 PCam Cylin 和伪3D点云 PLiDAR Cylin,TPV-Polar-Fusion模块首先对这两个3D点云进行柱坐标划分,将其转换为柱坐标体积,分辨率为 [R,D,Z]。由于每个柱坐标体素可能包含多个点,因此在每个体素内应用最大池化操作以聚合特征,得到最终的柱坐标体素表示,如下所示:
VCamCylin=MaxPool(PCam Cylin,pCam coord)(6)
VLiDAR Cylin=MaxPool(PLiDAR Cylin,pLiDAR coord)(7)
为了获得2D TPV极坐标平面,我们进一步沿三个轴对柱坐标体积 VCylin∈RR×D×Z×C 进行压缩。按照文献[18]的研究,我们采用空间分组池化而不是最大池化,以更好地保留细粒度几何细节。对于空间分组池化,我们将柱坐标体积 VCylin 沿池化轴 R、D 和 Z 分成 M 组,并在每组中分别进行最大池化。然后,将得到的 M 组特征沿通道维度进行拼接,并输入到一个MLP层中以进行特征过滤。这些过程描述如下:
FRD=MLP(Cat({VR×D×Ci}i=1M))(8)
FDZ=MLP(Cat({VD×Z×Ci}i=1M))
FZR=MLP(Cat({VZ×R×Ci}i=1M))
其中,
VR×D×Ci=MaxPoolZ,i(VR×D×Zi)
VD×Z×Ci=MaxPoolR,i(VD×Z×Ri)
VZ×R×Ci=MaxPoolD,i(VZ×R×Di)
MaxPoolZ/R/D,i 表示沿特定轴对第 i 组柱坐标体积进行最大池化操作。经过空间分组池化处理后,VCam Cylin 和 VLiDAR Cylin 分别生成两组TPV-Polar平面 {FCam RD,FCam DZ,FCam ZR} 和 {FLiDAR RD,FLiDAR DZ,FLiDAR ZR}。随后,将文献[11]中提出的2D动态融合模块分别应用于这两组中的每个2D平面,生成最终融合的TPV-Polar平面 {Ffuse RD,Ffuse DZ,Ffuse ZR}。
E. 共享编码器-解码器
为了增强融合后的TPV-Polar平面,我们采用Swin-Transformer[19]作为编码器以细化特征,随后使用特征金字塔网络(FPN)作为解码器以生成多尺度TPV-Polar平面。具体而言,三个TPV-Polar平面共享相同的编码器和解码器,解码器的输出为四尺度的细化TPV-Polar平面 Frefined={{FlRD,FlDZ,FlZR}l=1L=4}。这些过程描述如下:
{FlRD}l=1L=4=FPN(Swin(Ffuse RD))
{FlDZ}l=1L=4=FPN(Swin(Ffuse DZ))
{FlZR}l=1L=4=FPN(Swin(Ffuse ZR))
此外,由于我们已知最终3D占据体积在3D空间中每个尺度体素网格的笛卡尔坐标,我们通过笛卡尔到极坐标转换以及双线性插值,将最终四尺度3D特征体积从柱坐标系转换为笛卡尔坐标系。这一过程描述如下:
{VlCartesian}l=1L=4=Bilinear(c2d({xli,yli,zli}))
其中,VlCartesian 表示第 l 尺度下的3D特征体积(笛卡尔坐标系),c2d 表示从笛卡尔坐标到柱坐标的转换,{xli,yli,zli} 表示每个尺度3D特征体积的体素网格笛卡尔坐标。最后,我们利用多尺度监督对四尺度3D特征体积进行模型训练。
IV. 实验结果
A. 实现细节
OccCylindrical 使用 ResNet50 [20], [21] 作为 2D 主干网络,采用 FCOS3D [22] 提供的预训练权重来提取图像特征。主干网络从阶段 0、1、2 和 3 的特征图被输入到 FPN [23] 中,生成单尺度视觉特征。我们的方法使用每个数据样本的 10 次激光雷达扫描。使用初始学习率为 5e-5、权重衰减为 0.01 的 AdamW 优化器进行优化。学习率通过多步调度器衰减。该模型在三块 A40 GPU 上训练,每块 GPU 配备 48GB 内存,训练时间为两天。
B. 损失函数
模型使用焦点损失 [24](Lfocal)、Lovász-softmax 损失 [25](Llovasz)和场景类别亲和力损失 [26](Lscalgeo 和 Lscalsem)进行训练。考虑到高分辨率 3D 体积的重要性高于低分辨率体积,对每个分辨率的监督损失施加衰减权重 w=2l1。对于深度监督,使用二元交叉熵损失(Ldepth bce)来优化深度分布特征。最终损失函数如下:
OccLoss=l=0∑32l1×(Llfocal+Lllovasz+Llscalgeo +Llscalsem)
Loss=OccLoss+λLdepth bce
其中 l 表示第 l 个 3D 体积,λ 用于平衡损失权重。在实际应用中,我们设置 λ=3。
C. 数据集
我们的 3D 语义占据预测实验使用 nuScenes 数据集进行,其真值标签由 SurroundOcc [3] 提供。我们定义预测的 3D 语义占据的 X 轴和 Y 轴范围为 [-50, 50] 米,Z 轴范围为 [-5, 3] 米(激光雷达坐标系)。每个数据样本的真值分辨率为 200×200×16,体素大小为 0.5 米。由于测试集中缺乏注释,我们在训练集上训练模型,并在验证集上评估其性能。此外,按照文献 [11] 中提出的方法,我们对模型在具有挑战性的雨天和夜间场景下的性能进行了深入分析。
D. 性能评估指标
为了评估各种最新算法(SOTA)的性能,并将其与我们的方法进行比较,我们使用交并比(IoU)来评估每个语义类别,并采用所有语义类别的平均 IoU(mIoU)作为综合评估指标:
IoU=TP+FP+FNTP
mIoU=Cls1i=1∑ClsTPi+FPi+FNiTPi
其中,TP、FP 和 FN 分别表示预测中的真正例、假正例和假负例的数量,而 Cls 表示总类别数。
E. 模型性能分析
我们通过与最新算法(SOTA)进行比较,评估了我们的方法 OccCylindrical 的性能,并将结果展示在表 I 中。我们的方法在基准测试中排名第一,优于现有的仅使用单一 3D 监督信号训练的多模态 SOTA 方法。尽管我们的双模态方法仅使用了摄像头和激光雷达,但其性能超过了 OccFusion(C+L+R),后者是一种三传感器融合方法。我们的模型在检测小型动态目标(如自行车、摩托车和行人)方面表现出色,这对于自动驾驶车辆的安全运行至关重要。此外,为了全面评估我们的模型在具有挑战性的雨天和夜间场景下的能力,我们使用文献 [11] 中提出的注释对模型进行评估。
我们在表 II 和表 III 中对我们的方法与其他 SOTA 多模态融合方法在雨天和夜间场景下的性能进行了比较。在雨天场景中,所有算法的性能都有不同程度的下降,我们的方法在 IoU 指标上下降了 0.86%,在 mIoU 指标上下降了 0.6%。尽管如此,我们的方法仍然在基准测试中排名第一,并且在雨天场景中保持了对小型动态目标的检测能力,显示出比其他 SOTA 方法更强的鲁棒性。在夜间场景中,由于相机在低光照条件下提供的语义信息有限,所有算法的 IoU 和 mIoU 性能都有所下降。尽管如此,我们的方法仍然排名第一,显示出比其他 SOTA 方法更强的适应性。
F. 在具有挑战性的场景下的定性研究
定性研究比较了我们的方法与其他 SOTA 算法在具有挑战性的场景(包括雨天和夜间条件)下的可视化结果。可视化结果如图 3 所示。在白天场景中(图 3 的顶部),我们的算法成功检测到了远处的移动车辆和行人,如紫色和深红色框所示。特别是,它能够准确识别出隐藏在柱子后面的部分遮挡行人,显示出在保留细粒度几何和语义信息方面的卓越能力。类似地,在雨天场景中(图 3 的中部),我们的算法是唯一一个成功检测到远处部分遮挡行人的方法。在夜间场景中(图 3 的底部),我们的算法仅基于两种模态,成功检测到了远处的摩托车,并且与使用三种模态的 OccFusion(C+L+R)取得了类似的检测结果。
G. 模型效率研究
我们在表 IV 中评估了我们提出的方法的效率,并将其性能与其他 SOTA 算法进行了比较。由于我们使用了比其他 SOTA 算法(它们使用 ResNet101-DCN)更小的 ResNet50 作为 2D 主干网络,并且通过将柱坐标体积压缩成三个 TPV-Polar 平面并密集使用基于 Conv2D 的操作来细化特征,从而消除了所有基于 Conv3D 的操作,因此我们的方法比其他 SOTA 算法运行速度更快。然而,由于伪 3D 点云的密度较高,GPU 内存消耗比其他 SOTA 算法高出约 5GB。
H. 模型组件的消融研究
- 深度估计模块的消融研究:我们研究了深度估计模块中每个组件对整体性能的影响,并将实验结果展示在表 V 中。每个组件对深度估计模块都有影响,其中位置嵌入的贡献最小,其次是深度分布特征和深度监督。
- 伪 3D 点云密度的消融研究:通过设置不同的深度 bin 间隔值来调整伪 3D 点云的密度,并研究其对模型性能的影响,结果总结在表 VI 中。较小的间隔会导致更密集的伪 3D 点云,从而获得更好的模型性能。然而,更密集的伪 3D 点云在推理时会消耗更多的 GPU 内存,如表 VI 所示。
- TPV-Polar-Fusion 的消融研究:通过设置不同的分组参数值 M 并评估每组对整体模型性能的影响,进行了关于 TPV-Polar Fusion 的消融研究。实验结果如表 VII 所示。随着分组数量 M 的减少,模型由于丢失更多的细粒度几何信息而出现性能下降。
V. 结论
本研究提出了OccCylindrical,这是一种新颖的多传感器框架,通过整合环视摄像头和激光雷达数据来执行3D语义占据预测任务。我们提出的方法利用深度估计模块以及激光雷达的3D点云监督,生成高质量的伪3D点云。随后,将真实3D点云和伪3D点云转换至柱坐标系,以更好地保留细粒度几何信息。进一步,我们提出了TPV-Polar-Fusion模块,用于将两个柱坐标体积压缩并融合为一组三视图(TPV)极坐标平面,通过空间分组池化和2D动态融合实现。之后,采用共享的2D编码器-解码器模块(基于图像主干网络)进一步细化这三组TPV-Polar平面。在nuScenes数据集上进行的实验表明,我们的方法在包括具有挑战性的雨天和夜间场景在内的多种场景下均展现出有效性和鲁棒性,并且能够充分发挥每种传感器的独特优势。