一辆车后方停着另一个物体,两条数据线从车内引出,一条在接口处断开,一条被标注了偏移量

一、先把这类场景的工程难度说清楚

据公开报道,一家公路交通安全监管机构对某款后装辅助驾驶设备展开初步调查,依据是数起车辆在启用相关设备时撞上同车道慢行或静止车辆的报告,其中部分造成了人员伤亡。具体件数与伤亡数字以公开报道原文为准,不作为本篇任何判断的依据。本篇只讨论方法与字段:不指责任何厂商,不推断任何一起具体事故的原因与责任归属。

为什么“撞上同车道慢行或静止车辆”这一类场景在工程上特别难,有三个独立原因。

原因一,静止目标在多普勒域里与背景融为一体。依靠相对运动来分离目标的手段,对相对速度接近零的目标天然迟钝;地面杂波与静止障碍在信号特征上难以区分,于是目标要么不出现,要么出现得晚。

原因二,跟驰假设失效。多数纵向控制建立在“前车会跟着车流走”的假设上,静止车辆恰好违反了这一假设;把静止车误判成对前景的干扰并加以滤除,是一类反复出现的错误模式。

原因三,横穿与掉头车辆的轨迹预测失效。这类目标的运动方向与自车车道关系多变,短时轨迹的可选解释很多,判定窗口又很短。

三个原因合起来说明一件事:这类场景的难点不只在算法,还在于它决定了你需要哪些数据才能证明算法在什么条件下有效。

二、事故调查第一眼要看的三组数据

第一组,发生了什么。需要的是车辆状态与目标位置:自车速度、纵向与横向控制状态、时间序列上的目标相对距离与方位、目标第一次被稳定标记的时刻。

第二组,系统怎么想的。需要感知与决策的输出:每一帧把目标判成了什么类别、置信度多少、是否进入制动请求、请求在什么时刻被抑制或撤销。

第三组,人做了什么。需要接管与方向盘、踏板的状态:驾驶员是否在环、手上力量与踏板输入的记录、系统提示与人工干预的先后顺序。

这三组数据各自回答一个不同的问题,缺任何一组,剩下的两组都不足以支撑结论。三组齐备时,调查可以讨论“系统在当时看到了什么”;三组不齐时,讨论会退化成“驾驶员当时应该能做什么”。

数据组 内容 后装条件下的获取障碍 可行的补齐方式
发生了什么 车辆状态与目标位置 原始传感器流归整车厂,后装拿不到完整一路 自建独立传感与记录,明确写明与整车数据的差异
系统怎么想的 感知与决策输出 中间量常被丢弃,只留最终指令 把类别判定与置信度按帧落盘
人做了什么 接管与方向盘踏板状态 无法直接读整车信号,只能从转向与动力指令间接推断 独立采集方向盘与踏板,并标注推断依据

三、后装的先天缺陷与“拿不全”的三种后果

后装设备与前装最大的不同,是车辆原本不是为它设计的。这个前提带来三个具体缺陷:原始传感器流的所有权与访问权在整车厂一侧,后装能拿到的往往是已经处理过的结果;时间基准与整车不同步,两边的时钟各走各的;接管状态不能直接从整车信号读出来,只能从自己发出的转向与动力指令间接推断,而“指令发出”与“人实际接手”之间还有一段无法观测的间隙。

数据拿不全的后果有三种,都不利于改进。第一种,事故解释变成用户承担举证不利——说不清系统当时看到了什么,讨论就会滑向“驾驶员为何不干预”。第二种,厂商无法复现,因而无法改进;一个不能重现的判定错误,只能靠扩大测试去围堵,成本与周期都上升。第三种,监管只能按最保守假设处理,处置范围容易超出真实问题所在的批次与配置,这也是这类事件最终走向范围性处置的机制之一。

四、时间对齐补不回来,留存参数要在装前定

时间对齐这件事为什么事后几乎无法弥补,有三个结构性原因:各模块各自计时且没有记录彼此偏差;系统里缺少一个统一的单调时钟,用了会被回拨的时间源;事件序列被分段存储,各段按自己的容量策略独立覆盖。等到事故发生后再去对齐,你连偏差是多少都不知道,因为没有任何地方写下过它。

装前要做的两件事很具体。第一件,记录一个端到端的时间基准源,让每一路数据在产生时就带上同一个基准下的标识,并在设计文档里写明这一路用的是哪个源。第二件,把时钟偏差本身当成一条数据存下来:定期记录本设备与整车信号、与自身各模块之间的偏差量及其变化趋势。偏差不是噪声,它是事后唯一能把两条时间线接起来的凭据。

数据留存设计要写四个参数:采什么、采多久、存在哪、能不能被覆盖。四个参数里最常被含糊处理的是第四个。循环写入是常见做法,但循环写入会把事故窗口抹掉,所以要为触发条件留出保护区:一旦检测到某类事件(例如制动请求发出、碰撞预警触发、系统被人工接管),就以该时刻为中心把前后一段单独存放,并且不参与循环覆盖。这段窗口要能整体导出,导出格式与字段表在装前就要写定,而不是事发后临时拼。

五、驾驶员监控与后装必须额外回答的那一问

“驾驶员监控”这一层的意义主要是责任意义上的。如果设备让人在相当长的时间里放手,而系统里没有任何一条数据能说明人是否具备接管条件,那么任何一次事故都会被问成一句话:你凭什么允许人放手。答不出这句话,前面两组数据再完整也没用。监控的实际实现要能回答:检测的是什么信号、多久采一次、检测到未接管之后系统做什么、这些动作有没有留痕。

后装与前装在验证责任上的分界也在这里。前装可以声称整车作为一个整体验证过;后装必须额外回答另一问:装在不是为它设计的车上,你的边界条件是什么。这一问要落到具体:适用哪些车型与年款区间、依赖整车哪些信号、这些信号在什么情况下缺失或延迟、缺失时系统降级成什么行为。把这一问答清楚,比把识别精度说清楚更难,也更必要。

六、把这类风险写成清单:准入三项、可迁移三问、一条采购判据

产品准入清单我们只写三项,因为这三项缺一项都会让后面的讨论失去凭据。

  • 事故数据的可导出格式与字段表:字段名、单位、采样频率、覆盖时段、导出权限归谁,一张表写清。
  • 时钟偏差的可核对记录:偏差量、采集时刻、参照源,能导出且不被循环覆盖。
  • 驾驶员在环监控的实际实现:检测信号、判定阈值来源、干预动作与留痕方式,写实现而不写功能名。

软件交付里可以直接迁移的是三问。任何自动执行的功能,都要能回答:当时它看到了什么、它判断成什么、人有没有干预。这三问适用于工业设备的自动判定、风控系统的自动拦截、AI 流程的自动提交,也适用于我们自己的产品。答不出第二问的项目最多,因为中间量常常在结果落库之前就被丢掉了。

这正是我们对做工业 AI 的一条要求:安全相关的判定不能只做结果日志。结果日志只说“报警了”或者“停机了”,中间量与置信度要落盘,否则事后无法区分“判定正确但执行晚了”与“判定本身就是错的”。落盘字段的最低集合是输入摘要、判定类别、置信度、阈值版本与触发的执行动作五项。

采购侧的判断也只需一条:拿不出这三问答案的方案,先不要进生产环境。可以先在小范围、可接管、可退出的条件下运行,把三问的回答补齐再谈上线。这一条对辅助驾驶成立,对产线上的自动判定同样成立。

洹拓在方案评审里把这三问当成固定环节,不因为客户催得急就跳过。原因很直白:能被追溯的系统才有资格谈改进,追溯不了的系统的每一次改进都只是猜测。