点击下方卡片,关注“自动驾驶之心”公众号
ADAS巨卷干货,即可获取
今天自动驾驶之心很荣幸邀请到Garfield来分享环视BEV统一预训练算法的最新进展Occ-BEV,Garfield也是我们的签约作者,如果您有相关工作需要分享,请在文末联系我们!
>>点击进入→自动驾驶之心【BEV感知】技术交流群
自动驾驶之心原创 · 作者 | Garfield
编辑 | 自动驾驶之心
1. 论文信息
论文题目:Occ-BEV: Multi-Camera Unified Pre-training via 3D Scene Reconstruction
作者:Chen Min
链接:https://arxiv.org/pdf/2305.18829.pdf
代码:https://github.com/chaytonmin/Occ-BEV
2. 引言
自动驾驶中的多摄像头3D感知系统提供了一种成本有效的解决方案,可以收集车辆周围 的环境信息,因此近年来成为研究热点。然而,目前的多摄像头3D感知模型通常依赖于在单目图像上预训练的ImageNet模型或深度估计模型。这些模型无法考虑多摄像头系统中呈现的固有空间和时间相关性。此外,虽然单目预训练增强了图像特征提取的能力,但它并不能充分解决后续任务的预训练要求。自动驾驶车辆收集大量的图像-LiDAR对,其中包含有价值的三维空间和结构信息。因此,有效利用这些未标记的图像-LiDAR对可有助于增强自动驾驶系统的性能。
近期的研究,如BEVDepth和DD3D,强调了深度估计在基于视觉的感知算法中的重要性。单目深度估计在获取物体的空间位置信息方面起着关键作用。然而,深度估计方法通常专注于估计物体表面的深度,忽略了物体的整体三维结构和遮挡元素。对于 多摄像头感知系统,可以使用三维几何占据网格来描述三维场景。精确的几何占据预测对于提高多摄像头感知系统中整体三维感知的准确性至关重要。因此,在自动驾驶感知领域中,相对于仅强调深度预测,模型的预训练通过优先重构整个三维场景的占据网格会带来更大的收益。
人们具有惊人的能力,可以在头脑中重构被遮挡场景的完整三维几何形状,这对于识别和理解至关重要。为了赋予自动驾驶车辆的感知系统类似的能力,我们提出了一种名为Occ-BEV的多摄像头统一预训练方法。我们的方法利用使用多摄像头系统重构三维场景作为基础阶段的直观概念,然后在下游任务上进行微调。在多摄像头BEV感知的情况下,使用高级技术如LSS或Transformer将输入的多摄像头图像转换为BEV空间,然后加入几何占据预测头来学习三维占据分布,从而增强模型对三维周围场景的理解。由于单帧点云的稀疏性,我们采用多帧点云融合作为占据标签生成的基准。解码器仅用于预训练,而经过良好训练的模型被用于初始化多摄像头感知模型。通过设计有效的多摄像头统一预训练方法,我们使预训练模型能够利用未标记数据中固有的丰富空间和时间信息。这不仅提高了模型理解复杂三维场景的能力,也减少了对昂贵和耗时的手动三维注释的依赖。
为了评估我们方法的有效性,我们使用广泛使用的自动驾驶数据集nuScenes进行了大量实验。实验结果表明,我们的方法在多个关键任务上都取得了最先进的性能表现,如障碍物检测、语义分割和物体跟踪等。特别是,在半监督的场景下,我们的方法可极大地提高自动驾驶系统的性能,使之接近或甚至超过了有监督学习的水平。此外,我们还通过实验验证了我们方法的泛化能力和可扩展性,证明了它的潜力和实用性。综上所述,多摄像头统一预训练方法是一种有效的自动驾驶感知算法,在利用未标记的数据时发挥着重要的作用。该方法通过学习整个三维场景的占据分布来增强自动驾驶车辆的三维感知能力,从而提高了其在复杂环境下的性能表现。这对于实现安全、可靠和高效的自动驾驶系统具有重要意义。
3. 方法
本文提出的方法是Occ-BEV,它是一个用于自动驾驶中的鸟瞰图(BEV)感知任务的多摄像头统一预训练模型。下面从Review of BEV Perception、Geometric Occupancy Decoder、Pre-training Target、Pre-training for Surrounding Semantic Occupancy Prediction几个方面来介绍这个方法。
3.1 Review of BEV Perception
本文回顾了现有的基于视觉的BEV感知方法,并介绍了多摄像头统一预训练模型的工作流程。这个工作流程包括使用图像主干网络对多个摄像头的输入图像进行处理,生成每个摄像头视图的特征图。这些特征图被转换为统一的BEV表示,并通过具体的头部加工,实现了多种自动驾驶感知任务,如3D目标检测、地图分割、目标跟踪等。目前的BEV感知算法通常依赖于在单目图像上训练的特征提取模型(如ImageNet)或深度估计模型(如V2-99)。然而,这些方法忽略了来自不同摄像头视图和帧之间的空间和时间关系,因此缺乏一个多摄像头统一预训练模型。为了充分利用不同摄像头视图之间的空间和时间关系,本文提出了一个多摄像头统一预训练模型。
3.2 Multi-camera Unified Pre-training
Multi-camera Unified Pre-training是一种用于自动驾驶中的鸟瞰图(BEV)感知任务的预训练方法。它通过使用多个摄像头的输入图像,生成每个摄像头视图的特征图,并将这些特征图转换为统一的BEV表示,从而实现多种自动驾驶感知任务,如3D目标检测、地图分割、目标跟踪等。该预训练方法的核心是使用几何占用解码器和预训练目标,对多视角图像的3D场景进行预测。具体地说,预训练目标是二进制几何占用分类任务,训练网络准确预测基于多视角图像的3D场景的几何占用分布。几何占用解码器包括轻量级的3D卷积层,并通过最终层提供每个体素包含点的概率。在预训练期间,解码器的主要目的是重建占用体素。
3.2.1 Geometric Occupancy Decoder
好的,下面我会结合公式,分别介绍下Geometric Occupancy Decoder、Pre-training Target、Pre-training for Surrounding Semantic Occupancy Prediction这三个方面。
首先,Geometric Occupancy Decoder是一个用于预测3D几何占用的解码器。它可以通过轻量级的3D卷积层,对特征图进行处理,并通过最终层提供每个体素包含点的概率。该解码器的输出可以表示为以下公式:
其中,是每个体素包含点的概率,是sigmoid函数,是3D卷积操作,是BEV特征图。Geometric Occupancy Decoder的价值在于通过对多视角图像的处理,能够预测3D场景中每个体素包含点的概率。这对于自动驾驶感知任务非常重要,因为自动驾驶车辆需要准确地感知周围环境,以确保安全行驶。预测3D场景中每个体素包含点的概率,可以帮助自动驾驶车辆更好地理解周围环境的几何形状和占用情况。
3.2.2 Pre-training Target
其次,Pre-training Target是用于生成预训练目标的方法。它使用LiDAR点云来生成占用标签,将LiDAR点云分割成均匀间隔的体素,每个体素表示是否包含点。这些体素的占用情况,即每个体素是否被占用,作为地面真实值。预训练目标是二进制几何占用分类任务,训练网络准确预测基于多视角图像的3D场景的几何占用分布。预训练目标的损失函数可以表示为以下公式:
其中,是体素的数量,是真实值,是预测值。Pre-training Target的价值在于提供了一个准确的预训练目标,用于训练网络准确预测基于多视角图像的3D场景的几何占用分布。由于预训练目标是二进制几何占用分类任务,而且使用了focal loss来解决不平衡的二元分类问题,这可以大大提高预训练模型的准确性和稳定性。此外,使用LiDAR点云来生成占用标签,使其更加符合实际场景,从而提高了预训练模型的泛化能力。
3.2.3 Pre-training for Surrounding Semantic Occupancy Prediction
最后,Pre-training for Surrounding Semantic Occupancy Prediction将预训练算法扩展到周围语义场景完成任务。在几何占用预测的基础上,微调预训练模型,以预测多视角图像的3D语义。具体地说,预训练模型的微调损失函数可以表示为以下公式:
其中,是周围语义标签的真实值,是预测的周围语义标签,是周围语义标签的数量,是微调损失函数的权重系数。Pre-training for Surrounding Semantic Occupancy Prediction的价值在于将预训练算法扩展到周围语义场景完成任务。这样做的好处是,避免了为训练模型收集大量3D语义注释的开销和时间成本。通过微调预训练模型,以预测多视角图像的3D语义,可以更好地理解环境中的物体和场景,从而提高自动驾驶车辆的感知能力和安全性。
4. 实验
该实验结果展示了occbev方法与之前方法在nuScenes验证集上的表现。实验采用了四种不同的模型,分别是DETR3D、BEVFormer、BEVDet和BEVDepth,并比较了它们在使用ImageNet或Occ-BEV预训练的情况下的性能表现。同时,实验还考察了不同的backbone、图像大小和CBGS(即是否使用类别平衡采样)等因素对模型性能的影响。结果表明,使用Occ-BEV预训练的模型在多视角3D物体检测任务中表现更好。以DETR3D模型为例,使用Occ-BEV预训练的模型相比使用ImageNet预训练的模型,在mAP和NDS两个指标上均有明显提升(分别提高了1.1%和2.7%)。此外,在其他模型中也观察到类似的结果。这表明,Occ-BEV预训练方法可以有效提高多视角3D物体检测的性能。此外,实验还表明,使用Occ-BEV预训练方法,即使在没有CBGS的情况下,模型的性能也可以得到提升。这表明Occ-BEV能够有效地利用多视角信息,提高模型的鲁棒性。
该实验结果展示了两种不同方法(DD3D和Occ-BEV)在多视角3D物体检测任务中的表现,使用nuScenes测试集进行评估。结果表明,使用Occ-BEV预训练的DETR3D模型相比使用DD3D预训练的模型,在mAP和NDS两个指标上分别提高了1.9%和1.7%。这表明,Occ-BEV预训练方法可以有效提高多视角3D物体检测的性能,特别是在复杂场景中。同时,使用Occ-BEV预训练的模型在mATE、mASE、mAOE、mAVE和mAAE等误差指标上也均有所下降,表明该方法可以更准确地估计3D物体的位置和姿态。
该实验结果展示了在3D占据预测挑战中,使用不同方法(BEVFormer、BEVDet4D、BEVStereo+Occ-BEV)进行分割的表现。结果表明,在使用Swin-B作为骨干网络的情况下,使用Occ-BEV预训练的BEVStereo方法相比BEVFormer和BEVDet4D方法,在mIoU指标上分别提高了3.14%。同时,BEVStereo+Occ-BEV方法在大多数类别上均有所提高,特别是在“barrier”、“bicycle”和“driveable”类别上提高最为显著,分别提高了26.21%、33.41%和4.69%。这表明,Occ-BEV预训练方法可以有效提高多摄像头语义场景预测的性能,特别是在复杂场景中。
对于下游任务,该方法在多视角3D物体检测和多摄像头语义场景预测的任务上均取得了良好的表现。在多视角3D物体检测任务中,使用Occ-BEV预训练的模型在nuScenes验证集上相比其他方法均有明显提升,例如,相比使用ImageNet预训练的BEVFormer模型,在NDS和mAP两个指标上分别提高了1.7%和2.2%。在多摄像头语义场景预测任务中,使用Occ-BEV预训练的模型在3D占据预测挑战中的mIoU指标上相比BEVStereo方法提高了3%。这表明该方法能够有效提高多视角3D物体检测和多摄像头语义场景预测的性能。
5. 讨论
occbev方法与之前的方法相比有以下不同:
occbev方法采用了多摄像头的输入图像,通过使用多视角图像的信息,实现对动态环境的更好理解和更准确的预测。相比之前的单目图像预训练方法,occbev方法具有更好的时空融合能力。
occbev方法采用了统一的BEV表示方法,使模型能够学习不同摄像头视图之间的共享表示,从而促进更好的知识转移和减少针对特定任务的预训练需求。相比之前的深度估计预训练方法,occbev方法具有更好的多视角信息融合能力。
occbev方法还具有对被遮挡物体的感知能力,通过预测每个体素的占用情况,可以实现对被遮挡物体的更全面的3D重构。相比之前的知识蒸馏方法,occbev方法不需要大量的3D注释数据和预训练的LiDAR检测模型,降低了3D注释的要求和成本。此外,occbev方法还可以使用Nerf等技术生成的3D场景作为标签,从而消除对LiDAR数据的依赖。
虽然Occ-BEV方法在自动驾驶场景中的表现已经显示出了很大的潜力,但是仍有一些改进的空间。以下是一些可能的改进方向:
更好的3D场景重建方法:Occ-BEV方法的性能很大程度上取决于3D场景重建方法的质量,因此改进3D场景重建方法可能有助于提高Occ-BEV方法的性能。
更好的预训练数据集:目前的Occ-BEV方法使用了大规模的未标记图像-LiDAR数据对模型进行预训练。然而,这些数据集可能存在着一些噪声和不准确性,因此收集更准确和丰富的预训练数据集可能有助于提高Occ-BEV方法的性能。
更好的多摄像头融合策略:Occ-BEV方法使用了一种简单的多摄像头融合策略,即将每个摄像头的BEV特征进行平均。然而,更好的融合策略可能会进一步提高模型的性能,例如,考虑不同摄像头之间的距离和角度,以及摄像头的分辨率和视野。
更好的后处理方法:Occ-BEV方法使用了一些简单的后处理方法,例如非极大值抑制和空洞填充,以进一步提高模型的性能。然而,更好的后处理方法可能会进一步提高模型的性能,例如,结合先验知识来消除一些错误的预测结果。
6. 结论
我们定义了多摄像头统一预训练任务,并提出了第一个统一预训练算法,在多项自动驾驶任务中展现了出色的性能,例如多视角3D物体检测和周围语义场景完成。通过使用未标记的图像-LiDAR数据对3D场景进行预训练,可以有效减少对标记3D数据的依赖,并为自动驾驶建立基础模型提供了有前途的机会。未来的工作应该集中在解决提到的限制,并进一步提高我们的方法在实际自动驾驶场景中的性能和适用性。
(一)视频课程来了!
自动驾驶之心为大家汇集了毫米波雷达视觉融合、高精地图、BEV感知、传感器标定、传感器部署、自动驾驶协同感知、语义分割、自动驾驶仿真、L4感知、决策规划、轨迹预测等多个方向学习视频,欢迎大家自取(扫码进入学习)
(扫码学习最新视频)
视频官网:www.zdjszx.com
(二)国内首个自动驾驶学习社区
近1000人的交流社区,和20+自动驾驶技术栈学习路线,想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D目标检测、Occpuancy、多传感器融合、目标跟踪、光流估计、轨迹预测)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频,期待交流!
(三)【自动驾驶之心】全栈技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多传感器融合、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、产品经理、硬件配置、AI求职交流等方向;
添加汽车人助理微信邀请入群
备注:学校/公司+方向+昵称