问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

定位百度Apollo事故原因SoVAR: 使用LLM重构自动驾驶事故场景

创作时间:
作者:
@小白创作中心

定位百度Apollo事故原因SoVAR: 使用LLM重构自动驾驶事故场景

引用
CSDN
1.
https://blog.csdn.net/laukal/article/details/142432321

自动驾驶系统(ADS)的安全性是其大规模应用的关键。本文介绍了一种创新方法SoVAR,能够自动从事故报告中重建事故场景并进行ADS测试。该方法通过设计语言模式提示来增强LLM准确提取文本信息的能力。然后,通过解决一组驾驶约束条件,生成符合期望道路结构的驾驶轨迹。

自动驾驶系统(ADS)已取得显著进展,并越来越多地应用于安全关键场景。然而,最近报告的涉及ADS的致命事故数据表明,尚未完全达到期望的安全水平。因此,需要更全面、更有针对性的测试方法来确保驾驶安全。来自真实事故报告的场景为ADS测试提供了宝贵的资源,包括关键场景和高质量的种子。然而,现有的从事故报告中重建场景的方法在信息提取的准确性上往往有限。此外,由于道路环境的多样性和复杂性,将当前的事故信息与模拟地图数据匹配以进行重建也面临着重大挑战。

本文设计并实现了SoVAR,一种用于从事故报告中自动生成适用于各种道路结构的通用场景的工具。SoVAR利用精心设计的语言模式提示,引导大语言模型(LLM)从文本数据中提取事故信息。随后,SoVAR结合提取的事故信息,制定并解决与事故相关的约束条件,以生成事故轨迹。最后,SoVAR在不同的地图结构上重建事故场景,并将其转换为测试场景,用于评估其检测工业ADS缺陷的能力。我们利用来自美国国家公路交通安全管理局(NHTSA)数据库的事故报告,生成用于工业级ADS Apollo测试的场景。实验结果表明,SoVAR能够有效地在不同道路结构上生成通用化的事故场景。此外,结果确认SoVAR识别出了导致百度Apollo碰撞的5种不同类型的安全违规行为。

SoVAR工具的主要要素

SoVAR工具的主要要素包括:

  • 目的:从事故报告中自动重建碰撞场景并测试自动驾驶系统(ADS)。
  • 设计步骤
  • 信息提取:使用大语言模型(LLM)从事故报告中提取关键因素。
  • 轨迹规划:建立交通参与者的驾驶行为约束,使用约束求解器生成轨迹。
  • 模拟和测试生成:将生成的轨迹与环境和道路信息输入模拟器,重建事故场景。
  • 场景定义:基于层的抽象,分为道路网络和交通引导对象、环境条件、动态对象三个层次。
  • 功能
  • 利用NHTSA数据库中的事故报告生成测试场景。
  • 能够生成跨不同地图结构的广义事故场景。
  • 评估阶段:将模拟场景转换为测试案例,输入ADS中,检查系统是否能成功到达预期位置而未发生碰撞。

信息提取

根据美国交通部发布的事故报告记录的官方标准,事故报告通常包含有关道路环境和车辆轨迹的有价值信息。为了理解这些文本中复杂的句子结构和交通术语,SoVAR利用LLM来提取这些信息。在信息提取过程中,SoVAR逐步解析车祸叙述,并将关于天气、照明、道路和车辆的信息积累到形成车祸摘要的数据结构中。

基于层的事故摘要表示

