/ vrtuoluo / 0浏览

最新资讯腾讯孙驰天:正在构建“绿洲”系统,用游戏解决自动驾驶仿真核心问题

11月22日,由腾讯游戏学堂举办的第五届腾讯游戏开发者大会(Tencent Game Developers Conference,以下简称TGDC)正式开播,本届大会以“Five by five”为主题,汇聚40多位海内外行业嘉宾与专家学者,围绕产品、技术、艺术、市场、独立游戏及社会价值等议题,与从业者一起共同探讨行业未来趋势,分享具备实战与前瞻性的从业经验与研究成果。

在第三天(11月24日)的活动中,腾讯自动驾驶仿真技术总监孙驰天发表了“游戏技术助力自动驾驶仿真”主题演讲。在演讲中,孙驰天就腾讯自动驾驶部门的定位、腾讯自行研发的自动驾驶“绿洲”系统、以及游戏技术如何助力自动驾驶仿真发展等内容进行了详细分享。

在他看来,首先腾讯自动驾驶部门的定位是要做汽车行业的工具箱和加速器,而并非自己造车。目前自动驾驶行业面临的感知算法训练和测试验证两大挑战,都是需要虚拟仿真技术来帮助解决的。腾讯为此正在构建自动驾驶用的“绿洲”系统,并强调其对真实世界的几何还原、逻辑还原、物理还原、高并发这四大核心能力。

随后,他举例展示了游戏技术例如云渲染技术,MMO同步技术是如何运用于仿真系统的研发当中的。在演讲最后,孙驰天强调:运用游戏技术帮助汽车自动驾驶系统的开发是十分高效且严肃的事情,并希望通过大家的这些努力可以在未来35年内让大家敢于将汽车的驾驶权交给汽车商的自动驾驶算法,真正地实现汽车自动驾驶。

以下是为演讲实录,略有删减!

大家好我是来自腾讯自动驾驶业务中心的孙驰天今天我想跟大家分享一下我们用游戏技术来助力自动驾驶仿真所做的一些工作。

首先介绍一下我们整个腾讯自动驾驶部门。很多朋友、很多同学都会疑惑:腾讯还有自动驾驶部门你们是不是要造车呀?因为确实目前整个行业内部做自动驾驶以及造车的公司越来越多但其实我们还是很明确的,腾讯是不会自己去造车的那我们做什么呢

做汽车行业的工具箱和加速器

我们的定位是做汽车行业的工具箱和加速器去做帮助自动驾驶落地的工具、软件以及服务。其中会涉及到包括面向自动驾驶的模拟仿真体系TAD SIM包括自动驾驶车端的全套软件TAD Pilot,也包括面向自动驾驶用的一套云工具链和云服务TAD Cloud,最后一个是面向自动驾驶专用的一种地图格式叫高精度地图TAD HD MAP。

腾讯自动驾驶是2016年正式成立的。在这五年来我们打造了个三位一体的面向自动驾驶的研发体系包括刚刚提及的一个自动驾驶的云开发平台、自动驾驶的高精度地图的平台也包括一个专门为自动驾驶或者我们称之为智能网联汽车服务的仿真平台

在这几年的研发、探索和实践中碰到了一些问题。其实很深切的感受到在整个自动驾驶行业、或者说智联网联汽车这个行业有一些难题是困扰着整个行业的前进和落地所以我们将这里面的最重要两点总结了出来

第一是在感知算法训练上所面临到的挑战

有一个比较有意思的段子是说:人工智能、人工智能你有多少人工才能有多少智能。这个点其实在自动驾驶行业里也是非常现实的每年全球这些做自动驾驶的公司需要投入非常多的人力物力还有财力来进行自动驾驶专用的人工智能算法的标注还有训练。这里面需要标注的这些样本包括一般的汽车在路上经常碰到的交通场景也会包括一些可能平时不经常碰到但一旦碰到会发生比较危险的交通事件的一些场景我们都是需要去进行数据的采集和标注的

据第三方的统计每年全球自动驾驶公司在这样的数据集的采集和标注上就有超过10亿美元的投入所以这个投入还是非常非常巨大的而且这个数据集也是很难进行非常普适性的共享原因是行业内有些公司会将自己采集和标注的数据集拿出来给大家去共用但是在不同的国家、不同的城市内,有不同的情况。

举个例子我国有些特色的场景比如外卖小哥、老头乐这种电动车。这种场景、要素在别的国家是很少见到的那这种要素的采集、标注,都是需要我们国家内部的这些科技公司来自己进行数据的搜集和标注、制作所以这就会导致我们的数据集基本上是每家都要自己去制作很多很多的标注和采集的投入这样的量级对于自动驾驶行业来说还是比较沉重的负担

