探索自动驾驶系统的安全边界:ScenarioFuzz的创新模糊测试方法

Dance of the ADS: Orchestrating Failures through Historically-Informed Scenario Fuzzing

摘要

随着自动驾驶系统(ADS)向更高级别的自主性发展,其安全验证变得越来越复杂。本文介绍了ScenarioFuzz,一种创新的基于场景的模糊测试方法,旨在在不依赖预定义场景的情况下发现ADS中的漏洞。通过利用地图道路网络数据,如OPENDRIVE,提取关键数据构建场景种子库,结合专门的变异器和变异技术,以及图神经网络模型,预测并筛选出高风险场景种子,优化模糊测试过程。此外,提出了一种自监督的碰撞轨迹聚类方法,有助于识别和总结54种易导致ADS故障的高风险场景类别。实验结果表明,与现有方法相比,ScenarioFuzz在发现错误场景方面提高了效率,减少了时间成本,增加了单位时间内发现的错误场景数量。

原理

ScenarioFuzz的核心原理是通过历史数据驱动的场景模糊测试方法,自动生成和发现自动驾驶系统中的错误场景。其工作原理主要包括以下几个关键步骤:

  1. 场景种子库构建:利用地图爬虫技术从地图道路网络中提取数据,构建场景种子库,为模糊测试提供基础。
  2. 场景种子变异:设计多种变异器,如天气变异器、对象变异器等,对场景种子进行变异,生成多样化的测试场景。
  3. 场景评估模型:采用图神经网络模型对变异后的场景种子进行评估,预测其成为错误场景的可能性,并筛选出高风险的场景种子进行测试。
  4. 错误场景检测:在模拟器中执行筛选出的场景种子,实时监测ADS的行为,识别错误场景并记录。 通过这些步骤,ScenarioFuzz能够有效地发现ADS中的潜在漏洞,提高系统的安全性和可靠性。

流程

ScenarioFuzz的工作流程可以概括为以下几个步骤:

  1. 初始化:从场景种子库中随机选择一个种子作为初始测试场景。
  2. 变异:使用变异器对初始种子进行变异,生成多个新的测试场景。
  3. 筛选:利用场景评估模型对变异后的场景进行筛选,选择预测为高风险的场景进行测试。
  4. 执行与监测:在模拟器中执行选定的场景,实时监测ADS的行为,记录错误场景。
  5. 反馈与迭代:根据测试结果调整变异策略和筛选模型,迭代优化测试过程。 具体的工作流程图和算法细节可以在论文的第3节中找到。

应用

ScenarioFuzz的应用前景广泛,主要体现在以下几个方面:

  1. 自动驾驶系统测试:作为自动驾驶系统安全验证的重要工具,帮助发现系统中的潜在漏洞,提高系统的安全性和可靠性。
  2. 智能交通系统:应用于智能交通系统的测试和优化,提升交通系统的整体效率和安全性。
  3. 法规制定与标准制定:为自动驾驶相关的法规和标准制定提供数据支持和测试依据。 随着自动驾驶技术的不断发展,ScenarioFuzz将在自动驾驶系统的测试和验证中发挥越来越重要的作用。