3. 时序建模入门

在端到端驾驶系统中,传感器数据天然带有时间维度:摄像头以 10~30 FPS 连续采样,毫米波雷达与激光雷达按帧输出点云,CAN 总线以毫秒级周期广播车速、转角、加速度等信号。若只把单帧图像送入网络,模型无法判断前车是在减速还是匀速,也无法区分行人“正在横穿”与“已经通过”。时序建模的核心任务,就是把离散的观测序列转化为对动态场景状态与未来演化的估计。

一、时间序列基础:从观测到状态

一个驾驶时序样本可形式化为 X = {x_1, x_2, ..., x_T},其中 x_t 是第 t 帧的多模态特征向量,T 为历史窗口长度。时序建模关注三类问题:序列分类(如判断当前是否处于危险跟车状态)、序列回归(如预测未来 3 秒轨迹)、序列到序列生成(如自回归输出未来控制量)。

与图像数据不同,时序数据存在三个关键特性:时序依赖(当前状态受历史影响)、采样非均匀(不同传感器频率不同)、因果性(预测时不能使用未来帧)。因此,模型必须显式或隐式地维护一个“记忆”,把历史信息压缩为当前状态表示。

关键认知:时序建模不是简单地把多帧图像堆叠成通道,而是要让网络学会“什么时候记住、什么时候遗忘、什么时候更新”。

二、RNN / LSTM / GRU:循环结构的演进

循环神经网络(RNN)是最基础的时序模型,其核心是隐藏状态 h_t 沿时间轴递归传递:

h_t = tanh(W_xh · x_t + W_hh · h_{t-1} + b_h)
y_t = W_hy · h_t + b_y

RNN 的缺陷是梯度在长序列上容易消失或爆炸,导致难以学习超过 10~20 帧的依赖。LSTM 通过遗忘门、输入门、输出门和细胞状态 c_t 控制信息流,使梯度可以沿“高速公路”稳定传播。GRU 则把 LSTM 的三个门简化为更新门与重置门,参数量减少约 25%,在驾驶这类实时性要求高的场景中更受青睐。

模型核心机制参数量长依赖能力驾驶场景适用性
RNN单一 tanh 递归最小弱(<20 帧)短时车速平滑
LSTM三门 + 细胞状态大强(>100 帧)行为预测、轨迹回归
GRU更新门 + 重置门中较强实时端到端控制

在工程实现中,常用 nn.LSTM(input_size=256, hidden_size=512, num_layers=2, batch_first=True) 处理特征序列,输出取最后一个时间步的隐藏状态作为场景编码。

三、时序特征提取:从原始信号到动态表示

直接把原始 CAN 信号或图像特征送入 RNN 往往效果不佳,需要先做时序特征提取。常见手段包括:

  • 滑动窗口统计:对车速、加速度计算均值、方差、最大值、变化率,形成固定长度描述子。
  • 差分与导数:用 Δv = v_t - v_{t-1} 捕捉加减速趋势,用二阶差分捕捉 jerk。
  • 频域特征:对振动或转向信号做 FFT,提取主频与能量占比。
  • 时间编码:加入正弦位置编码或相对时间戳,让模型感知采样间隔。
  • 多尺度池化:在 0.5s、1s、3s 三个窗口上分别池化,兼顾急刹与缓行两种动态。

对于图像序列,常用 3D 卷积或 CNN + 时序池化提取短时运动特征,再交给 LSTM/GRU 建模长时依赖。这种“CNN 提空间、RNN 提时间”的分工,是驾驶时序建模的经典范式。

四、驾驶场景应用与典型误区

在端到端驾驶中,时序模型主要承担三类任务:状态估计(如判断前车距离变化趋势)、行为预测(如预测旁车是否变道)、控制序列生成(如输出未来 2 秒的油门/刹车/转向)。例如,用 GRU 对 2 秒历史窗口的 BEV 特征建模,可显著降低跟车场景下的急刹误触发率。

常见误区一:把时序长度设得越长越好。实际上,过长的历史会引入噪声与计算负担,驾驶场景中 1.5~3 秒历史窗口通常已足够。误区二:忽略采样频率差异,直接把 10Hz 的 CAN 与 30Hz 的图像按帧对齐,导致时间语义错乱。误区三:训练时使用双向 LSTM,部署时却只能因果推理,造成性能骤降。

复盘时建议检查三点:历史窗口是否覆盖关键动态、门控单元是否真的学到了遗忘、推理延迟是否满足 10ms~50ms 的实时预算。只有把时序结构、特征工程与场景需求对齐,时序建模才能真正服务于端到端驾驶。

驾驶时序建模:从多模态观测到动态状态与预测 摄像头序列 30 FPS · 图像特征 雷达 / 激光点云 10~20 Hz · BEV 特征 CAN 总线信号 车速 · 转角 · 加速度 时序特征提取 滑动窗口统计 差分 / 导数 / jerk 多尺度池化 时间位置编码 循环时序建模 RNN · 短时记忆 LSTM · 三门 + 细胞状态 GRU · 更新门 + 重置门 状态估计 跟车 / 危险判断 行为预测 变道 / 轨迹回归 控制序列 油门 / 刹车 / 转向 t-2.0s t-1.5s t-1.0s t-0.5s t (当前) 历史窗口 1.5~3 秒 · 因果推理 · 实时预算 10~50 ms