继 BEV 后,端到端无疑是今年最热的自动驾驶车企关键词,堪称PPT画饼必备。但现阶段能真正落地的端到端系统方案究竟是什么样子?基于现阶段的系统框架,我们可以期待什么样的能力提升?在 520 AI-Day 这个特殊的日子,小鹏给了我们一个令人振奋的回答。让我们一起来仔细看看中国第一个量产落地的端到端架构:新一代 XNGP,揭下它神秘的面纱。
熟悉自动驾驶的朋友应该听说过,上一代的非端到端自动驾驶框架通常包含感知、规划和控制控制三个子模块。包括特斯拉早期的 AP和FSD系统,小鹏的 XPilot (如图1所示)等,都遵循这样的架构,三个模块以顺序串联的方式运作。感知模块主要负责探测识别车辆自身和周边的环境信息,包括但不限于自车和旁车运动信息,道路拓扑和交通指示信号,导航信息等。这些信息会被送入规划模块,并最终给出一条最优的车辆行驶路径及其它辅助信息。最后,控制模块将围绕这条目标路径,优化出最终的车辆横纵向控制信号,即油门刹车和方向盘动作。这套框架最显著的好处是符合人类的逻辑思维(注意,是逻辑思维,而不是人类本能)。因为人类的逻辑思维在解决复杂问题时,最常用的方法就是分而治之(divide and conquer),即将复杂问题拆分成若干个定义更为清晰明确(well-defined)的子问题,然后逐个击破。这使得这套框架在运行时具有很强的可解释性和可维护性。比如自动驾驶车辆撞车,可以很快根据数据判断是感知系统对旁车的速度估计有错误,还是规划给出的路径有问题,抑或是控制模块计算值有问题,然后针对性地修补系统漏洞。
然而,分模块的思路存在两个显而易见的短板:首先是环境的原始信息在模块间传递时存在很大损失,这是因为下游的规控只能接收到上游感知模块给出了有限类别的、人工预先定义的感知结果,比如速度,加速度这样的物理性的指标。那些超出人工预先定义范围外,但对规控可能有用的信息,就完全损失掉了。举个例子,人类开车的时候是可能会关注路旁行人的表情和肢体动作的,进而在近距离博弈中来判断自己能否正常通行。而这类奇特的信息,是不会出现在常规的感知模块的输出中的。其次,是感知和规控之间的信息传递不是数学上可微分的。也就是说这两个模块无法在同一个框架里进行模型参数联合训练,无法共同优化以达到更好的整体效果。
端到端架构就是对上述两个短板最直接最合适的解决方案。通过使用一个庞大复杂的深度学习网络结构,使得信息能够无阻地从最原始的传感器采集信息专递到末端的规控,且整个过程都是可微分,可整体性进行训练的。但是,这绝不意味着端到端架构就完全不再有感知-规划-控制这样的功能模块,不意味着端到端就是个没有任何中间状态和输出的大神经网络,不意味着端到端是一个无法揣摩的神奇大黑盒。接下来,让我们一起来顺着小鹏 XPlanner 的架构图,从中来体会到端到端的真谛。
如图 2 所示,首先我们会看到,在这套框架下,依然有清晰的感知(XNet),规划(XPlanner)和控制(Control)三个子模块存在。这个设计其实有其必然性,这个必然性来自两个方面:一是不同任务适用不同的网络结构。比如处理摄像头的原始数据,更适合用 CNN(卷积神经网络)类似结构,这也是 XNet 的 golden-backbone (黄金骨干模型)部分的核心。而规划行驶轨迹由于是一个时空上的计算,更适合使用类似 LSTM/GRU 的时序神经网络。因此,即使你从形式上把整个系统弄成了一个大网络,在网络内部其依然是结构分明的。二是来自部分现实需求,其要求必须有中间的明确的感知或规划结果返回给其它模块。比如 SR 系统就需要给出明确的周围车辆和环境物体信息,比如车辆类型、位置等,才能根据这些信息来渲染 3D 画面,辅助实现更好的人机共驾。因此,端到端架构和分模块思维是不矛盾的,即使是端到端架构,里面也依然免不了要去做显式的、包含部分人工定义规则的感知和规控。
接下来我们可以继续着重看看 XPlanner 模块的输入和输出。这里面有两个值得注意的点:一是 XPlanner 的输入来源,其来自于感知网络 XNet 的直接连接(图中红色部分),而不再是人工定义好的物理信息。这部分信息往往以一个规模巨大的张量数据的形式存在,是对感知系统原始数据的一个压缩和提纯,它隐式地包含了远多于前面人工定义信息的内容,这部分信息是让 XNGP 能实现更智能化、更拟人的决策和操作的关键。也正是这个跨层连接,使得 XBrain 可以被称为一个真正的端到端架构,能够通过梯度反向传播(backward)让 XNet 和 XPlanner 联合训练,找到更优的全局解,实现更好的系统综合性能。二是 XPlanner 的输出是和左侧蓝框里的人工规则(rule-based)合并在一起后再送到最后的控制模块的。事实上,人工规则依然深深嵌入在端到端架构中。这是因为自动驾驶系统不是 demo,更不是广告学,是扎扎实实的工程学。数以万计的人工规则虽然不够“聪明”,但却是行业数十年来积累下来的宝贵经验,是现阶段对系统最终量产表现的安全兜底。比如针对路径规划,业界和学术界几十年的研究诞生了很多有效的数学理论和算法。纯神经网络的 XPlanner 输出的路径来自于对专家数据和用户数据的学习,不是来自于严格地非碰撞约束的优化问题的数学求解,因此尽管 XPlanner 输出的路径更灵活拟人,但也必然须要先经过人工规则的校验和再优化等,才能发布给末端的控制器。比如针对绕行这个问题,XPlanner 的输出可能在狭窄的人车混流道路上也给出大弧度绕行方案,但从量产的角度看,这样的风险太大,特别是用户车队规模达到十万、百万级时,这样的规划结果就须要被更稳妥的人工规则限制或替换。
了解了这些基础情况后,我们可以聊聊我们在接下来的3个月,6个月,12个月,能对现阶段的端到端架构有什么合理的期待。而这些,在今晚的 520 AI-Day 上,大师兄和各位产品经理同学已经为我们做了精彩的展示,如图 3 所示。实际上,我们的期待依然来自各个功能模块基础能力的显著提升,这主要包括以下三个方面:
1. XNet 感知提升。感知范围和感知白名单物体都得到了巨大提升。感知范围自不必说,这是基础中的基础,其中前向感知距离的提升能够极大提升应对事故车、通畅路况突然转为拥堵等场景下的安全性和舒适性。白名单物体识别种类的增加也是很重要的。很多厂商在宣传感知识别时往往喜欢强调 OCC,通用障碍物识别。但事实上,通用障碍物识别往往缺乏语义理解,这会导致规控无法做出最佳地,更拟人的反应。举个例子,一条小狗暂时停在车辆行进车道上。对于通用障碍物识别来说,小狗就是一个静止物体,和石头没有区别,需要避免碰撞,因此车辆规控会倾向于进行变道避让。但小狗其实并不单纯的一个静止物体,而是可能发生运动的动态物体。如果小动物进入了白名单,那么白名单系统还能额外有对于小狗的语义理解,规控系统为了避免小狗运动带来的风险,有可能更倾向于减速乃至刹车,并伴随语音提示。
2. XPlanner 可以接收到 XNet 的中间层输出,因此可以掌握远多于传统物理运动状态的信息。最显著的就是人车混行的通行效率可以大幅度提高,对静止物体的绕行积极性和能力也可以大幅度提高。比如以往对于周围多个物体的理解通常局限于个体的运动状态,很难考虑到它们之间的长时间尺度上的相互影响。这是因为传统非端到端框架,感知输出给规控的就只有每个个体的运动状态(当前时刻和未来预测轨迹等)。这些有损的信息会导致规控错失一些很重要的判断依据。举个例子:右侧非机动车道上同时存在临停车(在前)和非机动车(在后)。根据人类的理解,非机动车有很大概率会因为绕行临停车而侵入我方车道,因此规控最好能提前减速以提高安全和舒适性。这样的涉及到多个物体之间相互作用和影响的信息,只有端到端框架下才有可能被相对完整地传递到规控部分,并被模型学习出来。
3. XBrain 初步展现出多模态模型,特别是图像语义理解转化到智能驾驶决策的能力。比如识别路牌的能力,这绝不是单纯的文字识别(文字识别是个及其简单的任务),也不是识别文字后通过人工定义的映射规则转化成车控(这样灵活性极差,也不是真正的智能),而是识别文字,理解文字并判断文字语义是否对驾驶造成影响,造成具体怎样的影响。整个研判过程都是模型化的,智能化的。这样的能力不仅可以在不久的将来(或许就是三季度)让 XNGP 能清楚的知道“工作日 7:00 到 9:00 限行”意味着周末两天其实是全天都可以开的,也能让未来的它知道面对“前方临时封路,请走XX路绕行”时,需要自动重新规划导航路线行驶。
综上所述,端到端架构不是平地起高楼的空中楼阁,它依然是在传统框架基础上的提高,需要车企在过往的技术路线上有着足够深的积累。端到端极大地缓解了感知信息的损失,同时让三个模块能实现联合训练,因此其带来的效果提升是史诗级的,极有可能让辅助驾驶系统在大部分场景下的体验达到准 L4 级别。可以期待这样的蜕变在未来 12 到 18 个月内即将到来。