FBOCC
约 2839 字大约 9 分钟
2025-04-27
视图变换
Zhiqi Li 1,2 , Zhiding Yu 1 , David Austin 1 , Mingsheng Fang 2 , Shiyi Lan 1 , Jan Kautz 1 , Jose M. Alvarez 1
1 NVIDIA 2 南京大学
摘要
本技术报告总结了在CVPR 2023“端到端自动驾驶研讨会”和“以视觉为中心的自动驾驶研讨会”联合举办的3D占据预测挑战赛中的获胜解决方案。我们提出的FB-OCC方案基于FB-BEV,这是一种利用前向后向投影的先进基于相机的鸟瞰图感知设计。在FB-BEV基础上,我们进一步研究了针对3D占据预测任务的新设计和优化,包括联合深度-语义预训练、联合体素-BEV表示、模型规模化以及有效的后处理策略。这些设计和优化在nuScenes数据集上实现了54.19%的最优mIoU分数,在挑战赛道中排名第一。代码和模型将在以下地址发布:https://github.com/NVlabs/FB-BEV。
1 引言
3D占据预测是指预测3D体素空间中每个体素的占据状态和语义类别,是自动驾驶车辆(AV)感知中的重要任务。通过为规划栈提供丰富信息,预测3D占据对开发安全、稳健的自动驾驶系统至关重要[1]。挑战赛道要求参赛者仅使用相机输入开发占据预测算法,同时允许使用开源数据集和模型,这为探索数据驱动算法和大规模模型提供了便利。该挑战通过在实际场景中为最新3D占据预测算法提供试验场,具有重要影响。
在挑战背景下,除了模型结构设计的努力外,我们强调模型规模和预训练技术的重要性。这一关注源于以下动机:首先,已有多种鸟瞰图(BEV)感知解决方案达到顶尖性能[2,3,4],这些方案可通过修改适配3D占据预测任务。然而,关于大规模模型和预训练对占据预测任务影响的研究仍有限。如本工作所述,大规模模型和预训练技术的使用是我们成功的关键因素。
2 方法
本节将详细介绍我们的解决方案,涵盖以下方面:第2.1节阐述模型设计;第2.2节讨论预训练和规模化工作;第2.3节概述后处理策略。
模型设计
首先介绍FB-BEV。视图变换是基于相机的3D感知的核心模块,现有方法主要基于两种视图变换策略:前向投影(以Lift-Splat-Shoot[5]为代表)和后向投影(以BEVFormer[2]为代表)。FB-BEV采用统一设计,结合两种方法优势,克服各自局限。在FB-OCC中,我们使用前向投影生成初始3D体素表示,再将其压缩为扁平化的BEV特征图。BEV特征图作为查询在BEV空间中关注图像编码器特征,获取密集几何信息。3D体素表示与优化后的BEV表示的融合特征随后输入任务头。
在前向投影模块中,我们遵循Lift-Splat-Shoot(LSS)[5]原则,考虑每个像素深度估计的不确定性,将图像特征投影到3D空间。不同于LSS建模BEV特征,我们直接建模3D体素表示以捕获更详细的3D空间信息。此外,采用BEVDepth[4]利用点云生成精确深度真值,监督模型深度预测以提高准确性。LSS生成的3D表示较稀疏,为此我们引入后向投影方法优化稀疏3D表示。出于计算负担考虑,此阶段使用BEV表示而非3D体素表示。后向投影方法受BEVFormer[2]启发,但不同于其使用随机初始化参数作为BEV查询,我们将3D体素表示压缩为BEV表示,融入更强语义先验。此外,后向投影在投影阶段利用深度分布,实现更精确的投影关系建模。
获取3D体素表示和优化的BEV表示后,通过扩展BEV特征结合二者,得到最终3D体素表示。体素编码器和占据预测头如图1和图2所示。
训练模型时,我们使用受M2BEV[6]启发的距离感知Focal损失函数 Lfl 、Dice损失 Ldl 、MonoScene[7]的亲和力损失 Lscalgeo 和 Lscalserm 、OpenOccupancy[8]的lovasz-softmax损失 Lls 。此外还需深度监督损失 Ld 和2D语义损失 Ls ,详见下节。
规模化与预训练
增加模型规模通常是提升精度的便捷方法。然而在纯视觉3D感知领域,研究者发现使用更强大的2D主干易导致过拟合[3]。例如在nuScenes 3D目标检测任务中,最大主干如VIT-L[9](约3亿参数)和常用主干如ConvNext-B[10]、VoVNet-99[11](约1亿参数)常遇此问题。为解决这一挑战,我们探索在多相机3D感知任务中使用10亿参数主干InternImage-H[12]。但直接应用此主干会因训练样本有限(nuScenes仅4万样本[13])导致严重过拟合。为此,我们利用比赛允许使用额外公开数据的优势,扩充数据资源以更有效训练大规模模型。基于开源的InternImage-H检查点,我们在Object365数据集[14](含200万图像的2D目标检测数据集)上进行预训练,增强模型语义感知能力。但将预训练模型应用于下游3D感知任务仍存在领域差距,因此我们进一步针对3D感知任务进行针对性预训练。有效预训练方法是通过深度估计任务增强模型几何感知能力,故在nuScenes数据集上以深度估计为重点进行大规模预训练。需注意深度预训练缺乏语义级监督,为避免模型过度偏向深度信息而丢失语义先验(尤其是大规模模型易过拟合),我们在深度预测任务中同时预测2D语义分割标签,如图3所示。
nuScenes未提供2D图像语义分割标签,为此采用流行的Segment Anything Model(SAM)[15]进行自动标注。对于nuScenes提供边界框标注的物体类别,使用框提示生成高质量语义掩码;对于无边界框标注的背景类别(如路面、建筑),利用对应的点云语义分割标签,将属于这些类别的激光雷达点投影到图像上,每类随机选三个点作为点提示生成语义掩码,质量良好。借助2D图像语义掩码标签和深度真值图,我们联合训练深度估计和语义分割任务。此预训练任务与最终占据预测任务紧密相关,可直接利用深度值和语义标签生成3D占据结果,为后续占据预测任务提供更优初始模型。
后处理
2.3.1 测试时增强
测试时增强(TTA)中,输入图像水平翻转,3D空间在推理时水平和垂直翻转,共生成每帧八种预测结果,最终预测为所有结果的平均值。我们还观察到占据预测精度随距离显著下降,因此使用时序TTA缓解此问题:对于静态体素,利用靠近自车的前帧预测体素替换当前帧同位置体素。
2.3.2 集成
我们对所有独立结果进行加权求和,权重由两个乘积因子决定:一是与各结果整体mIoU相关的模型权重,二是与该体素类别IoU相关的特定类别权重。使用NNI[16]自动搜索不同权重值。
3 实验
数据集与指标
数据集:占据数据集基于现有nuScenes数据集[13,17]构建。每帧提供[-40m,-40m,-1m,40m,40m,5.4m]范围内的占据标注,体素分辨率为0.4m。数据集含18类,其中一类表示未被占据的空体素,另提供相机掩码指示体素是否被任一相机可见。
指标:挑战赛主要基于mIoU评估模型,公式如下:
mIoU=C1c=1∑CTPc+FPc+FNcTPc,
其中 TPc 、 FPc 、 FBc 分别表示类别 c 的真阳性、假阳性和假阴性预测数, C 为总类别数。
实现细节
训练策略:训练大规模模型时,使用32块NVIDIA A100 GPU,批次大小32,AdamW优化器(学习率 1×10−4 ,权重衰减0.05),主干学习率小10倍。占据任务训练约50轮,时序窗口根据GPU内存确定:Intern-H主干使用6帧,内存充足时最多用16帧。遵循SOLOFusion[18],训练时使用在线时序序列以提升效率。
网络细节:大规模模型中,主干图像特征下采样步长为16,输入图像尺寸640×1600。采用常用数据增强策略(翻转、图像和3D空间旋转)。深度网络预测80个离散深度类别(覆盖2m至42m),生成的3D体素特征分辨率为200×200×16。后向投影模块使用1层,因输入BEV查询已含语义先验。训练阶段忽略相机不可见体素。
消融研究
训练大规模模型需巨大计算资源。我们首先在小规模下验证不同模型效果:输入尺寸256×704,分辨率100×100×8,图像主干为ResNet-50[19]。探索里程碑如表1所示。版本A为基线;版本B使用BEVDepth的深度监督;版本C训练时忽略相机不可见体素;版本D修复了版本C的主要错误(尤其是“其他”类别异常IoU);版本E利用前16帧时序信息;版本F采用联合深度-语义预训练;版本G通过添加Dice损失和3D变换对齐不同时间步体素特征优化损失函数;版本H为版本G的测试时增强结果。
规模化
确定FB-OCC基础设计后,通过更大主干和输入尺寸扩大模型规模,如表2所示。相比版本H,版本I使用VoVNet-99主干,输入尺寸960×1760,体素分辨率0.4m;版本J采用ViT-L主干和ViT-Adapter[20];最强版本K使用InternImage-H主干,参数超10亿。
后处理
最终提交中,我们集成七个模型(主要区别为不同主干)以获取最佳精度,在测试集上达到54.19%的mIoU最高分。
4 结论
本报告描述了我们在CVPR 2023 3D占据预测挑战赛中的获胜方案。该方案展示了顶尖模型设计在BEV感知中的卓越表现,同时证明了视觉基础模型和大规模预训练在3D占据预测中的有效性。