3. 神经网络基础

端到端自动驾驶系统需要直接从传感器原始数据(摄像头图像、激光雷达点云、毫米波雷达回波)中提取语义信息,并映射为车辆控制指令(转向、油门、制动)。这一过程对神经网络的感知能力、时序建模能力和长距离依赖捕捉能力提出了极高要求。本章将深入剖析卷积神经网络(CNN)、循环神经网络(RNN)、Transformer以及注意力机制的核心数学原理与结构设计,并结合自动驾驶中的具体场景(如车道线检测、目标轨迹预测、多传感器融合)说明其应用方式与工程选型依据。

自动驾驶神经网络架构演进与核心机制 传感器输入 摄像头 / 激光雷达 / 毫米波 空间特征提取 CNN / 2D-3D卷积 / 特征金字塔 时序与全局建模 RNN / LSTM / Transformer 注意力机制(Attention)—— 贯穿空间与时序的权重分配核心 自注意力 / 交叉注意力 / 多头注意力 / 位置编码 感知任务 目标检测 / 车道线分割 可行驶区域 / 交通标志识别 预测任务 轨迹预测 / 速度估计 行为意图识别 / 交互建模 控制任务 转向角 / 油门 / 制动 路径规划 / 速度曲线生成 多模态融合与决策输出 特征级融合 / 决策级融合 / 端到端控制信号生成 图:CNN负责空间特征提取,RNN/Transformer负责时序建模,注意力机制贯穿其中实现关键信息筛选

上图展示了自动驾驶神经网络的整体架构逻辑:传感器数据首先经过CNN进行空间特征提取,随后通过RNN或Transformer进行时序建模,注意力机制则在整个流程中起到关键信息筛选与权重分配的作用。下面分别深入讲解各网络结构的核心原理与工程应用。

3.1 卷积神经网络(CNN):空间特征提取的基石

3.1.1 核心原理:局部感受野与参数共享

CNN通过卷积操作实现局部连接和权重共享,有效降低了参数量并提取平移不变特征。其核心操作包括:

  • 卷积层:使用可学习的卷积核(如3×3、5×5)在输入特征图上滑动,计算局部区域的点积,生成特征图。对于多通道输入(如RGB图像),卷积核的深度与输入通道数一致。
  • 激活函数:通常使用ReLU(Rectified Linear Unit)及其变体(Leaky ReLU、ELU),引入非线性并缓解梯度消失问题。
  • 池化层:最大池化或平均池化,降低特征图空间分辨率,扩大感受野,同时保留主要特征。
  • 批量归一化(Batch Normalization):对每个特征通道进行归一化,加速训练收敛并提高泛化能力。

在自动驾驶中,CNN的输入通常是前视摄像头图像(分辨率如1280×720)或鸟瞰图(BEV)表示。以目标检测任务为例,骨干网络(如ResNet-50、EfficientNet)提取多尺度特征,再通过特征金字塔网络(FPN)融合不同层级的语义信息与空间细节。

3.1.2 判断方法:如何选择CNN架构

架构类型参数量推理延迟(GPU)适用场景自动驾驶典型应用
ResNet-18/3411M-21M3-6ms嵌入式平台(Jetson Orin)车道线检测、轻量级目标检测
ResNet-50/10125M-44M8-15ms车载计算平台(多GPU)3D目标检测、BEV特征提取
EfficientNet-B0-B75M-66M4-20ms需要平衡精度与速度语义分割、可行驶区域识别
MobileNetV32.5M-4.5M1-3ms低功耗嵌入式设备驾驶员监控、近距障碍物检测

选择CNN架构时需考虑:计算预算(TOPS)、内存带宽、目标帧率(通常要求≥30 FPS)以及精度指标(如mAP、IoU)。对于L2+级辅助驾驶,ResNet-34+FPN是常见选择;对于L4级自动驾驶,需要更深的网络与多尺度特征融合。

3.1.3 案例拆解:基于CNN的车道线检测

以经典的车道线检测网络LaneNet为例,其采用Encoder-Decoder结构:Encoder使用VGG16或ResNet提取特征,Decoder通过转置卷积恢复空间分辨率,最终输出每个像素属于车道线/背景的概率图。在实际工程中,我们遇到以下问题:

