如何部署自动驾驶系统
如何部署自动驾驶系统
自动驾驶软件部署方法、装置、终端及服务器,更具体的涉及一种自动驾驶车辆行驶途中下一地理位置区域所调用的自动驾驶软件部署方法、装置、终端及服务器。背景技术随着城市化建设带来的人口高度集中和交通产业的不断发展,社会对智能交通系统如何提供更加便捷、高效和人性化的服务,提出了越来越高的需求。自动驾驶是当前智能交通的重要发展方向,它作为一项新技术,是汽车行业当前的热点。自动驾驶车辆又称无人驾驶车辆、智能驾驶车辆、电脑驾驶车辆或轮式移动机器人,是一种通过电脑系统实现无人驾驶的智能汽车。
这次要做的是要在本地实现一个自动驾驶项目,本次要用到的是一个英伟达自动驾驶论文的Tensorflow实现的代码。文末有一个测试视频。
首先,先把代码从github上拷贝下来。地址:
https://github.com/SullyChen/Autopilot-TensorFlow
如何再把数据集下载下来解压到项目根目录,地址:
https://drive.google.com/file/d/0B-KJCaaF7elleG1RbzVPZWV4Tlk/view?usp=sharing
因为代码用的是旧版本的Tensorflow,所以如果有出错大都是Tensorflow的函数名变了而已,例如使用时将 tf.mul 改成 tf.multiply tf.train.SummaryWriter改成tf.summary.FileWriter等等都可以百度或者谷歌得到。还有一个问题就是如果是windows下运行就要将 call("clear") 去掉。如果还有其它问题应该就是没安装第三方包和路径的问题。
直接运行run_dataset.py,如果没报错的话应该效果如下图
如果运行run.py 的话就是用本地的摄像头运行。
然后问题来了?这样一个自动驾驶系统是不是很难啊?
一个能应用到实际中的自动驾驶系统其实极其复杂,但是就这个系统而言,我可以告诉大家,其实一点都不难。通过代码来捋一捋ta是怎么实现的。
driving_data.py就是用来加载数据集的。打开它的数据集文件夹看一下
你会发现这是一个4w+图片和一个txt文件的数据集,然后在打开data.txt,强烈要求用notepad++打开,因为window自带的notepad真的是一个反人类的设计。
这个txt文件其实是一个label,每一行都由对应的图标index和方向盘转动的角度。相信大家看到这里差不多已经知道这个系统是怎么实现的了。
其实这个系统的泛化性能很差,业内一般都不会这样做的。这个系统其实是这样实现的:首先构建一个卷积神经网络,输入的训练数据其实就是一张张图片,然后让神经网络预测一个方向盘转动的角度,再与实际转动的角度计算一个损失值,再实现梯度下降减小损失值。在大量的训练之后,系统的预测值就与人做出的反应差不多了。但是这样训练出来其实是远远达不到自动驾驶的需求的。
业内做的往往要通过对所有物体定位、路径规划、激光雷达避障等等才能实现自动驾驶。
所以这个项目只能作为学习用,或者自己增加数据集将这个模型用于精度要求没有那么高的场景。