本文经自动驾驶之心公众号授权转载,转载请联系出处。
写在前面&笔者的个人理解
本文提出了一种用于测试自动驾驶(AD)软件系统的多功能基于NeRF的仿真器,其设计重点是传感器真实闭环评估和安全关键场景的创建。仿真器从真实世界的驾驶传感器数据序列中学习,并能够重新配置和渲染新颖的场景。在这项工作中,使用本文提出的仿真器来测试AD模型对安全关键场景的响应。评估表明,尽管最先进的端到端规划器在开环环境中的标称驾驶场景中表现出色,但在闭环环境中导航关键场景时,他们表现出了不可忽略的缺陷。这突出了端到端规划器在安全性和现实可用性方面的进步需求。通过将我们的仿真器和场景作为一个易于运行的评估套件公开发布,并邀请社区在受控但高度可配置且具有挑战性的传感器现实环境中探索、完善和验证他们的端到端模型。
开源链接:https://github.com/atonderski/neuro-ncap
总结来说,本文的主要贡献如下:
- 发布了一个开源框架,用于自动驾驶的真实感闭环仿真。
- 受行业标准EuroNCAP的启发,构建了无法在现实世界中安全收集的安全关键场景。
- 使用仿真器和我们构建的场景,设计了一个新的评估协议,该协议侧重于碰撞而不是位移度量。
- 本文发现尽管准确地感知了环境,但两个SoTA端到端规划器在安全关键场景中严重失败,这值得社区进一步探索。
相关工作回顾
端到端驾驶模型:传统上,自动驾驶任务被划分为不同的模块,例如感知、预测和规划,这些模块是单独构建的。胡等人认为,这种划分有很多缺点:跨模块的信息丢失、错误积累和特征错位。姜等人强调,规划模块可能需要访问手工制作的界面中不存在的传感器数据的语义信息。这两项工作继续支持端到端规划。Pomerlau等人的开创性工作提出了这样一种规划器,其中训练单个神经网络将传感器输入映射到输出轨迹。几十年的神经网络进步激发了人们对端到端规划的新兴趣。然而,这些规划者的黑匣子性质使他们难以优化,其结果也难以解释。胡等人和姜等人提出了两种具有中间输出的端到端神经网络规划器,对应于模块化方法。他们的规划者被划分为多个模块,但模块接口是学习的,由深度特征向量组成。
端到端规划器的开环评估:Pomerleau等人通过让其驾驶真实世界的测试车辆来评估他们的驾驶模型。这样的设置使得大规模测试成本高昂,并且结果可能难以再现。最近在端到端规划方面的工作改为在开环中进行评估,在该开环中,模型根据记录的传感器数据预测计划。预测的计划从未被执行,相反,行动被固定在记录的内容上。这种设置也被用于目标级规划工作,该工作假设了完美的感知,并将静态环境的地图和动态对象的轨迹输入到模型中。这种开环评估构成了评估与现实部署之间的差距。此外,性能通常被测量为记录中预测的计划和车辆驾驶的轨迹之间的距离。虽然零的误差对应于人类水平的驾驶,但误差越低越好并不一定是真的。这可以通过考虑两个不同轨迹相同好的场景来实现。Codevilla等人对这些问题进行了研究,发现开环评估与实际驾驶质量不一定相关。Dauner等人得出了类似的结论。
闭环评估和仿真:考虑到上述开环评估问题,闭环仿真变得很有吸引力。已经提出了几种对象级仿真器。然而,这些仿真器不生成传感器数据,这使得无法在闭环中测试端到端规划器。已经提出了许多手工制作的图形仿真器。这种仿真器面临的挑战有两个:很难创建逼真的图像,也很难创建捕捉真实世界多样性的图形资产。对世界模型的研究表明,场景的未来——例如雅达利游戏——可以在潜在空间中预测,并且潜在空间中的向量可以解码为传感器输入。胡等利用大规模的真实世界汽车数据集建立了一个世界模型。Amini等人提出了VISTA,其中可以通过预测深度取消投影最近的图像并重新投影,在局部轨迹周围合成新的视图。杨等人提出使用神经辐射场(NeRF)来创建场景的真实感传感器输入。该方法随后由Tonderski等人进行了改进。具有更准确的传感器建模和更高的渲染质量,特别是对于此处考虑的360度设置。
新车评估计划:新车评估计划(NCAP)由美国交通部国家公路安全管理局于1979年推出,旨在为消费者提供有关汽车相对安全潜力的信息。NCAP对车辆进行了碰撞测试,并根据严重受伤的概率对车辆进行评分。1996年提出了一项类似的欧洲协议,即欧洲新车评估计划(Euro NCAP)。2009年,欧洲NCAP进行了全面改革,以纳入新兴防撞系统的测试。最初,这包括电子稳定控制和速度辅助系统,但后来扩展到包括其他系统,如自动紧急制动和自动紧急转向。在这项工作中,我们从欧洲NCAP自动防撞评估协议中获得了灵感。该协议提供了除非采取措施,否则将发生崩溃的场景。为了获得满分,车辆需要刹车或转向以避免事故发生。如果冲击速度充分降低,则会获得部分分数。
方法详解
闭环仿真
我们的闭环仿真重复执行四个步骤。首先,在给定ego车辆的状态和相机校准的情况下,渲染高质量的相机输入。渲染器是根据驾驶车辆的日志构建的。其次,在给定渲染的相机输入和自车状态的情况下,端到端规划器预测未来自车轨迹。第三,控制器将计划轨迹转换为一组控制输入。第四,在给定控制输入的情况下,车辆模型在时间上向前传播自我状态。此过程如图2所示。接下来,我们详细介绍四个步骤中的每一个。
神经渲染器:为了仿真新颖的传感器数据,我们采用了神经渲染器。NeRF从收集的真实世界数据的日志中学习3D环境的隐含表示。一旦经过训练,NeRF就可以从所述场景中渲染传感器逼真的新颖视图。最近的进步增加了通过更改场景中动态对象的相应三维边界框来编辑动态对象的能力。具体来说,参与者可以被移除、添加或设置为遵循新的轨迹,在我们的案例中,这使得能够创建安全关键场景。例如,为了仿真一种罕见但关键的安全场景,可以将原本在相邻车道上行驶的车辆定位为静止,并与自身车辆位于同一车道上。这种新颖的情况需要自车刹车或执行精确的超车动作。
有两件事需要注意。首先,最近提出的NeuRAD还支持激光雷达数据的渲染。然而,由于最先进的端到端规划者只消耗相机数据,我们在这项工作中只关注相机数据。其次,正如我们在实验中所示,与真实数据相比,现代NeRF引入的领域差距足够小,端到端计划者的感知部分仍能以高性能运行。然而,我们预计随着神经渲染的未来发展,这一差距将进一步缩小。
AD模型:最近关于端到端规划的工作描述了一个消耗(i)原始传感器数据的系统;(ii)自车状态;以及(iii)预测计划轨迹的高级计划。计划的轨迹包括在某个频率和某个时间范围的路点。需要注意的是,虽然我们的主要目标是分析最先进的端到端规划器,但该模块可以用任何类型的规划器取代,例如模块化检测器-跟踪器-规划器管道。
控制器:为了应用车辆模型,需要将路点转换为一系列控制信号,对应于一系列转向角(δ)和加速度(a)命令。继Caesar等人之后,我们用线性二次型调节器(LQR)实现了这一点。请注意,虽然我们只分析输出路点的规划器,但规划器可以直接输出一系列控制信号。
车辆模型:给定一组由计划轨迹产生的控制信号,车辆状态通过时间传播。为此,我们遵循先前的闭环仿真器,并采用离散版本的运动自行车模型。它可以正式地描述为:
评估
与常见的评估实践(即大规模数据集的平均性能)相反,我们将评估重点放在一小部分精心设计的安全关键场景上。这些场景经过精心设计,任何无法成功处理所有场景的模型都应被视为不安全。我们从行业标准的欧洲NCAP测试中获得了灵感(见第2节),并定义了三种类型的场景,每种场景的特征都是我们即将碰撞的参与者的行为:静止、正面和侧面。根据欧洲NCAP命名法,我们将此参与者称为目标参与者。其目的是控制自车以避免与目标行为者发生碰撞或至少降低碰撞速度。
对于每种场景类型,我们都会创建多个场景。每个场景都基于从真实世界中大约20秒的驾驶中收集的数据。自车和目标参与者状态被初始化,这样,如果保持当前速度和转向角,碰撞将在未来约4秒发生。所有非平稳演员都被从场景中移除,我们随机选择其中一个作为目标演员,考虑到演员是否已经被足够近的观察到,并且在必要的角度下,以产生逼真的渲染。由于我们的渲染器仅限于僵硬的参与者,因此我们将行人排除在该选择之外。最后,我们在特定场景的间隔内随机抖动目标演员的位置、旋转和速度。在评估过程中,我们将每个场景运行大量的运行(使用固定的随机种子),并计算平均结果。接下来,我们将描述每种类型场景的特征。
静止:这是一种相对简单的场景,其中一个静止的目标演员被放置在自车车道上。目标车辆可以任意旋转放置,但在整个场景中都将保持静止。这意味着自车可以进行剧烈的刹车或转向操作以避免碰撞。见图3a。
正面:正面场景包括一个目标演员,他正朝相反的方向行驶,并在与自车的碰撞路径上漂移到自我车道上。因此,ego车辆不能通过断裂来避免碰撞,只会降低碰撞速度。为了完全避免碰撞,自车必须执行转向操作。见图3b。
侧面:侧面碰撞场景的特点是目标演员从垂直方向穿过我们的车道。如果自车的当前速度保持不变,就会发生侧面碰撞。自车可以通过为迎面而来的目标行为者刹车,或者在超速经过目标行为者时进行轻微的转向操纵来避免碰撞。见图3c。
NeuroNCAP评分:对于每个场景,都会计算一个评分。只有完全避免碰撞才能获得满分。成功降低冲击速度可获得部分分数。本着五星级欧洲NCAP评级系统的精神,我们将NeuroNCAP评分(NNS)计算为:
实验
数据集:虽然有许多针对自动驾驶的数据集,但nuScenes在端到端规划方面得到了最广泛的适应。它以具有高度互动场景的城市环境为特色,适用于我们的安全关键场景生成。由于其广泛的适应性,它还允许我们使用我们评估的模型的官方实现和网络权重。NuScenes分为1000个序列,其中150个保留用于验证。从这150个序列中,我们选择了14个不同的序列——根据场景中特工的行为,这些序列被认为是合适的——作为我们安全关键场景的基础。
场景:每个场景都是手工设计的,考虑哪些参与者适合给定的序列、最合理的碰撞轨迹,以及定义不同类型随机化的允许范围。在评估过程中,我们将每个场景运行100次(使用固定的随机种子),并对结果进行平均。并不是所有的序列都可以用于所有类型的场景,例如,我们无法仿真一条直线路上的真实侧面碰撞。因此,我们为每种场景类型选择合适的序列。关于每个场景的更多细节和定性示例,我们参考补充材料。
神经渲染器:作为我们的渲染器,我们选择使用NeuRAD,这是一款专门为自动驾驶开发的SotA神经渲染器,经验证可与nuScenes很好地配合使用。由于我们希望最大限度地提高重建质量,我们使用更大的配置(NeuRAD-L),并使用默认的超参数训练100k步。由于nuScenes中的姿态信息仅限于鸟瞰平面,我们采用姿态优化来恢复丢失的信息。最后,我们采用了沿对称轴翻转演员的方式,以实现从所有视点对演员的逼真渲染。
AD模型:根据我们提出的评估协议,我们评估了目前的两种SotA端到端驱动模型,即UniAD和VAD。在这两种情况下,我们都使用了作者提供的预先训练的权重,这些权重在同一数据集上训练,而不会对所述模型的配置进行任何更改。这两种型号都消耗360°摄像头输入,以及can总线信号和高级命令:右、左或直,并在未来3秒内输出一系列未来路线点。虽然在我们的场景中,这比碰撞的初始时间(TTC)更短,但这不是一个问题,因为规避机动可以而且应该在最终航路点与当前参与者位置相交之前开始。此外,我们的场景设计得相当宽松,因此TTC<3s的计划仍然可以成功避免碰撞。
这两个模型之间的一个主要区别是,UniAD将防撞优化后处理步骤应用于它们的预测轨迹。使用具有基于预测占用率和未优化输出轨迹的成本函数的经典求解器来执行优化。当在开环中评估时,这种优化被证明可以显著降低碰撞率,我们现在可以在更有趣的闭环设置中研究它。为了实现更直接的可比分析,我们对VAD实现了相同的防撞优化。然而,由于VAD不能直接预测未来的占用,我们将其预测的未来对象光栅化,并将其用作未来的占用。请注意,这种方法可能高估了占用率,因为所有未来模式都被视为具有同等可能性。
为了进行比较,我们基于UniAD/VAD的感知输出实现了一种天真的基线方法。规划逻辑只是一个等速模型,除非我们在自车前方的走廊中观察到物体,在这种情况下,我们会执行制动操作。走廊被定义为横向±2米,纵向范围从0到2维戈米,即如果TTC<2s且前方有物体,我们会刹车。
实验结果
我们使用图4中每种场景类型的渲染前置摄像头图像,以及计划轨迹的重叠投影来增强定量分析。图4a描绘了一个成功的回避动作,同时也突出了我们呈现复杂实体(如摩托车手)的能力。然而,如果没有后期处理,规划者似乎容易忽视安全关键事件,如图4b所示。
限制
我们看到以下限制。首先,神经渲染器在场景和场景中受到限制,例如,没有雨,它能够准确渲染。此外,自车轨迹的大偏差和非常近的物体会导致视觉伪影(见图4)。其次,我们采用了一个简化的车辆模型,它不建模,例如延迟、摩擦或悬架。此外,我们不考虑路面方面,如颠簸、坑洞、砾石等。第三,我们对所有车型都采用了单一控制器,即使它们是紧密耦合的。我们的评估协议允许提交直接输出控制信号的AD模型。第四,神经渲染器无法处理可变形对象,例如行人。我们希望神经渲染的进一步进步将解除这一限制,并实现一套新的安全关键场景,重点关注弱势道路使用者。第五,目标行动者遵循预定的轨迹,而不动态地对自车做出反应。虽然这遵循了EuroNCAP的设置,但我们认为,未来有多个参与者的场景将需要反应行为。
结论
总之,我们的仿真环境提供了一种新的方法来评估自动驾驶模型的安全性,利用真实世界的传感器数据和受欧洲NCAP启发的安全协议。通过NeuroNCAP框架,包括静止、正面和侧面碰撞场景,我们暴露了当前SotA规划者的重大漏洞。这些发现不仅强调了在端到端规划者的安全性方面取得进展的迫切需要,而且为未来的研究提供了有希望的途径。通过向更广泛的研究界公开我们的评估套件,我们的目标是促进更安全的自动驾驶方面的进展。展望未来,我们预计将开发该套件以应对更广泛的场景,集成更精细的车辆模型,并采用先进的神经渲染技术,从而为安全评估设定新的基准。