场景:某L2级量产车型在雨天夜间场景下车道线检测准确率下降至78%(晴天为95%)。
分析:低光照导致图像对比度不足,雨水反光产生噪声,CNN的浅层特征无法有效区分车道线与路面纹理。
解决方案:① 在输入层增加图像增强模块(自适应直方图均衡化);② 在骨干网络中加入注意力模块(如CBAM),增强对车道线区域的关注;③ 使用多帧融合策略,将前3帧特征进行时序平均。
结果:雨天夜间准确率提升至89%,推理延迟增加2ms(从12ms到14ms),满足30FPS要求。

3.1.4 常见误区与总结

  • 误区一:认为CNN只能处理2D图像。实际上,3D卷积(如VoxelNet)可直接处理激光雷达点云体素化数据。
  • 误区二:盲目增加网络深度。在自动驾驶中,延迟与精度需要权衡,过深的网络可能导致帧率不足。
  • 误区三:忽略感受野的影响。小卷积核堆叠可以增大感受野,但需要更多层数,需根据目标尺寸选择合适的基础卷积核。
经验提醒:在部署CNN到嵌入式平台时,建议使用TensorRT或ONNX Runtime进行量化(INT8)和算子融合,通常可获得2-4倍加速,但需注意量化后精度损失(一般<1%)。

3.2 循环神经网络(RNN)与LSTM:时序建模的经典方案

3.2.1 核心原理:隐藏状态与门控机制

RNN通过循环连接处理序列数据,其隐藏状态 \( h_t \) 由当前输入 \( x_t \) 和上一时刻状态 \( h_{t-1} \) 共同决定:\( h_t = \tanh(W_{xh}x_t + W_{hh}h_{t-1} + b_h) \)。然而,标准RNN存在梯度消失/爆炸问题,难以捕捉长距离依赖。LSTM(长短期记忆网络)通过引入输入门、遗忘门、输出门和细胞状态 \( C_t \) 解决这一问题:

  • 遗忘门:决定丢弃哪些历史信息,\( f_t = \sigma(W_f \cdot [h_{t-1}, x_t] + b_f) \)。
  • 输入门:决定哪些新信息存入细胞状态,\( i_t = \sigma(W_i \cdot [h_{t-1}, x_t] + b_i) \),候选值 \( \tilde{C}_t = \tanh(W_C \cdot [h_{t-1}, x_t] + b_C) \)。
  • 细胞状态更新:\( C_t = f_t \odot C_{t-1} + i_t \odot \tilde{C}_t \)。
  • 输出门:决定输出哪些信息,\( o_t = \sigma(W_o \cdot [h_{t-1}, x_t] + b_o) \),\( h_t = o_t \odot \tanh(C_t) \)。

GRU(门控循环单元)是LSTM的简化版本,将遗忘门和输入门合并为更新门,参数量更少,训练更快。

3.2.2 判断方法:何时使用RNN/LSTM

在自动驾驶中,RNN/LSTM适用于以下场景:

  1. 轨迹预测:输入历史轨迹序列(如过去3秒的位置、速度、航向角),预测未来5秒的轨迹点。
  2. 驾驶员意图识别:基于方向盘转角、油门踏板开度等时序信号,判断驾驶员是否准备变道或刹车。
  3. 传感器时序融合:融合连续帧的雷达点云特征,提高目标检测的稳定性。

但需注意:RNN/LSTM的串行计算特性导致训练和推理速度较慢,且难以并行化。当序列长度超过50步时,Transformer通常表现更优。

3.2.3 案例拆解:基于LSTM的车辆轨迹预测

我们设计了一个LSTM网络用于高速公路场景下的车辆轨迹预测:输入为过去3秒(10Hz采样,共30个时间步)的目标车辆相对位置、速度、加速度,以及周围车辆的交互特征;输出为未来5秒的轨迹点(50个时间步)。网络结构为两层LSTM(隐藏单元256),后接全连接层输出轨迹坐标。