第二个比较重要的问题是测试验证问题。

2016年的时候兰德智库就提出来:一辆自动驾驶汽车需要经过110亿英里距离才能证明它达到一个合格的人类驾驶员水平它才可以进入一个量产的阶段。那110亿英里是什么概念?这里我们举了一个比较直观的数字地球到太阳距离大概是0.932亿英里这样相当于是不到1亿英里的样子110亿英里就相当于100多倍的地日距离这个距离行业里的公司们做到什么程度呢

拿行业里可能路测数据最多的谷歌无人车的子公司叫Waymo以他的数据来举例:Waymo到目前为止已经完成了超过2千万英里的路测即折合成0.2亿英里的数字大家可以看到0.2亿英里和我们想达到的目标数字——110亿英里还是有一个非常大的距离而且这也是花费了Waymo很多年的时间才能达到所以这个数字将是自动驾驶落地的一个非常大的阻碍

那行业里会去怎么解决它呢?目前大家看到比较通用的办法是利用虚拟仿真的引擎、虚拟仿真系统来生成各种各样的场景解决刚刚所说的两个问题

举个例子第一个感知算法训练的问题那我们可能不需要通过这么多的真实采集车去进行数据的采集和标注而是借由仿真系统自己内部构建千变万化,多种多样的场景。比如说城市的、高速的、城区的、晴天的、雨天的、雾天的等等。这些场景会生成各种各样的图像、点云,不同的数据集用来给做感知系统做训练这样做不仅可以很方便生成各种天气、极端的交通场景,另外一个重要原因是因为由仿真系统生出来的场景是自带真值的。

真值是指什么呢这可能是在人工智能里用得比较多的一个词: ground truth。它是指一个物体或者一个元素的客观属性在观察和了解这个世界的时候我们看到的东西认知到的东西或者摸到的东西,它都不是真值它不是客观值是观测值而真值是指这个物体本身就具备的客观属性所以由观测值去推导它物体本身具有的客观真值中间就会存在误差,这里面就会引入错误但由仿真系统这种自带真值的系统它生成出来的,预带标注结果的数据它的结果是100%准确的。所以通过这种方式可以100%准确生成带有标注结果的训练数据

第二个问题测试验证。虽然行业内公认的谷歌无人车的子公司WayMo,它目前只进行了0.2亿英里的路测但是他已经进行了150亿英里的仿真测试。当然不仅仅是WayMo在整个行业内部使用虚拟仿真技术来进行大范围、大规模的里程测试是一个共识。大家也将虚拟仿真技术称作为整个自动驾驶技术奠基技术。为什么要用虚拟仿真技术来尽可能的代替道路测试呢当然不是要完全代替只是说使用虚拟仿真技术来极大的代替比如95%99%的路测里程

有三个非常重要的原因:首先是安全性问题。2018年的3月18号自动驾驶行业内发生了一件非常有冲击性的事情。在美国的亚利桑那州Uber的无人测试车发生了整个行业内全球的第一起自动驾驶测试致死事故这个事故当时对于整个行业来说是非常大的一个负面冲击。

因为自动驾驶目前面临的挑战大家关心的最核心的就是安全性这个点在测试过程中就已经发生了致死事故又如何能够保证你的产品在以后大规模应用的时候可以解决这些你本应该解决的安全问题呢所以使用虚拟仿真测试来代替真实的道路测试就可以完全避免安全性的问题。

在虚拟世界内部是不会有任何真实的伤亡毕竟在虚拟世界内部把楼、把车、把道路都撞毁了也是不会有任何损失的所以安全性是用虚拟仿真测试来代替真实路测的一个很重要的原因也是我们放在第一个的原因

第二个原因就是时间和金钱。举一个我们去进行一次自动驾驶路测例子:早上准备代码的发布、发包车端部署。中午上车,把车开到指定的测试区域——因为不是所有区域都可以测试的必须要去政府指定的自动驾驶的测试区域开展路测。测完之后下午再把数据拿回来拿到本地进行数据的分析和处理这样一来一回那怕你只是调了算法里非常小的一个参数、一个变量那也至少需要消耗一整天的时间来进行验证

我们可以想象如果进行更多的、更丰富的场景测试有几千个、几万个、几十万个场景需要测试和覆盖的时候所消耗的时间和金钱是非常海量的数字而使用虚拟仿真测试来进行这样的测试唯一需要承担就是电费成本

