自动驾驶什么时候才会凉凉,估计还要多久?

我认为,L3 将会在 5 年内普及,而 L4 和 L5,很遗憾,无法告诉大家答案。因为它还取决于一个非常关键的因素,那就是基础建设和政府的政策法规,包括 5G、物联网、智慧城市的建设进度等等。

下面,我会对自动驾驶的各种模块,包括仿真系统、感知算法、定位算法、行为决策、控制系统、车联网等等进行更详细的描述。读完这些章节后,你对无人驾驶不仅只有一个宏观的概念掌控,对最前沿、高精尖的技术细节也会有详细了解。

「无人驾驶」一直是一个充满矛盾的高新技术。

在大众眼里,它看起来是那么的遥不可及,可同时又仿佛近在咫尺。英国《卫报》2015 年预测:到 2020 年,你将成为一个「永久后座司机」。马斯克也曾放言,特斯拉将在 2018 年达成这一目标,如果不成,2020 年也终会实现。

但现在已是 2022 年。

2020 年我们等来了许多出乎意料的灾难,却没有等来众心所向的无人驾驶。车水马龙的道路上依旧很难见到自动驾驶的踪影,寻常大众也根本没有机会体验坐在无人车里到底是什么感觉。

然而不可否认的是,当今的智能驾驶技术与十年前相比已是判若云泥。智能语音交互、自动保持车道和自动变道,早已飞入寻常百姓家,更高端的自动泊车也已经是高端车型的标配了。就连前段时间的百度世界 2020 大会上,百度 Apollo 也为我们展示了短距离的完全无人驾驶技术,并辅以 5G 云代驾。这一刻,自动驾驶仿佛又是近在咫尺。

那么,无人驾驶离我们到底还有多远?

要回答这个问题,就必须先了解无人驾驶的分级规则。

一、无人驾驶的等级(L0-L5)

无人驾驶的分级是由 SAE(美国汽车工程师学会)定义的从 0 到 5 的无人驾驶等级,即非自动化、辅助驾驶、半自动化,L3 的有条件自动化,L4 高度自动化,直到 L5 的完全自动化。具体定义如下:

L0:人工驾驶,驾驶员完全掌控车辆。

L1:辅助驾驶,驾驶员仍为主要掌控者,系统只会在特定的情况下介入。常见的防锁死刹车系统(ABS)与动态稳定系统(ESC)都属于这个级别的功能,一般在驾驶员驾驶不慎时介入。

L2:部分自动驾驶,驾驶系统可以完成某些任务,但驾驶员仍然需要实时监控环境。与 L1 类似,系统在特定情况下界入,但功能更加多元与高级。常见的功能有自动紧急煞停(AEB)主动式巡航控制(ACC)、车道偏移辅助(LKA)。

L3:有条件自动化驾驶,在某些特定情况下,驾驶系统可以完全掌控驾车,暂时解放驾驶员。驾驶员可以在适当的时刻查看手机,但不可已进入深度休息状态,以便在紧急时接手。Audi 推出的 Traffic Jam Pilot 就属于这个级别,允许用户在堵车时开启无人驾驶模式,然而一旦交通顺畅或需要下高速路口,用户必须重新接管。

L4:高度自动化, 自动驾驶不再需要用户的紧急应答,可以完全接替用户,用户可以进入完全放松状态。然而这个系统的启动是要满足一定条件,比如天气需晴朗,或者只在高速适用,但和 L3 相比,它的限制条件已大大减少。

L5:完全自动化,自动驾驶的终极形态,系统在任何情况下都可以安全地掌控汽车,不在再需要用户的介入。

那么我们现在的无人驾驶技术到底到了哪个等级呢?

答案有些令人失望。虽然有许多公司在全力研究 L4 及其以上的技术,但是市面上量产的智能驾驶车辆大多只达到了 L2 级别,部分拥有 L3 功能,但由于限制太多,仍然不成熟。

所以自动驾驶到底难在哪里,我们到底还要多久才能见到 L4 的商用汽车?

要想回答这个问题,就必须先了解无人驾驶系统都由哪些模块组成。

二、 藏在无人驾驶系统背后的人工智能与优化算法

