从特斯拉到英伟达,那些端到端自动驾驶研发系统有何不同?
作者 | 黄浴,奇点首席科学家兼总裁
来源 | 转载自知乎专栏自动驾驶与视觉感知
导读:近日,吴恩达的 Drive.ai 被苹果收购的消息给了自动驾驶领域一记警钟,但这个领域的进展和成果犹在。本文将介绍一些端到端的自动驾驶研发系统,让读者可以从系统层面对自动驾驶有更加深刻的认识。
虽然不赞成,但有必要列出来这种研究和demo工作。
英伟达驾驶员模拟器
Nvidia是比较早做端到端控制车辆工作的公司,其方法训练CNN模型完成从单个前向摄像头的图像像素到车辆控制的映射。 其系统自动学习一些处理步骤的内部表示,比如只用转向角作为训练信号去检测道路特征。
下图是其CNN模型训练的流程图,采用BP算法。而下下图是模型推理的框图,这时候只用一个中间的摄像头。


下图给出其数据收集系统的框架,包括3个摄像头(左,右,中)输入,输出控制方向盘。

PilotNet如图CNN模型架构细节,有2700万个连结,25万个参数。


驾驶仿真器


可以看出,这个模型不学习速度调整模型,如自适应巡航控制(ACC)那样。当年,该系统曾在旧金山的著名观景九曲花街做过演示,的确不需要控制速度,但是障碍物造成刹车也会造成人为接管。
Comma.ai 与 OpenPilot 驾驶模拟器
Comma.ai作为向特斯拉和Mobileye的视觉方法挑战的黑客,的确在端到端的自动驾驶开发是最早的探索者。
其思想就是克隆驾驶员的驾驶行为,并模拟今后道路的操作规划。采用的深度学习模型是基于GAN (generative adversarial networks)框架下的VAE(variational autoencoders)。利用一个行动(action)条件RNN模型通过15帧的视频数据来学习一个过渡模型(transition model)。下图给出了这个模拟器模型的架构,其中基于RNN的过渡模型和GAN结合在一起。

曾经在网上销售其系统:



该方法没有考虑感知模块的单独训练,安全性较差,比如缺乏障碍物检测,车道线检测,红绿灯检测等等。
从大规模视频中学习 E2E 驾驶模型
目的是学习一种通用的车辆运动模型,而这个端到端的训练架构学会从单目相机数据预测今后车辆运动的分布。如图应用一个FCN-LSTM 结构做到这种运动轨迹预测。


这种通用模型,输入像素,还有车辆的历史状态和当今状态,预测未来运动的似然函数,其定义为一组车辆动作或者运动粒度(离散和连续)。图将这种方法和其他两个做比较: “中介感知(Mediated Perception)“ 方法依赖于语义类别标签;“运动反射(Motion Reflex)” 方法完全基于像素直接学习表示; 而 FCN-LSTM ,称为“特权训练(Privileged Training)“ 方法,仍然从像素学习,但允许基于语义分割的附加训练。

基于逆向强化学习的人类自主驾驶开放框架
基于一个开放平台,包括了定位和地图的车道线检测模块,运动目标检测和跟踪模块(DATMO),可以读取车辆的里程计和发动机状态。采用逆增强学习(IRL)建立的行为学习规划模块(BEhavior Learning LibrarY,Belly) ,其中特征右横向偏移,绝对速度,相对车速限制的速度和障碍物的碰撞距离,输出规划的轨迹。图是其系统框图。

模拟学习有缺陷,无法在测试时候控制,比如在交叉路口打U-turn。
提出条件模拟学习(Condition imitation learning),有以下特点:
训练时候,输入的不仅是感知和控制,还有专家的意图。
测试时候,直接输入命令,解决了感知电机(perceptuomotor)的多义性(ambiguity),同时可以直接被乘客或者拓扑规划器控制,就像驾驶员的一步一步操作。
无需规划,只需考虑驾驶的表达问题。
复杂环境下的视觉导航成为可能。
下面是实现条件模拟学习的两个NN架构:
第一个:命令输入。命令和图像等测试数据一起作为输入,可以用指向任务的向量取代命令构成任务条件的模拟学习。

