Waymo-自动驾驶长尾问题挑战(2019)
尽管Waymo已经在开放道路上积累超过10 Million Miles,Waymo的工程师们仍然发现有层出不穷的新自动驾驶场景待解决。
1、自动驾驶长尾场景举例
场景一:一个骑自行车的人手中拿着一个Stop Sign标识牌。我们不知道它何时会举起标识牌。无人车必须理解这种场景,即使他举起了Stop Sign标识牌,自动驾驶汽车也不应该停下来。

场景二: 迎面而来的车辆上装载的塑料管子撒了一地,自动驾驶汽车必须学会应对这种突发情况,并且避开它们对无人车行驶的影响。

场景三:由于道路施工等因素,路面布满锥桶。无人车必须正确识别这些场景,在布满路面锥桶的场景下实现合理驾驶。

场景四:路口绿灯,无人车拥有路权,虽然我们的无人车先到达路口,但必须为稍后到达的特种车辆让行。

场景五: 路口绿灯,无人车准备左转,遇到闯红灯高速通过的社会车辆,无人车需要识别这种场景,并及时停车避让违规车辆。

2、自动驾驶核心模块-Perception, Prediction和Planning
Perception、Prediction和Planning模块是自动驾驶的核心模块,每个模块都存在巨大的挑战。
2.1 Perception
Perception输入:传感器(激光雷达)输入信息以及场景的先验信息。
Perception输出:道路交通对象(行人、车辆等),对道路场景的语义分割和理解。
Perception本身是一个非常复杂、高难度的问题,它必须能够识别各种形态各异、不同种类的对象。比如下左一图,一群穿着恐龙服的行人,感知必须能够正确识别它们。

相同的物体在不同的时间、不同的季节它们的外观表现也会有很大的差异,这会对Perception带来巨大挑战。

各种复杂场景的分割理解难度极高。如下图左一:一个搬着箱子的人;下图左三:骑马的人。Perception必须能够正确的分割识别这些场景,而不会因为遮挡导致出现识别的错误。

2.2 Prediction
Perception对检测到的物体进行下一步行为的预测,以辅助自动驾驶车辆进行合理的行为决策。

Perception要考虑物体的历史行为,比如车辆不会在短时间内实现90度的转弯,因此我们可以假设车辆在短时间内仍然按照当前的朝向和速度前进;要对场景有更高语义层面的理解;要能够关注到不同对象的属性差异和视觉线索,比如车辆大概率是会在车道上行驶上,行人会走斑马线,车辆的朝向能够大概率反应它的意图,如果行人做出停车的手势,大概率是要过马路;要能够解决待预测物体与其它物体的行为交互。
如下图所示,路边有一辆静止的车辆,骑自行车的人在靠近静止车辆时,会侵入无人车车道。Perception模块需要正确理解这些场景,并生成合理的预测曲线。

如何能够准确的预测社会车辆的行为仍然是一个存在巨大挑战的开放性问题。
2.3 Planning
Planning是Decision Making Machine,它基于Perception和Prediction的输出,规划车辆的行为,并输出Control模块,控制车辆的加减速、刹车等行为。

Planning首要考虑的是安全(safe),其次要考虑驾乘的舒适性(comfortable),再次要能够与其它交通参与者正确交互,最后要保证乘客送达目的地。如何能够满足这些条件实现良好的Planning效果仍然是一个开放性的问题。

3. 大规模机器学习技术(Machine Learning At Scale)
Machine Learning是解决自动驾驶长尾问题的一种有效工具。利用Machine Learning技术可以实现从数据采集、标注、训练、车端部署的闭环循环流程,从而实现Case的不断积累,模型的不断完善。

3.1 Automated Machine Learning技术
Waymo使用了Automated Machine Learning技术生成和优化针对无人车的数据模型,极大提升了模型训练的效率。




3.2 机器学习技术的局限(Limits Of Machine Learning)
机器学习模型不能解决所有的问题,但我们需要的是一个安全的自动驾驶系统,所以必须有其它措施来补充ML的不足。
首先可以借助于冗余互补的传感器辅助解决这个问题。车辆同时配备了视觉、Lidar、Radar系统,各个系统彼此独立,相互补充,以最大限度保证无人车不会缺失任何信息。

