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 特征建模,可显著降低跟车场景下的急刹误触发率。
复盘时建议检查三点:历史窗口是否覆盖关键动态、门控单元是否真的学到了遗忘、推理延迟是否满足 10ms~50ms 的实时预算。只有把时序结构、特征工程与场景需求对齐,时序建模才能真正服务于端到端驾驶。