摘要
准确的定位能力是自动驾驶的基础。传统的视觉定位框架通过几何模型来解决语义地图匹配问题,几何模型依赖于复杂的参数调整,从而阻碍了大规模部署。本文提出了BEV定位器:一种使用多目相机图像的端到端视觉语义定位神经网络。具体地,视觉BEV(鸟瞰图)编码器提取多目图像并将其展平到BEV空间中。而语义地图特征在结构上嵌入为地图查询序列。然后,cross-model transformer将BEV特征和语义图查询关联起来。通过交叉注意力模块递归地查询自车的定位信息。最后,可以通过解码transformer输出来推断自车位姿。论文在大规模nuScenes和Qcraft数据集中评估了所提出的方法。实验结果表明,BEV定位器能够在多种场景下估计车辆位姿,有效地将来自多目图像和全局语义图的跨模型信息关联起来。实验报告了令人满意的精度,横向、纵向平移和航向角度的平均绝对误差分别为0.052m、0.135m和0.251°。
BEV定位器是第一个将视觉语义定位问题表述为端到端学习方案的工作。本研究的主要贡献如下:
- 提出了一种新的端到端架构,用于从多目图像和语义环境中进行视觉语义定位,允许对自车进行精确的位姿估计。数据驱动方式避免了几何优化策略设计和参数调整。
- 通过在跨模态特征关联、查询和编码解码中采用transformer结构。论文解决了语义地图元素和相机图像之间的跨模态匹配的关键挑战。
- 论文利用环视图像通过统一的BEV特征空间来增强图像的感知能力。验证了视觉语义定位问题作为基于BEV特征的大模型子任务的可行性。
- 通过在大型nuScene和QCraft数据集上的一系列实验,论文证明了模型的有效性,该模型在两个数据集上都达到了最先进的性能。进一步还通过消融实验验证了BEV网格设置、transformer编码器策略和位置嵌入策略的必要性和性能。
相关工作
A. 基于几何信息的定位
几何特征已被探索用于大规模视觉定位,并进行了许多尝试。传统的局部特征(例如,SIFT、SURF、ORB等)在从图像中的点和从运动中重建结构(SfM)模型点集的结构中创建2D-3D对应关系方面发挥着重要作用,然后使用匹配来检索相机位姿。例如,[19]使用随机森林来直接预测RGB-D图像和3D场景点之间的对应关系。[20] 提出了与SIFT特征和地理配准的3D点云的双向匹配。然而,由于受到具有变化或重复条件的环境的影响,局部特征的匹配精度急剧下降,特别是在长期定位中。虽然全局特征(例如,局部聚集描述子向量(VLAD)类特征[21]和DenseVLAD[22])在长期定位方面表现出令人印象深刻的性能和鲁棒性,但它们仍然需要针对每个场景的训练数据,可扩展性较差。
随着深度学习的发展,可学习的特征最近被集成到图像匹配任务中,而不是人工设计的特征。在局部检测特征提取过程之后应用可学习描述子(例如,组不变特征变换(GIFT)[25]、HardNet[23]和SOSNet[46]等)。此外,检测和描述步骤被替换为端到端网络,例如detect-then-describe(例如SuperPoint[26])、detect-and-describe(例如R2D2[27]、D2-Net[45])和describe-then-detect(例如DELF[28])策略。利用从基于CNN特征的图像匹配算法计算的滤波匹配,然后通过RANSAC或SfM计算定位信息,这以多级方式消耗计算。来自信息融合的定位被公式化为优化[48]或滤波问题[47],这依赖于平面假设、先验知识和多个参数,是一种耗时的多阶段方式。
论文提出的方法提出了一种端到端框架,该框架可以很容易地增强,以在不断变化的环境条件(例如,白天和夜晚,变化的照明等)下提取图像特征。它还结合了语义信息辅助方法,不像某些方法使用带有优化或滤波的多级过程来融合信息,这允许网络以简洁和环境不敏感的方式学习鲁棒和准确的定位。
B. 对环视图像进行交叉视图编码
由于对促进车辆的横向视野感知能力的巨大需求,许多方法已经尝试将环视图像编码到BEV特征空间中。在过去几年中,出现了四种主要类型的视图转换模块方案用于BEV感知。基于逆透视映射(IPM)的方法(例如,Cam2BEV[29]、VectorMapNet[44])通过平面假设将透视空间的特征逆映射到BEV空间。然而,基于IPM的BEV编码方法由于其严格的平面假设,通常用于车道检测或freespace估计。Lift Splat[14]首次提出了另一系列方法,该方法使用单目深度估计,将2D图像特征提升为每个相机的视锥特征,并在BEV上“Splat”。以下工作包括BEV Seg[43]、CaDDN[30]、FIERY[40]、BEVDet[31]和BEVDepth[37]等。虽然在不同方面考虑了如何改进,但由于使用了额外的网络估计深度,基于Lift Splat的方法消耗了大量内存,并限制了其他模块的大小,从而影响了整体性能。
自2020年以来,transformers[41]在计算机视觉中变得流行,基于注意力的transformers显示出对建模视图转换的吸引力,其中目标域中的每个位置都有相同的距离访问源域中的任何位置,并克服了CNN中卷积层有限的局部感受野。PYVA[32]是第一种提出交叉注意力解码器可用于视图变换以将图像特征提升到BEV空间的方法。BEVFormer[36]通过预定义的网格形BEV查询、空间交叉注意力(SCA)和时序self attention交互时空信息。尽管Transformer的数据依赖性使其更具表现力,但它们也很难训练。此外,在资源有限的嵌入式系统中为自动驾驶车辆部署transformers模块也是一项重大挑战。
MLP系列方法通过建模视图转换来学习透视空间和BEV空间之间的映射。VPN[35]将BEV的2D物理范围扩展为一维向量,然后进行全连接操作。但是它忽略了强大的几何先验,每个摄像机必须学习具有许多参数的网络,并且存在一定的过拟合风险。考虑到现有知识,PON[33]提出了一种语义贝叶斯占用网格框架,该框架跨图像尺度和时间戳累积多摄像机信息。多层感知器(MLP)方法采用数据驱动方法,并且可以很容易地在车辆上使用。本文的工作将基于MLP的BEV生成机制[34]集成到视觉语义定位模型中,以显示统一环视图像特征和连接BEV空间的有效性,这可以隐式地建模3D环境并显式地考虑相机的外参,因此可以容易地与语义信息融合,以进一步提高准确性和鲁棒性。
C. 基于语义图的定位
地图可以使用语义标签(交通灯、车道线、人行横道等)为机器人中的场景理解[49]和定位[50]、[51]等任务提供强有力的线索。可以通过匹配传感器输入和先前地图来计算车辆的位姿,[52]、[53]将地图表示为LiDAR强度,[54]通过匹配语义和几何信息,从图像分割和定位构建密集的语义图,[55],[56]遵循从粗到细的方式,首先使用交通标志目标检测来检索几何参考数据库中的,然后通过束调整来估计车辆的位置。VectorNet[57]的建议为本文的网络提供了灵感,使用矢量来编码语义图信息的不同特征,这实现了语义图的结构化表示,并可以适应卷积网络的输入。
D. 跨模型语义和视觉特征关联
基于语义地图的视觉定位任务通过组合当前视觉输入和地图信息来搜索最佳匹配的车辆位姿。通过数据关联和姿态估计过程进行语义图匹配的工作有利于以较小的存储消耗进行大规模部署,但重复关联局部和在线语义特征会带来错误和缺失匹配等问题。为了解决这个问题,后来的工作应用了滤波或优化算法来估计位姿,[62]使用粒子滤波器来更新匹配特征,[63]重新投影地图特征和最小化的线和点残差来优化位姿。然而,由于在不同距离和尺度上特征的感知能力不一致,这些方法需要先验知识和多个参数。
随着深度学习技术令人印象深刻的持续发展,Transformer已经研究了数据关联。与传统的基于几何特征的方法或基于语义图的方法相比,结合语义和视觉特征的基于学习的定位方法可以通过神经网络编码有用的特征,而无需提取多变的参数设计和多阶段工作。
论文使用transformer结构通过跨模型查询来关联视觉和语义特征,并进一步从查询特征中解码车辆位姿。在transformer网络的监督下,该模型可以以端到端的方式匹配语义和视觉信息。
方法
本节介绍BEV定位器的详细信息:一种端到端的视觉定位神经网络架构,用于基于环视图像和语义图定位车辆位姿。视觉语义定位问题可以公式化为:给定当前状态的环视多目图像(n表示摄像机的数量),自车的初始位姿(是本地导航坐标系下的2D位置和偏航角),以及来自在线地图数据库的相应语义地图(包括边界、分隔符、标记、极点等的位置和语义类型),确定自车的最佳位姿。具体来说,BEV定位器的输入是环视相机图像和投影到初始位姿的语义图。输出是初始位姿和预测位姿间的偏移位姿:
图2说明了所提出框架的模块化概述,包括视觉BEV编码器模块、语义图编码器模块、跨模型transformer模块和位姿解码器模块。视觉BEV编码器将环视图像的BEV特征转换为光栅化表示。语义图通过语义图编码器按实例编码为几个压缩向量(也称为地图查询)。基于BEV特征和地图查询,跨模型transformer模块计算self-attention和cross-attention,以查询出自车的位姿信息。基于查询出的信息,位姿解码器模块进一步推断自车位姿,其中地图特征与对应图像具有最佳匹配关系。
A. 视觉BEV编码器
视觉BEV编码器用于从环视视图中提取图像的特征,并投影到BEV特征空间,该特征空间由三个组件依次参数化,即图像特征提取器、视图transformer和BEV特征降维模块。图像特征提取器输入n个相机图像得到图像特征:
受VPN[35]的启发,论文通过视图transformer将提取的图像特征转换为BEV空间,该视图transformer包含视图关系模块(VRM)和视图融合模块(VFM):
经过特征提取、透视变换和外参变换,便获得了BEV空间中的密集图像。为了更好地适用于后续基于transformer的网络训练,随后应用ResNet网络来减少密集BEV图像的维度,其中特征被减少到较低分辨率的地图中:
受DETR[42]中transformer结构的启发,BEV特征图被展平成序列。此外,该模型通过位置嵌入来补充BEV特征,以保持空间顺序并增强感知能力。
B. 语义图编码器
语义地图,包括边界、分隔线、道路标记或标杆的元素,通常以线、多边形或点的形式表示。然而,这些元素缺乏统一的结构,因此不能直接输入神经网络。受VectorNet[57]的启发,论文将离散点的地图元素编码为结构化向量。具体而言,语义地图由一组道路元素组成。每个元素都可以表示为一组离散点。例如,道路分隔器由个点组成。根据VectorNet,可以如下表示向量:
为了形成固定大小的张量以将语义地图元素馈送到网络训练中,论文设计了一个3D结构来存储语义地图元素信息。第一维度大小是地图元素的最大数量。第二维度大小是向量的最大数量(每个地图元素中的离散点的数量)。第三个维度是表示向量属性。按照这种模式,论文将非结构化语义图加载到固定大小的结构化表示中。用0填充空白元素,并准备一个map mask来指示现有元素。
语义地图编码器将地图元素编码为地图查询。语义元素的每个节点首先通过共享MLP映射到高维空间。max pooling提取元素内部的全局信息。在实践中,重复MLP和max pooling操作以增加编码器容量。论文将全局信息表示为一个地图查询,它符合transformer结构中的概念。
C. 跨模型transformer模块
论文的跨模型transformer模块基于transformer的基本结构[41],它将地图查询和BEV特征关联起来,以查询自车位姿信息。该模块接受来自视觉BEV编码器模块和语义图编码器模块的输入,并包含编码器结构。该模块的整体架构如图2所示。
a) Transformer编码器:编码器将平坦BEV特征块序列作为输入。每个编码器层都包含一个multi-head self-attention和一个position-wise全连接的前馈网络(FFN),之后都包含层归一化(LN)[39]和残差连接(RC)[38]。
b) Transformer解码器:解码器使用大小为的嵌入来转换地图查询。最后,预测的查询嵌入由FFN独立解码。使用self-attention和cross-attention机制使模型全局映射permutation-invariant的地图查询和BEV特征之间的成对关系,同时嵌入局部位置信息以帮助查询。与检测任务中的传统Transformer解码器不同[42],BEV特征的位置信息将有助于定位任务。因此,位置嵌入也应用于cross-attention模块中的value输入。Transformer结构的这种轻微修改对最终精度至关重要,这将在消融研究中讨论。
D. 位姿解码器和位姿损失函数
根据Transformer查询出的信息,位姿解码器可以对自车的位姿进行解码。论文认为每个地图查询包含由相应地图元素提供的位姿信息或约束。因此,姿势解码器被设计为聚合来自每个地图查询的信息,并从全局角度预测位姿。论文采用共享MLP来进一步编码地图查询,并采用max pooling来聚合全局信息。max pooling将地图查询合并为全局置换不变向量。最终预测初始位姿的偏移得到估计位姿:
BEV定位器的监督是GT位姿偏移,可以手动生成或从更精确的定位模块中检索,损失函数如下:
原文首发微信公众号【自动驾驶之心】:一个专注自动驾驶与AI的社区(https://mp.weixin.qq.com/s/NK-0tfm_5KxmOfFHpK5mBA)