发明内容
为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
为了解决相关技术中存在的问题,本公开实施例提供了自动驾驶测试数据生成方法及系统、电子设备、存储介质,用以解决现有技术中的通过自然驾驶样本分布而生成危险场景数据导致数量不足的问题。
在一些实施例中,提供了一种自动驾驶测试数据生成方法,方法包括:
S100,通过遗传算法,计算出最危险场景数据;
S200,将最危险场景数据作为暴力搜索算法的起始场景数据,通过暴力搜索算法,获取场景数据,作为危险场景测试数据集。
优选地,通过遗传算法,计算出最危险场景数据,包括:
S101,确定遗传算法的搜索空间,定义参数边界作为场景数据边界;
S102,初始化种群中的个体基因数据;
S103,对种群的个体基因数据进行解码得到场景数据;
S104,计算场景数据的TTC指标;
S105,对场景数据进行编码,转化为个体基因数据;
S106,从种群中选择父本;
S107,通过父代生成子代;
S108,判断是否达到最大迭代次数:
若达到最大迭代次数,继续;若没达到,则重新执行对种群的个体基因数据进行解码得到场景数据;
S109,选择适应度最高的个体基因进行解码,得到最危险场景数据;
优选地,所述搜索空间的约束矩阵为:
其中,
为最小的相对速度、
为最小的相对速度、
为最小的相对距离和
为最大的相对距离。
优选地,TTC指标计算为:
其中,
表示相对距离,
表示相对速度,k表示仿真步长。
优选地,从种群中选择父本,包括:通过轮盘赌选择部分个体作为父代。
优选地,将最危险场景数据作为暴力搜索算法的起始场景数据,通过暴力搜索算法,获取场景数据,作为危险场景测试数据集,包括:
S201,以最危险场景数据的网格作为暴力搜索的起始场景;
S202,对起始场景顺次进行一次横向场景搜索,获得一个横向场景;
S203,判断所述横向场景是否为危险,若是,则继续;若否,则重新执行S202;
S204,将所述横向场景作为危险横向场景,并加入危险场景测试数据集
S205,对危险横向场景进行一次纵向场景搜索,获得危险横向场景的纵向场景;
S206,判断危险横向场景的纵向场景是否危险,若是,则将危险横向场景的纵向场景作为起始场景,重新执行S202;若否,则继续;
S207,重复执行多次S202至S206直至搜索不到危险纵向场景。
优选地,所述方法中判断场景是否为危险,是通过计算场景TTC指标来判断。
在一些实施例中,公开了一种系统,包括:
遗传算法模块,被配置为通过遗传算法,计算出最危险场景数据;
暴力搜索模块,被配置为将最危险场景数据作为暴力搜索算法的起始场景数据,通过暴力搜索算法,获取场景数据,作为危险场景测试数据集。
在一些实施例中,公开了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,执行如上述的自动驾驶测试数据生成方法。
在一些实施例中,公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行如上述的自动驾驶测试数据生成方法。
本公开实施例提供的一种自动驾驶测试数据生成方法及系统、电子设备、存储介质,可以实现以下技术效果:
本公开实施例通过遗传算法,计算出最危险场景数据;将最危险场景数据作为暴力搜索算法的起始场景数据,通过暴力搜索算法,获取场景数据,作为危险场景测试数据集。本公开实施例能够大量生成危险场景测试数据。
以上的总体描述和下文中的描述仅是示例性和解释性的,不用于限制本申请。
具体实施方式
为了能够更加详尽地了解本公开实施例的特点与技术内容,下面结合附图对本公开实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本公开实施例。在以下的技术描述中,为方便解释起见,通过多个细节以提供对所披露实施例的充分理解。然而,在没有这些细节的情况下,一个或多个实施例仍然可以实施。在其它情况下,为简化附图,熟知的结构和系统可以简化展示。
以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。其他实施方案可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施方案的部分和特征可以被包括在或替换其他实施方案的部分和特征。本发明的实施方案的范围包括权利要求书的整个范围,以及权利要求书的所有可获得的等同物。在本文中,各实施方案可以被单独地或总地用术语“发明”来表示,这仅仅是为了方便,并且如果事实上公开了超过一个的发明,不是要自动地限制该应用的范围为任何单个发明或发明构思。本文中,诸如第一和第二等之类的关系术语仅仅用于将一个实体或者操作与另一个实体或操作区分开来,而不要求或者暗示这些实体或操作之间存在任何实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法或者电子设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法或者电子设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法或者电子设备中还存在另外的相同要素。本文中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的方法、产品等而言,由于其与实施例公开的方法部分相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
近年来,基于场景的仿真测试是智能网联汽车与自动驾驶落地的重要一环。仿真测试是指基于计算机软件对智能网联汽车的驾驶环境和道路环境进行模拟,提供多传感器感知、动力学、气象等与背景环境的交互反馈;场景生成是仿真测试的重要组成部分,包括静态场景和动态场景,静态场景提供路网信息、感知需要的背景环境等信息,动态场景提供车辆与行人的行为动作交互。目前场景生成的方法有,基于自然驾驶数据的场景生成。
现有技术往往通过自然驾驶数据来获取样本分布,生成危险场景。自然驾驶样本分布下的危险场景数据数量少,这限制了数据驱动下场景生成的应用和效果,难以生成大量危险场景数据。
在实际应用中,现有技术中存在难以生成大量危险场景数据的问题。
为了解决相关技术中存在的问题,本公开实施例提供了自动驾驶测试数据生成方法及系统、电子设备、存储介质。本公开实施例通过对场景的简化和关键参数定义,减少重复场景测试和低效场景的测试如安全的场景。遗传算法迭代优化种群所需的数据较少,利用种群适应度的反馈数据,解决了自然驾驶数据的获取困难问题。危险场景的分布区域连通,可以采用暴力搜索的方式获取更多的危险场景。因此,本公开实施例能够高效生成大量危险场景数据,以便于用于驾驶场景的仿真测试。
其中,本公开实施例应用于电子设备,用于自动驾驶测试数据生成。
结合图1所示,本公开实施例提供一种自动驾驶测试数据生成方法,包括:
S100,电子设备通过遗传算法,计算出最危险场景数据。
S200,电子设备将最危险场景数据作为暴力搜索算法的起始场景数据,通过暴力搜索算法,获取场景数据,作为危险场景测试数据集。
应理解的是,遗传算法利用简易的优化算法,能够获得最好的优化结果。具体地,遗传算法可以通过对场景参数定义,利用优化种群的方式,找到种群适应度最好的数据,即可视作最危险场景数据。通过遗传算法,可以节约大量成本,快速找到一个极限的危险场景数据,即最危险场景数据。然后,利用所述最危险场景数据进行暴力搜索。危险场景的分布区域连通,因此,可以采用暴力搜索的方式获取更多的危险场景,将搜索到危险场景作为危险场景测试数据集。
需要说明的是,本公开实施例中的最危险场景数据进行暴力搜索,在实际应用中,暴力搜索的是最危险场景数据的网格。
进一步地,参见图2,为本公开实施例中的一种通过遗传算法计算出最危险场景数据的流程图。
通过遗传算法,计算出最危险场景数据,包括:
S101,确定遗传算法的搜索空间,定义参数边界作为场景数据边界;
S102,初始化种群中的个体基因数据;
S103,对种群的个体基因数据进行解码得到场景数据;
S104,计算场景数据的TTC指标,作为适应度函数;
S105,对场景数据进行编码,转化为个体基因数据;
S106,从种群中选择父本;
S107,通过父代生成子代;
S108,判断是否达到最大迭代次数:若达到最大迭代次数,继续;若没达到,则重新执行对种群的个体基因数据进行解码得到场景数据;
S109,选择适应度最高的个体基因进行解码,得到最危险场景数据。
需要说明的是,利用遗传算法,将场景参数转化为个体的基因参数,通过对基因参数的优化,最后将优化后的基因进行解码得到最危险场景数据。所述通过父代生成子代,为通过基因交叉和基因变异而生成子代。
车辆安全防撞时间模型的指标为碰撞点时间,简称TTC。TTC的定义是两车保持当前车速行驶直到发生碰撞所需的时间,用于判断危险碰撞的依据。将TTC作为目标函数,然后映射成适应度函数。通过父代间的交叉基因和基因变异得到新一代子代,子代不断迭代,评价适应度函数值与最优值不断上升,实现在场景边界内的寻找危险场景。达到最大迭代次数后,最终输出一个最危险场景数据。
一个具体的例子,可以是先确定遗传算法的搜索空间,然后定义种群P,个体数n,个体
;每个个体的场景参数x;最大迭代次数M,当前迭代次数m;随机初始化种群个体参数。
对于i=0,1,2,…, n;
;其中,Pi代表种群个体i;
当迭代次数小于阈值;计算个体适应度;
根据轮盘赌方法选择父代中的一部分进行交叉,各个体被选择到的概率:
极低概率选择少量父代进行变异;
最终得到新一代子代,返回执行对种群的个体基因数据进行解码得到场景数据,直至迭代次数达到阈值最大迭代次数M,选择适应度最高的个体基因进行解码,得到最危险场景数据。
进一步地,所述搜索空间的约束矩阵为:
其中,
为最小的相对速度、
为最小的相对速度、
为最小的相对距离和
为最大的相对距离。
应理解,
为最小的相对速度、
为最小的相对速度、
为最小的相对距离和
为最大的相对距离作为约束函数,是为了后续的TTC计算。
其中,
表示相对距离,
表示相对速度,k表示仿真步长。
进一步地,从种群中选择父本,包括:通过轮盘赌选择部分个体作为父代。
应理解,轮盘赌方法可以通过每个个体被选中的概率与其适应度函数值大小成正比,防止适应度数值较小的个体被直接淘汰。
进一步地,参见图3,为本公开实施例中的一种通过暴力搜索获取危险场景测试数据集的流程图。将最危险场景数据作为暴力搜索算法的起始场景数据,通过暴力搜索算法,获取场景数据,作为危险场景测试数据集,包括:
S201,以最危险场景数据的网格作为暴力搜索的起始场景;
S202,对起始场景顺次进行一次横向场景搜索,获得一个横向场景;
S203,判断所述横向场景是否为危险,若是,则继续;若否,则重新执行S202;
S204,将所述横向场景作为危险横向场景,并加入危险场景测试数据集
S205,对危险横向场景进行一次纵向场景搜索,获得危险横向场景的纵向场景;
S206,判断危险横向场景的纵向场景是否危险,若是,则将危险横向场景的纵向场景作为起始场景,重新执行S202;若否,则继续;
S207,重复执行多次S202至S206直至搜索不到危险纵向场景。
应理解,以最危险场景数据的网格为暴力搜索算法的起始场景。本公开实施例中所述的横向搜索和纵向搜索均为对场景的网格搜索。场景的网格可表示场景的数据。参见图4,为一种横向搜索和纵向搜索的示意图。
而场景的网格为二维,以第一维变量为横向,第二维变量为纵向。先进行横向搜索,若横向场景为危险的,再进行纵向搜索,将搜索到的场景记录至危险场景集。危险场景分布为连通区域型,要获得全部危险场景,需要对场景进行暴力搜索。因此,本公开实施例中的横向搜索和纵向搜索,均是对已经存在的危险场景数据的网格周围进行相关搜索,为了寻找危险场景数据的网格周围的危险场景数据。
需要说明的是,由于顺次进行横向场景搜索,则表示需要多次横向场景搜索,直至场景的边界。
进一步地,所述方法中判断场景是否为危险,是通过计算场景TTC指标来判断。
应理解为,具体地,通过计算场景TTC指标来判断S203中的横向场景是否为危险和S206中的危险横向场景的纵向场景是否危险。TTC可以作为一个指标来识别所述场景是否危险。本公开实施例中,不仅限于TTC指标,也可以时其他车辆碰撞相关的指标。
图5示出了根据本发明实施例提供的自动驾驶测试数据生成系统,该系统包括:
遗传算法模块,被配置为通过遗传算法,计算出最危险场景数据;
暴力搜索模块,被配置为将最危险场景数据作为暴力搜索算法的起始场景数据,通过暴力搜索算法,获取场景数据,作为危险场景测试数据集。
结合图6所示,本公开实施例提供自动驾驶测试数据生成的电子设备,包括处理器(processor)60和存储器(memory)61。可选地,该电子设备还可以包括通信接口(CommunicationInterface)62和总线63。其中,处理器60、通信接口62、存储器61可以通过总线63完成相互间的通信。通信接口62可以用于信息传输。处理器60可以调用存储器61中的逻辑指令,以执行上述实施例的自动驾驶测试数据生成方法。
本公开实施例提供了一种存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为执行上述自动驾驶测试数据生成方法。
上述的存储介质可以是暂态计算机可读存储介质,也可以是非暂态计算机可读存储介质。非暂态存储介质,包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
以上描述和附图充分地示出了本公开的实施例,以使本领域的技术人员能够实践它们。其他实施例可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施例的部分和特征可以被包括在或替换其他实施例的部分和特征。而且,本申请中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“所述”(the)旨在同样包括复数形式。类似地,如在本申请中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本申请中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的特征、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法或者电子设备中还存在另外的相同要素。本文中,每个实施例重点说明的可以是与其他实施例的不同之处,各个实施例之间相同相似部分可以互相参见。对于实施例公开的方法、产品等而言,如果其与实施例公开的方法部分相对应,那么相关之处可以参见方法部分的描述。
本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,可以取决于技术方案的特定应用和设计约束条件。所述技术人员可以对每个特定的应用来使用不同方法以实现所描述的功能,但是这种实现不应认为超出本公开实施例的范围。所述技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、系统和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
附图中的流程图和框图显示了根据本公开实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。在附图中的流程图和框图所对应的描述中,不同的方框所对应的操作或步骤也可以以不同于描述中所披露的顺序发生,有时不同的操作或步骤之间不存在特定的顺序。例如,两个连续的操作或步骤实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。