今天,我们来了解一下谷歌的自动驾驶汽车Waymo是怎么做的。

Waymo在超过25个城市的公共道路上行驶了超过2000万英里。他们还在模拟环境中行驶了数百亿英里(文章后面会介绍)。此外,Waymo正在美国经营出租车服务,真正地在没有司机的情况下运送乘客。

由于Waymo的快速增长,下午将深入介绍Waymo的技术,以便您了解这个巨头背后的实际情况。

与其他自动驾驶汽车一样,Waymo通过4个主要步骤来实施:感知(perception)、定位(localization)、规划(planning)和控制(control)。

这篇文章中,不讨论控制相关的内容。对于Waymo来说,预测(这是规划的一部分)是另一个核心支柱,文中将单独介绍。

我们首先从感知开始。

感知

大多数机器人系统的核心组件是感知任务。在Waymo的案例中,感知包括对障碍物的估计和自动驾驶汽车的定位。

传感器和任务

Waymo的感知系统使用了摄像头、激光雷达和雷达的组合。由于Waymo的大部分工作都是使用4个LiDAR完成的,可以将其视为与特斯拉完全相反的系统。

以下是Waymo自动驾驶复杂任务的视图——只是为了让您了解其计算机视觉系统需要感知的所有事物。

如您所见,对障碍物的信息水平要求非常高:

  • 汽车被分类为常规汽车、警车、救护车、消防车和校车。

  • 如果遇到特种车辆,系统可以观察警报器和灯光并根据此进行操作。

  • 每个检测到的障碍物都有一个状态:移动、停车等

如您所见,感知系统会考虑“状态”并将其提供给预测系统。

然而,这种感知系统很快就会遇到一些特别棘手的情况。下面是一个例子:

反射问题

上面的反射问题远不是唯一的棘手问题。再如:人们可以伪装,躺在卡车车顶上,带着STOP标志走路 等。我们可能会想象出更多的边缘情况,我们应该了解系统可能遇到的问题。

Waymo笔记:

但是,在过去几年中,上述许多问题都得到了解决。

  • 由于激光雷达,反射问题可以得到解决。反射不会出现在激光雷达中;只有点云显示了真正障碍物的形状(这里是一辆公共汽车)。了解更多的激光雷达信息。

  • 由于地图,“带有停车标志人”的问题已得到解决。第一步是检测STOP标志;第二步将这些信息与地图和先验知识相匹配。每当Waymo检测到一个标志时,将会查询“地图在这里是否包含STOP标志?如果没有,是否正在施工?如果没有,就没有理由停下来!”

架构

最近在讨论Tesla计算机视觉架构时,我探索了HydraNet 架构。它是一种旨在同时运行多个神经网络的架构。“Hydra”这个词意味着一个有多个头的系统。

Waymo没有谈论HydraNets,但有一些关于其视觉系统的事情。

第一件可能会让你感到惊讶的事是,Waymo的架构并不是固定的,而是估计的。

这是一个神经网络架构搜索(NAS)单元。

这是类似于ResNet的大型神经网络中的构建块。这种想法已经在AutoML中采用了。AutoML的思想是神经网络架构必须由算法估计。

这些架构是使用NAS单元构建的,最佳组合获胜。

测试10,000个架构,预选100个模型,然后选出1个最终获胜者。获胜的标准是准确性和推理成本。

数据集和模型

Google正在使用一种称为主动学习的过程。

主动学习的思想如下:

  • 对于每条未标记的数据,将其发送给模型进行预测。

  • 如果模型对其预测非常确定,我们得到一个自动标签。

  • 如果不确定,则将数据发送给人工标注员。这样,人工标注员只标注难例数据,其余的都是自动标注。

有关主动学习的更多信息。

Waymo使用主动学习来训练模型,利用TPU(Tensor Processing Units)和谷歌的深度学习框架TensorFlow。

与特斯拉类似,这是一个闭环。

图中的描述已经比较清晰;从底部的“Releases”开始,然后向左移动。

  • 当模型发布完成之后,数据收集就开始了。

  • 一些数据被选中并由神经网络和人工标注员进行标注。

  • 然后标注过的数据集被发送到AutoML架构搜索,评估最佳模型。

  • 最佳模型经过验证、测试并部署。