第二个:分支。命令作为一个开关在专用的子模块之间的切换。

物理系统:

虚拟和实际环境:

自动驾驶的失败预测
驾驶模型在交通繁忙的地区、复杂的路口、糟糕的天气和照明条件下很可能失败。而这里就想给出一个方法能够学习如何预测这些失败出现,意识是估价某个场景对一个驾驶模型来说有多困难,这样可以提前让驾驶员当心。
这个方法是通过真实驾驶数据开发一个基于摄像头的驾驶模型,模型预测和真实操作之间的误差就称为错误度。 这样就定义了“场景可驾驶度(Scene Drivability),其量化的分数即安全和危险(Safe and Hazardous),图给出整个架构图。

图是失败预测模型训练和测试的流程图。预测失败其实是对驾驶模型的考
验,能及时发现不安全的因素。

结果如下

Note:past path (red),Lidar-IMU-INT’s future path prediction (blue).
这是一个机器学习方法,通过集成激光雷达点云,GPS-IMU数据和Google地图导航信息而产生驾驶通路。还有一个FCN模型一起学习从真实世界的驾驶序列得到感知和驾驶通路。产生与车辆控制相接近并可理解的输出,有助于填补低层的景物分解和端到端“行为反射”方法之间的间距。图给出其输入-输出的张量信号,如速度,角速度,意图,反射图等等。


下面图每列中,顶图是过去/今后(红/蓝)通路预测,底图是驾驶意图近域(左)和驾驶意图方向(右)。A列是驾驶意图(右转)和直路无出口的分歧,B–D列是存在多个可能方向 。

Note:driving intention proximity (left),driving
intention direction (right).

上图是FCN模型参数。
LiDAR视频驾驶数据集:有效学习驾驶政策
离散动作预测,预测所有可能动作的概率分布。但离散预测的局限是,只能在有限的定义好的动作进行预测。连续预测是把预测车辆的现行状态作为一个回归任务,如果准确预测在实际状态的驾驶策略,那么被训练的模型可以成功驾驶车辆。所以,把驾驶过程看成一个连续的预测任务,训练一个模型在输入多个感知信息(包括视频和点云)后能预测正确的方向盘转角和车辆速度。

如图是其系统框图,其中深度学习模型是DNN加LSTM,激光雷达点云通过PointNet提取特征送入深度学习模型。

如图给出传感器数据在进入NN模型之前的预处理流水线框图,需要时间同步,空间对齐。

下面图是深度学习模型DNN和DNN+LSTM的架构图


使用环视摄像机和路线规划器进行驾驶模型的端到端学习
ETH的工作,采用一个环视视觉系统,一个路径规划器,还有一个CAN总线阅读器。 采集的驾驶数据包括分散的驾驶场景和天气/照明条件。集成环视视觉系统和路径规划器(以OpenStreetMap为地图格式的GPS坐标或者TomTom导航仪)的信息,学习基于CNN,LSTM和FCN的驾驶模型,如图所示。

实验中,与采用单前向摄像头训练的模型还有人工操作比较(蓝/黄/红),如图所示:其中(1)-(3)对应三种不同的模型训练结果,即(1)只用TomTom路径规划器训练,(2)只用环视视觉系统训练, (3)用环视视觉和TomTom路径规划器一起训练。

深度学习的模型架构,包括路径规划器和环视系统5个输入通道,输出到方向
盘和加速踏板。

下面结果是左右拐弯时候的三种方法比较:人,前向摄像头和环视视觉加TomTom导航仪。