正如人类需要用双眼、鼻子、耳朵感知周围的环境一样, 无人驾驶系统通过摄像头、雷达、激光雷达等感知车辆周围环境和状态,作为后续决策的依据。

摄像头等硬件设备只是为无人驾驶系统提供了一个信息丰富的输入,而要让它们从中提取关键信息,真正地感知世界,则需要用到人工智能与深度学习算法。在上图中,AI 算法实时处理着摄像头拍摄的一帧帧图片,并把图片中的人、汽车通过方框准确定位(AI 术语:目标检测),这样系统就知道前方有哪些东西以及它们在什么方位,作为之后决策的先决条件。

车道线检测(AI 术语)是系统将图片中的车道线检测出,方便汽车行驶在车道线中央。

语义分割(AI 术语)则是系统将图片每个像素精确分类,这样例如就可以精确的知道图片中哪些像素点是可以行驶的路段,哪些是建筑物和障碍物。此外,语义分割还可以用来佐证目标检测推测的类别是否正确,例如目标检测识别出方框里面是行人,但是语义分割判断方框中 90% 的像素点是汽车,那么这个时候,目标检测很有可能判断错误了。

当我们人类走在自己熟悉的街道时,脑海里往往会自然而然产生一张地图,上面有你目前的定位以及目的地的位置,这样我们人类才清楚下一步往哪走。

无独有偶,无人驾驶也只有在精准定位后,才可以规划路线。为了能让系统更好地定位,各大公司往往都要配备高精地图。

与常规导航地图不同,高精地图含有更多、更准确的道路信息,它不仅标有车道线的位置,连交通信号灯的位置、斑马线、指示牌、甚至路边电线杆的位置都包含在其中。无人汽车除了配备更高精度的 GPS 外,还会通过计算机视觉、激光雷达的几何和深度学习算法,配合标识物实现精确定位。比如系统通过物体检测识别到了左前方三十米有一根电线杆,然后它以此对照高精地图该电线杆的位置,从而准确知道自己的位置。

当系统借助精准定位认清自己的位置,通过感知识别周围的环境,经过高精地图获取接下来路段的详细信息,就能通过算法计算出未来几秒-十几秒的精确轨迹了,它通常是满足约束条件下的最优行驶轨迹。

这个行驶轨迹在生成过程中是需要预测周围物体移动轨迹,并以此做出决策的。

如上图所示,假设我们在路口想要右拐,对面马路不停有车辆开过,系统首先需要预测对面车辆的行驶轨迹,并以此做出并道还是减速并停下的决策。

如果系统决策 1 秒后并道,则必须几乎同时精确地规划出一条右拐弯轨迹(加以验证),这条轨迹(绿色实线)需要满足保持在车道内、规避其他车辆等约束。

前面讲的三个模块虽然听起来科技感十足,但最终,落在无人车上的指令是由控制系统产生的。

控制系统通过各种算法(例如最常见的 PID 算法)结合汽车当前的车速、车头方向、规划的行驶轨迹以及目标速度产生三个指令:踩油门、刹车、转向。

前置的所有努力都是为了在这三个指令上做出最好的选择,由此可见控制算法的重要性。

三、驱动无人驾驶前行的燃料——亿万级别的数据

现在我们了解了自动驾驶主要由哪些模块组成,那么是什么阻挡着无人汽车的进一步普及?

关键答案之一就是昂贵的数据。

大数据的人工智能的时代,数据就是人工智能的燃料,算法也需要大量的已标注数据进行训练,才会变得越来越智能。

任凭人工智能的数学模型、算法和硬件有多么先进,没有场景丰富、精度高标注的数据,无人驾驶系统就永远只是一个新手司机。

一般来说,数据分为真实场景数据和仿真模拟数据。前者顾名思义,就是在真实世界收集各种驾驶场景下的摄像头、激光雷达、雷达、GPS 定位等数据并进行人工标注,而后者则是利用各种游戏引擎模拟出现实世界的场景,进行预训练与测试。

用后者的数据来训练无人驾驶系统价格较为低廉,就像象棋学员和电脑对战,可以使之掌握象棋的基本规则并积累经验。然而要成为象棋大师,则必须去和人类棋手对战,比如用游戏引擎训练的无人驾驶系统,可以达到 90% 的准确率,然而最后 10% 的精确度,只能依靠真实的数据。

