← 深度专题

评测不只是一个分数

开环、闭环和道路验收各自能证明什么,怎样避免被漂亮指标误导?

自动驾驶评测的第一原则,不是挑一个最权威的榜单,而是先问三件事:自车真的动了吗?其他交通参与者会回应吗?传感器观测会随自车的动作更新吗?只有把交互层级、指标口径和场景覆盖拆开,ADE/FDE、PDMS、CARLA 驾驶分这些数字,才能成为能力的证据,而不只是排行榜上的装饰。

8 个小节 · 约 13 分钟阅读

先定义环:到底是谁在响应谁

“闭环”不是非黑即白的标签,至少要拆成三个问题:自车状态是不是由模型的动作推进?背景交通会不会因自车的动作而改变?下一帧传感器观测,会不会按自车的新位置重新生成?

nuPlan 的评测把前两个问题拆成两根轴:自车仿真和他车仿真,组合出三档。日志回放里,自车和他车都是开环;非反应式仿真里,自车闭环,他车仍按录像走;只有反应式仿真,双方才都闭环。

这个区分决定了评测能回答什么。逐帧对照专家轨迹,只能回答“像不像这位司机”;开环碰撞率甚至直接假设他车不受自车影响。自车闭环、背景不响应,能回答“偏离之后还能不能接着开、会不会撞上一个固定的未来”。双方都响应,才开始回答“我强行并线时后车会不会刹、我让一步时对方会不会插进来”。交互和长期因果没法从静态日志里推出来,所以开环只适合快速回归,当不了驾驶能力的终审。

反应式闭环也有偏差:背景车由交通代理驱动,代理不像真人,博弈就测不准。常用的 IDM 代理只管纵向跟车,永远让行、不抢不反击;对着这样的对手,强化学习会学会“欺负世界”,复杂交互随之失真。

所以评测报告不该只写“开环”或“闭环”,而要写清自车、他车、观测三列各自怎么更新。少了这三列,所谓闭环结果,可能把 NAVSIM 那种自车整段执行、背景不响应或只单向响应的设定,和 CARLA 那种双方逐帧互相响应的闭环混为一谈。

日志开环

  • 自车不真正推进,只拿输出去对照未来的真值轨迹。
  • 他车按记录好的未来走,不受模型影响。
  • 吞吐高、可复现,适合训练回归。

非反应式闭环

  • 自车按模型输出的轨迹推进。
  • 背景交通继续回放,不回应自车。
  • 能测偏离之后的恢复,证明不了博弈能力。

反应式闭环

  • 自车、他车和观测一起演化。
  • 能测长期规划、交互和恢复。
  • 结果受交通代理的真实性和仿真域差影响。
闭环程度越高,能验证的因果越多;环境模型带来的偏差也越大。

四类基准不是替代关系

nuPlan 既是数据集,也是规划仿真器。它来自真实城市的驾驶日志,保留了规划需要的语义。仿真器里的背景车可以配成 Replay、Rails、ML policy 等模式,仿真和指标也都分开环、闭环两种。会不会形成真实互动,取决于具体配置;看到“nuPlan”三个字,不能自动当成完全闭环。

NAVSIM 第二版用真实数据里的交通背景,再用 3DGS 预先渲染自车偏离原轨迹后的新视角。第一版的背景车辆和行人都按数据回放;第二版改由 IDM 规则模型让背景车响应自车,行人和静态障碍物仍按记录回放。所以它在自车状态和视觉观测上更接近闭环,多智能体交互仍很有限。

NAVSIM 常被归进“闭环评测”,也用 PDMS 这类闭环指标,这是按评测用途归类。按机理,它的规划器每次只出一整段轨迹,执行中不逐帧重新规划(第二版在预渲染的偏离起点上再补测);第二版的背景车虽会按 IDM 响应自车,自车在这段执行中却不回应它们,所以介于开环和闭环之间。报告里要把这几层分开写。

