概述
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是否已经安转成功:
python
import tensorflow as tf
print(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/17 Linux Mac Windows
Version 1, 12/09/16 Linux Mac Windows 32 Windows 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.tsinghua.edu.cn/simple opencv-python
pip install flask
pip install pillow
pip install eventlet
pip install numpy
训练判断转向角的全连接模型
有了训练数据我们就可以搭建我们的训练模型了,我们使用csv库读取数据,利用Keras建立模型。下载包cv2包
pip install opencv--python
在pycharm中,运行下列程序,
import csv
import cv2
import numpy as np
from keras.models import Sequential
from 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))
model.compile(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
运行成功
最后
以上就是现实小蜜蜂为你收集整理的Udacity 无人驾驶仿真环境搭建实现自动驾驶小车的全部内容,希望文章能够帮你解决Udacity 无人驾驶仿真环境搭建实现自动驾驶小车所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复