自动驾驶测试场景的初始化生成方法、装置及设备

文档序号:31539382发布日期:2022-09-16 23:26阅读:67来源:国知局
自动驾驶测试场景的初始化生成方法、装置及设备

1.本发明涉及自动驾驶技术领域,尤其涉及一种自动驾驶测试场景的初始化生成方法、装置及设备。


背景技术:

2.场景是自动驾驶测试系统中相当重要的一环,测试场景的多样性、覆盖性、典型性等能够影响到测试结果的准确性,从而保证自动驾驶的安全与质量。
3.其中,场景指的是行驶场合和驾驶情景的组合,它受行驶环境的深刻影响,如道路、交通、天气、光照等因素,共同构成整个场景概念。场景是在一定时间和空间范围内环境与驾驶行为的综合反映,描述了道路、交通设施、气象条件、交通参与物等外部状态以及自车的驾驶任务和状态等信息。基于测试场景的测试技术,测试场景配置灵活、测试效率高、重复性强、过程安全而且成本低,可实现自动测试和加速测试,能够节省大量人力物力,因此,基于测试场景的测试技术已成为自动驾驶汽车测试评价中不可或缺的重要环节。在自动驾驶测试时,首先需要对测试场景进行初始化生成,现有技术在初始化生成测试场景时,需要用户使用坐标点描述测试场景中场景参与者的位置。
4.然而,使用具体的坐标点指定场景参与者的位置,不符合用户的思维逻辑和表达逻辑;另外,对坐标点随机搜索时搜索速度慢,测试场景初始化生成效率较低。


技术实现要素:

