200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > Udacity 无人驾驶仿真环境搭建实现自动驾驶小车

Udacity 无人驾驶仿真环境搭建实现自动驾驶小车

时间:2020-07-14 02:26:58

相关推荐

Udacity 无人驾驶仿真环境搭建实现自动驾驶小车

1.我的配置

系统:ubuntu 18.04 python 3.5 tensorflow -gpu==1.4.1

2.虚拟环境配置

使用anaconda进行安装,不需要单独安装cuda和cudnn,conda会下载并安装好,不需要考虑版本依赖的问题,简便的地方就是这里了。

1.创建虚拟环境

conda create -n My_tf python = 3.5

2.激活虚拟环境

conda activate My_tf

3.安装Tensorflow-gpu

终端下输入命令来查看所有可用版本的tensorflow-gpu:

conda search tensorFlow-gpu

合适的版本,这里选择的是1.4.1版本,输入命令安装tensorflow-gpu,可以看到需要下载cudatoolkit、cudnn、tensorflow-gpu等这些依赖包,不需要我们自己去配环境了,其中的cudatoolkit就是常说的cuda了,输入y就可以安装的。

conda install tensorflow-gpu==1.4.1

4.测试tensorflow-gpu是否已经安转成功:

pythonimport tensorflow as tfprint(tf.__version__) #注意__是两个下划线

如果输出的是对应安装的tensorflow-gpu的版本号,则tensorflow-gpu安装成功了。

5.下载相应的keras包

Tensorflow之环境版本匹配问题_ZONG_XP的博客-CSDN博客_tensorflow版本不匹配

pip install keras==2.0.8

6.pyCharm导入环境和添加解释器

打开PyCharm新建一个项目之后,点击左上角的file,选择Settings,在左侧选择Project Interpreter,然后点击右侧面板的小齿轮,选择Add…,在弹出的窗口左侧选择Conda Environment,接着选择Existing environment,这时候它会自动识别出刚刚创建好的conda环境,然后勾选Make available to all projects,点击OK即可。

创建新项目的时候注意选择好Project Interpreter,因为刚刚的设置可能会不能应用到新项目,需要手动选择一下。

注意:如果在pycharm下更改了tensorflow-gpu的版本,则对应的在aconda的python环境下的tensorflow-gpu的版本与会随之改变。

如果tensorflow-gpu的版本太低,则会出现某些功能不支持的问题:如AttributeError: module ‘tensorflow’ has no attribute 'keras’等问题。如果tensorflow-gpu的版本太高,则可能与NVIDIA的显卡驱动不匹配。需要酌情考虑版本。

3.udacity仿真环境下载

(ps: 需要下载unity才能运行,我电脑已经安装unity,如果需要可以在这里下载unity下载)

先下载仿真器,我用的是version2 的Linux版

Term 1 Instructions: Download the zip file, extract it and run the executable file.

Version 2, 2/07/17LinuxMacWindows

Version 1, 12/09/16LinuxMacWindows 32Windows 64

装好后效果如图所示,有两个模式,第一个是训练模式可以采集数据集,第二个是自动模式,可以用程序进行控制,测试效果。

配置

手动解压,或查找相应命令解压文件;

cd到解压得到的文件目录,例如我的为cd /home/xxx/Downloads/beta_simulator_lunux ;

手动或利用命令将与系统对应版本(32位还是64位)beta_simulator.x86_64[64位]或beta_simulator.x86[32位]变成可执行文件,例如在终端执行sudo chmod +x beta_simulator.x86_64;

需要先分别输入下面两行代码,就可以打开udacity模拟器。

chmod a+r+w+x *sudo ./beta_simulator.x86_64

下面图片是输入上述代码过程

后面只需要在该模拟器文件夹下输入下列代码,就可以直接打开模拟器。

./beta_simulator.x86_64

Controls:在Simulator中的按键指南

Training Mode:人为控制车辆模式,用来收集数据

Autonomous Mode:全自动模式,使用训练好的模型进行无人驾驶

