1 引言:安全是自动驾驶的第一性原则
在自动驾驶系统中,安全不是优化目标之一,而是硬约束。一个开得"好但偶尔不安全"的系统是不可接受的。
端到端安全可以分层理解:
本文覆盖核心层级,重点聚焦在端到端学习框架中可落地的安全机制。
2 碰撞检测基础
2.1 Bounding Box 重叠检测
最直接的碰撞检测方式:检查两个矩形是否重叠。
基于交并比(IoU)的检测:
分离轴定理(SAT,Separating Axis Theorem):
- 将两个有向包围盒(OBB)投影到多个轴上
- 如果所有轴上投影都不重叠 → 无碰撞
- 任意一个轴上有重叠 → 可能碰撞
工程优化:
- 先用 AABB(轴对齐)做粗筛,再用 OBB 做精检
- 对相距过远的智能体直接跳过(距离阈值判定)
2.2 Time-to-Collision(TTC,碰撞时间)
TTC 是最经典的安全指标之一,衡量"按当前状态行驶多久后会发生碰撞"。
简化计算:
TTC 阈值:
| 场景 | 安全 TTC | 警告 TTC | 紧急 TTC |
|---|---|---|---|
| 高速 | > 5s | 3~5s | < 3s |
| 城市 | > 3s | 2~3s | < 2s |
| 停车场 | > 2s | 1~2s | < 1s |
局限:TTC 假设速度和方向不变,在交互场景中不够准确。
2.3 距离基础碰撞检测
更鲁棒的方法:基于路径预测的距离计算。
纵向距离:
横向距离:
碰撞条件:
安全跟车距离通常用"二秒法则":
3 可行驶区域约束
3.1 HD Map 约束
高精地图是最可靠的可行驶区域信息来源:
- 车道边界线:车辆不能逾越
- 路缘:物理限制
- 导流岛、隔离带:不可穿越
- 人行横道:需让行但可驶入
在轨迹规划中使用:
对每个轨迹点,检查其横向偏移是否超出车道边界。
3.2 Online Map 约束
对于不使用 HD Map 的方案,可行驶区域由在线感知模型实时预测:
- Driable Area Segmentation:像素级可行驶区域分割
- Road Layout Prediction:预测道路拓扑
- Lane Detection:在线车道线检测
在线地图的局限:
- 远距离可行驶区域不确定性大
- 遮挡区域无法判断
- 检测错误直接导致安全风险
3.3 学习的可行驶性约束
使用神经网络隐式学习哪些区域可行驶:
- 训练时用 ground truth 道路区域做监督
- 推理时将可行驶概率 < 阈值的区域视为不可通行
- 可在损失函数中加入"不可行驶区域惩罚"
趋势:端到端模型中,可行驶性约束正从"显式规则"转向"隐式学习"。
4 规则安全过滤器
4.1 后处理过滤架构
安全过滤器作为规划器输出的后处理模块:
4.2 安全过滤器的典型流程
- 碰撞检查:轨迹上每个时间步检测与障碍物的重叠
- 边界检查:轨迹是否在可行驶区域内
- 规则检查:是否违反交规(红灯、实线变道)
- 动力学检查:加速度、转向角是否超出车辆极限
如果任意一项不通过 → 执行回退策略:
4.3 安全过滤器设计要点
| 要点 | 说明 |
|---|---|
| 独立性 | 过滤器与规划器解耦,即使规划器失效也能工作 |
| 可验证性 | 过滤逻辑必须可形式化验证 |
| 计算效率 | 必须在实时约束内完成(< 10ms) |
| 保守原则 | 宁可误报也不漏报 |
4.4 先进方案:可微分安全过滤器
将安全约束以可微形式嵌入规划网络,在训练时同时优化安全和任务目标:
- violation_margin:安全阈值
- clearance:轨迹到障碍物的距离
优势:安全不再只是后处理,而是参与模型训练,形成"内生安全"。
5 损失函数中的安全设计
5.1 碰撞损失(Collision Loss)
- i:第 i 个障碍物
- t:第 t 个时间步
- d_i_t:轨迹点到障碍物 i 在时间 t 的距离
- d_min:最小安全距离
变体改进:
- IoU-based loss:用预测轨迹与障碍物的 IoU 作为惩罚
- 速度加权:相对速度越大,惩罚越大
- TTC-based loss:TTC < 阈值时施加惩罚
5.2 舒适度损失——加加速度约束
舒适度通常用 jerk(加加速度,即加速度的导数)来衡量:
| jerk 阈值 | 主观感受 |
|---|---|
| < 2 m/s³ | 很舒适 |
| 2~5 m/s³ | 轻微不适 |
| 5~8 m/s³ | 明显不适 |
| > 8 m/s³ | 晕车 |
横向 jerk 同样重要:转向的突然变化也会导致不适。
5.3 车道偏离损失
- d_lat(t):t 时刻的横向偏移
- lane_width(t):t 时刻的车道宽度
扩展:
- 变道场景:压线前给予惩罚
- 实线变道:高惩罚
- 对向车道:极高惩罚
5.4 综合安全损失函数
实际系统的安全损失通常是多项的组合:
各项权重 α, β, γ, δ 需要通过场景验证和敏感性分析来确定。
一个重要的实践教训:损失函数中的安全项权重过大 → 规划过于保守,停滞不前;权重过小 → 不安全轨迹通过。需要精调。
6 安全世界模型
6.1 什么是安全世界模型
传统的碰撞检测是在当前时刻做检测。但安全的本质问题是:
“如果我现在做这个动作,未来会发生碰撞吗?”
这就需要预测未来的世界状态——这就是安全世界模型的核心。
6.2 NIFF(Neural Inverse Finite Element Framework)
NIFF 是一种用于自动驾驶碰撞预测的神经世界模型。
核心思路:
- 将场景编码为"未来占用场"(future occupancy field)
- 预测每个栅格在未来每个时间步被占用的概率
- 将自车轨迹投影到占用场上,计算碰撞概率
优势:
技术细节:
- 输入:当前场景 BEV + 自车规划轨迹
- 输出:T 个时间步的占用概率图
- 碰撞概率 = 轨迹覆盖区域的占用概率之和
6.3 世界模型的其他应用
| 工作 | 核心思路 |
|---|---|
| GameFormer | 用博弈论建模其他智能体对自车行为的响应 |
| MUVO | 学习多模态未来场景预测 |
| OccWorld | 用 4D 占用预测做规划安全评估 |
| DriveWorld | 以世界模型为核心架构的端到端系统 |
6.4 世界模型的局限
- 计算开销大:预测未来占用需要额外模型推理
- 预测误差:世界模型本身也会错,特别是在长尾场景
- 难以验证:概率性输出的安全性难以形式化保证
7 主动安全系统(ADAS)
7.1 AEB(自动紧急制动)
原理:当碰撞不可避免时,自动施加最大制动力。
- 触发条件:TTC < 阈值(通常 1.5~2.5s)
- 制动强度:最大制动力(~0.8g ~ 1.0g)
- 退出条件:车速 < 5km/h 或碰撞风险解除
AEB 分级:
| 级别 | 功能 | 速度范围 |
|---|---|---|
| 城市 AEB | 行人、车辆检测 | < 60 km/h |
| 高速 AEB | 车辆检测 | < 150 km/h |
| 倒车 AEB | 后方碰撞 | < 15 km/h |
| 交叉口 AEB | 横向碰撞 | < 30 km/h |
7.2 FCW(前向碰撞预警)
原理:在碰撞发生前向驾驶员发出警报,给驾驶员反应时间。
- 预警时机:TTC < 3~5s(比 AEB 更早)
- 输出方式:视觉 + 听觉 + 触觉告警
- 误报处理:过高的误报率会导致用户关闭系统
7.3 LKA(车道保持辅助)
原理:当车辆无意图偏离车道时,主动纠正方向盘。
- 触发条件:车辆靠近车道边界(d_lat > 阈值)
- 纠正扭矩:轻量纠正(驾驶员可 override)
- 退出条件:驾驶员打转向灯或施加相反扭矩
LKA 的安全设计:
- 始终允许驾驶员 override(人机共驾)
- 只在非变道意图时激活
- 扭矩上限受法规约束(ECE R79)
8 功能安全标准
8.1 ISO 26262(道路车辆功能安全)
ISO 26262 是汽车行业最核心的功能安全标准,定义了从概念到退役的完整安全生命周期。
核心概念:
| 概念 | 含义 |
|---|---|
| ASIL(Automotive Safety Integrity Level) | A/B/C/D 四级,D 最高 |
| HARA(Hazard Analysis and Risk Assessment) | 识别危险事件并评级 |
| 安全目标 | 针对每个危险的安全要求 |
| FTTI(Fault Tolerant Time Interval) | 故障发生后到危险发生的时间窗口 |
| 安全机制 | 检测/避免/控制故障的机制 |
ASIL 等级评估:
对应本系统(E2E 规划):
- 规划模块通常被分配 ASIL B~D
- 安全过滤器模块应达到 ASIL D
- 决策错误导致碰撞:严重度高,可控性低 → ASIL C/D
8.2 SOTIF(预期功能安全,ISO 21448)
ISO 21448 解决的是系统在无故障情况下因功能不足导致的危险。
与 ISO 26262 的区别:
| ISO 26262 | ISO 21448(SOTIF) |
|---|---|
| 系统故障(硬件损毁、软件 bug) | 功能不足(场景未覆盖、感知盲区) |
| 随机硬件失效 | 算法局限性 |
| 通过冗余和诊断解决 | 通过场景覆盖和验证解决 |
SOTIF 在 E2E 中的挑战:
- E2E 模型是黑盒,无法像规则系统那样做形式化验证
- 长尾场景的覆盖率难以估计
- “神经网络的安全验证"仍是一个开放问题
8.3 端到端系统的安全认证难题
目前尚无成熟的针对 E2E 系统的认证流程,主要困难:
| 挑战 | 说明 |
|---|---|
| 可解释性 | 神经网络的决策过程不透明 |
| 可验证性 | 无法穷尽所有输入场景 |
| 分布外检测 | 遇到训练分布外的场景行为不可控 |
| 持续学习 | OTA 更新后安全性需要重新认证 |
行业做法:
- 模块化安全:只在安全壳(安全过滤器)中放可验证代码
- 影子模式:E2E 系统规划但不执行,与安全系统对比
- 保守退守:不确定场景下退回到保守策略
9 安全趋势总结
9.1 内生安全(Safety by Construction)
将安全约束嵌入到模型架构中,而非作为后处理:
- 可微安全损失:安全参与梯度传播
- 约束解码:轨迹解码模块天然满足安全性约束
- 安全注意力:注意力机制中引入碰撞感知
9.2 分层安全架构
9.3 安全基线方案
实际部署中最可靠的方法仍然是"规则过滤器 + 学习规划器"的组合方案:
| 组件 | 特性 | 安全保证 |
|---|---|---|
| 学习规划器 | 高性能、覆盖长尾 | 无形式化保证 |
| 规则过滤器 | 保守、可验证 | ASIL D |
10 总结
| 维度 | 要点 |
|---|---|
| 碰撞检测 | Bbox 重叠、TTC(碰撞时间)、距离法(二秒法则) |
| 可行驶区域 | HD Map(最可靠)、Online Map(有误差)、学习约束(灵活但需要验证) |
| 安全过滤器 | 后处理碰撞/边界/规则/动力学检查,回退到紧急刹车 |
| 损失函数安全项 | Collision Loss + Comfort Loss(jerk)+ Lane Violation Loss |
| 安全世界模型 | NIFF 预测未来占用,实现概率性碰撞检查 |
| ADAS 主动安全 | AEB(紧急制动)、FCW(碰撞预警)、LKA(车道保持) |
| 功能安全标准 | ISO 26262(硬件/软件故障)、ISO 21448(功能不足/SOTIF) |
| 端到端安全趋势 | 内生安全设计 + 分层安全架构 + 安全过滤器兜底 |
一句话总结:自动驾驶安全是分层体系——从碰撞检测到损失函数约束,再到规则过滤器和功能安全标准,每一层都不可缺失;在端到端范式中,“可验证的安全壳 + 学习的规划器"是目前最现实的安全落地路径。