通过几何引导的核变换器实现高效且鲁棒的2D到BEV表示学习(2206)

Efficient and Robust 2D-to-BEV Representation Learning via Geometry-guided Kernel Transformer

通过几何引导的核变换器实现高效且鲁棒的2D到BEV表示学习(2206)

在这里插入图片描述

Abstract

在这里插入图片描述

从环视摄像头学习鸟瞰图(BEV)表示对于自动驾驶至关重要。在这项工作中,我们提出了一种新颖的2D到BEV表示学习机制——几何引导的核变换器(Geometry-guided Kernel Transformer,简称GKT)。GKT利用几何先验来指导变换器关注区分度较高的区域并展开核特征以生成BEV表示为了实现快速推理,我们进一步引入了查找表(LUT)索引方法以在运行时摆脱对相机校准参数的依赖。GKT可以在3090 GPU上以72.3 FPS的速度运行在2080ti GPU上以45.6 FPS的速度运行并且对相机偏差和预定义的BEV高度具有鲁棒性。GKT在nuScenes验证集上实现了最先进的实时分割结果,即38.0 mIoU(在0.5米分辨率下100m×100m的感知范围)。鉴于其效率、效果和鲁棒性,GKT在自动驾驶场景中具有重要的实际价值,特别是在需要实时运行的系统中。代码和模型将在以下链接提供:https://github.com/hustvl/GKT
索引术语自动驾驶三维感知鸟瞰图鲁棒性查找表索引

1 INTRODUCTION

在这里插入图片描述
基于鸟瞰图(BEV)表示的环视感知是自动驾驶中的一个前沿范式。对于多视图摄像系统来说,如何将2D图像表示转换为BEV表示是一个挑战性的问题。根据是否显式利用几何信息进行特征转换先前的方法可以分为两类,即基于几何的逐点转换无几何全局转换
在这里插入图片描述
基于几何的逐点转换。如 图1(a) 所示,逐点转换方法[1]、[2]、[3]、[4]、[5]、[6]利用相机的校准参数(内在和外在参数)来确定2D位置和BEV网格之间的对应关系(一对一或一对多)。有了这种对应关系,2D特征被投影到3D空间并形成BEV表示。
在这里插入图片描述
在这里插入图片描述
然而,逐点转换过于依赖校准参数。对于一个运行中的自动驾驶系统来说,由于复杂的外部环境,摄像头在运行时可能会偏离校准位置,这使得2D到BEV的对应关系变得不稳定,并将系统误差引入到BEV表示中。此外,逐点转换通常需要复杂的和耗时的2D-3D映射操作,例如,预测像素上的深度概率分布、沿着射线将像素特征广播到BEV空间以及关于相机参数的高精度计算。这些操作效率低下,难以优化,限制了实时应用的实现
在这里插入图片描述
无几何全局转换。全局转换方法[7]考虑了图像和BEV之间的全面相关性。如 图1(b) 所示,多视图图像特征被展平每个BEV网格与所有图像像素互动全局转换不依赖于2D到BEV投影中的几何先验。因此,它对摄像头的偏差不敏感
在这里插入图片描述
图1:(a) 基于几何的逐点转换利用相机的校准参数(内在参数和外参数)来确定2D位置和BEV网格之间的对应关系(一对一或一对多)。(b) 无几何全局转换考虑了图像和BEV之间的全面相关性。每个BEV网格与所有图像像素互动。
在这里插入图片描述
但是,这也带来了问题。1) 全局转换的计算预算与图像像素数量成正比。分辨率和效率之间存在尖锐的矛盾2) 没有几何先验作为指导,模型必须从所有视图中全局挖掘区分信息,这使得收敛更加困难
在这里插入图片描述
在这项工作中,针对高效且鲁棒的BEV表示学习,我们提出了一种新的2D到BEV转换机制,命名为几何引导的核变换器(简称GKT)。在粗略的相机参数下,我们大致将BEV位置投影得到多视图和多尺度特征图中的先验2D位置。然后,我们在先验位置周围展开 K h × K w K_h×K_w Kh×Kw 的核特征,并使BEV查询与相应的展开特征互动以生成BEV表示。此外,我们引入了查找表(LUT)索引,以在运行时摆脱相机参数的依赖

感觉是结合了两种方法,计算更快,同时又对摄像头的标定误差不那么敏感

