实现无人驾驶需要什么样的仿真系统?

2020-03-24

*北京时间3月21日,无人驾驶公司轻舟智航在其举办的线上分享会上,首次公开介绍了轻舟智航大规模智能仿真系统的具体应用。 *

分享人汪堃是轻舟智航联合创始人,也是国际无人车仿真系统专家以及Top Coder,拥有超过8年的分布式系统、大数据基础架构行业经验。在创立轻舟智航之前,他曾于Waymo仿真团队负责仿真系统和系统架构,也是从Google中国直接入职Waymo的第一人。汪堃于北京大学取得硕士学位,曾担任ACM/ICPC世界总决赛队伍队长。

轻舟智航自主研发的仿真系统,不同于基于游戏引擎开发仿真软件的“华而不实”,能真正达到低成本、灵活性、可拓展性和可衡量性。从其展示的两个应用演示视频可以看到,一方面,借助仿真及相关工具链,能形成高效的数据测试闭环,支持算法的测试和高效迭代,取代堆人或堆车的方式。另一方面,只有经过大规模智能仿真验证过的软件,才能够保证安全性和可用性。

轻舟智航认为仿真是达到规模化无人驾驶技术的唯一路径。如果无人驾驶是个赛跑,那么仿真便是助推器,助推完全无人驾驶的实现。


分享全文整理如下:


大家好,我是轻舟智航的联合创始人汪堃。很高兴今天有机会针对无人驾驶领域的仿真技术与大家进行交流。

基于游戏引擎开发的仿真软件大都“华而不实”


市面上有许多仿真软件,最流行的是基于游戏引擎开发的仿真软件。这种仿真软件从界面的角度来说是比较好看的,像一个模拟城市,场景很真实。


与这种主流的仿真软件不同,轻舟智航的仿真软件界面是很简单的,抛弃了复杂的渲染工作,仅保留了感知结果,包括3D Box和雷达点的叠加。我们为什么不利用游戏引擎,造一个好看的模拟城市呢?

我们总结了基于游戏引擎开发的仿真系统的三大特点:

第一,在使用游戏引擎的情况下,其本身的图像渲染工作对感知的提升是很有限的,因为其中的渲染效果和真实物体是有一定差别的。

第二,在自动驾驶领域,这种Re-build软件(基于第三方软件开发)是缺乏测试确定性的。仿真软件在自动驾驶领域的重要应用,就是复现某一次的路测效果。但由于这种第三方软件的开发与自动驾驶软件的开发是相互独立的,很难保证其中各个模块的确定性,导致整个仿真软件存在不确定性,最终影响可用性。

第三,基于游戏引擎开发的仿真器会消耗大量额外计算资源做图像渲染,不利于大规模应用,这也影响到本身的实用性。

基于以上考虑,才有了轻舟智航独特的仿真系统。

仿真能为自动驾驶带来什么?

仿真对自动驾驶的重要性不言而喻,它具有几个优势:

一、低成本

仿真的路测成本大约是实际路测成本的1%,甚至更少。在进行实际路测时,需要有硬件成本、传感器成本、司机成本以及系统工程师的成本,而且一天只能有效测试8到10个小时。而利用仿真路测,在要求不高时,只需要一台电脑和GPU,便能连续24小时进行测试。

二、灵活性

在实际路测中,遇到极端情况是很小概率的事件,而且不安全。而在仿真系统里,工程师可以通过手工编辑或自动生成来测试众多极端情况,保证在实际路测前有充分的验证。

三、可扩展性

仿真的扩展性比实际道路测试的扩展性大,仿真路测里程大概1000倍于实际路测里程。仿真系统所需要的硬件成本是很低的,而车队的硬件成本、人员成本以及运营成本是非常高的,随着云服务的发展,仿真的可扩展性将远大于车队的可扩展性。

四、可衡量性

在开发自动驾驶软件时,每一天都存在大量代码的更改以及算法的迭代,那如何知道这个月的软件和上个月的软件哪个表现更优?这种比较是难以通过实际路测进行的,因为在车辆有限的情况下,测试的场景以及里程数都有限,很难得到一个可靠的统计结果。但借助仿真,工程师能在大量场景库里并行地进行测试,在很短时间内便能对软件版本进行评估。未来,在评估软件是否达到量产水平时,仿真也是主要的测试评价技术。

轻舟智航仿真系统的系统架构以及仿真评估器分类


轻舟智航仿真系统的系统架构可以分为5层:最底层的是轻舟智航自研的Car OS,借助底层的通讯系统来保证模块之间的高效通讯; Car OS与仿真器是高度整合的系统,核心仿真器及评估器,是基于底层的Car OS接口开发的,能保证仿真系统的确定性;再往上一层是仿真周边工具链和基础架构,可保证整个数据闭环的有效性,将全部数据高效利用起来;第四层是大规模场景库构建;最顶层则是分布式系统仿真平台,支持快速、大规模的仿真应用,在短时间内得出正确评估。


轻舟智航的仿真评估器也可以分为5类:第一类是安全性评估器(Safety Evaluator),包含是否碰撞、是否压到路边、是否撞到行人等评估;第二类是真值评估器(Ground Truth Evaluator),可通过人工标注或自动标注的方式对仿真结果进行检测对比,及时反馈给工程师;第三类是法规评估(Law Evaluator),指的是根据交通规则进行评估,例如是否闯红灯、是否逆行等;第四类是舒适度评估(Comfort Evaluator),指是否有急刹等带来不舒适感的等行为;第五类是状况评估(Stats Evaluator),相对比较底层一些,指根据模块生成的中间结果,进行纵向比较得到评估的结果。

真正能用起来的仿真

https://v.qq.com/x/page/t0938fhvhso.html



以上视频是我们在麦当劳进行仿真测试的一个例子,从下方的真实影像中,可看到前方是没有车辆的。但借助仿真,我们在场景中产生了两辆绿色的虚拟车辆,测试车辆能否对虚拟车辆进行准确的避让。同样,也产生了黄色框的行人来进行测试。视频中的白色边框则是当时的实际行驶轨迹。由于麦当劳这种场景是不允许多次实际测试的,这个视频只是众多例子中的一个,我们实际上生成了非常多个这种类似的场景,在仿真测试中评估器,都得到不错的结果后,才让车辆到实际场景中测试。

https://v.qq.com/x/page/v0940v8wk50.html

此外,以上视频也展示了仿真场景库的自动生成的相关工作。视频中红色和绿色的两个点,分别代表两辆车的运动轨迹,这些轨迹的生成和变化,是在真实的交通数据集上,利用深度学习的方法进行训练,再使用训练好的深度神经网络 (生成模型) 合成大规模的互动车辆的轨迹。





大家可以看到互动车辆的运动轨迹在不断变化,这个变化是由于我们借助生成模型在互动车辆的运动行为空间进行随机抽样而产生的。该生成模型支持在不同地图上合成不同的场景库,具有真实有效,多样丰富,以及规模扩展等诸多特性。视频中的两个点或者两辆车,是具有交互性的,它们之间可以进行正确的互动,这种互动行为不是人工手动创制,而是从真实车与车之间的互动数据中通过深度学习的方法学习而来的。

总结而言,我们认为仿真是达到规模化无人驾驶技术的唯一路径。首先,借助仿真及相关工具链,能形成高效的数据测试闭环,支持算法的测试和高效迭代,取代堆人或堆车的方式;其次,只有经过大规模智能仿真验证过的软件,才能够保证安全性和可用性。

最后,以一个比喻作为结尾,如果无人驾驶是个赛跑,那么仿真便是助推器,助推完全无人驾驶的实现。