Lesson 02 · Interface and representation

系统吃什么、记什么、输出什么

同一个驾驶任务,可以用像素、鸟瞰栅格、目标向量或隐变量来思考。表示决定了模型容易看见什么,也决定了它容易漏掉什么。

预计 30–40 分钟 输入 → 表示 → 输出 含 4 道即时题

本课要获得的能力

看到一张模型架构图时,不再把所有大方框统称为“神经网络”。你应该能标出坐标系、信息粒度和决策接口。

识别输入角色

区分环境观测、车辆状态和驾驶任务。

比较表示选择

知道 BEV、目标、向量、occupancy 与隐特征各保留什么。

判断输出边界

解释直接控制、waypoint 和 trajectory 的工程差异。

1. 先把输入分成三类

端到端驾驶的输入不只是相机。一个策略要知道外界发生了什么、自车目前处于什么状态,以及这次驾驶要完成什么任务。

环境观测 observation

相机、LiDAR、毫米波雷达或它们的时间序列。它们回答“周围是什么”。

自车状态 ego state

速度、加速度、转角、姿态和历史动作。它们回答“车辆现在怎样运动”。

任务条件 task condition

导航路线、目标点、高层命令或语言指令。它们回答“这次应该去哪里”。

只看前方图像的策略,到了十字路口无法凭像素知道导航希望左转还是直行。Conditional Imitation Learning 正是为策略加入“左转、右转、直行、跟随道路”等高层命令。命令没有替代驾驶,它给驾驶策略消除了任务歧义。

常见传感器不是简单的谁更强

输入天然擅长主要限制模型要补的能力
Camera颜色、纹理、文字、灯态和远距离语义深度不直接,受光照和天气影响几何推断、多视角融合、时间估计
LiDAR尺度较准的 3D 几何和距离点较稀疏,语义弱,成本较高点云编码、时序关联、与图像对齐
Radar速度测量和恶劣天气适应角分辨率与语义通常有限噪声处理、目标关联、多模态融合
Map / route道路拓扑、限速、预期行驶方向可能过期或定位不准在线校正、与当前观测做冲突处理

训练时可见的输入,部署时必须同样可得。若模型训练时读取完美目标框或未来轨迹,部署时却只有相机,这些信息是 privileged information,只能作为教师或监督,不能偷偷当作学生输入。

2. 表示是在选择“用什么坐标思考”

表示不是装饰层。它把连续世界压成模型能处理的信息结构。每种表示都引入偏好:有的保留像素细节,有的突出道路几何,有的突出实例关系。

透视特征:最接近相机

相机图像在近处占很多像素,远处占很少像素;同一物体换一个相机,位置和外观都变。透视特征保留纹理与语义,适合识别灯态和文字,但规划器很难直接在六张不同透视图上量距离和画轨迹。

BEV:把场景摊到地面上

BEV 是 bird’s-eye view,鸟瞰表示。可以把它想成以自车为中心的一张地面网格:前方 50 米、左右各 25 米,每个格子存放从多相机或点云聚合来的特征。

BEVFormer 用预定义 BEV query 从多个相机的相关区域提取特征,并融合历史 BEV。它主要是感知方法,却说明了现代驾驶系统为什么喜欢 BEV:多相机最终进入同一个车辆坐标系,地图、目标和自车轨迹更容易对齐。

目标与向量:把实例关系放在前面

另一条路线显式表示车辆、行人和车道。每个交通参与者可以是一个带位置、速度和历史的 object query;每条车道中心线可以是一串有方向的点。VAD 使用向量化的目标运动和地图元素作为规划约束,避免对整张稠密栅格做大量计算。

Occupancy:不要求先认出“它是谁”

occupancy 表示空间是否被占用,常扩展到未来多个时刻。它能覆盖难以归类的路障、异形车辆或碎片,不必先把一切装进固定类别。但 occupancy 网格通常较稠密,实例身份和交互关系需要另外恢复。

隐变量:让模型自行压缩

纯隐特征没有人规定的完整语义,表达自由度大。问题是难检查,也难知道它是否遗漏了交通规则所需的信息。现代系统常把隐特征与显式任务头组合:共享主干保留自由表达,检测、地图、occupancy 或预测损失提供结构。

表示最容易表达最容易损失适合问的问题
透视特征纹理、灯态、文字统一距离和方位“画面里是什么?”
BEV 栅格地面几何、空间邻近高分辨率图像细节“哪里可走,轨迹放哪?”
目标 / 向量实例、车道和交互未检测到的异形障碍“谁和谁会冲突?”
Occupancy自由空间和未来占用实例身份与细粒度语义“未来哪里会被占住?”
隐特征任务相关压缩可检查的明确语义“哪些信号能降低训练损失?”

3. 融合不只是把张量拼起来

多传感器融合要解决三个对齐:空间上是不是同一位置,时间上是不是同一时刻,语义上是不是同一对象。

早期融合

较早把原始或浅层特征放在一起。信息交换充分,但传感器分辨率和坐标差异难处理。

