原文链接:https://arxiv.org/abs/2212.10156
1. 引言
目前的自动驾驶工业界通常为不同任务部署不同的模型,但优化的孤立性会导致模块之间的信息损失、误差积累和特征不对齐。
一种更好的设计是将各种任务整合为多任务学习,即为共享的特征提取器插入不同的任务头。这可以节省计算资源,但可能存在“负迁移”问题。
端到端自动驾驶统一了各个节点(感知、预测、规划),如图所示。
最简单的端到端方案是直接预测规划的轨迹,而无需显式的感知或预测监督。这类方法可解释性差,难以保证安全。因此,直观的解决方案是经过感知(检测、跟踪、建图)和预测(运动预测、占用预测)后进行规划,但目前的方法均忽略了部分组件(见补充材料)。
本文提出UniAD,考虑了5个重要任务,且并非简单地堆叠。本文使用基于查询的设计连接各节点。与边界框表达相比,查询有更大的感受野,可软化上游任务的复合误差;此外,可更灵活地编码各种交互(如多智能体)。
2. 方法
概述:如图所示,UniAD由4个基于Transformer解码器的感知/预测模块、以及末端的一个规划模块组成。查询
Q
Q
Q连接整个流程并建模不同实体的交互。具体来说,将多视图图像序列输入特征提取器,并使用BEVFormer的方式转化为BEV特征
B
B
B。此处也可使用其余方法得到BEV特征,如多模态融合。在TrackFormer中,可学习嵌入被视为跟踪查询,从
B
B
B中查询信息,并检测和跟踪智能体。MapFormer将地图查询作为道路元素的语义抽象,进行全景分割。MotionFormer则利用上述查询,捕捉了智能体和地图的交互,联合预测所有智能体的未来轨迹。此外,还设计自车查询,与其余智能体交互。OccFormer使用BEV特征
B
B
B作为查询,智能体知识作为键与值,预测多步未来占用。最后规划器Planner使用MotionFormer中的自车查询预测规划结果,并使自车远离OccFormer预测的占用区域。
2.1 感知:跟踪与建图
TrackFormer:联合进行检测与跟踪任务,且无需不可微的后处理。除了传统的检测查询外,还引入跟踪查询。具体来说,初始化的检测查询在每一时刻预测新出现的智能体,而跟踪查询则建模过去存在的智能体。检测查询与跟踪查询均与BEV特征 B B B交互。跟踪查询会与过去帧的相应跟踪查询进行自注意力交互,直到相应的智能体完全消失(一段时间未被跟踪)。TrackFormer包含 N N N层,其最终输出状态 Q A Q_A QA给出了 N a N_a Na个有效智能体的信息,用于后续预测任务。此外,还引入自车查询,显式建模自车,用于规划任务。
MapFormer:基于2D全景分割方法Panoptic SegFormer。将道路元素(车道线、分隔带和十字路口、可驾驶路面)稀疏地表达为地图查询,编码位置和结构信息。MapFormer同样包括 N N N层,各层输出均被监督,但仅有最后一层的查询 Q M Q_M QM被输入到MotionFormer中进行智能体-地图交互。
2.2 预测:运动预测
MotionFormer使用
Q
A
Q_A
QA与
Q
M
Q_M
QM,在一次前向传播内预测所有智能体的前
K
K
K个可能的轨迹。此外还将TrackFormer中的自车查询与其余智能体查询结合,以考虑未来动态。输出运动表示为
{
x
^
i
,
k
∈
R
T
×
2
∣
i
=
1
,
⋯
,
N
a
;
k
=
1
,
⋯
,
K
}
\{\hat x_{i,k}\in\mathbb R^{T\times 2}|i=1,\cdots,N_a;k=1,\cdots,K\}
{x^i,k∈RT×2∣i=1,⋯,Na;k=1,⋯,K},其中
T
T
T为预测时间范围。
MotionFormer:由
N
N
N层组成,每层捕捉3类交互:智能体-智能体、智能体-地图和智能体-目标点。对每个运动查询
Q
i
,
k
Q_{i,k}
Qi,k(简记为
Q
Q
Q),其与其余智能体
Q
A
Q_A
QA和地图元素
Q
M
Q_M
QM进行的交互可记为:
Q
a
/
m
=
M
H
C
A
(
M
H
S
A
(
Q
)
,
Q
A
/
Q
M
)
Q_{a/m}=\mathtt{MHCA}(\mathtt{MHSA}(Q),Q_A/Q_M)
Qa/m=MHCA(MHSA(Q),QA/QM)
智能体-目标点注意力基于可变形注意力:
Q
g
=
D
e
f
o
r
m
A
t
t
n
(
Q
,
x
^
T
l
−
1
,
B
)
Q_g=\mathtt{DeformAttn}(Q,\hat{x}_T^{l-1},B)
Qg=DeformAttn(Q,x^Tl−1,B)
其中 x ^ T l − 1 \hat{x}_T^{l-1} x^Tl−1为上一层预测轨迹的终点,作为可变形注意力的参考点。这样,可以根据轨迹端点周围的特征细化轨迹。每一层中,上述三个交互是并行的, Q a , Q m , Q g Q_a,Q_m,Q_g Qa,Qm,Qg会拼接并输入MLP得到查询上下文 Q ctx Q_\text{ctx} Qctx,输入到下一层。
运动查询:MotionFormer每一层的输入查询由两部分组成:查询上下文
Q
ctx
Q_\text{ctx}
Qctx和查询位置
Q
pos
Q_\text{pos}
Qpos。查询位置包含4个部分,即场景级别的锚
I
s
I^s
Is、智能体级别的锚
I
a
I^a
Ia、智能体
i
i
i的当前位置
x
^
0
\hat{x}_0
x^0和预测的目标点
x
^
T
l
−
1
\hat{x}_T^{l-1}
x^Tl−1:
Q
pos
=
MLP
(
PE
(
I
s
)
)
+
MLP
(
PE
(
I
a
)
)
+
MLP
(
PE
(
x
^
0
)
)
+
MLP
(
PE
(
x
^
T
l
−
1
)
)
Q_\text{pos}=\text{MLP}(\text{PE}(I^s))+\text{MLP}(\text{PE}(I^a))+\text{MLP}(\text{PE}(\hat{x}_0))+\text{MLP}(\text{PE}(\hat{x}_T^{l-1}))
Qpos=MLP(PE(Is))+MLP(PE(Ia))+MLP(PE(x^0))+MLP(PE(x^Tl−1))
其中 PE \text{PE} PE为正弦位置编码, x ^ T 0 = I s \hat{x}_T^0=I^s x^T0=Is。场景级的锚表示了全局视图下之前的运动统计数据,而智能体级的锚捕捉了当前坐标下可能的意图。二者均由真实轨迹终点的k均值算法聚类,以减小预测的不确定性。因此,轨迹的终点为动态锚,由粗到细地优化。
非线性优化:本文方法不的运动预测不依赖感知真值,因此直接从不准确的检测位置或朝向角回归路径点会导致不可行的轨迹(如大曲率和加速度)。本文使用非线性平滑器,调整目标轨迹,使其在不精确起点下也可行。该过程为
x
~
∗
=
arg min
x
c
(
x
,
x
~
)
\tilde x^*=\argmin_xc(x,\tilde x)
x~∗=xargminc(x,x~)
其中
x
~
\tilde x
x~和
x
~
∗
\tilde x^*
x~∗分别为真值和平滑的轨迹,
x
x
x由Multiple-shooting生成,且代价函数为
c
(
x
,
x
~
)
=
λ
x
y
∥
x
,
x
~
∥
2
+
λ
goal
∥
x
T
,
x
~
T
∥
2
+
∑
ϕ
∈
Φ
ϕ
(
x
)
c(x,\tilde x)=\lambda_{xy}\|x,\tilde x\|_2+\lambda_\text{goal}\|x_T,\tilde x_T\|_2+\sum_{\phi\in\Phi}\phi(x)
c(x,x~)=λxy∥x,x~∥2+λgoal∥xT,x~T∥2+ϕ∈Φ∑ϕ(x)
其中 λ x y \lambda_{xy} λxy和 λ goal \lambda_\text{goal} λgoal为超参数,运动学函数集 Φ \Phi Φ包含颠簸、曲率、曲率变化率、加速度和横向加速度5项。代价函数正则化了目标轨迹,以遵循运动学约束。该正则化仅在训练时使用。
2.3 预测:占用预测
OccFormer引入场景级别和智能体级别的语义:密集场景特征通过注意力模块获取智能体级别的特征;通过智能体级别特征与密集场景特征的矩阵乘法,生成逐实例的占用,而无需复杂的后处理。
OccFormer由
T
o
T_o
To个块组成,其中
T
o
T_o
To为预测时间范围,通常
T
o
<
T
T_o<T
To<T(因为密集占用的空间消耗)。每个块将智能体特征
G
t
G^t
Gt和来自上一层的密集特征(状态)
F
t
−
1
F^{t-1}
Ft−1作为输入,生成时间
t
t
t下同时考虑实例级和场景级信息的
F
t
F^t
Ft。为得到
G
t
G^t
Gt,先由MotionFormer的运动查询通过沿模态维度
K
K
K的最大池化得到
Q
X
∈
R
N
a
×
D
Q_X\in\mathbb R^{N_a\times D}
QX∈RNa×D,并通过MLP(不同时间不共享权重)与跟踪查询
Q
A
Q_A
QA和当前位置嵌入
P
A
P_A
PA融合:
G
t
=
MLP
t
(
[
Q
A
,
P
A
,
Q
X
]
)
,
t
=
1
,
⋯
,
T
o
G^t=\text{MLP}_t([Q_A,P_A,Q_X]),t=1,\cdots,T_o
Gt=MLPt([QA,PA,QX]),t=1,⋯,To
其中
[
⋅
]
[\cdot]
[⋅]为拼接。为得到场景级知识,BEV特征
B
B
B被下采样,作为第一块的输入
F
0
F^0
F0。为节省空间,每个块以下采样-注意力-上采样的方式进行像素-智能体交互,下采样的特征记为
F
ds
t
F_\text{ds}^t
Fdst。
像素-智能体交互:以密集特征
F
ds
t
F_\text{ds}^t
Fdst为查询,实例级特征为键和值,更新密集特征。具体来说,
F
ds
t
F_\text{ds}^t
Fdst首先通过自注意力进行全局交互,然后通过交叉注意力,将智能体特征
G
t
G^t
Gt和网格特征交互。同时,使用注意力掩膜,限制各像素仅与
t
t
t时刻占用其自身的智能体交互。密集特征的更新过程可记为:
D
ds
t
=
M
H
C
A
(
M
H
S
A
(
F
ds
t
)
,
G
t
,
attn_mask
=
O
m
t
)
D_\text{ds}^t=\mathtt{MHCA}(\mathtt{MHSA}(F_\text{ds}^t),G^t,\text{attn\_mask}=O_m^t)
Ddst=MHCA(MHSA(Fdst),Gt,attn_mask=Omt)
注意力掩膜 O m t O_m^t Omt在语义上与占用类似,是通过在密集特征 F ds t F_\text{ds}^t Fdst上乘以额外的掩膜特征 M t = MLP ( G t ) M^t=\text{MLP}(G^t) Mt=MLP(Gt)得到的。此外,还会将上采样后的 D ds t D_\text{ds}^t Ddst与输入 F t − 1 F^{t-1} Ft−1残差连接得到 F t F^t Ft,输入下一层。
实例级占用:为得到
H
×
W
H\times W
H×W大小的BEV特征
B
B
B的占用预测,场景级特征
F
t
F^t
Ft被卷积解码器上采样为
F
dec
t
∈
R
C
×
H
×
W
F^t_\text{dec}\in\mathbb R^{C\times H\times W}
Fdect∈RC×H×W。对于智能体级别的特征,使用MLP更新粗糙掩膜特征
M
t
M^t
Mt,得到占用特征
U
t
∈
R
N
a
×
C
U^t\in\mathbb R^{N_a\times C}
Ut∈RNa×C。最后的实例级占用可通过矩阵乘法得到:
O
^
A
t
=
U
t
⋅
F
dec
t
\hat O^t_A=U^t\cdot F^t_\text{dec}
O^At=Ut⋅Fdect
2.4 规划
无高清(HD)地图或预定义路线的情况下进行规划需要高级指令指示方向。因此,本文将原始导航信号(左转、右转和保持直行)转化为可学习嵌入,称为指令嵌入。由于MotionFormer的自车查询已经包含多个意图,此处将其与指令嵌入结合,得到规划查询。规划查询与BEV特征
B
B
B交互,并解码为未来路径点
τ
^
\hat\tau
τ^。
为进一步避免碰撞,本文在推断阶段基于牛顿法优化
τ
^
\hat\tau
τ^:
τ
∗
=
arg min
τ
f
(
τ
,
τ
^
,
O
^
)
\tau^*=\argmin_\tau f(\tau,\hat\tau,\hat O)
τ∗=τargminf(τ,τ^,O^)
其中
τ
^
\hat\tau
τ^为原始规划预测,
τ
∗
\tau^*
τ∗为优化后的规划(从Multiple-shooting的轨迹
τ
\tau
τ中选择使代价函数
f
(
⋅
)
f(\cdot)
f(⋅)最小的),
O
^
\hat O
O^为二值占用图,来自OccFormer的实例级占用预测。代价函数为:
f
(
τ
,
τ
^
,
O
^
)
=
λ
coord
∥
τ
−
τ
^
∥
2
+
λ
obs
∑
t
D
(
τ
t
,
O
^
t
)
D
(
τ
t
,
O
^
t
)
=
∑
(
x
,
y
)
∈
S
1
σ
2
π
exp
(
−
∥
τ
t
−
(
x
,
y
)
∥
2
2
2
σ
2
)
f(\tau,\hat\tau,\hat O)=\lambda_\text{coord}\|\tau-\hat\tau\|_2+\lambda_\text{obs}\sum_tD(\tau_t,\hat O^t)\\ D(\tau_t,\hat O^t)=\sum_{(x,y)\in S}\frac1{\sigma\sqrt{2\pi}}\exp(-\frac{\|\tau_t-(x,y)\|^2_2}{2\sigma^2})
f(τ,τ^,O^)=λcoord∥τ−τ^∥2+λobst∑D(τt,O^t)D(τt,O^t)=(x,y)∈S∑σ2π1exp(−2σ2∥τt−(x,y)∥22)
其中 λ coord , λ obs , σ \lambda_\text{coord},\lambda_\text{obs},\sigma λcoord,λobs,σ为超参数, S = { ( x , y ) ∣ ∥ ( x , y ) − τ t ∥ 2 < d , O ^ x , y d = 1 } S=\{(x,y)|\|(x,y)-\tau_t\|_2<d,\hat{O}_{x,y}^d=1\} S={(x,y)∣∥(x,y)−τt∥2<d,O^x,yd=1}。可见, l 2 l_2 l2项使轨迹靠近预测轨迹,而碰撞项 D D D使其远离占用网格。
2.5 学习
UniAD的训练分两个阶段以稳定训练过程。首先以少量轮次联合训练感知部分(跟踪与建图),然后进行端到端训练。
共享匹配:由于UniAD包含了逐实例建模,需要在感知和预测任务中将预测与真值匹配。本文类似DETR,在跟踪与建图阶段使用二分匹配算法。跟踪时,将检测查询与新出现的真实物体匹配,而跟踪查询与过去出现过的物体匹配。跟踪模块的匹配结果在运动和占用节点被重新利用,以(从历史跟踪到未来运动)一致地、端到端地对智能体建模。
3. 实验
3.1 联合结果
安全规划:由于预测与规划比与感知更接近,本文首先研究预测任务的影响。实验表明,与不含运动预测与轨迹预测的方法相比,同时包含两者的模型有更高的性能,故这两个预测任务均对安全规划有帮助。对于感知任务,实验表明,有必要同时考虑智能体与场景的表达,即同时进行跟踪与建图任务。本文还探索了感知模块对运动预测模块的影响,实验表明同时进行跟踪和建图对预测结果有极大的性能提升。最后,与多任务学习方法相比,本文方法在各指标上均有更优的性能。
3.2 模块化结果
感知结果:UniAD的跟踪和车道线分割任务均能达到较好的性能。与感知导向的方法相比,本文方法的性能不是最优的,这是因为本文作为规划导向的方法,并未将所有模型容量用于优化感知任务上。
预测结果:本文方法运动预测的性能能超过过去的基于视觉的端到端方法。占用预测方面,本文方法在近处的性能更优。
规划结果:本文基于视觉的方法能超过一些激光雷达方法的性能。
3.4 消融研究
MotionFormer中设计的影响:实验表明,场景级别的锚、智能体-目标点交互、自车查询和非线性优化策略均能带来更高的运动预测性能。其中,场景级别的锚能带来巨大的性能提升;智能体-目标点交互能使用视觉特征增强运动查询;使用自车查询能使周围的智能体考虑自车的运动意图;非线性优化策略能考虑感知不确定性。
OccFormer中设计的影响:实验表明,将像素与所有智能体交互会导致比无交互更差的性能。占用引导的注意力掩膜可解决这一问题,并带来性能提升(由其是近处区域)。重新使用掩膜特征 M t M^t Mt而非智能体特征 G t G^t Gt获取占用特征能提高性能。
规划器中设计的影响:实验表明,使用碰撞损失与使用占用的优化能降低碰撞率和L2指标。
4. 结论与未来工作
局限性:UniAD是含多个任务的综合系统,需要大量的算力进行训练。需要探索设计轻量化部署。
补充材料
A. 任务定义
检测与跟踪:本文使用多目标跟踪代表检测和跟踪过程,输出为关联后的3D边界框,并将相应的特征 Q A Q_A QA输入运动模块。自车查询回归自车的位置,不与真值匹配。
在线建图:本文考虑BEV在线地图中的4个类别:车道线、可驾驶区域、分隔带和行人交叉路。地图查询 Q M Q_M QM也会输入运动预测模块进行智能体-地图交互。
运动预测:遇到预测是根据检测的边界框和建立的地图,预测智能体的未来轨迹。本文预测的轨迹为相对智能体的偏移量。解码MLP前的智能体特征会输入占用模块,进行场景级别的理解。自车查询也预测了未来的自车运动(粗糙规划),其特征被送入规划器中生成最终目标。
占用预测:与运动预测的稀疏的实例级表达不同,占用图是BEV离散密集表达。占用模块以智能体特征 G t G^t Gt和BEV特征 B B B为输入,进行多步智能体-场景交互,得到实例级占用图 O ^ A t ∈ R N a × H × W \hat{O}_A^t\in\mathbb R^{N_a\times H\times W} O^At∈RNa×H×W。最后,使用逐像素的argmax,融合各实例级占用得到 O ^ ∈ R H × W \hat O\in\mathbb R^{H\times W} O^∈RH×W,用于占用评估和规划。
规划:以自车查询和BEV特征 B B B为输入,预测轨迹 τ ^ \hat\tau τ^,并利用 O ^ \hat O O^优化之以避免碰撞。
B. 各任务的必要性
HD地图建立困难且容易过时,因此在线建图是必要的。运动预测生成的不可微边界框表达难以直接用于规划,而占用预测的计算消耗使得其时间视野不大,因此需要将两者结合起来。
E. 实施细节
E.1 检测与跟踪
本文使用BEVFormer的BEV编码器,得到BEV特征 B B B,并使用可变形DETR检测头基于 B B B进行检测。为避免复杂的关联,本文使用MOTR中的跟踪查询,连续跟踪过去出现的实例。
训练阶段:在每个训练序列的第一帧,所有的查询为检测查询(检测新出现的物体),与BEVFormer相同。通过匈牙利算法,将检测查询与真值匹配。这些查询会通过查询交互模块(QIM)更新,作为下一帧的跟踪查询。此后,跟踪查询会与一部分真值(过去帧出现过)进行匹配,而检测查询会与另一部分真值(新出现)进行匹配。为稳定训练,仅保存和更新3D IoU与真值大于阈值的那些查询。
推断阶段:推断阶段使用分类分数替代3D IoU过滤查询。此外,为避免因遮挡导致的物体短暂消失,还使用生命周期机制,即当一个跟踪查询的分类分数低于阈值超过一段时间时,才认为其完全消失。
E.2 在线建图
本文将道路元素分为“thing”(车道线、分隔带和行人交叉路)和“stuff”(可驾驶区域)。本文设置300个thing查询和1个stuff查询,堆叠6个位置解码层和4个掩膜解码层,并使用位置解码层输出的thing查询作为地图查询 Q M Q_M QM。
E.3 运动预测
I
T
s
,
I
T
a
,
x
^
0
,
x
^
T
l
−
1
∈
R
K
×
2
I^s_T,I^a_T,\hat{x}_0,\hat{x}_T^{l-1}\in\mathbb R^{K\times 2}
ITs,ITa,x^0,x^Tl−1∈RK×2。为得到场景级的先验,锚
I
T
a
I^a_T
ITa根据各智能体的当前位置和朝向,被旋转和平移到全局坐标系下,得到
I
T
s
I^s_T
ITs:
I
i
,
T
s
=
R
i
I
T
a
+
T
i
I^s_{i,T}=R_iI^a_T+T_i
Ii,Ts=RiITa+Ti
其中 i i i为智能体索引(后文省略)。 Q pos , Q ctx ∈ R K × D Q_\text{pos},Q_\text{ctx}\in\mathbb R^{K\times D} Qpos,Qctx∈RK×D。
MotionFormer包括三个Transformer解码器,分别对应智能体-智能体、智能体-地图和智能体-目标点交互。前两者的输入 Q A Q_A QA和 Q M Q_M QM也包含了位置编码。上一时刻的预测轨迹 ( R i x ^ i , T l − 1 + T i ) (R_i\hat x_{i,T}^{l-1}+T_i) (Rix^i,Tl−1+Ti)被作为智能体-目标点交互中可变形注意力的参考点。
将三个Transformer解码器的输出拼接后,使用高斯混合模型建立轨迹, x ^ l ∈ R K × T × 5 \hat x_l\in\mathbb R^{K\times T\times 5} x^l∈RK×T×5。其中5的前两维度 ( x , y ) (x,y) (x,y)为最终的预测轨迹。此外,还预测了每个轨迹的分数 s c o r e ( x ^ l ) ∈ R K score(\hat x_l)\in\mathbb R^K score(x^l)∈RK。
E.5 规划
以跟踪和运动预测的自车查询、以及指令嵌入为输入,使用MLP和沿K维的最大池化处理,得到最显著的特征。然后,使用交叉注意力与BEV特征 B B B交互。注意规划查询和BEV特征均使用了位置编码。随后,使用MLP回归规划轨迹 τ ^ ∈ R T p × 2 \hat\tau\in\mathbb R^{T_p\times2} τ^∈RTp×2。最后,使用碰撞优化器避免碰撞。
E.6 训练细节
联合学习:第一阶段训练感知任务时,读取预训练的BEVFormer(包括图像主干、FPN、BEV编码器和检测解码器,不含查询嵌入),且冻结图像主干。损失函数为跟踪和建图损失之和。
第二阶段同样冻结图像主干和BEV编码器。损失函数为跟踪、建图、运动预测、占用预测和规划损失之和。
检测&跟踪损失:使用匈牙利损失(focal分类损失和 l 1 l_1 l1定位损失的组合)。其中,新查询通过二分匹配与真值配对,而跟踪查询则与对应跟踪ID的真值配对。
在线建图损失:包括thing损失和stuff损失,其中focal损失用于分类,L1损失用于thing的边界框,Dice和GIoU损失用于分割stuff。
运动预测损失:本文将多轨迹建模为高斯混合,并使用多路径损失(包含分类分数损失和负对数似然损失)。此外,为保证轨迹的时间平滑,本文预测了智能体的速度,并随时间积累得到最终轨迹。
占用预测损失:实例级占用预测的输出为每个智能体的二元分割,因此使用二元交叉熵和Dice损失作为占用损失。此外,使用同样的损失监督注意力掩膜,因其可视为粗糙预测。
规划损失:使用模仿
l
2
l_2
l2损失和碰撞损失:
L
col
(
τ
^
,
δ
)
=
∑
i
,
t
I
o
U
(
b
o
x
(
τ
^
t
,
w
+
δ
,
l
+
δ
)
,
b
i
,
t
)
,
L
plan
=
λ
imi
∥
τ
^
−
τ
~
∥
2
+
λ
col
∑
(
ω
,
δ
)
ω
L
col
(
τ
^
,
δ
)
L_\text{col}(\hat\tau,\delta)=\sum_{i,t}\mathtt{IoU}(box(\hat\tau_t,w+\delta,l+\delta),b_{i,t}),\\ L_\text{plan}=\lambda_\text{imi}\|\hat\tau-\tilde\tau\|_2+\lambda_\text{col}\sum_{(\omega,\delta)}\omega L_\text{col}(\hat\tau,\delta)
Lcol(τ^,δ)=i,t∑IoU(box(τ^t,w+δ,l+δ),bi,t),Lplan=λimi∥τ^−τ~∥2+λcol(ω,δ)∑ωLcol(τ^,δ)
其中 ( ω , δ ) (\omega,\delta) (ω,δ)为考虑不同安全距离的权值对, b o x box box表示自车边界框, b i , t b_{i,t} bi,t为智能体的预测。
F. 实验
F.2 指标
多目标跟踪:使用AMOTA(平均多目标跟踪准确率)、AMOTP(平均多目标精度)、召回率和IDS(实例切换)评估。
AMOTA
=
1
n
−
1
∑
r
∈
{
1
n
−
1
,
2
n
−
1
,
⋯
,
1
}
MOTA
r
,
MOTA
r
=
max
(
0
,
1
−
FP
r
+
FN
r
+
IDS
r
−
(
1
−
r
)
GT
r
GT
)
\text{AMOTA}=\frac1{n-1}\sum_{r\in\{\frac1{n-1},\frac2{n-1},\cdots,1\}}\text{MOTA}_r,\\ \text{MOTA}_r=\max(0,1-\frac{\text{FP}_r+\text{FN}_r+\text{IDS}_r-(1-r)\text{GT}}{r\text{GT}})
AMOTA=n−11r∈{n−11,n−12,⋯,1}∑MOTAr,MOTAr=max(0,1−rGTFPr+FNr+IDSr−(1−r)GT)
其中,
FP
r
,
FN
r
,
IDS
r
\text{FP}_r,\text{FN}_r,\text{IDS}_r
FPr,FNr,IDSr分别为召回率
r
r
r下FP、FN和IDS的数量,GT为真实物体的数量。
AMOTP
=
1
n
−
1
∑
r
∈
{
1
n
−
1
,
2
n
−
1
,
⋯
,
1
}
∑
i
,
t
d
i
,
t
TP
r
\text{AMOTP}=\frac1{n-1}\sum_{r\in\{\frac1{n-1},\frac2{n-1},\cdots,1\}}\frac{\sum_{i,t}d_{i,t}}{\text{TP}_r}
AMOTP=n−11r∈{n−11,n−12,⋯,1}∑TPr∑i,tdi,t
其中 d i , t d_{i,t} di,t为轨迹 i i i在时间 t t t的位置误差, TP r \text{TP}_r TPr为召回率 r r r下TP的数量。
在线建图:使用IoU指标对每个类别评估。
运动预测:使用传统指标minADE(最小平均位移误差)、minFDE(最小最终位移误差)和MR(丢失率)。这些指标仅对匹配的TP计算。此外,还使用端到端指标EPA(端到端预测精度)和minFDE-AP。运动预测指标对车辆进行评估。
占用预测:本文在场景级别和实例级别上分别评估。IoU衡量了场景级别的类别分割(不考虑实例),而视频全景质量(VPQ)考虑了每个实例的存在和随时间的一致性:
VPQ
=
∑
t
=
0
H
∑
(
p
t
,
q
t
)
∈
TP
t
I
o
U
(
p
t
,
q
t
)
∣
TP
t
∣
+
1
2
∣
FP
t
∣
+
1
2
∣
FN
t
∣
\text{VPQ}=\sum_{t=0}^H\frac{\sum_{(p_t,q_t)\in\text{TP}_t}\mathtt{IoU}(p_t,q_t)}{|\text{TP}_t|+\frac12|\text{FP}_t|+\frac12|\text{FN}_t|}
VPQ=t=0∑H∣TPt∣+21∣FPt∣+21∣FNt∣∑(pt,qt)∈TPtIoU(pt,qt)
其中 H = T o − 1 H=T_o-1 H=To−1为未来视野, TP t , FP t , FN t \text{TP}_t,\text{FP}_t,\text{FN}_t TPt,FPt,FNt分别为时间 t t t下的TP,FP,FN集合。两个指标在两个不同的BEV范围(近距离和远距离)下、当前帧和未来帧内分别评估。
规划:本文使用L2误差和碰撞率作为评估指标。
F.3 模型复杂度和计算代价
本文的计算复杂度主要来自BEV编码器部分;解码器部分则引入了大量参数。与BEVerse相比,本文方法包含了更多的任务,且性能更优,但FLOP更低。
F.4 模型尺度
实验表明,使用更大的图像主干能提高BEV特征质量,从而提高感知、预测和规划性能。
F.5 定性结果
注意力掩膜可视化:可视化规划器中交叉注意力的注意力掩膜,可知模型更关注目标车道和关键智能体。且在不同的指令下其关注的点有很大变化。
不同场景的可视化:可视化表明,本文以规划为导向的设计能够在某些情况下,即使前面的模块结果不准确,后面的模块也能恢复。