关键参数:训练集包含10万条真实高速轨迹,验证集2万条。使用Adam优化器,初始学习率0.001,batch size 128,训练50个epoch。
结果:平均位移误差(ADE)为0.85m,最终位移误差(FDE)为1.92m,优于基于物理模型的卡尔曼滤波(ADE 1.4m)。
风险与代价:LSTM对输入噪声敏感,当传感器数据丢失超过0.5秒时,预测误差急剧增大。解决方案:引入mask机制,对缺失时间步进行掩码处理。

3.2.4 常见误区与总结

  • 误区一:认为LSTM可以处理任意长度的序列。实际上,LSTM的有效记忆长度约为100-200步,超过后性能下降。
  • 误区二:忽略序列数据的预处理。轨迹数据需要归一化、去噪(如使用Savitzky-Golay滤波),否则影响收敛。
  • 误区三:将LSTM用于所有时序任务。对于周期性强的信号(如车速),Transformer或时序卷积网络(TCN)可能更合适。
风险提示:在实车部署中,LSTM的推理延迟与序列长度成正比。若序列长度为30,单次推理约需5-8ms(GPU),在低算力平台上可能成为瓶颈。建议使用量化后的LSTM或改用TCN。

3.3 Transformer与注意力机制:全局建模的新范式

3.3.1 核心原理:自注意力与多头机制

Transformer最初用于自然语言处理,其核心是自注意力(Self-Attention)机制。对于输入序列 \( X \in \mathbb{R}^{n \times d} \),通过三个可学习权重矩阵 \( W_Q, W_K, W_V \) 计算查询(Query)、键(Key)、值(Value):

\[ Q = XW_Q, \quad K = XW_K, \quad V = XW_V \]

注意力权重计算为:

\[ \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V \]

其中 \( d_k \) 是键的维度,除以 \( \sqrt{d_k} \) 防止点积过大导致梯度消失。多头注意力将输入分成多个头(如8头),分别计算注意力后拼接并线性变换,使模型能够关注不同子空间的信息。

由于自注意力不包含位置信息,需要添加位置编码(Positional Encoding),常用正弦函数或可学习的位置嵌入。在自动驾驶中,Transformer可处理非结构化输入(如点云集合)和变长序列,且支持并行计算。

3.3.2 判断方法:Transformer vs RNN vs CNN

维度CNNRNN/LSTMTransformer
计算并行性高(卷积可并行)低(串行依赖)高(自注意力可并行)
长距离依赖需堆叠层数有限(100-200步)强(全局感受野)
计算复杂度O(n·k²·c)O(n·d²)O(n²·d)
自动驾驶应用图像特征提取轨迹预测BEV感知、多模态融合

在自动驾驶中,Transformer主要用于:

  • BEV感知:将多摄像头特征通过交叉注意力投影到鸟瞰图空间,实现统一的目标检测与地图分割。
  • 多模态融合:将摄像头特征与激光雷达特征通过交叉注意力融合,提高3D检测精度。
  • 轨迹预测:使用Transformer编码器建模车辆间的交互关系,解码器生成多模态轨迹。

3.3.3 案例拆解:基于Transformer的BEV感知网络

以特斯拉的BEVFormer为例,其使用6个摄像头输入,通过可变形注意力(Deformable Attention)将2D图像特征投影到3D BEV空间。具体流程:

  1. 初始化BEV查询(Query)网格,每个网格对应BEV空间中的一个位置(如0.5m分辨率)。
  2. 对于每个查询,通过可变形注意力采样对应图像特征中的关键点。
  3. 通过多层Transformer编码器迭代更新BEV特征。
  4. 输出BEV特征图,用于目标检测(3D框)和地图分割(车道线、可行驶区域)。

工程实践:在NVIDIA A100 GPU上,BEVFormer处理6张1280×720图像,单帧推理时间约35ms(28 FPS),满足L4级自动驾驶的实时性要求。但部署到车规级芯片(如Orin)时,需将模型量化为INT8,推理时间降至18ms,精度损失约1.5% mAP。

