原文地址: 自动驾驶技术革命: 从 SLAM+DL 到 BEV+Transformer(1/2) – maadaa 马达智数 (madacode.com)
随着人工智能技术的不断发展,自动驾驶越来越多地出现在我们的视野中,智能化和电动化已成为汽车的主旋律。无论是从研究的角度还是工程的角度,它都像是一个巨大的宝藏,正等待着我们去探索。本文将介绍这一技术的最新进展。
1、自动驾驶的典型框架
图 1 显示了自动驾驶的典型框架,其中最重要的任务是场景理解任务,我们在文章中称之为感知任务,它正在不断突破性能的上限。为了帮助控制系统理解车辆周围的环境,自动驾驶系统使用了多种感知技术,其中最重要的是 SLAM(同步定位与映射)和 BEV(鸟瞰)技术。这些技术可以帮助车辆了解自身位置,探测周围障碍物,了解障碍物的方位和距离,以及它们是静止的还是移动的,为后续的驾驶决策提供必要的信息。
2、SLAM+DL : 第一代自动驾驶技术
2.1 SLAM+DL的简单介绍
第一代自动驾驶感知技术将 SLAM 算法(即单摄像头的时间序列)与深度学习技术相结合。其任务特征,如物体检测和语义分割任务,需要在与输入图像相同的坐标系中进行估计。从图 2 中可以看出,唯一的例外是摄像头感知,它发生在二维图像的透视空间中。然而,二维检测需要大量的传感器融合人工规则才能升级到三维,例如使用雷达或激光雷达等传感器进行三维测量。因此,传统的感知堆栈通常需要在与车载摄像头图像相同的空间内进行处理。要将二维信息升级为三维定位,下一步的预测和规划通常需要依靠多传感器融合,例如借助毫米波雷达或激光雷达等有源传感器。
2.2 SLAM+DL的挑战
然而,上述基于SLAM+DL的传统自动驾驶技术正暴露出更多的技术难题:
1. 感知模块在自动驾驶系统中处于最上游的位置,尤其是当传感器的种类和数量大幅增加时,如何将连续输入的多模态、不同视角的数据进行融合,并实时输出下游所需的一系列任务结果,成为自动驾驶的核心难题。
2. 感知环节往往会消耗车辆的大部分计算能力。在感知过程中,系统需要融合不同视角摄像头的视觉数据以及毫米波雷达、激光雷达等传感器的数据,这给模型设计和工程实现带来了挑战。在传统的融合后处理方法中,每个传感器对应一个神经网络,无法充分发挥多传感器融合的优势,而且计算量大、耗时长。此外,如果多个任务简单地共享一个骨干网络,很容易导致每个任务难以同时获得优异的性能,如图 3 所示。
3、BEV+Transformer : 第二代自动驾驶技术
3.1 BEV简介
基于多个摄像头甚至不同传感器的 BEV(鸟瞰图)模型可以被视为解决上述问题的潜在技术方案。我们可以称之为感知 2.0 时代。BEV 以鸟瞰视角呈现车辆信息,是自动驾驶系统中跨摄像头和多模态融合的体现。其核心思想是将传统的二维图像感知转化为三维感知。对于 BEV 感知来说,关键在于将二维图像作为输入并输出三维框架。如何在多摄像头视角下优雅地获得最佳特征表达是一个难题。
目前,基于鸟瞰视角下多视角相机的三维物体检测感知(Bird’s-eye-view Perception, BEV Perception)正受到越来越多的关注。如图 4 所示,在 BEV 下,统一和描述不同视角的信息是很自然的,这为后续规划和控制模块的任务提供了便利。此外,BEV 下的物体在二维视角下不存在比例和遮挡问题,有助于提高检测性能。BEV 模型还有助于提高感知融合的性能,并通过统一的模型实现从纯视觉感知到多传感器融合解决方案的逻辑一致性,从而降低额外的开发成本。
3.2 BEV 技术方法
目前,BEV(鸟瞰图)研究主要基于深度学习方法。根据BEV特征信息的组织方式,主流方法可分为不同的方法。
3.2.1 Bottom-Up vs. Top-Down 自下而上与自上而下
3.2.1.1自下而上法:
自下而上法采用从二维到三维的方法。
首先,在二维视图中估算每个像素的深度,然后通过外在和内在参数将图像投影到 BEV 空间。
然后,通过多视图融合生成 BEV 特征。
该方法的早期代表作是 LSS(Lift、Splat、Shoot)[3],如图 5 所示,它构建了一个简单有效的处理流程:
将摄像机拍摄的 2D 照片投射到 3D 场景中、
然后将其扁平化,形成从上帝视角拍摄的 BEV 视图。
扁平化的场景符合人们对地图的直观感受。虽然已经获得了三维场景数据,但并不是完整的三维数据,因为从 BEV 的视角来看,无法获得三维高度信息,所以需要将其扁平化。自下而上法的核心步骤是
提升–对每幅相机图像进行图像平面下采样后,明确估计特征点的深度分布,得到包含图像特征的视锥(点云);
Splat–合并摄像机的内外部参数 将所有摄像机的视锥(点云)分布到 BEV 网格中,并对每个网格中的多个视锥点进行求和汇集计算,形成 BEV 特征图;
拍摄–使用任务头处理 BEV 特征图,输出感知结果。
LSS和BEVDepth[4]等作品基于LSS框架进行优化,是BEV算法的经典之作。
3.2.1.2 自顶向下法
另一种方法是自顶向下法,即从三维到二维。
它首先在 BEV 空间中初始化特征、
然后通过多层Transformer与每个图像特征交互,最终获得 BEV 特征。
Transformer 是一种基于注意力机制的神经网络模型,由谷歌于 2017 年提出。与传统的 RNN 和 CNN 不同,Transformer 通过注意力机制挖掘序列中不同元素之间的联系和关联,从而适应不同长度和结构的输入。Transformer 首先在自然语言处理(NLP)领域取得了巨大成功,随后被应用于计算机视觉(CV)任务,并取得了显著效果。
这种自上而下的方法逆转了 BEV 的构建过程,利用 Transformer 的全局感知能力从多个透视图像的特征中查询相应信息,并将这些信息融合和更新到 BEV 特征图中。特斯拉在其 FSD Beta 软件视觉感知模块中采用了这种自上而下的方法,并在特斯拉 AI-Day [6] 上展示了有关 BEVFormer [5] 的更多技术思想。
总之,自下而上和自上而下两种方法在 BEV 研究中都得到了广泛应用。自下而上的方法适用于早期的 BEV 研究,如 LSS 和 BEVDet [7] 等。自上而下法更倾向于使用 Transformer 等模型,利用全局感知能力,并在一些最新工作中取得了显著成果,如上海 AILab 团队的 BEVFormer。这两种方法各有优势,可以互为补充,为自动驾驶感知中的 BEV 发展提供丰富的技术选择。
3.2.2 纯相机还是传感器融合?
BEV 是自动驾驶领域一个庞大的算法家族,包括不同方向的算法选择。其中,以视觉感知为主的流派由特斯拉主导,核心算法建立在多个摄像头上。另一大流派是融合派,利用激光雷达、毫米波雷达和多个摄像头进行感知。很多 AD 公司都采用了融合式算法,谷歌的 Waymo 也是如此。从输入信号的角度看,BEV 可分为视觉流派和激光雷达流派。
3.2.2.1 BEV Camera
BEV Camera指的是基于多个视角的图像序列。算法需要将这些视角转换为 BEV 特征并对其进行感知,例如输出物体的三维检测帧或在俯视图下进行语义分割。与激光雷达相比,视觉感知具有更丰富的语义信息,但缺乏精确的深度测量。此外,BEV 的 DNN 模型需要在训练阶段指出照片中的每个物体是什么,并在标注数据上标注各种物体。如果遇到训练集中没有的物体类型,或者模型表现不佳,就会出现问题。
为了解决这个问题,占用网络(Occupancy Network)改变了感知策略,不再强调分类,而是关注道路上是否有障碍物。这种障碍物可以用三维积木来表示,有些地方称之为体素(voxel)。这种方法更为贴切,无论障碍物的具体类型如何,都能保证不撞击障碍物。
特斯拉正在经历从 BEV 技术(鸟瞰图,俯视图)到新技术–占用网络(占用网络)的过渡,从二维到三维。无论是二维还是三维,它们都致力于描述车辆周围空间的占用情况,但使用的表示方法不同。在二维 BEV 中,我们使用类似棋盘的方法来表达环境中的占用情况;而在三维占用网络中,它们使用类似积木的体素来表达。
具体来说,在 BEV 技术中,深度学习模型(DNN)通过概率来衡量不同位置的占用率,通常将物体分为两类:
1.一类是不经常变化的物体,如车辆可通过区域(Driveable)、路面(Road )、车道(Lane)、建筑物(Building)、植被(Foliage/Vegetation)、停车区域(Parking)、信号灯(Traffic Light)以及一些未分类的静态物体(Static),这些类别可以相互包含。
2.另一类是可变物体,即会移动的物体,如行人(Pedestrian)、汽车(Car)、卡车(Truck)、锥形交通标志/安全桶(Traffic Cone)等。
这种分类的目的是帮助自动驾驶系统进行后续的驾驶规划和控制。在BEV的感知阶段,算法根据物体出现在网格上的概率进行打分,并通过Softmax函数对概率进行归一化处理,最后选择概率最高的物体类型对应的网格作为占据网格的预测结果。
BEVFormer [5] 的流水线流程如下,也如图 6 所示:
1 使用 Backbone 和 Neck(使用 ResNet-101-DCN + FPN)从环视图像中提取多尺度特征。
2 编码器模块(包括时间自适应模块和空间交叉适应模块)使用本文提出的方法将环视图像特征转换为 BEV 特征。
3 与可变形 DETR 的解码器模块类似,完成三维物体检测的分类和定位任务。
4 采用匈牙利匹配算法定义正负样本,以 Focal Loss + L1 Loss 作为总损失,优化网络参数。
5 计算损失时使用 Focal Loss 分类损失和 L1 Loss 回归损失,然后执行反向传播并更新网络模型参数。
在算法创新方面,BEVFormer 采用 Transformer 和时间结构来聚合时空信息。它利用预定义的网格状 BEV 查询与空间/时间特征进行交互,以查找和聚合时空信息。这种方法能有效捕捉三维场景中物体的时空关系,并生成更强大的表征。这些创新使 BEVFormer 能够更好地处理环境中的物体检测和场景理解任务。
3.2.2.2 BEV Fusion
BEV 融合流派在自动驾驶领域的主要任务是融合来自各种传感器的数据,如图 7 所示,包括摄像头、激光雷达、GNSS(全球导航卫星系统)、里程表、高精度地图(HD-Map)、CAN 总线等。这种融合机制可以充分利用各个传感器的优势,提高自动驾驶系统对周围环境的感知和理解能力。除了摄像头,融合学派还关注激光雷达的数据。与毫米波雷达相比,激光雷达的数据质量更高,因此毫米波雷达逐渐退出了主要用途,在一些车辆中继续充当停车雷达。然而,毫米波雷达仍有其独特的价值,尤其是在自动驾驶领域技术日新月异的背景下。新算法可能会让毫米波雷达重新发挥作用。激光雷达的优势在于可以直接测量物体的距离,其精度远高于视觉推测的场景深度。激光雷达通常将测量结果转化为深度数据或点云,这两种数据形式的应用历史悠久,成熟的算法可以直接借用,从而减少了开发工作量。此外,激光雷达在夜间或恶劣天气条件下仍能正常工作,而相机在这种情况下可能会受到很大影响,导致无法准确感知周围环境。
总之,融合学派的目标是有效整合多传感器数据,使自动驾驶系统在各种复杂条件下获得更全面、更准确的环境感知,从而提高驾驶的安全性和可靠性。融合技术在自动驾驶领域发挥着关键作用。它融合了来自不同传感器的信息,使整个系统能更好地感知和理解周围环境,做出更准确的决策和计划[9]。