BEVCar:用于BEV地图和目标分割的相机-雷达融合

BEVCar:用于BEV地图和目标分割的相机-雷达融合

  • 摘要
  • Introduction
  • [Related Work](#Related Work)
  • [Technical Approach](#Technical Approach)
    • [Image Feature Lifting](#Image Feature Lifting)
    • [BEV Segmentation Head](#BEV Segmentation Head)

BEVCar: Camera-Radar Fusion for BEV Map and Object Segmentation

摘要

鸟瞰视角下的语义场景分割对于移动机器人的规划和决策至关重要。虽然最近的仅依靠视觉的方法在性能方面取得了显著进展,但它们通常在恶劣的光照条件下(如雨天或夜间)表现不佳。虽然主动传感器提供了解决这一挑战的方案,但激光雷达的 prohibitively 高成本仍然是一个限制因素。将摄像机数据与汽车雷达融合提供了一种更廉价的替代方案,但在先前的研究中受到了较少关注。在这项工作中,我们旨在通过引入 BEVCar,一种新颖的联合 BEV 对象和地图分割方法,推进这一有前途的途径。我们方法的核心创新在于首先学习原始雷达数据的基于点的编码,然后利用该编码有效地将图像特征提升到 BEV 空间。我们在 nuScenes 数据集上进行了大量实验,并展示了 BEVCar 超越了当前的技术水平。此外,我们表明,将雷达信息纳入显著提高了在具有挑战性的环境条件下的鲁棒性,并改善了对远距离对象的分割性能。为了促进未来的研究,我们提供了我们实验中使用的 nuScenes 数据集的天气分割,以及我们的代码和训练模型,网址为 http://bevcar.cs.uni-freiburg.de

Introduction

移动机器人,如自动驾驶车辆,严重依赖于对其环境的准确和健壮的感知。因此,机器人平台通常配备有各种传感器[1, 2, 3],每种传感器提供互补的信息。例如,环视摄像头提供密集的RGB图像,而激光雷达或雷达系统提供稀疏的深度测量。然而,由于这些不同模态的数据结构本质上的不同,融合这些数据提出了一个重大挑战。解决这一挑战的常用方法是采用鸟瞰视图(BEV)表示作为共享参考框架[4, 5, 6, 7, 8, 9]。

虽然激光雷达和雷达数据可以直接转换成鸟瞰图(BEV)空间,基于摄像头的信息需要从图像平面转换成俯视图。因此,已经提出了各种提升策略[4、10、11],这些策略极大地提高了仅基于视觉方法的性能,其中一些策略已扩展到融合激光雷达数据[5、7]。尽管激光雷达能够生成高度精确的3D点云,但由于其成本相较于汽车雷达要高得多,其适用于大规模部署的适用性仍然存在争议。然而,摄像头-雷达融合在研究社区中受到的关注相对较少,通常仅在添加了激光雷达输入的情况下进行研究[12、8]。相比之下,雷达被批评太稀疏,无法在独立使用中有效利用[12]。

在这项工作中,作者强调了雷达在提高机器人感知鲁棒性中的关键作用。具体来说,作者关注于鸟瞰图(BEV)中的目标和地图分割,突出了雷达在视觉受损环境条件下的独特优势。虽然先前的研究已经探索了用于BEV分割的相机-雷达融合,但有些方法在训练过程中需要额外的激光雷达监督[9],或者依赖于特定雷达元数据[8, 6],而这些可能无法跨不同制造商的模型获取。为了解决这些限制,作者提出了一种新颖的方法,该方法独立于这些约束运作。作者提出的BEVCar架构包括两个特定传感器的编码器以及两个基于注意力的模块,分别用于图像提升和BEV相机-雷达融合。随后,作者将融合后的特征输入到多任务头中,以生成地图和目标分割图。作者在nuScenes[1]数据集上广泛评估了作者的方法,并证明了它在具有挑战性的光照条件下,在相机-雷达融合方面达到了最先进的表现。

主要贡献如下:

作者引入了全新的BEVCar,用于从摄像头和雷达数据中进行BEV地图和目标分割。

作者提出了一种新的基于注意力的图像提升方案,该方案利用稀疏雷达点进行 Query 初始化。

作者展示了基于学习的雷达编码优于使用原始元数据。

作者在具有挑战性的环境条件下广泛地将BEVCar与之前的 Baseline 进行了比较,并展示了利用雷达测量的优势。

作者将nuScenes [1] 上使用的日/夜/雨天数据分割公开,并发布了代码和训练模型。

在本节中,作者概述了仅基于视觉的鸟瞰图(BEV)方法,并回顾了基于雷达的感知的先前方法。

基于相机的BEV感知: 当前在基于相机的BEV感知领域的研究旨在处理图像空间与BEV空间之间的视图差异。现有方法通常采用编码器-解码器架构,并融入一个独特的视图转换模块来处理图像与BEV平面之间的空间变化。早期工作利用变分自编码器将特征直接解码为2D俯视图笛卡尔坐标系[13]。相比之下,VPN[14]使用多层感知机(MLP)来建模图像和BEV特征图之间空间位置的依赖关系,确保在视图转换中的全局覆盖。Roddick等人[15]通过引入更明确的几何建模改进了这些工作。特别是,他们提出了一种金字塔占用网络,并配备了一个每级密集变换模块来学习图像视图中的列与BEV图中的射线之间的映射。PoBEV[16]通过分别用不同的变换模块处理平坦和垂直特征,从而扩展了这一概念,并进一步提高了性能。

近期的方法可以分为提升(lifting)基于机制和注意力基于机制。提升方法采用要么是隐式的深度分布模块[10]将特征投影到潜在空间,要么是显式的深度估计模块生成中间3D输出,例如用于目标检测[17]或场景补全[18]任务。注意力基于方法将视图变换公式化为从图像空间到鸟瞰图(BEV)的序列到序列的翻译。TIIM[19]在BEV空间中的极坐标光线与图像中的垂直列之间应用平面间注意力,并结合在每个相应极坐标光线上的自注意力,与基于深度的方法如LSS[10]相比,性能有显著提升。

近期的发展包括全环绕视角的BEV感知方法,例如CVT [20],它使用带有学习位置嵌入的跨视角 Transformer 来避免显式几何建模。相比之下,BEVFormer [4] 和 BEVSegFormer [21] 明确使用相机校准参数建模几何,并提出了基于可变形注意力[22]的空间跨注意力模块进行视角逆投影。BEVFormer [4] 还采用时间注意力模块,通过车辆自身运动在时间上聚合BEV地图,这代表了3D目标检测的最新技术。时间聚合也在BEVerse [11]中得到应用,它通过增加运动预测 Head 扩展了现有方法,并展示了所提出的多任务网络优于单任务网络,表明任务之间存在正向迁移。

上述方法通常与新颖的数据增强技术[23]结合使用,这些技术通过在各个中间嵌入之间保持空间一致性来解决图像与BEV之间的视角差异。最后,SkyEye [24]提出了一种限制较少的方法,通过在时间上重建语义图像,从标记的正面视角图像学习语义BEV地图。作者的工作利用了单目BEV感知方面的最新进展,并利用雷达模态进行更几何可行的视角投影。这是通过使用雷达 Query 的基于注意力的新颖图像提升方案实现的。此外,作者还 Proposal 利用已通过对比学习进行预训练的现有图像骨架来进一步规范化模态特定分支。

雷达感知基础: 雷达通过发射无线电波和接收其反射之间的时间差来测量到目标的距离。公开发布的用于机器人应用的雷达数据集包括不同类型的雷达,如旋转雷达[2],汽车雷达[1],或4D成像雷达[3]。在这项工作中,作者专注于汽车雷达。由于雷达是一种相对低成本的直接测量距离的技术,因此它已被用于提高基于视觉的3D目标检测。尽管ClusterFusion [27]仅在图像空间融合雷达和相机数据,但SparseFusion3D [28]在图像空间和鸟瞰图(BEV)空间都进行了传感器融合。

在分割领域,最初的工作研究了雷达点云的语义分割[29],并未涉及额外的视觉输入。近期,多模态鸟瞰图(BEV)和目标分割的研究受到了越来越多的关注。《FISHING Net》[12]这篇开创性工作的作者们提出了基于MLP的提升策略用于相机特征。为了将这些特征与由类似UNet的网络编码的雷达数据相结合,FISHING Net采用了基于类别的优先级池化。相比之下,Simple-BEV[6]以栅格化的BEV格式处理原始雷达数据,并将其与通过双线性采样提升的图像特征进行拼接。尽管Simple-BEV的目标是对车辆进行与目标无关的分割,但其训练依赖于额外的实例信息。

由于纯粹基于拼接的融合可能会受到空间对齐不良的影响,CRN[9]采用了可变形注意力[22]来聚合图像和雷达特征。然而,该方法使用LSS[10]来提升图像特征,并且在训练过程中需要激光雷达(LiDAR)来监督深度分布网络。最后,BEVGuide[8]在部署期间除了利用现有的知识外,没有进一步利用其他知识。通过基于单应性投影的方法,将来自EfficientNet[30]图像 Backbone 网络的特征转换成了一种比例不明确的自上而下表示。雷达数据被转换到BEV空间,然后由两个卷积层进行编码。与之前的工作不同,BEVGuide提出了一种自下而上的提升方法,通过从统一的BEV空间 Query 传感器特征来获取传感器特定的嵌入,然后将它们进行拼接。在这项工作中,作者进一步发展了这些想法,并使用了一种受到激光雷达处理[26]启发的更为精细的雷达编码器。此外,作者还提出了一种新的提升方案,该方案明确利用雷达点作为强有力的先验知识。

Technical Approach

在这一部分,作者提出了BEVCar方法,用于从环视摄像头和汽车雷达进行鸟瞰视角(BEV)的目标和地图分割。如图2所示,BEVCar包括两个特定于传感器的编码器,分别用于图像和雷达数据。作者通过可变形注意力将图像特征提升到BEV空间,在此过程中利用雷达数据来初始化 Query 。采用中间融合策略后,作者接着使用交叉注意力模块将提升的图像表征与学习的雷达特征相结合。最后,作者在瓶颈操作中降低空间分辨率,并使用单一多类 Head 同时对车辆和地图进行BEV分割。在接下来的小节中,作者将提供每个步骤的进一步细节。

相机:为了编码相机数据,作者采用了一个冻结的DINov2 ViT-B/14[25],其图像表示捕获的语义信息比基于ResNet的骨架网络[31]更多。遵循常见的方法[32,33],作者使用了一个具有可学习权重的ViT Adapter [34]。为了覆盖环视视觉,作者在每个时间戳将来自 N N N个相机的图像进行ConCat,形成一个维度为 N × H × W N \times H \times W N×H×W的输入,其中 H H H和 W W W分别表示图像的高度和宽度。对于下游处理,ViT Adapter输出具有 F F F个通道的多尺度特征图,这些特征图对应于图像尺寸的KaTeX parse error: Undefined control sequence: \nicefrac at position 1: \̲n̲i̲c̲e̲f̲r̲a̲c̲{1}{4},KaTeX parse error: Undefined control sequence: \nicefrac at position 1: \̲n̲i̲c̲e̲f̲r̲a̲c̲{1}{8}, KaTeX parse error: Undefined control sequence: \nicefrac at position 1: \̲n̲i̲c̲e̲f̲r̲a̲c̲{1}{8}和KaTeX parse error: Undefined control sequence: \nicefrac at position 1: \̲n̲i̲c̲e̲f̲r̲a̲c̲{1}{2}比例。

雷达:雷达数据由一个点云表示,每个点都具有多种特征。与先前的作品[6,8]不同,作者强调依赖于特定雷达模型的内置后处理会降低方法的通用性。因此,类似于SparseFusion3D[28],作者只利用雷达点的 D D D个基本特征: 3D位置 ( x , y , z ) (x,y,z) (x,y,z),未补偿的速度 ( z , v g ) (z, v_g) (z,vg),以及雷达散射截面 RCS \text{RCS} RCS,它捕捉了表面的可检测性。与利用原始数据[6]不同,作者提出学习一个由编码LiDAR点云[26]启发的雷达表示。首先,作者根据雷达点在尺寸为 X × Y × Z X \times Y \times Z X×Y×Z的Voxel 网格中的空间位置将它们分组,该Voxel 网格对应于BEV空间的分辨率和高度的离散化。为了限制内存需求和减轻对高密度Voxel的偏见,作者在包含超过 P P P个雷达点的Voxel中进行随机采样。每个点及其元数据随后通过图3所示的点特征编码输入,其中FCN指的是全连接层。请注意,点特征编码不积累来自多个Voxel 的信息。随后,作者对每个Voxel应用最大池化以获得大小为 F F F的单个特征向量。最后,作者将Voxel特征通过基于CNN的 Voxel空间编码器,沿着高度维度压缩特征,得到整体的雷达BEV编码 F r a d F_{rad} Frad。

Image Feature Lifting

作者采用基于学习的方法,将编码的视觉特征从2D图像平面提升到BEV空间。受到BEVFormer [4]的启发,作者使用了可变形注意力[22],但提出了一种新颖的 Query 初始化方案,该方案利用了稀疏的雷达点。

根据CSDN的规则,我会将公式环境中的斜杠 "/" 替换为 " " ,而公式单独一行显示时,则替换为 " ",而公式单独一行显示时,则替换为 " ",而公式单独一行显示时,则替换为"$"。下面是修复后的内容:

Query初始化:作者提出的Query初始化方案的核心动机是利用雷达测量中的3D信息,将2D图像特征初步提升到BEV空间。如图4所示,作者首先创建一个大小为 X × Y × Z X \times Y \times Z X×Y×Z的Voxel空间,该空间由BEV分辨率 X × Y X \times Y X×Y、附加的高度离散化 Z Z Z以及朝向前方的摄像机中心确定。其次,作者根据摄像机的视场将每个Voxel分配给一个或两个摄像机。第三,作者通过射线投影将视觉特征从2D图像平面推送到3D Voxel空间,即沿着射线锥体内的每个Voxel包含相同的图像特征。特别是,作者使用了尺度为KaTeX parse error: Undefined control sequence: \nicefrac at position 1: \̲n̲i̲c̲e̲f̲r̲a̲c̲{1}{8}的图像特征。如果两个摄像机的视场重叠,作者将在受影响的Voxel内平均特征。随后,作者使用1×1卷积层去除高度分量,得到具有 F F F个特征通道的 X × Y X \times Y X×Y Voxel网格。请注意,在这个阶段,图像特征仍然是均匀分布的,没有深度的概念。因此,作者使用由稀疏雷达点云引导的可变形注意力[22]来过滤特征图,从而得到初始化 Query Q m Q_m Qm,其大小为 F × X × Y F \times X \times Y F×X×Y。

提升:在下一步中,作者将数据驱动的初始Query Q m g Q_{mg} Qmg 与可学习位置嵌入 Q p o s Q_{pos} Qpos 结合起来,以实现排列不变性,并学习可学习的鸟瞰图(BEV) Query Q b e v Q_{bev} Qbev 。
l = Q m g + Q p o s + Q b e v l = Q_{mg} + Q_{pos} + Q_{bev} l=Qmg+Qpos+Qbev

采用可变形注意力机制[22],作者构建了一个尺寸为 X × Y × Z X \times Y \times Z X×Y×Z的3D Voxel空间,以从图像中提取视觉编码。与Query初始化相比,作者现在在图像平面上而不是BEV空间上采样偏移量。经过六个级联的Transformer模块后,作者得到了最终的特征图 f i m g , b e v f_{img,bev} fimg,bev,其维度与编码后的雷达数据相同,即 F × X × Y F \times X \times Y F×X×Y。

BEV Segmentation Head

根据CSDN的规则,我会将公式环境中的斜杠 "/" 替换为 " " ,而公式单独一行显示时,则替换为 " ",而公式单独一行显示时,则替换为 " ",而公式单独一行显示时,则替换为"$"。下面是修复后的内容:

作者采用单个Head进行多类鸟瞰图(BEV)分割。具体来说,作者使用两个带有ReLU激活函数的卷积层,然后是一个最终的1×1卷积层来输出一个目标类别和 M M M个地图类别。考虑到BEV空间的分辨率,分割Head产生的输出大小为 M + 1 × X × Y M+1 \times X \times Y M+1×X×Y。因此,一个像素不仅可以同时捕捉到车辆和地图类别预测,还可以被分配到多个地图类别中。

目标分割:在分割目标时,作者考虑所有类似车辆的实体,例如乘用车和卡车。与先前的作品[6]不同,作者强调在训练过程中,目标无关的分割不应依赖于实例感知信息,因为这将使得方法的应用灵活性降低。因此,作者仅通过二进制交叉熵损失来监督分割头中的目标通道:
L B C E = − 1 N ∑ i = 1 N log ⁡ ( P i , t ) , \mathcal{L}{BCE} = -\frac{1}{N} \sum{i=1}^{N} \log(P_{i,t}), LBCE=−N1i=1∑Nlog(Pi,t),

在公式中, P i , t P_{i,t} Pi,t是针对每个像素 i ∈ [ 1 , N ] i \in [1,N] i∈[1,N]定义为:
P i , t = { p i if y i = 1 1 − p i otherwise . P_{i,t} = \begin{cases} p_i & \text{if } y_i = 1 \\ 1 - p_i & \text{otherwise}. \end{cases} Pi,t={pi1−piif yi=1otherwise.

二进制真值标签 y i ∈ { 0 , 1 } y_i \in \{0,1\} yi∈{0,1}指定了像素 i i i是否属于车辆类别。对于 y i = 1 y_i=1 yi=1的相应预测概率用 p i p_i pi表示。

地图分割: 尽管大多数先前的方法[4,8,9]仅预测道路,有时也包括车道分隔线,但作者进一步包含了如人行横道和人行道等地图类别。详尽的列表请参见第IV-A节。为了在训练过程中监督分割Head 的地图通道,作者采用了α-平衡焦损失的多类别变体[35]:
L F o c a l = − 1 N ∑ i = 1 N ( 1 − p i , t ) α ⋅ log ⁡ ( p i , t ) , \mathcal{L}{Focal} = -\frac{1}{N} \sum{i=1}^{N} (1 - p_{i,t})^\alpha \cdot \log(p_{i,t}), LFocal=−N1i=1∑N(1−pi,t)α⋅log(pi,t),

根据CSDN的规则,我会将公式环境中的斜杠 "/" 替换为 " " ,而公式单独一行显示时,则替换为 " ",而公式单独一行显示时,则替换为 " ",而公式单独一行显示时,则替换为"$"。下面是修复后的内容:

在这段文本中, c ∈ [ 1 , C ] c \in [1,C] c∈[1,C]指的是语义类别,而 y y y是一个聚焦参数,用于区分简单/困难样本。另外, α i , t \alpha_{i,t} αi,t是按照方程式(4)类似定义的:

具有可调参数 α \alpha α以解决前景与背景的不平衡问题。

相关推荐
千天夜7 分钟前
激活函数解析:神经网络背后的“驱动力”
人工智能·深度学习·神经网络
大数据面试宝典8 分钟前
用AI来写SQL:让ChatGPT成为你的数据库助手
数据库·人工智能·chatgpt
封步宇AIGC13 分钟前
量化交易系统开发-实时行情自动化交易-3.4.1.2.A股交易数据
人工智能·python·机器学习·数据挖掘
m0_5236742115 分钟前
技术前沿:从强化学习到Prompt Engineering,业务流程管理的创新之路
人工智能·深度学习·目标检测·机器学习·语言模型·自然语言处理·数据挖掘
HappyAcmen25 分钟前
IDEA部署AI代写插件
java·人工智能·intellij-idea
噜噜噜噜鲁先森1 小时前
看懂本文,入门神经网络Neural Network
人工智能
InheritGuo1 小时前
It’s All About Your Sketch: Democratising Sketch Control in Diffusion Models
人工智能·计算机视觉·sketch
weixin_307779132 小时前
证明存在常数c, C > 0,使得在一系列特定条件下,某个特定投资时刻出现的概率与天数的对数成反比
人工智能·算法·机器学习
封步宇AIGC2 小时前
量化交易系统开发-实时行情自动化交易-3.4.1.6.A股宏观经济数据
人工智能·python·机器学习·数据挖掘
Jack黄从零学c++2 小时前
opencv(c++)图像的灰度转换
c++·人工智能·opencv