第三个我们会重点提到软件OTA的回归测试。在这里简单解释一下软件的OTA是指这个软件可能一开始发布到自动驾驶渠道上是版本一后面通过不停的云端推送来进行长期的升级和迭代比如特斯拉它是最典型的自动驾驶行业内部或者汽车行业内部会使用OTA不停进行智能驾驶或者说辅助驾驶软件升级的一家公司

回归测试是指我们每次升级之后我们要进行一个非常全面的检查和测试,来保证最新的自动驾驶算法是可以解决之前所有已经解决的问题而不是捡了芝麻丢了西瓜或者拆东墙补西墙如果一个软件版本就需要进行110亿英里的里程测试那当每次软件通过OTA进行更新之后需要进行回归测试的时候这个总的里程就是一个天量、天文数字没有一家公司是可以承受得起的所以使用虚拟仿真测试来进行软件OTA之后的回归测试是一个必然的趋势

自动仿真驾驶的“四大核心能力”(构建自动驾驶用的“绿洲”系统)

基于上面两个解决方案我们做了一件事情——我们的目标是要打造一个类似于电影《头号玩家》中的“绿洲”系统 本质上我们的目的是要构建这样的虚拟世界只不过接入到这个虚拟世界内部的,不再是人类的玩家用户而是被测试的自动驾驶算法。我们的目的要生成不同的关卡、不同的副本让自动驾驶算法来体验不同的场景面对不同的困难和挑战来观察它们是不是可以很好去解决这些路上常见、是不常见的交通场景和问题从而来决定这个算法是不是已经成熟到可以部署到自动驾驶车辆上进行真实的道路测试或者规模的商用。基于这个目的就需要打造我们的核心仿真系统我们也总结了四个仿真系统最核心的能力。

第一个是对于一个真实世界的几何还原能大家可以理解为去构建了一个游戏场景这里面可能更需要在三维的静态场景之上不管是游戏里场景构建还是地编都是类似一个概念只有很准确的将一个世界真实还原出来才有可能比较准确去观测它

尤其是在做自动驾驶测试的时候我们不仅要将世界非常真实的还原出来还需要观测这个世界的算法或者是传感器比较精确还原出来大家熟知的传感器可能会包括摄像头其实在自动驾驶或者智能网联汽车领域也会用激光雷达毫米波雷达这样的传感器我们的目标是通过对世界进行完整、精确几何还原来帮助进行世界的真实重建以及基于真实重建的世界的传感器仿真

第二步是要世界一个非常精确的逻辑还原。几何还原解决了那逻辑还原需要解决的是我们如何去生成世界内部的动态的元素,动态场景问题。动态元素就会包括车、行人、外卖小哥、老头乐电动车

还原这些动态要素首先就要对这些动态元素有一个比较形象、准确的建模——车的运动轨迹是什么样子?人的运动轨迹是什么样子?当行人碰到别的障碍物车的时候它会有什么样的反应?当行人碰到别的车、碰到别的行人的时候是什么样的反应?这都需要进行非常精确的逻辑还原从而让这个世界内部的所有元素都更精确贴近真实世界的元素反馈

第三对于真实世界的物理还原。做物理还原的原因是因为在做整个自动驾驶仿真的时候我们很关心这些汽车运动模型这辆车的动力学模型、它的电机、发动机、变速器、动力传动系统当然我们也会关心汽车的轮胎和地面的摩擦等这些物理效应所以只有当比较准确精确、真实还原出这些物理效果才能得到一个比较精确的车辆仿真结果。

第四步需要做的是高并发。这个在上一部分我也提到了我们做仿真系统的目的就是给这些自动驾驶算法建立非常多的副本让他们去进行挨个的挑战所以想建立成千上万、几百万个副本就需要具备高并发能力从而让这些自动驾驶算法可以并行的进入到这几千、几万几十万的场景或者副本当中去进行测试而不是一个副本一个副本进行测试那这样十万个场景量级的场景库可能需要等待数个月的时间才能得到一个结果这四个点是我们目前总结的对于自动驾驶仿真来说最核心的四个能力。

从无到有 构建数字孪生世界

基于要构建的这四个能力我们在过去的这五年时间里做了什么呢

首先我们TAD SIM1.0从无到有构建了数字孪生世界来将自动驾驶算法放在里面进行世界的测试。

第一步,我们基于自动驾驶专用的高精度地图来完整1:1还原了整个现实世界然后将现实世界转换成一些真值输出给自动驾驶的算法,训练集。下一步在虚拟世界内部生成千变万化的测试场景供我的自动驾驶算法进行测试。后来我们发现只有这些可能是不够的尤其自动驾驶方面仿真的真实性上是需要做提升的所以我们又花费了比较多的时间来利用游戏技术以及真实数据这两条腿、双擎驱动的方式来极大提升仿真系统的真实性。当然我们用了一些比较不同的技术路线和方式来提升包括在传感器仿真上去用游戏引擎的能力包括在做交通流的仿真,会使用AI、Agent AI的能力。

