使用自动编码器从自然驾驶数据中估计测试场景的独特性

2019-03-05 09:54:16·  来源:同济智能汽车研究所  作者:李老师  
 
编者按:利用自然驾驶数据搭建高级驾驶辅助系统仿真测试环境一直是研究重点,然而自然驾驶数据中包含许多类似的场景,本文使用自动编码器从自然驾驶数据中提取出
编者按:利用自然驾驶数据搭建高级驾驶辅助系统仿真测试环境一直是研究重点,然而自然驾驶数据中包含许多类似的场景,本文使用自动编码器从自然驾驶数据中提取出独特性高的场景(novel scenarios),从实验结果可知,该方法能够大幅减少测试集的冗余,从而节省大量仿真时间,对高级驾驶辅助系统测试的相关研究具有参考价值。
 
本文译自《2018 IEEE Intelligent Vehicles Symposium》,作者为Jacob Langner, Johannes Bach, Lennart Ries, Stefan Otten, Marc Holzäpfel, Eric Sax。
 
摘要:高级驾驶辅助系统(ADAS)利用传感器和高精度地图等信息源提供的多种输入信号,来完成轨迹规划和车辆动力学控制等任务。为了对待测系统进行充分验证,所有在现实中可能出现的场景都应该被测试。用于仿真的测试场景可以从自然驾驶数据中提取出来,然而自然驾驶数据中包含许多类似的场景,这些场景并未包含新的测试内容,却大大增加了测试工作量。本文中提出了一种测试场景自动选择算法,首先随机选择初始测试集,之后利用自动编码器来识别数据池内的独特性高的场景,之后这些场景被迭代地添加到初始测试集中, 最终得到规模小的关键测试集。最后在数千公里的驾驶数据集上对该方法进行了验证,结果证明该方法能够节省大量仿真时间。
 
1、引言
 
通过融合摄像头、雷达、高精度地图和V2X通信等多种渠道提供的信息,自动驾驶车辆能够实现对周围环境更深层次的理解,从而更好地与环境进行交互,但这同时也需要更复杂的功能和算法。对于越复杂的系统,其验证和确认(Verification and Validation, V&V)工作也越困难,需要耗费大量的资源和时间。为了减少这些成本,现有研究和应用中通常对系统进行解构,从不同的层级分别进行测试验证。其中,单元级和组件级的测试复杂性是可控的,但系统级别的V&V仍然是一个挑战。
 
系统级V&V常用的方法是在现实世界中进行测试,这种方法具有很高的真实性和有效性。然而在现实世界中进行测试十分昂贵,需要耗费大量资源,且测试环境和测试条件并不完全可控,测试可重复性低。为了克服以上局限,通常采用与基于仿真的测试相结合的方法。仿真测试成本更低,且实时性要求较低,测试条件更加可控。但是仿真测试必须在仿真环境中建立详细的模型,包括环境模型、车辆模型,驾驶员模型等,模型的精度和准确性将直接影响测试结果。
 
此外,为了使测试覆盖率满足要求,需要在大量不同的场景中进行测试。在仿真环境中手动搭建大量测试场景通常是不可行的,必须考虑派生测试场景。其中一种方法是借助统计模型生成测试场景,利用基于频率分布的知识生成真实的测试集;另一种方法是基于真实世界采集的驾驶数据,通过场景复现进行仿真测试。以上两种方法都存在测试数据冗余的问题,即存在相同或相似的场景,这大大增加了仿真时间。然而,识别整体数据池中的冗余测试数据非常困难,需要明确测试数据与待测系统的相关性,并且分析能提供新的测试内容的数据。基于以上问题,本文提出了一种利用自动编码器从自然驾驶数据池中自动筛选得到新的场景的方法,以最大限度地减少测试集中的冗余数据。
 
本文第2部分介绍了该方法的基本概念,第3部分为该方法的具体应用过程,第4部分对该方法进行了评估,第5部分为结论和展望。

2、基本概念
 
自动编码器是一种尽可能复现输入信号的神经网络算法,其隐含层可以视为是一个编码器和解码器,输入信号经过隐含层的编码和解码,使得输出层的输出结果与输入信号近似一致。在此过程中要求限制自动编码器隐含层中每层神经元的数量,使得自动编码器能够提取出输入信号的主要特征。自动编码器通常用于信息压缩,减少数据维度以及异常检测。
 