CARLA 可以配置交通参与者、天气、红绿灯和传感器,支持真正的交互式闭环,代价是合成世界与真实道路之间的域差。Bench2Drive 建在 CARLA 之上:统一训练数据,用 150–200 米的短路线,每条只考一种行为。过去各家自采数据,比的是整套系统;现在更接近算法之间的“单科考试”。它提高了可比性,却消除不了仿真交通行为的失真。

nuPlan

  • 真实城市数据,带规划语义。
  • 支持开环和多种仿真配置。
  • 要写明背景车会不会响应。

NAVSIM

  • 自车可以偏离原轨迹;第二版起,还能在预渲染的偏离位置拿到合成的新观测。
  • 背景交通:第一版按日志回放,第二版背景车按 IDM 响应自车,行人仍回放。
  • 适合用 PDMS 做快速的规划评测。

CARLA / Bench2Drive

  • 交通、天气、传感器都可以交互配置。
  • Bench2Drive 按技能拆成短路线。
  • 要额外审视交通代理和域差。
选基准不是找唯一的冠军,而是让不同的基准覆盖不同的不确定性。

从几何误差到驾驶能力

ADE 是整段轨迹逐点误差的平均,FDE 只看终点。它们便宜、可复现,适合检查预测或规划有没有突然退化。但“离专家近”不等于“安全可行”:几何误差是低成本的诊断指标,单独撑不起安全、合规、交互和概率校准。

多模态预测还有 minADE、minFDE,只看 K 条候选里终点误差最小的那一条,K 越大越容易碰巧蒙中。p-min 系列和 Brier 系列在误差上再加一项概率惩罚,才开始检查模型知不知道哪条更可能发生。

同名指标还可能不同义。nuPlan 评测里的 Miss Rate,指轨迹超出预设边界的比例;预测评测里常见的 MR,数的是所有预测终点都没落进真值 2 米范围的场景。连 nuScenes 开环 L2 也分两种口径:UniAD 取第 k 秒那一个点,ST-P3 取前 k 秒的平均。跨论文、跨数据集汇总前,先回到数据集的官方定义,再记下任务、对象、阈值、候选数 K、采样时域和聚合方式。

把“开到了”和“开得对”合成一个分,常见做法有两种。NAVSIM 的 PDMS 把 NC(不发生有责碰撞)和 DAC(不越出可行驶区域)相乘,当作惩罚门,再对进度 EP、碰撞时间 TTC 和舒适度做加权平均。CARLA 的驾驶分(Driving Score)是路线完成度乘违规系数。

总分会把原因藏起来。恒速基线的舒适是满分 100,进度只有 49.3;Roach 的路线完成度高达 96.4,违规系数却只有 0.43,驾驶分落到 41.6。前者平顺却走不远,后者几乎开完全程却一路违规。

所以安全、舒适、效率和交互都要保留独立子指标。碰撞要分清有责、静态、后向追尾和近碰。舒适要看纵横向加速度和 jerk 的分布,而不是单一阈值的通过率。效率不能只看进度,还要分清谨慎等待和策略冻结。交互要在汇入、让行、无保护左转这类需要对方回应的场景里单独测。按回答的问题,指标可以分成六层:

  • 几何层:ADE、FDE、L2、MR,回答轨迹是否接近参考。
  • 可行层:DAC、道路边界、动力学、碰撞与 TTC,回答轨迹能不能执行。
  • 体验层:纵横向加速度、jerk、停车与起步的平顺性,回答乘客能不能接受。
  • 任务层:EP、路线完成度、导航成功、超时,回答有没有完成任务。
  • 交互层:汇入、让行、紧急制动、无保护左转,回答模型是否明白其他交通参与者会回应。
  • 校准层:候选概率、Top-1 与 Oracle/Top-K 的差距,回答生成器和选择器分别出了什么问题。

漂亮分数怎样与真实能力错位

