Press "Enter" to skip to content

在量产的自动驾驶中的BEV感知

Xpeng汽车的XNet配方

本篇博客是基于2023年CVPR在温哥华举办的端到端自动驾驶研讨会上的邀请演讲,“中国量产自动驾驶的实践”。

过去几年,电动汽车感知技术取得了长足的进步。它直接感知自动驾驶车辆周围的环境。BEV感知可以看作是一个端到端的感知系统,是实现端到端自动驾驶系统的重要一步。在这里,我们将端到端自动驾驶系统定义为完全可区分的管道,它以原始传感器数据作为输入,并产生高级驾驶计划或低级控制动作作为输出。

2023年CVPR自动驾驶研讨会|OpenDriveLab

我们很自豪地宣布,今年与我们的合作伙伴Vision-Centric一起推出了四项全新挑战…

opendrivelab.com

自动驾驶社区见证了采用端到端算法框架的方法迅速增长。我们将从第一原则上讨论端到端方法的必要性。然后,我们将回顾将BEV感知算法部署到量产车辆上的努力,以Xpeng的BEV感知架构XNet为例。最后,我们将集思广益地探讨BEV感知朝着完全端到端自动驾驶的未来发展。

端到端系统的必要性

在解决任何工程问题时,通常需要采用分而治之的方法快速找到实用的解决方案。这种策略涉及将大问题分解成较小的、相对明确的组件,可以独立解决。尽管这种方法有助于快速交付完整的产品,但它也增加了陷入局部最优解的风险。为了达到全局最优解,所有组件必须以端到端的方式一起进行优化。

Divide-and-conquer与End-to-end的性能增长曲线(作者制作的图表)

80-20规则强调了这样一个概念:只需用总工作量的20%就可以实现80%的期望表现。采用分而治之的方法的优点是可以在最小的工作量下快速开发。然而,缺点是这种方法往往会在80%的性能上达到性能极限。为了克服性能限制并摆脱局部最优解,开发人员必须一起优化某些组件,这是开发端到端解决方案的第一步。这个过程必须重复多次,一次次突破性能瓶颈,直到实现完全的端到端解决方案。最终的曲线可能采用一系列的S形曲线,直到近似全局最优解。一个朝着端到端解决方案的努力的例子是BEV感知算法的开发。

感知2.0:端到端感知

在传统的自动驾驶堆栈中,2D图像被馈送到感知模块生成2D结果。然后利用传感器融合来推理多个相机的2D结果并将它们提升到3D。随后,将得到的3D对象送到下游组件,如预测和规划。

BEV感知本质上是端到端感知(作者制作的图像)

然而,传感器融合步骤需要许多手工制定的规则来融合来自多个相机流的感知结果。每个相机只感知要观察的物体的一部分,因此组合获得的信息需要仔细调整融合逻辑。我们本质上是通过工程师的头脑进行反向传播。此外,开发和维护这些规则会产生一系列的复杂性,在复杂的城市环境中导致许多问题。

为了克服这个挑战,我们可以应用鸟瞰图(BEV)感知模型,这使我们能够直接在BEV空间中感知环境。BEV感知堆栈将两个独立组件合并为一个解决方案,从而消除了脆弱的人工逻辑。BEV感知本质上是一种端到端感知解决方案。这标志着迈向端到端自动驾驶系统的关键一步。

XPeng汽车的BEV感知堆栈:XNet

XPeng的BEV感知架构称为XNet。它最早是在2022年的XPeng 1024 Tech Day上公开介绍的。下图展示了XNet感知架构在车辆上的应用。中间的红色车辆代表自动驾驶汽车在绕环岛时的情景。周围的静态环境完全由车载感知检测,没有使用高精度地图。我们可以观察到XNet准确地检测到车辆周围的各种动态和静态物体。

XPeng AI团队在两年前(2021年初)开始尝试XNet架构,经历了多次迭代才到达当前的形式。我们使用卷积神经网络(CNN)骨干网络生成图像特征,而多相机特征通过变换器结构转换为BEV空间。具体来说,使用了交叉关注模块。来自多个过去帧的BEV特征然后与自我姿态进行空间和时间上的融合,以解码融合特征的动态和静态元素。

XNet结果和结构(作者制作的图表)

以视觉为中心的BEV感知架构提高了大规模部署自动驾驶解决方案的成本效益,减少了对更昂贵硬件组件的需求。精确的3D检测和速度展开了新的冗余维度,并减少了对LiDAR和雷达的依赖。此外,实时的3D感知环境减少了对高精度地图的依赖。这两种能力都对更可靠和经济的自动驾驶解决方案做出了重要贡献。

XNet的挑战

将这样的神经网络部署到生产车辆上面临着几个挑战。首先,需要数百万个多相机视频剪辑来训练XNet。这些剪辑涉及大约十亿个需要注释的对象。根据当前的注释效率,需要约 2,000人年的时间来进行注释。不幸的是,这意味着对于XPeng的大约1000人的内部注释团队,这样的任务需要大约两年的时间来完成,这是不可接受的。从模型训练的角度来看,使用单个机器训练这样的网络需要近一年的时间。此外,在NVIDIA Orin平台上没有任何优化的情况下部署这样的网络需要一个芯片的计算能力的122%

