一种利用仿真生成样本实现无人车自主行进的方法与流程

文档序号:12125137阅读:1363来源:国知局
一种利用仿真生成样本实现无人车自主行进的方法与流程

本发明属于人工智能领域,涉及利用仿真生成样本实现无人车自主行进的方法,尤其是涉及在仿真平台生成训练样本,并应用于无人车自主行进的网络训练方法。



背景技术:

针对深度神经网络,许多研究已经表明,网络能从大量带有标注的训练样本中学习得到模型。训练得到的模型可应用于自然和人为问题,包括无人车自主行进任务,且具有优异的性能。但网络的良好性能需要大量训练数据,而不同领域、不同的任务所需的训练数据不完全相同,若在现实世界中针对性地采集数据并进行标注,耗时且成本昂贵。

以无人车导航为例,比如在只有人类转向角度作为训练信号的情况下,网络能自动学习检测有用的道路特征。该方法可大大减少训练样本量,带来更好的性能以及更小巧的系统。



技术实现要素:

本发明所要解决的技术问题是提供利用仿真生成样本实现无人车自主行进的方法,使得能提高数据的有效性和利用率。为此,本发明提供以下技术方案:

一种利用仿真生成样本实现无人车自主行进的方法,该方法包括如下步骤:

步骤一、搭建仿真模型,在仿真平台生成训练样本;

步骤二、用步骤一生成的训练样本通过循环神经网络实现端到端训练,端到端的一端是指输入传感器测量数据,另一端是指输出无人车的控制指令;

步骤三、控制无人车在现实场景中运行,获取相应的传感器数据和控制指令,对步骤二的神经网络的各层参数进行处理,得到适用于该无人车自主行进的循环神经网络。

在上述技术方案的基础上,本发明还可以采用一下进一步的技术方案:

步骤一中,搭建仿真模型并在仿真平台生成训练样本的方法如下:

1-1.搭建无人车仿真模型,添加激光测距传感器;

1-2.在仿真平台随机加入障碍物,构建场景;

1-3.将无人车置于仿真场景中,控制无人车在仿真场景中无碰撞地安全行驶,记录无人车的转向角速度和运行速度,同时将测距传感器测量得到的数据及相应的时间戳记录到本地;

1-4.重复执行场景构建及无人车运行,产生足量数据,并指定激光测距传感器测量数据为神经网络的输入,控制指令为神经网络的输出。

步骤二中,使用循环神经网络实现端到端训练的具体方法如下:

2-1.建立处理序列数据的循环神经网络,将测距传感器测量数据预处理后作为循环神经网络的输入,标记为,xt表示t时刻神经网络的输入数据,将转向角速度和速度等控制指令作为神经网络输出,标记为,ot表示t时刻神经网络输出的控制参数,将循环神经网络隐藏单元标记为,st表示t时刻神经网络隐藏单元的状态,其中xt,ot,st是一一对应的,下标表示t时刻;

2-2.使用循环神经网络进行端到端的训练。

步骤三中,使用实际数据对网络进行微调处理的具体方法如下:

3-1.在现实场景中控制无人车安全无碰撞地运行,采集测距传感器数据并记录遥控器的控制指令,获得现实场景中的训练数据。

3-2.将测距传感器数据作为网络输入,将遥控器控制指令作为网络输出,在步骤二的基础上,对循环神经网络进行微调处理,得到适用于该无人车自主行进的循环神经网络。

由于采用本发明的技术方案,本发明的有益效果为:本发明不直接在现实场景中控制无人车采集大量训练数据,而是搭建仿真平台并构建模型,在虚拟环境下快速获得训练样本,减少采集样本的时间,降低成本。本发明先用低成本的仿真平台采样,得到一个效果一般的网络,然后用少量现实场景的数据调整网络,就能得到效果不差于传统方法的神经网络,该方法可大大减少训练样本量,带来更好的性能以及更小巧的系统。

附图说明

图1是本发明循环神经网络结构示意图;

图2是本发明将循环神经网络展开后的示意图;

图3是本发明端到端训练示意图。

