深度学习在自动驾驶中的应用

原创 2016年12月30日 21:28:59

转载请注明出处:http://blog.csdn.net/c602273091/article/details/53946217

intro

Nvidia在做自动驾驶的时候,思路和传统思路果然有些差异。比如Google使用的是激光雷达+摄像头+IMU+惯导系统+GPS等等。Nvidia做法是采取end2end的方法,就是直接从摄像头的像素->汽车的控制。就是把采集的图片作为输入,汽车的轮子的角度作为输出。没有了特征提取,语义分析等等过程,直接指向最终要的输出。这个思路很简单,效果从视频Nvidia自动驾驶视频 上来看在雨天,雪天,无车道线环境下行驶还算是流畅。但是可以发现这里的环境都是相对静态环境,变数很小。如果是在城市中行驶,有红绿灯、人群等等情况的时候,效果就不能保证了。

我觉得这个思路是比较新颖的,但是我觉得从安全性来看,以及面对更加复杂的状况,以及更多的语义信息需要加入其中,Nvidia做的显然还有很远的路要走。当然,Nvidia做这个对推广其自家的Nvidia DevBox,Nvidia DRIVE PX有不小的推动作用。

我觉得在自动驾驶这个方面,使用深度增强学习可以有不错的效果。然后再加上一些额外的硬件保障系统,加入地图,IMU等等,那么其效果或许可以媲美激光雷达吧。我感觉Nvidia的做法把自动驾驶弄得一下子不如以前那么高大上了,看CMU和Standford在DARPA上的自动驾驶的车的论文就知道自动驾驶的坑很深。

其实Nvidia是使用CNN做的是车在路上走不撞车,之前为了实现这个,可能会进行车道线检测、图片分割、路径规划和控制。具体要往某个目的地走,它没有涉及。

Implementation

这里写图片描述
以上这个系统叫做DAVE-2,DAVE其实是(DARPA Autonomous Vehicle的缩写,无人车比赛最早就是DARPA搞出来的)。

整个系统采用的是三个摄像头:
这里写图片描述

图片被送入CNN,然后计算可能的驾驶指令。然后把这个可能的指令和标记进行对比来更新CNN的权值(就是BP)。Nvidia使用的是Torch 7进行训练。

那么这里有个trick,就是我们人类只输入的是正确的样本,那么怎么让计算机面对错误的环境来做调整呢?很简单的trick,在车上面再安装两个摄像头,不过这两个摄像头的位置不在正中间,那么这两个摄像头看到的样本就是错误的。其他的偏移中间及旋转则可以根据3d变化来模拟出来。那么对应的偏移及旋转的控制量也可以计算出来。这样就有了一一对应的样本了。那么这里我们也应该看到,输出是很简单的,就是汽车驾驶的轮子的角度。并没有速度控制。这一定程度上大大简化了训练的要求。

当网络训练好了以后,就是用中间的摄像头的结果输入到CNN进行计算输出给汽车的命令。
这里写图片描述

Data for Training

训练数据一共有72个小时,每小时30f。包含了各种天气和各种路况。这个数据集看来收集得还不错。想要的同学点击这里下载:数据下载

Network

训练的网络的loss function是使用MSE。一共有9层,归一化层+5层卷积+3层全连接。输入的数据是YUV。
这里写图片描述

在选取训练数据的时候,会把有车道线的部分选上。然后每秒选择10f,因为选太多会有很多重复。

对于车处于比较差的位置的时候,会人为地给它加入一些旋转和偏移作为矫正。再做训练。

Simulation

在真车上路之前需要进行软件模拟。
整个模拟的框架如下:
这里写图片描述

Test

测试方面,既有仿真器的测试和真车的测试两部分。

Resource

Nvidia的博客: https://devblogs.nvidia.com/parallelforall/deep-learning-self-driving-cars/
论文: 论文下载
代码: 代码实现
别人的总结: http://blog.csdn.net/songrotek/article/details/51302515

版权声明:本文为博主原创文章,未经博主允许不得转载,否则将通知维权骑士维护自己的权益。 https://blog.csdn.net/c602273091/article/details/53946217

【自动驾驶】深度学习用于自动驾驶技术 DeepDriving(ICCV 2015)