基于自然驾驶数据的仿真环境测试中,开发软件的每次迭代都在自然驾驶数据的帮助下进行测试和调试。完整的驾驶数据池提供了各种不同的驾驶场景,在本文中,场景用被测车辆与车辆所处环境的交互数据表示,并将其作为自动编码器的输入。仿真过程中,使用所有可用的自然驾驶数据可获得最佳的测试覆盖率,但为了缩短迭代时间,必须减小驾驶数据池,以获得一个规模较小的关键测试集,以提供最大可能的测试覆盖率,同时尽可能减少测试工作量。
 
一次性将一段完整的驾驶数据记录输入到自动编码器,要求有大量的输入神经元或非常少的采样点,因此需要将完整的驾驶数据记录分割成为若干段序列。每段序列的长度不会影响自动编码器复现给定输入信号的能力,所以序列长度是一个可设计的参数,但采样点数量和序列长度必须能表示相关的道路特征,如道路曲率和坡度等。每个选定输入信号的序列包含相同数量的采样点,将采样点存入向量中,并输入自动编码器,之后自动编码器对输入向量进行压缩和复现,最后通过对比输出向量与输入向量,得到复现误差。本文使用均方根误差(RMSE)来计算复现误差 ,RMSE越高,自动编码器对该输入向量的复现效果越差,该序列越独特。计算该段驾驶数据记录中所有序列的均方根误差的均值(平均复现误差),即为该驾驶数据记录的独特性得分。
                     
图1描述了利用自动编码器选择测试集的步骤。第一步,使用训练数据A(初始测试集)训练自动编码器,当自动编码器能够足够好地复现训练数据时,训练结束。第二步,将训练好的自动编码器应用于驾驶数据池B中剩余的驾驶数据记录。对于B中每段驾驶数据记录,平均复现误差越大表明复现效果越差——也即该段驾驶数据记录独特性更高。第三步,将复现误差最大的驾驶数据记录添加到初始测试集中,之后使用新的测试集重新训练自动编码器。如此迭代,直到测试集大小或数据池中剩余驾驶数据记录的复现质量达到要求。
图1 利用自动编码器选择测试集
 
由于独特性评估很大程度上取决于初始测试集,因此将整个过程循环执行多次,每次随机选择不同的初始测试集。计算每次将驾驶数据记录添加到测试集时的独特性得分,在处理完所有循环后,计算每段驾驶数据记录的平均分数。分数越高,表明驾驶数据记录越独特。
由于驾驶数据记录具有不同的长度,而每段驾驶数据记录的独特性是根据该驾驶数据记录中所有序列的复现误差取平均值获得的,因此一个记录中少数独特性高的序列会被许多独特性低的序列模糊化、平均化,导致该驾驶数据记录整体独特性分数偏低。
 
对此首先用最大复现误差代替平均复现误差,即以所有序列复现误差的最大值作为该驾驶数据记录的独特性分数;为了进一步优化,放弃完整驾驶数据记录的概念,将针对驾驶数据记录的独特性评价调整为对序列的独特性评价。此外引入轨迹的概念,一条轨迹由至少一段连续序列组成,每段序列是驾驶数据记录中300米行驶距离的一段数据,且与前后序列相互独立,最后将独特性高的单个序列进行组合,生成更长的测试轨迹。这样独特性得分与驾驶数据记录的长度无关,并且正如以下的评价步骤所示,测试集中的冗余进一步减少。

3、具体应用过程
 
该方法被应用于预测巡航控制系统(Predictive Cruise Control,PCC)。该系统的功能是预测最佳行驶轨迹并控制当前场景下的车速。与该系统相关的信号包括前方车辆和道路拓扑结构(如道路曲率以及道路限速)。对于前方车辆相关数据,可将其简化为一个二维信号,表征前方是否存在车辆;对于道路特征相关数据,则选择道路曲率、道路坡度、车速限制以及道路类型等信号来表征。由于必须使用与被测系统相关的信号创建测试集,因此需要将这些信号相关数据作为自动编码器的输入。
 
第一步,将整个数据池中选定信号的相关数据训练自动编码器,用以确定该方法的有效性并优化参数设置。参数包括神经网络参数(激活函数类型、隐藏层数量、内部神经元数量、学习速率等)和数据参数(采样点数量、采样点距离等)。最终选择的神经网络参数为:Sigmoid激活函数、三层隐藏层、内部75个神经元的网络拓扑结构,学习速率设置为η=0.001。对于数据参数,需要特别注意的是序列的长度。序列长度太短,则无法反映道路特征;序列过长,则样本中的特征区域可能会被相关区域前面和后面的正常区域模糊。分割序列时还必须考虑采样点的数量,因为存在对道路特征欠采样的风险,如急转弯等。序列长度300米,每隔2米采样一次被证明能较好地反映相关道路特征。
 