然后重新开始新的迭代……

这些用于感知的机器学习模型的目标是准确估计3D世界。

定位

定位意思是得到车辆在1-3厘米精度内的位置。一些公司使用了GPS,有些又添加了摄像头和激光雷达信息,但是……

Waymo使用了地图、激光雷达和GPS来定位车辆。

Google还利用了从Google地图获得的经验。

多年来,谷歌地图团队一直致力于使用激光雷达、摄像头和GPS进行高精地图绘制。这些是用于自动驾驶汽车的精确传感器。

Waymo笔记:

虽然Waze和Google Maps都没有参与Waymo及其定位模块,但在地图上积累的经验非常有益。

谷歌几乎已经绘制了整个世界的地图。如果从相对位置检测到您看到了2号街道,就可以准确地知道您在哪里。这就是他们过去二十年一直在努力的事情。

Waymo的定位模块由地图、摄像头、GPS和算法组成,可在全世界范围内准确定位车辆。Waymo还在其模块中使用了大量冗余,以使其更加健壮和可靠。

预测

行为预测

Waymo自动驾驶汽车最重要的特点是行为预测。谷歌无法像特斯拉那样利用车队的力量。特斯拉利用其客户数十万辆汽车收集数据。Waymo无法做到这一点;然而,他们拥有自己的车队,近年来可能会增长很多。

在自动驾驶汽车中,最终想要的是了解人类行为并预测它们。这就是所谓的行为预测。

这些行为预测是使用循环神经网络进行的:它们使用过去的信息来预测未来的行为。因此,可以确切地知道要做什么,并且可以衡量预测的置信度。

行为预测类似于以下内容:

  • 如果车辆观察到有行人注视着它,则发生事故的风险很低。

  • 如果观察到行人不注意就跑,风险会更高。

Waymo的系统知道这一点。怎么做到的呢?在其模型中输入专家偏见。其预测系统是一个混合体:结合了机器学习和人类知识。人类知识还包括交通法规和不可能的事情(如:人类行走或者跑步的速度不可能达到50公里/小时)。

仿真

Waymo驾驶了很多,但也模拟了很多。Waymo构建了一个模拟器,该模拟器将真实世界数据作为输入并输出新场景。

以现实生活中发生的情况为例。现在,使用模拟器修改它。想象一下有一辆车超过了人类司机的情景,再想象一下没有超过人类司机。

这类似于电影《Next》,其中尼古拉斯·凯奇 (Nicolas Cage) 有能力想象每一种可能的场景并选择他能幸存的场景。

next

Waymo可以实时前后回放,还可以模拟行为。可以构建完整的小说,并查看算法是如何表现的。模拟器可以发挥真正的力量。事实上,Waymo平均每天 24*7小时运行25,000辆虚拟汽车,并且在这些模拟中每天行驶10,000,000英里。

看看下面的图片。在右侧,可以看到一分为二的黄线。

这不是Dominic Toretto和Brian O'Connor的告别。这两条线是对车辆可能做的事情的预测。对这辆车的信息掌握的越多,预测就越准确和自信。直到剩下一个……

为了模拟更多场景,Waymo正在使用DeepMind和深度强化学习来创建代理和驾驶策略。

在强化学习中,策略是一种行为。Waymo可以模拟一个愤怒的司机试图在某人面前危险地切入,或者一个粗心的踏板车司机。每次,他们都会查看算法的行为和正确性。

当对驾驶员进行了准确且训练有素的预测,就可以生成要采取的轨迹。这也称为决策和轨迹生成。Waymo的驾驶模型称为ChauffeurNet。

轨迹是一系列(x,y,z)点组成的。

规划模块的目标是生成在安全性、速度和可行性方面误差最低的轨迹。

下面来看看Waymo的完整规划模块:

这可能看起来很复杂,但别担心,这就是我写这篇文章的原因!

