论文总结
Wu P, Jia X, Chen L, et al. Trajectory-guided control prediction for end-to-end autonomous driving: A simple yet strong baseline[J]. arXiv preprint arXiv:2206.08129, 2022.
1 Problem Setting
1.1 Problem formulation
- 输入:当前状态 x \mathbf x x(包含传感器信号 i \mathbf i i、车速 v v v和高级导航命令 g \text{g} g:包含两种形式)。输出:控制信号 a \text{a} a(包含纵向控制信号 t h r o t t l e ∈ [ 0 , 1 ] throttle \in [0,1] throttle∈[0,1]和 b r a k e ∈ [ 0 , 1 ] brake \in [0,1] brake∈[0,1];横向控制信号 s t e e r ∈ [ − 1 , 1 ] steer\in[-1,1] steer∈[−1,1])。
- 构建两个分支分别预测轨迹和控制信号(由轨迹引导,包含当前和未来多步的控制信号)
- 轨迹预测分支由真实轨迹进行监督;控制信号预测由专家控制进行监督,即行为克隆范式。
arg min θ E ( x , a ∗ ) ∼ D [ L ( a ∗ , π θ ( x ) ) ] , \arg\min\limits_{\theta}\mathbb{E}_{(\mathbf{x},\mathbf{a}^{\ast})\sim\operatorname{D}}[\mathcal{L}(\mathbf{a}^{\ast},\pi_\theta(\mathbf{x}))], argθminE(x,a∗)∼D[L(a∗,πθ(x))], - D = { ( x , a ∗ ) } D=\{(\mathbf{x},\mathbf{a}^*)\} D={(x,a∗)}数据集是由从专家那里收集的状态-动作对。每个收集到的路线都是一个轨迹 ξ = ( x 0 , a 0 ∗ , x 1 , a 1 ∗ , ⋯ , x T ) \xi=(\mathbf{x}_{0},\mathbf{a}_{0}^{*},\mathbf{x}_{1},\mathbf{a}_{1}^{*},\cdots,\mathbf{x}_{\mathrm{T}}) ξ=(x0,a0∗,x1,a1∗,⋯,xT),是状态动作对序列 { ( x i , a i ∗ ) } i = 0 T \{(\mathbf{x}_i,\mathbf{a}_i^*)\}_{i=0}^\mathrm{T} {(xi,ai∗)}i=0T。
1.2 Expert demonstration
- 专家是Roach,原因在于可以提供监督信号之外的信息,比如隐层特征。价值损失作为辅助任务添加到学生模型中,以预测期望回报。
2 Architecture Design
1)输入图像
i
\mathbf{i}
i经过MLP(比如ResNet)得到特征图
F
\mathbf{F}
F;2)concatenate导航信息
g
\text{g}
g和当前车速
v
v
v形成
m
\mathbf{m}
m,输入
m
\mathbf{m}
m经过MLP后输出得到measurement feature
j
m
\mathbf{j}_\mathrm{m}
jm。二者随后输入到Trajectory planning branch和Multi-step Control Branch中,最后,采用基于情景的融合方案,将两种输出模式的优点结合起来(无非就是加权平均)。
2.1 Trajectory planning branch
- 图像特征 F \mathbf{F} F经过平均池化层后与measurement feature j m \mathbf{j}_\mathrm{m} jmconcatenate形成 j t r a j \mathbf{j}^{\mathrm{traj}} jtraj。
- j t r a j \mathbf{j}^{\mathrm{traj}} jtraj输入到GRU中自回归的获得未来waypoints。
- 使用两个PID控制器分别进行横向和纵向控制,首先计算连续航路点之间的向量。这些矢量的大小代表所需的速度,并被发送给纵向控制器以产生油门和刹车控制动作,方向被发送给横向控制器以获得转向动作。
2.2 Multi-step Control Branch
- 输入当前状态 x t \mathbf{x}_t xt,输出多个动作 π θ b u l t i = ( a t , a t + 1 , ⋯ , a t + K ) \pi_{\theta_{bulti}}=(\mathbf{a_t},\mathbf{a_{t+1}},\cdots,\mathbf{a_{t+K}}) πθbulti=(at,at+1,⋯,at+K)。Temporal mmodule充当模拟器,来解决从当前感知输入预测未来控制输出的问题。(执行自车和环境的交互改变过程,主要提供环境的动态信息和自车的状态)
- 同时,为了提高融合关键静态信息(如路沿和车道)的能力,并增强两个分支的空间一致性,我们建议使用Trajectory planning branch来引导Control在每个未来时间步关注输入图像的正确区域
Temporal mmodule。
- 在时刻 t ( 0 ≤ t ≤ K − 1 ) t\left({0}\leq t\leq K-1\right) t(0≤t≤K−1)模块的输入是当前特征 j t c t l \mathbf{j_t}^{\mathrm{ctl}} jtctl和当前预测动作 a t \mathbf{a_t} at的concatenation。(这是环境和自车状态的紧凑表示)
- 基于当前特征向量和预测动作来推断动态变化过程。然后,更新后的隐藏状态 h t + 1 c t l \mathbf{h}_{\mathrm{t+1}}^{\mathrm{ctl}} ht+1ctl将包含有关环境的动态信息以及自车在时间步 t+1 \text{t+1} t+1时更新的状态。
- 时间模块充当了一个粗糙的模拟器,将整个环境和代理抽象为特征向量。然后,它根据当前的动作预测模拟环境和自车之间的相互作用。(是比较抽象的)
Trajectory-guided attention。
问题引出:只有当前时刻的传感器输入,很难挑选出模型在未来步骤中应该关注的理想区域。然而,自车的位置包含了重要的线索,告诉我们如何在每个步骤中找到那些包含控制预测关键静态信息的区域。
- 我们向轨Trajectory Branch寻求帮助,以获取自车在相应步骤的可能位置信息。
- 利用来自控制分支和轨迹分支的相应隐藏状态来计算注意力图
w
t
∈
R
1
×
H
×
W
\mathbf{w_t}\in\mathbb{R}^{1\times H\times W}
wt∈R1×H×W:
w t = M L P ( C o n c a t [ h t t r a j , h t c t l ] ) . \mathbf{w}_{\mathrm{t}}=\mathrm{MLP}(\mathrm{Concat}[\mathbf{h}_{\mathrm{t}}^{\mathrm{traj}},\mathbf{h}_{\mathrm{t}}^{\mathrm{ctl}}]). wt=MLP(Concat[httraj,htctl]). - 这一步的feature map
F
\mathbf{F}
F采用注意力映射
w
t
∈
R
1
×
H
×
W
\mathbf{w_t}\in\mathbb{R}^{1\times H\times W}
wt∈R1×H×W进行聚合。然后,将参与的特征映射与
h
t
c
t
l
\mathbf{h}_{t}^{\mathrm{ctl}}
htctl结合起来,形成包含关于环境和自车的静态和动态信息的信息表示特征
j
t
c
t
l
\mathbf{j_t}^{\mathrm{ctl}}
jtctl:
j t c t l = M L P ( C o n t a t [ S u m ( S o f t m a x ( w t ) ⊙ F ) , h t c t l ] ) . \mathbf{j}_t^{\mathrm{ctl}}=\mathrm{MLP}(\mathrm{Contat}[\mathrm{Sum}(\mathrm{Softmax}(\mathbf{w}_t)\odot\mathbf{F}),\mathbf{h}_t^{\mathrm{ctl}}]). jtctl=MLP(Contat[Sum(Softmax(wt)⊙F),htctl]). - 将信息表示特征 j t c t 1 \mathbf{j}_{\mathrm{t}}^{\mathrm{c}\mathrm{t}\mathrm{1}} jtct1输入到策略头中,该策略头在所有时间步长之间共享,以预测相应的控制动作 a t \mathbf{a}_{\mathrm{t}} at。
- 为了保证特征 j t c t 1 \mathbf{j}_{\mathrm{t}}^{\mathrm{c}\mathrm{t}\mathrm{1}} jtct1确实描述了该步骤的状态并包含控制预测的重要信息,我们在每一步添加一个特征损失,使 j t c t 1 \mathbf{j}_{\mathrm{t}}^{\mathrm{c}\mathrm{t}\mathrm{1}} jtct1也接近专家的特征
3 Loss Design
loss有三种:轨迹规划损失 L t r a j \mathcal{L}_{tr a j} Ltraj、控制预测损失 L c t l \mathcal{L}_{ctl} Lctl和辅助任务损失 L a u x \mathcal{L}_{aux} Laux。
- 轨迹规划损失 L t r a j \mathcal{L}_{tr a j} Ltraj: L t r a j = ∑ t = 1 K ∥ w p t − w p ^ t ∥ 1 + λ F ⋅ L F ( j 0 t r a j , j 0 E x p e r t ) . \mathcal{L}_{traj}=\sum_{t=1}^{K}\|\mathbf{w}\mathbf{p}_{\mathrm{t}}-\mathbf{w}\hat{\mathbf{p}}_{\mathrm{t}}\|_{1}+\lambda_{\mathrm{F}}\cdot\mathcal{L}_{\mathrm{F}}\left(\mathbf{j}_{0}^{\mathrm{traj}},\mathbf{j}_{0}^{\mathrm{Expert}}\right). Ltraj=∑t=1K∥wpt−wp^t∥1+λF⋅LF(j0traj,j0Expert).
- 控制预测损失 L c t l \mathcal{L}_{ctl} Lctl: L c t l = K L ( B e t a ( a 0 ) ∣ ∣ B e t a ( a ^ 0 ) ) + 1 K ∑ t = 1 Λ K L ( B e t a ( a t ) ∣ ∣ B e t a ( a ^ t ) ) + λ F ⋅ L F ( j 0 c t l , j 0 E x p e r t ) + 1 K ∑ t = 1 K L F ( j t c t l , j t E x p e r t ) , \begin{gathered} \mathcal{L}_{ctl}= \mathbf{K}\mathbf{L}\left(\mathrm{Beta}(\mathbf{a}_{0})||\mathrm{Beta}(\hat{\mathbf{a}}_{0})\right)+{\frac{1}{K}}\sum_{t=1}^{\Lambda}\mathbf{K}\mathbf{L}\left(\mathrm{Beta}(\mathbf{a}_{t})||\mathrm{Beta}(\hat{\mathbf{a}}_{t})\right) \\ +\lambda_F\cdot\mathcal{L}_F\left(\mathbf{j}_0^{\mathrm{ctl}},\mathbf{j}_0^{\mathrm{Expert}}\right)+\frac{1}{K}\sum_{t=1}^{K}\mathcal{L}_F\left(\mathbf{j}_t^{\mathrm{ctl}},\mathbf{j}_t^{\mathrm{Expert}}\right), \end{gathered} Lctl=KL(Beta(a0)∣∣Beta(a^0))+K1t=1∑ΛKL(Beta(at)∣∣Beta(a^t))+λF⋅LF(j0ctl,j0Expert)+K1t=1∑KLF(jtctl,jtExpert),
- 辅助任务损失 L a u x \mathcal{L}_{aux} Laux:从当前图像特征预测自车的速度 s s s、和Roach的价值(期望回报)。自车速度使用 L 1 L_{1} L1损失,价值估计使用 L 2 L_{2} L2损失。 L a u x \mathcal{L}_{aux} Laux是二者加权和。
最终的损失是三者之和:
λ
t
r
a
j
,
λ
c
t
l
,
λ
a
u
x
\lambda_{t r a j},\lambda_{c t l},\lambda_{a u x}
λtraj,λctl,λaux自然是超参数
L
=
λ
t
r
a
j
⋅
L
t
r
a
j
+
λ
c
t
l
⋅
L
c
t
l
+
λ
a
u
x
⋅
L
a
u
x
.
\mathcal{L}=\lambda_{traj}\cdot\mathcal{L}_{traj}+\lambda_{ctl}\cdot\mathcal{L}_{ctl}+\lambda_{aux}\cdot\mathcal{L}_{aux}.
L=λtraj⋅Ltraj+λctl⋅Lctl+λaux⋅Laux.
4 Output fusion
TCP输出有两种:“规划”的轨迹和预测的控制信号,融合模块集二者之长,进行优势互补。其中 α \alpha α(0 到 0.5)是融合系数,根据场景选择大小。
situation根据自车是否turning进行选择。turning:control Specialized、othwise:trajectory Specialized。
control Specialized、othwise:trajectory Specialized。