目前,该还没有加入目标检测和跟踪的模块(当然还有红绿灯识别,车道线检测之类的附加模块),但附加的这些模型能够改进整个系统的性能。
佐治亚理工学院端到端学习自动驾驶
还是模拟学习:采用DNN直接映射感知器数据到控制信号。下面系统框图:

下面是DNN 控制策略:

TRI自动驾驶端到端控制
端到端DNN训练,提出一种自监督学习方法去处理训练不足的场景。下图是自监督端到端控制的框架:NN编码器训练学习监督控制命令,还有量化图像内容的各种非监督输出。

提出新的VAE架构,如下图,做端到端控制: 编码器卷积层之后的图像特征,进入一个监督学习方向盘控制的潜在变量(latent variables )的可变空间。最后潜在向量进入解码器自监督学习重建原始图像。

特斯拉 SW 2.0
特斯拉的2.0软件思想,2018年8月提出。

自动雨刷:

(*本文为 AI科技大本营转载文章,转载请微信联系原作者)
◆
精彩推荐
◆
推荐阅读
不写一行代码,也能玩转Kaggle竞赛?
一文读懂基于神经网络的图片风格转移
50行Python代码,获取公众号全部文章
收藏 | 49个Python学习资源
库克回应乔纳森离职;微信新版本取消“语音转文字”功能;Mac Pro生产迁至中国 | 极客头条
三十四载Windows崛起之路: 苹果、可视做过微软“铺路石”
3大维度告诉你,为什么说比特币并非避险资产?
黑客亲述: “倾家荡产,是你们的事! ”
面试官:你简历中写用过docker,能说说容器和镜像的区别吗?

相关文章:

vc6中进行多行注释和反注释的方法
1、利用工具中自带的按钮实现: Tools-->Customize-->Add-ins and Macro Files-->将SAMPLE项选中-->Commands-->Category中选择Macros-->在Commands中将CommentOut拖到工具栏,再选中一个Images,点击OK即可。 这种方法是使…

一看就懂!【英雄联盟锐雯】与 Python 详解设计模式之门面模式
【网络配图】设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。设计模式使代码编写真正工程化;设计模…

无法挂载 NTFS格式的分区:mount: unknown filesystem type ‘ntfs’
问题: # mount –t ntfs /dev/sdb1 /mnt/usb mount: unknown filesystem type ‘ntfs’ 这是由于CentOS release 5.3(Final)上无法识别NTFS格式的分区。解决办法: 通过使用 ntfs-3g 来解决。 打开ntfs-3g的下载点http://w…

vs2008 ActiveX控件测试容器的生成以及调试ActiveX控件
1、ActiveX控件测试容器的生成:用TSTCON生成测试容器 http://msdn.microsoft.com/zh-cn/library/f9adb5t5(vvs.90).aspx 在搜索里搜索tstcon,双击TstCon文件夹,将此文件夹里的东西全部复制到另外一个新的空文件里,然后打开解决方案 tstcon.…

百度自动驾驶新突破:获首批T4牌照,升级Apollo 5.0,将进行复杂城市场景路测...
作者 | KYLE WIGGERS等编译 | 夕颜出品 | AI科技大本营(ID:rgznai100)最近,百度自动驾驶项目终于有了进展。先是上周悄然发布了 Apollo 的最新版本 Apollo 5.0,引入一些新功能;昨天下午,北京市自动驾驶测试…
折叠屏就要来了,适配逼死 Android 开发?
1. 异型屏还没适配好,折叠屏就要来了,Android 的碎片化,让开发者又多掉了不少头发。 北京时间 11 月 8 日,三星在旧金山向开发者发布了一款可折叠屏幕手机。并表示,新技术需要开发者调整其 App,以确保在手机…

nginx虚拟目录配置
2019独角兽企业重金招聘Python工程师标准>>> 今天搞了N久的虚拟目录配置,在几乎要放弃的时侯偶然看到一篇文章,将我的问题搞定 原贴地址:http://blog.sina.com.cn/s/blog_6c2e6f1f0100l92h.html 我的需求是这样的,系…