让我们从顶部开始,将“特征网络”视为感知、定位和预测的输出。

  • 在左侧,可以看到“Agent RNN”。这实际上是一个为自主车辆生成轨迹的网络。这些轨迹将考虑航向(可行性)、速度(交通规则)、航路点(长度)和代理(可行性、几何形状等)。Agent RNN的目标是模拟一个可行的、现实的轨迹。

  • 然后在右侧,可以看到Road Mask Net。这是一个网络,如果它生成的轨迹不在路上,就会受到很高的惩罚。Waymo通过这种方式确保我们不在人行道上开车。

  • 最后,在最右侧,是Perception RNN。这是一个惩罚与其他车辆的碰撞和互动的网络。例如,当我们距离车辆1米的损失会高于距离1.5米时的损失。

总之,网络生成了一条可行的轨迹,保持在路上,避免碰撞。

最后,轨迹还考虑了排斥器和吸引器。我们想留在车道的中心,并且想避开路障并跟随中心。

生成适当轨迹的过程还使用了一种称为逆强化学习的技术。

在逆强化学习中,我们尝试着眼于真实的人类轨迹(真实值),并确定是什么使这条轨迹成为一个好的轨迹。这改进了生成的轨迹并使其更逼真。

总结

  • 感知是检测障碍物、交通灯和道路的。Waymo使用主动学习收集数据,使用AutoML生成架构并选择更高效的架构(准确性和推理时间)。

  • 定位主要是找到您所在位置的感知任务。Waymo利用谷歌地图的知识来做到这一点。

  • 预测是在模拟器中使用循环神经网络和强化学习来训练他们的代理来很好地估计轨迹。

  • 规划是根据可行性生成轨迹,保持在路上,避免碰撞。这些车辆还向人工标注员学习,以生成更逼真的轨迹。

Waymo的系统是在自动驾驶汽车上11年研究和实验的成果。在自动驾驶技术世界中,他们制造汽车的方式有一些阻碍,因为人们表达了对特斯拉系统的偏好,并意识到路上的经验非常宝贵。

不管你的意见是什么,都不可否认谷歌和Waymo在他们的自动驾驶汽车方面投入了疯狂的工作和技术。

Waymo还有很长的路要走。。。

Waymo的主要问题之一是其使用地图的方式:Waymo不能没有地图就开车。可以更精确地绘制整个世界,但对规模化来说这是一个巨大的挑战。

Waymo的主要视觉系统由激光雷达组成,实际上这也是一个很大的问题,激光雷达在雪、雨或雾中完全失明。

因此,Waymo经常在亚利桑那州的凤凰城或加利福尼亚州的旧金山等地方行驶,那里的条件永远干燥且阳光充足。

Waymo笔记:

最近,Waymo开始在非常潮湿的密歇根州、暴风雨的迈阿密和多雨的华盛顿州行驶。

如果你看看特斯拉,其已经在纽约市中心和巴黎开过自动驾驶汽车。由于特斯拉的司机们,其已经了解了这些地方。规模化可能要容易得多,毕竟依赖激光雷达可能是一个问题。

Waymo是特斯拉在L5级自动驾驶竞赛中的直接竞争对手!

阅读原文,关注作者知乎

欢迎加入智能交通群!加微信号automan332,标注”加群“。

