纯卷积BEV模型的巅峰战力 | BEVENet不用Transformer一样成就ADAS的量产未来(转)
近年来,在自动驾驶领域,鸟瞰视角(BEV)空间中的3D目标检测作为一种普遍的方法逐渐脱颖而出。尽管与视角视图方法相比,BEV方法在精度和速度估计方面得到了改进,但将BEV技术部署到实际自动驾驶车辆中仍然具有挑战性。这主要归因于它们依赖于基于视觉 Transformer (ViT)的架构,这使得相对于输入分辨率,其具有平方复杂度。
为了解决这个问题,作者提出了一种高效的BEV-based 3D检测框架,称为BEVENet,它利用了卷积神经网络(CNN)的唯一架构设计,绕过了ViT模型的限制,同时保持了BEV方法的有效性。
作者的实验表明,与当前最先进(SOTA)方法相比,BEVENet在NuScenes挑战上的速度提高了3倍,在NuScenes验证数据集上实现了平均平均精确度(mAP)0.456和NuScenes检测得分(NDS)0.555,推理速度为每秒47.6帧。据作者所知,这是第一个实现BEV方法效率如此显著提高的研究,突显了它们在实际自动驾驶应用中的增强可行性。
I Introduction
近年来,在自动驾驶领域,鸟瞰视角(BEV)空间中的3D目标检测取得了很大的进展。作为激光雷达(LiDAR)方法的替代方案,使用周围摄像头生成伪激光雷达点在自动驾驶领域被视为一种既经济又具有前景的解决方案。因此,为了将感知任务集成到BEV空间中,提出了许多方法。
然而,现有的方法通常在计算上具有很高的要求,并且严重依赖于大规模的数据集。尽管这些条件可以在实验室环境中得到满足,但在实际车载环境中实现这些方法仍然面临巨大的困难。视觉 Transformer (ViT)模块[1]是导致GPU内存消耗和矩阵操作的主要原因。尽管ViT架构由于能够捕捉全局语义信息而在基于BEV的方法中得到广泛应用,但需要在大规模数据集上进行训练,并且训练时间比卷积神经网络(CNNs)需要更长,以便促进模型了解像素之间的位置关系。尽管训练成本增加,但与基于CNN的方法相比,ViT在各种视觉基准测试中仅带来了微小的改进。
ViT模型的另一个显著局限性是它们与输入维度的平方复杂度,具体来说就是输入图像的分辨率。尽管这些模型无疑是非常强大的,但它们在嵌入式设备上的部署受到受限制的计算资源的阻碍。此外,ViT模型确实喜欢大的输入分辨率来提高3D检测的性能。然而,自动驾驶场景中的大多数物体相对较小,因此它们的检测仍然是ViT模型的一个持续挑战。
在上述分析的基础上,作者提出通过研究替代方法来解决这些限制,例如纯粹的CNN基础模块。在本工作中,作者的主要目标是设计一个在受限制的硬件条件下使用BEV范式的有效3D检测框架。为此,作者对3D检测 Pipeline 中的六个基本组件进行了系统分析: Backbone 网络、视图投影、深度估计、时间融合、BEV特征编码和检测Head。在分析中,作者考虑了模型复杂性和基准测试指标,因为它们是神经网络模型在实际部署中必不可少的指标。
作者具体提出BEVENet,这是用于缩写基于BEV的神经网络,作为资源高效的模型,旨在实现BEV方法在实际部署中的高效运行。通过采用卷积神经网络(CNN)的唯一设计,作者旨在在保持与最先进(SOTA)方法相当性能的同时,加速模型推理速度。
如图1所示,作者证明了基于BEV的纯CNN实现是转换器模型的一个强大替代方案。作者的模型在mAP = 0.456和NDS = 0.555的最佳性能下,实现了每秒47.6帧的推理速度,这比NuScenes挑战上当前最先进的SOTA方法快3倍,GFlops比大约小10倍。
II Related work
Backbone Models
Backbone 模型是视觉感知任务的基石。AlexNet的出现引发了各种视觉任务进步的迅速发展,其中VGGNet和ResNet是视觉应用中 Backbone 模型的两个重要里程碑。VGGNet最初证明了通过增加神经网络的深度来提高视觉任务性能的可能性,而ResNet则通过创新使用 Short-Cut ,将 Backbone 模型的深度扩展到152层,进一步扩展了 Backbone 模型的深度。变形卷积网络(DCN)揭示了固定滤波器大小并非学习视觉特征的必要条件。
在高效推理领域,EfficientNet最初强调了部署友好设计的重要性,而RepVGG最近在推理导向模型中建立了一种新兴范式。此外,ElanNet,是结构重参化的关键体现,展示了卷积神经网络(CNN)模型在部署场景中的无与伦比优势。
在计算机视觉领域之外,自然语言处理(NLP)任务也得益于 Backbone 模型的改进。 Transformer 和其变体在许多NLP任务中占据主导地位。受到NLP中 Transformer 广泛应用的启发,Dosovitskiy等人提出了视觉 Transformer (ViT)作为计算机视觉的通用 Backbone 模型。从膨胀卷积层中得到启示,Swin Transformer代表了将ViT应用于视觉任务的另一个显著尝试。
3D Detection Methods
3D目标检测是自动驾驶系统感知模块中的一个基本任务,自从引入BEV范式以来,已经取得了显著的进步。利用周围摄像机提供的精确语义信息、前帧的时间输入和LiDAR输入提供的深度信息监督,仅使用相机的3D检测方法正在迅速接近基于LiDAR的方法的性能。
DETR3D首次采用了多视图像输入范式来提高3D检测性能。结合时间信息,BEVFormer相对于DETR3D在mAP上提高了10点。BEVDet4D,在扩展Lift-Splat-Shoot(LSS)的同时,使用显式的BEV编码器,实现了类似的结果,而无需从CAN总线信息中获取额外的输入。BEVDepth,结合LiDAR输入的深度信息,进一步验证了BEV空间内的感知有效性。
Lift-Splat-Shoot,将2D视图的图像转换到3D视图的经典而高效的方法,开始利用周围摄像头输入来增强3D感知性能。每个图像都被单独“提升”到每个摄像机的特征片状体中,“将所有片状体合并到栅格的鸟瞰视角中”,“最终将不同轨迹射向成本图”。随着BEV方法的出现,预计纯视觉方法将很快达到LiDAR方法的性能。
III Methodology
Design Philosophy
作者的目标是设计一个高效模型,专门针对在有限硬件资源上部署,同时保持BEV基础方法的精度。作者采用减少复杂性的方法,逐步减少每个模块的复杂性。
具体来说,作者首先通过理论分解和GFlop的复杂性分析,将NuScenes挑战排行榜上的最先进方法分解和复杂化。然后,作者逐步为每个模块选择替代方案,以速度作为设计选择的基准。最后,作者通过结合 established baselines 中的最佳模型调优策略,试图提高最终3D检测任务的性能。
Network Structure
如图2所示,BEVENet架构包括6个模块:
- 一个共享的ElanNet Backbone 模型,经过NuImage预训练;
- 一个视图投影模块LSS,具有查找表;
- 一个全卷积深度估计模块,具有数据增强;
- 一个具有2秒历史信息的时序模块;
- 一个BEV特征编码器,具有残差块;
- 一个简化后的检测Head,具有Circular NMS。
Backbone Model
作者的 Backbone 模型是3D检测任务的基础,利用来自六个周围视角相机的输入,提取后续任务所需的关键语义特征。为了减轻视觉 Transformer (ViT)模型带来的复杂性挑战,作者进行了一个比较研究,使用了一个精心挑选的四个模型。
在作者的探索中,作者力求对比ViT模型及其卷积对应模型之间的复杂性差异,作者精心选择每个类别中的两个代表性模型。这些包括简单的ViT,Swin Transformer,ResNet和ElanNet。通过这种比较研究,作者旨在找出最佳性能的模型,同时遵守作者的目标,即提高简洁性和增强性能。
除了对比 Backbone 外,作者还同时研究了可能的技术来提高模型性能,作者试图减轻不同来源的数据集的统计偏移对模型性能的影响。具体来说,作者采用了在NuImage上的预训练。
View Projection
遵循Lift-Splat-Shoot和BEVDet,作者的特征投影模块预测每个像素的深度概率,根据几何相似度计算 GT 深度(图3)。
像素的坐标被转换为特征图向量,表示在位置处的深度概率,乘以向量和。通过光线路投影和摄像机的内参和外参,图像域坐标被转换为空间域。最终通过在平面上的 Voxel 化进行BEV特征计算。固定2D-to-3D投影矩阵不包含可学习参数。
为了加速推理,作者在数据处理过程中计算这个矩阵,并在训练和测试期间通过查找表加载。
Depth Prediction
为了补偿视图投影引起的深度精度噪声,作者引入了一个深度估计模块。该模块将 Frustum 云点的深度预测与其自己的深度预测叠加,通过经验确定的权重进行平均。模块输入LiDAR点及其多视图像,其中前者作为 GT 值,后者经过增强以增强预测的鲁棒性(图4)。将图像特征、相机参数和图像增强转换矩阵合并输入到编码层。深度估计模块利用相机的内参和外参来增强深度预测。
Temporal Fusion and BEV Encoder
作者的时间融合模块,旨在增强3D检测的准确性,利用模型利用潜在的时间信息。在模糊或遮挡的场景中,它可以根据过去的位置推理隐藏物体的位置。这个简单设计的模块,通过卷积编码器处理来自前两秒帧的特征图,利用前两秒内的特征更好地解释模糊物体的运动和位置。
同时,BEV编码器模块作为伪激光雷达云和最终检测Head之间的中间层。采用两个残差块将稀疏的激光雷达点转换为密集的特征点矩阵。BEV空间中的每个网格都是通过 Voxel 化以预定义的分辨率生成的。
Detection Head
基于BEV特征,检测Head基于CenterPoint。作者将预测目标设置为包括自动驾驶场景中的物体位置、 Scale 、方向和速度。在训练阶段,作者采用与CenterPoint相同的设置进行公平比较。
正式地,作者将损失设置为:
Ltotal = (a*Ldet + b*Lcls + c*L2d)/ N (1)
其中是平滑L1损失,是高斯聚焦损失,也是平滑L1损失,但应用于2D输入作为对模型提高局部化能力的惩罚。
在推理阶段,根据RepVGG,作者将所有多分支卷积层和批标准化层重新参数化为级联的平面卷积网络。如图5(a)所示,检测Head包括几个并行的卷积神经网络。这种结构可以通过将卷积层和批标准化层合并来简化。如图5(c)所示,一个类似于ResNet的结构等同于没有 Short-Cut 或1x1卷积的平面卷积网络。无需进行任何特殊操作,可以直接将Identity模块添加到输出特征图。同时,批标准化层可以与卷积层通过数学求和的方式将批输入的平均值和标准差相加来组合。
正式地,令和。
(3)
其中是新权重,将卷积层和批标准化层结合,是新偏置。
如图5(b)所示,多分支卷积模块可以通过合并相邻单元的权重和偏置来简化。假设在合并操作之前,单个单元的性能下降是受后量化误差限制的,那么可合并单元的最大数量由预量化或全精度量化误差除以后量化误差确定,即。在作者的实验中,合并相邻单元的数量经验上设置为2。
IV Experiments
Experiment Settings
数据集和评价指标:作者的模型BEVENet使用NuScenes基准数据集进行评估,该数据集通过六个摄像头和一个激光雷达传感器捕获了1000个驾驶场景。该数据集为3D检测任务在51.2米地面平面上标注了十个类别。性能评估利用了官方NuScenes指标,即平均精确度(mAP)、平均位移误差(ATE)、平均 Scale 误差(ASE)、平均方向误差(AOE)、平均速度误差(AVE)、平均属性误差(AAE)和NuScenes检测得分(NDS),以及效率导向指标,即每秒帧数(FPS)和GFlops。前者在排除预处理和后处理时间后的NVIDIA A100 GPU上测量性能,而后者使用了MMDetection3D工具包。
训练参数:模型使用Adam优化器,学习率设置为2e-4,权重衰减设置为1e-2。每个8个A100 GPU卡的实验轮次中,batch大小设置为4。作者每个实验轮次训练24个epoch,并将表现最好的模型保存下来进行评估。
数据处理:作者的数据处理方法类似于BEVDet,是根据NuScenes数据集的特定需求定制的,该数据集的原始分辨率为。在预处理过程中,作者将这个分辨率缩放到。关键的变换包括随机翻转、缩放、裁剪、旋转和 Copy-Paste 机制,用于解决物体分布的任何偏斜。这些增强操作都被转换成变换矩阵,与用于保持维度一致的相机参数结合。
在训练阶段,使用分类均衡分组采样(CBGS)与 Copy-Paste 机制,采用CenterPoint的方法。在测试阶段,图像只被缩放,而不是裁剪,以与模型的输入尺寸对齐。
Performance Benchmark
作者选择NuScenes排行榜上的11种最先进方法作为作者的基线:BEVFormer,BEVDet,BEVDet4D,BEVDepth,PGD,FCOS3D,DETR3D,CAPE,SoloFusion和TiGBEV。
从表I中作者可以看出,与SOTA方法相比,BEVENet在各种性能指标上都有显著提高。当图像大小为704x256时,BEVENet在最低GFlops的161.42中表现出计算效率,超过其他所有模型。这反映了BEVENet的资源效率,使其特别适合在硬件受限的环境中部署。在FPS方面,BEVENet也表现出色,帧率达到47.6。至于其他核心性能指标,BEVENet实现了45.6的mAP和55.5的NDS,再次成为所有模型中最高的。
在这五个误差指标中,BEVENet的mATE为0.549,证明了其在翻译估计方面的优越性能。尽管BEVENet的mASE,mAOE和mAAE并非绝对最低,但它们在其他模型中仍具有竞争力。对于mAVE,BEVENet表现出相对较低的误差0.270,仅次于SOLOFusion。
总之,BEVENet在当前SOTA模型中脱颖而出,在计算效率和核心检测指标方面表现出卓越性能,同时保持了竞争力的误差率。这种评估验证了BEVENet作为现实世界中自动驾驶场景中可行和高效3D目标检测解决方案的潜力。
V Ablation Study
在上述部分,作者展示了模型在计算效率和核心检测指标方面的最佳性能,与其它SOTA模型进行了对比。在本节中,作者将通过复杂性分析来呈现作者最终设计中模块的确定过程。考虑到不同模块配置产生的各种结果,作者将呈现作者做出决策的依据。
为了启动分析,作者首先为图2所示的BEVENet的六个主要模块提出了六个SOTA基准配置。这些基准配置包括ResNet50,LSS,原始BEVDepth,BEV编码器具有视觉 Transformer 模型,时间融合窗口设置为8秒,并利用CenterHead和Scale-NMS的检测Head。这些基准配置在表III中用粗体突出显示。作者将用于复杂性分析的初始BEVENet称为BEVENet-Baseline,以将其与作者的最终建议的BEVENet区分开。这些基线中的添加项用'+' Token 。这些细节旨在为即将到来的复杂性分析和设计理由提供坚实的基础。
Complexity Analysis
为了设计一个在资源受限硬件上高效的3D检测框架,作者从两个角度进行了复杂性分析,以确定最耗计算的环节。
模块复杂性分析 BEVENet-Baseline(图6)模块的复杂性分析显示, Backbone 模块、检测Head和深度估计模块在推理过程中消耗了超过80%的GFlops,需要采取降低GFlops的方法。输入分辨率是一个关键的复杂性决定因素,作者使用FCOS3D,DETR3D,PGD,BEVFormer和CAPE(表I)的基准测试来检查。将输入分辨率从降低到显著降低了复杂性,尽管初始性能下降,但需要其他性能提升技术。
视图复杂性分析 考虑到自动驾驶车辆上每个周围视图相机的不同相关性,作者分析了视图省略对GFlops减少的影响。作者的研究结果(表II)表明,前后视图对模型的mAP和NDS影响大于侧视图,而NDS对视图遮挡的敏感性更大。这表明,遮挡后视图可以有效地减少模型复杂性,同时性能损失最小。
Backbone Module
在分析不同的 Backbone 模型时,作者检查了ViT,SwinTransformer,ResNet和ElanNet,每个模型的参数数量相似,以便进行公平的比较。
以ResNet50为基准,FPS为27.4,mAP为39.3,NDS为45.9(见表III(a)),作者发现ViT在FPS方面的表现不佳,Swin-T与ResNet50相当,而ElanNet在FPS方面的优势显著,达到30.2。通过在ElanNet中添加NuImage预训练,性能得到了显著提高,FPS达到30.3,同时mAP和NDS分别提高了42.0和50.1。因此,对于这个任务,ElanNet在推理效率方面超过了ViT,Swin-Transformer和ResNet50。
View Projection and Depth Estimation Modules
作者检查了视图投影模块在不同配置下的能力,以实现2D到3D的转换,其中ElanNet作为 Backbone 网络具有NuImage预训练。
尽管LSS,Transformer和MLP方法之间的FPS,mAP和NDS差异很小,如表III(b)所示,但LSS,具有预计算的图像到点云转换矩阵,将FPS显著提高到34.9,证实了其对于视图投影的有效性。
同时,深度估计模块,对于后投影深度优化的必要性,也被检查了。最初,它模仿了BEVDepth结构,如图6所示,其对复杂性的贡献为10.9%。因此,MLP层被替换为2层残差模块,这是一种最小主义的设计,将FPS提高了近一个点,将mAP提高了两个点(见表III(c))。此外,作者还通过集成图像增强矩阵进一步增强了它。尽管看似影响微小,但作者的实验结果证实了这种策略在增强模型性能方面的有效性。
Temporal Fusion and BEV Encoder Modules
临时融合模块,对于在高遮挡环境和速度估计精炼中有效推理至关重要,在不同的时间窗口长度下进行了评估。如表III(d)所示,将间隔从"8s"缩短到"2s"仅提高了0.6的FPS,而没有对mAP或NDS得分产生显著的影响。
同时,BEV编码器模块,作为时间聚合特征和检测Head之间的桥梁,意外地提高了2帧的FPS,尽管它的复杂性如图6所示较为 modest。作者从Transformer作为基准开始实验,尝试用MLP和残差模块替换。表III(e)证实了残差模块的优越性能,将FPS提高到38.8,从而支持了它们在作者的设计中的集成。
Detection Head
作为最后一步,作者进行了检测Head的优化。作者的原始选择CenterHead具有Scale-NMS,占据了模型近20%的复杂度。通常,3D目标检测Head的关键后处理步骤是应用非极大值抑制(NMS)以消除冗余边界框。在作者的基准配置中,作者发现Scale-NMS可以被Circular NMS取代,仅需要牺牲少量的准确性。如表III(f)所示,这种替换提高了4.3帧的FPS,而准确性影响微小。
为了抵消Circular NMS引起的轻微性能下降,作者在图像域中引入了2D监督的目标边界框,这种策略成功地提高了mAP到45.5,NDS到55.5。作者的最终增强涉及 Head 的重新参数化,保持数学输出相等,但显著简化了拓扑结构。最终,这使作者获得了模型的最佳性能,FPS为47.6,mAP为45.6,NDS为55.5。
VI Conclusions
在本文中,作者提出了BEVENet,这是一个专为在实际自动驾驶系统的计算约束下进行3D目标检测而设计的新颖而高效的框架。BEVENet完全围绕卷积层构建在神经网络中,这种设计选择使它与其他模型区别开来。据作者所知,这是第一个将硬件资源限制集成到BEV范式中的实际自动驾驶车辆的工作。对于未来的工作,作者将研究多视图设置中各种图像输入的作用,并研究BEV中的感兴趣区域的重要性,以进一步提高作者的模型的性能和效率。
参考
[1]. Towards Efficient 3D Object Detection in Bird’s-Eye-View Space for Autonomous Driving: A Convolutional-Only Approach.