3.3.4 常见误区与总结

  • 误区一:认为Transformer完全取代CNN。实际上,在自动驾驶中,CNN仍用于提取底层视觉特征,Transformer负责全局建模。
  • 误区二:忽略计算复杂度。自注意力的O(n²)复杂度在BEV网格较大时(如200×200=40000个查询)计算量巨大,需使用可变形注意力或窗口注意力降低复杂度。
  • 误区三:位置编码选择不当。在BEV空间中,应使用可学习的3D位置编码,而非正弦编码。
经验提醒:在训练Transformer模型时,建议使用学习率预热(Warm-up)策略,前5000步线性增加学习率,之后使用余弦退火。此外,使用Dropout(0.1)和LayerNorm防止过拟合。

3.4 注意力机制在自动驾驶中的综合应用

3.4.1 核心原理:从软注意力到自注意力

注意力机制的本质是动态分配计算资源:对重要信息赋予更高权重,对无关信息进行抑制。在自动驾驶中,注意力机制的应用包括:

  • 空间注意力:在特征图上生成空间权重图,突出关键区域(如行人、车辆)。
  • 通道注意力:对特征通道进行加权,强调重要语义(如边缘、纹理)。
  • 时间注意力:在时序特征中,对关键帧赋予更高权重。
  • 交叉注意力:在不同模态(图像与点云)之间建立对应关系。

3.4.2 判断方法:注意力机制的选择策略

应用场景推荐注意力类型理由
图像目标检测CBAM(通道+空间)轻量级,可嵌入任意CNN骨干
多传感器融合交叉注意力建立模态间对应关系
轨迹预测图注意力(GAT)建模车辆间交互关系
BEV感知可变形注意力降低计算复杂度,适应稀疏特征

3.4.3 案例拆解:注意力机制在3D目标检测中的应用

以PointPillars+注意力模块为例:首先将点云划分为柱体(Pillar),通过PointNet提取特征,然后使用2D CNN处理BEV特征图。我们在骨干网络后添加了通道-空间注意力模块(CBAM),实验结果显示:

实验设置:KITTI数据集,Car类别,IoU=0.7。
结果对比:
- 基线(PointPillars):AP 74.3%
- +CBAM:AP 77.1%(+2.8%)
- +自注意力(Transformer编码器):AP 78.5%(+4.2%),但推理时间增加8ms
分析:CBAM在几乎不增加计算量的情况下提升了精度,适合实时系统;自注意力虽然精度更高,但延迟增加明显,适合对延迟要求较低的L4级场景。

3.4.4 常见误区与总结

  • 误区一:注意力机制越多越好。过多的注意力模块会导致计算量激增,且可能过拟合。
  • 误区二:忽略注意力权重的可视化分析。通过可视化注意力热图,可以诊断模型是否关注了正确的区域。
  • 误区三:在训练和推理时使用不同的注意力策略。例如,训练时使用全局注意力,推理时使用局部注意力,会导致性能下降。
风险提示:在自动驾驶中,注意力机制可能受到对抗样本攻击。例如,在图像上添加微小扰动,使注意力权重偏离关键区域,导致检测失败。建议在训练时加入对抗训练或注意力正则化。

3.5 本章总结与工程选型建议

在端到端自动驾驶系统中,CNN、RNN/Transformer和注意力机制各有其不可替代的作用:

  • CNN:负责从原始传感器数据中提取空间特征,是感知任务的基础。
  • RNN/LSTM:适用于短时序建模,如轨迹预测和驾驶员意图识别,但存在并行性差和长依赖不足的问题。
  • Transformer:凭借自注意力机制实现全局建模,在BEV感知、多模态融合和复杂交互预测中表现优异,但计算成本较高。
  • 注意力机制:作为通用增强模块,可嵌入CNN或Transformer中,提升模型对关键信息的关注能力。

工程选型建议:对于L2+级辅助驾驶,推荐使用CNN+CBAM+轻量级LSTM的组合,在保证实时性的同时获得可靠性能;对于L4级自动驾驶,推荐使用CNN骨干+Transformer编码器+可变形注意力的架构,充分利用全局信息进行感知与预测。无论选择哪种架构,都需要在实车测试中验证模型在极端天气、光照变化、传感器故障等场景下的鲁棒性。