谈到用游戏技术来提升自动驾驶仿真系统的真实性指的不是我们小时候带给我们无限欢乐的这些游戏,而是那些更新使用最新的游戏引擎、渲染引擎或者游戏AI技术等等来构建的次时代游戏。这里面有很多东西是值得借鉴可以用于构建自动驾驶仿真测试用的系统举例来说第一点是如何用这些游戏技术来进行看似很真实但实际上是虚拟场景的还原。这里面举了四个例子大家可以看一看这四个场景的构建哪一个是真实、哪一个是虚拟的

这四个场景其实都是虚拟的都是利用游戏引擎以及一些场景构建技术还原出来一个真实世界供自动驾驶汽车来进行测试

在这种场景还原的技术点上有几点是我们特别关心的:首先是模型的面数包括所有模型使用的材质对应的光照变化和应用的优化这些结合起来会极大影响整个虚拟测试场景的还原真实度。场景还原真实度也会极大影响整个仿真测试的结果。所以使用游戏技术里面的场景还原技术一些别的技术来帮助我们极大提升场景的真实性是非常有帮助

同时我们也用了一些腾讯地图的数据卫星图的数据人工智能算法来帮助我们大规模生成城市级别区域。

我们用腾讯地图+卫星图数据+,自己的数据孪生的人工智能算法的工具链可以直接纯自动的生成包括北京市五环以内576平方公里的完全的城市重建这里面没有任何人工干预不管是建筑物还是道路还是水系还是植被完全都是纯自动生成、一键生成的所花的所有成本也就是在本地运行了一个22小时的电脑和电费仅此而已

如果这个工作放在云上的话可以在一小时内快速完成576平方公里的重建所以使用这种技术来帮助我们重建并在游戏引擎内去渲染一个非常广域和真实世界能够对应上的场景可以帮助我们去进行真实世界所对应的虚拟场景搭建从而进行对应的虚拟世界的自动驾驶的测试

刚刚介绍的是利用腾讯地图卫星图还有一些POI数据来帮助我们构建城市级别的场景。当我们做自动驾驶仿真测试的时候在一些局部的道路对精度有着非常高的要求我们希望精度可以达到厘米级比如3厘米、5厘米这种情况下就会采用第二种技术手段也就是一套依赖数据采集车的数据采集和重建技术来非常高精度以3厘米的精度来还原整个真实世界

这里介绍了整个还原真实世界的步骤首先会进行一定的数据采集生成一定的虚拟世界然后转化成刚刚提到过通过真值系统转换成深度值语义信息通过这些数据生成式对抗网络将它们转换成了真实图片风格的图像以及标注的结果而且这个标注结果因为是进行了真值标注所以是100%准确

通过这些真值的结果,又反过来训练场景生成和感知的算法又反过来提升场景生成的自动化率以及降低人工参与的比例所以这样闭环的工具链经过三年时间可以非常高自动化率低成本不间断的运行帮助我们自动生成世界上各种各样的场景。当然还是需要采集一定的真实数据作为这个数据集的输入来补齐的但是这样一个自闭环场景生成的工具链帮助我们极大解决了采集数据会花费一定的时间和成本但要又要生成无限多种虚拟场景的问题

这个可以看到是通过刚刚介绍的依赖采集车的数据孪生的工具链帮助还原了一个仿真测试场景右边是真实的采集回来的路测数据左边是我们用采集回来的数据可以完全还原的虚拟仿真的测试场景这里面包括我们对于静态世界的还原建筑、道路、路牌、标识牌、道路路面上的一些地面标识当然也包括动态元素这些行人这些车流包括也可以看到我们也生成了外卖小哥的小车

将动态元素和静态元素合在一起就可以生成一个比较真实可以进行虚拟仿真测试的一个虚拟环境。这样做的好处是可以通过有限的数据去生成无限多种的测试场景这里我们是生成了一个和真实世界非常一致的,完全复现真实路采数据的虚拟场景但我们可以用这个数据来生成无限多种千变万化跟真实世界完全不一样的场景来进行进一步的自动驾驶的仿真测试

基于刚刚这些工作生成出来这些场景之后还可以做进一步更真实的仿真测试在行业内部我们管这个叫车辆在环测试”。举一个直观例子我们给自动驾驶汽车套上了一个AR眼镜大家可以看到在右侧四幅画面里面