SoVAR只需要事故的描述性文本来提取信息,而无需依赖其他数据。与当前的场景重建工作一致,SoVAR专注于主要的车祸影响因素,即照明、天气、道路和车辆运动。它直接使用LLM提取信息,而不引入新的信息。为了抽象表示事故信息并将其组织成LLM能够理解的语义结构,我们提出了分层表示的方式,将提取的信息分为三个层次:道路、环境和动态对象。

  • 环境条件:环境条件层包含天气和照明条件。天气条件包括雨、雾、雪等因素。照明条件涉及道路上的照明情况,通常白天较亮,夜间较暗,此外,照明可能会通过路灯得到增强。
  • 道路网络与交通引导:该层描述了道路网络和用于道路引导的交通标志。道路表示碰撞发生的地理背景,包括事故发生的道路类型(CollisionLocation)和相关道路的车道数量(LaneNum)。此外,SoVAR还提取了道路限速(SpeedLimit)的信息,用于重建适用于事故发生地的速度限制。
  • 动态对象:此层包含与碰撞有关的冲击者和受害者信息,以及导致碰撞的运动行为。SoVAR提取了参与同时碰撞的交通参与者数量(ParticipantsNumber)和碰撞类型信息(CrashType),后者指定了交通参与者发生碰撞的角度。对于每辆涉事车辆,SoVAR提取了每辆车的状态,包括车辆的初始行驶车道、方向和碰撞前的驾驶行为。对于行人,SoVAR构建了行人过马路和行走的行为。

信息提取提示的语言模式

在确定要提取的信息后,我们设计了语言模式来生成LLM的提示。为了设计这些模式,三位标注员分别按照常规提示模板编写提示句子。随后,我们评估了事故信息提取的影响。使用这些提示句子,三位标注员进行卡片排序并讨论,以推导出语言模式。该过程产生了三种对应于表1中三种信息子类型的语言模式。我们展示了每种语言模式的简化示例模板。SoVAR使用表2中设计的提示模式逐层提取事故信息。

轨迹规划

SoVAR利用提取的驾驶动作和道路信息(包括事故报告中的道路以及用于构建和执行场景的测试道路)来模拟碰撞并计算模拟交通参与者的轨迹。该方法首先基于道路信息对每个动作建立约束,然后通过解决这些约束生成轨迹。因此,它可以适应不同地图上的不同道路。

算法1概述了航路点的生成过程。为了便于在算法中显示,提取的属性用字母缩写表示。例如,驾驶动作缩写为DA。该算法将使用LLM从事故报告中提取的道路信息R、提取的动态对象信息D、模拟器中的给定地图MAP以及定义的驾驶动作约束C作为输入。算法最初将给定的地图解析为一组候选道路,并记录每条道路的类型(例如十字路口)(第3行)。然后遍历候选道路集,依次选择不同长度和宽度的车道(第4-5行)。如果当前道路类型与发生事故的类型匹配,并且所有交通参与者在移动期间占用的最大车道数小于或等于所选道路上的车道数,则开始航路点生成过程(第6-7行)。随后,根据参与者的驾驶方向和初始车道位置调整以匹配所选道路(第8-11行),约束求解器基于驾驶动作解决约束以生成航路点(第12行)。以下将详细介绍驾驶动作约束C的设计。

为了使参与者执行相应的动作并进入碰撞地点,我们为每个动作定义了一组轨迹约束,并利用约束求解器自动为每个参与者生成轨迹。此外,交通参与者必须在执行其动作时同时到达碰撞位置。为此,SoVAR引入了碰撞区域CA,该区域由系统自动计算。由于篇幅限制,我们选择了一个示例来展示这些约束。如图3所示,碰撞发生在一个受管控的交叉路口。观察到蓝色车辆在车道l3上向北行驶,并在圆形绿灯下左转,而绿色车辆在车道l5上向南行驶。在蓝色车辆左转时,它的前部与绿色车辆的前部发生碰撞。冲击车辆遵循车道并执行左转,而受害车辆遵循车道并执行穿越动作。蓝色车辆可能转入车道l7或车道l8。SoVAR计算了绿色车辆和蓝色车辆之间可驾驶区域的交集,确定了碰撞区域CA。

参与者基本驾驶动作的约束

为了生成使参与者执行基本驾驶动作的轨迹,我们从三个方面为每个行为定义了一组轨迹规范:1) 初始位置和目的地,2) 执行动作的位置,以及3) 航路点的速度。

  • 组1:初始位置和目的地的约束

