简介:这是整个课程最有趣的部分,首先你自己模拟开车,然后你的神经网络学习你的开车方法,学会自己开车
驾驶模拟器:跑在最小的大小和最快图像质量就可以了,先用训练模式训练,现在用简单跑道就可以了,但是也可以用困难跑道。
用箭头键或者鼠标控制车,R(或者空格?)控制录像,当自己习惯开车之后开始录制,这里的目标是让车在道路中间开,以及避免掉下去。
小技巧:顺时针开一圈之后可以逆时针开一圈,也可以用代码把图片左右翻转一下,也可以使用困难跑道收集数据
最开始可以使用图片来预测转向角度,忽略油门踏板开度和车速,以及可以把图片的上部分(风景,与路无关)切掉。
左右两边相机的图片看似没有用实际上可以教模型什么时候偏离了中心应该往中心打方向(当成前相机图片使用)。
然后把图片传到云端,为了确认流程没问题,做一个最最简单的keras神经网络训练出一个简单的模型,把模型保存到本地(model.h5)。
在本地用drive.py跑模型,python drive.py model.h5,在模拟器里选择自动模式就可以看到车能自己走了。
模型优化:
1. 预处理,使用lambda layers把图片标准化以及均值移到0(normalization and mean-centered)
2. 用更好的神经网络,如LeNet
3. 数据增强(data augmentation),使数据更具有普遍意义,如将图片左右翻转,这样就多了一倍的数据
4. 用上左右相机的图片,加上校正系数教网络往中间走,当然在这里可以选择只录车往路中间移动的部分,不录从中间往路两边开的部分
5. 可以用cropping2d函数把图像的上面风景和下面带车的这些没用/干扰部分切掉
6. 用更复杂的NVIDIA神经网络试试
7. 收集更多数据 -- 从一圈的数据加到2圈试试
8. 用model.fit()或者model.fit_generator()打印训练和验证集的loss
9. 使用generators,可以在连续性处理数据的时候节省存储空间(存储前一步的结果以供后一步使用)
为了交作业,需要使用video.py录至少一圈的自动驾驶录像证明自己的模型可靠
立个flag,以后我会回来把这块内容再详细化的!
浙公网安备 33010602011771号