最直接的压力测试是 AD-MLP。它不看相机,也不看 LiDAR,输入只有自车的速度、加速度、历史轨迹和一个左转、直行、右转的高层指令,模型只是一个两层的 MLP。它在 nuScenes 开环评测上的平均 L2 是 0.29 米,比 VAD-Base 的 0.37 还好;去掉高层指令,也还有 0.35。

它并没有学会驾驶,只是吃到了两个先验:nuScenes 里,自车短时间内大多沿直线、以小角度前进;自车历史本身就能外推出短期的未来。CVPR 2024 的 Is Ego Status All You Need 还发现:在某些情况下,从现有端到端框架里完全去掉视觉输入,规划质量也不会明显下降。

放进闭环,AD-MLP 就原形毕露:在 Bench2Drive 上成功率是 0;五项技能里 Merging、Overtaking、Emergency Brake、Give Way 四项是 0,Traffic Sign 也只有 4.35。开环排序奖励的,可能是“最会外推自车惯性”的模型,而不是“最会看世界、做决定”的模型。

就算换成转弯更多、分布更均衡的数据,开环 L2 也只够判断模型是否收敛,和驾驶能力依然基本不相关。在 Bench2Drive 上,开环 L2 最好的 UniAD-Base 是 0.73 米,驾驶分却只有 45.81。驾驶分最高的 DriveAdapter 拿到 64.22,开环 L2 却是 1.01 米。开环排名和闭环能力可能只是弱相关,同一个模型必须跨环境复验。

总分还会制造另一种错位。CARLA 的驾驶分把违规惩罚一路累乘:同一个模型跑三次,完成度都是 90%,闯红灯 0、1、2 次,分数就是 90、63、44.1。CARLA Leaderboard v2 的路线长 7–10 公里,乘下来已有方法都挤在 0–5 分,也看不出是哪种能力失败。

Bench2Drive 因此改成 220 条 150–200 米的短路线,每条只考一种行为。目的不是降低难度,而是降低方差、保留诊断性。总分适合排序,专项分适合诊断:评测不是把更多指标乘起来,而是让每次失败都能回到明确的能力和场景。

有效的评测体系还要带反事实对照:去掉感知、打乱导航、只保留自车状态、改变候选数 K、换一种交通代理风格。如果分数几乎不变,说明指标没测到它声称的能力。

  1. 做弱基线恒速、只用自车状态、规则规划器和人类基线必须放在同一张表里,避免只和复杂模型比。
  2. 做输入消融移除视觉、导航或历史,看指标是不是真的对关键输入敏感。
  3. 做开闭环交叉同一个 checkpoint 同时报开环、非反应式闭环和反应式闭环,不用不同版本拼故事。
  4. 做场景归因把总分下钻到技能、天气、道路、速度区间和失败责任,并保留分母与置信区间。

论文自己怎么选考卷

看方法论文自己选了哪张考卷,是检验评测素养的快办法。PLUTO 把模仿学习规划推到了极限,评测却以闭环的 nuPlan 基准为准,不拿开环 ADE/FDE 说事。一篇模仿学习论文主动放弃更容易刷分的考卷,这本身就是可信度的信号。反过来,只报开环 L2 的规划论文,都该默认追问一句:换到闭环还成立吗?AD-MLP 已经演示过这一问的分量。

第二类值得学的,是把生成器和选择器的差距摆上台面。AutoVLA 把两种采样的分数并排报了出来:只采一次的 One-shot 是 80.54,从 N 次采样里挑最好一条的 Best-of-N 是 92.12。11.6 分的差距说明,好答案就在生成分布里,只是一次采样未必拿得到;这正是“校准层”说的 Top-1 与 Oracle/Top-K 的差距。合格的评测表,要让读者分得清:模型是不会生成好轨迹,还是不会挑出好轨迹。

第三类论文,动机本身就是评测论证。DiffusionDriveV2 指出:模仿学习只监督离真值最近的那一条候选,其余锚点下的候选可能质量很低,甚至会撞。只看 Top-1 的评测发现不了它们;一旦选择器在少见场景里选中其中一条,问题才会暴露。所以它用组内、组间两层 GRPO,专门管“不是最优的那些候选”的质量。换成评测语言:多模态输出的系统要单独审计非最优候选的安全性,Top-1 合格不等于整个分布合格。