组1包含四个约束。公式1限制从到的行驶方向不得与车道的方向相反。计算公式:

其中,𝑙𝑒𝑛 是车道 𝑙 的入口点,𝑙𝑒𝑥 是出口点,这些都是在解析地图后已知的。当 𝑓𝑑 为真时,保证航路点 𝑤𝑗 在 𝑤𝑖 前方,且方向与车道 𝑙 的方向一致。公式2限制了"跟随车道"行为的开始和结束位置。和 在同一车道 𝑙𝑚 的道路 𝑅𝑖 上。公式3和4分别限制了左转和车辆穿越行为的初始和结束位置:

公式3应用于避免碰撞的驾驶行为,和 分别位于不同道路的车道上;
公式4应用于导致碰撞的行为,的位置在碰撞区域(𝐶𝐴)内。

  • 组2:执行行为时的位置约束

在这一组中,公式5限制了在左转行为执行期间的航路点位置,确保当前航路点位于连接两个相邻航路点的直线右侧。如图4所示, 表示由第𝑖个航点和第(𝑖+1)个航点的位置组成的方向向量。向量 表示由第𝑖个航点和第(𝑖+2)个航点位置形成的右法向量。公式6和7分别对左转行为和车辆穿越行为所访问道路之间的关系施加了限制。𝑘1 和 𝑘2 代表了道路𝑙𝑚 和 𝑙𝑛 的斜率。公式6和7分别对左转和车辆穿越行为进入的道路之间的位置关系施加限制,𝑘1 和 𝑘2 分别表示道路 𝑙𝑚 和 𝑙𝑛 的斜率。

  • 组3:航路点速度约束

最后,第3组限制了所有中间航路点的速度。具体来说,公式8限制了从 到 的航路点速度,公式9限制了驾驶过程中的速度上限。𝐷𝑋 (𝑖, 𝑗) 和 𝐷𝑌 (𝑖, 𝑗) 分别计算车辆从第个航点到第个航点在 X 轴和 Y 轴上的移动距离。

其中,𝑣𝑐.𝑥 是第 个航点沿 X 轴的速度,𝑣𝑐.𝑦 是沿 Y 轴的速度,𝑠𝑝𝑑𝑖 是第 个航点的速度, 是道路的速度限制。

多个参与者驾驶行为之间的约束

为了确保碰撞车辆和受害车辆执行一系列驾驶行为并同时到达事故现场,我们从两个方面定义了轨迹规范:1) 多个基本驾驶行为的轨迹组合,2) 车辆碰撞的约束。

  • 第 4 组:多个基本驾驶行为的轨迹组合约束

第 4 组约束了当多个行为相互连接时航点之间的关系。公式 10 和 11 分别代表了碰撞车辆和受害车辆的多个行为的轨迹约束。每个交通参与者当前行为的终点位置应与其下一个驾驶行为的起点位置对齐。碰撞车辆执行了 𝑛 个行为,而受害车辆在碰撞前执行了 𝑚 个行为。

  • 第 5 组:车辆碰撞的约束

第 5 组的约束确保碰撞信息与报告描述一致。公式 12 限制事故碰撞的发生地点为报告中指定的位置,而公式 13 描述了碰撞车辆和受害车辆同时到达碰撞位置。

模拟与测试生成

SoVAR不限于特定模拟器;它需要一个包含精确软体物理和真实3D纹理的模拟环境,这些纹理代表道路、车辆、天气和照明条件。此外,模拟器必须能够通过外部软件控制虚拟车辆,这对于进行自动驾驶模拟测试是基本要求。模拟器接收由轨迹规划模块生成的航路点以及由LLM提取的环境条件信息,执行模拟以重建事故报告中详细描述的碰撞。

测试生成