具体实施方式

参阅图1、图2,本发明提出了一种利用仿真生成样本实现无人车自主行进的方法,以下结合附图作进一步描述:

步骤一、搭建仿真模型,在仿真平台生成训练样本;

搭建无人车仿真模型,添加必要的传感器,如摄像头、激光测距仪等;

编写程序,在仿真平台随机加入障碍物,构建复杂环境;

步骤一中,搭建仿真模型并在仿真平台生成训练样本的方法如下:

1-1. 搭建无人车仿真模型,可以使用开源的杰克描述包(Jackal_description package),这个包用统一机器人描述格式(URDF)语言描述的一个无人驾驶地面车辆模型;

1-2. 在机器人操作系统(ROS)的眺望台仿真平台(Gazebo)可加载上述的无人车模型,编写程序,随机加入障碍物,构建复杂环境;

1-3.将无人车置于仿真场景中,控制无人车在仿真场景中无碰撞地安全行驶,记录无人车的转向角速度和运行速度,同时将测距传感器测量得到的数据及相应的时间戳记录到本地;

1-4.重复执行场景构建及无人车运行,产生足量数据,并指定激光测距传感器测量数据为神经网络的输入,控制指令为神经网络的输出,两者共同组成训练样本。

这个步骤将无人车置于复杂环境中,编写程序控制无人车在场景中无碰撞地安全行驶,记录控制指令,如转向角速度和运行速度,同时将各传感器测量得到的数据记录到本地,并保持数据的前后顺序不变;

重复执行环境构建及无人车运行,产生足量数据,每组数据包括某时刻传感器测量得到的数据和无人车的控制指令,足量数据是指以20组连续数据为一个序列,共得到8000个序列,每个序列包含20个传感器数据和20个控制指令,并指定传感器测量数据为神经网络输入,控制指令为神经网络的输出,两者共同组成训练样本。

步骤二、用循环神经网络实现端到端训练;

确定本方法应用领域为实时连续的无人车自主行进;

设计能处理序列数据的循环神经网络(RNN),网络结构图如图1所示,展开后如图2所示;

将传感器测量数据预处理后作为神经网络输入,标记为。将转角和速度等控制指令作为神经网络输出,标记为。将RNN的隐藏单元标记为;

结合图2可知,以t时刻为例,纵向上,有一条单向流动的信息流是从输入单元到达隐藏单元的,将传感器数据xt输入到神经网络中;横向上,隐藏层的输入还包括前一时刻的隐藏层输出st-1,即st是结合当前的观测数据-1以及记忆的计算得到的;另一条纵向单向流动的信息流从隐藏单元到达输出单元,即可以从隐藏单元st计算得到网络的输出ot,因此t时刻的输出是由当前的输入和前一时刻的状态共同决定的。同理,该时刻的隐藏单元输出st同样会传递到下一时刻,与xt+1共同决定st+1

如图3所示,使用循环神经网络(RNN)实现端到端训练,以记录的控制指令作为目标值,与预处理后测量数据通过RNN网络计算得到的控制指令比较,得到误差值,利用反向传播算法调整RNN的参数,根据实际数据量迭代适当次数,可取值为序列数的5至10倍。

步骤三中,使用实际数据对网络进行微调处理的具体方法如下:

3-1.在现实场景中控制无人车安全无碰撞地运行,采集测距传感器数据并记录遥控器的控制指令,获得现实场景中的训练数据。

3-2.将测距传感器数据作为网络输入,将遥控器控制指令作为网络输出,在步骤二的基础上,对循环神经网络进行微调处理,得到适用于该无人车自主行进的循环神经网络。

在现实场景中控制无人车安全无碰撞地运行,采集传感器数据并记录遥控器的控制指令,获得少量现实场景中的训练数据;

现实场景中运行无人车与仿真平台的情景不完全相同,根据研究表明,网络的前几层能准确检测并提取有效的特征,可固定前几层网络的参数,利用新获得的训练数据对网络重新训练,实现微调,得到适用于该无人车自主行进的神经网络。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1