最后,是拆开榜单名次的成绩来源。AutoVLA 论文里的同一张 PDMS 对比表上,TrajHF 以 93.95 排第一。拆开子项,它的进度是全表最高的 90.39,行驶方向合规却是全表倒数第二的 91.72。它的机制是用人类驾驶偏好做强化微调,学的是个性化驾驶风格,而偏好标注本身主观,也可能不一致。读榜单时把名次拆成成绩来源,和把总分拆成子项,是同一种纪律。

把能力做成矩阵,而不是一列总分

能力矩阵的横轴是能力:安全、合规、效率、舒适、导航、交互和恢复。纵轴是条件:常规分布、长尾专项、传感器退化、导航退化、不同的交通代理和城市道路。每个格子绑定测试环境、核心指标、硬门槛和诊断指标,才能看出模型究竟在哪一层变好了。

Bench2Drive 的五类技能是一个起点。Merging 测汇入博弈,Overtaking 测绕行和时机,Emergency Brake 测紧急风险,Give Way 测让行,Traffic Sign 测规则遵循。五类还覆盖不了量产,要补上静态偏航、施工改道、非机动车道、VRU 交汇、红绿灯异常、感知遮挡和导航跳变等专项。遮挡已经有现成的专项基准 DOS:4 类遮挡场景,每类 25 个案例。

指标要分清硬门槛和排序项。碰撞、驶出可行域、逆行这类可以当发布门槛;舒适、效率和类人性适合做分布比较。把所有目标压成一个加权和,团队会不停地争权重,模型也会拿一个目标去补偿另一个。一套量产方案的奖励设计也按这个思路排优先级:安全先于法规,法规先于体感;绕行场景里一旦发生碰撞,绕行相关的奖励立即清零。

硬门槛

  • 有责碰撞、逆行、闯红灯。
  • 驶出可行域、动力学越界。
  • 关键场景不得回归。

排序指标

  • 进度、通行效率、接管。
  • 舒适度分布与类人性。
  • 在同一道门槛内比较优劣。

诊断指标

  • Top-1 与 Top-K 的差距。
  • 按场景、速度、天气切片。
  • 感知、选择器、后处理分别归因。
硬门槛决定能不能发,排序决定哪个更好,诊断决定下一轮改哪里。

量产需要一条持续验收阶梯

模型评测不该从开环直接跳到公开基准,再直接跳到实车。更稳妥的走法是下面这条六级阶梯:每一级都有明确的退出条件,某一级失败时,能退回数据、模型、奖励、交通代理或系统接口去找原因。

公开基准只是其中一级。Bench2Drive 自己的定位,也只是“准真实”场景下的闭环评测。它是实验室里的单科考试,不是道路量产证书;它和道路影子、封闭场、车队验收是上下游关系。

每个专项优化都要同时带上反向场景。一个量产加塞专项里,模型先学成了“安全但一直等”:原地等到导航车道的车全部过完才变道。量产团队把这种“安全但行为失真”归为奖励钻空子,根因则落在感知与数据分布:实车数据里自车低速、后车被遮挡,后向感知失真。给成功插入加上高额奖励后,加塞更像人了,却又变得过度自信,更容易尝试高风险的插入。

这个案例给出的改进方向是两头补:数据上补进加塞失败后折回、前序等待时机的样本;仿真里用 IDM 这类规则模型,按一定概率让后车不让行。验收不是证明修好的场景变好了,而是证明相邻的失效模式没有被放大。

