一种仿真交通场景搭建方法及系统、智能体车辆控制方法与流程

文档序号:28803563发布日期:2022-02-09 01:00阅读:107来源:国知局
一种仿真交通场景搭建方法及系统、智能体车辆控制方法与流程

1.本发明属于强化学习及自动驾驶仿真技术领域,具体涉及一种仿真交通场景搭建方法及系统、智能体车辆控制方法。


背景技术:

2.随着当前社会的发展以及各项技术水平的不断提升,人们对自动驾驶方面的要求也在不断提高,这就要求我们对于新开发出的自动驾驶相关技术进行大量的测试以验证此技术的可行性,除了进行实车测试之外,还需要进行大量的仿真测试,这就要求我们在仿真环境搭建上具有较高的还原力,并且能够提供对应的交通场景来满足自动驾驶相关技术的测试需求。
3.目前的仿真交通测试场景构建过程中,大多数是根据实车采集的真实场景数据,通过场景还原的方法进行构建,这种方法不仅耗费大量的资源,而且场景比较单一,并且由于现在交通复杂性增加也在一定程度下限制了实车采集的可行性,所以需要一种基于当前路网环境的仿真交通场景构建方法,来提升构建场景的简易性以及场景的丰富性。
4.unity作为一款三维游戏引擎,不仅提供了强大的实时渲染的功能,而且可以导入第三方的仿真模型,包括动力学约束,动态场景等,此外也可以提供数据交互,包括传感器、控制器的数据接口,为数字孪生场景的构建提供了接口。
5.强化学习用于描述和解决智能体在与环境交互过程中通过某种学习策略来达成回报最大化或实现特定目标的问题,智能体作为学习系统,获取外部环境下的状态,对环境采取试探行为并获取环境反馈的评价以及新的环境状态,根据评价决定当前试探行为的趋势是该加强或减弱,此过程反复的交互作用中不断修改状态到动作的映射策略,以达到优化系统性能的目的。


技术实现要素:

