简单介绍
这是Udacity无人驾驶课程里一个利用深度学习实现的玩赛车小游戏,
附上链接:github项目
原理就是玩家手动让赛车在赛道上跑几圈,赛车上的三个摄像头捕捉到照片,并记录下照片对应的转角、速度信息。训练好后,玩家可以通过drive.py运行脚本实现赛车自己在赛道上跑。
当然,这只是游戏中能这样做,现实情况复杂太多,不可能用这种方式实现”无人驾驶“。但我觉得这依然是一个很有趣的深度学习小项目。可以帮助初学者很好地理解深度学习训练中的步骤,以及各种基本调优手段。
准备工作
下图就是游戏的启动界面,选择training model即可开始训练,快捷键”R“可以帮助纪录保存下训练集(赛车上的三个摄像头捕捉的图像和对应的速度转角信息)。
训练网络
首先是读取数据,并将数据转化为keras需要的numpy的array形式。其中要注意的是,左右两边的摄像头对应的转角应该会存在一些偏差。这里做一些简单的加减处理即可。
lines = []
images = []
measurements = []
with open('../../data_game/driving_log.csv') as csvfile:
reader = csv.reader(csvfile)
for line in reader:
lines.append(line)
for line in lines:
current_centre_path = line[0]
current_left_path = line[1]
current_right_path = line[2]
image_centre = cv2.imread(current_centre_path)
image_left = cv2.imread(current_left_path)
image_right = cv2.imread(current_right_path)
images.append(image_centre)
images.append(image_left)
images.append(image_right)
measurement_centre = float(line[3])
measurement_left = measurement_centre + 0.2
measurement_right = measurement_centre -