6月6日,AIR携手百度发布了全球首款支持实车部署的开源端到端自动驾驶系统AIR ApolloFM,解决了现有开源端到端系统无法完成实车部署、以及现有开源实车系统无法实现端到端的问题,填补了自动驾驶领域在开源端到端实车部署方案上的行业空白。
清华大学智能产业研究院(AIR)首席专家、创新中心主任、清华大学无锡应用技术研究院智能产业创新中心执行主任陈亦伦
从自动驾驶技术演进、当代技术挑战、趋势机遇、设计思路、核心模块及其实车运行结果几个角度全面解读了AIR ApolloFM。
以下为AIR ApolloFM技术解读的全文内容:
回顾自动驾驶技术的发展历程,自动驾驶算法栈可以分为三个部分:目标与障碍物、道路结构、以及决策规划。
在早期的自动驾驶系统中,由于算法能力不足,目标与障碍物主要通过规则实现,对高质量传感器(如昂贵的激光雷达)有较高要求,因此成本居高不下。道路结构则依赖离线绘制的高清地图通过在线定位进行实时调用,决策规划也通过规则完成,导致系统泛化能力和智能性较低,只能在特定区域内运行,类似于家用扫地机器人。2015年以后,深度学习技术的发展使得AI能够感知目标与障碍物,降低了对高性能激光雷达的需求,可以用低成本激光雷达甚至纯视觉方案完成实时感知,从而大幅降低了成本,开启了大规模商业化的可能性。
然而,直到2020年,道路结构的感知仍不成熟,需要依赖高清地图,这限制了自动驾驶的应用范围和安全性。2020年之后,通过AI感知道路结构的技术逐渐成熟,减少了对高清地图的依赖,即使在普通导航地图区域也能感知到结构标准的道路,大大提升了自动驾驶系统的实用性。目标与障碍物感知和道路结构感知逐渐统一,但决策规划仍以规则为主,导致算法迭代需要大量人力,代码复杂且泛化能力有限。
随着Tesla V12版本的发布,当前行业内的主流观点倾向于认为,基于人工智能(AI)的决策规划算法有潜力超越经过大量人力资源精心打磨的规则式算法。这一趋势使得感知AI模型和决策规划有可能被整合为一个统一的AI模型,即端到端的AI模型。
从自动驾驶技术架构的发展来看,每次AI技术的进步都会带来明显的架构升级。本次架构的升级,自动驾驶端到端AI化是必然选择,但是端到端AI是如何解决当代自动驾驶的技术痛点问题是技术架构设计的核心所在。
第一个值得讨论的问题在于世界模型是否需要被重定义(自动驾驶的世界模型和 AI 的世界模型定义有所区别)。自动驾驶中的世界模型在之前的架构中代表了感知的输出和决策规划的输入,也决定了感知 AI 的真值标注方法和决策规划的规则设计方法。
当前的世界模型是通过有限语义的点、线、面、体来实现对物理世界的极简化表达,我们称之为闭集世界模型。这个表达是对丰富的物理世界非常简化的表达,是整个系统的天花板。人类可以感知万物,但是目前自动驾驶智能感知N物(N的数量一般不超过 20)需要能够感知万物的开集世界模型来编码全量场景信息,而不是极简信息。但是开集世界模型本身的定义和真值是一个开放性问题,这可能会影响感知训练数据集的重新构建。
基于AI实现的决策规划如何训练也是一个核心问题,特别是需要AI的决策规划能够在性能上超越之前充分打磨过的规则代码,这个在工程上并不容易,不是一个简单暴力堆数据的过程。
与开环为主的感知AI算法比,决策规划因为是闭环系统,监督式的模仿学习存在很大挑战。模仿学习主要的问题是绝大多数数据都是正常驾驶数据,而不是危险驾驶数据。学习的关键是怎么样从危险驾驶状态恢复到正常驾驶状态。依靠大量司机去遍历极端长尾分布的危险驾驶状态是不现实的。
如果采用强化学习,则很容易陷入到如何设定奖励函数的泥潭中。效果可能还不如直接设计规则好。
与感知AI 处理的高内聚性的数据分布不同,训练决策规划AI难度较高,本质上决策规划的样本分布是通过多个智能体和多个场景组合而成,分布非常稀疏,对小样本学习要求很高,这就要求 AI能够真正理解每个问题和场景,而不是简单记忆,否则就会对数据的数量和分布要求极端苛刻。
还有一种解决思路是通过打造仿真器,在仿真器中训练,解决数据数量和分布的问题。如果仿真器足够真,on-policy的强化学习可以轻松超越人类。但目前仿真器「不真」,主要来源于驾驶行为的生成上,反而传感器的仿真(渲染)技术随着nerf, gaussian-splatting, diffusion等技术普及日渐成熟。
目前从工业界的主流方案来看,使用的AI技术主要以2020年以前的AI技术为主。2020年后至今的AI技术发展速度大大提升了。事实上,当前最重要的AI技术都产生于2020年之后。如何应用大模型、多模态、生成式、预训练等技术解决自动驾驶行业的核心挑战,是我们希望能够在新架构设计中重点关注的问题。
首先,在开放路段的自动驾驶是一件极其复杂的任务,例如(如图):要理解新修好的水泥地面开过去可能会陷进去,空中漂浮的塑料袋是否应该躲闪(躲闪和不躲闪都会存在危险),路上的倒钉是否可以压过去,路上的井盖是否盖上了以及怎么处理。另一个例子是骑行者伸出左腿(一般人伸手),其实是在示意需要向左换道,以及各种各样造型奇特的红绿灯和交通标识等等。
在开放场景会遇到非常长的长尾问题,因为自动驾驶是安全相关,每个长尾问题都不应忽视。一个具备处理如此复杂任务能力的AI,已经具备了强人工智能的属性。它需要充分理解周边环境并且能够做出合适推理。这样的AI不仅仅会开车,也具备了具身智能的能力。自动驾驶基础模型、具身智能基础模型、通用机器人基础模型本质上是同一个基础模型。换句话说,如果无法实现自动驾驶的AI 模型,很难被称之为具身智能基础模型。
我们认为这样的基础模型需要拥有大语言模型的能力,因为首先这个模型需要能够感知万物而非感知N物,只有语言能装在充分大的类别定义,也就是说基础模型本身就要掌握足够大的词汇量,而不是只能容纳有限被定义好的几种类别。其次这个模型需要能够知晓常识,而不是通过工程师手写代码输入常识。最后这个模型需要有理解和推理的能力,而非凭借训练集的记忆去开车。这三点都指向了GPT这种大语言模型的能力。
所以我们将这样的模型定义为VLA(Vision-Language-Action)模型,区别于直接的 Vision-Action(VA)模型。VLA模型更接近于人类的大脑反应,需要显式或者隐式的通过人的思考,VA 模型更接近于人类的小脑反应,是不假思索的反射弧式的过程。
从这样的一个VLA大模型入手,然后蒸馏到VA小模型,而不是反过来,是更加值得探索的方向。
例如人在学习开车的时候,是处在什么都会,但是不会开车的状态,学习起来很快,开的多了,就会变成小脑反应,不假思索,开起来不累。这就是一个 VLA缩水到VA 的过程。但是反过来就会极其困难。训练一个低阶生物开车极其困难。
第二个思考更偏向工程化。自动驾驶系统作为一个非常强调安全的工业级产品,是需要被正向设计的。它需要有安全的、实时的、能被解释的代码作为安全兜底。尤其是针对一些绝对不被允许出现的场景。
上图中橘黄色代表安全且实时的任务。首先必须存在一个安全且实时的最终驾驶策略兜底模块。这个兜底模块能够正常工作,就需要获取到世界模型中的元素。所以会推导出一个安全且实时的感知模块用来支撑,在这里我们称之为4D全场景感知。其实就是当代主流的自动驾驶架构,可以兜底特定场景,保证实时性,但是上限不高。为了提升上限,我们增加了端到端自动驾驶大模型。
运行的两张网络,4D全场景感知网络和端到端驾驶网络,从能力来说都是具身智能基础大模型的子集。所以这两个网络从基础网络蒸馏得到。从具身智能智能基础模型(VLA大模型)蒸馏出端到端驾驶网络,会带来更高的上限。
这样就推导出了ApolloFM的算法架构。之所以将其起名为ApolloFM,是因为安全且实时模块相当多的实现继承了充分打磨过的开源Apollo工程,AI部分由基础模型FM产生,因此称ApolloFM。
这部分将重点讨论三个主要AI网络,具身智能基础大模型,以及从它蒸馏衍生出的4D全场景感知网络和端到端自动驾驶大模型。
首先是具身智能基础大模型。这个模型的输入和网络结构比较类似于多模态的GPT大模型。它将自动驾驶所有需要输入的信息,例如摄像头、激光雷达、导航、地图(仅需要导航级别地图,而不依赖高精度地图)、用户指令、自车位置等信息,都以token编码的方式进入到预训练过的多模态大模型。这个模型的核心是模型的输出,因为输出决定了训练和调优方法。模型的输出被设计为同时输出三种信息。第一种是开集的感知信息,类似于4D 版本的CLIP;第二种信息是场景描述信息,包括静态场景描述和交通参与者的行为描述,这个信息能有效的监督基础大模型能够真正理解场景和意图;第三个信息是直接输出驾驶action。这也是一个VLA模型。
接下来是 4D 全场景感知模型。这个模型在VLA 模型基础上蒸馏成为的一个 VL 模型,同时会控制算力和网络结构保证实时运行。它输出的要素是开集下的世界模型(感知万物),包括稠密表达、实例化表达以及之间元素的拓扑关系。
端到端自动驾驶大模型我们设计了三种模式,可以根据不同算力和场景部署。
第一种模式是一个充分蒸馏过的VA模型,不再具有L的结构。这样的VA模型的好处是算力要求低,可以做到实时运行,类似于人类的小脑。这个模型具备端到端自动驾驶的能力,而且从VLA大模型中蒸馏出的VA模型有更高的上限,是端到端自动驾驶一条非常关键的路径。
第二种模式是蒸馏出一个中等大小的VLA模型,因为有了语言模型的存在,有思维链(chain of thought) 的加持,推理能力更强。这个模型是部署在端侧的,可以是异步非实时的。第二种模式下,这个异步的VLA模型与第一种模式的实时VA模型结合使用,相当于端侧的有一定容量的大脑+小脑。
第三种模式是在第二种模式的基础上,增加一个异步的云端大脑,进一步提升系统上限。在垂直 L4 的很多领域中,自动驾驶车辆或者机器人是可以联网的,这样可以充分使用云侧的算力和能力。相当于加持了一个云端的超级大脑。
总结下来,第一种模式是一个实时端侧的VA,第二种是实时端侧VA+异步端侧 VLA,第三种模式是实时端侧VA+异步端侧VLA+异步云侧VLA。能力上限从小到大。三种模式的智能性都源自具身智能基础大模型,保证了整系统的高上限。
算法架构的基础上,研发团队也做了大量的工程实现工作,将上述算法架构部署到实车运行,这里是我们提供的一个参考工程设计。
参考硬件里我们使用了1个量产激光雷达和 11 个摄像头。AI 计算平台我们使用了有双芯片的NVIDIA Jetson OrinX的域控制器。
实时安全通路采用了稳定可靠的开源Apollo 8.0系统作为实现基座。Apollo 8.0的感知相关内容被4D全场景感知模型替换,并使用了百度的导航地图替换了Apollo 8.0的高清地图。值得一提的是,因为整系统的充分神经网络化,去高精度地图的依赖变得非常直接。
以下视频展示了实际道路场景中的实车运行结果。可以看到ApolloFM能够对周边的场景做很好的描述,包括提醒红绿灯变变色,距离前车过于近,
看到了多个住宅楼来推测周边可能不少行人,斑马线周边可能会有行人等
。这些信息的获取和使用在之前的技术架构中都需要消耗大量的人工规则。
接下来ApolloFM遇到了一个有意思的场景,一辆小轿车在视野被遮挡区准备掉头。ApolloFM推理出了这辆车掉头的意图。下面我们详细拆解了ApolloFM的思考过程。首先 ApolloFM通过场景理解定位到了需要关注的两个目标,待掉头车辆和右侧车辆,并且进一步预测出了右侧车辆要汇入本车道。基于此,ApolloFM在考虑了急刹车和车道内避让两种选择,觉得车道内轻微避让更加适合,同时VLA中的A部分直接输出了规划轨迹,下发到控制器,完成了整车道内避让的动作。这里面值得提及的是,这一系列推理和最终的轨迹输出都是在AI模型里面完成的。
这里面还有很多很有意思的场景,出于事件原因我这里不一一赘述了。我们贴出了几个实车视频的案例,包括连续绕行工程车,自动变道绕行施工区域,还有一个夜间光照不好,自车主动绕行一个逆行的骑行者,还有一个主动变道规避工程车但是被后方车辆逼回,而后二次变道成功的案例;最后的一个是ApolloFM 流畅通过一个比较复杂的人车混行的区域。这些视频在传统的自动驾驶架构中,均需要很多的规则和代价函数设计和上下游的仔细打磨。而在 ApolloFM 中,这些都已经被VLA大模型及其蒸馏得到的模型简洁的处理了,并且通过解析 ApolloFM 对场景的描述和文字推理,确实看到这些是可泛化的结果。
以上是此次AIR ApolloFM开源内容的全部解读。自动驾驶基础大模型存在很多技术想象空间,数据必然是影响性能关键的一环。在未来的持续工作中,研发团队将探索用更聪明方法来主动生产需要的数据,而非让广大人类驾驶员遍历危险场景被动的获得,前者在数据的质量和效率上远高于后者。同时还会继续研究模型训练和仿真器开发的协同,以及云与端的协同,AIR ApolloFM未来想象空间非常巨大。
AIR ApolloFM 是一个很大的系统工程,除了 AIR 团队之外,还要特别感谢这个项目里的高校开发者分队,欢迎学术界对此感兴趣的老师和同学们联系我们。