阿里达摩院刷新纪录,开放域问答成绩比肩人类水平,超微软、Facebook
出品 | AI科技大本营(ID:rgznai100)近日,由阿里巴巴达摩院语言技术实验室研发的 Multi-Doc Enriched BERT 模型在微软的 MS MARCO 数 据评测任务,Passage Retrieval Task(文档检索排序)和 Q&A Task&…

解决windows7下vs2008不能正常编译ActiveX控件的问题
在windows7系统中,vs2008环境下用MFC ActiveX Control生成的控件不能正常编译,但是在xp系统中却能正常编译,解决方法: 1、在windows7中编译,提示错误为:fatal error LNK1000: Internal error during IncrB…

什么是shell【TLCL】
常用命令 datecaldf——report file system disk space usagefree——display amount of free and used memory in the systemexit——退出终端Ctrl-Alt-F1 到 Ctrl-Alt-F6 访问后台终端会话,AltF7返回图形桌面转载于:https://www.cnblogs.com/songdechiu/p/9943599…

Linux终端的几个常用快捷方式,记下!
一、初识linux的终端种类:本地、远程 查看本终端命令: #tty 命令,看到当前所处的终端 #(w)who 命令,看到系统中所有登录的用户 其中,tty 终端为表示在本地命令行模式下打开…

从0到1 | 文本挖掘的传统与深度学习算法
一、什么是文本挖掘?讨论文本挖掘之前,我们要先说一下数据挖掘的概念,因为文本挖掘是数据挖掘的一个分支。数据挖掘(Data Mining)指从大量的数据中通过算法搜索隐藏在其中信息的过程。而文本挖掘就是从文本数据中获取有…

window7系统中64位安装matalbR2009b后出现乱码的解决方案
转自:http://blog.csdn.net/shaoguangleo/archive/2010/11/29/6042194.aspx MATLAB 中默认的字体是 Monospaced (即等宽字体),这是一种非常适合用于显示程序源代码的字体。但Monospaced 是种逻辑字体,它在不同语言和操…

【电路】pmic芯片设计细节
VIO_IN供电https://e2e.ti.com/support/power-management/f/196/t/712146?tisearche2e-sitesearch&keymatchtps65916 Note that every GPIO will be configured as an input for the first 6ms after VCC is supplied, which is the time it takes for the device to init…

sql server 的一些记录
下面记录一些用到sql server查询时候用到的函数。 charindex,在一个表达式中搜索另一个表达式并返回其起始位置(如果找到)。http://msdn.microsoft.com/zh-cn/library/ms186323.aspx CHARINDEX ( expressionToFind ,expressionToSearch [ , start_locati…