6.为解决传统场景搭建过程中需要实车采集大规模数据带来的各种资源消耗,构建复杂、多样的仿真交通场景,为自动驾驶技术的仿真测试提供更为丰富、准确的场景数据,在本发明的第一方面提供了一种仿真交通场景搭建方法,包括:根据真实路网数据构建仿真交通场景模型;在所述仿真交通场景模型中放置多辆智能体车辆;通过训练完成的多智能体的强化学习模型控制所述多辆智能体车辆,利用受控的所述多辆智能体车辆对所述仿真交通场景进行动态仿真。
7.在本发明的一些实施例中,所述在所述仿真交通场景模型中放置多辆智能体车辆包括:在所述仿真交通场景模型中放置多辆主车车辆和多辆副车车辆,其中:每辆主车车辆为智能体车辆,每辆副车车辆的行驶路线基于路网结构随机生成。
8.在本发明的一些实施例中,所述训练完成的多智能体的强化学习模型通过如下步骤训练:搭建强化学习模型的环境,构建多智能体的强化学习模型;每次迭代时计算当前多智能体的行为的观测值和奖励,并调整下一次多智能体的行为策略;迭代前述步骤,直到强
化学习模型满足预设的结束条件或达到预设迭代次数。
9.进一步的,所述多辆智能体车辆不发生碰撞。
10.在上述实施例中,所述根据真实路网数据构建仿真交通场景模型包括如下步骤:根据真实路网数据构建道路模型和车辆模型;将所述道路模型和带传感器的车辆模型导入到3d仿真软件中。
11.本发明的第二方面,提供了一种智能体车辆控制方法,包括:建立强化学习模型与仿真交通场景之间的连接;构建强化学习模型的学习环境,并训练强化学习模型;根据所述训练完成的强化学习模型构建每辆智能体车辆的决策模型。
12.进一步的,所述构建每辆智能体车辆的决策模型包括:根据每辆智能体车辆的初始行为或上次迭代计算出的行为初始化训练完成的强化学习模型;实时获取智能体的状态数据,并根据其计算观测值;基于所述观测值,每辆智能体车辆利用强化学习模型控制智能体车辆的下一次行为。
13.本发明的第三方面,提供了一种仿真交通场景搭建系统,包括:构建模块,用于根据真实路网数据构建仿真交通场景模型;放置模块,用于在所述仿真交通场景模型中放置多辆智能体车辆;仿真模块,用于通过训练完成的多智能体的强化学习模型控制所述多辆智能体车辆,利用受控的所述多辆智能体车辆对所述仿真交通场景进行动态仿真。
14.本发明的第四方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明第一方面提供的仿真交通场景搭建方法。
15.本发明的第五方面,提供了一种计算机可读介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现本发明第一方面提供的仿真交通场景搭建方法。
16.本发明的有益效果是:
17.1.本发明基于真实路网数据以及带有传感器的车辆模型的的仿真,提供了一种带反馈机制的场景搭建方法,从而提高场景搭建的灵活性;
18.2.基于真实数据的强化学习模型,不仅能高逼真度还原现实场景,而且减少了由于采集过程的噪声数据的影响,突破了实车采集复杂交通场景的限制,提高了复杂交通场景模拟的准确性;
19.3.通过强化学习训练仿真场景中的主车车辆以及智能体车辆,实现仿真交通场景的动态模拟,甚至可以根据交通规则或实际路况模拟出更为复杂的交通场景。
附图说明
20.图1为本发明的一些实施例中的仿真交通场景搭建方法的基本流程示意图;
21.图2为本发明的一些实施例中的智能体训练过程的基本示意图;
22.图3为本发明的一些实施例中的多智能体训练的具体流程示意图;
23.图4为本发明的一些实施例中的每个智能体的迭代计算步骤示意图;
24.图5为本发明的一些实施例中的基于仿真交通场景下使用强化学习方法训练主车的流程示意图;
25.图6为本发明的一些实施例中的保持电子地平线的路网数据范围最小化的的具体结构示意图;
26.图7为本发明的一些实施例中的电子设备的结构示意图。
具体实施方式
27.以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
28.参考图1与图2,在本发明的第一方面,提供了一种仿真交通场景搭建方法,包括:s100.根据真实路网数据构建仿真交通场景模型;s200.在所述仿真交通场景模型中放置多辆智能体车辆;s300.通过训练完成的多智能体的强化学习模型控制所述多辆智能体车辆,利用受控的所述多辆智能体车辆对所述仿真交通场景进行动态仿真。
29.在本发明的一些实施例的步骤s200中,所述在所述仿真交通场景模型中放置多辆智能体车辆包括:s201.在所述仿真交通场景模型中放置多辆主车车辆和多辆副车车辆,其中:每辆主车车辆为智能体车辆,每辆副车车辆的行驶路线基于路网结构随机生成。可选的,在一些单个车辆的测试场景中,多辆智能体车辆包括一辆主车车辆和多辆副车车辆。
30.可以理解,本发明中的主车车辆和副车车辆仅为命名或描述的方便,用于区分由强化学习模型控制的智能体车辆和非强化学习模型控制的智能体车辆,即:由强化学习模型控制的智能体车辆称为主车车辆,非强化学习模型控制的智能体车辆称为副车车辆(例如,下文提到的npc车辆);上述主车车辆和副车车辆可由一个或多个强化学习模型控制;主车车辆和副车车辆应理解为在仿真交通场景模型中的车辆模型或车辆模型的数字孪生体。
31.参考图2,示意性地,智能体车辆通过强化学习模型中的智能体控制,智能体通过测量或观测获取仿真环境的状态信息,在状态信息和设定规则的约束下,作出相应的行为(例如车辆的前进、后退、转弯、加速、减速、停车等),通过相应的计算得出每次行为的奖励,然后调整每次行为以提高奖励收益;按照上述步骤进行迭代,直到强化学习模型满足预设的结束条件或达到预设迭代次数。
32.在本发明的一些实施例的步骤s300中,所述训练完成的多智能体的强化学习模型通过如下步骤训练:
33.s301.搭建强化学习模型的环境,构建多智能体的强化学习模型;主要通过以下几个接口来进行强化训练:构建强化学习环境、重置环境、根据行为迭代并返回观测值、奖励、是否完成以及性能表现或延迟等其他可以用于调优的数据;
34.s302.每次迭代时计算当前多智能体的行为的观测值和奖励,并调整下一次多智能体的行为策略;
35.s303.迭代前述步骤,直到强化学习模型满足预设的结束条件或达到预设迭代次数。
36.应理解,预设的结束条件包括奖励值达到预设值、策略收敛、性能表现达到预期等;优选的,结束条件为所述多辆智能体车辆不发生碰撞。
37.向车辆模型增加传感器模型可以提高实时仿真的真实性,在上述实施例中的步骤s100,所述根据真实路网数据构建仿真交通场景模型包括如下步骤:s101.根据真实路网数据构建道路模型和车辆模型;s102.将所述道路模型和带传感器的车辆模型导入到3d仿真软件中。
38.在本发明的一个实施例中,以unity为例,对上述仿真交通场景搭建方法作出说
明,包括:
39.步骤一:根据采集到的路网真实数据建立道路网络模型、建立车辆模型;
40.步骤二:创建unity项目,导入路网模型以及车辆模型,使用当前模型建立对标真实场景的3维仿真场景,增加车辆传感器数据输出;
41.步骤三:在当前的unity仿真场景中放置多辆智能体车辆;
42.步骤四:搭建强化学习基础环境,构建多智能体的强化学习模型;
43.步骤五:根据当前智能体行为进行迭代,得到在本次行为下的观测值、奖励、是否完成等相关数据;
44.步骤六:计算下一次的行为,在根据此行为进行迭代计算,直到满足结束条件或达到预期迭代次数。
45.可选的,本发明中提到的3d仿真软件除了上述unity外,还可包括unreal系列、cocos2d系列、cryengine3、frostbite3(寒霜3)、egret(白鹭)等3d引擎,或者利用编程语言(例如c++)以及相应的图形图像接口构建的自定义游戏引擎、3d渲染软件等。
46.实施例2
47.参考图3,本发明的第二方面,提供了一种智能体车辆控制方法,包括:s401.建立强化学习模型与仿真交通场景之间的连接;s402.构建强化学习模型的学习环境,并训练强化学习模型;s403.根据所述训练完成的强化学习模型构建每辆智能体车辆的决策模型。
48.在一个实施例中,包括:步骤一:根据路网真实数据建立道路网络模型以及车辆模型;
49.步骤二:创建根据路网模型制作的3维仿真场景的unity项目;其包括:采集真实路网数据,根据此数据建立道路网络模型供unity项目使用并建立车辆模型,然后创建基于unity的仿真项目,导入根据路网模型制作的3d仿真场景以及车辆模型;
50.步骤三:在当前仿真场景上添加带有车辆传感器模型的主车车辆,包括相机传感器以及控制传感器;具体地,在unity项目上增加车辆传感器相关内容,包括输入和输出传感器,输出传感器主要有相机传感器、位置传感器等,可以获取当前车辆在地图中的位置以及检测到当前车辆周围的环境。并以特定的数据结构发出,输入传感主要有控制传感器,主要功能为接收到外部发出的控制信号(包括油门、刹车以及转向数据),来控制车辆的行驶;然后,在unity项目上增加数据传输功能并确定数据传输协议,包括数据的接收与发出,主要用来进行车辆传感器数据的传输;
51.步骤四:在当前仿真仿真场景上放置按照路网结构随意行驶的智能体车辆;其包括:建立与unity仿真项目之间的连接,根据配置文件要求创建仿真场景,按照环境的配置文件选择地图并加载,并根据车辆的配置文件按照车辆id对应的类型在当前的仿真静态场景中放置智能体车辆;
52.步骤五:构建主车决策模型,包括行为空间action_space、观测空间observation_space以及奖励reward;
53.步骤六:重置当前主车状态,获取主车的观测值即相机传感器返回的数据;
54.步骤七:根据主车每一次的行为进行迭代,将计算出的行为数据应用于主车的控制传感器上来控制主车行驶,判断主车在当前状态下是否与npc车辆发生碰撞,并计算当前奖励,最终返回主车当前的观测值、奖励、是否完成迭代等数据;
55.步骤八:判断是否完成迭代决定当前强化学习过程是否结束。
56.进一步的,为了更好的模拟复杂场景,需要对每辆智能体车辆的决策模型进行单独训练,每辆智能体车辆根据传感器测量到的环境信息(道路信息及周边车辆信息)独立作出决策,因此,在步骤s403中,所述构建每辆智能体车辆的决策模型包括:s4031.根据每辆智能体车辆的初始行为或上次迭代计算出的行为初始化训练完成的强化学习模型;实时获取智能体的状态数据,并根据其计算观测值;s4032.基于所述观测值,每辆智能体车辆利用强化学习模型控制智能体车辆的下一次行为。
57.参考图4,具体地,每个智能体的迭代计算如下包括:(1)将智能体初始行为或根据上次迭代计算出的行为以控制传感器数据格式发送到unity并应用于智能体车辆上(2)获取智能体的状态数据,包括相机数据、位姿信息、速度、距离目标位置距离、碰撞范围内车辆、路口内车辆等信息(3)根据观测值中的是否碰撞、是否到达目的地等条件计算奖励值,不同的规则下计算奖励值的方式不同,视具体情况而定(4)根据当前状态数据计算观测值数据,其中包括下一次行为指令数据。并根据是否达到最大迭代次数,以及观测值中是否到达目的地来判断此智能体的迭代是否结束,即单个智能体的一次迭代过程结束,当场景中的智能体全部遍历完成后,返回基于actor_id的观测值字典、奖励字典以及其他数据字典,然后获取下一步的行为字典(可以根据观测数据和规定的交通规则等计算出下一次的行为),根据行为继续进行迭代直到满足设定要求,即完成了基于unity的仿真场景下多智能体的训练过程。
58.可以理解,通过以上方法,多智能体车辆学习到合理的驾驶策略,可以实现在路口或者其他路段,无碰撞、不受限制的通过路段,并且可以根据不同的交通规则自定义奖励、惩罚规则以达到目的。
59.参考图5,在上述智能体车辆控制方法的一个实施例中,构建强化学习环境包括行为空间action_space(主车车辆的油门及转向)以及观测空间observation_space(主车的相机数据),在初始行为的基础上进行迭代,主要包括以下步骤:
60.步骤a:将初始行为通过数据传输协议发送到unity上,并通过车辆控制传感器应用在主车上以控制主车的行为;
61.步骤b:获取当前主车相机传感器的数据以及主车的位置数据,即拍到的有其他npc的照片数据,并保存照片信息以及更新观测数据;
62.步骤c:根据主车上一个位置与当前位置信息,以及是否与npc车辆发生碰撞等依据来计算奖励值;
63.步骤d:获取主车下一次行为(直接在环境的行为空间中采样随机行为或者通过其他自定义的算法计算下一步的行为),并不断进行迭代,直到达到迭代次数或者满足强化训练要求。
64.可以理解,通过上述方法,可以实现主车在仿真环境中不受npc车辆影响的自由行驶。此方法中主要涉及到unity项目的搭建以及python强化学习工程的运行,其中可以自定义数据传输协议,两个工程可以部署在同一台设备上也可以在保证数据传输正常的情况下通过双机互连的方式进行,这也大大提升了计算机的运算能力。
65.实施例3
66.参考图6,在本发明的第三方面,提供了一种仿真交通场景搭建系统1,包括:构建
模块11,用于根据真实路网数据构建仿真交通场景模型;放置模块12,用于在所述仿真交通场景模型中放置多辆智能体车辆;仿真模块13,用于通过训练完成的多智能体的强化学习模型控制所述多辆智能体车辆,利用受控的所述多辆智能体车辆对所述仿真交通场景进行动态仿真。
67.参考图7,在本发明的第四方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明第一方面的方法。
68.电子设备500可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(rom)502中的程序或者从存储装置508加载到随机访问存储器(ram)503中的程序而执行各种适当的动作和处理。在ram503中,还存储有电子设备500操作所需的各种程序和数据。处理装置501、rom 502以及ram 503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。
69.通常以下装置可以连接至i/o接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置507;包括例如硬盘等的存储装置508;以及通信装置509。通信装置509可以允许电子设备500与其他设备进行无线或有线通信以交换数据。虽然图7示出了具有各种装置的电子设备500,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。图7中示出的每个方框可以代表一个装置,也可以根据需要代表多个装置。
70.特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置508被安装,或者从rom502被安装。在该计算机程序被处理装置501执行时,执行本公开的实施例的方法中限定的上述功能。需要说明的是,本公开的实施例所描述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开的实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
71.上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个计算机程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:
72.可以以一种或多种程序设计语言或其组合来编写用于执行本公开的实施例的操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++、python,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
73.附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
74.以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1