原标题:不玩游戏的工程师做不好自动驾驶
人类未来很可能要把命“交给”自动驾驶,但很少有人知道,许多公司正在把实现这项“人命关天”技术的任务,交给一帮“玩游戏”的工程师。
这不是开玩笑。
“行业里甚至有人在用GTA 5的游戏引擎做自动驾驶相关的研发。”一名从事自动驾驶技术研发的人士对品玩表示。GTA 5是一款非常流行的开放世界冒险类电子游戏,内容涉及暴力、黑帮、枪战等,当然,也包括抢走路边的汽车然后在虚拟世界里横冲直撞。
第一时间你很难想象这样一个“粗暴”的游戏和“安全第一”的自动驾驶之间有何干系。
事实上,工程师们看上的,是GTA 5作为一个现成的“仿真平台”的作用。
所谓仿真平台测试,简单说就是在一个模拟了现实道路的虚拟世界里进行自动驾驶测试,从而更快更节省成本的完善自动驾驶的代码。
要实现广义的自动驾驶,难度不亚于实现强人工智能。虽然自动驾驶领域看起来还是一片火热,但今天各公司距离能达到L4级别商业落地并盈利还有不短的距离,这其中,安全原因是最重要的影响因素之一。
2018年3月,Uber的自动驾驶汽车因与行人发生碰撞事故,直接导致其道路测试许可被吊销,也进一步让各国各地的监管机构更严格的对待测试车辆上路的事情。但另一方面,大量的实车场景数据是自动驾驶不断“进化”的重要条件之一。2016年兰德智库曾指出,一套自动驾驶系统需要测试110亿英里才能达到量产应用的条件。这就意味着,即便是一支拥有100辆测试车的自动驾驶车队,以25英里(40公里)每小时的平均时速7×24小时进行测试,也需要花费大约500年的时间。于是一个悖论出现:监管者认为,车要足够安全才能上路,但自动驾驶从技术实现上来说,又必须要靠多上路才能收集更多真实数据进而变得更安全。
因此,从业者们纷纷把目光对准了仿真平台。
与实车道路测试类似,自动驾驶的仿真测试同样需要吸收大量场景数据来加速算法的迭代。从公布的测试数据来看,最早涉及自动驾驶技术研究的Waymo,自2009年正式成立以来,截止2020年1月,其道路实测2000万英里,其虚拟仿真测试100亿英里,这完全是两个数量级。
自动驾驶的仿真测试也使得企业的研发、运营成本降低。2000万英里距离110亿英里仍有不小的距离,如果要用实车测试,几乎没有哪家企业能够承担这个它的时间成本与资金成本。Waymo在做其Robotaxi(自动驾驶出租车)项目时以每年10亿美元的速度烧钱,仅激光雷达的安装成本就达到75000美元。有研究表示,大规模的智能仿真系统让实车的测试成本大大减少,其花费仅为路测成本的1%,还可以拓展千倍于实际路测的里程。
自从Uber事件的发生,各国对各公司进行自动驾驶道路测试的行为变得警惕,对公共道路上的实车测试管理愈发严格,如我国至今开放放高速公路的自动驾驶许可,通常在某封闭测试场所以及指定道路对申请企业发放测试牌照,由于道路场所容积有限,经常出现企业排队的现象。因此,种种客观限制减缓了实车测试方式的数据积累。
同时,固定场所及指定道路也使得实车测试中的场景较为有限,无法满足各类特殊路况的测试需求,换句话即长尾场景的需求。人们通常将长尾场景理解为一切突发的、低概率的、不可预知的场景,比如交通信号灯故障的路口、醉驾的车辆、极端天气等。在仿真平台上,为了穷尽自动驾驶系统可能会遇到的各种场景,保证系统的安全可靠,从业者们需要对长尾场景做更多模拟和测试。
通过上述描述,行业们对自动驾驶的仿真测试的需求可谓不少,那到底什么是自动驾驶的仿真测试呢?
美国密西根大学智能网联交通研究中心Henry Liu教授团队曾对品玩表示:“简单来讲,仿真测试就像是构建了一个基于真实世界的游戏,让一辆自动驾驶汽车在这个虚拟世界里不停地运行。”你甚至可以认为玩家在GTA5中开车的数据在某种程度上也可以用来进行测试、利用。
实际情况也确实如此,用游戏引擎Unity、Unreal、UE4来做自动驾驶虚拟仿真平台成为了不少公司的选择。基于UE4开发的自动驾驶仿真平台有开源AirSim、Carla以及腾讯的TAD Sim。腾讯研发的仿真平台TAD Sim与利用自身在游戏领域的技术积累,利用游戏中的场景还原、三维重建、物理引擎、MMO同步、Agent AI等技术,提升自动驾驶仿真平台测试的还原度和高效性。 百度的Apollo平台则选择与Unity进行合作,搭建了其全栈开源的自动驾驶软件平台。
自动驾驶厂商们选择用游戏引擎来做仿真平台,最主要原因是其可以生产一个全栈的闭环的仿真,尤其在感知模块的仿真,它可以重构一个三维环境,在三维环境中模拟相机,激光雷达等各种输入信号。
仿真相当于对真实世界的建构。在感知算法训练中,仿真系统自带场景元素真值,无需标注自动生成各种天气、路况,保证覆盖度。真值即所有物品的客观属性,客观值。平时人眼还是自动驾驶传感器看到的都是观测值,真值是一个物体绝对的客观属性不受任何观察者观测结果为转移的。所有元素都是由仿真系统自己生成的,所以具备场景内所有元素的客观值,不需要观察者的观测,通过仿真系统的真值直接进行感知系统所需要的自标注。
一般传统算法的感知训练都需要人工标注,例如小女孩骑自行车就会画个框来标注,每年第三方标注的人工成本就需要10亿美元,Waymo就使用大量虚拟测试来来完成算法开发和回归测试。
当工程师对算法进行了调整时,在仿真测试平台测试或许只需要几分钟,但如果是道路实车测试,可能预约自动驾驶车队调整就需要半天、一天的时间,而选择在仿真平台上测试,只要是在算力允许的情况下,可以同时进行1000辆、2000辆等高并发的测试。
总结来说,自动驾驶仿真测试的核心能力包括对于场景的几何还原,三维场景仿真+传感器仿真;对于场景逻辑的还原,决策规划仿真;对于场景的物理还原,控制+车辆动力学仿真;高并发,云端仿真等优势。
也因此,新老自动驾驶公司都在招聘具有Unity、Unreal等虚拟引擎背景的复合型人才。一位行业人士对品玩表示:“一个是仿真环境需要渲染得越来越逼真,另一个是这些人才可以根据虚拟引擎做一些优化来降低整个仿真测试的成本。”
某自动驾驶公司仿真工程师的招聘要求
各自动驾驶公司也在想办法提高仿真测试的效率,提高虚拟场景的逼真程度通常被认为是一种合理的方式,但事实没有那么容易。
Henry Liu教授表示:“由于这个环境是基于数学模型构建的,如果我们想要计算结果越接近真实世界,那这个模型的构建就越复杂,计算速度也会越慢。”建立一个高度逼真的虚拟世界的难度可能并不亚于实现自动驾驶。仿真测试也不是完美的,其结果也有一定的局限性,它并不能帮助自动驾驶公司解决所有问题。虽然Waymo2020年2000万英里的自动驾驶总里程以及超过150亿英里的自动驾驶仿真里程可以秒杀大多数自动驾驶行业的后来者,但2000万英里对实现自动驾驶杯水车薪,况且数据不是万能的,没有证据表明自动驾驶仿真能够完全模拟现实世界的复杂情况。
目前来说,所有基于数据驱动的方法总是会有失败的场景。首先,数据本身的不确定性。举个例子,比如对于很多遮挡的物体,即使是人的标注也会存在很多不确定性;其次,由于模型具有高复杂度,在虚拟引擎中也难以识别所有模型,尤其是在欧美改装车泛滥的场景下。
不同于人眼,算法对图像的识别要困难的多,一旦图像中的几个关键要素发生微妙的变化,算法对其输出的识别结果或许就会出现巨大的差异,更何况人眼也有不少误判的时候。因此,海量数据也并不是实现自动驾驶L4乃至L5充分条件,不能指望仅仅通过虚拟仿真平台上亿万公里的“安全驾驶”来证明线下道路实测上的绝对安全。
一专业人士对品玩表示:“利用游戏引擎进行仿真测试虽然在一定程度上解决了自动驾驶的部分问题,但说到底,其重心仍在测试两字上。其主要目的是防止自动驾驶算法可能在一些已经犯过的错误上再犯错,或者是一些工程师能够预先想到的场景里面提前去测试,它更多的是保障整个系统逻辑的正确性。”