5.本发明提供一种自动驾驶测试场景的初始化生成方法、装置及设备,该方法能够提升场景参与者的位置点搜索速度,实现测试场景的快速初始化生成。
6.本发明的技术方案包括:
7.一种自动驾驶测试场景的初始化生成方法,其特征在于,所述方法包括:
8.获取自动驾驶测试场景的场景描述信息,所述场景描述信息包括:所述测试场景的场景初始化区域和场景参与者相关信息;
9.基于与所述场景初始化区域匹配的道路元素,生成场景参与者的可行驶区域;
10.获取所述道路元素的kd树;
11.基于所述场景参与者相关信息和所述kd树,从所述可行驶区域中搜索所述场景参与者的生成位置点,并确定所述场景参与者的生成朝向;
12.按照所述生成位置点和所述生成朝向,在所述道路元素所在的场景地图中生成所述场景参与者;其中,所述自动驾驶测试场景包括所述场景地图和所述场景参与者。
13.可选地,所述基于与所述场景初始化区域匹配的道路元素,生成场景参与者的可行驶区域,包括:
14.获取与所述场景初始化区域匹配的道路元素,以及所述道路元素的边界信息;
15.按照所述边界信息生成至少一个多边形;
16.对至少一个多边形进行边界膨胀处理,并通过对膨胀后的至少一个多边形取并
集,得到目标多边形;
17.对所述目标多边形进行边界侵蚀处理,得到所述可行驶区域;其中,所述边界侵蚀处理时的侵蚀距离等于所述边界膨胀处理时的膨胀距离。
18.可选地,所述基于与所述场景初始化区域匹配的道路元素,生成场景参与者的可行驶区域之后,还包括:将所述可行驶区域分解为若干三角形。
19.可选地,所述获取所述道路元素的kd树,包括:获取所述道路元素的中线坐标序列;连接所述中线坐标序列中相邻坐标点,得到多个基本车道段,并组合基本车道段形成车道段集合;基于车道段集合qe的坐标范围,确定分割维度和分割值;按照所述分割维度和所述分割值,对所述车道段集合qe进行分割处理,得到两个子车道段集合q
e+1
以及分割节点;其中,所述分割节点在kd树中连接两个所述子车道段集合q
e+1
;若子车道段集合q
e+1
的坐标范围小于或等于预设范围,则停止对子车道段集合q
e+1
的分割;若子车道段集合q
e+1
的坐标范围大于预设范围,则令e=e+1,并从基于车道段集合qe的坐标范围,确定分割维度和分割值的步骤开始再次执行,直至子车道段集合q
e+1
的坐标范围小于或等于预设范围;直至停止对所有子车道段集合q
e+1
的分割,得到由每层分割节点连接两个子车道段集合所组成的kd树。
20.可选地,所述基于车道段集合qe的坐标范围,确定分割维度和分割值,包括:获取车道段集合qe在各个坐标轴方向上的坐标范围;将坐标范围最大的坐标轴方向,确定为所述分割维度;将所述分割维度上的坐标中值,确定为所述分割值。
21.可选地,所述基于所述场景参与者相关信息和所述kd树,从所述可行驶区域中搜索所述场景参与者的生成位置点,并确定所述场景参与者的生成朝向,包括:
22.基于所述场景参与者相关信息,提取目标场景参与者,所述目标场景参与者的位置点和朝向不依赖于其它场景参与者;
23.针对每个目标场景参与者,从所述可行驶区域中随机采样n个位置点;
24.针对每个位置点,基于所述场景参与者相关信息和所述kd树,确定所述目标场景参与者位于所述位置点时的朝向,以及与所述目标场景参与者存在依赖关系的其它场景参与者的位置点和朝向,并计算所述位置点的评价值;
25.若n个位置点中存在评价值为零的位置点,则将所述位置点作为所述目标场景参与者的生成位置点,将所述目标场景参与者位于所述位置点时的朝向作为所述目标场景参与者的生成朝向,将所述目标场景参与者位于所述位置点时其它场景参与者的位置点和朝向分别作为其它场景参与者的生成位置点和生成朝向;
26.若n个位置点中不存在评价值为零的位置点,则基于n个位置点的评价值从所述可行驶区域中重新获取n个位置点,并返回执行针对每个位置点,基于所述场景参与者相关信息和所述kd树,确定所述目标场景参与者位于所述位置点时的朝向,以及与所述目标场景参与者存在依赖关系的其它场景参与者的位置点和朝向,并计算所述位置点的评价值。
27.可选地,所述针对每个位置点,基于所述场景参与者相关信息和所述kd树,确定所述目标场景参与者位于所述位置点时的朝向,以及与所述目标场景参与者存在依赖关系的其它场景参与者的位置点和朝向,并计算所述位置点的评价值,包括:
28.针对每个位置点,基于所述kd树确定所述目标场景参与者位于所述位置点时的朝向;
29.基于所述位置点、所述朝向以及所述场景参与者相关信息,确定与所述目标场景参与者存在依赖关系的其它场景参与者的位置点和朝向;
30.基于所述其它场景参与者的位置点和朝向,计算所述位置点的评价值。
31.可选地,所述针对每个位置点,基于所述kd树确定所述目标场景参与者位于所述位置点时的朝向,包括:从所述kd树的根节点开始遍历,若所述位置点在当前层分割维度上的坐标值小于当前层分割值,则从当前层左侧的子车道段集合递归搜索;若所述位置点在当前层分割维度上的坐标值大于或等于当前层分割值,则从当前层右侧的子车道段集合递归搜索;直至当前层没有子车道段集合,回溯当前子车道段集合,搜索当前子车道段集合中与所述位置点距离最近的坐标值,并基于所述坐标值确定与所述位置点距离最近的基本车道段;基于所述基本车道段所在的车道,确定所述目标场景参与者位于所述位置点时的朝向。
32.可选地,所述基于所述其它场景参与者的位置点和朝向,计算所述位置点的评价值,包括:
33.计算所述其它场景参与者的位置点与道路边界的距离;
34.计算所有场景参与者之间的朝向角度与期望朝向角度的偏差;
35.基于所述距离和所述偏差,计算所述位置点的评价值。
36.可选地,所述基于n个位置点的评价值从所述可行驶区域中重新获取n个位置点,包括:
37.针对每个位置点,基于n个位置点的评价值,确定新位置点采样数量和新位置点最大移动距离;
38.按照所述新位置点采样数量和所述新位置点最大移动距离,在所述可行驶区域中所述位置点的周围重新采样新位置点;
39.分别计算n个位置点周围所采样的所有新位置点的评价值;
40.基于所有新位置点的评价值,从所有新位置点中筛选n个位置点。
41.可选地,所述基于n个位置点的评价值,确定新位置点采样数量,包括:
42.获取n个位置点的评价值中的最大评价值;
43.获取采样数量控制常数;
44.基于所述采样数量控制常数、所述最大评价值与所述位置点的评价值之间的差值、所述最大评价值与所有位置点的评价值之间的差值之和,计算所述新位置点采样数量。
45.可选地,所述基于所述采样数量控制常数、所述最大评价值与所述位置点的评价值之间的差值、所述最大评价值与所有位置点的评价值之间的差值之和,计算所述新位置点采样数量之后,还包括:
46.获取第一系数与第二系数,所述第一系数小于所述第二系数,且所述第一系数和所述第二系数均为小于1的正数;
47.若所述新位置点采样数量小于所述第一系数与所述采样数量控制常数之积,则将所述新位置点采样数量更新为对所述第一系数与所述采样数量控制常数之积取整所得到的整数;
48.若所述新位置点采样数量大于或等于所述第一系数与所述采样数量控制常数之积,且小于或等于所述第二系数与所述采样数量控制常数之积,则保持所述新位置点采样
数量的取值不变;
49.若所述新位置点采样数量大于所述第二系数与所述采样数量控制常数之积,则将所述新位置点采样数量更新为对所述第二系数与所述采样数量控制常数之积取整所得到的整数。
50.可选地,所述基于n个位置点的评价值,确定新位置点最大移动距离,包括:
51.获取n个位置点的评价值中的最小评价值;
52.获取移动距离控制常数;
53.基于所述移动距离控制常数、所述位置点的评价值与所述最小评价值之间的差值、所有位置点的评价值与所述最小评价值之间的差值之和,计算所述新位置点最大移动距离。
54.可选地,所述基于所有新位置点的评价值,从所有新位置点中筛选n个位置点,包括:
55.针对每个新位置点,计算所述新位置点与其余新位置点之间的距离之和;
56.基于所述新位置点与其余新位置点之间的距离之和,以及所有新位置点与其余新位置点之间的距离之和,计算所述新位置点的选取概率;
57.从所有新位置点中筛选出评价值最小的至少一个位置点,以及选取概率最大的至少一个位置点,重新组合为n个位置点。
58.可选地,所述方法还包括:
59.基于各个场景参与者的生成位置点和生成朝向,获取各个场景参与者在场景地图中的占用区域;
60.判断占用区域之间是否存在重叠区域;
61.若存在重叠区域,则针对重叠区域对应的目标场景参与者以及与所述目标场景参与者存在依赖关系的其它场景参与者,返回执行针对每个目标场景参与者,从所述可行驶区域中随机采样n个位置点。
62.可选地,所述方法还包括:
63.若n个位置点中不存在评价值为零的位置点,则获取针对所述目标场景参与者的位置点已采样次数;
64.若所述位置点已采样次数大于或等于设定采样阈值,则生成并显示位置点搜索失败提示;
65.若所述位置点已采样次数小于设定采样阈值,则基于n个位置点的评价值从所述可行驶区域中重新获取n个位置点,并返回执行针对每个位置点,基于所述场景参与者相关信息和所述kd树,确定所述目标场景参与者位于所述位置点时的朝向,以及与所述目标场景参与者存在依赖关系的其它场景参与者的位置点和朝向,并计算所述位置点的评价值。
66.可选地,所述按照所述生成位置点和所述生成朝向,在所述道路元素所在的场景地图中生成所述场景参与者之后,还包括:
67.针对预设场景参与者设置虚拟传感器,以及传感器视角;其中,所述预设场景参与者是指预先设置的、作为观察视角的场景参与者;
68.采集所述虚拟传感器以所述传感器视角观察所获得传感器数据,并将所述传感器数据渲染为场景图像;
69.显示所述场景图像。
70.一种自动驾驶测试场景的初始化生成装置,其特征在于,包括:
71.信息获取模块,用于获取自动驾驶测试场景的场景描述信息,所述场景描述信息包括:所述测试场景的场景初始化区域和场景参与者相关信息;
72.区域生成模块,用于基于与所述场景初始化区域匹配的道路元素,生成场景参与者的可行驶区域;
73.kd树获取模块,用于获取所述道路元素的kd树;
74.位置计算模块,用于基于所述场景参与者相关信息和所述kd树,从所述可行驶区域中搜索所述场景参与者的生成位置点,并确定所述场景参与者的生成朝向;
75.初始化生成模块,用于按照所述生成位置点和所述生成朝向,在所述道路元素所在的场景地图中生成所述场景参与者;其中,所述自动驾驶测试场景包括所述场景地图和所述场景参与者。
76.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述自动驾驶测试场景的初始化生成方法。
77.一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行,以实现上述自动驾驶测试场景的初始化生成方法。
78.一种计算机程序产品,当所述计算机程序产品在计算机设备上运行时,使得计算机设备执行如上述自动驾驶测试场景的初始化生成方法。
79.与现有技术相比,本发明至少具有以下优点:
80.1、通过边界膨胀处理和边界侵蚀处理连接道路元素中的所有可行驶区域,并使用三角形填充可行驶区域。首先根据车道的边界生成多边形;然后所有多边形的边界向外扩张,以消除车道边界间空隙等影响;之后,所有车道对应的多边形取并集,合并成一个大的多边形;最后大多边形边界向内侵蚀,以恢复扩张前的大小。本发明通过边界膨胀处理和边界侵蚀处理,可以在道路边界保持不变的同时,连接道路中所有可行驶区域。另外,本发明将可行驶区域分解为若干三角形,能够实现在可行驶区域中均匀采样位置点,提升位置点采样效率;
81.2、考虑场景参与者之间的依赖关系,基于依赖关系将测试场景中初始化生成时涉及的所有场景参与者分组。在获取用户针对测试场景初始化生成时的场景描述信息之后,基于场景描述信息中场景参与者相关信息,解析不同场景参与者之间的相对位置关系和相对朝向关系(即依赖关系),并按照依赖关系将测试场景初始化生成时涉及的所有场景参与者分组。这样,一方面可以减小测试场景初始化生成的节点规模,另一方面可以增加并行确定多组场景参与者的位置点和朝向的可能,有助于提升位置点搜索速度;
82.3、引入位置点迭代计算机制,先计算可行驶区域中不同位置点的评价值,再基于评价值生成并筛选下一次迭代计算的位置点,以逐渐逼近合适的生成区域。对于位置点和朝向没有参考其它场景参与者的场景参与者,随机采样位置点作为初始种群,然后针对种群中的每个位置点基于依赖关系计算其它场景参与者的位置点和朝向,并以此计算位置点的评价值;之后基于位置点的评价值在位置点周围重新采样若干新位置点,选择评价值小的新位置点和个体密度较低的新位置点组成下一代种群。通过这样多次迭代计算,逐步逼
近合适的场景参与者生成区域,不仅实现了位置点的自动化搜索,有效提升位置点搜索速度,有助于实现快速初始化生成测试场景。另外,本发明通过提供位置点迭代计算机制,仅需用户抽象描述不同场景参与者之间的依赖关系,而无需用户指定具体的坐标点,更符合用户的思维逻辑和表达逻辑。
附图说明
83.图1自动驾驶测试场景的初始化生成方法的流程图。
84.图2本发明一实施例的道路元素示意图。
85.图3本发明一实施例的边界膨胀处理的效果示意图。
86.图4本发明一实施例的可行驶区域的示意图。
87.图5本发明一实施例的可行驶区域的分解示意图。
88.图6本发明一实施例的位置点采样的示意图。
89.图7本发明一实施例的新位置点生成的示意图。
90.图8自动驾驶测试场景的初始化生成装置的框图。
具体实施方式
91.下面将结合附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本发明特定实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
92.自动驾驶测试包括自动驾驶仿真测试和自动驾驶实际测试。在自动驾驶测试时,首先需要对测试场景进行初始化生成,声明测试场景中涉及的场景参与者以及它们的初始状态,由此本发明提供了一种自动驾驶测试场景的初始化生成方法、装置及设备。
93.如图1所示,本发明的自动驾驶测试场景的初始化生成方法包括如下几个步骤(步骤1至5)。
94.步骤1:获取自动驾驶测试场景的场景描述信息,该场景描述信息包括:测试场景的场景初始化区域和场景参与者相关信息。
95.计算机设备首先需要获取测试场景的场景描述信息,该场景描述信息包括:测试场景的场景初始化区域和场景参与者相关信息。场景初始化区域是针对测试场景初始化生成时所在区域的描述,如十字路口、丁字路口、直行车道、弯道等。场景参与者相关信息是针对测试场景初始化生成时涉及的所有场景参与者的描述,可选地,场景参与者相关信息包括:场景参与者,以及场景参与者的位置和朝向信息。其中,场景参与者的位置和朝向信息包括:不同场景参与者之间的相对位置关系和相对朝向关系。
96.步骤2:基于与场景初始化区域匹配的道路元素,生成场景参与者的可行驶区域。
97.可行驶区域是指测试场景中能够生成场景参与者的区域。计算机设备从测试场景的场景描述信息中获取测试场景的场景初始化区域,并基于与场景初始化区域匹配的道路元素,生成场景参与者的可行驶区域。
98.在一个示例中,道路元素包括至少两个车道;上述步骤2包括如下几个子步骤(步骤2.1至2.4)。
99.步骤2.1:获取与场景初始化区域匹配的道路元素,以及道路元素的边界信息。
100.基于场景初始化区域对测试场景初始化生成时所在区域的描述,计算机设备即可获取能够满足测试场景初始化生成的场景描述信息的道路元素,以及该道路元素的边界信息。其中,道路元素的边界信息包括各个车道的边界点。
101.步骤2.2:按照边界信息生成至少一个多边形。
102.按照道路元素的边界信息,计算机设备针对每个车道分别连接边界点,即可生成至少一个多边形。示例性地,如图2所示,道路元素包括四个车道,每个车道的边界点连接起来均可以形成一个多边形。
103.步骤2.3:对至少一个多边形进行边界膨胀处理,并通过对膨胀后的至少一个多边形取并集,得到目标多边形。
104.由于不同的车道间和车道连接处有间隔,这些区域也能生成场景参与者,因此,在计算场景参与者的可行驶区域时,需要考虑车道间和车道连接处的间隔。基于此,计算机设备先对至少一个多边形进行边界膨胀处理,以将上述间隔囊括进可行驶区域。其中,边界膨胀处理满足以下条件:至少一个多边形中任意两个相邻多边形在膨胀后存在区域重叠。示例性地,如图2所示,道路元素的四个车道之间存在间隔,为消除车道间间隔的影响,计算机设备将每个车道对应的多边形的边界向外扩张0.5米,边界膨胀处理的膨胀效果如图3所示,任意两个相邻车道对应的多边形在膨胀后均存在区域重叠。
105.为避免重复计算多边形之间的重叠区域,计算机设备对膨胀后的至少一个多边形取并集,将膨胀后的至少一个多边形合并为一个大的多边形,即目标多边形。
106.步骤2.4:对目标多边形进行边界侵蚀处理,得到可行驶区域;其中,边界侵蚀处理时的侵蚀距离等于边界膨胀处理时的膨胀距离。
107.为实现消除上述间隔的同时避免错误扩张可行驶区域,计算机设备对目标多边形进行边界侵蚀处理,以将目标多边形的边界向内侵蚀,得到可行驶区域。为了确保恢复扩张前的大小,对目标多边形进行边界侵蚀处理时的侵蚀距离,等于对至少一个多边形进行边界膨胀处理时的膨胀距离。示例性地,基于图3所示的边界膨胀处理后得到的目标多边形,计算机设备将目标多边形的边界向内侵蚀0.5米,边界侵蚀处理后生成的可行驶区域如图4所示。
108.在一个示例中,为了在后续搜索场景参与者的位置点时,实现位置点的均匀采样,在上述步骤2之后,还包括:将可行驶区域分解为若干三角形。示例性地,计算机设备将图4所示的可行驶区域分解为若干小的三角形,分解后的效果如图5所示,分解后的三角形填充全部可行驶区域。
109.基于此,在后续搜索场景参与者的位置点时,首先可以在场景地图中以三角形的面积作为权重采样,均匀采样得到三角形,如图6中的(a)所示,可行驶区域被分解成了若干三角形,可以采样得到单个三角形区域的信息;然后根据三角形的顶点坐标,得到长和宽平行于两个坐标轴方向、且包裹住三角形区域的最小矩形,如图6中的(b)所示。在矩形的长宽区间(x
min
,x
max
)和(y
min
,y
max
)中分别随机选择一个值,选择的值是采样点的坐标值,如果采样点在三角形区域内,则成功采样到位置点;否则重新在长宽区间中选值,直到采样点在三角形区域内。这样分解成三角形再采样比直接在场景地图中采样节省很多时间,因为场景地图中可行驶区域占比较小,容易采样到可行驶区域外,导致采样失败。
110.步骤3:获取道路元素的kd树。
111.在测试场景中生成场景参与者,除了精确的位置点之外,还需要指定场景参与者的朝向,本发明默认场景参与者的朝向和它所在的位置点的车道朝向一致。计算位置点的车道朝向需要找到两个距离当前位置点最近的车道中线坐标点,这两个车道中线坐标点连成的向量就是该位置点的车道朝向。然而,车道中线包含很多坐标点,同时道路元素可能包含很多车道,遍历所有车道中线去计算距离位置点最近的车道中线坐标点,花费的时间过多;另外,车道形状多样、长度不一,也增大了计算距离位置点最近的车道中线坐标点的难度。为提升计算速度,本发明在道路元素的kd树上进行最近邻查找,以缩短搜索最近的车道中线坐标点的时间。
112.基于此,计算机设备需要获取道路元素的kd树。本发明中,计算机设备可以直接从第三方获取道路元素的kd树,例如,由提供场景地图的第三方构建道路元素的kd树,计算机设备从第三方获取场景地图的同时,也获取到道路元素的kd树;或者,计算机设备可以自行构建道路元素的kd树,例如,计算机设备获取到场景地图后,从场景地图中获取与测试场景的场景初始化区域匹配的道路元素,并进一步构建道路元素的kd树。
113.在一个示例中,道路元素的kd树由计算机设备自行构建;上述步骤3包括如下几个子步骤(步骤3.1至3.7)。
114.步骤3.1:获取道路元素的中线坐标序列。
115.中线坐标序列是由车道中线上的绝对坐标点所组成的序列,每个车道的车道中线由很多绝对坐标点组成。
116.步骤3.2:连接中线坐标序列中相邻坐标点,得到多个基本车道段,并组合基本车道段形成车道段集合。
117.每个车道的中线坐标序列中任意相邻两个坐标点连接,即可组成一个基本车道段。所有车道内的基本车道段组合起来,形成车道段集合。
118.步骤3.3:基于车道段集合qe的坐标范围,确定分割维度和分割值。
119.由于车道形状多样、长度不一,本发明对车道进行分割,分割后的车道段集合作为kd树的节点。在对车道进行分割时,计算机设备需要确定分割维度和分割值。其中,分割维度是指分割点参考的坐标轴方向;分割值是指分割点的坐标值。可选地,车道段集合qe组成的区域在某个坐标轴方向上的坐标范围大,则表明沿着该坐标轴方向上的数据比较多,在该坐标轴方向上进行数据分割会有较好的分辨率;基于此,上述步骤3.3包括:获取车道段集合qe在各个坐标轴方向上的坐标范围;将坐标范围最大的坐标轴方向,确定为分割维度;将分割维度上的坐标中值,确定为分割值。
120.步骤3.4:按照分割维度和分割值,对车道段集合qe进行分割处理,得到两个子车道段集合q
e+1
以及分割节点;其中,分割节点在kd树中连接两个子车道段集合q
e+1