第二步,将完整数据池的一小部分用于训练阶段,当训练数据的复现误差足够小即停止训练。之后将训练好的自动编码器应用于其余驾驶数据记录,并计算每段驾驶数据记录的平均复现误差和最大复现误差,由于最大复现误差对于驾驶数据记录的独特性更有意义,并且也与驾驶数据记录的长度无关,因此将具有最大复现误差的固定数量的驾驶数据记录移动到训练集中。在这之后重新训练网络,并开始下一次迭代,直到满足退出条件,则算法停止并返回最终的测试集。
 
4、结果和评估
 
图2展示了基于完整驾驶数据记录的方法,使用最大复现误差选择出的独特性最高的四个驾驶数据记录,其中黄色和红色表示具有高独特性的序列,每个驾驶数据记录至少有一个红色的高独特性序列。对于某些序列,可以通过查看地图来理解序列具有高独特性的原因(例如在急转弯或特殊曲线处)。然而,某些序列是直道,查看其他输入信号有助于说明它们有高独特性的原因,例如图2(b)中的Duhamel道路已不在城内,但仍限速50km/h,自动编码器很难复现这种不常见的参数组合。
图2 独特性分数最高的四个驾驶数据记录
 
如上所述,在评估驾驶数据记录的独特性方面,最大复现误差比平均复现误差更合适。当使用平均复现误差时,较长驾驶数据记录中的独特序列的特性会变得模糊。然而,最大复现误差仅能表示驾驶数据记录中至少包含一段独特序列,并不能反映每段驾驶数据记录中有多少独特序列。本文分析了具有较大的最大复现误差的驾驶数据记录,在每个驾驶数据记录中都能找到高独特性的序列。但是,使用该方法在最后得到的测试集中,每个驾驶数据记录仍有很多相似的序列。因此,后续步骤是是将整个数据池切割成等长的测试序列并独立地评估它们的独特性。
 
首先,将数据中的每段驾驶数据记录分割成若干个序列,然后随机选择这些序列进行初始训练,然后使用独立序列而非完整的驾驶数据记录来训练自动编码器。 
 
图3显示了某段驾驶数据记录中的每个序列的最终独特性得分。驾驶数据记录中最长的部分是冗余的,这些数据在历次迭代过程中都未被选中,因此独特性得分为零,但是也有一些独特性较高的序列。与基于完整驾驶数据记录的方法不同,使用基于序列的方法只选择这几段独特性高的序列,所有冗余数据都不会添加到测试集中。最后将连续选择的序列自动组合为轨迹。特殊曲线得到高独特性得分似乎是合理的。
 
这里存在机器学习方面的问题,即作者无法证明计算出的独特性分数是合理的,也无法证明测试数据中其他类似的序列以及每个独特性高的序列都被自动编码器检测到。然而作者分析了所有示例序列的独特性分数,结果表明无论该分数是合理的。因此,这种全自动方法可能不会生成完美的测试集,但能极大减少冗余并从测试数据中选择出独特性高的序列。
图3 每段序列的独特性得分
结果表明,基于完整驾驶数据记录以及基于序列的独特性评价方法都可以大大减少测试集中的冗余。选择完整驾驶数据记录时,最终测试集中要模拟的距离减少到69%。基于序列的方法时,减少到19%。 

5、结论和展望
 
本文提出了一种利用自动编码器减少测试集冗余的自动化方法,从实验结果可知,输出结果的复现误差可以被解释为序列的独特性表征,即表示自动编码器对该序列的了解程度。目前这种方法还不能得到理论性证明,但是本文的示例表明了这种方法的有效性。另外,本文比较了基于完整驾驶数据记录和基于序列两种评价方法的应用效果。未来工作中,将尝试对序列的独特性分数进行解释,此外也会将其他信号添加到自动编码器输入中,以进一步提高独特性等级。 
 
联系人:李老师 邮箱:11666104@tongji.edu.cn  
分享到:
 
反对 0 举报 0 收藏 0 评论 0
沪ICP备11026620号