1. 课程导入

1.1 SOTIF标准背景

聊SOTIF之前,我先说说自己的感受。2018年我刚接触ISO 21448时,说实话有点懵。功能安全(ISO 26262)好歹有明确的故障模型和量化指标,SOTIF呢?它要对付的是「系统没坏,但就是干了蠢事」的情况。

你想想看,一辆自动驾驶车在路上跑,传感器没坏、算法没崩、执行器正常,但它就是没识别出前方侧翻的卡车——这算不算安全问题?当然算。这就是SOTIF要管的范畴。

ISO 21448的全称是「预期功能安全」,它关注的是:在功能设计本身存在局限、或者用户误用的情况下,系统会不会导致危害。说白了,就是系统「想错了」或者「没想到」的那些场景。

核心区别一句话讲透:

  • ISO 26262(功能安全):系统坏了怎么办?——硬件随机失效、系统性故障
  • ISO 21448(SOTIF):系统没坏但不够聪明怎么办?——性能局限、环境干扰、用户误用

我记得有个项目,L4级园区巴士在雨天把路面积水误判为「可通行路面」,直接开了进去。传感器没坏,算法也没报错,但就是出了事。这就是典型的SOTIF问题——功能局限导致的危害。

1.2 场景库定义

场景库是什么?我习惯这样定义:场景库是自动驾驶系统在开发、验证、迭代过程中所使用的所有场景的集合,它是有结构、有标签、可复用的数字资产。

别把它想得太玄乎。说白了,场景库就是一本「考试题库」。你的自动驾驶系统要上路,得先通过这本题库的考核。题库里有什么?各种路况、天气、交通参与者行为、边缘情况……

按照PEGASUS项目的分类法,场景有三个层级:

层级 定义 举例
功能场景 用自然语言描述的抽象场景 "高速公路上,前车急刹车"
逻辑场景 用参数范围描述的场景 车速[60,120]km/h,距离[10,50]m,减速度[3,8]m/s²
具体场景 参数取具体值的场景 车速80km/h,距离30m,减速度5m/s²

我个人的经验是:逻辑场景是场景库的核心资产。为什么?因为功能场景太模糊,没法直接测试;具体场景又太多,测不完。逻辑场景刚好卡在中间——既有明确的参数边界,又能通过参数组合生成大量测试用例。

我的一个小建议:搭建场景库时,别一上来就堆具体场景。先梳理功能场景,再定义逻辑场景的参数空间,最后用参数采样生成具体场景。这个顺序能帮你省很多返工的功夫。

1.3 场景库在自动驾驶开发中的核心价值

场景库的价值,我用一句话概括:它是自动驾驶系统从「能跑」到「跑得稳」的必经之路。

具体来说,有四个核心价值:

  1. 验证的基石——没有场景库,你怎么证明系统在99.99%的场景下是安全的?靠路测?那得跑几亿公里,成本扛不住。
  2. 问题的显微镜——系统出了事故,场景库能帮你回溯:是哪个场景没覆盖到?是参数边界没定义好?还是场景分类漏了?
  3. 迭代的标尺——每次算法升级,用同一套场景库跑一遍,性能是升了还是降了,一目了然。我见过太多团队「优化了一个问题,引入了三个新问题」。
  4. 团队的共同语言——算法工程师、测试工程师、安全工程师、项目经理,大家聊场景库里的同一个场景,沟通效率翻倍。

我曾经在一个项目里吃过亏。团队花了大半年做感知算法,路测看着还行,结果一上场景库跑——雨天场景的误检率高达15%。为什么?因为路测那段时间没下雨。从那以后,我坚持:场景库必须覆盖所有已知的「危险场景」和「边缘场景」,不能只靠路测碰运气。

注意:场景库不是一次建完就完事的。随着系统迭代、运营数据积累、新场景出现,场景库必须持续更新。我见过一些公司,场景库建完就锁在服务器里,一年没动过——那跟没有场景库没什么区别。

1.4 SOTIF场景库的知识体系

下面这张图是我自己梳理的SOTIF场景库知识体系,帮你快速建立全局视角:

SOTIF场景库知识体系 SOTIF场景库 标准背景 场景库定义 核心价值 ISO 21448起源 与26262的区别 三层分类法 参数化描述 验证·回溯·迭代 功能局限 vs 故障 功能/逻辑/具体场景 场景覆盖度 持续迭代机制 场景库是连接「标准要求」与「工程实践」的桥梁 没有场景库,SOTIF就是纸上谈兵

这张图把SOTIF场景库拆成了三个维度:标准背景告诉你「为什么做」,场景库定义告诉你「做什么」,核心价值告诉你「有什么用」。三者缺一不可。

嗯,第一章的内容就到这里。场景库的概念听起来简单,但真正落地的时候,坑不少。后面几章我会逐一展开,从场景分类、参数设计、数据采集到复用迭代,把每个环节的实操经验都掰开揉碎讲清楚。