121.按照分割维度和分割值可以将车道段集合qe分为两个子车道段集合q
e+1
,并得到本次分割的分割节点。在kd树中,由分割节点连接两个子车道段集合q
e+1
。基于此,上述步骤3.4包括:沿着分割维度,将车道段集合qe中最大坐标值小于分割值的车道段,组合为kd树中位于分割节点左侧的子车道段集合q
e+1
;将车道段集合qe中最小坐标值大于分割值的车道段,组合为kd树中位于分割节点右侧的子车道段集合q
e+1
;将车道段集合qe中的其余车道段,组合为kd树中本层的分割节点。
122.步骤3.5:若子车道段集合q
e+1
的坐标范围小于或等于预设范围,则停止对子车道段集合q
e+1
的分割。
123.为了确保kd树的节点不会过多,同时确保在同一个节点的基本车道段属于同一个车道,本发明设置子车道段集合q
e+1
存在坐标范围大于预设范围的坐标轴方向时才可以继续分割;若子车道段集合q
e+1
在所有坐标轴方向上的坐标范围均小于或等于预设范围,则停止对子车道段集合q
e+1
的分割。
124.示例性地,预设范围为5米,在步骤3.4分割得到子车道段集合q
e+1
之后,计算机设备判断子车道段集合q
e+1
是否存在坐标范围大于5米的坐标轴方向;若子车道段集合q
e+1
在所有坐标轴方向上的坐标范围均小于或等于5米,则停止对子车道段集合q
e+1
的分割。
125.步骤3.6:若子车道段集合q
e+1
的坐标范围大于预设范围,则令e=e+1,并从步骤3.3开始再次执行,直至子车道段集合q
e+1
的坐标范围小于或等于预设范围。
126.若子车道段集合q
e+1
存在坐标范围大于预设范围的坐标轴方向,则计算机设备对子车道段集合q
e+1
进一步递归分割,令e=e+1并从步骤3.3开始再次执行,直到分割得到的子车道段集合q
e+1
在所有坐标轴方向上的坐标范围均小于或等于预设范围。其中,在步骤3.6中,计算机设备先递归分割位于分割节点左侧的子车道段集合q
e+1
,再递归分割位于分割节点右侧的子车道段集合q
e+1