在这里插入图片描述
在这里插入图片描述
GKT在运行时具有高鲁棒性。与逐点转换相比,GKT仅将相机参数作为指导,而不是过度依赖它们当相机发生偏移时,相应的核区域也会发生偏移,但仍然可以覆盖目标。变换器是排列不变的,核区域的注意力权重会根据偏移动态生成。因此,GKT始终能够聚焦于目标,不受相机偏移的影响
在这里插入图片描述
GKT具有高效率。通过提出的 LUT 索引在运行时我们摆脱了逐点转换所需的2D-3D映射操作使前向过程紧凑且快速。与全局转换相比,GKT只关注几何引导的核区域避免了全局互动。GKT需要的计算量更少,并且收敛速度更快
在这里插入图片描述
因此,GKT在逐点转换和全局转换之间取得了很好的平衡,实现了高效且鲁棒的2D到BEV表示学习。我们在nuScenes地图视图分割上验证了GKT。GKT表现出极高的效率,运行速度在3090 GPU上为72.3 FPS,在2080ti GPU上为45.6 FPS,比所有现有方法都快得多。GKT达到了38.0 mIoU的成绩,在所有实时方法中处于领先地位。我们将在不久的将来将GKT扩展到其他基于BEV的任务。

2 METHOD

2.1 Geometry-guided Kernel Transformer

在这里插入图片描述
所提出的GKT框架在 图2 中展示。共享的CNN骨干网络从环视图像 I = { I v } I = \{I_v\} I={Iv} 中提取多尺度多视图特征 F img = { F v s } F_{\text{img}} = \{F_v^s\} Fimg={Fvs}BEV空间被均匀划分成网格。每个BEV网格对应一个 3D 坐标 P i = ( x i , y i , z ) P_i = (x_i, y_i, z) Pi=(xi,yi,z) 和一个可学习的查询嵌入 q i q_i qi z z z 是BEV平面的预设高度,所有查询共享此高度。GKT对 z z z 的值不敏感,这在第3.5节进一步讨论。
在这里插入图片描述
图2:GKT的说明。上部分:利用几何信息引导变换器关注多视图图像中的先验区域。下部分:我们展开先验区域的核特征,并使它们与BEV查询互动以生成BEV表示
在这里插入图片描述
我们利用几何先验指导变换器关注区分度较高的区域借助相机参数,我们大致将每个BEV网格 P i P_i Pi 投影到一组浮点2D像素坐标 { Q i s v } \{Q^{sv}_i\} {Qisv}(针对不同视图和尺度),然后将它们四舍五入到整数坐标 { Q ˉ i s v } \{\bar{Q}^{sv}_i\} {Qˉisv},即:
在这里插入图片描述
在这里插入图片描述
我们在先验位置 { Q ˉ s v i } \{\bar{Q}_{sv}^i\} {Qˉsvi} 周围展开 K h × K w K_h \times K_w Kh×Kw 大小的核区域。值得注意的是,如果核区域超出了图像边界,超出部分将被设置为零。每个BEV查询 q i q_i qi 与相应的展开核特征 F F F 进行互动,其中 F F F 的形状为 R N view × N scale × C × K h × K w \mathbb{R}^{N_{\text{view}} \times N_{\text{scale}} \times C \times K_h \times K_w} RNview×Nscale×C×Kh×Kw,并生成BEV表示。可以在BEV表示上执行各种任务(例如,检测、分割、运动规划)的头部操作

在这里插入图片描述

2.2 Robustness to Camera Deviation

在这里插入图片描述
对于一个运行中的自动驾驶系统,外部环境是复杂的。摄像头会偏离其校准位置。GKT对摄像头的偏差具有鲁棒性。为了验证这一点,我们模拟了真实场景中摄像头的偏差。具体来说,我们将偏差分解为旋转偏差 R devi R_{\text{devi}} Rdevi 和平移偏差 T devi T_{\text{devi}} Tdevi,并向所有 x , y , z x,y,z x,y,z 维度添加随机噪声
平移偏差 T devi T_{\text{devi}} Tdevi 的公式为:
在这里插入图片描述
旋转偏差 R devi R_{\text{devi}} Rdevi 的公式为:
在这里插入图片描述
Δ x , Δ y , Δ z , θ x , θ y , θ z \Delta x, \Delta y, \Delta z, \theta_x, \theta_y, \theta_z Δx,Δy,Δz,θx,θy,θz 都是服从正态分布的随机变量。即,
在这里插入图片描述

在这里插入图片描述
θ x , θ y , θ z \theta_x, \theta_y, \theta_z θx,θy,θz 分别对应于相对于相机坐标系的 x 、 y 、 z x、y、z xyz 轴的旋转噪声,而 Δ x , Δ y , Δ z \Delta x, \Delta y, \Delta z Δx,Δy,Δz 对应于相对于相机坐标系的 x 、 y 、 z x、y、z xyz 轴的平移噪声。
我们向所有x、y、z维度和所有摄像头添加随机噪声。引入偏差噪声后,方程1变为:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
关于相机偏差的实验在第3.4节中展示。GKT对偏差具有鲁棒性。当相机发生偏移时,先验区域会随之移动,但仍然可以覆盖目标。而且,方程1中的四舍五入操作具有抗噪声特性当相机参数轻微变化时,坐标值经过四舍五入后保持不变。此外,变换器是排列不变的,核区域的注意力权重会根据偏差动态调整

