分清三种系统
传统模块化、狭义端到端、现代结构化端到端。
Lesson 01 · System boundary
先不记模型。先学会画边界:系统从哪里开始学习,到哪里结束学习,中间的信息由谁规定。
给你一个自动驾驶架构图,你应该能指出:哪部分由学习得到,最终训练目标能影响多远,以及作者所谓的“端到端”是哪两个端。
传统模块化、狭义端到端、现代结构化端到端。
端到端不自动等于单网络、无模块、全可微或黑盒。
用输入、表示、输出、学习、评测五问读后续论文。
先凭直觉想:相机图像进入一个神经网络,网络输出未来轨迹,传统 PID 控制器再把轨迹变成方向盘动作。这算端到端吗?先保留答案,读完第 4 节再回来。
自车接近一个没有保护灯的左转路口。前方有车,右侧人行道上有人,路面因下雨反光。导航系统要求左转。
车辆至少要完成这些判断:
这些问题客观存在。采用端到端方法不会让它们消失。真正变化的是:工程师是否把每个问题做成独立模块和固定接口,还是让一个学习系统根据最终驾驶目标自行决定部分表示,并联合调整多个环节。
本课的中心句:端到端讨论的不是“系统有没有内部步骤”,而是这些步骤如何连接、如何训练,以及最终目标能否改变上游表示。
模块化流水线把驾驶问题拆成有明确接口的部件。最常见的教学版本是“感知 → 预测 → 规划 → 控制”。真实系统还会有定位、地图、融合、安全监控和冗余,但这四段足以说明基本思想。
每个模块把自己的输出当成下游输入。接口常由人定义,例如 3D 框、车道线、预测轨迹和自车轨迹。
把原始传感器数据转成结构化场景,例如目标框、类别、速度、可行驶区域和车道。
估计周围车辆和行人的未来运动,常输出多条带概率的轨迹。
结合路线、交通规则、预测结果和车辆约束,选择自车未来运动。
让车辆跟随规划轨迹,把位置和速度误差转成转向、驱动与制动命令。
模块有清楚的责任边界。感知团队可以检查漏检,预测团队可以检查多模态轨迹,规划团队可以检查规则和碰撞约束。某个模块出错时,日志较容易定位问题;法规或安全规则也可以显式写进规划器。
但模块接口会丢信息。感知模型通常按检测指标优化,规划器真正关心的却是“这个误差是否会改变驾驶决策”。一个远处静止物体的框偏了 20 厘米可能无关紧要,一个近处骑车人的速度偏了同样比例却可能改变制动时机。若所有模块只优化自己的平均指标,局部最优不一定等于最终驾驶最优。
设观测为 o,导航目标为 g,车辆状态为 x。一个简化流水线可写成:
这里最重要的不是函数数量,而是每个中间量有预先规定的语义。感知模块可能先按检测损失训练,规划器则按碰撞、舒适度和路线目标单独设计。
2016 年 NVIDIA 的 “End to End Learning for Self-Driving Cars” 给出了最容易理解的定义:单个前视相机的原始像素进入卷积神经网络,网络直接预测转向命令。训练标签来自人类驾驶员的转向操作。
论文明确说,没有单独训练道路轮廓检测。道路的有用视觉特征必须从转向监督中自行形成。
这类系统把两个“端”放得很远:一端是接近传感器的像素,另一端是接近执行器的控制量。工程师没有要求网络先输出车道线、车辆框或预测轨迹。误差可以从转向输出直接回传到视觉特征。
训练目标与驾驶动作直接相连;系统可以学习任务相关的视觉特征;中间不必传递人为规定的完整场景。
中间语义难检查;导航意图、约束和罕见场景难覆盖;一个动作错误不容易分解为感知、预测或规划错误。
“直接”也不表示没有图像预处理、网络层、车辆控制周期或后备安全系统。它只表示学习任务跨过了传统的人工语义接口。
如果端到端只允许“像素直接到方向盘”,很多现代工作都无法归入其中。OpenDriveLab 综述使用了更宽的表述:从原始传感器输入生成车辆运动计划,而不是只聚焦检测或运动预测等独立任务。注意终点变成了 motion plan,它可以是 waypoint 或未来轨迹,不必直接是方向盘。
输入:传感器
接口:显式场景与预测
输出:轨迹后再控制
训练:常分模块优化
输入:传感器与任务
接口:可有 BEV、目标或查询
输出:waypoint 或轨迹
训练:围绕规划联合优化
输入:原始传感器
接口:主要是隐特征
输出:直接控制量
训练:动作监督贯穿网络
这种系统通常仍被称为端到端驾驶,因为学习链路已经从传感器跨到运动规划。控制器负责轨迹跟踪,它解决的是车辆动力学与执行问题,没有重新做场景理解和行为决策。
UniAD 把检测、跟踪、在线地图、运动预测、占用预测和规划放进一个网络。任务之间通过 query 接口传递信息,最终以自车规划为导向。它有清楚的内部任务,但这些任务不是互不相干的独立程序。
所以,判断现代端到端系统时不能数框图中有几个方框。要看这些方框是否共享表示,是否联合训练,以及规划目标是否能影响上游部件。
“相机 → 神经网络 → 未来轨迹 → PID → 方向盘”通常属于现代端到端。学习边界从传感器延伸到了运动计划;传统控制器留在边界外,并不取消这个称呼。若作者把端到端严格定义为传感器到执行器,它就不满足狭义定义。读论文时应写清采用哪一种边界。
| 常见等号 | 为什么不成立 | 该检查什么 |
|---|---|---|
| 端到端 = 一个网络 | 一个网络可以只做检测;多个子网络也可以围绕最终规划联合训练。 | 训练目标和梯度连接了哪些部件。 |
| 端到端 = 没有模块 | 现代系统常保留检测、地图、预测或 occupancy 头,让训练更稳定、结果更可检查。 | 模块是独立优化,还是服务共享的规划目标。 |
| 端到端 = 全部可微 | 轨迹后可以接不可微控制器、安全规则或车辆执行器;数据采集环境本身也未必可微。 | 哪些参数能通过哪些损失更新。 |
| 端到端 = 黑盒 | 模型可以输出目标、地图、occupancy、解释或不确定性。可观察的中间结果不保证因果可靠,但黑盒程度并非二元属性。 | 内部表示能否检查,解释是否真正影响决策。 |
另一个常见误解:端到端也不等于强化学习。NVIDIA 直接控制和大量后续工作主要从专家驾驶数据做监督或模仿学习。强化学习是获得训练信号的一种方式,端到端描述的是学习边界与系统连接方式。
OpenDriveLab 综述把主要动机概括为:与模块化流水线相比,端到端系统可以为感知和规划联合优化特征。这个动机有吸引力,但它不是自动兑现的保证。
设模块化系统只把“车辆 3D 框”交给规划器。框能表达位置和大小,却可能丢掉转向灯是否亮起、车轮朝向、驾驶风格或遮挡细节。端到端特征可以保留其中对规划有用的信号。但如果训练数据里“阴影”恰好经常与制动同时出现,网络也可能学到无因果意义的捷径。
所以端到端减少了人工信息瓶颈,却增加了数据与验证责任。它不是把工程问题交给神经网络后自动消失,而是把更多设计压力转移到数据、目标函数、评测和安全边界上。
| 工作 | 输入 → 输出 | 它修补了什么 | 应记住的边界 |
|---|---|---|---|
| NVIDIA 2016 | 前视图像 → 转向命令 | 绕开人工车道检测和规划接口,直接从人类转向监督学习视觉控制。 | 狭义 sensor-to-control。 |
| Conditional IL 2018 | 图像 + 高层命令 → 控制 | 单纯模仿只会沿路行驶,路口处还需要“左转、右转、直行”等导航条件。 | 端到端策略仍要接受任务意图。 |
| UniAD 2023 | 多相机 → 多任务表示 + 规划 | 减少感知、预测、规划顺序堆叠造成的误差积累和任务配合不足。 | 现代 planning-oriented 结构化端到端。 |
这条变化不是简单的“模块越来越少”。早期直接控制很简洁,现代系统反而重新引入结构。区别在于结构是否围绕最终规划共同学习,而不是每个模块只追自己的局部指标。
以后看到任何端到端自动驾驶方案,先填下面这张表。不要先问“用了哪种 Transformer”。
传感器、车辆状态、地图和导航条件。
隐特征、BEV、目标、车道或 occupancy。
控制、waypoint、轨迹或候选评分。
行为克隆、辅助任务、强化学习或预训练。
日志误差、闭环仿真或真实道路测试。
| 系统 | 看什么 | 留什么 | 输出什么 | 怎么学 | 怎么测 |
|---|---|---|---|---|---|
| 模块化示例 | Camera + LiDAR | 目标、车道、预测轨迹 | 自车轨迹 | 分模块监督与规则优化 | 模块指标 + 闭环 |
| NVIDIA 2016 | 前视 Camera | 网络隐特征 | 转向命令 | 人类驾驶监督 | 道路驾驶演示 |
| UniAD 2023 | 环视 Camera | query 与多任务表示 | 自车规划 | 多任务联合训练 | nuScenes 离线任务 |
这张表只用于定位,不用于宣判谁更强。传感器、数据集、任务范围和评测方式不同,结果不能直接横向比较。
直接控制策略可以写成:
结构化端到端规划器可以写成:
规划损失 Lplan 能更新编码器和规划器;辅助损失 Laux 让表示保留目标、地图或 occupancy 信息。权重 λ 决定各训练信号的相对影响。即使模型内部有多个头,只要它们共享参数并以最终规划为主要目标,仍可属于现代端到端路线。
但“梯度能传到编码器”只说明训练连接存在,不证明闭环安全。真实车辆动作改变环境,后续状态分布会随策略变化。第 3、5 课会专门处理这个差距。
不要回看正文。先从记忆作答,答完再读解释。
下面有一个虚构系统:
六路相机进入共享视觉编码器。网络输出 3D 目标、车道向量和周围车辆预测轨迹,规划头读取这些表示后输出自车未来 3 秒轨迹。所有任务一起训练,但规划损失不能更新目标检测头。轨迹最后交给独立控制器。
请写 100–200 字,回答:
完成标准:不要求唯一标签,但必须说明采用的定义,并用训练连接和输出边界支持判断。把答案发给我,我会给出逐点反馈。
下一课会拆开“联合学习模型”这个大方框:相机和 LiDAR 怎样形成 BEV、目标、occupancy 等表示,以及为什么很多系统选择输出轨迹而不是方向盘。