【论文笔记】Enhancing Autonomous Driving: A Low-Cost Monocular End-to-End Framework with Multi-Task Integr
Improving Self-Driving Cars: An Affordable Single Camera End-to-End Framework with Multi-task Processing and Temporal Information Fusion
I. 引言
当前主流的自动驾驶系统采用模块化架构,在信息处理和精度方面存在局限性。随后提出了端到端自动驾驶系统,并取得了显著进展。
早期采用模仿学习的方法,并基于运动预测标签的监督模型构建了系统架构,在实验中表现出良好的效果。然而,在环境表征方面存在不足,并且难以应对复杂的导航场景。随着提出了基于BEV(鸟视图)以及多任务学习框架(MTL),感知、预测与规划操作在该框架下得以统一实现,并实现了计算资源的有效利用的同时还通过多任务知识提升了系统的泛化能力与执行性能水平。然而,在现有技术中大多数MTL方法仅关注特征共享这一环节,并未充分考虑跨任务间的协同关系;此外,在实时性方面仍存在局限性。
本文构建了一个以单目图像为输入的端到端多任务学习自动驾驶框架。该框架整合了基于流的时间处理模块,并包含BEV建图、BEV目标检测、语义分割、深度估计、目标速度预测和路径点预测等关键任务。模型采用Transformer架构,并通过交叉注意力增强模块间的联系:即利用深度感知与语义感知的嵌入来指导BEV感知过程。此外,还引入运动解码器来生成运动规划结果,并从BEV感知特征中分离出智能体特征作为输入至解码器进行路径点预测与目标速度预测。时间解码器能够高效融合历史特征以支持流式时间处理功能。
III. 方法
本文方法基于单一视角图像数据、车辆检测结果以及导航目标坐标作为输入信息,在此基础上输出相应的运动规划方案。该系统由三个主要组件构成:包括感知单元、时序管理单元以及路径规划单元,并通过如图所示的架构进行整合协调运作。

A. 感知部分
本文感知模块涉及四个关键任务:包括深度监督与语义分割用于生成相关特征;其余两项则为核心功能;前两项则负责提取深度与视觉信息,并将这些信息转化为嵌入表示;从而辅助完成从PV到BEV视角转换的过程。
设输入单目图像为变量X∈ℝ^(h×w×3),其中h、w分别表示图像的高度与宽度;采用RegNety-32作为主干模块并结合FPN架构融合多尺度特征信息;生成中间特征图f_m。如图所示,在编码器模块中进行操作:通过3×3卷积层获得语义嵌入层f_s与深度嵌入层f_d;其后的1×1卷积层分别输出语义分割掩码与深度估计结果,并通过相应的监督信号指导学习过程;附加可学习的位置信息嵌入后,在不同全局自注意力机制与FFN层中进一步提取视觉、深度与语义三重表示:分别为f_ve、f_de与f_se。

