二维码

人工智能算法在自动驾驶中的应用 - 数据结构 - 机器学习

1364 人阅读 | 时间:2021年01月15日 01:21


人工智能算法在自动驾驶中的应用

1624 人参与  2018年12月14日 10:57  分类 : 机器学习精品文章  评论

前几天一个新闻挺搞笑的,美国一辆“自动驾驶”状态的特斯拉被交警拦停,驾驶员在车里竟然睡着了……甚至还狡辩自己没有驾车因此不涉嫌酒驾。龙叔忽然想起来,这类事件已经不是第一次发生了,于是引申思考一下。

特斯拉的Autopilot在“自动驾驶”领域是不争的标杆地位,即便是标杆,特斯拉Autopilot的负面新闻也是满天飞的,一个很大的原因就是事故太多,以至于特斯拉官网已经低调撤下了涉嫌吹嘘夸大能力的描述。对于正处于消费者慢慢相信自动驾驶技术的发展期的时候,任何一个事故都可能是致命的打击。

“自动驾驶”自20世纪初被雄心勃勃的汽车工业巨头提出以来,就一直是人们梦寐以求的出行技术。从2005年DARPA挑战赛以来,基于车辆智能化的自动驾驶,进入快速发展期。从互联网巨头到传统汽车企业纷纷投入巨资,试图引领这场出行技术的革命。而这场革命的核心便是人工智能。本节将概述自动驾驶这一方兴未艾的应用领域,并介绍人工智能在其中发挥的作用。

■ 为什么要做无人驾驶?

安全:根据统计,仅在美国平均每天就有103人死于交通事故。超过94%的碰撞事故都是由于驾驶员的失误而造成的。从理论上说,一个完美的自动驾驶方案,每年可以挽救120万人的生命。当然,目前自动驾驶还远远没有达到完美。但是随着算法和传感器技术的进步,人们相信在不久的将来,自动驾驶将超过人类司机的驾驶安全率。

方便:自动驾驶可以将驾驶员从方向盘后面解放出来,在乘车时进行工作和娱乐。美国有近1.4亿上班族,除去节假日平均每天花近一小时在上下班的路上。如果把所有上班族一年中的这些时间加起来,将有三百多万年,足以完成300部维基百科全书,或者26座埃及金字塔。

高效共享:Uber、Lyft和滴滴等共享出行的巨头,都在积极研究自动驾驶,因为共享出行最大的成本来自于司机的时间。如果能够实现自动驾驶,那么人们可以不再买车和养车,完全依赖于共享出行,这将为每个美国家庭节约5600美元,约合他们平均年收入的10%。

减少拥堵:如果说前面这些优点还有赖于自动驾驶的大范围普及的话,那么减少拥堵这个优点,就可以说是立竿见影了。根据伊利诺伊大学的沃克教授的一项研究,在一个人工驾驶的车队中,只要加入一辆自动驾驶汽车,就可以将车队行驶车速的标准差减少50%,使得行驶更加稳定和省油。如果大家在路上看到车顶安装着雷达的自动驾驶汽车,请感谢它,因为它正在帮你减少你面前的拥堵。

为了更加直观地衡量以上这些好处,我们不妨把这些益处能给美国出行市场带来的价值做一个预估,总共节约的成本约合每年5.3万亿美元,为美国GDP的29%,如图所示。

人工智能算法在自动驾驶中的应用 - 数据结构 - 机器学习

图 个人出行的财政角度分析(美国市场)

■ 自动驾驶的定义

自动驾驶这个词最早来自于飞机、列车、航运领域的辅助驾驶系统。它的广义的定义为:自动驾驶是无须人工的持续干预下,用于自动控制交通工具行驶轨迹的系统。按照自动化程度和驾驶员的参与度,国际汽车工程师协会将自动驾驶分为5级,如下表所示。以现在已经发布的量产车为例,奥迪A8处于L3,特斯拉处于L2.5,沃尔沃、尼桑、宝马、奔驰的高端新款车都处于L2。如果一个车辆能同时做到自适应巡航和车道保持辅助,那这款车就跨进了L2的门槛。2018版的凯迪拉克CT6的半自动驾驶系统“Super Cruise”就是典型的L2级别。

人工智能算法在自动驾驶中的应用 - 数据结构 - 机器学习

表  国际汽车工程师协会将自动驾驶分为5级

 自动驾驶技术路线的演进

从自动驾驶这个概念提出之日起,就有两种截然不同的技术路线。一是基于路面上的基础设施,帮助车辆定位,导航和决策;另一个是在不改变现有路面的情况下,车辆通过自带的传感器和智能计算来独立完成驾驶。

