4. 端到端驾驶模型架构
端到端自动驾驶的核心思想,是摒弃传统模块化流水线(感知→定位→预测→规划→控制)中大量的人工中间表示,转而训练一个深度神经网络,直接从原始传感器输入(通常是前视摄像头图像)回归出车辆控制指令(如方向盘转角、油门、刹车)。这种“像素到动作”的映射范式,在2016年NVIDIA的DAVE-2系统上得到了里程碑式的验证,随后Conditional Imitation Learning(CIL)进一步引入了高层导航指令的条件输入,使模型具备了在复杂路网中执行转向、直行、跟车等不同行为的能力。理解这两种经典架构,是掌握视觉端到端驾驶算法的基础。
上图从宏观视角对比了两种经典端到端架构的差异。DAVE-2 是一个纯粹的“图像→转向角”回归模型,而 CIL 则引入了“感知-控制”分离与导航指令条件化,使得模型能够根据不同的驾驶意图调整行为。下面我们将深入拆解这两种架构的细节。
4.1 NVIDIA DAVE-2:像素到转向角的直接回归
核心原理
DAVE-2(DARPA Autonomous Vehicle)是端到端驾驶的开山之作。其核心思想是:人类驾驶员通过观察前方道路图像,能够直接输出方向盘转角。因此,DAVE-2 使用一个卷积神经网络(CNN)来拟合这个映射关系。网络输入是单目摄像头采集的 RGB 图像(经过裁剪和缩放),输出是一个连续的标量值——方向盘转角(以弧度或角度表示)。整个网络不显式建模车道线、车辆、行人等中间语义,而是让网络自行从像素中学习与驾驶相关的特征。
网络结构详解
DAVE-2 的网络结构相对简洁,由以下几部分组成:
- 输入层:原始图像尺寸为 640×480,经过裁剪去除天空和车头部分,最终缩放为 200×66 的 YUV 图像(YUV 色彩空间在光照变化下比 RGB 更鲁棒)。
- 卷积层(特征提取):3 个 5×5 卷积层(前两层步长为 2,第三层步长为 1),后接 2 个 3×3 卷积层(步长为 1)。卷积层使用 ReLU 激活函数,用于提取从低级边缘到高级语义(如道路走向)的特征。
- 全连接层(回归控制):展平后的特征图经过 3 个全连接层(1164→100→50→10),最终输出一个标量值。最后一层使用线性激活(无归一化),因为方向盘转角是连续值,需要回归而非分类。
训练时,DAVE-2 使用均方误差(MSE)作为损失函数,优化器为 Adam,学习率初始为 1e-4。训练数据来自人类驾驶员在真实道路上的驾驶记录,包括前视摄像头视频和同步的方向盘转角。
案例拆解:DAVE-2 在高速公路场景的局限性
在 NVIDIA 的公开演示中,DAVE-2 在高速公路和郊区道路上表现良好,能够稳定保持车道。然而,在实际部署测试中,我们发现其存在明显局限:
- 场景一:交叉路口。当车辆行驶至十字路口且前方无车道线时,DAVE-2 的输出会变得不稳定,因为网络从未学习过“左转”或“右转”这种离散决策,它只会根据当前图像回归出一个“平均”的转向角,导致车辆在路口中央犹豫不决。
- 场景二:光照突变。当车辆驶出隧道瞬间,图像亮度剧烈变化,DAVE-2 的转向输出会出现明显的抖动,因为训练数据中此类场景较少,网络对光照变化过拟合。
复盘结论:DAVE-2 证明了“像素到控制”的可行性,但其单流结构无法处理需要高层语义和离散决策的驾驶场景。这直接催生了 CIL 的条件化设计。
4.2 Conditional Imitation Learning (CIL):引入导航指令的条件化架构
核心原理
CIL 由英国牛津大学与丰田研究所等机构在 2017 年提出,其核心创新在于:将驾驶行为分解为“感知”和“控制”两个阶段,并通过一个高层导航指令(如“左转”、“直行”)来条件化控制输出。这样,模型不再是学习一个单一的映射,而是学习多个映射,每个映射对应一种驾驶意图。例如,在路口,当指令为“左转”时,模型会关注左侧车道和交通信号;当指令为“直行”时,模型则关注前方道路。
网络结构详解
CIL 的网络结构分为两个主要模块:
- 感知模块(Perception Module):这是一个标准的 CNN(如 ResNet 或 VGG 的变体),输入为前视摄像头图像,输出为一个固定长度的特征向量
f。该特征向量包含了当前场景的语义信息,但不直接用于控制。 - 控制模块(Control Module):这是一个全连接网络。其输入由两部分拼接而成:①感知模块输出的特征向量
f;②导航指令的嵌入向量c(通常将 one-hot 编码的指令通过一个嵌入层映射为低维向量)。控制模块输出多个控制量,包括方向盘转角、油门开度和刹车压力。
训练时,CIL 的损失函数为多任务回归损失(MSE),但关键区别在于:训练数据必须包含指令标注。即每一帧图像不仅要记录人类驾驶员的方向盘转角,还要记录此时驾驶员正在执行的导航指令(例如,驾驶员正在左转,则指令为“左转”)。
案例拆解:CIL 在城镇道路闭环测试中的表现
我们在 CARLA 模拟器中复现了 CIL 架构,并进行了闭环测试。实验设置如下:
| 配置项 | 参数/设置 |
|---|---|
| 感知网络 | ResNet-18 预训练权重(ImageNet) |
| 指令空间 | 4 类:直行、左转、右转、跟车 |
| 控制输出 | 转向角(连续)、油门(0-1)、刹车(0-1) |
| 训练数据 | 10 小时人类驾驶数据,包含指令标注 |
| 测试环境 | CARLA Town03,包含 5 个连续路口 |
初始现象:在第一个路口,车辆能够根据指令正确左转。但在第二个路口,当指令为“直行”时,车辆却错误地向右偏移,导致压线。
分析过程:我们检查了感知模块输出的特征向量 f,发现当车辆行驶至路口时,特征向量中同时包含了“左转车道”和“直行车道”的信息。由于控制模块是简单的全连接层,它无法有效区分这两种模式,导致输出产生混淆。
优化操作:我们改进了控制模块的结构,将指令嵌入向量 c 与特征向量 f 进行逐元素相乘(FiLM 层),而非简单的拼接。这样,指令可以更有效地“调制”特征,增强与指令相关的特征通道,抑制无关通道。
结果对比:改进后,车辆在 5 个连续路口的成功率从 60% 提升至 95%。但代价是训练时间增加了约 20%,且对指令标注的准确性要求更高。
4.3 两种架构的对比与演进方向
核心对比表
| 维度 | DAVE-2 | CIL |
|---|---|---|
| 输入 | 单帧图像 | 单帧图像 + 导航指令 |
| 输出 | 方向盘转角(单维) | 转向、油门、刹车(多维) |
| 网络结构 | 单流 CNN→FC | 感知 CNN + 条件控制 FC |
| 决策能力 | 连续跟车、车道保持 | 路口转向、行为切换 |
| 数据需求 | 图像-转向角对 | 图像-指令-动作三元组 |
| 可解释性 | 低(黑箱回归) | 中(可分析指令对特征的影响) |
| 主要局限 | 无法处理离散决策 | 指令空间有限,复杂交互不足 |
常见误区与复盘
- 误区一:认为端到端模型不需要任何中间表示。实际上,CIL 中的导航指令就是一种高层中间表示。完全抛弃中间表示会导致模型在复杂场景下难以收敛。
- 误区二:盲目增加网络深度。在 DAVE-2 的复现中,我们发现将卷积层从 5 层增加到 10 层,在测试集上的 MSE 并未显著下降,反而增加了过拟合风险。因为驾驶控制主要依赖低层和中层特征(如边缘、纹理、道路边界),过深的网络会提取过多与驾驶无关的细节。
- 误区三:忽略控制输出的平滑性。直接使用网络输出的原始值作为控制信号,会导致方向盘抖动。工程上通常需要添加一阶低通滤波器或使用 PID 控制器对输出进行平滑。