但是,真实数据的成本非常高。

我们来算一笔账:

一家德国无人驾驶公司,工程师开着测试车收集数据,企业支付工程师一小时工资至少 60 欧元(1 欧元约等于 8RMB)。

而「领头羊」Waymo 无人驾驶汽车已经行驶了 2000 万英里(2020.3,1 英里约 1.61 公里)。也就是说,单单收集数据本身 Waymo 就要至少花掉将近 2.4 亿 RMB!

而这只是开始,收集数据之后还需要进行各种人工标注,其中最昂贵之一就是语义分割(AI 术语)。

由上图可见,人类需要对每一个像素都进行分类,将它分为建筑、道路、行人等等,这样一张图大概会耗时一小时左右,而德国最低的时薪是 9.35 欧元。以次推算,像德国这样规模的国家,需要至少几十万张不同城市、不同天气、不同路况的图片数据,如果都交给德国人员标注,至少耗费数百万欧元。

除了语义分割,自动驾驶还需要很多其他的数据标注。由此可见,自动驾驶的开发是一件多么耗财耗时的事情,它需要大量资金持续输入,因此发展经常遇到瓶颈也是在意料之中。

最后,无人驾驶人工智能系统的训练流程大概是这样的:

先用几十万张标注好的图片与上百万张虚拟图片输入给系统训练

无人驾驶系统上路测试并收集反馈,重点记录效果较差的情况

收集至少上千张相似情况的图片并标注,用这几千张图片重返给 AI 系统训练,再上路测试,以此往复。

在这个循环中,极端情况的场景是最「值钱」的。因为系统只有吸取了错误的经验,才能避免再犯错误。

这也解释了一个很重要的问题:为何滴滴和 Uber 等打车平台都在研发无人驾驶?

因为他们可以在自己平台的车辆上安装传感器,非常低成本地获取行驶数据,以及收集司机可能存在的极端情况数据。

到这里,我们便从底层业务逻辑重新认识了无人驾驶。

四、小结:回到最初的问题,无人驾驶离我们还有多远?

我认为,L3 将会在 5 年内普及,而 L4 和 L5,很遗憾,无法告诉大家答案。因为它还取决于一个非常关键的因素,那就是基础建设和政府的政策法规,包括 5G、物联网、智慧城市的建设进度等等。

如果一个成年人想开车上路,就必须先去驾校经过一系列的严格训练,然后通过多项科目考试之后才能取得正式上路的资格。那么对于自动驾驶汽车来说,是不是也要经历类似的过程呢?

答案是肯定的。

前面我提到,自动驾驶系统是一环扣一环,从目标检测到行为规划再到控制系统,任何一环出现问题都有可能导致车毁人亡的事故,因此在进行大量的测试前,自动驾驶汽车是绝对不可以上路的。

那么自动驾驶系统的测试是如何进行的呢?

看到这里肯定有人会说,你把汽车放到无人的测试场地里去验证不就好了吗?

不错,这的确是一种办法,但因其较高的研发成本并不适合初期团队。首先,租用场地本身就是一笔昂贵的花费,拿美国著名的测试场地 Transportation Research Center 来说,一天的租赁费用高达数千美金。其次,测试需要投入相关的测试人员与安全人员,这一步也是需要相当客观的费用。在产品初期可能每天都会有许多重大问题的发现,若每次都到实际场地去测验解决,恐怕资金会快就会捉襟见肘。

所以为了能在初期高效、低廉地测试自动驾驶系统,工业界与学术界往往都采用自动驾驶的虚拟训练场——仿真软件系统, 一个可以低廉地模拟困难测试场景[1] , 解决路测单一变量控制问题的大杀器。

一、这个「仿真系统」究竟是何方神圣?

仿真软件系统,顾名思义,就是模仿真实世界所构造的虚拟软件系统。它是从软件层面对无人驾驶的软件架构研发、软件功能测试和路前测试的重要工具。各位看过《黑客帝国》的观众们一定都还记得,主角尼欧在开始真正冒险之前,先被放入了一个虚拟创建的道馆和墨菲斯进行了一场酣畅淋漓的训练,这个道馆所处的世界在一定程度上就可以被当作仿真系统。

