车辆自动驾驶虚拟环境中特殊标志物的构建方法
技术领域
本发明涉及模式识别和智能***两者与交通工具结合的技术领域,具体涉及一种车辆自动驾驶虚拟环境中标志物的构建以及包括该标志物的虚拟环境的构建方法。
背景技术
随着人民生活水平的提高,小轿车等交通工具成为人们主要的代步工具,而交通工具的智能化,也越来越使出行更加的简单。在一些情况下,车辆可以自动执行驾驶任务,例如,开启了自动驾驶功能的普通的家用轿车、公交车、卡车等车辆,或者还可以为无人驾驶的家用轿车、公交车、卡车等车辆。车辆在执行自动驾驶时,需要根据预先配置的车辆决策规划算法,获得车辆决策线,进而根据该车辆决策线,执行自动驾驶任务。
自动驾驶***的开发都遵从仿真到实车测试的过程,虚拟仿真实验作为一种零风险、快速迭代、可复现的测试方法,为自动驾驶技术上路测试奠定了坚实的基础。仿真可以快速有效的对算法的正确性与性能进行测试。
要实现仿真实验,需为仿真实验搭建虚拟环境。目前,在搭建虚拟环境时,针对路况或者行车道路场景数据的采集需要昂贵的采集设备,或需要驾车到处遨游等采集难度大的方式采集,或因极端事件极难发生而采集不到足够量的数据。特别是其中涉及的特殊标志物,例如:道路、车道线、交通标志、路灯、树木等,这些虽然是日常中常见的,但在无人驾驶仿真环境下现有技术中难模拟的标志物还缺少逼真的仿真数据。为了克服上述困难,本申请提出一种车辆自动驾驶虚拟环境构建方法及其中特殊标志物的构建方法。
发明内容
针对现有技术的不足,本发明提供一种车辆自动驾驶虚拟环境中特殊类型标志物构建方法,其特征在于:所述标志物为包括道路、车道线、交通标志、路灯、树木、山地、桥梁和楼宇中至少任一项在内的交通行驶标志物或道路边自然物;所述方法包括以下步骤,
步骤I:确定需要生成所述特殊类型标志物的模型种类,获取相应的模型参数;
步骤II:调用与所述特殊类型标志物模型对应的应用程序接口,并执行生成算法,从而获得与虚拟场景兼容的标志物对象描述;
步骤III:将标志物对象输出到存储器;
其中,所述生成算法包括道路生成算法,在所述道路生成算法中设连接A地点和B地点的笔直公路;假设A地点的坐标为PA,B地点的坐标为PB,则公路上的任意地点P(t)可以表示为:
P(t)=P0+(P1-P0)t=(1-t)P0+tP1,t∈[0,1];
如果公路是二次曲线,因为平面内的二次曲线由三个点确定,假设三个点坐标为P0,P1和P2,有:
P(t)=(1-t)2P0+2t(1-t)P1+t2P2,t∈[0,1];
以此二次曲线公式递归,一条公路可以用任意有限维曲线描述,其公式为:
其中n表示曲线的维度。
本发明的另一方面,提供一种车辆自动驾驶虚拟环境构建方法,其特征在于,包括以下步骤:
步骤1:虚拟场景的建模和生成,用于建立虚拟场景中虚拟目标物模型;
步骤2:虚拟数据及信号的采集,通过在虚拟场景中生成虚拟传感器,并使用计算机图形学算法,获取虚拟目标物和虚拟传感器之间的相对坐标关系,并以此为基础生成包含图像、距离在内的虚拟数据及虚拟信号;
步骤3:在虚拟场景中通过应用程序接口自动生成特殊类型标志物;
步骤4:基于所述特殊类型标志物,动态加载虚拟场景中的地图元素和资源;
步骤5:依据所述虚拟数据及信号,对虚拟场景中感兴趣目标进行标注,通过设置相应的应用程序接口,对虚拟场景中用户感兴趣的某个目标物,或者目标物的某个部分进行标注,返回感兴趣目标物在虚拟场景中的属性值;
步骤6:基于动力学模型和所述步骤1、步骤2及步骤3的方法,在虚拟场景中模拟进行自动驾驶***边界测试;
步骤7:基于步骤1、步骤2和步骤5的方法,在虚拟场景中测试自动驾驶***的识别结果。
进一步为:所述步骤1中,所述虚拟场景的建模为建立虚拟场景中各种虚拟目标物模型,所述虚拟目标物为包括蓝天、白云、湖泊在内的自然景物和包括建筑物、道路、行人、车辆、交通标志物在内的人工目标;所述虚拟场景的生成为设置场景中虚拟目标物与行为的过程。
进一步为:所述虚拟场景的建模包括以下步骤,
步骤1.11:建立虚拟目标物的三维网格描述;
步骤1.12:为虚拟目标物进行表面贴图;
步骤1.13:调整虚拟场景的光照,并根据光照设置虚拟目标物的阴影。
进一步为:所述虚拟场景的生成包括以下步骤,
步骤1.21:根据需求选取需要置入虚拟场景的虚拟目标物;
步骤1.22:将虚拟目标物置于虚拟场景坐标系中的指定坐标;
步骤1.23:加载特定虚拟目标物的行为特征,生成动态的虚拟场景。
进一步为:所述步骤2中,在虚拟场景中生成虚拟传感器,并使用计算机图形学算法,获取虚拟目标物和虚拟传感器之间的相对坐标关系,并以所述相对坐标关系为基础生成包含图像和距离在内的虚拟数据及虚拟信号。
进一步为:所述步骤2包括以下步骤,
步骤2.1:获取虚拟主体车辆于时刻t在虚拟场景中的坐标;
步骤2.2:根据真实传感器与真实主体车辆的相对位置关系,设置虚拟传感器于时刻t在虚拟场景中的坐标;
步骤2.3:根据真实传感器的信号采集方式,调用虚拟场景中的应用程序接口从虚拟场景中获取所需要的数据或信号;
步骤2.4:将t时刻获取到的虚拟数据及信号返回给需要该虚拟数据及信号的工作模块;
其中,t为时间常数。
进一步为:所述步骤4包括以下步骤,
步骤4.1:接受虚拟环境仿真***的加载虚拟场景的请求;
步骤4.2:定位并解析基础地图文件,并对地图文件进行统一坐标变换;
步骤4.3:对于包括树木、山地在内的人工绘制的自然标志物,从存储器载入相应的美术资源,并与地图坐标***一后放置到虚拟场景的对应位置;
步骤4.4:对于包括道路、车道线在内的动态生成的动态标志物,从存储器文件中载入动态标志物的描述资源,并与地图坐标***一后放置到虚拟场景的对应位置。
进一步为:所述步骤5包括以下步骤,
步骤5.1:用户以特定的描述语言对感兴趣目标进行语言描述;
步骤5.2:解释引擎将语言描述转化为虚拟场景中需要标注的感兴趣目标集合;
步骤5.3:搜索引擎在虚拟场景运行时,实时检测虚拟场景中是否出现所述步骤5.2中的感兴趣目标,并在出现时返回在线感兴趣目标的属性值。
进一步为:所述步骤6包括以下步骤,
步骤6.1:采集真实环境下驾驶***的输入参数和主体车辆的状态数据;
步骤6.2:根据所述步骤1中的虚拟场景和步骤3中的特殊类型标志物,在虚拟场景中设置虚拟主体车辆的动力学模型参数,并将所述步骤6.1中的输入参数传递给自动驾驶***进行迭代调优;当虚拟主体车辆的状态数据与真实主体车辆的状态数据之间相差小于阈值至,停止调优,得到测试用动力学模型参数;
步骤6.3:将所述测试用动力学模型参数代入虚拟场景,并执行自动驾驶***的边界测试。
进一步为:所述步骤6.3中的边界测试为,当将测试用动力学参数代入特定的虚拟场景后,再给定自动驾驶***输入范围I,所述自动驾驶***执行命令并产生结果相应结果范围O;其中,自动驾驶***的输入范围I包括所述步骤1输出的虚拟场景和所述步骤2中采集的虚拟数据及信号。
进一步为:自动驾驶***的输入包括油门、刹车、方向盘角度,虚拟主体车辆的状态数据包括汽车的位移、速度、转向角度等。
进一步为:所述步骤7包括以下步骤,
步骤7.1:通过所述步骤1建立测试场景;
步骤7.2:启动所述测试场景,通过所述步骤2实时采集所述测试场景中模拟摄像头数据和传感器信息;
步骤7.3:通过所述步骤5获取所述测试场景中感兴趣目标;
步骤7.4:将所述步骤7.1中的测试场景和所述步骤7.2中的模拟摄像头数据和传感器信息传入自动驾驶***算法,并获得自动驾驶算法的输出结果;
步骤7.5:将所述步骤7.3中感兴趣目标的标定值与所述步骤7.4中所述的输出结果进行比对,评估自动驾驶***算法的性能;
步骤7.6:当输出算法结果与标定值不一致时,记录自动驾驶***中在当时的参数与环境数据。
本发明的发明点及其有益效果包括但不限于以下方面:
对于在虚拟环境下的特殊标志物,现有技术还缺乏逼真的模拟方法,特别是常见的道路。而在无人驾驶仿真测试环境中,对于道路精确的绘制和控制,能够为后期数据的处理提供数据支持。本发明包括了道路生成算法在内的特殊标志物生成方法可以很好的解决道路的精确绘制以及根据仿真需要而进行的控制调整。特别是采用的算法在现有技术中并没有用于无人驾驶虚拟环境仿真中使用。但发明采用该算法从实际的仿真效果看,与实际道路采集得到的数据有很高的吻合度。
本发明通过程序软件生成虚拟目标物和特殊类型标志物,来代替真实世界的场景和标志物的采集过程,避免使用昂贵的采集设备而降低成本;
通过;通过在虚拟场景中模拟进行自动驾驶***边界测试,来获取更多的真实世界很难发生的状态数据,优化自动驾驶***对不同情形的应对措施;
在虚拟场景中测试自动驾驶***识别结果的方法,用于对自动驾驶***的性能进行模拟检测,解决实际情况中训练样本不足的问题。
附图说明
图1为本发明特殊类型标志物构建方法示意图;
图2为本发明车辆自动驾驶虚拟环境构建方法示意图;
图3为本发明中虚拟环境构建方法中步骤7的数据流示意图。
具体实施方式
下面结合附图对本发明做详细说明。
如图1所示,为本发明中特殊类型标志物构建的方法流程。其主要包括了三个步骤:步骤I:确定需要生成所述特殊类型标志物的模型种类,获取相应的模型参数;
步骤II:调用与所述特殊类型标志物模型对应的应用程序接口,并执行生成算法,从而获得与虚拟场景兼容的标志物对象描述;
步骤III:将标志物对象输出到存储器;
如图2所示,为本发明各独立步骤之间的关系示意图,箭头出发项为被依赖项,箭头指向项为依赖项;一种车辆自动驾驶虚拟环境构建方法,包括以下步骤:
步骤1:虚拟场景的建模和生成;
步骤2:虚拟数据及信号的采集;
步骤3:在虚拟场景中自动生成特殊类型标志物;
步骤4:基于所述特殊类型标志物,动态加载虚拟场景中的地图元素和资源;
步骤5:依据所述虚拟数据及信号,对虚拟场景中感兴趣目标进行标注;
步骤6:基于动力学模型和所述步骤1、步骤2及步骤3的方法,在虚拟场景中模拟进行自动驾驶***边界测试;
步骤7:基于步骤1、步骤2和步骤5的方法,在虚拟场景中测试自动驾驶***的识别结果。
其中,所述步骤1是自动驾驶算法运行的基础,为算法提供了基础测试数据;所述虚拟场景的建模为建立虚拟场景中各种虚拟目标物模型,所述虚拟目标物为包括蓝天、白云、湖泊在内的自然景物和包括建筑物、道路、行人、车辆、交通标志物在内的人工目标;所述虚拟场景的生成为设置场景中虚拟目标物与行为的过程。
所述虚拟场景的建模包括以下步骤,步骤1.11:建立虚拟目标物的三维网格描述;步骤1.12:为虚拟目标物进行表面贴图;步骤1.13:调整虚拟场景的光照,并根据光照设置虚拟目标物的阴影;
所述虚拟场景的生成包括以下步骤,步骤1.21:根据需求选取需要置入虚拟场景的虚拟目标物;步骤1.22:将虚拟目标物置于虚拟场景坐标系中的指定坐标;步骤1.23:加载特定虚拟目标物的行为特征,生成动态的虚拟场景。
所述步骤2中,在虚拟场景中生成虚拟传感器,并使用计算机图形学算法,获取虚拟目标物和虚拟传感器之间的相对坐标关系,并以所述相对坐标关系为基础生成包含图像和距离在内的虚拟数据及虚拟信号。
所述步骤2提供了获取自动驾驶算法基础数据的途径;该方法是指在虚拟场景中生成虚拟传感器,并使用计算机图形学算法,获取虚拟目标物和虚拟传感器之间的相对坐标关系,并以此为基础生成图像、距离等虚拟数据及虚拟信号的过程;包括以下步骤,步骤2.1:获取虚拟主体车辆于时刻t在虚拟场景中的坐标;步骤2.2:根据真实传感器与真实主体车辆的相对位置关系,设置虚拟传感器于时刻t在虚拟场景中的坐标;步骤2.3:根据真实传感器的信号采集方式,调用虚拟场景中的应用程序接口,应用程序接口从虚拟场景中获取所需要的数据或信号;步骤2.4:将t时刻获取到的虚拟数据及信号返回给需要该虚拟数据及信号的工作模块;其中,t为时间常数。其中,所有程序都会有预留获取数据的接口,即应用程序接口,在GTA里就是直接调用一个函数,指定获取数据的对象以及对象的属性,就可以获取对应的属性的数据,自研的平台很自然的就会有这个接口,因为所有底层接口都是由程序员编写,所有物体的位置与姿态,创建这个平台的程序员自然能拿到;比如想要车的位置,直接用车的位置的函数就行了,如果想要车身上的某一个点(比如车灯的位置),知道每辆车的精确3d模型,直接根据车的位置加上这个点在模型中的相对位置就可以得到。
所述特殊类型标志物为包括道路、车道线、交通标志、路灯、树木、山地和楼宇在内的交通行驶标志物;所述步骤3为自动驾驶仿真***中的一些常见类型的标志物,提供了一种可统一描述的、简便的生成方法。该方法为每一类标志设置了一个特定的生成算法,***可以通过应用程序接口快速生成这些标志,省去了美工人员逐一建模的工作量,提高了建模效率;包括以下步骤,步骤3.1:确定需要生成所述特殊类型标志物的模型种类,获取相应的模型参数;步骤3.2:调用与所述特殊类型标志物模型对应的应用程序接口,并执行生成算法,从而获得与虚拟场景兼容的标志物对象描述;步骤3.3:将标志物对象输出到存储器;
其中,所述生成算法包括道路生成算法,在所述道路生成算法中设连接A地点和B地点的笔直公路;假设A地点的坐标为PA,B地点的坐标为PB,则公路上的任意地点P(t)可以表示为:
P(t)=P0+(P1-P0)t=(1-t)P0+tP1,t∈[0,1];
如果公路是二次曲线,因为平面内的二次曲线由三个点确定,假设三个点坐标为P0,P1和P2,有:
P(t)=(1-t)2P0+2t(1-t)P1+t2P2,t∈[0,1];
以此二次曲线公式递归,一条公路可以用任意有限维曲线描述,其公式为:
其中n表示曲线的维度。
这里提供的是道路生成算法,可以理解,其他的特殊标志物也可以采用算法生成。在一些实施例中,除道路外的其他特殊标志物需要进行技术美术现做模型,然后导入。
所述步骤4用于对虚拟场景及其各元素进行整合,在步骤3中生成的特殊类型标志物,其描述文件通常是独立于虚拟场景文件的,并且虚拟场景文件中的各个元素也可能位于不同的物理文件中;该方法用于对虚拟场景用到的各类文件,如地图、动态标志物、美工模型等进行整合;包括以下步骤,步骤4.1:接受虚拟环境仿真***的加载虚拟场景的请求;
步骤4.2:定位并解析基础地图文件,并对地图文件进行统一坐标变换;步骤4.3:对于包括树木、山地在内的人工绘制的自然标志物,从存储器载入相应的美术资源,并与地图坐标***一后放置到虚拟场景的对应位置;步骤4.4:对于包括道路、车道线在内的动态生成的动态标志物,从存储器文件中载入动态标志物的描述资源,在程序运行时放置到场景的对应位置,即这些动态标志物的位置在描述资源里就会描述,直接按照里面的参数放就行了。
所述步骤5用于为自动驾驶算法的训练过程提供基础数据,以优化算法性能;该方法是指在虚拟场景中,通过设置相应的应用程序接口,对虚拟场景中用户感兴趣的某个目标物,或者目标物的某个部分进行标注,返回感兴趣目标在虚拟场景中的坐标等属性值;包括以下步骤,步骤5.1:用户以特定的描述语言对感兴趣目标进行语言描述;步骤5.2:解释引擎将语言描述转化为虚拟场景中需要标注的感兴趣目标集合;步骤5.3:搜索引擎在虚拟场景运行时,实时检测虚拟场景中是否出现所述步骤5.2中的感兴趣目标,并在出现时返回在线感兴趣目标的属性值。
所述步骤6用于模拟测试自动驾驶***的性能边界,优化自动驾驶***对不同情形的应对措施;该步骤基于动力学模型和步骤1、步骤,测试在给定情形下自动驾驶***的性能,并评估***性能是否达到标准;包括以下步骤,步骤6.1:采集真实环境下驾驶***的输入参数和主体车辆的状态数据,驾驶***的输入包括油门、刹车、方向盘角度等,车辆的状态数据包括汽车的位移、速度、转向角度等;步骤6.2:根据所述步骤1中的虚拟场景和步骤3中的特殊类型标志物,在虚拟场景中设置虚拟主体车辆的动力学模型参数,并将所述步骤6.1中的输入参数传递给自动驾驶***进行迭代调优;当虚拟主体车辆的状态数据与真实主体车辆的状态数据之间相差小于阈值至,停止调优,得到测试用动力学模型参数;步骤6.3:将所述测试用动力学模型参数代入虚拟场景,并执行自动驾驶***的边界测试;
其中,所述步骤6.3中的边界测试为,当将测试用动力学参数代入特定的虚拟场景后,再给定自动驾驶***输入范围I,所述自动驾驶***执行命令并产生结果相应结果范围O;其中,自动驾驶***的输入范围I包括所述步骤1输出的虚拟场景和所述步骤2中采集的虚拟数据及信号。
如图2所示,每个方框表示一个独立的数据处理单元,箭头表示一组独立的数据流向,箭头文字表示对这组数据的描述。所述步骤7用于对自动驾驶***的性能进行模拟检测,目的是解决实际情况中训练样本不足的问题;包括以下步骤,步骤7.1:根据虚拟场景的定义与素材,通过所述步骤1建立贴近真实的测试场景,如乡村小路、高速公路、城市街区等;步骤7.2:启动所述测试场景,通过所述步骤2实时采集所述测试场景中模拟摄像头数据和传感器信息;步骤7.3:通过所述步骤5获取所述测试场景中感兴趣目标;步骤7.4:将所述步骤7.1中的测试场景和所述步骤7.2中的模拟摄像头数据和传感器信息传入自动驾驶***算法,并获得自动驾驶算法的输出结果;步骤7.5:将所述步骤7.3中感兴趣目标的标定值与所述步骤7.4中所述的输出结果进行比对,评估自动驾驶***算法的性能;步骤7.6:当输出算法结果与标定值不一致时,记录自动驾驶***中在当时的参数与环境数据。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。