仿真场景的生成方法及装置转让专利

申请号 : CN201811050985.3

文献号 : CN109215092B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张俊飞杨晨孙庆瑞罗盾毛继明董芳芳

申请人 : 百度在线网络技术(北京)有限公司

摘要 :

本发明实施例提供一种仿真场景的生成方法及装置,该方法包括:获取基准场景的场景参数,所述基准场景的场景参数的维度为M;将所述基准场景的场景参数输入到经过训练的编码器中,根据所述编码器的输出结果获取编码参数,所述编码参数的维度为N,N

权利要求 :

1.一种仿真场景的生成方法,其特征在于,包括:获取基准场景的场景参数,所述基准场景的场景参数的维度为M;

将所述基准场景的场景参数输入到经过训练的编码器中,根据所述编码器的输出结果获取编码参数,所述编码参数的维度为N,N

对所述编码参数进行调整,得到调整后的编码参数,将所述调整后的编码参数分别输入到经过训练的解码器中,所述解码器用于根据所述调整后的编码参数获取重建场景的场景参数,所述重建场景的场景参数的维度与所述基准场景的场景参数的维度相同;

根据所述解码器输出的所述重建场景的场景参数,生成仿真场景。

2.根据权利要求1所述的方法,其特征在于,所述对所述编码参数进行调整,得到调整后的编码参数,包括:确定所述编码参数的K个维度,对所述编码参数中除所述K个维度之外的N-K个维度的参数进行调整,得到调整后的编码参数,1<=K

3.根据权利要求1所述的方法,其特征在于,所述根据所述解码器输出的所述重建场景的场景参数,生成仿真场景之后,还包括:根据预设策略,判断所述仿真场景是否合理。

4.根据权利要求1所述的方法,其特征在于,所述将所述基准场景的场景参数输入到经过训练的编码器中之前,还包括:获取至少一个待训练场景的场景参数,所述待训练场景的场景参数的维度为M;

将所述待训练场景的场景参数输入到待训练的编码器中,根据所述编码器的输出结果获取编码参数,所述编码参数的维度为N;

将所述编码参数输入到待训练的解码器中,获取所述解码器输出的重建场景的场景参数;

根据所述待训练场景和所述重建场景之间的差异,对所述待训练的编码器和解码器进行训练,得到训练后的编码器和解码器。

5.根据权利要求4所述的方法,其特征在于,所述根据所述编码器的输出结果获取编码参数,包括:对所述编码器的输出结果添加预设分布的噪声,得到编码参数。

6.根据权利要求5所述的方法,其特征在于,所述预设分布的噪声为正态分布的噪声。

7.根据权利要求6所述的方法,其特征在于,所述根据所述待训练场景和所述重建场景之间的差异之前,还包括:根据所述待训练场景的场景参数和所述重建场景的场景参数,获取重建损失;

根据所述编码器的输出结果获取正态分布误差;

根据所述重建损失和所述正态分布误差,获取所述待训练场景和所述重建场景之间的差异。

8.根据权利要求7所述的方法,其特征在于,

所述根据所述待训练场景的场景参数和所述重建场景的场景参数,获取重建损失,包括:根据所述待训练场景的场景参数和所述重建场景的场景参数之间的欧式距离,获取重建损失;

所述根据所述编码器的输出结果获取正态分布误差,包括:根据所述编码器的输出结果的均值和方差,获取正态分布误差,其中,所述均值和方差的维度均为N。

9.根据权利要求1-8任一项所述的方法,其特征在于,所述编码器和所述解码器为深度神经网络模型。

10.一种仿真场景的生成装置,其特征在于,包括:获取模块,用于获取基准场景的场景参数,所述基准场景的场景参数的维度为M;

编码模块,用于将所述基准场景的场景参数输入到经过训练的编码器中,根据所述编码器的输出结果获取编码参数,所述编码参数的维度为N,N

调整模块,用于对所述编码参数进行调整,得到调整后的编码参数;

解码模块,用于将所述调整后的编码参数分别输入到经过训练的解码器中,所述解码器用于根据所述调整后的编码参数获取重建场景的场景参数,所述重建场景的场景参数的维度与所述基准场景的场景参数的维度相同;

生成模块,用于根据所述解码器输出的所述重建场景的场景参数,生成仿真场景。

