识别输入角色
区分环境观测、车辆状态和驾驶任务。
Lesson 02 · Interface and representation
同一个驾驶任务,可以用像素、鸟瞰栅格、目标向量或隐变量来思考。表示决定了模型容易看见什么,也决定了它容易漏掉什么。
看到一张模型架构图时,不再把所有大方框统称为“神经网络”。你应该能标出坐标系、信息粒度和决策接口。
区分环境观测、车辆状态和驾驶任务。
知道 BEV、目标、向量、occupancy 与隐特征各保留什么。
解释直接控制、waypoint 和 trajectory 的工程差异。
端到端驾驶的输入不只是相机。一个策略要知道外界发生了什么、自车目前处于什么状态,以及这次驾驶要完成什么任务。
相机、LiDAR、毫米波雷达或它们的时间序列。它们回答“周围是什么”。
速度、加速度、转角、姿态和历史动作。它们回答“车辆现在怎样运动”。
导航路线、目标点、高层命令或语言指令。它们回答“这次应该去哪里”。
只看前方图像的策略,到了十字路口无法凭像素知道导航希望左转还是直行。Conditional Imitation Learning 正是为策略加入“左转、右转、直行、跟随道路”等高层命令。命令没有替代驾驶,它给驾驶策略消除了任务歧义。
| 输入 | 天然擅长 | 主要限制 | 模型要补的能力 |
|---|---|---|---|
| Camera | 颜色、纹理、文字、灯态和远距离语义 | 深度不直接,受光照和天气影响 | 几何推断、多视角融合、时间估计 |
| LiDAR | 尺度较准的 3D 几何和距离 | 点较稀疏,语义弱,成本较高 | 点云编码、时序关联、与图像对齐 |
| Radar | 速度测量和恶劣天气适应 | 角分辨率与语义通常有限 | 噪声处理、目标关联、多模态融合 |
| Map / route | 道路拓扑、限速、预期行驶方向 | 可能过期或定位不准 | 在线校正、与当前观测做冲突处理 |
训练时可见的输入,部署时必须同样可得。若模型训练时读取完美目标框或未来轨迹,部署时却只有相机,这些信息是 privileged information,只能作为教师或监督,不能偷偷当作学生输入。
表示不是装饰层。它把连续世界压成模型能处理的信息结构。每种表示都引入偏好:有的保留像素细节,有的突出道路几何,有的突出实例关系。
相机图像在近处占很多像素,远处占很少像素;同一物体换一个相机,位置和外观都变。透视特征保留纹理与语义,适合识别灯态和文字,但规划器很难直接在六张不同透视图上量距离和画轨迹。
BEV 是 bird’s-eye view,鸟瞰表示。可以把它想成以自车为中心的一张地面网格:前方 50 米、左右各 25 米,每个格子存放从多相机或点云聚合来的特征。
BEVFormer 用预定义 BEV query 从多个相机的相关区域提取特征,并融合历史 BEV。它主要是感知方法,却说明了现代驾驶系统为什么喜欢 BEV:多相机最终进入同一个车辆坐标系,地图、目标和自车轨迹更容易对齐。
另一条路线显式表示车辆、行人和车道。每个交通参与者可以是一个带位置、速度和历史的 object query;每条车道中心线可以是一串有方向的点。VAD 使用向量化的目标运动和地图元素作为规划约束,避免对整张稠密栅格做大量计算。
occupancy 表示空间是否被占用,常扩展到未来多个时刻。它能覆盖难以归类的路障、异形车辆或碎片,不必先把一切装进固定类别。但 occupancy 网格通常较稠密,实例身份和交互关系需要另外恢复。
纯隐特征没有人规定的完整语义,表达自由度大。问题是难检查,也难知道它是否遗漏了交通规则所需的信息。现代系统常把隐特征与显式任务头组合:共享主干保留自由表达,检测、地图、occupancy 或预测损失提供结构。
| 表示 | 最容易表达 | 最容易损失 | 适合问的问题 |
|---|---|---|---|
| 透视特征 | 纹理、灯态、文字 | 统一距离和方位 | “画面里是什么?” |
| BEV 栅格 | 地面几何、空间邻近 | 高分辨率图像细节 | “哪里可走,轨迹放哪?” |
| 目标 / 向量 | 实例、车道和交互 | 未检测到的异形障碍 | “谁和谁会冲突?” |
| Occupancy | 自由空间和未来占用 | 实例身份与细粒度语义 | “未来哪里会被占住?” |
| 隐特征 | 任务相关压缩 | 可检查的明确语义 | “哪些信号能降低训练损失?” |
多传感器融合要解决三个对齐:空间上是不是同一位置,时间上是不是同一时刻,语义上是不是同一对象。
较早把原始或浅层特征放在一起。信息交换充分,但传感器分辨率和坐标差异难处理。
各自编码后在多个尺度交换特征。保留专用编码器,同时允许跨模态关系学习。
先各自做检测或预测,再合并结果。接口清楚,但前面已经丢失的信息难找回。
TransFuser 在多个分辨率上用 self-attention 融合相机透视特征与 LiDAR BEV 特征。它关心的不是“图像检测是否更准”,而是在密集动态交通的闭环驾驶中,互补传感器是否能支持更好的策略。
看到“sensor fusion”时先问:两个传感器在什么坐标系、什么时间点、什么网络深度相遇?只写“concat”无法回答这三个问题。
单帧图像里,一辆车停着还是正在横穿,可能完全无法判断。历史帧提供速度、遮挡前后的身份和交通灯变化。常见处理方式包括堆叠帧、循环状态、时序 attention,以及把历史特征对齐到当前自车坐标。
对齐很重要。自车自己在移动,上一秒位于 BEV 网格前方 10 米的路牌,这一秒不该仍留在同一格。模型要根据 ego motion 把历史表示变换到当前坐标,否则会把自车运动误认成全世界在动。
相机内参决定 3D 射线如何投影成像素,外参决定相机相对车辆的位置和朝向。只凭一个像素无法唯一知道深度,因此 camera-only BEV 方法需要几何假设、深度分布、attention 查询或多帧线索。
BEV 是坐标与表示选择,不是某一个固定网络。LiDAR 可以直接栅格化到 BEV,相机则需要视角转换。
| 输出 | 含义 | 好处 | 代价 |
|---|---|---|---|
| 直接控制 | 当前 steering、throttle、brake | 训练目标直接,推理链短 | 动作与长期意图难分,车辆平台迁移困难 |
| Waypoint | 未来若干目标位置点 | 直观,可交给控制器跟踪 | 若不带时间与速度,动态可行性表达不足 |
| Trajectory | 带时间的未来状态序列 | 能检查碰撞、舒适度和车辆约束 | 仍需要控制器,且单条轨迹难表达不确定性 |
| Cost / score | 对候选轨迹的代价或排序 | 可保留显式候选和规则约束 | 候选集限制最终行为,训练接口更复杂 |
TCP 同时保留 trajectory branch 和 control branch:轨迹分支预测未来运动,控制分支做多步动作预测,轨迹再指导控制。这个设计说明两类输出并非必须二选一。
输出轨迹并不比输出方向盘“更端到端”或“更不端到端”。它只是把学习边界停在规划接口,让传统控制器负责车辆跟踪。
按这个顺序,Transformer、CNN、query 数量和 decoder 层数会退到第二层。先把系统接口看懂,再判断具体网络是否合理。
先回忆,再点击答案。
某系统用六路相机和过去 2 秒自车状态,生成 100 × 100 的 BEV 特征;两个 head 分别输出未来 occupancy 和一条 3 秒轨迹。轨迹交给控制器。请回答:
把答案发给我,可以逐项检查。下一课会解释这些输出是怎样从专家数据、强化学习教师或环境反馈中学出来的。