127.步骤3.7:直至停止对所有子车道段集合q
e+1
的分割,得到由每层分割节点连接两个子车道段集合所组成的kd树。
128.直至所有子车道段集合q
e+1
在任意坐标轴方向上的坐标范围均小于或等于预设范围,计算机设备停止对所有子车道段集合q
e+1
的分割,所有不能再继续分割的子车道段集合和所有分割节点组成kd树,每层分割节点在kd树中连接左右两个子车道段集合。
129.步骤4:基于场景参与者相关信息和kd树,从可行驶区域中搜索场景参与者的生成位置点,并确定场景参与者的生成朝向。
130.为了实现可行驶区域中的每个位置点都有可能用来生成场景参与者,场景参与者可以不被指定具体的坐标点,而是通过场景参与者相关信息描述不同场景参与者之间的相对位置关系和相对朝向关系。由于不同场景参与者之间可以灵活定义位置点和朝向的关系,而满足生成某些场景参与者的合适区域很少,所以很难快速找到满足要求的生成位置点。本发明中,计算机设备先随机采样一部分场景参与者的位置点,然后基于kd树确定这些场景参与者位于这些位置点时的朝向,再基于场景参与者相关信息和kd树确定其它场景参与者的位置点和朝向,并以此评价这些位置点,通过评价值计算生成、筛选新的位置点,逐渐逼近合适的区域,以此实现快速搜索满足要求的场景参与者的生成位置点和生成朝向。
131.在一个示例中,上述步骤4包括如下几个子步骤(步骤4.1至4.5)。
132.步骤4.1:基于场景参与者相关信息,提取目标场景参与者,目标场景参与者的位置点和朝向不依赖于其它场景参与者。
133.计算机设备通过场景参与者相关信息,可以将场景参与者分为至少一组,不同组的场景参与者之间的位置点和朝向相互独立,每组场景参与者之间存在相对位置关系和相对朝向关系。并且,每组场景参与者中总存在一个场景参与者的位置点和朝向不依赖于其它场景参与者,本发明中定义位置点和朝向不依赖于其它场景参与者的对象为目标场景参与者。计算机设备基于场景参与者相关信息,从初始场景涉及的所有场景参与者中提取目
标场景参与者。
134.步骤4.2:针对每个目标场景参与者,从可行驶区域中随机采样n个位置点。
135.由上述介绍可知,按照场景参与者相关信息,测试场景初始化生成时涉及的所有场景参与者被分为至少一组。本发明中,计算机设备可以并行确定至少一组场景参与者的生成位置点和生成朝向,也即,计算机设备针对至少一组场景参与者同时执行步骤4.2至4.5;或者,计算机设备可以串行确定至少一组场景参与者的生成位置点和生成朝向,也即,计算机设备针对各组场景参与者依次执行步骤4.2至4.5。
136.其中,每组场景参与者中存在一个目标场景参与者,在计算机设备遍历至某组场景参与者时,先针对该组场景参与者中的目标场景参与者,从可行驶区域中随机采样n(n为正整数)个位置点,作为初始的种群。
137.步骤4.3:针对每个位置点,基于场景参与者相关信息和kd树,确定该目标场景参与者位于该位置点时的朝向,以及与该目标场景参与者存在依赖关系的其它场景参与者的位置点和朝向,并计算该位置点的评价值。
138.对于n个位置点中的每个位置点,计算机设备可以通过kd树搜索到该目标场景参与者位于该位置点时的朝向;之后,基于场景参与者相关信息所描述的不同场景参与者之间的相对位置关系和相对朝向关系,可以确定在该目标场景参与者位于该位置点时,与该目标场景参与者存在依赖关系的其它场景参与者的位置点和朝向;然后,计算机设备通过其它场景参与者的位置点和朝向,计算该位置点的评价值。
139.基于此,可选地,上述步骤4.3包括如下几个子步骤(步骤4.3.1至4.3.3)。
140.步骤4.3.1:针对每个位置点,基于kd树,确定该目标场景参与者位于该位置点时的朝向。
141.通过kd树可以实现最近邻查找,计算机设备可以从kd树中查找到与该位置点距离最近的坐标值,然后基于该坐标值确定与该位置点距离最近的基本车道段,该基本车道段所在车道的车道方向,即为目标场景参与者位于该位置点时的朝向。本发明中,v个节点的二维kd树,最近邻查找的最差时间复杂度是相比遍历所有车道的车道中线坐标点查找的时间复杂度低很多。
142.示例性地,上述步骤4.3.1包括:从kd树的根节点开始遍历,若该位置点在当前层分割维度上的坐标值小于当前层分割值,则从当前层左侧的子车道段集合递归搜索;若该位置点在当前层分割维度上的坐标值大于或等于当前层分割值,则从当前层右侧的子车道段集合递归搜索;直至当前层没有子车道段集合,回溯当前子车道段集合,搜索当前子车道段集合中与该位置点距离最近的坐标值,并基于该坐标值确定与该位置点距离最近的基本车道段;基于该基本车道段所在的车道,确定该目标场景参与者位于该位置点时的朝向。
143.其中,在回溯当前子车道段集合时,若当前子车道段集合存在兄弟子车道段集合,且兄弟子车道段集合中坐标值与该位置点之间的最近距离,小于当前子车道段集合中坐标值与该位置点之间的最近距离,则基于兄弟子车道段集合中与该位置点距离最近的坐标值,确定与该位置点距离最近的基本车道段。
144.步骤4.3.2:基于该位置点、该朝向以及场景参与者相关信息,确定与该目标场景参与者存在依赖关系的其它场景参与者的位置点和朝向。
145.通过场景参与者相关信息所描述的不同场景参与者之间的相对位置关系和相对
朝向关系,以及该目标场景参与者位于该位置点时的朝向,即可计算在该目标场景参与者位于该位置点时,与该目标场景参与者存在依赖关系的其它场景参与者的位置点和朝向。
146.需要说明的一点是,本发明中,场景参与者之间的依赖关系可能具有不确定性,也即,不同场景参与者之间的相对位置关系和相对朝向关系可能并非确定的数值,而是一段区间,例如,场景参与者a位于场景参与者b的右前方150米至200米之间,且场景参与者a与场景参与者b之间的朝向角度在30度至40度之间。在依赖关系不确定的情况下,计算机设备可以在步骤1获取测试场景的场景描述信息时,或者可以在步骤4.3确定其它场景参与者的位置点和朝向时,从相对位置关系和相对朝向关系对应的区间中指定具体的数值,如从区间中随机指定一个数值、指定区间的最小值、指定区间的最大值、指定区间的中间值等。若通过指定的数值无法搜索到合适的生成位置点,则重新从区间中指定其它数值重新搜索。
147.步骤4.3.3:基于其它场景参与者的位置点和朝向,计算该位置点的评价值。
148.计算机设备基于与该目标场景参与者存在依赖关系的所有其它场景参与者的位置点和朝向,计算该位置点的评价值,以评估该位置点对于场景参与者之间的相对位置关系和相对朝向关系的合适程度。可选地,上述步骤4.3.3包括:计算其它场景参与者的位置点与道路边界的距离;计算所有场景参与者之间的朝向角度与期望朝向角度的偏差;基于该距离和该偏差,计算该位置点的评价值。示例性地,位置点x的评价值f(x)的计算公式如下所示。
[0149][0150]
其中,z是指与目标场景参与者存在依赖关系的其它场景参与者的数量,z为正整数;ci是指第i个其它场景参与者;dis tan ce(ci)是指第i个其它场景参与者的位置点与道路边界的距离;angle_bias(ci)是指第i个其它场景参与者与其余z-1个其它场景参与者之间的朝向角度与期望朝向角度的偏差。
[0151]
步骤4.4:若n个位置点中存在评价值为零的位置点,则将该位置点作为该目标场景参与者的生成位置点,将该目标场景参与者位于该位置点时的朝向作为该目标场景参与者的生成朝向,将该目标场景参与者位于该位置点时其它场景参与者的位置点和朝向分别作为其它场景参与者的生成位置点和生成朝向。
[0152]
通过上述步骤4.3的评价值计算,位置点的评价值越小,表示位置点离合适区域越近。若位置点的评价值为零,则表示位置点位于合适区域中,可以将位置点作为目标场景参与者的生成位置点。基于此,针对目标场景参与者采样的n个位置点中,若存在评价值为零的位置点,则:将评价值为零的位置点,作为该目标场景参与者的生成位置点;将该目标场景参与者位于评价值为零的位置点时的朝向,作为该目标场景参与者的生成朝向;将该目标场景参与者位于评价值为零的位置点时其它场景参与者的位置点和朝向,分别作为其它场景参与者的生成位置点和生成朝向。
[0153]
可选地,由于存在多个目标场景参与者时,不同的目标场景参与者以及与目标场景参与者存在依赖关系的其它场景参与者,即便生成位置点不同也可能会由于外观体积等因素,导致场景参与者存在重叠区域,与实际自动驾驶场景不符合,基于此,为了确保自动驾驶测试的合理性和真实性,上述步骤4.4之后,还包括:基于各个场景参与者的生成位置点和生成朝向,获取各个场景参与者在场景地图中的占用区域;判断占用区域之间是否存
在重叠区域;若存在重叠区域,则针对重叠区域对应的目标场景参与者以及与该目标场景参与者存在依赖关系的其它场景参与者,从上述步骤4.2开始重新执行。也就是说,若场景参与者的占用区域之间存在重叠,则重新计算重叠区域对应的场景参与者所在组的所有场景参与者的生成位置点和生成朝向。
[0154]
步骤4.5:若n个位置点中不存在评价值为零的位置点,则基于n个位置点的评价值,从可行驶区域中重新获取n个位置点,并从步骤4.3开始再次执行。
[0155]
针对目标场景参与者采样的n个位置点中,若所有位置点的评价值均不为零,则计算机设备从可行驶区域中重新生成并筛选n个位置点,再次计算重新获取的n个位置点的评价值,以逐渐逼近合适区域。本发明中,若所有位置点的评价值均不为零,在每个位置点周围均重新生成若干新位置点,然后从新位置点中筛选n个新位置点,作为从步骤4.3开始再次迭代计算的n个位置点。其中,为了实现快速逼近合适区域,若某个位置点的评价值较小,则表示该位置点与合适区域距离较近,则可以在该位置点周围生成较多的新位置点;若某个位置点的评价值较大,则表示该位置点与合适区域距离较远,则可以在该位置点周围生成较少的新位置点。
[0156]
基于此,可选地,上述基于n个位置点的评价值,从可行驶区域中重新获取n个位置点,包括如下几个子步骤(步骤4.5.1至4.5.4)。
[0157]
步骤4.5.1:针对每个位置点,基于n个位置点的评价值,确定新位置点采样数量和新位置点最大移动距离。
[0158]
评价值均不为零的n个位置点中每个位置点周围均需要生成若干新位置点,对于每个位置点,计算机设备基于n个位置点的评价值,确定该位置点周围生成新位置点所参考的新位置点采样数量和新位置点最大移动距离。
[0159]
可选地,新位置点采样数量的确定过程包括:获取n个位置点的评价值中的最大评价值;获取采样数量控制常数;基于采样数量控制常数、最大评价值与该位置点的评价值之间的差值、最大评价值与所有位置点的评价值之间的差值之和,计算新位置点采样数量。示例性地,当前种群的n个位置点的评价值中最大评价值为f
max
;采样数量控制常数为m,m为正整数;第k个位置点的评价值为f(xk);则针对第k个位置点的新位置点采样数量sk的计算公式如下所示。其中,ξ是一个最小量,用于避免除零操作;表示向下取整。
[0160][0161]
通过上述新位置点采样数量的计算公式,可以实现当前种群中评价值越小的位置点周围生成越多的新位置点。但为了限制评价值小的位置点周围不会产生过多的新位置点,同时评价值大的位置点周围不会产生过少的新位置点,以确保位置点采样的多样性与均衡性,可选地,本发明对新位置点采样数量进行了限制:若新位置点采样数量小于第一系数与采样数量控制常数之积,则将新位置点采样数量更新为对第一系数与采样数量控制常数之积取整所得到的整数;若新位置点采样数量大于第二系数与采样数量控制常数之积,则将新位置点采样数量更新为对第二系数与采样数量控制常数之积取整所得到的整数;若新位置点采样数量大于或等于第一系数与采样数量控制常数之积,且小于或等于第二系数与采样数量控制常数之积,则保持新位置点采样数量的取值不变;其中,第一系数小于第二系数,且第一系数和第二系数均为小于1的正数。
[0162]
示例性地,采样数量控制常数为m,m为正整数;第一系数为a,a为小于1的正数;第二系数为b,b为小于的正数,且b大于a;则针对第k个位置点的新位置点采样数量sk的限制公式如下所示。其中,round是四舍五入的取整函数,以确保计算出的新位置点采样数量均为整数。通过下述限制公式,能够实现新位置点采样数量最大不超过b*m,最小不少于a*m。
[0163][0164]
可选地,新位置点最大移动距离的确定过程包括:获取n个位置点的评价值中的最小评价值;获取移动距离控制常数;基于移动距离控制常数、该位置点的评价值与最小评价值之间的差值、所有位置点的评价值与最小评价值之间的差值之和,计算新位置点最大移动距离。示例性地,当前种群的n个位置点的评价值中最小评价值为f
min
;移动距离控制常数为a
max
,a
max
为正数;第k个位置点的评价值为f(xk);则针对第k个位置点的新位置点最大移动距离ak的计算公式如下所示。其中,ξ是一个最小量,用于避免除零操作。
[0165][0166]
通过上述新位置点最大移动距离的计算公式,可以实现当前种群中评价值越小的位置点计算的新位置最大移动距离越小,评价值越大的位置点计算的新位置点最大移动距离越大。另外,结合上述新位置点采样数量的计算公式,如图7所示,可以实现:评价值越小的位置点周围生成的新位置点数量越多且分布越密集(如图7中(a)所示),评价值越大的位置点周围生成的新位置点数量越少且分布越稀疏(如图7中(b)所示)。
[0167]
步骤4.5.2:按照新位置点采样数量和新位置点最大移动距离,在可行驶区域中该位置点的周围重新采样新位置点。
[0168]
针对当前种群中的每个位置点,计算机设备在该位置点周围重新采样新位置点,新位置点的数量等于新位置点采样数量,新位置点与该位置点之间的最大距离小于或等于最大移动距离。可选地,在重新采样新位置点时,新位置点的采样方向包括以下至少一项:该位置点所在车道的轨迹方向、该位置点所在车道的轨迹方向的相反方向、该位置点所在车道的法线方向、该位置点所在车道的法线方向的相反方向。
[0169]
其中,为了降低新位置点采样至可行驶区域外的概率,在新位置点的采样方向包括该位置点所在车道的轨迹方向,和/或该位置点所在车道的轨迹方向的相反方向的情况下,新位置点与该位置点的距离小于或等于新位置点最大移动距离,也即新位置点相对该位置点移动的距离是新位置点最大移动距离乘以[-1,1]中随机采样的值;在新位置点的采样方向包括该位置点所在车道的法线方向,和/或该位置点所在车道的法线方向的相反方向的情况下,新位置点与该位置点的距离小于或等于道路宽度,也即新位置点相对该位置点移动的距离是道路宽度乘以[-1,1]中随机采样的值。
[0170]
本发明对各个采样方向上所采样的新位置点的数量不作限定,可选地,上述新位置点采样数量可以均匀分布在各个采样方向上,也可以按照比例分布在各个采样方向上,还可以随机分布在各个采样方向上。示例性地,如图7所示,本发明设置新位置点采样数量中约4/5沿着位置点所在车道的轨迹方向、位置点所在车道的轨迹方向的相反方向采样,约
1/5沿着位置点所在车道的法线方向、位置点所在车道的法线方向的相反方向采样。
[0171]
步骤4.5.3:分别计算n个位置点周围所采样的所有新位置点的评价值。
[0172]
当前种群中的每个位置点周围均重新采样得到若干新位置点,计算机设备计算所有新位置点的评价值。其中,新位置点的评价值的计算方式,可以参考上述步骤4.3.1至4.3.3,此处不多赘述。
[0173]
步骤4.5.4:基于所有新位置点的评价值,从所有新位置点中筛选n个位置点。
[0174]
若存在评价值为零的新位置点,则该评价值为零的新位置点即为目标场景参与者的生成位置点,计算机设备以该评价值为零的新位置点执行上述步骤4.4;若所有新位置点的评价值均不为零,则计算机设备从所有新位置点中筛选n个位置点,以作为下次迭代计算的种群,也即,计算机设备以重新筛选的n个位置点执行上述步骤4.5。本发明通过确保每次迭代计算时种群中位置点数量保持不变,可以确保每次迭代计算的开销保持不变。
[0175]
可选地,上述步骤4.5.4包括:针对每个新位置点,计算该新位置点与其余新位置点之间的距离之和;基于该新位置点与其余新位置点之间的距离之和,以及所有新位置点与其余新位置点之间的距离之和,计算该新位置点的选取概率;从所有新位置点中筛选出评价值最小的至少一个位置点,以及选取概率最大的至少一个位置点,重新组合为n个位置点。
[0176]
示例性地,所有新位置点的数量为w,w为正整数;第q个新位置点与第r个新位置点之间的距离为d(xq,xr);则第q个新位置点的选取概率p(xq)的计算公式如下所示。
[0177][0178]
在上述筛选新位置点的方式中,一方面通过评价值,可以将最优的新位置点选取进下一代种群;另一方面通过选取概率,可以实现密度较高的新位置点(即该新位置点周围有很多其它新位置点)被选取进下一代种群的概率降低,而密度较低的新位置点(即该新位置点与其它新位置点距离较远)更容易被选取进下一代种群。这样可以确保位置点搜索的广度,在保证评价值最小的新位置点被选取进下一代种群的同时,让下一次迭代计算时位置点搜索的区域范围尽可能更大。
[0179]
在一个示例中,由于测试场景初始化生成时的场景描述信息可能并未基于自动驾驶测试平台中的场景地图来确定,从而在场景地图中可能无法找到位置点能够精确满足场景参与者之间的相对位置关系和相对朝向关系,基于此,为了避免计算机设备在上述情形下无限度地搜索位置点、避免浪费处理资源,上述步骤4.3之后还包括:若n个位置点中不存在评价值为零的位置点,则获取针对该目标场景参与者的位置点已采样次数;若该位置点已采样次数大于或等于设定采样阈值,则生成并显示位置点搜索失败提示;若该位置点已采样次数小于设定采样阈值,则执行上述步骤4.5。
[0180]
步骤5:按照生成位置点和生成朝向,在道路元素所在的场景地图中生成场景参与者;其中,测试场景包括场景地图和场景参与者。
[0181]
计算机设备按照测试场景初始化生成时涉及的各个场景参与者的生成位置点和生成朝向,在场景地图的对应位置生成场景参与者,以实现测试场景的初始化生成。另外,
为了展示测试场景的初始化生成效果,本发明还可以在仿真环境中初始化生成测试场景,其中,测试场景可以有不同的传感器类型和传感器视角,能够实现以不同方式从不同角度渲染并显示测试场景,基于此,在一个示例中,上述步骤5之后还包括:针对预设场景参与者设置虚拟传感器,以及传感器视角;采集虚拟传感器以传感器视角观察所获得传感器数据,并将传感器数据渲染为场景图像;显示场景图像。其中,预设场景参与者是指预先设置的、作为观察视角的场景参与者。
[0182]
可选地,虚拟传感器包括以下任意一项:虚拟rgb相机、虚拟深度相机、虚拟语义分割相机、虚拟激光雷达。其中,基于虚拟rgb相机所采集的传感器数据,能够渲染得到rgb图像;基于虚拟深度相机所采集的传感器数据,能够渲染得到深度相机raw、深度相机灰度图像和深度相机对数灰度图像;基于虚拟语义分割相机所采集的传感器数据,能够渲染得到城市景观语义分割图像;基于虚拟激光雷达所采集的传感器数据,能够渲染得到激光雷达图像。可选地,在场景参与者为车辆的情况下,传感器视角包括以下任意一项:靠近车辆顶部向前观察、在车辆内部向前观察、在车辆前部向后观察、远离车辆顶部俯视、在车辆一侧向前观察。
[0183]
示例性地,以连接carla模拟器使用pygame初始化生成测试场景为例,首先,计算机设备通过网络连接carla仿真环境,选择对应的场景地图,在生成位置点上以生成朝向生成场景参与者;然后,计算机设备在预设场景参与者上设置虚拟传感器,并在虚拟传感器上设置监听函数,每当虚拟传感器接收到数据就解析这些数据,从而产生carla.sensordata格式的数据流,再使用carla.convert使其转化成对应传感器类型的carla.image数据,并以流的形式转化成numpy数组对象,修改数组的大小与要生成的场景图像的分辨率对应,实现自定义仿真场景分辨率;最后,计算机设备将传感器数据渲染在pygame窗口上,同时可以借助carla的接口实现保存场景图像的功能。
[0184]
综上所述,本发明至少具有如下有益效果:
[0185]
(1)通过边界膨胀处理和边界侵蚀处理连接道路元素中的所有可行驶区域,并使用三角形填充可行驶区域。首先根据车道的边界生成多边形;然后所有多边形的边界向外扩张,以消除车道边界间空隙等影响;之后,所有车道对应的多边形取并集,合并成一个大的多边形;最后大多边形边界向内侵蚀,以恢复扩张前的大小。本发明通过边界膨胀处理和边界侵蚀处理,可以在道路边界保持不变的同时,连接道路中所有可行驶区域。另外,本发明将可行驶区域分解为若干三角形,能够实现在可行驶区域中均匀采样位置点,提升位置点采样效率。
[0186]
(2)考虑场景参与者之间的依赖关系,基于依赖关系将测试场景初始化生成时涉及的所有场景参与者分组。在获取用户针对测试场景初始化生成时的场景描述信息之后,基于场景描述信息中场景参与者相关信息,解析不同场景参与者之间的相对位置关系和相对朝向关系(即依赖关系),并按照依赖关系将测试场景初始化生成时涉及的所有场景参与者分组。这样,一方面可以减小测试场景初始化生成的节点规模,另一方面可以增加并行确定多组场景参与者的位置点和朝向的可能,有助于提升位置点搜索速度。
[0187]
(3)引入位置点迭代计算机制,先计算可行驶区域中不同位置点的评价值,再基于评价值生成并筛选下一次迭代计算的位置点,以逐渐逼近合适的生成区域。对于位置点和朝向没有参考其它场景参与者的场景参与者,随机采样位置点作为初始种群,然后针对种
群中的每个位置点基于依赖关系计算其它场景参与者的位置点和朝向,并以此计算位置点的评价值;之后基于位置点的评价值在位置点周围重新采样若干新位置点,选择评价值小的新位置点和个体密度较低的新位置点组成下一代种群。通过这样多次迭代计算,逐步逼近合适的场景参与者生成区域,实现了位置点的自动化搜索,有效提升位置点搜索速度,有助于实现快速初始化生成测试场景。另外,本发明通过提供位置点迭代计算机制,仅需用户抽象描述不同场景参与者之间的依赖关系,而无需用户指定具体的坐标点,更符合用户的思维逻辑和表达逻辑。
[0188]
下面,通过比较本发明提供的位置点迭代计算机制和相关技术中的scenic语言生成1000个有效场景所花费的平均时间,来验证本发明技术方案的有效性。其中,scenic是一种特定领域的概率编程语言,用于模拟机器人和自动驾驶汽车等网络物理系统的环境;scenic定义了场景的分布、物理对象和代理的配置,从分布中采样,模拟生成用于训练或测试的具体场景;scenic根据车辆朝向和区域范围剪切放置物体的区域,来快速确定满足要求的物体位置。
[0189]
本实验是两辆车在弯道两侧的场景,固定a车相对b车90
°
,分别设置a车在b车左方200米前方150米、左方200米后方150米、右方200米前方150米、右方200米后方150米,共四种约束条件。本发明所提供的迭代计算机制在上述四种约束条件下的搜索时间分别为:1.36秒、1.49秒、1.39秒、1.45秒;scenic在上述四种约束条件下的搜索时间分别为:5.4秒、5.03秒、5.57秒、5.37秒。可见,本发明技术方案生成有效场景花费的时间是scenic的26.6%,有效提升了测试场景的初始化生成速度。
[0190]
请参考图8,其示出了本发明一个实施例提供的自动驾驶测试场景的初始化生成装置的框图。该装置可以为计算机设备,也可以设置在计算机设备中。如图8所示,该装置包括如下几个模块:信息获取模块810、区域生成模块820、kd树获取模块830、位置计算模块840和初始化生成模块850。
[0191]
信息获取模块810,用于获取自动驾驶测试场景的场景描述信息,所述场景描述信息包括:所述测试场景的场景初始化区域和场景参与者相关信息。
[0192]
区域生成模块820,用于基于与所述场景初始化区域匹配的道路元素,生成场景参与者的可行驶区域。
[0193]
kd树获取模块830,用于获取所述道路元素的kd树。
[0194]
位置计算模块840,用于基于所述场景参与者相关信息和所述kd树,从所述可行驶区域中搜索所述场景参与者的生成位置点,并确定所述场景参与者的生成朝向。
[0195]
初始化生成模块850,用于按照所述生成位置点和所述生成朝向,在所述道路元素所在的场景地图中生成所述场景参与者;其中,所述自动驾驶测试场景包括所述场景地图和所述场景参与者。
[0196]
可选地,所述区域生成模块820,用于:获取与所述场景初始化区域匹配的道路元素,以及所述道路元素的边界信息;按照所述边界信息生成至少一个多边形;对至少一个多边形进行边界膨胀处理,并通过对膨胀后的至少一个多边形取并集,得到目标多边形;对所述目标多边形进行边界侵蚀处理,得到所述可行驶区域;其中,所述边界侵蚀处理时的侵蚀距离等于所述边界膨胀处理时的膨胀距离。
[0197]
可选地,所述位置计算模块840,用于:基于所述场景参与者相关信息,提取目标场
景参与者,所述目标场景参与者的位置点和朝向不依赖于其它场景参与者;针对每个目标场景参与者,从所述可行驶区域中随机采样n个位置点;针对每个位置点,基于所述场景参与者相关信息和所述kd树,确定所述目标场景参与者位于所述位置点时的朝向,以及与所述目标场景参与者存在依赖关系的其它场景参与者的位置点和朝向,并计算所述位置点的评价值;若n个位置点中存在评价值为零的位置点,则将所述位置点作为所述目标场景参与者的生成位置点,将所述目标场景参与者位于所述位置点时的朝向作为所述目标场景参与者的生成朝向,将所述目标场景参与者位于所述位置点时其它场景参与者的位置点和朝向分别作为其它场景参与者的生成位置点和生成朝向;若n个位置点中不存在评价值为零的位置点,则基于n个位置点的评价值从所述可行驶区域中重新获取n个位置点,并返回执行针对每个位置点,基于所述场景参与者相关信息和所述kd树,确定所述目标场景参与者位于所述位置点时的朝向,以及与所述目标场景参与者存在依赖关系的其它场景参与者的位置点和朝向,并计算所述位置点的评价值。
[0198]
可选地,所述位置计算模块840,还用于:针对每个位置点,基于所述kd树确定所述目标场景参与者位于所述位置点时的朝向;基于所述位置点、所述朝向以及所述场景参与者相关信息,确定与所述目标场景参与者存在依赖关系的其它场景参与者的位置点和朝向;基于所述其它场景参与者的位置点和朝向,计算所述位置点的评价值。
[0199]
可选地,所述位置计算模块840,还用于:计算所述其它场景参与者的位置点与道路边界的距离;计算所有场景参与者之间的朝向角度与期望朝向角度的偏差;基于所述距离和所述偏差,计算所述位置点的评价值。
[0200]
可选地,所述位置计算模块840,还用于:针对每个位置点,基于n个位置点的评价值,确定新位置点采样数量和新位置点最大移动距离;按照所述新位置点采样数量和所述新位置点最大移动距离,在所述可行驶区域中所述位置点的周围重新采样新位置点;分别计算n个位置点周围所采样的所有新位置点的评价值;基于所有新位置点的评价值,从所有新位置点中筛选n个位置点。
[0201]
可选地,所述位置计算模块840,还用于:获取n个位置点的评价值中的最大评价值;获取采样数量控制常数;基于所述采样数量控制常数、所述最大评价值与所述位置点的评价值之间的差值、所述最大评价值与所有位置点的评价值之间的差值之和,计算所述新位置点采样数量。
[0202]
可选地,所述位置计算模块840,还用于:获取第一系数与第二系数,所述第一系数小于所述第二系数,且所述第一系数和所述第二系数均为小于1的正数;若所述新位置点采样数量小于所述第一系数与所述采样数量控制常数之积,则保持所述新位置点采样数量的取值不变;若所述新位置点采样数量大于或等于所述第一系数与所述采样数量控制常数之积,且小于或等于所述第二系数与所述采样数量控制常数之积,则将所述新位置点采样数量更新为对所述新位置点采样数量取整所得到的整数;若所述新位置点采样数量大于所述第二系数与所述采样数量控制常数之积,则将所述新位置点采样数量更新为对所述第二系数与所述采样数量控制常数之积取整所得到的整数。
[0203]
可选地,所述位置计算模块840,还用于:获取n个位置点的评价值中的最小评价值;获取移动距离控制常数;基于所述移动距离控制常数、所述位置点的评价值与所述最小评价值之间的差值、所有位置点的评价值与所述最小评价值之间的差值之和,计算所述新
位置点最大移动距离。
[0204]
可选地,所述位置计算模块840,还用于:针对每个新位置点,计算所述新位置点与其余新位置点之间的距离之和;基于所述新位置点与其余新位置点之间的距离之和,以及所有新位置点与其余新位置点之间的距离之和,计算所述新位置点的选取概率;从所有新位置点中筛选出评价值最小的至少一个位置点,以及选取概率最大的至少一个位置点,重新组合为n个位置点。
[0205]
可选地,所述装置,还用于:基于各个场景参与者的生成位置点和生成朝向,获取各个场景参与者在场景地图中的占用区域;判断占用区域之间是否存在重叠区域;若存在重叠区域,则针对重叠区域对应的目标场景参与者以及与所述目标场景参与者存在依赖关系的其它场景参与者,返回执行针对每个目标场景参与者,从所述可行驶区域中随机采样n个位置点。
[0206]
可选地,所述装置,还用于:若n个位置点中不存在评价值为零的位置点,则获取针对所述目标场景参与者的位置点已采样次数;若所述位置点已采样次数大于或等于设定采样阈值,则生成并显示位置点搜索失败提示;若所述位置点已采样次数小于设定采样阈值,则基于n个位置点的评价值从所述可行驶区域中重新获取n个位置点,并返回执行针对每个位置点,基于所述场景参与者相关信息和所述kd树,确定所述目标场景参与者位于所述位置点时的朝向,以及与所述目标场景参与者存在依赖关系的其它场景参与者的位置点和朝向,并计算所述位置点的评价值。
[0207]
可选地,所述初始化生成模块850,还用于:针对预设场景参与者设置虚拟传感器,以及传感器视角;其中,所述预设场景参与者是指预先设置的、作为观察视角的场景参与者;采集所述虚拟传感器以所述传感器视角观察所获得传感器数据,并将所述传感器数据渲染为场景图像;显示所述场景图像。
[0208]
有关装置模块的具体执行过程、有益效果等阐述,请参见上述方法实施例的介绍说明,此处不多赘述。
[0209]
在示例性实施例中,还提供了一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行,以实现上述自动驾驶测试场景的初始化生成方法。
[0210]
在示例性实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述自动驾驶测试场景的初始化生成方法。
[0211]
在示例性实施例中,还提供了一种计算机程序产品,当所述计算机程序产品在计算机设备上运行时,使得计算机设备执行如上述自动驾驶测试场景的初始化生成方法。
[0212]
以上所述仅为本发明的较佳实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1