自动驾驶分级
此前,自动驾驶的自动化程度分级有两个标准。美国交通部下辖的美国国家公路交通安全管理局(NHTSA)在2013年率先发布了自动驾驶汽车的分级标准,其对自动化的描述共有4个级别。到2014年,世界汽车工程师协会(SAE)也推出了一套自动驾驶汽车分级标准,其对自动化的描述分为5个等级。2016年9月20日,美国交通部发布的针对自动驾驶汽车的首项联邦指导方针中放弃了NHTSA之前提出的分级标准,宣布将采用在世界范围应用更加广泛的SAE分级标准,这代表SAE的5级标准基本成为行业共识。自动驾驶根据自动程度目前被分为以下5个级别。
L1:驾驶辅助,对方向盘和加减速中的一项操作提供驾驶支持,例如自动巡航、紧急自动刹车等。其他的驾驶动作都由人类驾驶员进行操作。在这个阶段,汽车主要实现了一些预警类功能,当汽车遇到紧急情况时,汽车发出警告信号,例如车道偏离预警、碰撞预警、盲点监测等。目前这些功能已经被广泛应用到现在的汽车上。
L2:部分自动化,通过驾驶环境对方向盘和加减速中的多项操作提供驾驶支持,其他的驾驶动作都由人类驾驶员进行操作。在该阶段,汽车已经具备一些自主决策和执行的能力,例如自适应巡航、车道线保持、紧急刹车、自动泊车等。目前特斯拉的“AutoPilot”辅助驾驶系统就达到了L2级别。
L3:有条件自动化,由自动驾驶系统完成所有的驾驶操作。根据系统要求,人类驾驶员提供恰当的应答。主要实现的功能为自动加速、自动刹车、自动转向、编队行驶、汇入车流、主动避障等。在L2的基础上增加识别交通标志、红绿灯、自动转弯,可以判断简单的交通竞争状况(例如两辆车同时到达十字路口停车线)等功能。驾驶员无须一直监视行驶,但复杂情况仍需准备接管。
L4:高度自动化,由自动驾驶系统完成所有的驾驶操作。根据系统要求,人类驾驶员不一定需要对所有的系统请求做出应答,也不限定道路和环境条件等,除了特定的天气和路段,汽车在大多数场景下能够自动驾驶。
L5:完全自动化,在所有人类驾驶员可以应付的道路和环境条件下,均可以由自动驾驶系统自主完成所有的驾驶操作。车辆在全天候、全场景下都能够实现自动驾驶,无须人的介入。
读者可能发现上面的定义有很多模糊之处,各层级的功能似乎也有很多重叠,笔者在这里尝试给出一个更为简单清晰的定义。
L1:人全程负责驾驶,有某个单项的机器自主功能,例如自动紧急刹车。
L2:仍然是人全程负责驾驶,但在限定条件下可以由机器驾驶几十秒到几分钟(例如在线道清晰的高速公路上驾驶员手离开方向盘,眼睛不看路,脚不放在刹车上的时间不超过几分钟)。有多项机器自主功能同时使用,例如自动巡航和线道保持同时用,驾驶体验比L1轻松很多。
L3:驾驶过程可以明确分为两种不同的时间段:人负责驾驶的时间段和机器负责的时间段。当机器负责驾驶时,人可以手离开方向盘,眼睛不看路,脚离开刹车。当遇到情况时,机器会请求甚至强制人接管驾驶。目前市场上还没有任何一个量产的L3乘用车。
L4:机器驾驶时间达到95% 以上,但仍然不时有特殊情况需要人接管。
L5:机器驾驶时间100%。即车里不再需要方向盘、刹车、油门等。
自动驾驶上分为两大技术流派:演进派和激进派。演进派认为自动驾驶不可能一蹴而就,必须一步一步循序渐进。演进派囊括了所有的汽车制造商,包括新进入的“互联网造车”或“新势力造车”厂商。原因很简单,它们每年都要造和卖大量的车,只能是什么技术成熟就安装什么技术。截至2018年,只有少数在售的汽车有L2功能,例如特斯拉、Audi A8和奔驰公司E级车型等。目前全世界几乎所有的大汽车厂商和一级供应商都在紧张研究自动驾驶,但它们打算推出的未来新车主要集中在L2或L3级别。
激进派的代表是谷歌的自动驾驶公司Waymo,谷歌的实验车根本没有方向盘。这一派认为L2和L3很危险,什么时候该人管,什么时候该机器管不仅很难分清,而且两者之间的切换也会产生问题(例如人打盹儿睡着了叫不醒),一步到位全让机器开车反而安全。全自动流派因为目前并不造车卖车,所以它们只对未来感兴趣。另一个重要原因是它们要想颠覆行业,就必须做目前车厂做不了的。
演进派的优势是它们的车不断地给用户提供新的功能和价值,一直从技术上获益。演进派的风险是如果激进派的全自动驾驶成功了,将会颠覆整个行业。所以演进派,特别是一流大车厂都同时在做全自动驾驶的研究。激进派的优势是专注于全自动,它们成功会比演进派早,一旦成功就会让演进派无路可走。激进派的风险是如果实现全自动很困难,它们就会长期投入而没有收入,时间太长哪家公司都扛不住。
L4和L5全自动驾驶又有两条不同的技术路线:一条是基于高精度地图和精准定位,另一条是无须高精度地图。基于高精度地图需要两个条件:第一是所驾驶区域已经有测量好的高精度地图;第二是车上有能精准测距或定位的仪器,例如激光雷达和差分GPS。做到第一点需要有大量的高精度地图测量车把一个国家内的所有行驶道路测量出来。这种测量通常也是使用激光雷达加上差分GPS。但测量时车的行驶速度不能太快,大约为时速50千米,因为行驶速度会影响测量精度。有人估计如果只用一辆测量车把全美国的高精度地图都测量完毕需要6 000年的时间(或者600辆车用十年时间)。由于地图的精度高,数据量很大,所以汽车里只能存储一部分地图。当汽车驶出车内存储的地图范围时,需要有很宽的无线传输带宽不断将新区域的高精度地图传给汽车。依赖高精度地图还有一个巨大的挑战是路况和路障的实时更新。这种实时更新只能靠“众包”的方式,即靠正在路上行驶的汽车收集并实时上传到云端,且实时下载到路障附近的车里。这就出现了一个先有鸡还是先有蛋的问题:一开始没有几辆车有实时数据收集的能力,这样就没人敢用自动驾驶,没人敢用就没有数据收集。
第二种自动驾驶的技术路线不依赖于高精度地图。这里的逻辑是人的眼睛不能精确测量周围物体的距离,为什么非要每一点像素的距离?有一个大概即可。这种方案的最大优势是不依赖于不知道什么时候才能有的高精度地图,成本很低。但坚持高精度地图技术路线的人批评说,高精度地图方案可以保证99.9999%的安全性,而没有高精度地图也许只能保证99% 的安全性。但即使是1% 的错误也是致命的。
有了之前介绍的那些传感器汽车就相当于有了眼睛。但是人类视觉不光是眼睛,还包括脑神经对接收信号的识别和判断。自动驾驶软件的核心就是识别和判断。一辆车的传感器有很多,第一个挑战是要把这些传感器传进来的信号融合起来。融合的主要任务是要把不同传感器探测到的物体一一对应起来。例如毫米波雷达发现了一个物体,要在摄像头的视频中把这个物体找出来。当各个传感器探测到的物体很多,又要在极短的时间里把所有物体都识别并对应起来时,融合就变得不那么简单了。
自动驾驶软件的第二个挑战是要处理大量的数据。我们前面算过,一个64线激光雷达每秒钟产生130万个三维数据点。我们假设使用神经网络来识别物体,需要处理能力非常强大的芯片。目前在自动驾驶上使用的英伟达Xavier芯片(2016年9月发布)的处理能力是每秒20万亿次运算,功耗为20瓦。
自动驾驶软件的第三个挑战,也即迄今最大的挑战是如何识别和判断各种复杂情况。如果单纯使用机器学习的方法,需要训练的情形几乎无穷多,不仅无法收集到这么多数据,而且计算量惊人或计算成本是天文数字。目前的自动驾驶软件大部分都是混合式的,即简单的和常见的情形用基于规则的判断,例如线道保持、自动停车、遵守交通规则等(目前特斯拉L2功能主要是基于规则的判断)。非常见的情形可以用机器学习。
自动驾驶软件的第四个挑战是如何不断地学习。目前是将车里采集的数据上传到云里,在云端进行训练。我们前面的算法部分提到过,目前的机器学习一旦有了新数据,就要把新老数据放在一起重新训练神经网络,只用新数据来改进原有模型的“增量”训练方法还在研究阶段。这样新的模型就要经过大量测试以确保万无一失。
自动驾驶软件的第五个挑战是如何个性化。目前的驾驶算法在所有车上都是一样的,和很多人的驾驶习惯不同。但个性化的驾驶算法需要每一辆车的模型都不同,个性化驾驶不仅需要大量的路况数据,还需要每个人的驾驶习惯数据。但一个人能遇到的状况有限,为了让汽车足够聪明,需要许多人的路况和驾驶数据,如何能够学到其他人的驾驶经验同时又符合自己的驾驶习惯是一个两难问题。
自动驾驶软件的第六个挑战是如何学习和道路上的车辆博弈。人们日常驾驶并不总是严格遵守交通规则,许多情况交规里面也没有规定。在世界上的许多地方,如果严格遵守交通规则驾驶,那么汽车可能寸步难行,此时驾驶软件该如何办?一种可行的方法就是“随大流”,这就要求机器能学习各地的“驾驶文化”。这种博弈学习同样需要模型有“连续学习”和“增量学习”的能力。
一套自动驾驶软件大致由下列几个模块组成。
(1)感知和数据融合。
(2)物体检测、分类、跟踪。
(3)场景识别和判断。
(4)路径规划。
(5)控制(方向、速度、刹车等)。
本书评论