SoVAR生成的模拟场景包含重建事故报告中描述的车祸所需的基本信息。然而,这些模拟碰撞并不符合测试用例的规范,因为它们缺乏适当的测试判定标准,且不允许外部干扰。为了解决这个问题,SoVAR通过系统级测试用例派生输出,使得自动驾驶系统(ADS)能够选择不同于事故报告中描述的轨迹以避免碰撞。在基于报告生成的模拟场景中,SoVAR通过指定每个交通参与者为自驾车生成多个测试场景。在这些运行过程中,涉及自驾车的碰撞会被记录下来。

实验结果

表3展示了各种方法从事故报告中提取信息的准确率。SoVAR在环境条件层、道路网络层和动态对象层的提取准确率分别为85.33%、96.44%和87.13%。与SoVAR_N和AC3R方法相比,使用带有语言模式提示的GPT-4可以显著提高所有属性信息提取的准确性。具体而言,SoVAR方法的平均准确率比SoVAR_N和AC3R方法分别高出7.3%和31.9%。我们观察到SoVAR和AC3R在提取诸如速度限制(SpeedLimit)等简单信息时具有较高的准确性。然而,在提取具有上下文依赖性的复杂驾驶动作时,它们的效果相对较差。

表4显示了在不同道路类型下成功重建的场景数量和SRR指标。发生在交叉路口、T字路和直道上的事故场景的平均场景重建率分别为93.3%、72.7%和82.0%。由于实验中选择的道路长度和宽度与AC3R不一致,AC3R的实验发现,没有一个场景可以成功重建用于模拟测试。为了进一步分析重建结果,表5展示了场景重建过程中的故障定位分析。由SoVAR生成的无法完全重建的场景比例为17.33%。其中大部分场景因碰撞类型的模拟错误而失败,占所有重建失败的80.8%。由于AC3R在运行过程中没有根据车道宽度和长度生成自适应航路点,且缺乏将航路点映射到地图的机制,因此我们没有对AC3R的车辆越线情况进行统计,正如表5所示。可以看出,与AC3R相比,SoVAR的平均事故重建失败率低60%。这些结果表明,与AC3R相比,SoVAR更具生成通用化场景的能力。

表6展示了使用不同方法生成的测试场景中,由自动驾驶汽车引发的碰撞数量。表中显示,SoVAR检测到的各种道路类型下的碰撞数量都超过了随机方法的检测结果。总体而言,SoVAR检测到的碰撞总数是随机方法的六倍以上。在我们的综合分析中,我们确定并总结了Apollo ADS中的5种安全违规类型。由于篇幅限制,我们展示了四种安全违规场景类型,如图5所示。每组安全违规类型的左侧子图描述了NPC和自动驾驶汽车在初始场景中的位置和行驶路线,右侧子图是碰撞发生时场景的示意图。其他类型的安全违规说明可以在我们提供的开源存储库中找到。从图5中展示的安全违规类型可以看出,各种常规NPC行为(如车辆穿越、左转、驶入道路)都可能导致配备Apollo ADS的车辆发生碰撞。此外,如图6所示,我们总结了另外两种由不规则NPC行为引发的碰撞类型。

结论

本文的主要贡献总结如下:

  • 方法:提出了一种创新方法,自动从事故报告中重建事故场景并进行ADS测试。该方法通过设计语言模式提示来增强LLM准确提取文本信息的能力。然后,通过解决一组驾驶约束条件,生成符合期望道路结构的驾驶轨迹。
  • 工具:将该方法实现为自动化测试工具SoVAR。为了支持开放科学社区,我们已公开了源代码,并发布了导致ADS碰撞的场景。
  • 研究:利用SoVAR评估了工业级ADS百度Apollo并发现了致命碰撞。结果表明,与最先进的场景重建技术相比,我们的方法能够更准确地提取事故信息,并生成适应不同道路结构的通用化事故场景。此外,我们的方法可以用于ADS测试并识别出各种安全违规行为。
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号