如下图所示,一辆黑色的虚拟的无人汽车通过游戏引擎的渲染被构造了出来,进行跟车测试。它与真实世界的无人车一样,装备着各种各样的传感器,拥有全套的智能驾驶系统。工程师们可以像搭积木一般在其内有针对性地构建出罕见、困难的测试场景(例如图中所示,在狭窄的道路上,我们的无人车要高效、安全地与前方的红车保持好距离)。

与真实世界不一样的是,在仿真系统里,无人汽车所有接受的信息都来自游戏引擎渲染出来的虚拟世界,而且它的测试几乎是不需要任何财力投入的——毕竟只需要敲几行代码便可搞定一切。

正是因为仿真软件系统高度的模拟性与效率,它甚至已经成为了重要的法律合规工具。在 2017 年,美国宣布不同级别的自动驾驶车辆在进行路测前,需要满足在仿真系统里积累一定的安全行驶里程数[2] 。

现在我们对仿真系统有了一个大概的认知,那么在仿真里构建一个测试场景需要哪些模块/步骤呢?

二、再探仿真软件系统

大致来讲,一套完整的仿真测试可以划分为场景仿真、交通流仿真、传感器仿真与驾驶系统耦合几大子模块。

我们要想无人车可以在仿真中跑起来,就要先给它设计好道路。所以第一步就是生产一组符合高精地图的路网数据,常用的一个软件是 Mathoworks 旗下的 RoadRunner.

该软件会制定好道路的拓朴结构、标定道路线与 3D 物体,然后再放到常见的渲染引擎例如 UE4 里进行场景渲染。如下图所示,原本「朴素」的道路设计图在渲染引擎的作用下变得更接近真实世界的场景。

道路创建好之后, 我们需要赋予道路一个趋近真实的交通车流,毕竟我们的无人汽车需要学会与周围汽车安全交互。不同的仿真软件系统产生仿真交通流的方式与模式是不同的, 但整体来说交通流可以分为两类。

第一类是服从随机分布生成的大规模车流,比如我规定好车道 1 每小时会生成 100 辆类似人类驾驶行为的汽车,它们可能会随机变道、加速减速,以次来测试无人汽车系统的鲁棒性。

第二类是具有特定行为的动态障碍,这一类主要是为了测试无人汽车是否能在特定的困难场景做出合理的反应。如下图所示,我们的无人车正打算正常左转,这时前方一辆白色的汽车硬闯红灯,挡在了我们的行驶路线上,无人车必须检测到该车并对该异常情况做出安全反应。

有了道路和交通流后,无人车需要具备相应的传感器才能接受这些周围环境的信息进而传送给驾驶系统。现在比较流行的仿真软件都有着很完备的仿真传感器,它们根据现实生活中的传感器参数与模型构造出虚拟世界里的传感器(一般包括激光雷达、相机、声波雷达、GNSS、IMU 等等)。如下图所示,左边是仿真软件里激光雷达收集到的信息,右边是同一时刻仿真相机里收集到的场景照片。

当传感器收集到各式各样的环境信息后,就要传送给我们的驾驶系统进行处理,驾驶系统运算过后会控制虚拟环境里无人车执行相应行动,与仿真世界进行交互。仿真世界会因为无人车的举动而产生变化,传感器会根据这个变化更新收集到的数据再次传给系统,以此不停地循环。

仿真软件与驾驶系统之间的耦合很多时候是通过数据桥(ROS-Bridge)[3] 进行数据传输,一个比较经典的例子是开源仿真软件 CARLA CARLA: An open urban driving simulator. InCoRL, 2017. 2, 3 " data-url="https://github.com/carla-simulator/ros-bridge" data-numero="4" data-draft-node="inline" data-draft-type="reference"> 与开源自动驾驶系统 Autoware 的耦合,如下图所示, 左下角是仿真传感器收集到的相机数据,右侧是 Autoware 处理该数据后得到的周围环境分析图。

三、仿真系统哪家强?

上文我们提到过,仿真软件系统并不是一家独大,就如同我们电脑的操作系统有 windows, linux 和 MacOS 一般,市面上相对成熟的仿真系统也是百家争鸣,下面就让我来列举其中赫赫有名的几家(排名不分先后)。

SUMO[4] ,全称 Simulation of Urban Mobility, 是一款流行的交通仿真软件。

