2. 自动驾驶基础
要理解行为克隆在自动驾驶中的价值,必须先建立对自动驾驶系统本身的基本认知:车辆如何被分级、系统由哪些模块构成、感知—决策—控制之间如何传递信息,以及行为克隆究竟嵌入在这条链路中的哪个位置。只有把“系统全貌”和“模块职责”看清楚,才能判断行为克隆能解决什么问题、不能解决什么问题。
一、自动驾驶分级:从辅助到无人
业界普遍采用 SAE J3016 分级,将驾驶自动化分为 L0 到 L5。分级的核心不是“功能多少”,而是动态驾驶任务(DDT)由谁执行、谁负责监控、谁承担接管责任。L0–L2 属于辅助驾驶,驾驶员始终是责任主体;L3 是分水岭,系统在限定条件下执行全部 DDT,但驾驶员需在请求时接管;L4 在限定运行域内无需人类接管;L5 则覆盖全部场景。
| 等级 | DDT 执行 | 监控主体 | 接管要求 | 典型能力 |
|---|---|---|---|---|
| L0 | 驾驶员 | 驾驶员 | 全程 | 仅预警提示 |
| L1 | 系统+驾驶员 | 驾驶员 | 全程 | 纵向或横向其一 |
| L2 | 系统 | 驾驶员 | 全程 | 同时横向+纵向 |
| L3 | 系统 | 系统(可请求接管) | 请求时 | 限定场景自动驾驶 |
| L4 | 系统 | 系统 | 无需 | 限定运行域无人 |
| L5 | 系统 | 系统 | 无需 | 全场景无人 |
对行为克隆而言,分级决定了学习目标:L2 阶段可学习“类人驾驶策略”作为辅助;L3/L4 阶段则要求策略在长尾场景中具备鲁棒性与可验证性,单纯模仿专家轨迹往往不够。
二、系统架构:感知—决策—控制三段式
主流自动驾驶系统采用分层架构:感知层负责从摄像头、激光雷达、毫米波雷达、IMU/GNSS 中提取目标、车道线、可行驶区域与自车状态;决策规划层完成行为决策、路径规划与轨迹生成;控制层将轨迹转化为油门、刹车、转向指令,通过线控底盘执行。三者之间以时间戳对齐的数据流串联,形成闭环。
这条链路的关键特征是强时序、强耦合、强实时。感知延迟会传导到规划,规划抖动会放大到控制。行为克隆通常作用于“感知输出到控制指令”之间的映射,即学习一个从观测到动作的策略函数。
三、感知、决策、控制模块的职责边界
- 感知模块:输出结构化环境描述,包括障碍物位置速度、车道线几何、交通标志、可行驶区域。评价指标为 mAP、IoU、跟踪 MOTA 等。
- 决策规划模块:在满足安全、舒适、交规约束下生成未来 3–8 秒轨迹。分为行为层(换道/跟车/让行)与运动层(轨迹优化)。
- 控制模块:以轨迹为参考,通过 PID、MPC 或 Stanley 等算法输出执行器指令,关注跟踪误差与乘坐舒适性。
行为克隆的输入通常来自感知输出与自车状态,输出直接对接控制或规划层。它并不替代感知,也不直接驱动底盘,而是在“理解环境”和“产生动作”之间建立数据驱动的映射。
四、行为克隆在自动驾驶中的定位与价值
传统模块化方案依赖大量人工规则与参数调优,在长尾场景中难以穷举。行为克隆通过采集人类专家驾驶数据,训练神经网络直接学习“看到什么就怎么做”的策略,具备三方面价值:
- 降低规则工程成本:无需为每个场景手写 if-else,策略从数据中自动归纳。
- 贴近人类驾驶风格:输出更自然、更符合乘客预期的加减速与转向行为。
- 快速覆盖复杂场景:只要专家示范过,模型就有机会学会,适合城市道路等高度交互场景。
五、常见误区与复盘
误区二:认为数据越多越好。若专家数据存在偏置(如极少左转),模型会系统性偏向直行,即协变量偏移问题。
误区三:忽略闭环评估。开环误差低不代表闭环稳定,微小偏差会在闭环中累积放大。
复盘来看,行为克隆的工程落地需要关注三点:数据覆盖度与均衡性、策略输出的安全兜底机制、以及闭环仿真与实车验证的闭环迭代。理解自动驾驶分级与模块架构,正是判断行为克隆“能做什么、该放在哪里”的前提。
典型行为克隆训练数据字段示例:
{
"timestamp": 1680000000.123,
"camera_front": "frame_00123.jpg",
"lidar_bev": "bev_00123.npy",
"ego_speed": 8.6,
"ego_steer": 0.12,
"ego_accel": 0.35,
"expert_action": [0.12, 0.35]
}
当把行为克隆放回“感知—决策—控制”的完整链路中,就能清晰看到它的边界:它不解决“看见什么”,而是解决“看见之后怎么做”。这一节建立的系统视角,是后续学习数据采集、模型设计与闭环评估的基础。