该模块由自注意力、深度交叉注意力、语义交叉注意力、视觉交叉注意力等子模块构成,并采用可学习BEV查询q\in\mathbb R^{N\times C}进行初始化操作。随后通过自注意力机制实现特征间的交互作用;随后应用深度交叉注意力机制来聚合深度嵌入f_{de}:
Q_1=w'_q,K_1=w'_kf_{de},V_1=w'_vf_{de},\\ A_1=Softmax(Q_1K^T_1/\sqrt{C/h}),\\ Q_2=w_2(A_1V_1)
其中可学习参数包括q'、k'、v'以及$v''等变量。同样地,在类似于这种情况下(即通过输入语义交叉注意力生成语义感知的查询),我们能够构建一个新的查询变量以进一步提升模型性能)。数学表达式如下所示:
Q'_2 = w''_q, \quad K_2 = w''_k f_{se}, \quad V_2 = w''_v f_{se}, \\ A_{\text{ attend }} = \text{Softmax}\left( \frac{Q'_2 K^{\top}_2}{\sqrt{C/h}} \right), \\ Q_{\text{ new }} = w'''(A_{\text{ attend }} V)
其中w''_q,w''_k,w''_v,w_3分别表示可学习参数,A_2为注意力图。
然后,在视觉交叉注意力模块中进行查询输入操作后, 经过计算得到对应的中间结果 Q_4. 通过自注意力机制处理后, 计算出最终的查询信息 Q_f.
为了降低负迁移的影响,在本研究中我们将矩阵Q_f\in\mathbb R^{(N_1+N_2^2)\times C}划分为两部分即运动查询矩阵Q_m\in\mathbb R^{N_1\times C}与感知查询矩阵Q_b\in\mathbb R^{N_2^2\times C}两者共同构成整个特征空间。其中感知查询矩阵Q_b经BEV解码器与检测头处理后生成相应的感知结果而运动查询矩阵Q_m则通过运动预测模块输出最终的运动预测结果。
为了生成BEV感知结果,在处理过程中将原始矩阵Q_b \in \mathbb{R}^{N_2^2 \times C}转化为重塑后的矩阵形式Q_b \in \mathbb{R}^{N_2 \times N_2 \times C}。在BEV地图生成阶段,该输入通过上采样模块(由卷积层结合双线性插值技术构成)被重新构造为输出o_b \in \mathbb{R}^{N \times N \times c_b}的形式。在此过程中,默认情况下假设c_b代表类别数量。针对BEV目标检测任务而言,则需要预测位置热图f_p \in [0,1]^{N' \times N'}、朝向图f_o \in \mathbb{R}^{N' \times N' \times 12}以及回归图f_r \in \mathbb{R}^{N' \times N' \times 5}(其中包含BEV尺寸参数、位置偏移量以及朝向角偏移量等关键信息)。
B. 时间存储体
大量端到端自动驾驶模型仅聚焦于当前单帧信息或简单连接历史特征。某些方法采用了时空体结构来存储与融合历史特征,但其空间开销较大。我们提出了一种流式时间解码器来融合历史特征(如图所示)。

本文仅进行运动查询输入操作,并在此基础上增加额外信息(即通过多层感知机MLP从速度信号和独热编码指令中提取出额外特征f_e \in \mathbb{R}^{1 \times C}),将其与运动查询结果相结合生成新的状态向量f_a^c \in \mathbb{R}^{(N_1 + 1) \times C})。随后将其时间处理模块接入系统中,在其基础上利用Transformer解码器融合历史特征信息。具体而言,在第一帧情况下(即初始状态时),历史智能体的状态表示为f_a^h = f_c^h;而对于后续帧,则是基于当前智能体的状态表示f_a^h \in \mathbb{R}^{(N_1 + 1) \times C}进行更新。其时间处理模块被Transformer解码器用于融合历史特征信息;其后经过交叉注意力机制计算获得中间结果;最终再经自注意力机制和前馈网络FFN作用得到完整的智能体状态表示F_a。
最终,时间融合的智能体特征F_a会作为下一帧的历史智能体特征。
C. 规划部分
运动规划主要涉及对路径点以及动态变化的速度进行预估。本文基于前人的研究工作,在预设距离范围内的路径点基础上设定预期速度。
智能体特征会输入到如图所示的速度解码器和路径点解码器。

该系统中的速度解码器由交叉注意力机制与前馈网络(FFN)共同构成。随后初始化速度查询状态变量Q_s\in\mathbb R^{c\times1}, 经过与交叉注意力模块的交互作用后, 该状态变量将被经FFN变换获得最终的目标速度编码器状态Q_{ts}. 最后通过两层多层感知机(MLP)进行解码处理以获取目标速度预测结果p_v\in\mathbb R^4, 其对应于预先定义好的四种可能的速度概率分布情况。
该解码器由交叉注意力机制、自注意力机制以及前馈神经网络(FFN)构成。随后初始化路径点查询向量 Q_w \in \mathbb R^{c\times T_s} ,其中时间范围参数 T_s 定义了该模型的时间尺度。通过交叉注意力机制与查询向量 Q_w 进行信息交互后,并结合自注意力机制与FFN激活函数作用于查询向量以生成更新后的路径点查询。这些更新后的路径点查询将与当前位置信息及目标位置信息一起作为输入信号传递至基于Gated Recurrent Unit(GRU)的时间门控模块中,并最终输出初始隐特征向量 Q_w 作为解码结果。

设t{}时刻的隐特征为变量Zt__{__}__(其中下标t__{__}__表示时间步),其输出结果定义为xt{}. 隐特征通过输入一个多层感知机(MLP)模型后,在时间窗口\Delta t{}(表示当前时间步与前一步的时间差)内生成路径点偏移量\Delta xt${}. 具体推导过程如下:
\Delta x$t$__{ __ } __ = MLP\left( GRU\left( concat\left[ x$t__,~x_{t-a}, Z$t__, \right] \right) \right),
x_{t}=x_{t-1} + \Delta x$t__
其中x_{ta}为目标位置(初始位置为x_0=(0,0))。
D. 控制部分

给定规划模块将输出一系列路径点\{w_t\}_{t=1}^{T_s}以及速度预测值v_p;由控制单元负责发送转向指令、加速指令以及制动指令。该系统将被划分为横向调节装置与纵向调节装置两大组成部分
为了确定路径点之间的方向角差异,并作为横向PID控制器输出的转向指令进行传递;纵向控制器则基于预测的速度值p_v来确定最终目标速度v_t:
v_t = \begin{cases} 0, & \text{当 } p_v[0] \geq V^T \\ \sum_{i=0}^{3} V[i] \times p_v[i], & \text{当 } p_v[0] \end{cases}
其中预设的速度序列V=\{0,7,19,29\}被设定下来作为基准参数。其超车速度上限值V^T被设定为系统运行的关键指标。其会进入纵向PID控制器系统中进行调节以控制油门与刹车操作以确保车辆动态性能满足要求
E. 损失函数
采用交叉熵损失作为语义分割及BEV地图生成任务的统一目标函数表达式,并将其应用于后续模型训练过程。基于此,在BEV目标检测中,位置热图、朝向图以及回归图分别采用了focal损失、交叉熵损失与L1损失作为其对应的子目标函数表达式。在路径点预测方面,则采用L1范数作为其对应的优化指标,在速度预测任务中被归类为分类问题,并采用了交叉熵损失进行监督学习。
IV. 实验
A. 数据集与基准
本文使用三种评估指标:
(1)路径完成率(RC):表示已完成路径与总路径长度的占比。
RC=\frac{1}{N}\sum_{i=1}^{N}\frac{R_i}{R_i^{r}}
其中N为路线数量;R_i为路线i的完成距离,R_i^r为路线i的总距离。
(2)违规评分(IS):惩罚因子的乘积形式。
I=\prod_{j}^{Ped,Veh,Stat,Red}(p^j)^{\#infractions^j}\\ IS=\frac1N\sum_{i=1}^NI(i)
其中I(i)即表示路线i对应的违规分数;Ped/Veh/Stat/Red分别代表行人/Vehicle/Stationary Objects/Red light等不同类型的违规;#infractions则表示各类违规的数量;而p^j则代表惩罚系数。
(3)驾驶分数(DS):路线完成度与违规分数之积。
DS=\frac1N\sum_{i=1}^N\frac{R_i}{R_i^r}I(i)
B. 实施细节
使用两阶段训练策略,先训练感知部分,再训练完整模型。
C. 与SotA比较
通过实验证明,在DS指标下,该方法显著超越了其他单模态和多模态方法的性能,并其性能与之相当。
D. 运行时间
实验表明,本文方法(40ms)比多模态方法有更快的速度。
E. 消融研究
首先分析了深度嵌入与语义嵌入的作用。当移除其中一个或两者时,性能显著下降;这表明深度和语义嵌入在提升模型性能方面的重要性。通过可视化特征图发现,在主干输出特征图中注意力分布呈现分散状态;其中前者侧重于物体识别、而后者则聚焦于车道线与交通灯识别;而BEV特征图则最关注物体、车道线以及交通灯;这表明深度嵌入与语义embed能够引导模型聚焦关键信息并进行相应的视图变换
为了检验时间存储体的有效性,在实验中移除该装置后展开测试发现性能明显降低
若运动解码器采用整体BEV特征而非分离出独立的智能体特征作为输入,则系统性能将有所下降;此外,在对路径点预测和速度预测任务中使用同一类型的Transformer解码器可能会降低模型性能。
G. 结果解析
考察不同环境条件(城镇、气候、时段)下的系统运行结果显示,在多数情况下未能达到预期水平。具体而言,在强降雨情况下表现最佳,在弱降雨情况下表现较差,在日间时段的表现略逊于夜间时段。研究推测这可能源于各影响因素间的相互作用。实验数据表明,在时间维度与空间维度的作用下,“路径布局及城市规模对系统性能的影响更为显著”。
为了分析失效情况,可视化失效位置(碰撞、阻塞、闯红灯)的显示表明, 碰撞是最主要的失效情形