11.根据权利要求10所述的装置,其特征在于,所述调整模块具体用于:确定所述编码参数的K个维度,对所述编码参数中除所述K个维度之外的N-K个维度的参数进行调整,得到调整后的编码参数,1<=K

12.根据权利要求10所述的装置,其特征在于,所述生成模块,还用于根据预设策略,判断所述仿真场景是否合理。

13.根据权利要求10所述的装置,其特征在于,还包括:训练模块,所述训练模块用于:获取至少一个待训练场景的场景参数,所述待训练场景的场景参数的维度为M;

将所述待训练场景的场景参数输入到待训练的编码器中,根据所述编码器的输出结果获取编码参数,所述编码参数的维度为N;

将所述编码参数输入到待训练的解码器中,获取所述解码器输出的重建场景的场景参数;

根据所述待训练场景和所述重建场景之间的差异,对所述待训练的编码器和解码器进行训练,得到训练后的编码器和解码器。

14.根据权利要求13所述的装置,其特征在于,所述训练模块具体用于:对所述待训练的编码器的输出结果添加预设分布的噪声,得到编码参数。

15.根据权利要求14所述的装置,其特征在于,所述预设分布的噪声为正态分布的噪声。

16.根据权利要求15所述的装置,其特征在于,所述训练模块还用于:根据所述待训练场景的场景参数和所述重建场景的场景参数,获取重建损失;

根据所述编码器的输出结果获取正态分布误差;

根据所述重建损失和所述正态分布误差,获取所述待训练场景和所述重建场景之间的差异。

17.根据权利要求16所述的装置,其特征在于,所述训练模块具体用于:根据所述待训练场景的场景参数和所述重建场景的场景参数之间的欧式距离,获取重建损失;

根据所述编码器的输出结果的均值和方差,获取正态分布误差,其中,所述均值和方差的维度均为N。

18.根据权利要求10-17任一项所述的装置,其特征在于,所述编码器和所述解码器为深度神经网络模型。

19.一种仿真场景的生成设备,其特征在于,包括:至少一个处理器和存储器;

所述存储器存储计算机执行指令;

所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1至9任一项所述的仿真场景的生成方法。

20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至9任一项所述的仿真场景的生成方法。

说明书 :

仿真场景的生成方法及装置

技术领域

[0001] 本发明实施例涉及人工智能技术领域,尤其涉及一种仿真场景的生成方法及装置。

背景技术

[0002] 自动驾驶技术在近两年获得了井喷式发展,为了缩短技术研发周期,同时确保自动驾驶系统的稳健性和安全性能,国内外大多数公司均将仿真场景的生成作为自动驾驶系统实际运营的前置环节。具体的,采用仿真技术生成多个仿真场景,仿真场景作为真实路况、交通信息流的数字化展示,借助生成的仿真场景对自动驾驶系统的性能进行测试。由于真实路况具有多样性和复杂性,因此,只有当仿真场景也有多样性和复杂性时,仿真场景才能够满足对自动驾驶系统进行全面性能测试的要求。
[0003] 现有技术中,主要采用的仿真场景的生成方法有两种,一种是人工编辑生成一组场景参数,然后将场景参数与简单的运动模型结合,得到对应的仿真场景;另一种是将采集的实际路况信息输入仿真引擎中进行回放作为仿真场景。
[0004] 然而,上述两种方法生成的仿真场景较为单一,无法满足仿真场景的多样性需求。

发明内容