4.数据收集

进入Training Mode开始玩游戏,熟练一下按键和操作!在Simulator中,这辆车的传感器是三个前置摄像头,分别放置在左、中、右三个方向,对周围的环境进行拍摄录制,结果之后会以图片形式保存到电脑上。

开始收集数据:

首先按下R键 (Record),选择数据保存目录,确认

再次按下R键,进入录制模式

驾驶车辆在车道中行驶

行驶完毕后第三次按下R键,数据会被保存到硬盘上

进入TRAINING MODE后点击右上角的RECORD选择训练数据保存的位置(注意保存位置要点选到文件夹上,不要选到文件夹内空白处),然后Select,如下图:

再次点击右上角RECOED,当其变成RECORDING时,就可以手动驾驶小车了,大概驾驶8,9分钟,点击右上角RECORDING,界面中间出现绿色Capturing Data,表示正在记录并存储图片与转向角,8,9分钟左中右三个摄像头共可采集2万多张图片,这时,在相应目录下会生成两个文件: driving_log.csv和IMG文件夹。顾名思义,driving_log.csv中保存了用户开车时的log,IMG文件夹中保存了摄像头的照片。driving_log.csv基本结构如下图。

前三列分别表示在当时左中右摄像头的照片路径

D列表示车的方向盘角度

E列表示油门力度

F列表示刹车力度

G列表示当前速度

为了简洁明了,在本文中我们只采用A,B,C,D列数据,即利用摄像头照片预测方向盘角度。另外,收集数据时有几个tips:

首先大概收集两圈比较完美的数据,尽量保持车在道路中间行驶;

在转弯或模型训练之后比较容易出错的地方多收集几次数据。

5.Drive.py下载与驱动

自动模式需要drive.py进行端口数据交互。

这里有drive文件CarND-Behavioral-Cloning-P3

很重要的一个点是drive.py的socketio的连接

socketio很容易不兼容,这里提供一个兼容版本

pip install Flask-SocketIO==4.3.1 pip install python-engineio==3.13.2 pip install python-socketio==4.6.0 pip install --upgrade h5py

其他模块

pip3 install -i https://pypi.tuna./simple opencv-pythonpip install flaskpip install pillowpip install eventletpip install numpy

训练判断转向角的全连接模型

有了训练数据我们就可以搭建我们的训练模型了,我们使用csv库读取数据,利用Keras建立模型。下载包cv2包

pip install opencv--python

在pycharm中,运行下列程序,

import csvimport cv2import numpy as npfrom keras.models import Sequentialfrom keras.layers import Flatten, Dense# 初始化行的数组,将csv中的数据传入到数组中lines = []# 读取csv文件with open('.../data/driving_log.csv') as csvfile: reader = csv.reader(csvfile)for line in reader:lines.append(line)#'.../data/driving_log.csv' 数据存储到目录,可能需要设置成自己的数据集存储的目路。我的是'/home/yu/wen/data/IMG/'# 初始化图片矩阵和转向角images = []measurements = []for line in lines:source_path = line[0]filename = source_path.split("/")[-1]# 图片路径current_path = '.../data/IMG/' + filename# 将所有的图片数据存入images数组中image = cv2.imread(current_path)images.append(image)# 将相对应的转向角数据存入measurement数组中measurement = float(line[3])measurements.append(measurement)# 将images和measurements作为训练数据X_train = np.array(images)y_train = np.array(measurements)# 使用Keras建立模型model = Sequential()model.add(Flatten(input_shape=(160, 320, 3)))model.add(Dense(1))pile(loss='mse', optimizer='adam')model.fit(X_train, y_train, validation_split=0.2, shuffle=True, nb_epoch=10)model.save('model.h5')

得到model.h5文件,将这个文件复制到上面下载的drive文件:CarND-Behavioral-Cloning-P3-master文件夹中,在该文件打开终端,切换到对应的conda虚拟环境,输入

python drive.py model.h5

​​​​​​​运行成功

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。