使用端到端深度学习的自动驾驶:AirSim 教程
作者:
Mitchell Spryn,软件工程师 II,Microsoft
Aditya Sharma,项目经理,Microsoft
概述:
在本教程中,您将学习如何使用从 AirSim 模拟环境收集的数据训练和测试用于自动驾驶的端到端深度学习模型。 您将训练一个模型,以学习如何仅使用一个前置网络摄像头作为视觉输入,在 AirSim 中的地形图的一部分中驾驶汽车。 这样的任务通常被认为是自动驾驶的“hello world”,但在完成本教程后,您将有足够的背景开始自己探索新想法。 通过本教程的长度,您还将了解使用端到端深度学习方法的一些实际方面和细微差别。
以下是该模型的简短示例:
本教程的结构
本教程中的代码是用 Keras 编写的,Keras 是一种高级深度学习 Python API,能够在 CNTK、TensorFlow 或 Theano 之上运行。 事实上,Keras 允许您使用您选择的深度学习框架,而且其使用简单,使其成为初学者的理想选择,消除了大多数流行框架附带的学习曲线。
本教程以 Python 笔记本的形式呈现给您。 Python 笔记本使您可以轻松阅读说明和解释,以及在同一文件中编写和运行代码,所有这些都可以在浏览器窗口中轻松工作。 您将按顺序浏览以下笔记本:
DataExplorationAndPreparation
TrainModel
TestModel
如果您以前从未使用过 Python 笔记本,我们强烈建议您查看文档。
先决条件和设置
需要的背景
至少,您需要熟悉神经网络的基础知识。 您不需要了解 LSTM 或强化学习等高级概念,但您应该了解卷积网络的工作原理。 在很短的时间内获得强大背景的一个非常好的起点是迈克尔尼尔森写的这本伟大的书。 它是免费的,很短,可在线获取。 它可以在不到一周的时间内为您打下坚实的基础。
您还应该熟悉 Python。 至少,您应该能够阅读和理解用 Python 编写的代码。
环境设置
安装 AirSim
使用 Python 3.5 或更高版本
安装 Anaconda。
安装 CNTK 或安装 Tensorflow
安装 h5py
安装 Keras 配置 Keras 后端以使用 TensorFlow(默认)或 CNTK。
硬件
强烈建议使用 GPU 进行处理。 虽然可以仅使用 CPU 来训练模型,但完成训练需要数天时间。 本教程是使用 Nvidia GTX970 GPU 开发的,训练时间约为 45 分钟。
如果您没有可用的 GPU,您可以在 Azure 上启动一个深度学习 VM,它附带安装了所有依赖项和库(如果您正在使用此 VM,请使用提供的 py35 环境)。
数据集
该模型的数据集非常大。 你可以在这里下载。 第一个笔记本将提供有关如何在下载数据后访问数据的指导。 最终未压缩的数据集大小约为 3.25GB(虽然与训练实际自动驾驶汽车所需的 PB 级数据相比不算什么,但对于本教程的目的来说应该足够了)。
策划人的说明
我们已尽最大努力确保本教程可以帮助您开始了解自动驾驶的基础知识,并让您能够开始独立探索新想法。 我们很想听听您对我们如何改进和发展本教程的反馈。 我们也很想知道我们可以为您提供哪些其他教程来帮助您实现职业目标。 请随时使用 GitHub 问题部分获取所有反馈。 所有反馈都将受到密切监控。 如果您有想要合作的想法,请随时与我们联系,我们将很乐意与您合作。
后续持续学习更新