2、场景分类体系:自然驾驶场景、法规场景、事故场景、边缘场景

场景分类这件事,说实话,是搭建仿真测试场景库的「地基」。地基没打好,后面盖多少楼都是危房。我个人习惯把场景分成四大类:自然驾驶场景、法规场景、事故场景、边缘场景。这四类各有各的用处,缺一不可。

2.1 自然驾驶场景:最真实的「路况复刻」

自然驾驶场景,说白了就是把真实道路上采集到的数据,直接拿来用。你想想看,一辆车装了摄像头、雷达、GPS,在城里跑上几百公里,记录下来的所有交通参与者行为、道路结构、天气变化,这就是自然驾驶场景。

它的核心价值是什么? 覆盖日常驾驶中 99% 的「正常情况」。比如前车匀速行驶、变道、红绿灯启停、行人过马路等等。这些场景虽然看起来平淡无奇,但它们是验证 ADAS 系统「基本功能是否正常」的试金石。

关键点: 自然驾驶场景的「量」很重要。我建议至少采集 1000 小时以上的真实路测数据,才能覆盖到足够多的道路类型和交通流特征。

我在项目中遇到过一个问题:某团队用了一套只有 200 小时的自然驾驶数据做训练,结果系统在高速匝道汇入场景下频繁误判。为什么?因为那 200 小时的数据里,匝道场景只出现了 3 次,样本太少。后来我们补采了 500 小时的匝道专项数据,问题才解决。

自然驾驶场景的构建,通常分三步:

  1. 数据采集:用采集车跑遍目标区域,记录传感器原始数据。
  2. 数据标注:把每一帧里的车辆、行人、车道线、交通标志都标出来。
  3. 场景提取:从连续数据流中切出有意义的片段,比如「前车急刹」「旁车切入」。

我的小技巧: 标注时别只标「车」和「人」。把「摩托车」「自行车」「三轮车」也单独标出来。我曾经因为没标摩托车,导致系统在东南亚市场把摩托车当成了「快速移动的噪声」,直接过滤掉了——后果可想而知。

2.2 法规场景:拿不到「及格证」就别想上路

法规场景,就是各国政府、第三方机构强制要求测试的场景。比如中国的 C-NCAP、欧洲的 Euro NCAP、美国的 FMVSS。这些场景是「必考题」,不过关,车就不能上市。

法规场景的特点是:标准化、可重复、有明确的通过标准。比如 Euro NCAP 的 AEB 测试,要求车辆以 50 km/h 的速度接近静止目标车,必须在碰撞前完全刹停。少 1 km/h 都不行。

法规来源 典型场景 测试条件
Euro NCAP AEB 车对车(CCRs) 目标车静止,自车 20-80 km/h
C-NCAP AEB 车对行人 行人横穿,自车 20-60 km/h
FMVSS 127 自动紧急制动 目标车静止,自车 40 km/h
ISO 26262 功能安全相关场景 系统故障注入测试

嗯,这里要注意:法规场景虽然重要,但它只覆盖了「极小一部分」危险情况。你想想看,Euro NCAP 的 AEB 测试场景一共才十几个,而真实道路上的危险场景成千上万。所以,法规场景是「底线」,不是「全部」。

避坑指南: 我曾经见过一个团队,把所有精力都花在过法规测试上,结果法规测试全满分,但用户反馈说「这车在小区里老是误刹车」。为什么?因为法规场景里没有「小区窄路、两边停满车、小孩突然跑出来」这种场景。所以,法规场景必须和自然驾驶场景配合使用。

2.3 事故场景:从「血的教训」中学习

事故场景,就是从真实交通事故数据库中提取出来的场景。比如美国的 NHTSA 数据库、中国的交通事故深度调查数据库。这些场景的特点是:罕见但致命

为什么要用事故场景?因为自然驾驶场景里几乎看不到事故——你开 10 万公里可能都遇不到一次。但 ADAS 系统恰恰需要在事故发生时发挥作用。所以,我们必须把历史上发生过的事故「复现」到仿真环境里。