其次,我们可以采用ML和Non-ML混合系统,利用专家系统来弥补ML的不足。

4、大规模的测试技术(Large Scale Testing)
首先Waymo有庞大的自动驾驶车队,可以支撑大规模的测试。

有些场景在实际道路上出现的概率很低,为了测试验证这些低频问题,需要自己构建场景,进行结构化测试。

仿真是一种重要的验证测试手段,可以轻量级安全的构造各种各样的测试场景。

自动驾驶仿真必须能够真实模拟车辆和行人的行为。这仅仅依靠简单的规则模型是不够的,我们需要更加复杂的模型,Waymo使用一种Mid-2-Mid的Drive Agent机器学习模型,它接收定位、感知等信息,输出更加拟人化的运动规划。

Waymo提出的ChauffeurNet将Map、交通规则、道路环境等信息转化为图像信息,从而可以最大限度的利用比较成熟的机器学习模型,最终输出Agent的Trajectory。

ChauffeurNet可以解决大部分简单场景下的Prediction和Planning问题。



当然ChauffeurNet也有其局限性,比如以下复杂场景目前还不能很好的处理。


5、机器学习难以覆盖的长尾问题挑战
对自动驾驶测试来讲,最大的挑战在于很难收集到所有Corner Case。如下图所示,是人类驾驶行为分布,要经过非常长时间的积累才能得到一些Corner的驾驶行为Case。

在自动驾驶网络的神经网络模型中,可能有上千万的参数,如果Corner Case的样本数量太少,就难以保证网络模型能够学会这些Corner场景。
在神经网络模型覆盖长尾Case前,如何来解决长尾Case呢?专家系统是一个选择。专家系统融入专业的知识,通过小批量的样本就可以获得效果比较好的参数。
比如我们计划得到实现一个轨迹优化机器学习模型,在基于运动控制理论和一系列的约束设计好专家模型之后,通过采集历史车辆轨迹,我们就可以调整参数最小化Cost的方法,使得专家系统的轨迹输出尽可能的逼近人类驾驶轨迹。

轨迹优化专家系统的另一种模型是Inverse Reinforcement Learning技术,通过历史驾驶轨迹训练模型参数,使得它的输出尽可能的逼近预期效果。

如下图所示,红色的主车,蓝色的是社会车辆。左图的社会车辆更加保守,右侧的社会车辆更加激进。用保守的轨迹训练出的模型表现就趋于保守,用激进的轨迹训练出的模型表现就趋于激进。

6、Smart Agent对于自动驾驶规模化不可或缺
不管是专家系统,还是神经网络,它们都在努力模拟人的驾驶行为,使Agent变得聪明起来,聪明的Agent可以辅助自动驾驶技术快速规模化。



