Article
- 作者:Aditya Prakash, Kashyap Chitta, Andreas Geiger
- 文献题目:TransFuser:端到端自动驾驶的多模态融合Transformer
- 文献时间:2021
- 文献链接:https://arxiv.org/abs/2104.09224
摘要
- 互补传感器的表征应该如何集成到自动驾驶中?基于几何的传感器融合在物体检测和运动预测等感知任务中显示出巨大的前景。然而,对于实际驾驶任务,3D 场景的全局上下文是关键,例如交通灯状态的变化会影响几何上远离交通灯的车辆的行为。因此,仅几何形状可能不足以有效地融合端到端驾驶模型中的表示。在这项工作中,我们证明了基于现有传感器融合方法的模仿学习策略在存在高密度动态代理和复杂场景的情况下表现不佳,这需要全局上下文推理,例如处理从多个方向迎面而来的交通不受控制的交叉路口。因此,我们提出了 TransFuser,一种新颖的多模态融合Transformer,使用注意力来集成图像和 LiDAR 表示。我们使用 CARLA 城市驾驶模拟器通过实验验证了我们的方法在涉及复杂场景的城市环境中的有效性。与基于几何的融合相比,我们的方法实现了最先进的驾驶性能,同时将碰撞减少了 76%。
背景
- 仅图像和仅激光雷达方法最近在端到端驾驶方面取得了令人印象深刻的结果。 然而,这些研究主要集中在动态代理有限的设置上,并假设场景中其他代理的行为接近理想。 随着在最近的 CARLA 版本中引入对抗性场景,例如 车辆闯红灯、不受控制的 4 向交叉路口,或从遮挡区域出现并随机位置过马路的行人,仅图像方法的表现并不令人满意(表 1),因为它们缺乏这些场景中所需的场景的 3D 信息。 虽然 LiDAR 包含 3D 信息,但 LiDAR 测量通常非常稀疏(尤其是在远处),并且需要额外的传感器来捕获 LiDAR 扫描中丢失的信息,例如 交通灯状态。
- 虽然大多数现有的端到端驾驶方法都专注于单一输入模式,但自动驾驶系统通常配备摄像头和 Li DAR 传感器。这提出了重要的问题:我们能否整合这两种模式的表征,以利用它们在自动驾驶方面的互补优势?我们应该在多大程度上独立处理不同的模式,我们应该采用什么样的融合机制来获得最大的性能增益?传感器融合领域的先前工作主要集中在驾驶的感知方面,例如2D 和 3D 对象检测、运动预测和深度估计。这些方法侧重于学习捕获 3D 场景的几何和语义信息的状态表示。它们主要基于图像空间和不同 LiDAR 投影空间之间的几何特征投影进行操作,例如鸟瞰图 (BEV) 和范围视图 (RV)。信息通常从投影 2D 或 3D 空间中每个要素周围的局部邻域聚合。
- 虽然这些方法比纯图像方法要好,但我们观察到其架构设计中的局部性假设阻碍了它们在复杂城市场景中的性能(表 1a)。例如,在十字路口处理交通时,自动驾驶车辆需要考虑多个动态代理和交通灯之间的交互(图 1)。虽然深度卷积网络可用于在单个模态内捕获全局上下文,但将它们扩展到多种模态或模型对特征之间的交互作用并非易事。为了克服这些限制,我们使用Transformer的注意力机制将关于 3D 场景的全局上下文推理直接集成到不同模态的特征提取层中。我们考虑单视图图像和 Li DAR 输入,因为它们是互补的,我们的重点是集成来自不同类型模态的表示。我们将生成的模型称为 TransFuser,并将其集成到专为端到端驾驶设计的自回归路点预测框架(图 2)中。
贡献
- (1)我们证明了基于现有传感器融合方法的模仿学习策略无法处理城市驾驶中的对抗性场景,例如十字路口无保护的转弯或从遮挡区域出现的行人。
- (2) 我们提出了一种新颖的多模态融合变换器 (TransFuser),将 3D 场景的全局上下文合并到不同模态的特征提取层中。
- (3) 我们在复杂的城市环境中通过实验验证了我们的方法,包括 CARLA 中的对抗场景,并实现了最先进的性能。 我们的代码和训练有素的模型可在 https://github.com/autonomousvision/transfuser 上获得。
相关工作
- 多模式自动驾驶:
- 最近用于端到端驾驶的多模态方法表明,用深度和语义补充 RGB 图像有可能提高驾驶性能。 Xiao 等人从相机和深度模式的早期、中期和晚期融合的角度探索 RGBD 输入,并观察到显着的收益。 Behl 等人和 Zhou 等人证明了语义和深度作为驾驶的显式中间表示的有效性。在这项工作中,我们专注于图像和 LiDAR 输入,因为它们在表示场景方面相互补充,并且在自动驾驶系统中很容易获得。在这方面,Sobh 等人利用 LiDAR 和图像模态的后期融合架构,其中每个输入都在单独的流中编码,然后连接在一起。然而,我们观察到这种融合机制在复杂的城市场景(表 1b)中存在高违规率,因为它无法解释多个动态代理的行为。因此,我们提出了一种新颖的多模态融合变换器,它可以在特征编码的多个阶段有效地整合来自不同模态的信息,从而改善了后期融合方法的局限性。
- 最近用于端到端驾驶的多模态方法表明,用深度和语义补充 RGB 图像有可能提高驾驶性能。 Xiao 等人从相机和深度模式的早期、中期和晚期融合的角度探索 RGBD 输入,并观察到显着的收益。 Behl 等人和 Zhou 等人证明了语义和深度作为驾驶的显式中间表示的有效性。在这项工作中,我们专注于图像和 LiDAR 输入,因为它们在表示场景方面相互补充,并且在自动驾驶系统中很容易获得。在这方面,Sobh 等人利用 LiDAR 和图像模态的后期融合架构,其中每个输入都在单独的流中编码,然后连接在一起。然而,我们观察到这种融合机制在复杂的城市场景(表 1b)中存在高违规率,因为它无法解释多个动态代理的行为。因此,我们提出了一种新颖的多模态融合变换器,它可以在特征编码的多个阶段有效地整合来自不同模态的信息,从而改善了后期融合方法的局限性。
- 用于目标检测和运动预测的传感器融合方法:
- 大多数传感器融合工作都考虑感知任务,例如目标检测和运动预测。它们在多视图 LiDAR 上运行,例如鸟瞰图 (BEV) 和范围视图 (RV),或通过将 LiDAR 特征投影到图像空间或将图像特征投影到 BEV 或 RV 空间来补充来自 Li DAR 的深度信息的相机输入。最接近我们的方法是 ContFuse,它在图像和 LiDAR BEV 特征之间执行多尺度密集特征融合。对于 LiDAR BEV 表示中的每个像素,它计算 3D 空间中局部邻域的最近邻点,将这些相邻点投影到图像空间中以获得相应的图像特征,使用连续卷积聚合这些特征,并结合它们具有 LiDAR BEV 功能。其他基于投影的融合方法遵循类似的趋势,并从 2D 或 3D 空间中的局部邻域聚合信息。然而,这些方法学习的状态表示是不够的,因为它们没有捕获 3D 场景的全局上下文,这对于对抗场景中的安全操作很重要。为了证明这一点,我们实施了一种基于多尺度几何的融合机制,包括用于 CARLA 端到端驾驶的图像到激光雷达和激光雷达到图像的特征融合,并观察到通信中的高违规率复杂的城市环境(表 1b)。为了克服这个限制,我们提出了一种基于注意力的多模态融合变换器,它结合了全局上下文推理并实现了卓越的驾驶性能。
- 自动驾驶注意事项:
- 注意力已经在车道变换、物体检测和运动预测的驾驶环境中进行了探索。 Chen 等人在学习的语义图上采用了循环注意机制来预测车辆控制。 Li 等人通过将 Transformer 模块合并到循环神经网络中,利用注意力来捕捉角色之间的时间和空间依赖性。 SA-NMP 是一项并发工作,它在从 2D CNN 提取的特征上学习注意力掩码,在 LiDAR BEV 投影和高清地图上运行,专注于安全运动规划的动态代理。 Chen 等人利用分层深度强化学习框架中的注意力来关注周围的车辆,以便在 TORCS 赛车模拟器中换道。它们结合了一个空间注意力模块来检测图像中最相关的区域,以及一个时间注意力模块来对不同时间步长的图像输入进行加权,从而实现更平滑的车道变换。然而,这些方法都没有考虑多种模态或编码 3D 场景的全局上下文,这是安全导航对抗场景所必需的。相比之下,我们展示了注意力在具有挑战性的城市驾驶场景中不同模态之间特征融合的有效性。
方法
- 在这项工作中,我们提出了一种端到端驱动架构(图 2),具有两个主要组件:(1)多模态融合变压器Transformer,用于集成来自多种模态(单视图图像和激光雷达)的信息,以及 (2) 自回归航路点预测网络。 以下部分详细介绍了我们的问题设置、输入和输出参数化以及模型的每个组件。
问题设置
- 我们考虑了城市环境中点对点导航的任务,其目标是完成给定的路线,同时安全地对其他动态代理做出反应并遵守交通规则。
- 模仿学习(IL):
- IL 的目标是学习模仿专家
π
∗
\pi^*
π∗行为的策略
π
\pi
π。 在我们的设置中,策略是从输入到航点的映射,这些航点提供给单独的低级控制器以输出动作。 我们考虑 IL 的行为克隆 (BC) 方法,这是一种监督学习方法。 首先在环境中推出专家策略以收集大小为
Z
Z
Z 的数据集
D
=
{
(
X
i
,
W
i
)
}
Z
i
=
1
D = {\{ (X^i, W^i) \} ^Z}_{i=1}
D={(Xi,Wi)}Zi=1,该数据集由环境的高维观测值
X
X
X 和相应的专家轨迹组成 ,由 BEV 空间中的一组 2D 路点定义,即
W
=
{
w
t
=
(
x
t
,
y
t
)
}
T
t
=
1
W = {\{ w_t = (x_t, y_t) \}^T}_{t=1}
W={wt=(xt,yt)}Tt=1。 该 BEV 空间使用自动驾驶车辆的坐标系。 策略
π
\pi
π 使用收集的数据
D
D
D 和损失函数
L
L
L 以监督方式进行训练。
- IL 的目标是学习模仿专家
π
∗
\pi^*
π∗行为的策略
π
\pi
π。 在我们的设置中,策略是从输入到航点的映射,这些航点提供给单独的低级控制器以输出动作。 我们考虑 IL 的行为克隆 (BC) 方法,这是一种监督学习方法。 首先在环境中推出专家策略以收集大小为
Z
Z
Z 的数据集
D
=
{
(
X
i
,
W
i
)
}
Z
i
=
1
D = {\{ (X^i, W^i) \} ^Z}_{i=1}
D={(Xi,Wi)}Zi=1,该数据集由环境的高维观测值
X
X
X 和相应的专家轨迹组成 ,由 BEV 空间中的一组 2D 路点定义,即
W
=
{
w
t
=
(
x
t
,
y
t
)
}
T
t
=
1
W = {\{ w_t = (x_t, y_t) \}^T}_{t=1}
W={wt=(xt,yt)}Tt=1。 该 BEV 空间使用自动驾驶车辆的坐标系。 策略
π
\pi
π 使用收集的数据
D
D
D 和损失函数
L
L
L 以监督方式进行训练。
- 高维观测值 X X X 包括来自单个时间步长的前置摄像头图像输入和 LiDAR 点云。 我们使用单个时间步长输入,因为先前关于自动驾驶 IL 的工作表明,使用观察历史可能不会导致性能提升。 我们使用预测轨迹 π ( X ) \pi(X) π(X) 和专家轨迹 W W W 之间的 L 1 L_1 L1 距离作为损失函数。 我们假设可以访问逆动力学模型,该模型实现为 PID 控制器 I I I,它执行低级控制,即转向、油门和制动,提供未来轨迹 W W W。动作被确定为 a = I ( W ) a=I(W) a=I(W) 。
- Global Planner:我们遵循 CARLA 0.9.10 的标准协议,并假设高级目标位置 G G G 作为 GPS 坐标提供。 请注意,这些目标位置稀疏且相距数百米,这与策略 KaTeX parse error: Undefined control sequence: \p at position 1: \̲p̲ 预测的本地航路点相反。
输入和输出参数化
- 输入表示:我们将 LiDAR 点云转换为具有固定分辨率的 2D BEV 网格上的 2-bin 直方图。 我们考虑了自动驾驶车辆前方 32m 内和每侧 16m 内的点,从而包含 32m × 32m 的 BEV 网格。 我们将网格划分为 0.125m × 0.125m 的块,从而得到 256 × 256 像素的分辨率。 对于直方图,我们将高度维度离散为 2 个区间,表示地平面上/下方和上方的点。 这导致大小为 256 × 256 像素的双通道伪图像。 对于 RGB 输入,我们考虑 FOV 为 100°的前置摄像头。 我们以 400 × 300 像素的分辨率提取正面图像,我们将其裁剪为 256 × 256 以去除边缘的径向失真。
- 输出表示:我们预测 BEV 空间中自动驾驶车辆的未来轨迹 W W W,以自动驾驶车辆的当前坐标系为中心。 轨迹由一系列 2D 航路点表示, { w t = ( x t , y t ) } T t = 1 {\{ w_t = (x_t, y_t) \}^T}_{t=1} {wt=(xt,yt)}Tt=1。 我们使用 T = 4 T = 4 T=4,这是我们的逆动力学模型所需的默认航点数。
多模态融合变压器Transformer
- 我们的关键思想是利用变压器的自我注意机制,将图像和 LiDAR 模式的全局背景结合起来,因为它们具有互补性。 Transformer 架构将一个由离散标记组成的序列作为输入,每个标记由一个特征向量表示。 特征向量由位置编码补充以包含位置归纳偏差。
- 形式上,我们将输入序列表示为
F
i
n
∈
R
N
×
D
f
F^{in} \in R^{N \times D_f}
Fin∈RN×Df ,其中
N
N
N 是序列中标记的数量,每个标记由维度为
D
f
D_f
Df 的特征向量表示。 Transformer使用线性投影来计算一组查询(queries)、键(keys)和值(values)(Q、K 和 V)。
- 其中
M
q
∈
R
D
f
×
D
q
M^q \in R^{D_f \times D_q}
Mq∈RDf×Dq ,
M
k
∈
R
D
f
×
D
k
M^k \in R^{D_f \times D_k}
Mk∈RDf×Dk 和
M
v
∈
R
D
f
×
D
v
M^v \in R^{D_f \times D_v}
Mv∈RDf×Dv 是权重矩阵。 它使用
Q
Q
Q 和
K
K
K 之间的缩放点积来计算注意力权重,然后聚合每个查询(query)的值,
- 最后,Transformer使用非线性变换来计算与输入特征
F
i
n
F^{in}
Fin 具有相同形状的输出特征
F
o
u
t
F^{out}
Fout。
- Transformer在整个架构中多次应用注意力机制,从而产生 L L L 个注意力层。 标准Transformer中的每一层都有多个并行的注意力“head(头)”,其中涉及为方程(2)中的每个 F F F 生成几个 Q Q Q、 K K K 和 V V V 值,并将来自方程(3)的 A 的结果值连接起来。
- 与 NLP 中的标记输入结构不同,我们对网格结构的特征图进行操作。 与先前将转换器应用于图像的工作类似,我们将每个模态的中间特征图视为一个集合而不是空间网格,并将集合的每个元素视为一个标记。 图像和 LiDAR BEV 输入的卷积特征提取器在不同层对场景的不同方面进行编码。 因此,我们在整个编码器中以多个尺度(图 2)融合这些特征。
- 令单个模态的中间网格结构特征图为维度 H × W × C H \times W \times C H×W×C 的 3D 张量。 对于 S S S 种不同的模态,这些特征堆叠在一起形成维度序列 ( S ∗ H ∗ W ) × C (S ∗ H ∗ W) \times C (S∗H∗W)×C。我们添加了一个可学习的位置嵌入(positional embedding),它是一个维度为 ( S ∗ H ∗ W ) × C (S ∗ H ∗ W) \times C (S∗H∗W)×C的可训练参数,以便网络可以在训练时推断不同标记之间的空间依赖性。我们还通过使用线性层将标量值投影到 C C C 维向量来提供当前速度作为输入。输入序列、位置嵌入和速度嵌入使用逐元素求和相结合,形成维度为 ( S ∗ H ∗ W ) × C (S ∗ H ∗ W) \times C (S∗H∗W)×C 的张量。如图 2 所示,这个张量tensor作为输入输入到产生相同维度输出的Transformer。为了清楚起见,我们在图 2 中省略了位置嵌入和速度嵌入输入。然后将输出重新整形为 S S S 个维度为 H × W × C H \times W \times C H×W×C 的特征图,并使用现有特征图的元素求和反馈到每个单独的模态分支。上述机制构成了单一尺度的特征融合。这种融合在不同分辨率的图像和 LiDAR BEV 分支的 ResNet 特征提取器中多次应用(图 2)。然而,以高空间分辨率处理特征图在计算上是昂贵的。因此,我们使用平均池化从早期编码器块中将更高分辨率的特征图下采样到 H = W = 8 H = W = 8 H=W=8的固定分辨率,然后将它们作为输入传递给Transformer,并使用双线性将输出上采样到原始分辨率在使用现有特征图进行元素求和之前的插值。
- 在多个分辨率下进行密集特征融合后(图2),我们从每个模态的特征提取器中获得了一个维度为 8×8×512 的特征图,输入分辨率为 256×256 像素。 这些特征图通过平均池化缩小到 1 × 1 × 512 的维度,并展平为 512 维的特征向量。 来自图像和 LiDAR BEV 流的维度 512 的特征向量然后通过元素求和进行组合。 这个 512 维特征向量构成了对 3D 场景的全局上下文进行编码的环境的紧凑表示。 然后将其馈送到我们接下来描述的航点预测网络。
航点预测网络
- 如图 2 所示,我们将 512 维特征向量通过 MLP(包含 2 个具有 256 和 128 个单元的隐藏层)将其维度降低到 64 以提高计算效率,然后再将其传递给自动使用 GRU 实现的回归航路点网络。我们用 64 维特征向量初始化 GRU 的隐藏状态。 GRU 的更新门控制以隐藏状态编码的信息流到输出和下一个时间步。它还接受当前位置和目标位置作为输入,这使网络能够专注于隐藏状态中的相关上下文,以预测下一个航点。我们提供目标位置的 GPS 坐标(注册到自车坐标系)作为 GRU 的输入而不是编码器,因为它与预测的航路点位于相同的 BEV 空间中,并且与表示相比,与它们的相关性更好每个透视图像域中的目标位置。我们使用一个单层 GRU,然后是一个线性层,该层采用隐藏状态,并在自我车辆当前坐标系中为 T = 4 T = 4 T=4 个未来时间步长预测差分自我车辆航路点 { σ w t } T t = 1 {\{ \sigma w_t \}^T}_{t=1} {σwt}Tt=1。因此,预测的未来航点由 { w t = w t − 1 + σ w t } T t = 1 {\{ w_t = w_{t-1} + \sigma w_t \}^T}_{t=1} {wt=wt−1+σwt}Tt=1 给出。由于 BEV 空间以自我车辆的位置为中心,因此第一个 GRU 单元的输入为 (0,0)。
- 控制器:我们使用两个 PID 控制器进行横向和纵向控制,从预测的航路点获得转向、油门和刹车值, { w t } T t = 1 {\{ w_t \}^T}_{t=1} {wt}Tt=1。 纵向控制器采用连续时间步长的航路点之间向量的加权平均值的大小,而横向控制器采用它们的方向。 对于 PID 控制器,我们使用与作者提供的代码库 [8] 中相同的配置。 实现细节可以在补充中找到。
损失函数
- 我们使用
L
1
L_1
L1 损失在预测航路点和地面实况航路点(来自专家)之间训练网络,注册到当前坐标框架。 令
w
t
g
t
{w_t}^{gt}
wtgt 代表时间步长
t
t
t 的地面实况航点,则损失函数由下式给出:
- 请注意,仅在训练时可用的地面实况航点 { w t g t } \{ {w_t}^{gt} \} {wtgt} 与在训练和测试时提供的稀疏目标位置 G G G 不同。
实验
- 在本节中,我们将描述我们的实验设置,将我们的方法的驱动性能与多个基线进行比较,进行违规分析以研究不同的故障案例,可视化 TransFuser 的注意力图,并进行消融研究以突出我们模型不同组件的重要性。
- 任务:我们考虑在各种区域中沿着一组预定义路线导航的任务,例如 高速公路、市区和住宅区。 路线由全球规划器提供的 GPS 坐标中的一系列稀疏目标位置和相应的离散导航命令定义,例如 跟随车道,左转/右转,改变车道。 我们的方法只使用稀疏的 GPS 位置来驱动。 每条路线由几个场景组成,在预定义的位置初始化,测试代理处理不同类型对抗情况的能力,例如 避障、十字路口无保护转弯、车辆闯红灯、行人从遮挡区域出现在随机位置过马路。 代理需要在规定的时间内完成路由,同时遵守交通规则并应对动态代理的高密度。
- 数据集:我们使用 CARLA 模拟器进行训练和测试,具体是 CARLA 0.9.10,它由 8 个公开可用的城镇组成。我们使用 7 个城镇进行训练,并提出 Town05 进行测试。为了生成训练数据,我们推出了一项专家策略,旨在驱动使用来自模拟的特权信息并以 2FPS 的速度存储数据。有关其他详细信息,请参阅补充材料。我们选择 Town05 进行评估,因为与其他 CARLA 城镇相比,可驾驶区域的多样性很大,例如多车道和单车道道路、高速公路和出口、桥梁和地下通道。我们考虑两个评估设置:(1) Town05 Short:10 条 100-500m 的短路线,每条包括 3 个交叉路口,(2) Town05 Long:10 条 1000-2000m 的长路线,每条路线包括 10 个交叉路口。每条路线都由高密度的动态代理和对抗场景组成,这些场景在沿路线的预定义位置产生。由于我们专注于处理动态代理和对抗性场景,我们将这方面与跨天气条件的泛化分离,并仅对 ClearNoon 天气进行评估。
- 指标:我们报告 3 个指标的结果。 (1) 路线完成度 (RC),路线完成距离的百分比,(2) 驾驶得分 (DS),这是路线完成度由违规乘数加权的,该乘数考虑了与行人、车辆和静态元素、路线偏差的碰撞 、车道违规、闯红灯和停车标志,以及 (3) 违规计数。 补充资料中提供了有关指标和违规行为的其他详细信息。
- 基线:我们将 TransFuser 模型与多个基线进行比较。
- (1) CILRS 是一种有条件的模仿学习方法,其中代理学习从单个前置摄像头图像中预测车辆控制,同时以导航命令为条件。我们密切关注作者提供的代码并为 CARLA 0.9.10 重新实现 CILRS,以说明与 CARLA 0.8.4 相比的额外导航命令。
- (2) LBC 是一种知识提炼方法,其中首先使用专家监督训练可以访问地面实况 BEV 语义图的教师模型以预测未来的航点,然后使用基于图像的学生模型进行训练,该模型使用来自老师。这是当前 CARLA 0.9.6 上最先进的方法。我们使用作者提供的最新代码库在 CARLA 0.9.10 上进行训练,它通过将不同的视点堆叠为通道来组合 3 个输入相机视图。
- (3) 基于自回归图像的航点预测 (AIM):我们使用基于图像的 ResNet-34 编码器实现我们的自回归航点预测网络,该编码器仅将前置摄像头图像作为输入。该基线相当于调整 CILRS 模型以预测以稀疏目标位置为条件的航路点,而不是以导航命令为条件的车辆控制。用于此的图像编码器与 CILRS 和我们的模型相同。
- (4) 后期融合:我们实现了我们架构的一个版本,其中使用与 TransFuser 相同的编码器独立提取图像和 LiDAR 特征,但没有Transformer,然后通过逐元素求和进行融合并传递到航点预测网络。
- (5)几何融合:我们实现了一种基于多尺度几何的融合方法,涉及图像到激光雷达和激光雷达到图像特征融合。我们将 LiDAR BEV 表示中的每个 0.125m × 0.125m 块取消投影到 3D 空间中,从而产生 3D 体积。我们从位于该 3D 体积中的 LiDAR 点云中随机选择 5 个点并将它们投影到图像空间中。在将它们传递给 3 层 MLP 之前,我们通过逐元素求和来聚合这些点的图像特征。然后,MLP 的输出在整个特征提取器中以多种分辨率与相应 0.125m × 0.125m 块的 LiDAR BEV 特征相结合。同样,对于每个图像像素,我们从多个分辨率的 LiDAR BEV 特征中聚合信息。这个基线相当于用基于投影的特征融合替换我们架构中的转换器。我们还报告了用于生成训练数据的专家的结果,它定义了每个评估设置的性能上限。我们在补充文件中提供了有关所有基线的其他详细信息。
- 实现细节:我们使用 2 个传感器模式,前置摄像头 RGB 图像和 LiDAR 点云转换为 BEV 表示,即 S = 2 S = 2 S=2。RGB 图像使用在 ImageNet 上预训练的 ResNet-34 进行编码。 LiDAR BEV 表示使用从头开始训练的 ResNet-18 进行编码。 在我们的默认 TransFuser 配置中,我们为每个分辨率使用 1 个Transformer,每个Transformer使用 4 个注意力头。 我们从 {64, 128, 256, 512} 中选择 D q D_q Dq, D k D_k Dk, D v D_v Dv 用于每个分辨率下对应于特征嵌入维度 D f D_f Df 的 4 个转换器。 对于我们的每条基线,我们测试了不同的感知主干并选择了最好的:用于 CILRS 和 AIM 的 ResNet-34、用于 LBC 的 ResNet-50、作为图像编码器的 ResNet-34 和作为 LiDAR BEV 编码器的 ResNet-18 对于每种传感器融合方法。 其他详细信息可以在补充文件中找到。
结果
- CILRS 和 LBC 的性能:在我们的第一个实验中,我们检查了当前基于 CARLA 的基于图像的方法在多大程度上适用于新的 0.9.10 评估设置,包括复杂的多车道交叉口、对抗性场景和严重违规处罚。从表中的结果来看。在图 1a 中,我们观察到 CILRS 在所有评估设置上表现不佳。这并不奇怪,因为 CILRS 以离散导航命令为条件,其数据分布不平衡。虽然最初的 LBC 架构仅使用前置摄像头图像作为输入,但作者最近发布了他们架构的更新版本,其中有 2 个主要修改,(1) 多视图摄像头输入(前置、45°左和 45 ◦右), (2) 目标热图作为输入(而不是导航命令),它是通过在图像空间中投影稀疏目标位置而形成的。我们在我们的数据上训练他们更新的模型,并观察到 LBC 在短路线上的表现明显优于 CILRS(表 1a),这是预期的,因为它是使用教师模型的监督训练的,该模型使用了地面实况 BEV 语义标签。然而,在长途路线上评估 LBC 的性能时,它的性能急剧下降,达到 32.09 RC,但多次违规导致 DS 低至 7.05。这是由于频繁的红灯违规和与车辆的碰撞(表 1b)导致 DS 的大量乘法处罚。这些结果表明 CILRS 和 LBC 无法处理城市驾驶的复杂性。
- AIM 是一个强大的基线:由于 CILRS 和 LBC 的性能在长路线上显着下降,我们接下来重点设计一个基于图像的强大基线。为了这个目标,我们用我们的自回归航路点预测网络替换了 CILRS 的学习控制器。我们观察到,AIM 在所有评估设置(表 1a)上都显着优于 CILRS,性能提高了近 7 倍。这可能是因为 AIM 使用我们的逆动力学模型(PID 控制器)进行低级控制,并在预测航路点的同一 BEV 坐标空间中表示目标位置。相比之下,LBC 的目标位置在图像空间中表示为热图。此外,AIM 使用基于自回归 GRU 的路点预测网络,该网络能够在网络的最后阶段直接处理这些目标位置。这提供了一个先验,简化了遵循到达目标位置的路径的行为的学习,这可以使编码器优先考虑有关场景高级语义的信息,例如交通灯状态,而不是与低级别控制相关的功能。 AIM out 在短路线上执行 LBC 为 58.21%,在长路线上执行 LBC 为 275.89%。 LBC 的红灯违规导致其他违规行为(例如与车辆碰撞)的复合,与 AIM 相比,其 DS 迅速下降。
- 传感器融合方法:该实验的目标是确定 LiDAR 模式对驾驶性能的影响并比较不同的融合方法。为此,我们将 TransFuser 与两个基线、后期融合 (LF) 和几何融合 (GF) 进行比较。我们观察到 LF 在所有评估设置上都优于 AIM(表 1a)。这是意料之中的,因为 LiDAR 提供了额外的 3D 上下文,可帮助代理更好地导航城市环境。此外,当用基于多尺度几何的融合编码器替换图像和 LiDAR 分支的独立特征提取器时,我们在短路径上观察到更好的性能。然而,LF 和 GF 的 DS 与它们的 RC 相比都急剧下降。我们假设发生这种情况是因为它们没有结合安全导航十字路口所必需的全局上下文推理,并且主要专注于不惜一切代价导航到目标,同时忽略导致多次违规的障碍物表 1b。由于违规处罚的指数性质,这对长途路线产生了复合效应,导致 DS 迅速下降。相比之下,我们的 TransFuser 模型在 DS 上的性能比 GF 高 31.02%,在 Town05 Long 上的 RC 降低了 18.52%。它还实现了与 LF 相比减少 51.58% 的碰撞,与 GF 相比减少了 76.11%,与 LF 相比减少了 23.5%,与闯红灯相比减少了 21.93%。这表明我们的模型谨慎驾驶并专注于动态代理和交通灯。这表明注意力可以有效地结合 3D 场景的全局上下文,从而实现安全驾驶。我们在补充资料中提供驾驶视频。
- 限制:我们观察到所有融合方法都与红光违规(表 1b)斗争。 这是因为在 Town05 中检测红灯非常具有挑战性,因为它们位于交叉路口的另一侧并且在输入图像中几乎不可见。 与一些现有的方法不同,我们没有对红灯使用任何语义监督,这进一步加剧了这个问题,因为红灯检测的学习信号非常弱。 我们预计融合方法的红光检测性能在结合这种额外的监督时会有所提高。
注意力地图可视化
- Transformer接受 64 个图像特征标记和 64 个 LiDAR 特征标记作为输入,其中每个标记匹配输入模态中的 32 × 32 patch。 我们考虑来自 Town05 交叉点的 1000 帧,并检查图像特征图第 2、3 和 4 行中 24 个标记的前 5 个注意力权重以及 LiDAR 特征图第 4、5 和第 6 行中的 24 个标记。我们选择这些标记是因为它们对应于输入模态中的交叉区域并包含交通灯和车辆。 我们观察到,对于 62.75% 的图像标记,所有前 5 个参与标记都属于 LiDAR,而对于 88.87%,前 5 个参与标记中至少有一个标记属于 LiDAR。 类似地,对于 78.45% 的 LiDAR tokens,所有前 5 个参与的标记都属于图像,而对于 98.95%,前 5 个参与的标记中至少有一个标记属于图像。 这表明 TransFuser 在聚合来自图像和 LiDAR 的信息方面是有效的。 我们在图 3 中展示了四个这样的帧。我们观察到注意力图的一个共同趋势:TransFuser 关注十字路口的车辆和交通灯,尽管在图像和 LiDAR 特征图中的位置略有不同。 补充中提供了额外的可视化。
消融学习
- 在我们的默认配置中,我们每个分辨率使用 1 个变换器,每个变换器使用 8 个注意力层和 4 个注意力头,并以 4 个分辨率进行融合。 在这个实验中,我们在 Town05 Short 评估设置中展示了关于尺度数量、注意力层、共享或单独的Transformer和位置嵌入的消融。
- 多尺度融合必不可少吗? 我们展示了尺度 1 到 4 的结果,其中 1 表示在最后一个 ResNet 层中以 8×8 的分辨率进行融合,2 表示在最后一个和倒数第二个 ResNet 层中分别以 8×8 和 16×16 的分辨率进行融合,对于尺度 3 也是如此 和 4. 当尺度数量从 4 减少到 1 时,我们观察到性能的整体下降(表 2)。 发生这种情况是因为 ResNet 中的不同卷积层学习关于输入的不同类型的特征,因此,多尺度融合可以有效地整合来自不同模态的这些特征。
- 是否需要多个Transformer? 我们测试了我们模型的一个版本,该版本使用变压器的共享参数(表 2 中的共享变压器)并观察到 DS 的显着下降。 这是很直观的,因为 ResNet 中的不同卷积层学习不同类型的特征,因此每个转换器必须专注于在每个分辨率下融合不同类型的特征。
- 是否需要多个注意力层? 我们在 Tab2 中报告了 TransFuser 的 1 层和 4 层变体的结果。 我们观察到,虽然 1 层变体具有非常高的 RC,但其 DS 明显较低。 然而,当我们将注意力层的数量增加到 4 时,即使 RC 降低 18%,模型也可以维持其 DS。 这表明模型随着额外的注意力层变得更加谨慎。 随着我们在默认配置中进一步将 L 增加到 8,DS 也会增加。 这表明多个注意力层导致谨慎的驾驶代理。
- 位置嵌入有用吗? 直觉上,我们希望可学习的位置嵌入有所帮助,因为建模动态代理之间的空间依赖性对于安全驾驶至关重要。 这在 Tab 中确实很明显。 在图 2 中,我们观察到在没有位置嵌入的情况下 DS 显着下降,即使 RC 增加了 25%。
结论
- 在这项工作中,我们证明了基于现有传感器融合方法的 IL 策略在复杂的驾驶场景中存在高违规率。 为了克服这一限制,我们提出了一种新颖的多模态融合Transformer (TransFuser),用于集成不同模态的表示。 TransFuser 使用注意力来捕捉全局 3D 场景上下文并专注于动态代理和交通灯,从而在 CARLA 上实现最先进的性能。 鉴于我们的方法灵活且通用,使用其他传感器进一步探索它会很有趣,例如雷达,或将其应用于其他具体的 AI 任务。