道路验证也不能只看接管率。接管的触发策略、驾驶员风格、道路构成和里程分母,都会改变这个数。要同时留下场景触发率、人工接管原因、系统最小安全裕度、模型置信度和版本配置,线上信号才能回流进数据闭环,变成离线可复现的用例。

  1. 离线冒烟测试用 ADE/FDE、开环碰撞率和弱基线,检查训练是否收敛、数据与接口有没有异常。
  2. 非反应式闭环检查自车偏离日志后的观测更新、道路合规与恢复;不声称已经验证了交互。
  3. 反应式闭环更换交通代理的风格和随机种子,验证长期因果、博弈和错误恢复。
  4. 单科专项对汇入、绕行、VRU、红绿灯、导航退化逐项设硬门槛,并带上相邻的反例。
  5. 道路影子与封闭场影子模式只记录模型的建议、不控车;封闭场在可控道路上验证动力学、延迟和系统接口。
  6. 灰度与持续回归小车队按版本分批放量;线上问题转成可复现的用例,永久进入回归集。

一张可信评测表必须交代什么

评测结论必须能被另一个团队复现。模型侧要披露 checkpoint、训练数据版本、传感器与地图输入、候选数和推理频率。环境侧要披露控制器、交通代理和随机种子数。统计侧要披露场景分母、失败的责任口径和置信区间。缺一项,跨版本的涨跌都可能来自系统配置,而不是模型能力。

还要同时报告人类、恒速、只用自车状态和现有量产版本这几条基线。在 NAVSIM 的一张对比表里,恒速基线的 PDMS 只有 21.6,只用自车状态的 MLP 有 65.6,人类是 94.8。

人类也不是每一项都满分:进度只有 87.5,保守和等待可能拉低了效率。人驾数据本身也有偏,采集时的遮挡、司机的风格和数据分布都会带进偏差。所以要按能力维度对照人类,而不是把人类当成无条件的满分;基线校准的,是“超过人类”“接近量产”到底指哪几个维度。

最后,把公开基准和内部量产指标分开。公开榜单提供外部可比性;内部验收要围绕自己的 ODD、硬件预算、导航质量、交通规则和客户问题。两套都要,但不能拿公开榜单替代产品责任。

  • 环路:注明是开环、自车闭环而背景回放,还是完全反应式的闭环。
  • 口径:注明 ADE、FDE、MR 的定义、时域、K 值,以及概率是否计分。
  • 子项:总分旁边给出安全、效率、舒适、交互、导航的独立子项。
  • 基线:给出弱基线、人类基线、当前量产基线,以及同一 checkpoint 在不同环境里的结果。
  • 分布:均值之外,报告分位数、最坏场景、样本数和置信区间。
  • 回归:每个线上严重问题都转成具名专项,进入永久回归,而不是一次性报告。

相关术语

  • 开环与闭环——开环用数据集里的真实下一状态,闭环用环境动力学产生下一状态——前者看不到误差累积,后者才检验纠错能力。
  • 位移误差指标——ADE 是预测轨迹与真值逐点距离的平均,FDE 只看终点——它们衡量「像不像专家」,不等于安全或舒适。
  • 碰撞时间与弱势交通参与者——TTC 是碰撞时间;VRU 是行人骑行者。关键不只是轨迹会不会相交,而是会不会在接近同一时刻到达交点。
  • 多模态轨迹——未来不是一个确定的点,而是一个分布:可以跟车、变道、让行、绕行,模型输出多条候选来表达这种不确定性。
  • 数据闭环——从线上发现问题到归因、难例挖掘、数据配比、调整、开闭环评测、小流量验证,再回到发现问题的完整循环。
  • 场景隔离——同一个 reward 在不同场景下含义可能相反,所以 reward 不能全局常开,必须按场景生效。
  • 奖励函数——把安全、效率、舒适、法规、人类偏好折算成一个可优化的数值信号,并用 KL 约束拴住策略别跑偏。
  • 逐步展开与误差累积——策略一步步展开未来时,前一步的输出会变成后一步的输入——错了就会沿着错误状态一路滚下去。
  • 信用分配——整条轨迹拿到一个 reward,要把功过分配回生成过程中的哪一步——AR 的粒度天然对齐到每个 token,但长期 reward 仍可能错归到早期动作;Diffusion 要摊回多个去噪步。

相关论文