第一条技术路径最早的里程碑是通用汽车公司在1939年纽约举行的世界博览会上,展示的“未来世界”(Futurama)。随着美国在20世纪五六十年代铺设高速公路网络的热潮,美国无线电公司与通用汽车合作研发了电子化高速公路的原型,在一条改造过的高速公路上,利用电磁线圈引导两辆通用雪弗莱汽车在车道内行驶,并保持与前后车的距离。然而电子化高速公路受制于高昂的基础设施费用,和美国各州之间的法规标准的不统一,至今仍在政府支持的车联网(V2X)研究项目之中。

相比之下,自动驾驶的第二条技术路径:由自动机器人研究分支而来的自动化车辆,在过去10年获得了长足的发展。给这一方向带来突破性进展的是2001年美国国会通过的一项财政预算案:它资助美国军方的研究机构DARPA以实现2015年前有三分之一的军用车辆使用自动化驾驶的目标。DARPA在2001~2007年间,赞助了三场自动驾驶挑战赛。在2005年的挑战赛上,5辆无人驾驶汽车使用人工智能系统,成功完成了约212千米的越野赛道。其中获得冠军的斯坦福大学的“史丹利”车队,摒弃基于人工规则的方法,采用数据驱动的机器学习技术,来训练车辆识别障碍物和做出反应。2007年DARPA赛中CMU车队的负责人克里斯·厄姆森(Chris Urmson),后来成为谷歌无人驾驶项目的技术负责人。到2014年,他领导开发的谷歌无人驾驶汽车的行驶里程达到了112万千米。厄姆森感慨到:“两年前,我们绝对应付不来城市街道的上千种复杂路况,而现在自动驾驶却可以处理得游刃有余。”

■ 自动驾驶与人工智能

自动驾驶的支撑技术可以分为以下3层。

上层控制:路线规划,交通分析,交通安排。

中层控制:物体识别,路障监测,遵守交规。

底层控制:巡航控制,防抱死,电子系统控制牵引力,燃油喷射系统,引擎调谐。

其中每一层都可以用到人工智能技术。

占据栅格是一个存储了汽车周围实体对象信息的数字存储库。占据栅格中的实体,一些是源于已经存储的高清地图的静止物体,另一些是汽车根据传感器的实时信号识别出的移动物体。通常使用彩色编码和图标,来可视化那些经常出现的物体所对应的占据栅格。

有了占据栅格就知道物体当前时刻的位置。显然这还不够,自动驾驶汽车还需要知道物体在未来t时间可能出现在哪些位置。

不确定性锥就是用来预测汽车附近物体的位置和移动速度的工具。一旦基于深度学习的物体识别模块标记了一个物体,占据栅格就会显示出它的存在,不确定性锥就会预测物体下一步的运动方向。

不确定性锥为无人驾驶汽车提供了人工智能版的场景理解能力。当人类司机看到行人站得离汽车太近,他就会在脑海中思考要转向避开;在无人驾驶汽车中,利用不确定性锥技术也会进行类似的“脑海思考”。像是消防栓这样静止的物体,会用一个瘦小的圆锥体表示,因为它基本不大可能会移动。相比之下,快速移动的物体会用一个宽大的圆锥体表示,因为它可能运动到的地方比较多,所以它将来的位置是不确定的。人类驾驶员并不会在脑海中将附近的每一个物体清晰地标记成椭圆锥体。然而,不确定性锥与人类潜意识中的处理过程是大致相同的。我们的大脑不断记录更新着周围出现的人和物体,结合以往的经验和眼前事物的状态,我们能猜测出这些周边事物的意图并预测出它们下一步会做什么。

中层控制软件按照如下方法创建不确定性锥:首先,在平面上画出一个物体,在物体周围画一个小圆圈,我们称它为“当前活动圈”;然后,再画一个大圆圈,标记出未来10秒后物体可能会到达的所有位置,被称为“未来活动圈”。最后,用两条线把小圆和大圆的边缘连接起来。这就是不确定性锥。

不确定性锥替代了人类驾驶员与行人之间的眼神交流作用。从无人驾驶汽车的视角来看,一个站在路边面向街道的行人会用稍微向前倾斜的锥体表示,表明她随时可能穿过街道。如果她的眼睛不是盯着前方,而是盯着手机,她的锥体图标则是另一种形状,或许更加窄小,因为她并没有准备好继续前进。如果她扫视了一眼无人驾驶汽车,她的锥体图标将进一步缩小,因为汽车的软件会识别到她看见了这辆车,也就不太可能挡在汽车的前进路线上。越不可预知的行人,锥体的形状就越大。摇摆不定的自行车骑行者比静止的行人有更大的不确定性,相应的锥体也就更大。四处乱撞的小狗或追着球跑的孩子,则会用更大的锥体表示。

