写在前面 && 笔者理解
虽然近一年端到端的自动驾驶发展火热,但是以多视角图像推导BEV视角和占用空间的感知技术引领的自动驾驶框架,仍然在很多企业中占据主体。比如今天要分享的这篇,就是华为诺亚方舟实验室对BEV+OCC的继续研究。但是不得不说,这些模型在很大程度上依赖于精确的3D标注,而数据标注的高成本使得越来越多的研究人员和工程师开始关注预训练策略。
- 论文链接:https://arxiv.org/pdf/2411.14716
传统意义上的预训练是监督预训练,用于3D目标检测和占用预测等任务,当然这种方式仍然伴随着标注成本过高的问题。再者,有其他方法使用 对比学习 和 掩码自编码器(MAE) 进行自监督预训练。然而,它们依赖于粗监督,这使得同时有效地捕获语义、3D几何和时间动态变得具有挑战性。UniPAD通过重建体素特征的多视图深度图和图像引入了一种预训练范式(见图1(a))。这种方法使用可微分的体积渲染来构建完整的几何表示。在此基础上,ViDAR结合了下一个帧预测和变换器,并渲染出由未来LiDAR帧监督的相应深度图。然而,这两种技术仍然严重依赖于来自LiDAR数据的显式深度监督来学习3D几何。仅依赖于图像监督的结果不令人满意,这限制了它们在基于摄像头的自动驾驶系统中的应用。
在本文中,作者提出了VisionPAD,这是一个针对视觉中心数据的自监督预训练框架(见图1(b))。与之前使用体积渲染进行图像重建的方法不同,作者利用了更高效的基于锚点的3D Gaussian Splatting(3D-GS)。这篇文章的贡献可以总结为一下几点:
- 能够在相同的计算预算下重建更高分辨率的图像,捕捉更细粒度的颜色细节,而无需射线采样。
- 为了仅从图像中学习运动线索,作者提出了一种自监督的体素速度估计方法。作者使用辅助头预测每个体素的速度,并使用时间戳近似体素流向相邻帧。随后,作者将当前帧的体素扭曲到相邻帧,并使用相应的图像监督3D-GS重建。这种速度预测使模型能够分离动态和静态体素,有助于下游任务中的运动感知。
- 作者采用了多帧光度一致性损失进行3D几何预训练,这是一种自监督深度估计技术,其中算法根据渲染的深度和相对姿态将相邻帧投影到当前帧。
相关工作
自动驾驶中的预训练
在自动驾驶中,预训练已经被广泛应用,来提高在多样化驾驶环境中的可扩展性和适应性。现有的方法可以分为:
- 监督学习
- 对比学习
- Masked AutoEncoder
- 基于渲染的方法。
监督学习方法利用标注的驾驶数据来学习针对特定任务的结构化表示。对比学习方法使用正负成对数据来学习在驾驶场景内变化中保持鲁棒的区分性、视角不变的表示。Masked AutoEncoder方法重建被遮挡或掩码的感官信号,促进对场景语义的整体理解。最近基于渲染的预训练进展提出了新的策略,通过将视觉特征整合到统一的体积表示中进行渲染,从而为自动驾驶感知提供新的策略。与先前工作的关键区别在于这些基于渲染的方法使用了神经渲染,有效地强制编码在体积特征中丰富的几何和外观线索。UniPAD引入了一个掩码生成器用于部分输入遮挡,以及一个模态特定的编码器在体素空间中提取多模态特征,然后基于体积的神经渲染用于RGB和深度预测。ViDAR基于历史周围图像观察预测未来的点云。MIM4D以掩码多帧多视图图像为输入,使用体积渲染重建目标RGB和深度。BEVWorld将图像和LiDAR数据编码为BEV标记,并使用NeRF渲染进行重建,结合了一个潜在的BEV序列扩散模型来预测基于相应动作的未来BEV标记。然而,上述方法仍然严重依赖于显式的深度监督,这在仅限相机的场景中限制了它们的应用。
自动驾驶中的3D Gaussian Splatting
最近,基于3D Gaussian Splatting(3D-GS)的方法获得了显著的关注。3D-GS允许使用3D高斯原语表示场景,通过光栅化实现最小内存占用的实时渲染。已经提出了几种使用这种技术重建驾驶场景的方法。PVG引入了周期振动高斯用于大规模动态驾驶场景重建。DrivingGaussian层次化地使用顺序多传感器数据建模复杂的驾驶场景。此外,StreetGaussians结合了跟踪姿态优化策略和4D球谐外观模型来解决移动车辆的动态问题。HUGS引入了一个新颖的流程,利用3D Gaussian Splatting进行整体城市场景理解。这种方法涉及使用静态和动态3D高斯的几何、外观、语义和运动的联合优化。最近也有一些工作利用3D-GS进行占用和BEV感知。
然而,作者表示3D-GS在自动驾驶预训练中的应用尚未被探索。
方法论
模型概述
VisionPAD的整体框架如图2所示,包含四个关键模块:
- 首先,VisionPAD采用历史多帧多视图图像,并利用具有显式表示的视觉中心感知网络作为主干。
- 其次,一个新颖的3D Gaussian Splatting(3D-GS)解码器从体素表示中重建当前帧的多视图图像。
- 第三,提出了一种体素速度估计策略,预测体素速度,使得当前帧的体素特征可以扭曲到目标帧。这有助于通过3D-GS解码器重建多视图相邻帧图像和深度图。
- 最后,利用当前帧的目标深度图,通过光度一致性损失纳入3D几何约束。
体积构建
3D Gaussian Splatting解码器
预备知识
与体积渲染不同,3D-GS通过基于splat的光栅化高效渲染,将3D高斯投影到目标2D视图,并使用局部2D高斯渲染图像块。作者观察到,当仅使用RGB监督进行预训练时,NeRF每次迭代只能采样有限数量的射线,限制了其学习详细场景几何的能力。相比之下,3D-GS以其高效的基于splat的光栅化,展现出对图像分辨率不太敏感的计算成本,能够渲染更高分辨率的图像,并促进表示学习。
原语预测
自监督体素速度估计
在本文中,作者引入了一种自监督方法来估计每个体素的速度,利用场景中对象的固有时间一致性。这种运动信息丰富了表示,并有助于动态场景的理解。速度引导体素扭曲。如图3所示,附加到体素特征的辅助速度头在世界坐标中回归每个体素的速度向量。之后,作者通过将预测的速度按帧间时间间隔缩放,近似每个体素的流动,使得体素特征从当前帧变换到相邻帧。随后,作者将体素特征扭曲到相邻帧中的估计位置。上述过程可以通过GridSample操作符轻松实现相邻帧渲染。在获得相邻帧的扭曲体素特征后,作者使用3D-GS解码器渲染多视图图像。然后,这些渲染的图像与相邻帧的相应真实图像使用监督损失进行比较。值得注意的是,在反向传播期间,只有速度头的参数被更新。这种针对性的优化策略鼓励网络优先学习区分性运动特征,从而提高性能。
光度一致性
预训练损失
其中ω_1, ω_2 和 ω_3 的权重分别为0.5, 1, 1。
实验及结果
实验设置
作者在MMDetection3D框架下实现。在nuScenes数据集上评估其方法。使用标准的nuScenes Detection Score (NDS) 和平均精度均值(mAP)来评估3D目标检测任务。语义占用预测和地图分割的性能分别使用平均交并比(mIoU)和交并比(IoU)进行评估。
主要结果
作者在三个具有挑战性的下游感知任务上评估VisionPAD的有效性:3D目标检测、语义占用预测和地图分割。3D目标检测的可视化结果可以在图5中找到。
3D目标检测
如表1所示,作者在nuScenes验证集上将VisionPAD与最先进的视觉中心3D目标检测方法进行基准测试。以UVTR作为基线,作者报告了使用UniPAD预训练所达到的性能。尽管仅使用图像数据进行训练,VisionPAD在基线上显示出显著的改进,在没有多帧输入的情况下,NDS和mAP分别提高了1.7和3.8。值得注意的是,没有测试时增强、模型集成或LiDAR监督,VisionPAD达到了49.7 NDS和41.2 mAP,超过了现有的最先进方法。相比之下,在同一监督信号下,UniPAD预训练仅比基线略有提高,甚至在NDS上从45.0略微下降到44.8。虽然将LiDAR投影的深度图作为额外监督可以提高性能,但这突显了仅依赖于从RGB图像中获得的几何监督的局限性,这限制了泛化能力。VisionPAD以其强大的显式深度监督,一致性地优于UniPAD,展示了作者提出的方法的有效性。
语义占用预测
如表2所示,作者的仅图像模态预训练方法超过了某些3D检测监督预训练方法,达到了35.4%,与TPVFormer的34.2%相比。此外,其性能甚至与利用长时间线索的方法相当。在相同设置下,作者的预训练技术显著提高了mIoU性能,从UVTR的30.1%提高到35.4%。值得注意的是,在预训练期间没有深度监督,UniPAD仅实现了1%的mIoU提升。即使使用更强的基线(即BEVDet),使用七个历史帧作为输入,使用VisionPAD预训练仍然显著提高了性能,从39.3%提高到42.0%。这些结果突出了VisionPAD在密集占用预测中的有效性。
地图分割
表3展示了作者的方法和UniPAD在地图分割任务上的性能提升。作者以UVTR作为基线,并使用UniAD的地图解码器进行地图分割预测。结果表明,UniPAD仅比UVTR提高了1.3%,而VisionPAD大幅提升了5.4%的性能。
写在最后
本文介绍了VisionPAD,这是一个新颖的自监督预训练框架,用于自动驾驶中的视觉中心算法。利用 Gaussian Splatting、自监督体素速度估计和光度一致性方法,VisionPAD消除了对显式深度监督的依赖。作者的结果表明,与需要深度监督的现有基于神经渲染的方法相比,VisionPAD在性能上有所提高,并且降低了计算开销。这项工作为高效、可扩展的自监督视觉中心预训练建立了一个新的范式。