中期融合

各自编码后在多个尺度交换特征。保留专用编码器,同时允许跨模态关系学习。

晚期融合

先各自做检测或预测,再合并结果。接口清楚,但前面已经丢失的信息难找回。

TransFuser 在多个分辨率上用 self-attention 融合相机透视特征与 LiDAR BEV 特征。它关心的不是“图像检测是否更准”,而是在密集动态交通的闭环驾驶中,互补传感器是否能支持更好的策略。

看到“sensor fusion”时先问:两个传感器在什么坐标系、什么时间点、什么网络深度相遇?只写“concat”无法回答这三个问题。

4. 时间是第四种输入

单帧图像里,一辆车停着还是正在横穿,可能完全无法判断。历史帧提供速度、遮挡前后的身份和交通灯变化。常见处理方式包括堆叠帧、循环状态、时序 attention,以及把历史特征对齐到当前自车坐标。

对齐很重要。自车自己在移动,上一秒位于 BEV 网格前方 10 米的路牌,这一秒不该仍留在同一格。模型要根据 ego motion 把历史表示变换到当前坐标,否则会把自车运动误认成全世界在动。

技术补充:从图像到 BEV 不是魔法

相机内参决定 3D 射线如何投影成像素,外参决定相机相对车辆的位置和朝向。只凭一个像素无法唯一知道深度,因此 camera-only BEV 方法需要几何假设、深度分布、attention 查询或多帧线索。

image feature + camera calibration + depth / attention ↓ feature in ego-centric BEV coordinates

BEV 是坐标与表示选择,不是某一个固定网络。LiDAR 可以直接栅格化到 BEV,相机则需要视角转换。

5. 输出越靠近执行器,责任越集中

输出含义好处代价
直接控制当前 steering、throttle、brake训练目标直接,推理链短动作与长期意图难分,车辆平台迁移困难
Waypoint未来若干目标位置点直观,可交给控制器跟踪若不带时间与速度,动态可行性表达不足
Trajectory带时间的未来状态序列能检查碰撞、舒适度和车辆约束仍需要控制器,且单条轨迹难表达不确定性
Cost / score对候选轨迹的代价或排序可保留显式候选和规则约束候选集限制最终行为,训练接口更复杂

TCP 同时保留 trajectory branch 和 control branch:轨迹分支预测未来运动,控制分支做多步动作预测,轨迹再指导控制。这个设计说明两类输出并非必须二选一。

输出轨迹并不比输出方向盘“更端到端”或“更不端到端”。它只是把学习边界停在规划接口,让传统控制器负责车辆跟踪。

6. 一张架构图的拆解顺序

  1. 圈出传感器、ego state 和 route,确认训练与部署输入一致。
  2. 给每个中间张量标坐标系:camera view、ego BEV、world 或 object-centric。
  3. 标出时间:单帧、历史窗口,还是带内部记忆。
  4. 找到最终输出:控制、waypoint、trajectory 或 score。
  5. 沿损失箭头反向走,判断哪些表示受规划目标影响。

按这个顺序,Transformer、CNN、query 数量和 decoder 层数会退到第二层。先把系统接口看懂,再判断具体网络是否合理。

7. 即时检查

先回忆,再点击答案。

题 1 · 导航命令在输入中承担什么角色?

题 2 · BEV 对规划最直接的价值是什么?

题 3 · 哪种表示最不依赖固定目标类别?

题 4 · 轨迹输出后接控制器说明什么?

8. 迁移练习

某系统用六路相机和过去 2 秒自车状态,生成 100 × 100 的 BEV 特征;两个 head 分别输出未来 occupancy 和一条 3 秒轨迹。轨迹交给控制器。请回答:

  1. 它的环境观测、状态输入和输出分别是什么?
  2. BEV 与 occupancy 是同一概念吗?
  3. 如果历史 BEV 不做 ego-motion 对齐,可能出现什么错误?
  4. 还缺什么信息,才能判断它是否“端到端”?

把答案发给我,可以逐项检查。下一课会解释这些输出是怎样从专家数据、强化学习教师或环境反馈中学出来的。

本课压缩

  1. 输入分为环境观测、ego state 和任务条件;三类缺一类都可能产生歧义。
  2. 表示选择决定模型更容易利用像素细节、空间几何、实例关系还是自由空间。
  3. BEV 是统一坐标表示,occupancy 是空间占用语义,两者可以组合但不是同义词。
  4. 时间融合必须处理自车运动,否则历史位置会错位。
  5. 控制、waypoint、trajectory 和 cost 是不同决策接口,没有单一输出适合所有系统。

首选资料与选读

  1. 首选:BEVFormer先读摘要,找出 spatial cross-attention、temporal self-attention 和 BEV query 各自解决什么。
  2. TransFuser观察 perspective view 与 bird’s-eye view 在多个尺度怎样交换信息。
  3. VAD比较 dense rasterized representation 与 vectorized representation。
  4. TCP看 trajectory branch 与 control branch 为什么同时存在。