个人博客网站地址: http://www.banbeichadexiaojiubei.com
Waymo-自动驾驶长尾问题挑战(2019)的更多相关文章
- Google Waymo自动驾驶安全技术报告(二)
Waymo的技术在公开道路上.封闭测试场.仿真器进行了广泛的测试,所以可以保证自动驾驶系统的每一部分在其ODD内都有强大.可靠.安全的处理能力. Waymo的自动驾驶系统由三个相互独立.严格测试的子系 ...
- 自动驾驶研究回顾:CVPR 2019摘要
我们相信开发自动驾驶技术是我们这个时代最大的工程挑战之一,行业和研究团体之间的合作将扮演重要角色.由于这个原因,我们一直在通过参加学术会议,以及最近推出的自动驾驶数据集和基于语义地图的3D对象检测的K ...
- Google Waymo 2017自动驾驶安全技术报告(一)
2017年10月Google Waymo向美国交通部提交了一份43页的安全报告,报告中详细说明了Waymo如何装备和训练自动驾驶车辆,从而避免驾驶中的一般和意外情况发生.这份报告对Waymo的自动驾驶 ...
- 向通用自动驾驶部门Cruise投资22.5亿美元,软银打得什么主意?
5月29日,加利福尼亚州的一辆特斯拉Model S撞上停在路边的警车.据透露,当时这辆特斯拉正处于自动辅助驾驶即Autopilot模式.而在今年,这已经不是第一次特斯拉自动驾驶模式出问题了.此外,Ub ...
- 本科阶段就挑战自动驾驶开发?华为云ModelArts帮你轻松实现!
欢迎添加华为云小助手微信(微信号:HWCloud002 或 HWCloud003),输入关键字"加群",加入华为云线上技术讨论群:输入关键字"最新活动",获取华 ...
- zzL4自动驾驶中感知系统遇到的挑战及解决方案
本次分享的大纲: Perception Introduction Sensor Setup & Sensor Fusion Perception Onboard System Percepti ...
- 谷歌Waymo估值700亿:自动驾驶迎来春天,但前路漫漫
在经过近一年的法庭之争后,Waymo与Uber的自动驾驶专利权诉讼案于近日宣布和解.最终的结果,是Uber向Waymo支付0.34%股权(目前价值2.44亿美元).但事实上,与Uber的官司解决后,一 ...
- Waymo在美国推出自动驾驶汽车共享服务
导读 经过数月的测试和数百万英里的无人驾驶汽车技术开发,Waymo 正式在美国推出了具有商业性质的自动驾驶汽车的共享服务. 该公司的 Waymo One 项目将为客户提供 24 小时自动驾驶汽车服务. ...
- zz自动驾驶中轨迹规划的探索和挑战
大家好,今天我们主要介绍一下轨迹规划的探索和挑战,我主要从四个方面介绍: 轨迹规划的概念 决策 横向规划 纵向规划 轨迹规划的概念: 轨迹规划的核心就是要解决车辆该怎么走的问题.比如我们知道了附近有行 ...
随机推荐
- 《企业IT架构转型之道:阿里巴巴中台战略思想与架构实战》-总结
一.什么是业务中台 概念来自于阿里,介于前台和后台(此后台指的是云计算.数据库.消息队列.缓存等基础服务) 采用共享式架构设计解决以往烟囱式架构设计的资源浪费.重复造轮.试错成本高的问题 阿里的中 ...
- AVR单片机教程——串口接收
本文隶属于AVR单片机教程系列. 上一讲中,我们实现了单片机开发板向电脑传输数据.在这一讲中,我们将通过电脑向单片机发送指令,让单片机根据指令控制LED.这一次,两端的TX与RX需要交叉连接,单片 ...
- C# 根据年月日计算周次
//day:要判断的日期,WeekStart:1 周一为一周的开始, 2 周日为一周的开始 public static int WeekOfMonth(DateTime day, int WeekSt ...
- kafka(一)-为什么选择kafka
作为开发人员,我们在选择一个框架或者工具时,我们都需要考虑些什么,我们不是头脑发热,一拍脑袋就它了,我们首先要认清这个框架或工具的作用是什么,能给我们带来什么样的好处,同时也要考虑带来什么样的负面结果 ...
- C++模板编程与宏编程经验谈
C++模板编程与宏编程经验谈 有人说C 与C++的不同主要是因为C++支持模板,不要说区别是面向对象化编程,因为C同样能很好的实现对象化编程,面向对象化其实只是思想,在很多语言中都能实现,区别在于实现 ...
- python self用法
在定义类的过程中,无论是显式的创建类的构造方法,还是向类中添加实例方法,都要将self参数作为方法的第一个参数. class Person: def __init__(self): print(&qu ...
- HashMap在JDK7和JDK8中的区别
在[深入浅出集合Map]中,已讲述了HashMap在jdk7中实现,在此就不再细说了 JDK7中的HashMap 基于链表+数组实现,底层维护一个Entry数组 Entry<K,V>[] ...
- java面试| 精选基础题(3)
每天进步一点点,距离大腿又近一步! 阅读本文大概需要6分钟 系列文章 java面试| 精选基础题(1) java面试|精选基础题(2) 1.float f=3.4;是否正确? 答:不正确,编译无法通过 ...
- [CCPC2019 ONLINE]H Fishing Master
题意 http://acm.hdu.edu.cn/showproblem.php?pid=6709 思考 先考虑所有鱼的烹饪时间小于k的情况.将T从大到小排序后,煮一条鱼相当于将其时间补齐至k. 由于 ...
- Java后端开发工程师是否该转大数据开发?
撰写我对java后端开发工程师选择方向的想法,写给在java后端选择转方向的人 背景 看到一些java开发工程师,对java后端薪酬太悲观了.认为换去大数据领域就会高工资.觉得java后端没有前途.我 ...