聚合国内IT技术精华文章,分享IT技术精华,帮助IT从业人士成长

自动驾驶仿真场景生成pipeine

2022-08-13 13:29 浏览: 135921 次 我要评论(0 条) 字号:

“智能汽车生态群"加微信Time-machine-(备注公司+姓名)

本文来源知乎@大道至简,已获作者授权发布


1. 背景


计算机硬件和人工智能的快速发展,使得模拟器的开发能够为数据收集和算法测试提供高效便捷的虚拟环境。模拟大大减少了人工成本和时间,以及环境因素或人为错误破坏昂贵设备的风险。


为了为配备各种传感器的自动驾驶车辆构建模拟器,除了逼真的视觉效果,还必须对可能的真实场景进行逼真的模拟。场景通常意味着一段时间内发生的一系列代理操作。换句话说,模拟器应该模拟现实世界中车辆遇到的各种场景。


本文主要内容:


1. 可以根据自主车辆周围代理的信息实时生成场景,而不是在整个虚拟环境中生成场景;

  1. 2. 尝试生成包含汽车、行人和动物的场景,即不只是汽车或汽车和行人;


  2. 3. 使用CNN选择代理为自动驾驶模拟器生成场景。

目前自动驾驶仿真场景生成方法主要分为四种,基于启发式的方法(heuristic-based )、基于注释的方法(heuristic-based )、面向脚本的方法( script-based)和基于图形用户界面(GUI)的方法。


本文主要研究自动生成场景,即根据大型虚拟环境中周围代理的状态自动生成的仿真场景。


2.场景生成pipeline


鉴于虚拟环境应为自主驾驶提供足够的空间,整个环境的模拟是不可行的,不仅因为计算限制,而且因为大型场景难以管理。因此,场景模拟的重点是在ego车辆附近生成一个场景。场景生成的重点是场景地图生成器、场景节点的激活、基于CNN的场景代理选择器和以事件为中心的动作调度器。


场景生成结构如图1所示。模拟器分为虚拟环境和控制系统。虚拟环境提供模拟环境,控制系统控制虚拟环境中代理的移动。


  • 自动驾驶车辆的位置和方向由自动驾驶车辆监视器计算。

  • 场景节点查找器查找位于自主车辆正在或即将行驶的道路上的最近场景节点,这是通过利用场景图实现的。

  • 冲突处理程序将冲突消息从虚拟环境传递到场景模块。

  • 目标位置生成器利用基于所选代理的相对位置和方向以及周围道路的结构的启发式方法,来确定所选代理目标位置。

  • 给定目标区域的中心位置和半径,信息提取器提取关于区域中的道路和代理的信息。当代理操作不在范围内时,代理操作的基本执行由代理基本操作控制器控制激活场景节点的区域。

  • 路径查找器生成控制信息,包括速度、方向和动画,用于控制虚拟环境中代理的移动。

图1场景生成结构

2.1 场景图生成器

每一条路R的信息用如下参数表示,分别为起点、终点、起点终点相连道路、起点终点所在junction,示意图如fig2所示。

图2 道路信息示意图

junction主要指的是一个路连接多个路的情况,由多组道路对组成。示意图如图3所示。

图3 junction和road的关系

首先,分析所有道路以获得道路对。一条道路对包括两条相邻道路,其中第一条道路的终点连接到第二条道路的起点。所有道路对将迭代添加到图中。然后,创建一个顶点表示道路的有向图。列表与顶点关联以保存将起点连接到顶点端点的道路分割。生成伪代码如下所示:

场景图是一组场景节点。其生成涉及遍历图。深度优先搜索算法用于遍历有向图。设d为两个相邻场景节点之间的距离。在道路上以距离d的间隔对点进行采样。在采样点的位置,创建场景节点。如果道路的剩余长度dr不足以采样点,则将其旁边的道路长度添加到dr中,以计算第一个场景节点。由于该方法在计算距离时忽略了交叉点,因此两个场景节点之间的实际距离可能大于d。在生成过程中,保存了在每条道路上生成的场景节点的标识(ID)。在模拟过程中,场景仅发生在自主车辆周围。给定道路的ID可以有效地找到靠近自主车辆的场景节点。为每个场景节点分配初始操作。用户可以配置为每个初始动作选择的概率。激活场景节点时,将调度场景节点的初始操作。

2.2 基于CNN的场景agent选择器

当场景节点或以事件为中心的动作调度器选择并执行动作时,必须确定执行动作的适当代理。选择正确的代理执行操作对于实现自然场景模拟至关重要。例如,当场景要求车辆执行人的动作时,人不应在车辆后面,因为车辆无法在短时间内显著改变其方向。为了确保选定的代理能够自然地执行给定的操作,我们使用CNN评估选定代理的合理性,因为CNN已被证明能够很好地执行分类任务。

CNN的输入数据格式是图像。然而,为了减少虚拟环境和控制系统之间的数据传输量,仅将包含代理和道路状态的原始数据传输到控制系统。为了将接收到的原始数据转换为图形格式,在模拟之前将整个虚拟环境的俯视图图像预读入内存。通过裁剪顶视图图像的一部分并将当前场景节点放置在其中心位置来生成输入图像。宽度和高度都与场景节点的直径相同。场景节点附近的代理也使用车辆、动物和行人的存储库资源,基于其位置和方向粘贴到图像中。

CNN结构如图4所示。我们将构建块的结构定义为Conv-ReLU池批量规范化。CNN由五个构建块组成,然后是dropout和flatten层,以及两组密集的ReLU批量归一化层和一个dense层。然后,将输出馈送到Softmax层以输出分类结果。该构建块包含一个卷积层、一个ReLU操作层、最大池层和一个批处理规范化层。根据经验选择滤波器的数量n。

图4 CNN网络结构

2.3 碰撞事件监测

事件是由代理执行的操作导致的情况。基于不同的事件可以产生不同的反应。

碰撞事件检测器处理碰撞消息。碰撞消息包含碰撞在一起的代理,以及它们碰撞的位置。当相同的代理出现在冲突代理池和冲突消息中时,场景执行的代理的操作导致了事故。因此,代理将从冲突事件检测器中删除,并且冲突消息也将被删除。然后,生成一个新事件并将其添加到事件池中。

2.4 以事件为中心的操作调度器

当事件池中存在事件时,预期围绕这些事件位置的代理会做出适当的反应。以事件为中心的动作生成器通过一系列按事件类别预先分组的动作将动作分配给周围的代理。其目的是通过调度与自动驾驶车辆附近发生的事件相关的行动,促进场景的开发。

3. 实验

左边红色框代表选择场景智能体,右边表示控制他们的动作产生危险场景。

4. 结论

在本文中,我们提出了一种生成各种场景的管道,用于自动车辆模拟。主要贡献是培训CNN以选择合适的代理,生成涉及行人、动物和车辆的真实场景,以及应用以事件为中心的行动调度模块为代理实时生成事件位置周围的相关行动。我们在虚拟环境中模拟各种场景,不仅生成场景,还生成周围代理的相关动作,以确保模拟符合现实。为了实现实时性能,场景仅模拟了自动驾驶车辆周围的环境,这是通过生成场景图实现的。

活动推荐 

8.16日直播预告:汽车电子可靠性网络研讨会

文末阅读原文,关注作者知乎!


END


       分享不易,恳请点个【


网友评论已有0条评论, 我也要评论

发表评论

*

* (保密)

Ctrl+Enter 快捷回复