无人驾驶技术在最近几年得到了迅猛发展,今天将分享 ICCV 2015 的一篇有关方面的论文: DeepDriving: Learning Affordance for Direct Percept...
  • bcj296050240
  • bcj296050240
  • 2016-12-27 19:38:18
  • 5162

【自动驾驶】如何利用深度学习搭建一个最简单的无人驾驶系统

新智驾按:本文为新智驾独家专栏,作者系佐思产研研究总监周彦武,新智驾经授权发布。 国内最牛的无人驾驶厂家的运算平台是这样的: 一个英特尔至强 E5 的 CPU,拥有 12 内核,3...
  • np4rHI455vg29y2
  • np4rHI455vg29y2
  • 2017-11-02 00:00:00
  • 1616

端到端深度学习在自动驾驶汽车上的应用

2016 年 9 月 23-24 日,由 CSDN 和创新工场联合主办的“MDCC 2016 移动开发者大会• 中国”(Mobile Developer Conference China)将在北京• ...
  • Real_Myth
  • Real_Myth
  • 2016-09-03 11:50:50
  • 3468

笔记:北航 余贵珍 深度学习在自动驾驶环境感知中的应用

笔记:北航 余贵珍 深度学习在自动驾驶环境感知中的应用提纲 深度学习概述与现状; 深度学习在自动驾驶环境感知应用设想; 深度学习在视频感知应用的算法与硬件选择; 深度学习算法在ADAS前向视觉环境感知...
  • gikod
  • gikod
  • 2017-12-23 21:04:39
  • 129

【资源帖】深度学习视觉领域常用数据集汇总

[导读] “大数据时代”,数据为王!无论是数据挖掘还是目前大热的深度学习领域都离不开“大数据”。大公司们一般会有自己的数据,但对于创业公司或是高校老师、学生来说,“Where can I get la...
  • weixin_36060730
  • weixin_36060730
  • 2017-10-19 14:45:53
  • 359

深度学习对抗样本的八个误解与事实

到现在为止,几乎所有的输入都可以愚弄对象识别模型。以至于当对象识别正确工作的时候我们都无比惊讶。今天,通过一些基准测试测量,对象识别算法的识别能力已经达到人类的水准了,让我们感到惊讶的是,在非正常的输...
  • cocacola456
  • cocacola456
  • 2017-02-15 13:32:41
  • 654

【计算机视觉】深度学习视觉领域常用数据集汇总

本文结合笔者在研究生学习、科研期间使用过以及阅读文献了解到的深度学习视觉领域常用的开源数据集,进行介绍和汇总。MNIST 深度学习领域的“Hello World!”,入门必备!MNIST是一个手写数字...
  • LG1259156776
  • LG1259156776
  • 2018-02-10 10:38:25
  • 316

文本分类实战--从TFIDF到深度学习(附代码)

这几周因为在做竞赛所以没怎么看论文刷题写博客,今天抽时间把竞赛用到的东西总结一下。先试水了一个很小众的比赛–文因互联,由AI100举办,参赛队不足20个,赛题类型是文本分类。选择参赛的主要原因是其不像...
  • liuchonge
  • liuchonge
  • 2017-05-21 21:55:45
  • 15072

深度学习 -- 数据样本方面

在深度学习中,当数据量不够大时候,常常采用下面4中方法: 1. 人工增加训练集的大小. 通过平移, 翻转, 加噪声等方法从已有数据中创造出一批"新"的数据.也就是Data Augmentat...
  • u012968002
  • u012968002
  • 2017-05-11 16:19:39
  • 1829

无人驾驶汽车系统入门(十二)——卷积神经网络入门,基于深度学习的车辆实时检测

无人驾驶汽车系统入门(十二)——卷积神经网络入门,基于深度学习的车辆实时检测 上篇文章我们讲到能否尽可能利用上图像的二维特征来设计神经网络,以此来进一步提高识别的精度。在这篇博客中,我们学习一...
  • AdamShan
  • AdamShan
  • 2018-01-29 12:17:25
  • 987
收藏助手
不良信息举报
您举报文章:深度学习在自动驾驶中的应用
举报原因:
原因补充:

(最多只允许输入30个字)