CN110850877A - 基于虚拟环境和深度双q网络的自动驾驶小车训练方法 - Google Patents
基于虚拟环境和深度双q网络的自动驾驶小车训练方法 Download PDFInfo
- Publication number
- CN110850877A CN110850877A CN201911135830.4A CN201911135830A CN110850877A CN 110850877 A CN110850877 A CN 110850877A CN 201911135830 A CN201911135830 A CN 201911135830A CN 110850877 A CN110850877 A CN 110850877A
- Authority
- CN
- China
- Prior art keywords
- trolley
- training
- automatic driving
- network
- model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012549 training Methods 0.000 title claims abstract description 77
- 238000000034 method Methods 0.000 title claims abstract description 60
- 230000008569 process Effects 0.000 claims abstract description 18
- 230000006854 communication Effects 0.000 claims abstract description 9
- 238000004891 communication Methods 0.000 claims abstract description 9
- 238000012360 testing method Methods 0.000 claims abstract description 4
- 230000006870 function Effects 0.000 claims description 15
- 230000002787 reinforcement Effects 0.000 claims description 13
- 230000009471 action Effects 0.000 claims description 12
- 230000007613 environmental effect Effects 0.000 claims description 12
- 238000011176 pooling Methods 0.000 claims description 8
- 235000011034 Rubus glaucus Nutrition 0.000 claims description 7
- 235000009122 Rubus idaeus Nutrition 0.000 claims description 7
- 238000013528 artificial neural network Methods 0.000 claims description 5
- 238000007781 pre-processing Methods 0.000 claims description 5
- 230000007246 mechanism Effects 0.000 claims description 4
- 230000007175 bidirectional communication Effects 0.000 claims description 3
- 230000003993 interaction Effects 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 claims description 2
- 238000003708 edge detection Methods 0.000 claims description 2
- 230000009466 transformation Effects 0.000 claims description 2
- 240000007651 Rubus glaucus Species 0.000 claims 2
- 230000008901 benefit Effects 0.000 abstract description 4
- 238000013527 convolutional neural network Methods 0.000 description 8
- 244000235659 Rubus idaeus Species 0.000 description 5
- 238000013135 deep learning Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 4
- 206010039203 Road traffic accident Diseases 0.000 description 3
- 244000035744 Hura crepitans Species 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 235000020004 porter Nutrition 0.000 description 1
- 238000002203 pretreatment Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0221—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving a learning process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/12—Edge-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/168—Segmentation; Edge detection involving transform domain methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20048—Transform domain processing
- G06T2207/20061—Hough transform
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Geometry (AREA)
- Remote Sensing (AREA)
- Biophysics (AREA)
- Radar, Positioning & Navigation (AREA)
- Aviation & Aerospace Engineering (AREA)
- Automation & Control Theory (AREA)
- Computer Graphics (AREA)
- Probability & Statistics with Applications (AREA)
- Algebra (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Image Analysis (AREA)
Abstract
本发明涉及基于虚拟环境和深度双Q网络的自动驾驶小车训练方法,包括:基于Unity构建小车赛道虚拟环境;建立Websocket协议下的Unity与自动驾驶小车模型的通信连接;建立表征小车自动驾驶过程的马尔科夫模型,改造深度双Q网络算法训练自动驾驶模型;配置实体小车软硬件环境,迁移已训练小车自动驾驶模型;测试真实赛道下实体小车训练模型的自动驾驶操作。本方法使用虚拟环境训练模型,实现自动驾驶训练算法模型对复杂环境和路况的鲁棒性。本发明借助深度双Q网络算法,避免Q值估值大造成训练复杂性高的问题,使训练过程简单快速。本发明具有鲁棒性强、速度快、成本低等优点。可应用到智能交通、航空航天、机器人等领域的无人驾驶操作的训练和学习。
Description
技术领域
本发明涉及一种基于虚拟环境和深度双Q网络的自动驾驶小车训练方法,属于自动化控制技术领域,具体涉及一种深度强化学习算法。
背景技术
近年来,人工智能技术特别是深度学习技术的飞速发展,在目标识别、智能控制等领域取得了重大突破。深度学习技术,如卷积神经网络(CNN),被广泛应用于各种类型的视觉相关的问题中,包括了自动驾驶领域,且利用深度学习技术实现自动驾驶是当前自动驾驶技术研究的主流。同时,汽车已进入千家万户,随着汽车保有量的增加,交通安全事故发生率也在逐渐增长,己成为一个急需解决的安全问题。经调查发现,大部分的交通事故都是由于驾驶员操作不当所导致的。自动驾驶车能够很好的把人从汽车的驾驶中解救出来,从而有效减少交通事故的发生。智能小车也被称为轮式机器人,是智能机器人的一个分支。目前自动驾驶智能小车在许许多多的行业中都得到了应用,在社会中扮演着重要角色,它的应用主要在以下几个方面。在安全检测与受损评估方面的应用:智能小车能完成石油化工、道路、水利等多个领域的安全检测和受损评估工作业,此外,智能小车还能完成高空、地铁的灭火工作,废墟生命探索和救援的工作。智能运输系统的应用:减轻驾驶员的工作量,缓解交通拥挤与堵塞,减少交通事故的发生,提高通信的安全性;在物流运输方面的应用:运用智能车辆进行物流运输工作,提高了货物运输效率,降低了搬运工人的强度,同时能够避免有害物质对人体造成伤害。
目前有相关研究采用深度学习技术构建端到端学习的自动驾驶汽车,其关键技术是在监督下通过神经网络进行学习,得到映射关系,最终实现自动驾驶汽车的自动驾驶。该方法复制驾驶技巧。虽然端到端自动驾驶模型易于规模化和适应性强,但它处理长期规划的能力有限,属于克隆学习。
在杭州师范大学钱江学院章真亮、叶霞、倪虹等申请、2019年8月9 日公开、公开号为CN110109456A、发明名称为“一种小车自动驾驶方法”的中国发明专利申请中,搭建卷积神经网络,自动驾驶车放置到工作场地上,并通过人为控制的方式驱动自动驾驶车沿目标路线行驶,从而建立路径图像集,后用路径图像集训练建立的卷积神经网络再将自动驾驶车放置到工作场地的目标路径上行驶。该发明申请利用卷积神经网络训练人为控制小车的数据,从而使小车拥有自动驾驶能力,但是人为收集驾驶数据,一方面对人控制小车要求高,另一方面对于不同环境就需要收集不同的数据(如不同光线,不同道路环境),需要大量的工作量。此外,手动控制难以收集到突发遇到障碍物情况的数据。本专利无人人为控制小车的数据,使用的训练方法存在本质不同,可以模拟多种环境参数进行多类型情景训练。
在济南浪潮高新科技投资发展有限公司戴鸿君、于治楼申请、2016年8 月9日公开、公开号为CN 110110639A、发明名称为“一种基于人工智能循迹的室内监控方法及室内监控车”的中国发明专利申请中,根据特征模型和环境数据判断沿轨道行驶时采用的行驶参数,同时将采集的环境图像数据上传,采用CNN卷积神经网络算法进行训练,得出合适的模型。该发明方法需要人为的根据当前特征模型和环境数据进行训练数据的采集,需要耗费大量的人为数据收集工作。手动收集的数据训练出来的小车,鲁棒性差,对于环境稍微改变后,模型的表现结果就会变差。
发明内容
为了解决上述技术问题,本发明提供一种基于虚拟环境和深度双Q网络的自动驾驶小车训练方法,本发明中训练数据为小车在虚拟环境中行驶数据,直接使用电脑仿真环境可设置多种小车驾驶情景,所以得到的数据更加全面,而且耗时小,人工成本低。
本发明所述的一种基于虚拟环境和深度双Q网络的自动驾驶小车训练方法,其包括以下步骤:
步骤(1):参考真实赛道,预设环境参数,基于Unity构建适用于强化学习训练的小车赛道虚拟环境;
步骤(2):建立Websocket协议下的Unity虚拟训练环境与自动驾驶小车模型的通信连接,传输小车在虚拟环境中的驾驶数据;
步骤(3):建立表征小车自动驾驶过程的马尔科夫模型,利用深度双Q 网络算法,训练自动驾驶模型;
步骤(4):配置实体小车软硬件环境,让实体小车拥有运行自动驾驶小车模型的系统环境,迁移已训练的自动驾驶小车模型到实体小车系统;
步骤(5):测试真实赛道下实体小车系统的自动驾驶操作,若自动驾驶小车模型不能长时间在规定道路范围内驾驶以及躲避障碍物,则提升虚拟训练环境的复杂度,增加小车在虚拟环境中的训练步长,重新进入步骤1进行训练。
所述步骤(1)中,参考真实赛道,预设环境参数,基于Unity构建适用于强化学习训练的小车赛道虚拟环境;在Unity中建立满足逼真度高的小车赛道环境,包括不同障碍物、不同光线等多类环境因素和复杂路况的环境参量。
所述步骤(2)中,建立Websocket协议下的Unity虚拟训练环境与自动驾驶小车模型的通信连接,传输小车在虚拟环境中的驾驶数据;Websocket 协议允许服务器和客户端之间的双向双向通信,能满足基于Unity的虚拟环境与小车训练模型程序实时传输数据。传输小车在虚拟环境中的驾驶数据,经过预处理后的小车视角图片,所述预处理将每一帧图片像素大小从(120, 160)调整为(80,80),再转化成灰度图并进行道路边缘检测,将累计时间步长的4帧堆叠在一起形成堆叠帧,最终预处理后小车在该时间的状态维度为(1,80,80,4)。使用Canny边缘检测器检测和提取道路边缘,再用Hough 线变换识别直线,将直线分为正斜线和负斜线,即道路的左右线,最后剔除不属于道路的直线。
所述步骤(3)中,建立表征小车自动驾驶过程的马尔科夫模型,利用深度双Q网络算法,训练自动驾驶模型;所述的深度双Q网络算法,包含两个参数相同的Q网络,每一个Q网络是由一个三层神经网络构成,堆叠帧状态作为输入,输出为代表15个离散转向类别的15个值。所述的两个参数相同的Q网络,每一个网络输入维度(1,80,80,4)的状态帧,输出单个可能的驾驶方向,网络的第一层为80×80×4×32的卷积核,步长为4,后进入一个 2×2的最大池化层,第二层为一个4×4×32×64的卷积核,步长为2,通过第二层后再次进入池化;第三层为3×3×64×64的卷积核,步长为1,后再次池化;最后的隐含层由256的全连接层构成;网络建立适用于小车的强化学习奖励机制,设置能够进行梯度下降更新网络参数的损失函数。所述的适用于小车的强化学习奖励机制,具体为:
小车与环境的交互产生奖励是由Unity提供的轨道交叉误差(cross trackerror,cte),轨道交叉误差测量的为道路中心与汽车之间的距离;定义奖励函数r如下:
其中cte是一个归一化后的常数,其值在[0,1]范围内;所以,当|cte|大于 ctemax时,小车即停止;
所使用的深度双Q网络中的Q-learning作为非策略型的强化学习模型,采用贝尔曼方程:
进行迭代更新;其中s′为下一时间点状态;a′为下一时间点动作;s为当前状态;a为当前动作;γ为折扣因子,本发明中取值为γ=0.95;r为奖励;ε为经验池,训练Q网络时,从经验池中随机选取批量的样本来更新网络的参数;Qi(s,a)为Q函数在第i时间点的迭代更新;E表示取数学期望;
训练使用的损失函数Li(θi)为:
Q(s,a;θi)表示当前网络的输出,用来评估当前状态动作对的值函数;yi表示迭代到i时候的目标,定义为:
其中θi+1为Q网络迭代到i+1时候的参数;Qi(s′,a′;θi+1)表示迭代到i+1时候的网络的输出;利用上述损失函数的随机梯度下降和反向传播来更新网络的权重。
所述步骤(4)中,配置实体小车软硬件环境,让实体小车拥有运行自动驾驶模型的系统环境,迁移已训练的自动驾驶小车模型到实体小车系统;所设计的实体小车的硬件组成为树莓派3,伺服驱动PCA9685,广角树莓派鱼眼相机;未训练前,实体小车软件系统环境中的小车自动驾驶模型与主机服务器上的小车自动驾驶模型一致,包括相同的控制代码,训练后,将主机服务器上的小车自动驾驶模型直接迁移到实体小车中。
所述步骤(5)中,测试真实赛道下实体小车训练模型的自动驾驶操作,若小车自动驾驶操作表现较差,提升虚拟训练环境的复杂度,增加小车在虚拟环境中的训练步长,重新进入步骤(1)进行训练;所述小车表现较差的衡量方法为:给定时间内统计小车在规定区域内正常驾驶时间以及是否能够避障;真实赛道与虚拟赛道具有高度的相似性,即真实赛道的道路宽度和虚拟环境中赛道的宽度与小车保持相同大小比例;虚拟环境包含多种真实环境的可能性,即不同光线和障碍物摆放位置不同。
本发明与现有技术相比的优点在于:
(1)本发明通过基于Unity的虚拟环境进行训练,让模型具有更强的鲁棒性,即可以在虚拟环境中遍历足够多的环境,避免需要人为手动收集数据进行训练导致的大量工作量以及人为操控要求高的问题。
(2)本发明使用深度双Q网络进行训练,避免了因驾驶场景复杂导致Q 表值估值过大造成训练过程复杂的问题,从而使训练过程更加快速和稳定。
附图说明
图1是本发明方法从虚拟环境到训练实体小车流程图;
图2是本发明中小车在Unity虚拟环境中行驶示意图;
图3为道路预处理过程;
图4是本发明中深度双Q网络采用的三层卷积神经网络框架;
图5是本发明中训练的平均奖励-训练步数变化图;
图6本发明搭建的小车;
图7为小车在真实环境中自动驾驶过程。
具体实施方式
下面将算法步骤结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。
本发明提出了基于虚拟环境和深度双Q网络的自动驾驶小车训练方法,如图1所示,通过以下步骤实现:
步骤1:参考真实赛道,预设环境参数,基于Unity构建适用于强化学习训练的小车赛道虚拟环境;
本实施例中,在Linux系统下运行,下载配置Unity和OpenAI gym。利用Unity中的游戏引擎沙盒,根据实体小车大小,设置道路属性宽为60cm 的双行道,虚拟环境中的小车大小设置为比例1:16,Unity环境中跳帧参数为2,用于后续步骤的稳定训练。Unity游戏引擎沙盒中,包含以下主要功能:(1).制造训练数据,小车在环境中会一边运行,一边截图,截下的每张图片的名称中将会包含“转向值”和“油门值”;(2).改变路面,虚拟环境提供不止一种道路路面,可以选择不同属性的路面,如路面障碍数量;(3).改变道路路线,Unity可以按照要求生成路径,满足小车在不同的地图中驾驶。
OpenAI gym为一款提供各种环境的开源工具包,提供了强化学习模型中智能体所需要交互的环境。本发明通过OpenAI gym自定义功能,利用相关API调用进行指令控制,获得的小车在虚拟环境中的驾驶数据实时发送给基于Python的小车训练模型程序进行网络训练,从而与Unity兼容。创立的 API指令如下:reset()初始化小车状态,get_action()获取小车动作,step(action) 函数获得的下一像素的状态和奖励。小车在Unity虚拟环境中行驶如图2所示。
步骤2:建立Websocket协议下的Unity虚拟环境与自动驾驶小车模型的通信连接,传输小车在虚拟环境中的驾驶数据;
本实施例中,深度双Q网络算法代码由Python程序语言编写,所需与 Unity虚拟环境进行通信。通信是通过Websocket协议完成的,Websocket 协议允许服务器和客户端之间的双向双向通信。在本实例中,Python“服务器”可以直接将数据推送到Unity,数据包括转向和速度等数据;Unity“客户端”也可以将数据,传输回Python服务器,数据主要为小车驾驶视角图片。在Python“服务器”与Unity传递信息时会涉及解码和编码的工作,Unity将图片编码成数据流的形式传入Python“服务器”,Python“服务器”收到数据流会进行一个解码,再将解码得到的信息传入基于TensorFlow和Keras搭建的深度双Q网络算法,深度双Q网络算法输出的数值也会再次转换为数据流传给Python“服务器”,最终Python“服务器”再传给Unity。
本实施例中,传输小车在虚拟环境中的驾驶数据,其中驾驶数据即为虚拟环境中小车驾驶视角图片,为了让小车忽略背景噪声,只关注道路线,本发明采用预处理方法如图3所示:
1)使用Canny边缘检测器检测和提取道路边缘。
2)用Hough线变换识别直线。
3)将直线分为正斜线和负斜线(道路的左右线)。
4)利用斜率信息剔除不属于道路的直线。
步骤3:建立表征小车自动驾驶过程的马尔科夫模型,设计改进后适用于小车马尔科夫模型的深度双Q网络算法,训练自动驾驶模型;
本实施例中,建立表征小车自动驾驶过程的马尔科夫模型,即包括状态空间和动作空间,其中状态空间为小车在虚拟环境和真实环境中摄像头记录的每一帧图片,需要对图片进行处理以满足网络的输入数据维度大小,操作过程如下:
1)图片像素大小从(120,160)调整为(80,80);
2)转化成灰度图;
3)帧堆叠:将累计时间步长的4帧堆叠在一起;
4)最终状态的尺寸(1,80,80,4)即表示一个状态,每帧图片的尺寸为 80×80像素,由4帧图片堆叠而成;
自动驾驶小车模型的动作空间,真实环境中的小车和Unity虚拟环境中的小车都以连续的转向和油门值作为输入,为方便控制,本发明将油门值设置为常数0.7;真实环境中的小车和Unity虚拟环境中小车自动驾驶模型输出操纵值,操纵值即为小车转向信息,包含15个角度转向和速度值,其中速度值范围为-1到1。
本实施例中,设计深度双Q网络算法,其中深度双Q网络中单个Q网络采用的三层卷积神经网络处理图片的过程,如图4所示,包括以下步骤:
1)将经过预处理后的连续四幅图像80×80×4(4表示4个通道,四张图即是4个通道)经过卷积核为8×8×4×32步长为4的卷积,得到32张大小为20×20的特征图,即20×20×32.将其进行池化核为2×2的池化得到10×10 的图像,即此时为10×10×32;
2)将上一步所得图像进行卷积核为4×4×32×64,步长为2的卷积得到64张5×5的图像,即5×5×64;
3)再进行一次卷积核为3×3×64×64,步长为1的卷积,此时依旧得到3×3×64的图像,但此时经过了再一轮卷积的图像,其图像信息更加抽象,更具全局性。
4)对第二次卷积后3×3×64的图像进行1600×256的全连接,得到一个256维的特征向量,即256×1;
5)再次进行全连接,最终输出2×1维向量,包含十五个角度方向之一和小车的速度值。
本实施例中,双深度Q网络算法模型,每一次训练中,输入为堆叠帧状态,即小车摄像头拍到的路面图片,图片经过预处理后,进入由两个深度 Q网络构成的双深度Q网络模型,分别为评估网络和目标网络,通过网络后输出,首先通过目标网络选择下一状态St+1下奖励获得最大的动作,再利用一个评估网络计算这一动作带来的奖励,然后两者的奖励进行比较,进行误差反向传播,从而更新目标网络参数,输出一个2×1维向量包含十五个角度方向之一和小车的速度值。其中,目标网络在每一个训练步数后就进行更新,一个训练步数即为小车从开始驾驶到撞毁或越出规定道路,目标网络和评价网络中的三层神经网络训练的batch大小为64。
本实施例中,训练自动驾驶模型过程在一台单CPU,GPU为TITAN-X 的电脑上,电脑配置Python版本为3.4,TensorFlow版本为1.0,Keras版本为2.2,Unity版本为5.5。整体训练大概为3300个训练步数,学习曲线(平均奖励-训练步数变化图)如图5所示。整个训练过程花费大约3小时。
步骤4:配置实体小车软硬件环境,让实体小车拥有运行自动驾驶模型的系统环境,迁移已训练的小车自动驾驶模型到实体小车系统;本实施例中,本发明采用的小车示意图如图6,其部分硬件组成为:
1)树莓派3,是一款具有1.2GHz处理速度和1GB内存的低成本计算机。它配备了Linux系统的树莓派版本,支持蓝牙、Wi-FI通信,并对i2c 等有丰富的支持,拥有GPIO端口,为本发明的实体小车计算终端。
2)PCA9685(伺服驱动PCA9685):包括一个I2C控制的PWM驱动器和一个内置时钟来驱动修改后的伺服系统。
3)广角树莓派鱼眼相机:分辨率为2592×1944,视角为160度。为小车唯一的环境感知装置,即视觉输入。
本实施例中,树莓派Linux系统配置和TensorFlow1.0,Python3.4,Keras 版本为2.2。
步骤5:测试真实赛道下实体小车训练模型的自动驾驶操作,若小车表现较差,增加虚拟训练环境的复杂度,增加小车在虚拟环境中的训练步长,重新训练。
本实施例中,真实环境的赛道为3.5×4m的赛道,与仿真环境有高度的相似性,即真实赛道的道路宽度和虚拟环境中赛道的宽度与小车保持相同大小比例,如图7所示为真实环境,如图2所示为Unity虚拟环境。
本实施例中,衡量小车的表现方法:给定时间内统计小车在规定区域内正常驾驶时间以及是否能够避障。若小车表现较差,增加虚拟训练环境的复杂度,增加小车在虚拟环境中的训练步长,重新训练。虚拟环境包含多种真实环境的可能性,即不同光线和障碍物摆放位置不同等,重新训练则需要更换这些环境属性,增加复杂度。
本发明通过基于Unity的虚拟环境进行训练,让模型具有更强的鲁棒性,即可以在虚拟环境中遍历足够多的环境,避免需要人为手动收集数据进行训练导致的大量工作量以及人为操控要求高的问题。此外,本发明使用深度双 Q网络进行训练,避免了因驾驶场景复杂导致Q表值估值过大造成训练过程复杂的问题,从而使训练过程更加快速和稳定。
本发明说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (10)
1.基于虚拟环境和深度双Q网络的自动驾驶小车训练方法,其特征在于,包括以下步骤:
步骤(1):参考真实赛道,预设环境参数,基于Unity构建适用于强化学习训练的小车赛道虚拟环境;
步骤(2):建立Websocket协议下的Unity虚拟训练环境与自动驾驶小车模型的通信连接,传输小车在虚拟环境中的驾驶数据;
步骤(3):建立表征小车自动驾驶过程的马尔科夫模型,利用深度双Q网络算法,训练自动驾驶模型;
步骤(4):配置实体小车软硬件环境,让实体小车拥有运行自动驾驶小车模型的系统环境,迁移已训练的自动驾驶小车模型到实体小车系统;
步骤(5):测试真实赛道下实体小车系统的自动驾驶操作,若自动驾驶小车模型不能长时间在规定道路范围内驾驶以及躲避障碍物,则提升虚拟训练环境的复杂度,增加小车在虚拟环境中的训练步长,重新进入步骤1进行训练。
2.根据权利要求1所述的基于虚拟环境和深度双Q网络的自动驾驶小车训练方法,其特征在于:
所述步骤(1)中,参考真实赛道,预设环境参数,基于Unity构建适用于强化学习训练的小车赛道虚拟环境;在Unity中建立满足逼真度高的小车赛道环境,包括不同障碍物、不同光线等多类环境因素和复杂路况的环境参量。
3.根据权利要求1所述的基于虚拟环境和深度双Q网络的自动驾驶小车训练方法,其特征在于:
所述步骤(2)中,建立Websocket协议下的Unity虚拟训练环境与自动驾驶小车模型的通信连接,传输小车在虚拟环境中的驾驶数据;Websocket协议允许服务器和客户端之间的双向双向通信,能满足基于Unity的虚拟环境与小车训练模型程序实时传输数据。
4.根据权利要求5所述的基于虚拟环境和深度双Q网络的自动驾驶小车训练方法,其特征在于:
所述步骤(2)中,传输小车在虚拟环境中的驾驶数据,经过预处理后的小车视角图片,所述预处理将每一帧图片像素大小从(120,160)调整为(80,80),再转化成灰度图并进行道路边缘检测,将累计时间步长的4帧堆叠在一起形成堆叠帧,最终预处理后小车在该时间的状态维度为(1,80,80,4)。
5.根据权利要求5所述的基于虚拟环境和深度双Q网络的自动驾驶小车训练方法,其特征在于:
使用Canny边缘检测器检测和提取道路边缘,再用Hough线变换识别直线,将直线分为正斜线和负斜线,即道路的左右线,最后剔除不属于道路的直线。
6.根据权利要求1所述的基于虚拟环境和深度双Q网络的自动驾驶小车训练方法,其特征在于:
所述步骤(3)中,建立表征小车自动驾驶过程的马尔科夫模型,利用深度双Q网络算法,训练自动驾驶模型;所述的深度双Q网络算法,包含两个参数相同的Q网络,每一个Q网络是由一个三层神经网络构成,堆叠帧状态作为输入,输出为代表15个离散转向类别的15个值。
7.根据权利要求1所述的基于虚拟环境和深度双Q网络的自动驾驶小车训练方法,其特征在于:
所述的两个参数相同的Q网络,每一个网络输入维度(1,80,80,4)的状态帧,输出单个可能的驾驶方向,网络的第一层为80×80×4×32的卷积核,步长为4,后进入一个2×2的最大池化层,第二层为一个4×4×32×64的卷积核,步长为2,通过第二层后再次进入池化;第三层为3×3×64×64的卷积核,步长为1,后再次池化;最后的隐含层由256的全连接层构成;网络建立适用于小车的强化学习奖励机制,设置能够进行梯度下降更新网络参数的损失函数。
8.根据权利要求6中所述的基于虚拟环境和深度双Q网络的自动驾驶小车训练方法,其特征在于:
所述的适用于小车的强化学习奖励机制,具体为:
小车与环境的交互产生奖励是由Unity提供的轨道交叉误差(cross track error,简写cte),轨道交叉误差测量的为道路中心与汽车之间的距离;定义奖励函数r如下:
其中cte是一个归一化后的常数,其值在[0,1]范围内;所以,当|cte|大于ctemax时,小车即停止;
所使用的深度双Q网络中的Q-learning作为非策略型的强化学习模型,采用贝尔曼方程:
进行迭代更新;其中s′为下一时间点状态;a′为下一时间点动作;s为当前状态;a为当前动作;γ为折扣因子,本发明中取值为γ=0.95;r为奖励;ε为经验池,训练Q网络时,从经验池中随机选取批量的样本来更新网络的参数;Qi(s,a)为Q函数在第i时间点的迭代更新;E表示取数学期望;
训练使用的损失函数Li(θi)为:
Q(s,a;θi)表示当前网络的输出,用来评估当前状态动作对的值函数;yi表示迭代到i时候的目标,定义为:
其中θi+1为Q网络迭代到i+1时候的参数;Qi(s′,a′;θi+1)表示迭代到i+1时候的网络的输出;利用上述损失函数的随机梯度下降和反向传播来更新网络的权重。
9.根据权利要求1所述的基于虚拟环境和深度双Q网络的自动驾驶小车训练方法,其特征在于:
所述步骤(4)中,配置实体小车软硬件环境,让实体小车拥有运行自动驾驶模型的系统环境,迁移已训练的自动驾驶小车模型到实体小车系统;所设计的实体小车的硬件组成为树莓派3,伺服驱动PCA9685,广角树莓派鱼眼相机;未训练前,实体小车软件系统环境中的小车自动驾驶模型与主机服务器上的小车自动驾驶模型一致,包括相同的控制代码,训练后,将主机服务器上的小车自动驾驶模型直接迁移到实体小车中。
10.根据权利要求1所述的基于虚拟环境和深度双Q网络的自动驾驶小车训练方法,其特征在于:
所述步骤(5)中,测试真实赛道下实体小车训练模型的自动驾驶操作,若小车自动驾驶操作表现较差,提升虚拟训练环境的复杂度,增加小车在虚拟环境中的训练步长,重新进入步骤(1)进行训练;所述小车表现较差的衡量方法为:给定时间内统计小车在规定区域内正常驾驶时间以及是否能够避障;真实赛道与虚拟赛道具有高度的相似性,即真实赛道的道路宽度和虚拟环境中赛道的宽度与小车保持相同大小比例;虚拟环境包含多种真实环境的可能性,即不同光线和障碍物摆放位置不同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911135830.4A CN110850877A (zh) | 2019-11-19 | 2019-11-19 | 基于虚拟环境和深度双q网络的自动驾驶小车训练方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911135830.4A CN110850877A (zh) | 2019-11-19 | 2019-11-19 | 基于虚拟环境和深度双q网络的自动驾驶小车训练方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110850877A true CN110850877A (zh) | 2020-02-28 |
Family
ID=69602356
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911135830.4A Pending CN110850877A (zh) | 2019-11-19 | 2019-11-19 | 基于虚拟环境和深度双q网络的自动驾驶小车训练方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110850877A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111473794A (zh) * | 2020-04-01 | 2020-07-31 | 北京理工大学 | 一种基于强化学习的结构化道路无人驾驶决策规划方法 |
CN111625360A (zh) * | 2020-05-26 | 2020-09-04 | 多伦科技股份有限公司 | 一种基于平面分离的车辆大数据边缘计算卸载方法 |
CN112650240A (zh) * | 2020-12-21 | 2021-04-13 | 深圳大学 | 一种多智能体多场景数据集训练的自动驾驶方法 |
CN112926274A (zh) * | 2021-04-15 | 2021-06-08 | 成都四方伟业软件股份有限公司 | 一种利用卷积神经网络模拟城市交通系统的方法及装置 |
CN113253739A (zh) * | 2021-06-24 | 2021-08-13 | 深圳慧拓无限科技有限公司 | 一种用于高速公路的驾驶行为决策方法 |
CN113657292A (zh) * | 2021-08-19 | 2021-11-16 | 东南大学 | 一种基于深度强化学习的车辆自动循迹驾驶方法 |
CN113805580A (zh) * | 2021-07-09 | 2021-12-17 | 北京京东乾石科技有限公司 | 一种设备控制方法、系统、装置及其存储介质 |
CN114444716A (zh) * | 2022-01-06 | 2022-05-06 | 中国电子科技集团公司电子科学研究院 | 虚拟环境下的多智能体博弈训练方法及系统 |
WO2022252559A1 (zh) * | 2021-05-31 | 2022-12-08 | 深圳先进技术研究院 | 基于规则和双深度q网络的混合动力汽车能量管理方法 |
WO2023050048A1 (en) * | 2021-09-28 | 2023-04-06 | Robert Bosch Gmbh | Method and apparatus for simulating environment for performing task |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109783412A (zh) * | 2019-01-18 | 2019-05-21 | 电子科技大学 | 一种深度强化学习加速训练的方法 |
US20190220737A1 (en) * | 2018-01-17 | 2019-07-18 | Hengshuai Yao | Method of generating training data for training a neural network, method of training a neural network and using neural network for autonomous operations |
US20190236455A1 (en) * | 2018-01-31 | 2019-08-01 | Royal Bank Of Canada | Pre-training neural networks with human demonstrations for deep reinforcement learning |
CN110321666A (zh) * | 2019-08-09 | 2019-10-11 | 重庆理工大学 | 基于先验知识与dqn算法的多机器人路径规划方法 |
-
2019
- 2019-11-19 CN CN201911135830.4A patent/CN110850877A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190220737A1 (en) * | 2018-01-17 | 2019-07-18 | Hengshuai Yao | Method of generating training data for training a neural network, method of training a neural network and using neural network for autonomous operations |
US20190236455A1 (en) * | 2018-01-31 | 2019-08-01 | Royal Bank Of Canada | Pre-training neural networks with human demonstrations for deep reinforcement learning |
CN109783412A (zh) * | 2019-01-18 | 2019-05-21 | 电子科技大学 | 一种深度强化学习加速训练的方法 |
CN110321666A (zh) * | 2019-08-09 | 2019-10-11 | 重庆理工大学 | 基于先验知识与dqn算法的多机器人路径规划方法 |
Non-Patent Citations (11)
Title |
---|
FELIX YU: "Train Donkey Car inUnity Simulator withReinforcement Learning", 《TYPE THEME》 * |
FELIX YU: "Train Donkey Car inUnity Simulator withReinforcement Learning", 《TYPE THEME》, 11 September 2018 (2018-09-11), pages 2 - 4 * |
YINLONG YUAN: "A novel multi-step Q-learning method to improve data efficiency for deep reinforcement learning", 《KNOWLEDGE-BASED SYSTEMS》 * |
YINLONG YUAN: "A novel multi-step Q-learning method to improve data efficiency for deep reinforcement learning", 《KNOWLEDGE-BASED SYSTEMS》, 21 March 2019 (2019-03-21) * |
周婉: "基于深度Q 网络的人群疏散机器人运动规划算法", 《计算机应用》 * |
周婉: "基于深度Q 网络的人群疏散机器人运动规划算法", 《计算机应用》, 10 October 2019 (2019-10-10) * |
巍兰: "《pathon人工智能项目实践》", 北京机械工业出版社, pages: 9 * |
张琪: "A SIM2REAL METHOD BASED ON DDQN FOR TRAINING A SELF-DRIVING SCALE CAR", 《MANUSCRIPT SUBMITTED TO AIMS" JOURNALS》, 24 November 2019 (2019-11-24) * |
董培方: "无人作战移动平台控制系统及路径规划算法研究", 《中国优秀硕博士论文全文数据库》 * |
董培方: "无人作战移动平台控制系统及路径规划算法研究", 《中国优秀硕博士论文全文数据库》, 15 January 2019 (2019-01-15), pages 4 * |
陈敏: "《认知计算导论》", 31 May 2017, pages: 16 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111473794A (zh) * | 2020-04-01 | 2020-07-31 | 北京理工大学 | 一种基于强化学习的结构化道路无人驾驶决策规划方法 |
CN111473794B (zh) * | 2020-04-01 | 2022-02-11 | 北京理工大学 | 一种基于强化学习的结构化道路无人驾驶决策规划方法 |
CN111625360B (zh) * | 2020-05-26 | 2023-09-05 | 多伦科技股份有限公司 | 一种基于平面分离的车辆大数据边缘计算卸载方法 |
CN111625360A (zh) * | 2020-05-26 | 2020-09-04 | 多伦科技股份有限公司 | 一种基于平面分离的车辆大数据边缘计算卸载方法 |
CN112650240A (zh) * | 2020-12-21 | 2021-04-13 | 深圳大学 | 一种多智能体多场景数据集训练的自动驾驶方法 |
CN112650240B (zh) * | 2020-12-21 | 2024-08-20 | 深圳大学 | 一种多智能体多场景数据集训练的自动驾驶方法 |
CN112926274A (zh) * | 2021-04-15 | 2021-06-08 | 成都四方伟业软件股份有限公司 | 一种利用卷积神经网络模拟城市交通系统的方法及装置 |
WO2022252559A1 (zh) * | 2021-05-31 | 2022-12-08 | 深圳先进技术研究院 | 基于规则和双深度q网络的混合动力汽车能量管理方法 |
CN113253739A (zh) * | 2021-06-24 | 2021-08-13 | 深圳慧拓无限科技有限公司 | 一种用于高速公路的驾驶行为决策方法 |
CN113253739B (zh) * | 2021-06-24 | 2021-11-02 | 深圳慧拓无限科技有限公司 | 一种用于高速公路的驾驶行为决策方法 |
CN113805580A (zh) * | 2021-07-09 | 2021-12-17 | 北京京东乾石科技有限公司 | 一种设备控制方法、系统、装置及其存储介质 |
CN113657292A (zh) * | 2021-08-19 | 2021-11-16 | 东南大学 | 一种基于深度强化学习的车辆自动循迹驾驶方法 |
WO2023050048A1 (en) * | 2021-09-28 | 2023-04-06 | Robert Bosch Gmbh | Method and apparatus for simulating environment for performing task |
CN114444716A (zh) * | 2022-01-06 | 2022-05-06 | 中国电子科技集团公司电子科学研究院 | 虚拟环境下的多智能体博弈训练方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110850877A (zh) | 基于虚拟环境和深度双q网络的自动驾驶小车训练方法 | |
US10817731B2 (en) | Image-based pedestrian detection | |
US10860896B2 (en) | FPGA device for image classification | |
WO2021249071A1 (zh) | 一种车道线的检测方法及相关设备 | |
US20190147255A1 (en) | Systems and Methods for Generating Sparse Geographic Data for Autonomous Vehicles | |
CN112740268B (zh) | 目标检测方法和装置 | |
CN109214987A (zh) | 从上采样的低分辨率lidar 3-d点云和摄像机图像生成高分辨率3-d点云 | |
CN109215067A (zh) | 基于cnn和crf模型生成高分辨率3-d点云 | |
Yudin et al. | Object detection with deep neural networks for reinforcement learning in the task of autonomous vehicles path planning at the intersection | |
WO2019033747A1 (zh) | 无人机智能跟随目标确定方法、无人机和遥控器 | |
US11731663B2 (en) | Systems and methods for actor motion forecasting within a surrounding environment of an autonomous vehicle | |
US11580851B2 (en) | Systems and methods for simulating traffic scenes | |
US11636348B1 (en) | Adaptive training of neural network models at model deployment destinations | |
US12023812B2 (en) | Systems and methods for sensor data packet processing and spatial memory updating for robotic platforms | |
US12008762B2 (en) | Systems and methods for generating a road surface semantic segmentation map from a sequence of point clouds | |
CN115285143B (zh) | 一种基于场景分类的自动驾驶车辆导航方法 | |
CN116348938A (zh) | 用于预测动态对象行为的方法和系统 | |
CN112541449A (zh) | 一种基于无人机航拍视角的行人轨迹预测方法 | |
Wang et al. | End-to-end self-driving approach independent of irrelevant roadside objects with auto-encoder | |
Wang et al. | End-to-end driving simulation via angle branched network | |
Wang et al. | Vision-based autonomous driving: A hierarchical reinforcement learning approach | |
Zhang et al. | A convolutional neural network method for self-driving cars | |
US12026954B2 (en) | Static occupancy tracking | |
Zhang et al. | A virtual end-to-end learning system for robot navigation based on temporal dependencies | |
WO2024093321A1 (zh) | 车辆的位置获取方法、模型的训练方法以及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200228 |
|
RJ01 | Rejection of invention patent application after publication |