[0005] 本发明实施例提供一种仿真场景的生成方法及装置,能够满足自动驾驶系统的仿真场景的多样性需求。
[0006] 第一方面,本发明实施例提供一种仿真场景的生成方法,包括:
[0007] 获取基准场景的场景参数,所述基准场景的场景参数的维度为M;
[0008] 将所述基准场景的场景参数输入到经过训练的编码器中,根据所述编码器的输出结果获取编码参数,所述编码参数的维度为N,N
[0009] 对所述编码参数进行调整,得到调整后的编码参数,将所述调整后的编码参数分别输入到经过训练的解码器中,所述解码器用于根据所述调整后的编码参数获取重建场景的场景参数,所述重建场景的场景参数的维度与所述基准场景的场景参数的维度相同;
[0010] 根据所述解码器输出的所述重建场景的场景参数,生成仿真场景。
[0011] 可选的,所述对所述编码参数进行调整,得到调整后的编码参数,包括:
[0012] 确定所述编码参数的K个维度,对所述编码参数中除所述K个维度之外的N-K个维度的参数进行调整,得到调整后的编码参数,1<=K
[0013] 可选的,所述根据所述解码器输出的所述重建场景的场景参数,生成仿真场景之后,还包括:
[0014] 根据预设策略,判断所述仿真场景是否合理。
[0015] 可选的,所述将所述基准场景的场景参数输入到经过训练的编码器中之前,还包括:
[0016] 获取至少一个待训练场景的场景参数,所述待训练场景的场景参数的维度为M;
[0017] 将所述待训练场景的场景参数输入到待训练的编码器中,根据所述编码器的输出结果获取编码参数,所述编码参数的维度为N;
[0018] 将所述编码参数输入到待训练的解码器中,获取所述解码器输出的重建场景的场景参数;
[0019] 根据所述待训练场景和所述重建场景之间的差异,对所述待训练的编码器和解码器进行训练,得到训练后的编码器和解码器。
[0020] 可选的,所述根据所述编码器的输出结果获取编码参数,包括:
[0021] 对所述编码器的输出结果添加预设分布的噪声,得到编码参数。
[0022] 可选的,所述预设分布的噪声为正态分布的噪声。
[0023] 可选的,所述根据所述待训练场景和所述重建场景之间的差异之前,还包括:
[0024] 根据所述待训练场景的场景参数和所述重建场景的场景参数,获取重建损失;
[0025] 根据所述编码器的输出结果获取正态分布误差;
[0026] 根据所述重建损失和所述正态分布误差,获取所述待训练场景和所述重建场景之间的差异。
[0027] 可选的,所述根据所述待训练场景的场景参数和所述重建场景的场景参数,获取重建损失,包括:
[0028] 根据所述待训练场景的场景参数和所述重建场景的场景参数之间的欧式距离,获取重建损失;
[0029] 所述根据所述编码器的输出结果获取正态分布误差,包括:
[0030] 根据所述编码器的输出结果的均值和方差,获取正态分布误差,其中,所述均值和方差的维度均为N。
[0031] 可选的,所述编码器和所述解码器为深度神经网络模型。
[0032] 第二方面,本发明实施例提供一种仿真场景的生成装置,包括:
[0033] 获取模块,用于获取基准场景的场景参数,所述基准场景的场景参数的维度为M;
[0034] 编码模块,用于将所述基准场景的场景参数输入到经过训练的编码器中,根据所述编码器的输出结果获取编码参数,所述编码参数的维度为N,N
[0035] 调整模块,用于对所述编码参数进行调整,得到调整后的编码参数;
[0036] 解码模块,用于将所述调整后的编码参数分别输入到经过训练的解码器中,所述解码器用于根据所述调整后的编码参数获取重建场景的场景参数,所述重建场景的场景参数的维度与所述基准场景的场景参数的维度相同;
[0037] 生成模块,用于根据所述解码器输出的所述重建场景的场景参数,生成仿真场景。
[0038] 可选的,所述调整模块具体用于:
[0039] 确定所述编码参数的K个维度,对所述编码参数中除所述K个维度之外的N-K个维度的参数进行调整,得到调整后的编码参数,1<=K
[0040] 可选的,所述生成模块,还用于根据预设策略,判断所述仿真场景是否合理。
[0041] 可选的,还包括:训练模块,所述训练模块用于:
[0042] 获取至少一个待训练场景的场景参数,所述待训练场景的场景参数的维度为M;
[0043] 将所述待训练场景的场景参数输入到待训练的编码器中,根据所述编码器的输出结果获取编码参数,所述编码参数的维度为N;
[0044] 将所述编码参数输入到待训练的解码器中,获取所述解码器输出的重建场景的场景参数;
[0045] 根据所述待训练场景和所述重建场景之间的差异,对所述待训练的编码器和解码器进行训练,得到训练后的编码器和解码器。
[0046] 可选的,所述训练模块具体用于:
[0047] 对所述待训练的编码器的输出结果添加预设分布的噪声,得到编码参数。
[0048] 可选的,所述预设分布的噪声为正态分布的噪声。
[0049] 可选的,所述训练模块还用于:
[0050] 根据所述待训练场景的场景参数和所述重建场景的场景参数,获取重建损失;
[0051] 根据所述编码器的输出结果获取正态分布误差;
[0052] 根据所述重建损失和所述正态分布误差,获取所述待训练场景和所述重建场景之间的差异。
[0053] 可选的,所述训练模块具体用于:
[0054] 根据所述待训练场景的场景参数和所述重建场景的场景参数之间的欧式距离,获取重建损失;
[0055] 根据所述编码器的输出结果的均值和方差,获取正态分布误差,其中,所述均值和方差的维度均为N。
[0056] 可选的,所述编码器和所述解码器为深度神经网络模型。
[0057] 第三方面,本发明实施例提供一种仿真场景的生成设备,包括:至少一个处理器和存储器;
[0058] 所述存储器存储计算机执行指令;
[0059] 所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如第一方面任一项所述的仿真场景的生成方法。
[0060] 第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如第一方面任一项所述的仿真场景的生成方法。
[0061] 本发明实施例提供的仿真场景的生成方法及装置,该方法包括:获取基准场景的场景参数,所述基准场景的场景参数的维度为M;将所述基准场景的场景参数输入到经过训练的编码器中,根据所述编码器的输出结果获取编码参数,所述编码参数的维度为N,N