有时,即使一个静态的目标也可能会用一个大号锥体表示其不确定性,比如具有遮蔽性的建筑,虽然它们本身不大可能移动,但是可能会遮蔽一些移动的物体。对于死胡同、转弯处,或随时可能会有乘客下车的一辆停在路边敞开车门的汽车,无人驾驶汽车的中层软件系统都会标记一个大号的不确定性锥。静止的校车也可能会产生不确定的大圆锥,虽然校车本身或许不动,但是随时都可能有孩子从车后跑出来。

当汽车附近的物体都被标记并表示成了大小不一的不确定性锥,一个称为”轨迹规划器”的模块,就能据此计算出最佳行进路线(见下图),并保证遵守交通规则,减少行程时间和碰撞风险。

人工智能算法在自动驾驶中的应用 - 数据结构 - 机器学习

图 根据周围物体的不确定性锥,轨迹规划器能计算出最佳行进路线

■ 自动驾驶的商业化

人工智能的很多应用场景有较宽松的容错性,例如扫地机器人撞到障碍物,可以退后再找路径;Siri的语音识别错了,用户多说几遍就行了。然而自动驾驶应用,则要求更加严苛的安全标准。因为汽车中的人工智能算法出错,带来的损失是无法挽回的。例如,在时速100公里每小时的车上,把路边一个穿越马路的行人误判为静止的柱子,将会直接导致伤亡,后果不堪设想。

基于这个原因,现有的自动驾驶商业部署,主要在封闭的园区和有严格管控的固定线路。例如,伦敦的希思罗国际机场用自动驾驶摆渡车在停车场和T5航站楼之间接送乘客,如下图所示。这一运输服务叫希思罗Pod,从2011年起投入运营。任何乘客都可以从希思罗T5航站楼免费搭乘。

人工智能算法在自动驾驶中的应用 - 数据结构 - 机器学习

图  伦敦的希思罗国际机场的自动驾驶摆渡车

类似的适合(半)封闭路段的车型还有Induct Navia和Arma,它们的出现也一步步引领自动驾驶走向商业化的道路。

此外,由于自动驾驶中的关键传感器部件激光雷达的成本居高不下,货车的单价和驾驶员成本更高,而且货车的使用场景在高速或封闭的港口等,所以它可能比家用轿车更早的实现自动驾驶的商用。

■ 自动驾驶算法工程师需要具备的技能

看完以上的介绍,读者或许已经跃跃欲试要投身这场即将到来的技术革命。如能在以下三个领域之一有比较扎实的基础,就可以比较容易地拿到自动驾驶相关领域的offer,成为自动驾驶算法工程师了。

计算机视觉:深度学习,道路标牌识别,车道线检测,车辆跟踪,物体分割,物体识别。

传感和控制:信号处理,Kalman滤波,自动定位,控制理论(PID控制),路径规划。

系统集成:机器人操作系统,嵌入式系统。

在开放道路上的私家车单独应用无人驾驶,难度会高很多,但在特定区域,特定路线上的应用,将更容易,效益更高。不少城市无人驾驶巴士已经上路测试。

现在已有不少专门的自动驾驶培训班或慕课,可以帮助大家更加深入地、系统地学习以上技术,也预祝读者们在相关领域有所建树,在通向offer的道路上一路绿灯。

本文部分摘自《百面机器学习》,作者是诸葛越和葫芦娃,这本书目前收录了超过100道机器学习算法工程师的面试题目和解答,其中大部分源于Hulu算法研究岗位的真实场景。个人认为这本书非常值得一看,强烈建议大家买一本纸质书籍放在床头每天查阅,不久的将来您一定能成为机器学习领域的大牛!


©著作权归作者所有:来自ZhiKuGroup博客作者没文化的原创作品,如需转载,请注明出处,否则将追究法律责任 来源:ZhiKuGroup博客,欢迎分享。

评论专区
  • 昵 称必填
  • 邮 箱选填
  • 网 址选填
◎已有 0 人评论
搜索
作者介绍
30天热门
×
×
本站会员尊享VIP特权,现在就加入我们吧!登录注册×
»
会员登录
新用户注册
×
会员注册
已有账号登录
×