Waymo自动驾驶解读相关推荐

  1. Waymo自动驾驶数据集介绍与使用教程

    本文将对Waymo自动驾驶数据集(Waymo Open Dataset)进行介绍. 论文链接为:https://arxiv.org/abs/1912.04838v7 项目链接为:https://git ...

  2. Waymo自动驾驶详解

    2009年谷歌(Waymo)自动驾驶事业正式开始,但实际上谷歌的自动驾驶可以追溯到2005年第二届DARPA无人驾驶挑战赛,已有了十几年的历史,目前也是自动驾驶领域的标杆企业,不过Waymo也经历了各 ...

  3. Waymo自动驾驶汽车扎堆冲进死胡同,一天多达50辆,附近居民蚌埠住了

    明敏 发自 凹非寺 量子位 报道 | 公众号 QbitAI 最近,Waymo自动驾驶汽车和旧金山一条平平无奇的小路"杠"上了. 据附近居民表示,总是有Waymo自动驾驶汽车开到这条 ...

  4. Waymo自动驾驶报告:平均21万公里一次事故,严重事故都是人类司机的锅

    郭一璞 发自 凹非寺 量子位 报道 | 公众号 QbitAI "你们人类开车水平不行." Waymo自动驾驶,内心大概是这样想的吧. 他们盘了盘从去年年初开始1年零9个月的路测事故 ...

  5. 中国AI芯片公司霸榜谷歌Waymo自动驾驶算法挑战赛!五个赛道,四项冠军

    金磊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 当今之世,最新证明自动驾驶实力的方法是什么? Waymo开放数据集挑战赛上一较高下,肯定是最具说服力的一种. 这不,作为全球自动驾驶公司王者 ...

  6. 史上最全的Waymo自动驾驶出租车体验来了!

    据国外媒体报道,谷歌母公司Alphabet旗下的自动驾驶汽车公司Waymo目前在加州凤凰城以及硅谷地区运营其自动驾驶出租车.近日有媒体对最近两个月期间10500次出行的乘客反馈进行了全面分析,结果显示 ...

  7. 五项挑战获四项第一,地平线霸榜Waymo自动驾驶算法挑战赛

    美国当地时间6月15日,Alphabet(Google母公司)旗下的自动驾驶公司Waymo在CVPR 2020自动驾驶Workshop上揭晓Waymo开放数据集挑战赛的结果,边缘AI芯片企业地平线斩获 ...

  8. Waymo自动驾驶车每天行驶25000英里,但CEO却告诉我们距离成功还远

    作为谷歌旗下的自动驾驶汽车公司,Waymo 被认为是最有可能率先让自动驾驶成为现实的那一家.最近其 CEO John Krafcik 宣称公司旗下的自动驾驶车辆「在开放道路上每天增加 25000 英里 ...

  9. NeRF衍生项目,谷歌用Waymo自动驾驶汽车打造3D数字城市

    前不久,谷歌公布了一系列与AR导航.沉浸式立体地图相关的更新,让我们进一步了解谷歌3D地图的发展路径,包括基于海量街景数据合成3D,以及后续会在街景相机上加入LiDAR模组,来实现3D定位等等. 相比 ...

最新文章

  1. 在神经网络中使用dropout
  2. HTML5 canvas 在线画笔绘图工具(三)
  3. c#_异常捕获(try catch finally、throw)
  4. glass fish_Glass Fish 4.0.1中的Jersey SSE功能
  5. linux本地mysql与服务器同步数据_linux下指定mysql数据库服务器主从同步的配置实例...
  6. 在Java中从字符串转换为双精度
  7. direct 3d技术内幕 配套光盘_广州道晨为您提供模具部品3D打印随形水路设计与制作等一站式整体化解决方案...
  8. 猪年的第一天没有压岁钱
  9. 数值方法求积分 详解+模板代码
  10. Redis中Pipeline的使用
  11. Unity3d 游戏汉化之IL注入文本替换--木石世纪
  12. hp170x打印服务器修改ip,HP_JetDirect_170X配置说明
  13. 如何使用openssl创建根CA和中间CA以及签署其他client证书请求
  14. Tableau筛选器:仪表板中运用地图做筛选器
  15. 屠龙勇士最后都变成了恶龙吗?是!不然你以为恶龙是哪来的?
  16. js,jquery获取复选框checkbox被选中的值
  17. JS_Gallary
  18. 程序运行时报错NullPointerException(空指针)情况以及解决方法
  19. 闪光网-彭亮《可以平凡》
  20. js获取美国太平洋标准时间PST

热门文章

  1. 上海、广州、北京德国签证申请中心即将重新启动
  2. 产品经理初体验:山高水深路远
  3. 数位板时不时失控_当事情失控时进行网络分析
  4. LeetCode(力扣)初级算法 字符串篇
  5. 《机器人SLAM导航核心技术与实战》前言
  6. 想练八段锦?扔掉可爱漫画版吧,现在出真人教练版了!
  7. 按学号和姓名进行查询c语言,数据库实验4 数据查询(答案)
  8. 震惊全国的汶川大地震
  9. 瀑布流无限加载的原理
  10. 【肌电信号】基于matlab GUI脉搏信号分析(去噪+特征提取)【含Matlab源码 862期】