事故场景的构建,我一般分四步:

  1. 事故数据获取:从公开数据库或合作方获取事故记录。
  2. 事故重建:根据事故报告中的车速、轨迹、道路信息,在仿真软件里重建事故过程。
  3. 参数化变体:把事故场景参数化,比如改变车速、角度、光照条件,生成一系列变体。
  4. 注入测试:把变体场景输入给 ADAS 系统,看它能否避免或减轻事故。

一个真实案例: 我记得有一次,我们从 NHTSA 数据库里提取了一个「夜间、雨天、行人穿深色衣服横穿高速」的事故场景。把这个场景注入到系统后,发现系统的行人检测模型在低光照+雨滴噪声下,漏检率高达 40%。后来我们专门针对这类场景做了数据增强,才把漏检率降到 5% 以下。

事故场景的难点在于「数据稀缺」。很多事故数据库不对外开放,或者数据质量参差不齐。我的建议是:优先关注高频致命事故类型,比如「十字路口侧碰」「追尾」「行人横穿」。别想着覆盖所有事故类型,那不现实。

2.4 边缘场景:专门「刁难」系统的场景

边缘场景,也叫 Corner Case。就是那些「理论上可能发生,但概率极低」的场景。比如:

  • 一辆卡车侧面挂满了圣诞树,树梢伸到相邻车道
  • 路面上有一个巨大的坑,但坑里积满了水,看起来像路面
  • 一群羊突然从山坡上冲下来,横穿公路

你可能会笑,觉得这些场景太离谱。但我告诉你,这些场景在真实路测中都出现过。而且,边缘场景是检验 ADAS 系统「鲁棒性」的终极试金石

为什么?因为深度学习模型对「没见过的东西」天生不擅长。你训练集里全是普通轿车,突然来一辆贴满广告的厢式货车,模型可能就认不出来了。边缘场景就是专门找这些「模型盲区」的。

我的经验: 构建边缘场景时,别只靠人工想。我建议用「对抗生成网络(GAN)」自动生成边缘场景。比如,把正常场景中的车辆纹理替换成迷彩、镜面、甚至透明材质,看模型还能不能检测到。我曾经用这个方法,在一个量产项目上线前发现了 7 个严重漏检问题。

边缘场景的构建方法,我总结了三类:

  1. 组合变异:把正常场景中的元素随机组合,比如「雨天+夜间+逆光+行人撑伞」。
  2. 传感器故障模拟:模拟摄像头被泥巴遮挡、雷达被强电磁干扰、GPS 信号丢失等情况。
  3. 罕见物体注入:在场景中加入「训练集里没有的物体」,比如动物、工程机械、异形车辆。

注意: 边缘场景不是越多越好。我曾经见过一个团队,生成了 10 万个边缘场景,结果 90% 都是「不可能发生的组合」,比如「在沙漠里遇到企鹅」。这种场景对系统提升毫无帮助,反而浪费算力。边缘场景要「合理罕见」,不是「胡乱罕见」。

2.5 四类场景的协同关系

这四类场景不是孤立的,它们需要协同工作。我个人的搭配比例是:

  • 自然驾驶场景:60% —— 保证基本功能正常
  • 法规场景:15% —— 保证通过认证
  • 事故场景:15% —— 保证安全底线
  • 边缘场景:10% —— 保证鲁棒性

当然,这个比例不是固定的。如果你做的是 L2 级辅助驾驶,自然驾驶场景可以多一些;如果你做的是 L4 级自动驾驶,边缘场景的比例可能要提高到 20% 以上。

最后说一句:场景分类的最终目的,不是把场景分门别类存起来,而是让每一类场景都能「物尽其用」。自然驾驶场景用来训练,法规场景用来认证,事故场景用来补强,边缘场景用来查漏。四者结合,才能构建出一个真正可靠的仿真测试场景库。