与一般的只能控制交通流的宏观交通仿真不同,它是基于纯粹微观的交通模拟,可以控制每一辆车的速度、出发位置、加速度、变道等等,有许多强化学习的实验都是基于该平台进行的。SUMO 能够创造较大规模且趋近逼真的交通环境,它对自动驾驶的模拟更多是集中在控制与规划层面以及分析无人车对交通流的影响。当然,它本身也有一些显著的限制,比如缺乏视觉感知模块,汽车动态模型与控制系统过于简单等等。

CARLA 是一款开源、拥有活跃社群的自动驾驶仿真软件,也是目前人气最高的仿真系统之一,最初由英特尔实验室与丰田研发中心的工程师合力研发。

它采用的是服务器端-客户端架构,服务器端(Server)通过大量代码运算构造虚拟的世界,并通过 UNREAL 游戏引擎(最终幻想 7 重制版就是由它创造的)渲染出接近真实的画面从而让这个世界而可视化。而客户端可以理解为用户所写的代码脚本(一般为 Python), 通过脚本可以控制这个虚拟世界的变化,构造出用户想要的测试。换句话说,客户端是用来下命令的,服务器端则是执行和结果呈现者。

CARLA 的优势十分明显,它具有真实的渲染效果,拥有良好的汽车动态模型、接近真实的传感器模型与具备物理特性的驾驶环境,允许开发者进行端到端的开发,从视觉感知到复杂的控制系统一应俱全。当然,它也不是完美的,其中最显著的一个缺点就是它模拟出的交通环境并不是十分真实,而且用户很难控制背景车流(即我们无人车之外的汽车)的行为模式。

为了克服这个缺点,CARLA 和上面提到的 SUMO 进行了深度合作,提出了协同仿真的概念,让二者进行优势互补。

AirSim[5] 是由微软开发的一款开源仿真软件。它的名字之所以带 Air,是因为它除了无人汽车,还可以对无人机进行仿真模拟。

类似于 CARLA,AirSim 使用 UNREAL 引擎进行环境渲染,拥有逼真的传感模拟、交通模拟和车辆动态模型,它提出了一个「一站式 AI」的理念,通过提供 Python, C++等多语言的接口,允许使用者很方便地将各种机器学习工具与该仿真软件结合,进行训练与测试。

和 CARLA 相比较,它的渲染更为真实,驾驶环境更为复杂,甚至还支持外接方向盘来控制仿真中无人车。但由于它的模拟是无法控制单位步长的,导致结果不可复现,这也是它现在的一大缺点。比如说,我想比较两个系统谁更稳定,但是每次跑同一张地图时周围交通环境都无法控制成一模一样,这样比出来的结果肯定是说服力不足的。

除了上述三款仿真软件,市面上还有许多其他优秀的仿真系统,每一款仿真软件都有自己的垂直领域和优势,下面这张图便展示了自动驾驶领域最常见的仿真软件以及它们所专注的领域。由于没有一款仿真软件可以制霸全部细分领域,联合仿真将会成为一个新的热门趋势。

四、小结

经过这一章的讲述,我们对自动驾驶的仿真已经有了一个大致的了解。在最后要说明的一点是,仿真测试虽然十分强大,但其结果永远只能作为评价自动驾驶是否合格的指标之一,要想让无人汽车真的上路行驶,必须还要经过成千上万次的实地测试。备案号:YXA1rxmlkZ5hjzwrAR1TreLa参考^一种高精地图的生成方法和装置,王磊,-9-10,CN201910438653.0,G01C21/32(2006.01)I; G01C21/30(2006.01)

^H.R.3388 - SELF DRIVE ACT, 2017, House - Energy and Commerce | Senate - Commerce, Science, and Transportation,

 https://www.congress.gov/bill/115th-conkgress/house-bill/3388^ROS/ROS bridge for Carla system,

 https://github.com/carla-simulator/ros-bridge^P. Lopez, M. Behrisch, L. Bieker-Walz, J. Erdmann and Y. Fl, Microscopic Traffic Simulation using SUMO. ITSC, 2048^S. Shah, D. Dey, C. Lovett, and A. Kapoor, Airsim: High-fidelity

visual and physical simulation for autonomous vehicles, in Field

and Service Robotics, 2017

添加评论