附图说明

[0062] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0063] 图1为本发明实施例提供的仿真场景的生成方法的原理示意图;
[0064] 图2为本发明实施例提供的编码器和解码器的训练方法的流程图;
[0065] 图3为本发明实施例提供的编码器和解码器的训练过程的示意图;
[0066] 图4为本发明实施例提供的编码器和解码器的训练过程的另一示意图;
[0067] 图5为本发明实施例提供的获取待训练场景和重建场景之间的差异的流程示意图;
[0068] 图6为本发明实施例提供的仿真场景的生成方法的流程示意图;
[0069] 图7为本发明实施例提供的仿真场景的生成过程的示意图;
[0070] 图8为本发明实施例提供的仿真场景的生成装置的结构示意图一;
[0071] 图9为本发明实施例提供的仿真场景的生成装置的结构示意图二;
[0072] 图10为本发明实施例提供的仿真场景的生成设备的硬件结构示意图。

具体实施方式

[0073] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0074] 本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0075] 如前所述,现有技术中,针对自动驾驶系统生成仿真场景时,主要采用下面两种方法,一种是人工编辑生成一组场景参数,然后将场景参数与简单的运动模型结合,得到对应的仿真场景;另一种是将采集的实际路况信息输入仿真引擎中进行回放作为仿真场景。然而,采用上述方式生成的仿真场景较为单一,无法满足仿真场景的多样性需求。
[0076] 为解决上述问题,本发明实施例提供一种仿真场景的生成方法。图1为本发明实施例提供的仿真场景的生成方法的原理示意图,如图1所示,本发明实施例的方法可以由图1中的仿真设备执行,仿真设备能够由一个基准场景衍生出多个仿真场景,并且,多个仿真场景均是与基准场景具有相似性的场景,也就是说,根据基准场景生成与基准场景相似的多个仿真场景,从而使得生成的仿真场景更加丰富,能够满足仿真场景多样性的需求。
[0077] 本发明实施例中,采用经过训练的编码器和解码器实现仿真场景的生成。将基准场景的场景参数输入到编码器中,根据编码器的输出结果得到编码参数,通过对编码参数进行调整,再将调整后的编码参数输入到解码器中,得到与基准场景相似的仿真场景。本发明实施例还提供了编码器和解码器的训练方法。下面分别从训练模型和使用模型两方面进行详细描述。
[0078] 需要说明的是,“与基准场景相似的仿真场景”是指仿真场景中保留了基准场景中的部分信息。本发明后续实施例中涉及相同表述时,均应作出理解,后续不再赘述。
[0079] 另外,本发明实施例提供的仿真场景的生成方法及装置,可适用于任意需要生成仿真场景的领域,包括但不限于:自动驾驶领域、虚拟现实领域等。本发明后续实施例中均以自动驾驶领域为例进行描述。
[0080] 图2为本发明实施例提供的编码器和解码器的训练方法的流程图,图3为本发明实施例提供的编码器和解码器的训练过程的示意图。
[0081] 下面首先结合图3简单说明本实施例中的编码器和解码器的训练原理,如图3所示,将待训练场景的场景参数X输入到编码器中,由编码器对场景参数X进行编码降维,生成一个较低维度的编码参数,然后将编码参数输入到解码器中,由解码器根据编码参数进行场景重建,得到重建场景的场景参数X’,根据待训练场景与重建场景之间的差异,调整编码器和解码器中的参数,重复进行上述过程,直至重建场景与待训练场景尽可能的接近。
[0082] 如图2和图3所示,该方法包括:
[0083] S201:获取至少一个待训练场景的场景参数,所述待训练场景的场景参数的维度为M。
[0084] 其中,待训练场景可以是通过路测采集的真实场景的影像数据,例如,真实路况的视频数据。可以理解的,实际路测获取到的待训练场景通常为动态场景,即具有一定的时间范围,例如,采集的待训练场景通常为3至5秒的时间。因此,在获取待训练场景的场景参数时,可以对各待训练场景的视频数据进行采样,例如:针对每个待训练场景,以一定的帧间隔进行采样,获取若干帧图像数据。进而,利用采样后的图像数据,获取待训练场景的场景参数。
[0085] 需要说明的是,本发明实施例对于待训练场景的数量、待训练场景的采样策略均不作具体限定。
[0086] 具体的,场景参数可以包括地图参数、待测试车的状态参数、障碍车的状态参数。待测试车是指待测试的自动驾驶的无人车,障碍车是指场景中除待测试车之外的其他车辆。由于待训练场景为随时间变化的场景,因此,获取的场景参数也是随时间变化的矢量。
具体实现时,可以将地图参数作为一个列矢量,将待测试车的状态参数作为一个列矢量,将障碍车的状态参数作为一个列矢量。
[0087] 需要说明的是,根据待训练场景提取场景参数的方法,本发明实施例不作具体限定,可以采用现有技术中的方法进行提取。
[0088] 本实施例中,记场景参数为X=[mT cT oT]T,其中,m是地图参数对应的列矢量,c是待测试车的状态参数对应的列矢量,o是障碍车的状态参数对应的列矢量。
[0089] 其中,地图参数可以包括下述信息中的至少一种:车道信息、红绿灯信息、限行信息、路口信息等;待测试车的状态参数可以包括下述信息中的至少一种:速度、加速度、方向等;障碍车的状态参数可以包括下述信息中的至少一种:障碍车与待测试车的相对距离、相对速度等。
[0090] 可以理解的,本发明实施例对于地图参数、待测试车的状态参数、障碍车的状态参数所包括的信息并不作具体限定,上述仅为示例性说明。一般来说,为了更好的对场景进行描述,场景参数的维度一般较高,其中,场景参数的维度可以理解为所包括的参数的数量。
[0091] 本实施例中,假设待训练场景的场景参数的维度为M,其中每个维护用于指示下述参数中的一个:地图参数、待测试车的状态参数、障碍车的状态参数。
[0092] S202:将所述待训练场景的场景参数输入到待训练的编码器中,根据所述待训练的编码器的输出结果获取编码参数,所述编码参数的维度为N,N
[0093] S203:将所述编码参数输入到待训练的解码器中,获取所述解码器输出的重建场景的场景参数。
[0094] S204:根据所述待训练场景和所述重建场景之间的差异,对所述待训练的编码器和解码器进行训练,得到训练后的编码器和解码器。
[0095] 其中,编码器用于对M维的场景参数X进行编码降维,得到N维的编码参数C;解码器用于对N维的编码参数C进行解码升维,得到M维的场景参数X’。编码参数C的维度N远小于场景参数X的维度M。
[0096] 具体实现时,编码器和解码器均可以采用深度神经网络模型实现。该深度神经网络模型例如可以是循环神经网络(Recurrent Neural Networks,RNN)。具体地,例如可以采用长短期记忆网络(longshort-termmemory,LSTM)模型,或者选通重复单元(Gated Recurrent Unit,GRU)模型,其中,GRU模型为LSTM模型的一种变体。针对GRU模型,网络有多层RNN堆砌而成。
[0097] 本实施例中,通过采用编码器对较高维度(M维)的场景参数进行编码降维,使得可以采用较少维度(N维)的编码参数来表示待训练场景的信息,便于后续通过对编码参数进行调整,生成新的仿真场景。
[0098] 如图3所示,将待训练场景的场景参数X输入到待训练的编码器中,编码器采用深度学习算法对场景参数进行学习,对场景参数进行降维,得到N维的编码参数。然后,将N维的编码参数C输入到解码器中,解码器根据编码参数C进行场景重建,得到重建场景的场景参数X’。
[0099] 进一步的,可以根据待训练场景与重建场景之间的差异,对编码器和解码器中的参数进行调整,以使重建场景与待训练场景尽可能的接近。因此,可以理解的,本实施例中经过训练的编码器和解码器可用于根据一个特定场景生成与新的场景,同时还可以保证新的场景与该特定场景具有相似性。
[0100] 具体训练过程中,在确定待训练场景与重建场景之间的差异时,可以有多种评估方式,其中一种可选的实施方式可以详见后续实施例的描述,此处不作赘述。
[0101] 本实施例中,编码器和解码器的训练过程可以采用变分自编码器的训练过程,属于无监督的学习方法,不需要事先对待训练场景的场景参数进行人工标注,可以降低训练过程中的人力和物力投入。
[0102] 具体实现时,步骤S202中,根据编码器的输出结果获取编码参数时,可以有多种实施方式。一种可选的实施例中,直接将编码器的输出结果作为编码参数;另一种可选的实施方式中,对所述待训练编码器的输出结果添加预设分布的噪声,得到编码参数。
[0103] 可选的,如图3所示,所述预设分布的噪声为正态分布的噪声。
[0104] 可以理解的,通过向编码器的输出结果中添加正态分布的噪声,能够提高最终训练得到的编码器和解码器的鲁棒性,提高编码器和解码器的场景学习能力。
[0105] 另外,由于实际应用中,场景的分布满足混合高斯模型,本实施例中,通过向编码器的输出结果中添加正态分布的噪声,使得根据训练后的编码器和解码器生成的仿真场景也能够满足正态分布,与实际场景的分布情况一致,使得生成的仿真场景更加真实。
[0106] 图4为本发明实施例提供的编码器和解码器的训练过程的另一示意图,在上述实施例的基础上,本实施例示例了如何对编码器的输出结果中添加正态分布噪声。
[0107] 具体实现时,可以根据编码器的输出结果,确定编码器的输出结果对应的均值Mean以及方差LogStd,其中,均值Mean和方差LogStd的维度均为N。
[0108] 如图4所示,*表示乘法运算,+表示加法运算,exp表示指数运算。具体的,将方差LogStd进行指数运算后与正态分布的噪声相乘,然后将得到的结果与均值Mean相加得到编码参数C。
[0109] 进一步的,在编码器和解码器的训练过程中,待训练场景与重建场景之间的差异主要来自下述两个方面:(1)重建损失,由于编码器和解码器对场景重建导致的损失;(2)正态分布误差,即由于引入正态分布的噪声导致的重建场景与待训练场景之间的误差。
[0110] 下面结合一个具体实施例详细描述获取待训练场景和重建场景之间的差异的方法。
[0111] 图5为本发明实施例提供的获取待训练场景和重建场景之间的差异的流程示意图,如图5所示,包括:
[0112] S501:根据所述待训练场景的场景参数和所述重建场景的场景参数之间的欧式距离,获取重建损失。如下述公式:
[0113] lossrecons=||X-X′||
[0114] 其中,lossrrcons为重建损失,X为待训练场景的场景参数,X′为重建场景的场景参数。
[0115] S502:根据所述编码器的输出结果的均值和方差,获取正态分布误差。
[0116] 一种可选的实施方式中,根据如下公式获取:
[0117]
[0118] 其中,lossnorma1为正态分布误差,Meani为编码器的输出结果的第i维度的均值,LogStdi为编码器的输出结果的第i维度的方差。
[0119] S503:根据所述重建损失和所述正态分布误差,获取所述待训练场景和所述重建场景之间的差异。
[0120] 记loss为所述待训练场景和所述重建场景之间的差异,则可以根据下述公式获取:
[0121] loss=lossrescon+lossnormal
[0122] 下面采用具体的实施例来说明本发明实施例通过编码器和解码器生成仿真场景的方法。
[0123] 图6为本发明实施例提供的仿真场景的生成方法的流程示意图,图7为本发明实施例提供的仿真场景的生成过程的示意图。结合图6和图7,本实施例的方法可以包括:
[0124] S601:获取基准场景的场景参数,所述基准场景的场景参数的维度为M。
[0125] 其中,基准场景可以是满足特定测试需求的特定场景。
[0126] 本实施例中获取基准场景的场景参数的方法与上述实施例中的S201类似,此处不再赘述。
[0127] S602:将所述基准场景的场景参数输入到经过训练的编码器中,根据所述编码器的输出结果获取编码参数,所述编码参数的维度为N,N
[0128] 经过训练的编码器具有深度学习能力,能够对基准场景的场景参数进行深度学习,根据较高维度的场景参数,得到一个较低维度的编码参数。该编码参数中包括了基准场景的绝大多数信息。
[0129] 可选的,根据所述编码器的输出结果获取编码参数,包括:
[0130] 对所述编码器的输出结果添加预设分布的噪声,得到编码参数。
[0131] 可选的,所述预设分布的噪声为正态分布的噪声。
[0132] 可以理解的,本实施例中向编码器的输出结果中添加噪声的方法,与上述实施例中类似,此处不再赘述。
[0133] S603:对所述编码参数进行调整,得到调整后的编码参数,将所述调整后的编码参数分别输入到经过训练的解码器中,所述解码器用于根据所述调整后的编码参数获取重建场景的场景参数,所述重建场景的场景参数的维度与所述基准场景的场景参数的维度相同。
[0134] S604:根据所述解码器输出的所述重建场景的场景参数,生成仿真场景。
[0135] 如图7所示,由于经过编码器的编码后,得到的编码参数C的维度远小于基准场景的场景参数X的维度。本实施例中,可以通过对编码参数C进行调整,将调整后的编码参数输入到解码器中,得到重建场景的场景参数X’。
[0136] 由于编码器和解码器在训练阶段已保证了尽可能小的场景损失,因此,本实施例中根据调整后的编码参数得到的重建场景的场景参数X’,也会保留基准场景的场景参数X的部分信息,故根据调整后的编码参数得到的重建场景可以作为基准场景对应的一个仿真场景。
[0137] 具体的,对编码参数C进行调整时,可以有多种调整方式。可以理解的,对编码参数C进行的每次调整,均可以生成基准场景对应的一个仿真场景,对编码参数C的调整方式越多,则生成的仿真场景的数量也越多,也就是说,根据基准场景衍生得到的仿真场景也更丰富,满足了仿真场景的多样性需求。
[0138] 可选的,所述对所述编码参数进行调整,得到调整后的编码参数,包括:
[0139] 确定所述编码参数的K个维度,对所述编码参数中除所述K个维度之外的N-K个维度的参数进行调整,得到调整后的编码参数,1<=K
[0140] 可以理解的,对编码参数C的调整范围和/或幅度越小,得到的仿真场景与基准场景相似性越高,对编码参数C的调整范围和/或幅度越大,得到的仿真场景与基准场景的相似性越低。因此,实际应用中,可以通过对编码参数C的调整范围和/或幅度进行控制,实现对某些特殊的基准场景进行微调,从而可以指导自动驾驶算法的精细化控制。
[0141] 通过上述的编码参数的调整方式,可以实现对编码参数的各维度以及维度的组合进行遍历调整,从而能够实现对基准场景的所有可能的变形,即能够衍生出与基准场景相似的所有可能的仿真场景,进一步提高了仿真场景的多样性。
[0142] 可选的,本实施例中,在生成仿真场景之后,还可以包括:根据预设策略,判断所述仿真场景是否合理。
[0143] 可以理解的,由于对编码参数进行调整时,某些调整方式可能会使得生成的仿真场景并不合理,例如,生成的仿真场景中待测试车可能位于地图可视范围之外,或者,生成的仿真场景中可能存在红绿灯信息错误等。
[0144] 具体实现时,可以根据预设的策略,对仿真场景是否合理进行判断,将合理的仿真场景应用到自动驾驶的测试中,将不合理的仿真场景剔除。
[0145] 本发明实施例提供的仿真场景的生成方法,包括:获取基准场景的场景参数,所述基准场景的场景参数的维度为M;将所述基准场景的场景参数输入到经过训练的编码器中,根据所述编码器的输出结果获取编码参数,所述编码参数的维度为N,N
[0146] 图8为本发明实施例提供的仿真场景的生成装置的结构示意图一,如图8所示,本实施例提供的仿真场景的生成装置800,可以包括:获取模块801、编码模块802、调整模块803、解码模块804、生成模块805。
[0147] 其中,获取模块801,用于获取基准场景的场景参数,所述基准场景的场景参数的维度为M;
[0148] 编码模块802,用于将所述基准场景的场景参数输入到经过训练的编码器中,根据所述编码器的输出结果获取编码参数,所述编码参数的维度为N,N
[0149] 调整模块803,用于对所述编码参数进行调整,得到调整后的编码参数;
[0150] 解码模块804,用于将所述调整后的编码参数分别输入到经过训练的解码器中,所述解码器用于根据所述调整后的编码参数获取重建场景的场景参数,所述重建场景的场景参数的维度与所述基准场景的场景参数的维度相同;
[0151] 生成模块805,用于根据所述解码器输出的所述重建场景的场景参数,生成仿真场景。
[0152] 本发明实施例提供的仿真场景的生成装置,可用于执行如图6所示的方法实施例,其实现原理和技术效果类似,此处不再赘述。
[0153] 图9为本发明实施例提供的仿真场景的生成装置的结构示意图二,如图9所示,在上述图8所示实施例的基础上,本实施例提供的仿真场景的生成装置800,还可以包括:训练模块806。
[0154] 可选的,所述调整模块803具体用于:
[0155] 确定所述编码参数的K个维度,对所述编码参数中除所述K个维度之外的N-K个维度的参数进行调整,得到调整后的编码参数,1<=K
[0156] 可选的,所述生成模块805,还用于根据预设策略,判断所述仿真场景是否合理。
[0157] 可选的,所述训练模块806用于:
[0158] 获取至少一个待训练场景的场景参数,所述待训练场景的场景参数的维度为M;
[0159] 将所述待训练场景的场景参数输入到待训练的编码器中,根据所述编码器的输出结果获取编码参数,所述编码参数的维度为N;
[0160] 将所述编码参数输入到待训练的解码器中,获取所述解码器输出的重建场景的场景参数;
[0161] 根据所述待训练场景和所述重建场景之间的差异,对所述待训练的编码器和解码器进行训练,得到训练后的编码器和解码器。
[0162] 可选的,所述训练模块806具体用于:
[0163] 对所述待训练的编码器的输出结果添加预设分布的噪声,得到编码参数。
[0164] 可选的,所述预设分布的噪声为正态分布的噪声。
[0165] 可选的,所述训练模块806还用于:
[0166] 根据所述待训练场景的场景参数和所述重建场景的场景参数,获取重建损失;
[0167] 根据所述编码器的输出结果获取正态分布误差;
[0168] 根据所述重建损失和所述正态分布误差,获取所述待训练场景和所述重建场景之间的差异。
[0169] 可选的,所述训练模块806具体用于:
[0170] 根据所述待训练场景的场景参数和所述重建场景的场景参数之间的欧式距离,获取重建损失;
[0171] 根据所述编码器的输出结果的均值和方差,获取正态分布误差,其中,所述均值和方差的维度均为N。
[0172] 可选的,所述编码器和所述解码器为深度神经网络模型。
[0173] 本发明实施例提供的仿真场景的生成装置,可用于执行上述任一方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0174] 图10为本发明实施例提供的仿真场景的生成设备的硬件结构示意图,如图10所示,本实施例提供的仿真场景的生成设备1000,包括:至少一个处理器1001和存储器1002。其中,处理器1001、存储器1002通过总线1003连接。
[0175] 在具体实现过程中,至少一个处理器1001执行所述存储器1002存储的计算机执行指令,使得至少一个处理器1001执行如上仿真场景的生成设备1000所执行的仿真场景的生成方法。
[0176] 处理器1001的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
[0177] 在上述的图10所示的实施例中,应理解,处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:
Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
[0178] 存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器。
[0179] 总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
[0180] 本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上仿真场景的生成设备执行的仿真场景的生成方法。
[0181] 上述的计算机可读存储介质,上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
[0182] 一种示例性的可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(Application Specific Integrated Circuits,简称:ASIC)中。当然,处理器和可读存储介质也可以作为分立组件存在于设备中。
[0183] 本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0184] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。