1. 课程导入
自动驾驶模仿学习(Imitation Learning, IL)试图让车辆通过观察人类驾驶行为来学习驾驶策略,而不是依赖人工设计规则或在线试错。它的核心思想是:把“专家轨迹”当作监督信号,训练一个从感知输入到控制输出的映射函数。然而,真正决定模仿学习系统上限的,往往不是网络结构,而是数据工程——数据从哪里来、如何筛选、如何标注、如何组织、如何评估、如何闭环迭代。本课程将围绕这条主线,建立一套可落地的自动驾驶模仿学习数据工程方法论。
一、学习目标:从“会训模型”到“会造数据闭环”
完成本课程后,学习者应达到以下四个层次的目标:
- 概念层:理解模仿学习、行为克隆、逆强化学习、DAgger、协变量偏移等核心概念及其在自动驾驶中的适用边界。
- 数据层:掌握多源数据采集、场景挖掘、自动标注、数据清洗、难例挖掘与数据配比的方法。
- 工程层:能够设计数据管道(Data Pipeline),包括采集、存储、检索、版本管理、训练集构建与回放验证。
- 闭环层:建立“数据—训练—评估—回灌”的迭代闭环,理解如何用仿真与实车反馈持续提升策略鲁棒性。
一句话概括:模仿学习数据工程的目标,是让“专家怎么开”变成“模型怎么学”,并让“模型哪里不会”变成“下一轮采什么数据”。
二、核心概念:模仿学习的数据视角
从数据工程角度看,模仿学习系统可以抽象为四个关键对象:专家策略 π*、学习者策略 πθ、状态分布 dπ、轨迹数据集 D。行为克隆(Behavior Cloning, BC)直接最小化专家动作与模型动作的差异:
L_BC(θ) = E_(s,a)~D [ || πθ(s) - a ||² ]
其中:
s:感知输入(图像、点云、历史状态)
a:专家控制量(转向、油门、刹车)
D:专家轨迹数据集
但 BC 存在协变量偏移问题:训练时模型只见过专家状态分布,推理时一旦偏离,误差会累积放大。DAgger 通过让专家对学习者访问到的状态进行标注来缓解这一问题,而数据工程的任务,就是为这些算法提供高质量、高覆盖、高一致性的数据支撑。
在自动驾驶中,数据通常分为以下几类:
| 数据类型 | 典型来源 | 在模仿学习中的作用 |
|---|---|---|
| 实车路测数据 | 测试车、量产车影子模式 | 提供真实专家轨迹与长尾场景 |
| 仿真数据 | CARLA、LGSVL、自研仿真 | 低成本覆盖危险与稀有场景 |
| 人类驾驶日志 | 网约车、物流车队 | 补充自然驾驶行为分布 |
| 回灌与干预数据 | 安全员接管、远程干预 | 修正模型错误,形成难例集 |
三、整体框架:数据工程在模仿学习中的位置
下图展示了自动驾驶模仿学习数据工程的总体框架。它从多源采集出发,经过场景挖掘、标注、清洗与配比,进入训练与评估,再通过回灌和难例挖掘回到数据池,形成闭环。
四、方法流程:一条数据从采集到训练的旅程
为了让抽象框架可操作,下面给出一条典型的数据处理流程。它适用于实车数据与仿真数据的混合场景:
- 采集与同步:摄像头、激光雷达、毫米波雷达、IMU、GNSS 与底盘信号按统一时间基准对齐,生成原始 rosbag 或自定义格式记录。
- 场景切片:按事件触发(急刹、接管、近距离切入)或语义标签(路口、匝道、施工区)切分为短片段,便于检索与配比。
- 自动标注:利用已有感知模型生成障碍物、车道线、可行驶区域伪标签,再对关键帧进行人工修正。
- 质量清洗:剔除传感器失效、时间戳跳变、标注冲突、轨迹抖动过大的片段。
- 数据配比:按场景类别、难度等级、天气光照、地域分布设定采样权重,避免模型偏向常见场景。
- 训练与评估:在开环动作误差、闭环仿真通过率、实车回放接管率等指标上综合评估。
- 回灌迭代:将模型失败片段、安全员接管片段重新进入数据池,形成下一轮训练集。
实践提示:数据工程中最容易被低估的是“检索能力”。当模型在某个场景失败时,如果无法在数小时内从海量数据中找回相似片段,闭环迭代就无从谈起。因此,场景标签体系与向量检索索引应与采集管道同步建设。
五、案例场景:一个“无保护左转”的数据闭环
假设模型在城市无保护左转场景中频繁出现“犹豫不决”或“抢行”问题。数据工程团队可以这样处理:
- 从实车日志中检索所有无保护左转片段,按对向车流密度、行人干扰、视野遮挡程度分层。
- 在仿真中批量生成极端场景:对向车高速接近、行人突然横穿、视线被大车遮挡。
- 对安全员接管片段进行重点标注,标记“应该等待”与“应该通过”的决策边界。
- 调整训练集中该场景权重,并加入“决策犹豫”对应的时序特征。
- 训练后先在仿真中评估通过率与碰撞率,再选择高风险片段进行实车回放验证。
这个案例说明:数据工程不是一次性清洗,而是围绕模型弱点持续构造“针对性数据”的过程。
六、常见误区与复盘
误区一:数据越多越好。无差别堆数据会稀释关键场景权重,导致模型在长尾场景上表现下降。应优先保证覆盖度与难度分布,而非单纯追求总量。
误区二:标注一次就够。标注规范会随模型迭代和场景理解变化,需要版本化管理与一致性抽检。
误区三:只看开环误差。开环动作误差低不代表闭环安全,必须结合仿真与实车回放评估。
误区四:忽略数据版本与可复现性。没有版本管理的数据集无法支撑可靠对比实验,也无法定位性能回退原因。
复盘时建议回答三个问题:本轮迭代模型在哪些场景失败?这些场景在数据集中占比多少?下一轮采集与标注应如何调整?只有把这三个问题固化到流程中,模仿学习数据工程才能真正形成闭环。
七、学习路径建议
本课程后续将按“概念—采集—挖掘—标注—配比—训练—评估—闭环”的顺序展开。建议学习者按以下路径推进:
- 第一遍:建立整体框架认知,理解数据工程在模仿学习中的位置。
- 第二遍:动手实现一个小型数据管道,从 rosbag 解析到场景切片。
- 第三遍:结合仿真环境,完成一次“失败片段回灌—重训练—再评估”的完整闭环。
当你能把“模型哪里不会”翻译成“下一轮采什么数据、标什么标签、配什么权重”时,就已经掌握了自动驾驶模仿学习数据工程的核心能力。