准确的目标检测和预测对于确保自动驾驶架构的安全性和效率至关重要。
预测物体轨迹和占用情况使得自动驾驶车辆能够预测运动并利用未来信息做出决策,从而增加其适应性并减少事故风险。
当前最先进(SOTA)的方法往往将检测、跟踪和预测阶段隔离,这可能导致由于阶段间累积的不准确性而导致显著的预测错误。
近年来,通过Bird's Eye View (BEV)变换改进了多摄像头感知系统的特征表示,推动了能够直接从车辆传感器数据中预测环境元素的端到端系统的开发。然而,这些系统通常具有高处理时间和大量参数,这为实际部署带来了挑战。
为了解决这些问题,本文介绍了一种基于简化范式的BEV实例预测架构,该架构仅依赖于实例分割和流预测。所提出的系统优先考虑速度,通过引入高效基于transformer的架构,与现有SOTA架构相比,减少了参数数量和推理时间。
此外,所提出的架构在PyTorch版本2.1中进行了优化,以提高性能。
代码和训练好的模型:https://github.com/miguelag99/Efficient-Instance-Prediction
I Introduction
如今,目标检测、跟踪和预测在自动驾驶中发挥着关键作用,这直接影响到自动驾驶车辆(SDV)的安全性和效率。目标检测和跟踪使得这些系统能够识别和分类重要环境要素,如行人和车辆。这对于车辆做出正确决策至关重要,避免碰撞,确保车内行人、行人和其他道路使用者的安全。另一方面,对物体轨迹和占用率的预测使得SDV能够预见运动并采取积极措施,提高它们适应动态环境的能力,减少事故风险。解决这个问题的一个最先进(SOTA)方法是独立进行检测、跟踪和预测,这样检测和跟踪专注于获取物体的过去信息,以进行未来预测阶段[1, 2]。在实际系统中使用这种方法可能导致预测阶段由于阶段间累积误差而出现显著错误。还应注意,这些运动预测系统的性能评估通常基于前几个阶段的实际 GT 值,导致不考虑实际系统中存在的噪声的指标,其中检测和跟踪并不完美。
近年来,通过鸟瞰视角(BEV)转换,"Lift, Splat, Shoot"等技术[3]成功提高了多摄像头感知系统的特征表示。这种表示保留了车辆周围环境的立体感和深度值,只舍弃了高度信息。因此,这导致了直接从车辆传感器数据中预测环境元素的端到端系统的演变。例如使用多摄像头设置提供的图像来生成场景实例的信息以及其未来运动和占用情况的信息。其他SOTA方法如[6]提出了一种简化的实例预测流水线,训练系统仅执行BEV实例分割和相应的流量预测。通常,这些端到端系统具有相对较高的处理时间和参数数量,如果在真实车辆中部署,可能会面临挑战。
针对这个问题,作者提出了一种多摄像头BEV实例预测架构,该架构使用了[6]中提出的简化范式和专门用于密集任务的注意力模块。所提出的架构旨在具有比其他SOTA架构更少的参数和推理时间。作者还适应了SOTA模型的实现,使其符合PyTorch 2.1版本,以进行公平的比较。
II Related Work
Camera 3D object detection
自动驾驶感知领域的新数据集的出现推动了不同图像检测架构的发展。KITTI [7] 奠定了基础,其3D检测基准仅关注于正前方立体相机的视野内物体。例如,FCOS3D [8] 和PGD [9] 将检测问题转化为不同3D特征(如大小、旋转或中心值)的中心多任务学习。另一方面,如SMOKE [10] 采用更简单的方法,提出在图像上直接检测边界框的中心,而不是直接在3D中进行检测。为了提高对场景的理解,不同的方法逐渐专注于从3D世界生成信息,而不仅仅是关注图像本身。PseudoLidar++ [11] 通过图像获得场景深度信息,并以LiDAR点云的形式表示,允许直接应用3D LiDAR传感架构。
检测架构已经演变,以应对复杂的自动驾驶数据集,如nuScenes [12]等。这种配置比单摄像头方法获取更丰富的360°环境数据,后者的前方摄像头视野(FOV)只能获取部分数据。DETR3D [13]使用2D的目标 Query 来获取多摄像头系统的相应特征,以生成目标检测。 "Lift, Splat, Shoot" [3]提出了一种使用几何和潜在深度分布来提取任意数量摄像头提取的特征的统一表示。这种方法在仅使用3D信息的摄像头视角表示的检测、跟踪和预测方面有了显著改进。BEVFormer [14]使用依赖自注意力和交叉注意力的架构来执行BEV转换,以处理时空信息。
Motion and Instance Prediction
在当前最先进的AI论文中,有两种主要范式用于预测车辆环境中物体的行为:a)基于跟踪物体的运动预测;b)基于SDV(Self-Driving Vehicle)传感器信息的实例预测。在第一种类型中,架构依赖于提供物体过去信息的检测和跟踪系统,这可能引入噪声到最终预测阶段。作者可以找到如[15]或[16]这样的架构,它们旨在在不使用场景地图等额外信息的情况下进行预测。这两种架构都使用了LSTM和多头自注意力来捕获 Agent 信息。CRATPred [2]通过引入GNN架构和自注意力来改进社会交互表示。其他方法如[1]或[17]则从环境映射中提取信息以提高物体预测。
最新的AI论文架构也正在朝着不依赖检测和跟踪的后期阶段的方法发展。Fast and Furious [18]使用单个激光雷达传感器的信息在一个网络中生成检测、跟踪和预测信息。Fiery [4]是最有影响力的方法之一,为实例预测架构树立了里程碑。该架构从一个具有六个单目相机的系统的视频中开始,在BEV中生成不同实例的分割及其各自的未来运动的可概率预测。这种方法被其他 Proposal 所采用,如BEVarse [5],它使用一个具有多个专用头的统一编码器,或PowerBEV [6]具有基于分割和流的一个简化的实例预测方法。最后这三个架构将提取的图像特征使用“Lift, Splat, Shoot”[3]方法转换为BEV,其中部分潜在空间用于在投影之前生成深度信息。另一方面,TBP-Former [19]提出一个PoseSync BEV Encoder块,使用交叉注意力将相机特征转换为BEV。
Transformer-based architectures for dense tasks
注意基础架构 [20] 自从引入以来,已经给深度学习带来了范式转变。虽然最初是打算与顺序数据一起使用,如自然语言处理(NLP)任务,但它们在计算机视觉领域的影响也非常显著。视觉Transformer(ViT) [21] 是该领域的先驱,将图像分割成相同大小的patch,然后通过添加另一个位置嵌入将其转换为相应的嵌入,以保持空间关系。Swin Transformer [22] 试图改进提取特征的表达,通过在架构的中间层将不同patch组合,在大图像上实现更好的性能。Pyramid Vision Transformer(PVT) [23] 实现了基于注意机制的pyramid布局的架构,类似于多个最先进的感知卷积架构中实现的那样。作者提出了一种称为空间减少注意(SRA)的方法,其主要区别在于在应用MHA块之前,将键(K)和值(V)的大小减少。SegFormer [24] 继续沿着这个方向发展,提出了一种不需要位置嵌入的多尺度分层编码器。不同尺度的特征在架构的最后部分合并,有助于实现更轻的模型。
III Architecture
作者的提出的架构在图2中详细介绍。该系统使用以下来自摄像头和GPS的输入数据:
(a)来自多摄像头系统的图像(
)。
(b)每个摄像头的内参
和外参
参数矩阵。
(c)车辆自身位置历史
,其中
是作为输入的过去帧的数量,
是车辆设置中的摄像头数量,
和
分别是图像尺寸。
所提出的架构遵循PowerBEV [6]所提出的范式。该模型旨在为每个输入序列生成实例分割
和反向流值
仅生成BEV映射。
是未来预测的帧数,
是输出类别数,
是BEV映射的尺寸。请注意,反向流值定义了当前帧T中每个实例的像素相对于前一个帧T-1中的目标中心的位移。
Feature extraction and BEV projection
网络的第一阶段负责提取不同摄像头的特征,生成潜在的深度分布,并将相应的投影应用于BEV。与其他实例预测方法(如Fiery[4]或PowerBEV[6])类似,作者遵循"Lift, Splat, Shoot"[3]提出的做法,以实现环境特征的统一表示。从车辆的每个摄像头中,作者使用过去T_p帧加上当前帧,总共得到每个输入数据遍历Nc*(T_p+1)帧。
所有图像同时由单个EfficientNet-B4[25]处理,获得每个图像的特征图,其中深度信息有C_D个通道,环境特征有C_F个通道。每个具有C_F个通道的提取特征通过与EfficientNet生成的深度通道C_D的外层产品转换为BEV表示,得到BEV中每个实例的统一图F_{BEV}∈R^{(T_p+1)
C_BEV
H_BEV*W_BEV},其中所有摄像头的特征。
BEV图的大小(H_BEV,W_BEV)由X和Y轴(在摄像机坐标系中的X和Z)的分辨率和平移距离限制定义。具体而言,每个轴上的距离分为相等的部分,每个部分对应于BEV图上的特定位置。为了同时处理所有空间信息,需要将过去帧的特征转换为当前帧的车辆。使用车辆的自身位置,作者执行一个自身变形步骤,将过去BEV特征通过计算和应用帧间变换矩阵投影到当前通过计算和应用帧间变换矩阵投影到当前自身,实现当前自身对齐的统一表示,同时保持特征的尺寸和通道。在应用分割和 Stream 分支之前,特征图的信息重新组织,合并时间维度和空间维度。
Segmentation and flow branches
一旦作者成功地将所有摄像机的信息整合到特征图
中,作者引入了两条并行分支来处理所有的时空信息,生成分割和流量值。
在[6]中提出的架构使用每个分支中的U-Net模块来生成多尺度信息,这在这样的复杂环境中至关重要。作者的提出模型旨在减轻两个分支带来的计算影响,因此作者决定实现一个基于SegFormer[24]的架构,该架构高效地使用注意力来处理多尺度特征。在编码部分引入了五个下采样阶段,每个阶段将BEV特征的大小减少一半。所有编码器变换块的步长为2,由2层组成,且隐藏大小是输入的4倍。作者提出了架构的两个配置:完整版本和减小版本,以帮助缓解计算负载和参数数量。两个模型之间的主要区别在于多尺度特征的通道配置:完整版本为