[WPF] UserControl vs CustomControl
原文:[WPF] UserControl vs CustomControl介绍 WPF中有两种控件:UserControl和CustomControl,但是这两者有什么区别呢?这篇博客中将介绍两者之间的区别,这样可以在项目中合理的使用它们。 UserControl 将多个WPF控件(例如…

50行Python代码,获取公众号全部文章
作者 | 胖虎转载自Python3X(ID: python3xxx )爬取公众号的方式常见的有两种:通过搜狗搜索去获取,缺点是只能获取最新的十条推送文章。通过微信公众号的素材管理,获取公众号文章。缺点是需要申请自己的公众号。今天介绍…

解决Windows7下vs2008 Active control test container 不能运行的问题
按照:http://blog.csdn.net/fengbingchun/archive/2011/05/05/6398356.aspx 在windows7系统中,vs2008环境下用MFC ActiveX Control生成的控件不能正常编译,但是在xp系统中却能正常编译,解决方法: 1、在windows7中编译…

入门必备 | 一文读懂神经架构搜索
作者 | Md Ashiqur Rahman编译 | 刘静转载自图灵TOPIA(ID: turingtopia)近期谷歌大脑团队发布了一项新研究:只靠神经网络架构搜索出的网络,不训练,不调参,就能直接执行任务。这样的网络叫做WANN,…

脚本化 tmux — LinuxTOY
脚本化 tmux — LinuxTOY脚本化 tmux2012-07-02 Toy Posted in TipsRSS昨天我在家试了下脚本化 tmux,其表现相当令人满意,只需稍加定制便可满足各种实际需要。这或许可以成为抛弃 GNU screen,改用 tmux 的又一个理由。该脚本先判断一个名为 c…

OpenCV像素点处理
转自:http://blog.csdn.net/hxgqh/archive/2011/02/23/6202001.aspx 获得像素点的值便可以更加灵活的进行图像处理,在OpenCV里可以通过cvGet2D()和cvSet2D()两个函数加上一个CvScalar结构体做到。OpenCV中,CvScalar结构为:typedef…

亲 , Zookeeper了解一下 : 概述
2019独角兽企业重金招聘Python工程师标准>>> 在学习的过程中,我们总需要一个来自灵魂的拷问: 为什么? 为什么会产生Zookeeper 这个问题有深度,那要从五百万年说起,在遥远的塞伯坦星球..... 扯远了... 在遥远在单机单服务的时代 , 想要扩展服务 , 只能增加硬件配置 …

wordpress jquery加载如何实现?
2019独角兽企业重金招聘Python工程师标准>>> 为什么写这篇文章? 因为之前在wordpress里面用jquery的时候没注意,这次因为要优化网站把没用的插件删了,结果发现有的jquery功能失效了,调试了许久才发现可能是jQuery没有定…

百度与华为重磅合作!李彦宏:技术是百度的信仰
导语:这是百度第三年举办AI开发者大会。一生二,二生三,三生万物。AI虽然不能产生万物,但是正在“唤醒万物”。 作者 | 阿司匹林 出品 | AI科技大本营(ID:rgznai100) 在今天上午举行的的百度AI开发者大…

已知空间一点到另外两点直线的距离
转自:http://www.cnblogs.com/clarkustb/archive/2008/11/04/1326500.html 已知空间一点到另外两点直线的距离设空间中的三点为M1,M2,M3,分别用矢量a,b表示方向向量M1M2和M1M3,则: 1. M3到M1,M2连线的距离为|axb|/|a|,这里|.|表示向量的…

vue---进行post和get请求
参考文档: https://www.jb51.net/article/125717.htm 使用axios <script src"https://unpkg.com/axios/dist/axios.min.js"></script> 基本使用方法: get请求: // Make a request for a user with a given ID axios.ge…

CxImage图像处理类库
转自:http://blog.csdn.net/byxdaz/archive/2009/04/10/4061324.aspx CxImage是一个可以用于MFC 的C图像处理类库类,它可以打开,保存,显示,转换各种常见格式的图像文件,比如BMP, JPEG, GIF, PNG, TIFF, MNG…

设计模式学习2 工厂模式
工厂模式其实就是简单模式的升级版本, 简单模式将界面与业务逻辑区分开,但是如果不停的增加计算器的运算方式,简单模式中的工厂Factory 中判断的业务逻辑会变非常复杂,这不符合封装的原则。 所以在此之上将Factory抽象了出来&…

输入字符串,包含数字,大小写字母,编程输出出现做多的数字的和
题目描述: 输入字符串,包含数字,大小写字母,编程输出出现做多的数字的和。 思路: 1.创建输入对象2.输入字符串3.利用正则将字母分离出,剩余的每一个字符串即为待统计的每一个数字,存入字符串数组…

优化思路千万种,基于下界函数的最优化效率如何?
作者丨stephenDC来源 | 大数据与人工智能(ID:ai-big-data)导读:生活中我们处处面临最优化的问题,比如,怎么样一个月减掉的体重最高?怎么样学习效率最高?怎么样可以最大化实现个人价值࿱…