1.2 无人驾驶与机器学习
1.2.1 无人驾驶的历史
无人驾驶是指通过软件算法代替人类操作过程使交通工具能够自行完成行驶过程的整套流程。本书介绍的无人驾驶软件算法主要针对汽车主体,无人驾驶智能汽车是能够完成通过车载传感系统感知道路环境,自动规划行车路线并控制车辆到达预定目标的汽车。无人驾驶智能汽车利用车载传感器来感知车辆周围的环境,并根据感知所获得的道路、车辆位置和障碍物信息控制车辆的转向和速度,从而使车辆能够安全、可靠地在道路上行驶。
无人驾驶技术集自动控制、体系结构、人工智能、视觉计算等众多技术于一体,是计算机科学、模式识别和智能控制技术高度发展的产物。通常在业界将车辆自动驾驶的水平分为Level 0~Level5共6个级别,分别说明如下。
- Level 0(无自动化):由人类驾驶者全权操作汽车,在行驶过程中可以得到警告和保护系统的辅助。
- Level 1(驾驶支援):通过驾驶环境对方向盘和加减速中的一项操作提供驾驶支援,其他的驾驶动作都由人类驾驶员进行操作。
- Level 2(部分自动化):通过驾驶环境对方向盘和加减速中的多项操作提供驾驶支援,其他的驾驶动作都由人类驾驶员进行操作。
- Level 3(有条件自动化):由无人驾驶系统完成所有的驾驶操作。根据系统请求,人类驾驶者提供适当的应答。
- Level 4(高度自动化):由无人驾驶系统完成所有的驾驶操作。根据系统请求,人类驾驶者不一定需要对所有的系统请求做出应答、限定道路和环境条件等。
- Level 5(完全自动化):由无人驾驶系统完成所有的驾驶操作。人类驾驶者在可能的情况下接管。在所有的道路和环境条件下驾驶。
自动驾驶的算法和工程实践探索几乎贯穿了20世纪的整个历史,在21世纪的发展更加突出商业化特点。世界上第一台自动驾驶车辆(非乘用汽车)大约是在1912年出现的,发明家约翰·哈蒙德(John Hammond)和本杰明·梅森纳(Benjamin Miessner)使用一个电子回路和一对光感性硒光电管作为自动驾驶核心单元自动引导旅行箱大小的一辆小车。当车上的光感性电管受到光线照射时,会发送前进方向给底层控制系统,控制系统进行转向操作从而使小车朝向光源方向行驶,通过测定比对两侧感光电管的数据,达到不偏离行驶路线的目的。设计师给这一粗糙的自动驾驶车辆起了一个凶悍的名字—“战争狗”,因为这一设备的研发初衷是应用于军事领域。战争狗的设计理念简单明了,在靠近敌人防线的地方投放出去,它能自动执行破坏性任务,无须人类指引。
在乘用汽车上的自动驾驶研究起步也很早。在汽车问世不久之后,发明家们就开始研究自动驾驶汽车了。1925年,发明家Francis Houdina展示了一辆无线电控制的汽车,他的车在没有人控制方向盘的情况下在曼哈顿的街道上行驶。根据《纽约时报》的报道,这种无线电控制的车辆可以发动引擎、转动齿轮,并按响它的喇叭。报道使用了形象的比喻“就好像一只幽灵的手在方向盘上”来说明自动驾驶给公共大众的最初感觉。
1969年,人工智能的创始人之一约翰麦卡锡在一篇名为“电脑控制汽车”的文章中描述了与现代自动驾驶汽车类似的想法。麦卡锡提出的想法是关于一名“自动司机”可以通过“电视摄像机输入数据,并使用与人类司机相同的视觉输入”来帮助车辆进行道路导航。他在文章中写道,用户应该可以通过使用键盘输入的目的地来驱使汽车立即自动前往目的地。同时,存在额外的命令可以让用户改变目的地,例如在休息室或餐厅停留时可以放慢速度或者在紧急情况下加速。虽然没有这样的车辆存在,但麦卡锡的文章为其他研究人员的任务设计提供了帮助。
20世纪90年代初,卡内基梅隆大学的研究人员Dean Pomerleau写了一篇描述神经网络如何让自动驾驶汽车实时从公路获取原始图像来实现和输出方向控制的博士论文。Pomerleau并不是唯一一个研究自动驾驶汽车的研究人员,但他使用神经网络的方法比其他尝试手动将图像划分为“道路”和“非道路”类别的尝试更有效。
进入21世纪,工程化的实践需求逐渐浮出水面,当然开始来自于学术界。2002年,美国国防高级研究计划局(Defense Advanced Research Projects Agency, DARPA)宣布了一项重大挑战,他们为顶级研究机构的研究人员设立的条件是:如果能够建造一辆在莫哈维沙漠行驶142英里的无人驾驶汽车,他们将提供100万美元的奖金。当2004年挑战开始时,15个竞争者中没有一个完成任务。“胜利”号在着火之前,几小时内只能跑不到8英里的路程。看来第一次比赛时,DARPA设置的标准似乎太高。2005年10月,他们举行另一场比赛时,23支参赛队伍中有5支完成了132英里的路程,剩下的只有一支队伍未能完成一年前的7.4英里的记录。斯坦福大学教授塞巴斯蒂安·特伦(Sebastian Thrun)所领导的Stanley获得了第一名,卡内基梅隆大学的Sandstorm排名第二。Stanley是一辆使用了现代标准摄像头、雷达和激光扫描仪的大众Touareg,在很大程度上依靠机器学习来理解其收集到的数据以及决定如何行驶。Sebastian Thrun在自动驾驶领域自此开始崭露头角,并且逐年水涨船高。从2009年开始,谷歌开始秘密开发无人驾驶汽车项目,该项目就是现在大名鼎鼎的Waymo。该项目最初就是由Sebastian Thrun领导的。
随着机器学习开始崭露头角,汽车公司开始基于机器学习实践推出了各种L2~L3级自动驾驶服务。丰田公司的日本普锐斯混合动力车从2003年开始提供自动停车辅助服务,而雷克萨斯很快就为其雷克萨斯LS轿车添加了类似的系统。福特也在2009年加入了自动泊车辅助系统。一年后,宝马推出了自己的平行泊车助手。
1.2.2 为什么要在无人驾驶中应用机器学习
斯坦福大学教授Sebastian Thrun能够成为业界的著名人物,不只是完成了无人驾驶汽车的挑战,更重要的是他率领团队重新定义了无人驾驶成功路径的构造方式,这种构造方式主要是指最大程度强调软件的自身识别和决策能力,从实际来说,他们很大程度上放弃了当时盛行的基于规则的人工智能软件,而使用机器学习的策略来完成核心软件决策部分。关于这种抉择,特伦本人曾对其产生的原因做了深入的分析。
“许多参赛者非常关注硬件,于是许多车队研发出了独家的机器人汽车来参赛。我们则认为,比赛重点不在于机器人的力量强弱或汽车底盘的设计优劣。从能力来考虑,如果是人类驾驶,那么任何车都能够顺利通过这段普通的沙漠赛道。于是,我们决定仅研究人工智能,把一台计算机安装在车内,为车子安装眼睛和耳朵,打造出一辆智能化汽车。在汽车智能化的研发中,我们发现简单的规则不足以指导软件完成驾驶,需要成百上千条代码指令才足以应付多种意外情况。某天的测试中,公路旁有一群鸟。当汽车靠近时,鸟群飞起。这时我们才发现在机器人的“眼睛”里无法识别鸟类和岩石!于是我们不得不提高汽车的智能化程度,把鸟和石头区分开来。后来,我们依靠所谓的机器学习或大数据来驱动汽车:与其写出所有的程序,不如用人类学习驾驶的方法来教机器人。我们来到沙漠,我开车,机器人“观看”并“模仿”我所有的动作。后来,我们直接让机器人来驾驶,当它犯错的时候,我们返回数据中解释错误原因,给机器人机会改正错误。”
要搞清楚为什么特伦的机器学习在当时被称为一项重大创新,就需要解释当时十分流行的符号型人工智能的工作原理和机器学习工作原理的不同。最大的不同是算法和数据的上下游关系,基于指令的符号型人工智能是自上而下的,数据驱动型人工智能是自下而上的。自上而下的符号型人工智能要求开发人员完全理解人工智能业务的细节,然后基于自身的理解首先搭建出完整的理论模型,最后通过一系列应对各种状况的指令集合与模型产生交流,产生最终的驾驶决策。不同的是,自下而上的机器学习人工智能依赖于数据集合的表现,因此需要采用大量的数据算法并使用相应的技术进行数据处理,最终使得汽车软件无须人类监管也能自主学习并“识别”固定的模式。
在2005年DARPA挑战赛中,某支参赛队伍花费数月时间,编写了整套逻辑指令来处理传感器输出的数据流。他们希望当车辆前方的路况数据增长时,系统控制软件能够指示车辆转向,绕开障碍物。经过数月的艰苦努力,他们创建了数据量巨大、详细的数据库。遗憾的是,这支车队赢取百万奖金的旅程停止在比赛途中。他们的车辆由于制动不及时,在隧道入口发生碰撞。对此,该车队表示他们在预先编写中缺乏应对隧道的特殊指令,团队在赛前准备时没有预料到这种状况。在缺乏清晰指令的情况下,系统只能根据数据胡乱猜测:隧道顶部很高,且赫然出现在车道中央,于是系统软件将其判断为一座巨大的高墙。在这样的误解下,系统做出自认为对的处理:踩下刹车,拒绝前进直等到工作人员到来,将它带回安全地段。
假如我们能够统揽前面一届比赛的结果,就能在很大程度上理解特伦团队选择的核心动机。自动驾驶不是两三条指令可以做到的事,需要成百上千条指令方可成事,并且如果指令固定化,从某种意义上来说场景本身就是固定的。指令数量多以及多个场景的细微差异需要的决策的可变化性带来的编程挑战很难通过传统软件开发的方式完整写出来。哪怕在一条空旷的赛道上,也可能发生无数人们始料未及的新状况。因此,使用机器学习完成无人驾驶工作具有先天优越特性。对于自动驾驶的典型场景接下来会概括地讨论一下,包括使用卷积神经网络进行驾驶感知和使用循环神经网络进行驾驶预测。
(1)使用卷积神经网络进行驾驶感知
车辆在行驶过程中不可避免地会和障碍物打交道,障碍物一般包括静态和动态两类。静态障碍物包括墙壁、树木、交通障碍等,动态障碍物包括行人、非机动车及其他机动车辆。我们的感知程序需要检测到所有的障碍物,并且按照一定规则对障碍物进行分类。通过不同的障碍物类型最终决定程序的控制策略。比如我们可能会选择绕过前面的车辆,而对于墙壁必须执行停车策略。因此,程序使用一个卷积神经网络来确定物体在摄像头图片中的位置,然后通过另一个神经网络来完成上一个神经网络提取的物体的分类工作。当然,我们也可以使用一个核心神经网络来完成全部工作,只需要定制两种不同的输出层架构就能完成这个工作。卷积网络有很多变体,比如基于其中的一个变体YOLO网络结构建立车辆检测模型,判断图片中是否有车辆及车辆在图片中的位置,判断被检测车辆与摄像头的相对方位及运动趋势,判断被检测车辆对自身车辆的相对关系。
(2)使用循环神经网络进行驾驶预测
循环神经网络通常用来处理时序数据,在时序数据中的数据是按照先后顺序组织在一起的,车辆的行驶过程数据就是一个完美的时序数据模型,比如要完成转弯动作,整个过程就包括准备、转弯和方向的回复,这些过程有着明确的先后顺序,过程中的相关障碍物车道等也能够拥有这种时序特征,因此我们可以使用循环神经网络来预测驾驶路径和方向等。举例来说,比如使用循环神经网络预测车辆的目标车道的算法。它为车道序列提供一个循环神经网络模型,为障碍物提供另一个循环神经网络模型,Apollo连接这两个循环神经网络的输出,并将它们的反馈输入到另一个神经网络,该网络会估算每个车道序列的概率,具有最高概率的序列就是预测目标车辆将遵循的序列。
1.2.3 无人驾驶商业化的优势
无人驾驶系统的应用将会全面改变整个乘用车和商用车领域的人车关系,在乘用车领域强化人的乘坐属性,最大限度地发挥车辆的媒体终端属性,比如在乘坐过程中根据位置的不同推荐饮食、购物场地。对于商用领域,我们能够对开放道路的L2和封闭区域的L4分别提取核心商用场景或者综合商用场景,提升运输等商业活动的效率,减少相应的人力成本。综合各种应用场景,无人驾驶的商业优势主要表现在增强高速公路安全、缓解交通拥堵、减少空气污染上。研究表明,无人车会使这3个领域有大幅改善。
1. 增强高速公路安全
高速公路事故死亡是全世界面临的重大问题。在美国,每年估计有35000人死于车祸,中国这一数字约为260000,日本每年高速公路事故死亡人数为4000左右。根据世界卫生组织统计,全世界每年有124万人死于高速公路事故。据估计,致命车祸每年造成2600亿美元的损失,而车祸致伤带来3650亿美元的损失。高速公路伤亡每年导致6250亿美元的损失。美国兰德公司研究显示,2011年车祸死亡中39%涉及酒驾。几乎可以肯定,在这方面,无人驾驶汽车将带来大幅改善,避免车祸伤亡。在中国,约60%的交通事故和骑车人、行人或电动自行车与小轿车和卡车相撞有关。在美国的机动车事故中,94%与人为失误有关,因此可以得到有效避免。美国高速公路安全保险研究所的一项研究表明,全部安装自动安全装置能使高速公路事故死亡数量减少31%,每年将挽救11000条生命。这类装置包括前部碰撞警告体系、碰撞制动、车道偏离警告和盲点探测。
2. 缓解交通拥堵
交通拥堵是几乎每个大都市都面临的问题。以美国为例,每位司机平均遇到40个小时的交通堵塞,年均成本为1210亿美元。在莫斯科、伊斯坦布尔、墨西哥城或里约热内卢,浪费的时间更长,每位司机每年将在交通拥堵中度过超过100小时。在中国,汽车数量超过100万的城市有35个,超过200万的有10个。在最繁忙的市区,约75%的道路会出现高峰拥堵。中国私家车总数已达1.26亿辆,仅北京就有560万辆汽车。Donald Shoup的研究发现,都市区30%的交通是由于司机为了寻找附近的停车场而在商务区绕圈造成的,这是交通拥挤、空气污染和环境恶化的重要原因。另外,根据估算都市交通拥堵中有23%~45%发生在道路交叉处。交通灯和停车标志不能发挥作用,因为它们是静止的,无法将交通流量考虑其中。绿灯或红灯是按照固定间隔提前设定好的,无论某个方向的车流量有多大。一旦无人驾驶汽车逐渐投入使用,并占到车流量比较大的比例,车载感应器将能够与智能交通系统联合工作,优化道路交叉口的车流量。红绿灯的间隔也将是动态的,根据道路车流量实时变动。这样可以提高车辆通行效率,缓解拥堵。
3. 减少空气污染
汽车是造成空气质量下降的主要原因之一。兰德公司研究表明,无人驾驶技术能提高燃料效率,通过更顺畅的加速、减速,比手动驾驶提高4%~10%。由于工业区的烟雾与汽车数量有关,增加无无人驾驶汽车的数量能减少空气污染。一项2016年的研究估计,等红灯或交通拥堵时汽车造成的污染比车辆行驶时高40%。无人驾驶汽车共享系统也能带来减排和节能的好处。德克萨斯大学奥斯汀分校的研究人员研究了二氧化硫、一氧化碳、氮氧化物、挥发性有机化合物、温室气体和细小颗粒物。结果发现,使用无人驾驶汽车共享系统不仅节省能源,还能减少各种污染物的排放。约车公司Uber发现,该公司在旧金山和洛杉矶的车辆出行中分别有50%和30%是多乘客拼车。在全球范围内,这一数字为20%。无论是传统车,还是自动驾驶车,拼车越多,对环境越好,也越能缓解交通拥堵。改变一车一人的模式将能大大改善空气质量。
1.2.4 无人驾驶商业化的进展
几十年来,现代汽车行业由于核心零部件关系复杂和零部件供应商的排他关系造成了比较大的行业门槛,将许多专注于产品模块功能和体量较小的竞争者挡在门外。随着汽车智能网联化的基础日益增强,通过整车远程升级(Firmware Over-The-Air, FOTA)不断加强汽车终端化特性,用户也在驾驶使用过程中逐渐增加媒体使用特征。正如我们现在选择智能手机,最重要的可能已经不是声音大不大、按键灵不灵,而是操作系统及其版本号,以及手机生产商对这种能力的保证情况。在这种变化的大环境下,软件公司在汽车业逐渐崭露头角,无人驾驶作为一项软件复杂度和算法先进性并存的汽车核心需求,以Waymo为首的自动驾驶公司近几年发展迅速。下面列举一些自动驾驶独角兽企业和汽车制造企业的产品定位和商业规划。
1. Waymo
网约车、物流、私家车和公共交通是Waymo确立的4个无人驾驶技术部署应用的目标领域,因为这样的商业路线,摩根士丹利将Waymo的估值上调到1750亿美元。Waymo无人驾驶车队的大本营是一座面积为7万平方英尺(约65031平方米,1平方英尺≈0.0929平方米)的车库,由技术人员、工程师、机械师、客服代表和产品经理组成的团队就是在这里进行车队维护和管理的。数百辆克莱斯勒(Pacifica)全部装备有先进的无人驾驶硬件和软件,无须人类驾驶员的支持即可安全上路行驶。
过去一年里,Waymo一直在为其“早期乘客项目”(Early Rider)的400名参与者提供出行服务,他们使用Waymo的网约车App即可免费预约乘车前往在菲尼克斯运行区域内的任何地点。不久之后,Waymo即将面向公众提供这项服务,当然也会开始收费。在全自动驾驶交通服务运营初期,Waymo仍然准备在车内安排一位工作人员随行。如果顺利的话,这将是全世界最先推出的全自动驾驶网约车服务。
尽管自动驾驶汽车仍然饱受质疑,但还是有很多人期待其能从根本上改变交通运输方式。车队管理是被很多人忽视的一项重要挑战,这项工作将直接影响Waymo无人驾驶技术的成败。无人驾驶汽车装备的传感器、计算机芯片和其他系统使其能在没有人类驾驶员的情况下安全抵达目的地,而为了解决这些技术设备的成本,车队中的所有车辆都将几乎不间断地在路上行驶。这意味着它们的行驶里程会达到数十万公里(远远高于人类驾驶汽车),以此来保障其在经济上的可行性。
2. 特斯拉
Autopilot(自动辅助驾驶)的进化史是“硬件先行,软件后更新”——每一台特斯拉都会配置当时最新的硬件,然后通过整车远程升级不断更新固件,获得更完善的驾驶辅助或自动驾驶功能。庞大的用户群可以源源不断地供给真实路况的驾驶数据,帮助Autopilot训练和迭代算法。
2014年10月,Autopilot首发时采用了1.0版硬件,传感器使用了一个前置摄像头、一个前向毫米波雷达以及车身一周的12个超声波雷达。官方在召开发布会时介绍,这套硬件及其配套的软件算法最终不能实现全自动驾驶,Autopilot只是提升舒适性和安全性的辅助功能,车辆的控制权仍然在驾驶员。
从Enhanced Autopilot(增强自动辅助驾驶)开始,特斯拉使用了2.0版硬件,这也是大家常常把增强自动辅助驾驶称为Autopilot 2.0的原因。马斯克在发布会上宣布,2.0版硬件(8个摄像头、1个毫米波雷达、12个超声波雷达以及NVIDIA Drive PX2计算平台)在固件更新后,可以开启全自动驾驶功能。虽然马斯克一直表示不会使用激光雷达,但特斯拉“毫米波雷达+摄像头”全自动驾驶传感器方案还是在行业内引发了热议。
马斯克最新表示,预计2020年会有Robotaxi(无人驾驶出租车)投入运营,特斯拉汽车车主可以将他们的汽车加入这项服务中。车主可以选择只将自己的车共享给自己的朋友、同事或社交媒体上的好友,同时他们还可以在特定时间限制Tesla Network的可用性。
3. 通用汽车
通用汽车公司在自动驾驶领域的步伐并不慢,大规模的车队测试自不用说,他们还在2018年1月发布了L4级别名为Cruise AV的全自动驾驶车,这辆车基于雪佛兰Bolt纯电动车打造,最大的特点是座舱内完全没有方向盘存在,按照通用汽车公司的说法,这是人类有史以来第一次大规模量产无人驾驶汽车,对于通用汽车公司而言,这将具有里程碑的意义。
另外,具备L2级别的驾驶辅助系统Super Cruise超级智能驾驶系统,目前北美上市的2018款凯迪拉克CT6上可以选配。在2018 CES AISA展上,凯迪拉克宣布将会在中国市场投放搭载Super Cruise超级巡航系统的CT6车型,并且在2020年会将该技术拓展至凯迪拉克品牌下的所有车型上。
由此可见,通用汽车公司选择两条腿走路,协同进击自动驾驶商业化的想法很实际,Super Cruise可以有效促进通用传统汽车的销售,还能够起到教育用户的作用,让更多的用户对自动驾驶技术产生客观公正的认知,为今后的自动驾驶汽车落地打好基础。
4. Navya
Navya(纳维亚)的自动驾驶着力点为自动驾驶巴士,目的是为城市和私人场所带来更多的流动性。在城市或私人场所,Navya设想的航天飞机拥有一个创新、有效、清洁和智能的移动解决方案。由于其温和的导航,自动驾驶穿梭车保证了自动运输的性能,以及在第一英里和最后一英里的舒适旅行。AUTONOM接驳巴士可以搭载多达15人,它结合了许多优势。自动驾驶穿梭车队使运营商有可能提高私人场所的生产率,并缓解城市中心的道路拥堵。乘客在充分利用旅行时间的同时,也可以享受一次愉快的旅行。AUTONOM接驳巴士既没有方向盘又没有踏板,它采用了有效的制导和探测系统,结合了各种先进技术,激光雷达传感器、摄像机、GPS RTK、IMU、测程等数据融合在一起,通过深度学习程序进行驾驶控制。接驳巴士可以高效地移动,并做出熟练的决策。
5. 图森未来
图森未来研发的L4级别自动驾驶技术以摄像头为主要传感器,并融合激光雷达、毫米波雷达等其他传感器,配合自主研发的核心算法,能够实现环境感知、定位导航、决策控制等自动驾驶核心功能。图森未来宣称感知技术上已实现对1000米范围内的可视环境进行像素级辨识。图森未来自主研发区域L4级别自动驾驶技术能够实现货运卡车在高速公路货运和港内集装箱码头运输以及相似场景下的全无人驾驶。