2.3 BEV-to-2D LUT Indexing

在这里插入图片描述
我们进一步引入了BEV到2D的查找表(LUT)索引来加速GKT每个BEV网格的核区域是固定的,可以离线预计算在运行之前,我们构建一个查找表(LUT),它缓存了BEV查询的索引和图像像素的索引之间的对应关系。在运行时,我们从LUT中获取每个BEV查询对应的像素索引,并通过索引高效地提取核特征
在这里插入图片描述

在这里插入图片描述

2.4 Configuration of Kernel

在这里插入图片描述
对于GKT来说,核的配置是灵活的。我们可以调整核的大小来平衡接受域和计算成本之间的关系。核的布局也是可行的(例如,交叉形状的核、膨胀核等)。由于采用了LUT索引来获取核特征GKT的效率不会受到核布局的影响

3 EXPERIMENTS

在这里插入图片描述
在本节中,我们主要在nuScenes地图视图分割任务上评估所提出的GKT,并进行广泛的实验来探究GKT,包括其收敛速度和对相机偏差的鲁棒性。

3.1 Dataset

在这里插入图片描述
nuScenes数据集[8]包含1,000个驾驶序列,分别用于训练、验证和测试的序列数量为700、150和150。每个序列持续时间接近20秒,并且每帧包含围绕自车周围的6个视图图像。我们在训练和验证过程中将6个摄像头图像调整为224×480的尺寸。所有模型都在nuScenes训练集上进行训练,并在验证集上进行评估。

3.2 Implementation Details

在这里插入图片描述
我们采用CVT[7]作为BEV地图视图分割的基本实现。按照[7]的做法,我们将图像输入到一个EfficientNet-B4[9]中以提取多尺度图像特征。我们随机初始化一个 25×25 的BEV特征图作为查询,并采用所提出的GKT将图像特征转换为BEV特征。然后,我们使用三个带有上采样层的卷积块来将BEV特征上采样到200×200,以进行地图视图分割
在这里插入图片描述
在这里插入图片描述
所有模型都在4个NVIDIA GPU上进行训练每个GPU上4个样本。我们采用[7]中的训练计划,并使用AdamW优化器对GKT进行训练,共进行30k次迭代,训练时间接近3小时。按照[7]的做法,我们采用两种评估设置,即设置1和设置2,分别在100m×50m的感知范围和0.25m分辨率以及100m×100m的感知范围和0.5m分辨率下评估分割结果。除非另有说明,我们采用设置2作为默认评估设置。

3.3 Main Results

在这里插入图片描述
表1 中,我们比较了GKT与其他基于BEV的方法在两种评估设置下的车辆地图视图分割上的表现。具体来说,我们采用 1×7的卷积 来捕获水平上下文,然后应用一个高效的 7×1核进行2D到BEV转换。FIERY[1]和BEVFormer[3]实现了高性能,但耗时较多,远离实时应用。GKT可以在2080Ti上以45.6 FPS的速度运行,对于设置1有41.4 mIoU,对于设置2有38.0 mIoU,实现了所有现有实时方法中最高的效率和性能
在这里插入图片描述
表1在nuScenes上的车辆地图视图分割。FPS是在2080Ti GPU上测量的,除了∗表示在V100上测量的。 + + + 表示我们复现的结果,这些结果高于原始论文中报告的数值。

3.4 Robustness to Camera Deviation

在这里插入图片描述
为了验证鲁棒性,我们遍历验证集(包含6019个样本)并为每个样本随机生成噪声。我们分别添加不同程度的平移和旋转偏差。注意,我们向所有摄像头和所有坐标添加噪声,且噪声服从正态分布。在某些样本中存在非常大的偏差,这会很大程度上影响性能。如 表2表3 所示,当 Δ x , Δ y , Δ z \Delta x, \Delta y, \Delta z Δx,Δy,Δz 的标准差为0.5米或 θ x , θ y , θ z \theta_x, \theta_y, \theta_z θx,θy,θz 的标准差为0.02弧度时,GKT仍然保持了可比的性能。
在这里插入图片描述
表2:对相机平移偏差的鲁棒性。度量指标是mIoU。 σ 1 \sigma_1 σ1 Δ x , Δ y , Δ z \Delta x, \Delta y, \Delta z Δx,Δy,Δz的标准差。
在这里插入图片描述
表3:对相机旋转偏差的鲁棒性。度量指标是mIoU。 σ 2 \sigma_2 σ2 θ x , θ y , θ z \theta_x, \theta_y, \theta_z θx,θy,θz的标准差。
在这里插入图片描述
我们观察到 5×5 的核比 3×3 的核对偏差更鲁棒。这证明了更大的核尺寸对应更强的鲁棒性。而且,7×3的核比5×5的核对偏差更鲁棒。7( k h k_h kh)对应于3D空间的垂直维度。对于每个BEV网格,x、y是固定的,但 z 是预设的。在垂直维度上存在更多的不确定性。因此,采用更大的 k h k_h kh 是更好的。