所有这些问题都存在挑战,我们必须解决这些问题,以成功训练和部署如此复杂和庞大的模型。

Autolabel

为了提高注释效率,我们开发了一个高效的自动标注系统。这个离线传感器融合堆栈可以提高效率达到45000倍,使我们能够在仅仅17天内完成需要200人年的注释任务。

Autolabel系统显著提高注释效率

上图是基于激光雷达的自动标注系统,我们还开发了一个只依赖于视觉传感器的系统。这使我们能够注释来自没有激光雷达的客户车队的视频剪辑。这是数据闭环的重要部分,有助于开发自我进化的感知系统。

大规模训练

我们从两个角度优化了XNet的训练流程。首先,我们应用混合精度训练和运算符优化技术,以简化单节点上的训练过程,将训练时间缩短了10倍。接下来,我们与阿里云合作,建立了一个具有600 PFLOPS计算能力的GPU集群,使我们能够将训练从单个机器扩展到多台机器。这进一步缩短了训练时间,虽然这个过程并不简单,因为我们需要仔细调整训练过程以实现近线性性能扩展。总体而言,我们将XNet的训练时间从276天缩短到了仅仅11个小时。请注意,随着我们向训练过程添加更多数据,训练时间自然会增加,需要额外的优化。因此,扩展优化仍然是一个持续而关键的工作。

针对XNet的大规模并行训练管道的优化(作者制作的图表)

Orin上的高效部署

我们注意到,如果没有任何优化,将XNet运行在Nvidia Orin芯片上需要使用芯片计算能力的122%。在分析开始显示的分析图表时,我们观察到变换器模块消耗了大部分运行时间。这是可以理解的,因为变换器模块在Orin芯片的初始设计阶段没有得到太多关注。因此,我们需要重新设计变换器模块和注意机制以支持Orin平台,使我们实现了3倍的加速。

Orin平台上基于变换器的XNet的极致优化(作者制作的图表)

为了进一步优化,我们开始通过剪枝来优化网络,结果获得了额外的2.6倍加速。最后,通过GPU和DLA之间的负载平衡,我们实现了进一步的1.7倍加速。

通过这些不同的优化技术,我们将XNet的GPU利用率从122%降低到仅9%。这使我们可以在Orin平台上探索新的架构可能性。

自我进化的数据引擎

通过实施XNet架构,我们现在可以启动数据驱动的迭代来提高模型的性能。为了实现这一点,我们首先识别汽车上的极端情况,然后部署可配置的触发器到客户车队以收集相关图像。随后,我们根据自然语言中的简短描述或图像本身从收集的数据中检索图像。通过这样做,我们利用最近大型语言模型的进展,以提高数据集的筛选和注释效率。

数据引擎有助于提高XNet性能(作者制作的图表)

通过XNet架构和数据引擎,我们创建了一个可扩展和自我进化的感知系统。

未来

Xpeng Highway NGP 2.0的最新版本统一了高速公路和城市驾驶方案,允许用户在不同的城市中放置标记,从开始到结束都拥有顺畅的体验。这种统一是由XNet实现的,为所有场景提供了统一的堆栈的坚实基础。最终目标是实现点对点的用户体验,实现端到端的自动驾驶。

为了使自动驾驶系统端到端可微分,另一个关键缺失的部分是基于机器学习的规划堆栈。基于学习的规划解决方案可以大致分为模仿学习或强化学习方法。最近大型语言模型(LLM)的进展也为这个重要课题的进展带来了巨大的潜力。以下Github存储库是端到端自动驾驶蓬勃发展领域相关工作的实时收集。

GitHub – OpenDriveLab/End-to-end-Autonomous-Driving: All you need for End-to-end Autonomous Driving

您需要的所有端到端自动驾驶。通过贡献OpenDriveLab/End-to-end-Autonomous-Driving发展…

github.com

要点

  • 分而治之可以使用20%的努力达到80%的性能。端到端方法旨在打破80%性能上限,代价可能更高。
  • XNet是一个端到端感知系统,是实现端到端全堆栈解决方案的关键步骤之一。根据80-20法则,需要进行大量的工程工作(80%)。
  • XNet需要大量的注释,因此需要自动注释,因为人工注释不可行。自动标注系统可以提高45000倍的效率。
  • 大规模训练需要在一台计算机上进行训练的优化,并从一台计算机扩展到多台计算机。
  • XNet在Nvidia Orin平台上的部署需要重新设计变换器模块。

本博客中的所有图表和视频均由作者制作。

参考文献

  • 关于在中国部署大规模生产自动驾驶面临的独特挑战,请参考以下链接。这也是CVPR 2023同期邀请演讲的一部分。

中国大规模生产自动驾驶的挑战

小鹏汽车的解决方案

小猪AI.com

  • Xpeng 1024 Tech Day 2022: https://www.youtube.com/watch?v=0dEoctcK09Q
Leave a Reply

Your email address will not be published. Required fields are marked *