3.5 Robustness to BEV Height

在这里插入图片描述
在这里插入图片描述
表4 中,我们对BEV平面的预设高度 z 进行了消融研究。当z从 -1.0变化到2.0时,性能的波动很小(小于0.4 mIoU)预设的高度 z 影响BEV到2D的投影但是GKT只需要粗略的投影,因此对 z 的值非常不敏感。实验证明了GKT的鲁棒性
在这里插入图片描述
表4:对BEV平面预设高度 z 的鲁棒性。度量指标是mIoU。GKT的性能波动很小。

3.6 Convergence Speed

在这里插入图片描述
图3 比较了GKT和CVT[7]之间的收敛速度。我们评估了不同训练计划下的模型,即从1周期到8周期的训练计划。基于几何先验,所提出的GKT比CVT实现了更快的收敛速度,并且仅用1周期训练就获得了更好的结果
在这里插入图片描述
图3:收敛速度的比较。我们用不同的训练计划训练GKT和CVT[7]。对于仅1周期的训练计划,mIoU的差距非常明显。GKT的收敛速度远快于CVT[7]

3.7 Implementation of GKT

在这里插入图片描述
所提出的2D到BEV转换可以以不同的方式实现。

  1. Im2col:我们首先采用im2col操作将图像特征展开成列格式每一列对应一个核区域然后我们为每个BEV查询选择相应的列Im2col操作直接简单,但会导致较大的内存消耗
  2. Grid Sample:我们采用grid_sample操作来采样核区域内所有像素的特征并将它们连接在一起
  3. LUT索引为了进一步加速转换的推理,我们预计算BEV网格索引和图像像素索引之间的对应关系,然后构建一个查找表

在这里插入图片描述
表5 比较了不同实现方式(核大小为3×3)的推理速度(FPS)。如预期,LUT索引实现了最佳的推理速度。
在这里插入图片描述
表5:不同实现方式的比较。我们采用了所提出的GKT的不同实现方式,并在一块NVIDIA 2080Ti上评估了推理速度。

4 RELATED WORK

4.1 BEV Representation Learning

在这里插入图片描述
鸟瞰图(Bird’s Eye View)在自动驾驶中是一种有前景的表示方式。最近的研究工作探讨了如何将图像表示转换为BEV表示。Lift-Splat[2]、FIERY[1]和BEVDet[6]通过预测像素上的深度概率分布,并使用已知的相机内参和外参,将相机特征提升到3D空间。OFT[4]提出了正交特征变换。BEVFormer[3]预测BEV锚点的高度偏移,然后使用相机参数固定2D到3D的对应关系。PON[5]沿垂直维度压缩图像特征,然后采用密集的变换层沿深度轴扩展特征。上述方法都需要精确校准的相机参数来进行2D到3D的转换。不同于这些方法,CVT[7]通过一系列交叉注意力层全局聚合所有图像特征中的信息,生成BEV表示,而没有显式采用参数。GKT对相机参数也具有鲁棒性,但通过利用几何先验实现了更好的效率。

4.2 Perception and Planning based on BEV

在这里插入图片描述
在这里插入图片描述
先前的研究工作基于鸟瞰图(Bird’s Eye View)表示进行感知和规划。FIERY [1]在鸟瞰图中预测时间一致的未来实例分割和运动。[2]、[5]基于BEV进行地图分割。[4]、[6]采用BEV表示进行3D目标检测。BEVFormer [3]在BEV特征图上构建检测和分割头,用于多任务学习。GKT提供了鲁棒的BEV表示,各种感知和规划任务可以基于GKT进行。

5 CONCLUSION

在这里插入图片描述
我们提出了GKT用于2D到BEV表示学习。GKT具有高效率和鲁棒性,这两者对于实时运行系统至关重要,尤其是对于自动驾驶系统。我们在地图视图分割任务上验证了GKT。在不久的将来,我们将把它扩展到其他基于BEV的任务,如检测和运动规划

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值