点击下方卡片,关注“自动驾驶之心”公众号
ADAS巨卷干货,即可获取
点击进入→自动驾驶之心【SLAM】技术交流群
后台回复【BEV定位】获取本文论文!
摘要
准确的定位能力是自动驾驶的基础。传统的视觉定位框架通过几何模型来解决语义地图匹配问题,几何模型依赖于复杂的参数调整,从而阻碍了大规模部署。本文提出了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位姿偏移,可以手动生成或从更精确的定位模块中检索,损失函数如下:
实验和讨论
nuScenes数据集结果
NuScenes数据集包含城市地区的700个训练场景和150个测试场景,图像由6个环视摄像机拍摄。论文在nuScenes数据集上进行实验,以验证BEV定位器的有效性(用35个epoch训练)。
论文从地图界面中提取地图元素。元素类型包括道路边界、车道分隔线和人行横道。所有6个摄像机图像被组合以形成BEV特征。图4展示了定位过程。基于所提供的语义图、初始位姿和相机参数,可以将地图元素重投影到图像透视图。上面的图片显示了偏移位姿,下面的一行图片显示了BEV定位器预测的位姿。通过比较上面和下面的图片,可以观察到地图元素与相机视图中的元素一致,这表明自车位于正确位置,并验证了BEV定位器的有效性。
图5显示了BEV定位器的误差分布。误差曲线表明BEV定位器产生了出色的位姿精度。横向和纵向的位置误差分别小于20cm和60cm。这意味着在大多数情况下,横向和纵向的位置都受到地图元素的良好约束。此外,可以在1°误差下预测航向方向。通过调查,验证了BEV定位器在nuScenes数据集中的有效性。
Qcraft数据集结果
论文进一步使用Qcraft数据集进一步验证了BEV定位器,该数据集包含具有更清晰车道线和道路标记的城市道路和高速公路。语义地图由路缘石、车道分隔器、道路标记和交通灯杆组成。为了公平比较,从7个摄像头中选择了6个摄像头来形成BEV特征。所有训练参数都与nuScenes数据集中的参数相同。
类似地,论文在图6中展示了三个不同视图的重投影语义图。语义图用封闭多边形描述了道路标记,交通杆显示了与地面的接触点。还可以得出结论,BEV定位器成功地预测了Qcraft数据集场景中自车位姿的最佳位姿。结合地图元素的约束,网络可以正确预测车辆的位置和方向。
分段轨迹的误差曲线如图7所示。大多数横向和纵向误差在10和40厘米以下。与nuScenes数据集相比,BEV定位器在Qcraft数据集中提供了更高的精度,论文将其归因于更清晰的道路元素和更高的地图质量。接下来,将讨论定量分析和与其他方法的比较。
与其他方法比较
表I展示了BEV定位器与其他现有定位方法的比较。需要首先确认视觉定位工作涉及不同的硬件配置、场景和地图。因此,这里比较了不同方法的整体定位精度。
可以看出,BEV定位器在nuScenes数据集和Qcraft数据集上都具有最佳的位置精度。与其他基于多传感器融合输入的方法相比,论文的方法基于纯视觉输入。换句话说,论文的方法在视觉定位问题上取得了显著的性能。此外,由于BEV定位器只能在位姿偏移的监督下进行训练,这种端到端的方式显著简化了构建视觉语义定位系统的过程,而无需复杂的策略或参数微调。此外,由于transformer结构具有更强大的学习能力,允许进行大规模数据训练,因此BEV定位器有望部署到广泛的场景中。
论文现在研究了在实验结果和其他视觉语义定位方法中发现的横向误差小于纵向误差的原因。直观地说,语义元素、车道线、道路标记和灯杆同时提供横向约束,而纵向位置只能由灯杆或道路标记约束。纵向约束元件的数量通常小于横向约束元件的数目。此外,与相邻车道线相比,这些元素可能存在于更远的距离处。总之,纵向精度是横向精度无法比拟的。幸运的是,下游模块也需要较少的纵向定位精度,这在一定程度上弥补了这个问题。
消融实验
为了更好地理解框架中每个模块的有效性,论文进行了消融研究,以通过与Qcraft数据集的一系列比较实验进行验证。
a) 不同BEV栅格尺寸的有效性:研究不同BEV网格尺寸的影响,见表二,论文测试了不同BEV栅格尺寸对车辆定位性能的影响。可以观察到,较小的BEV网格大小有助于更高的位姿精度。这可以通过以下事实来解释:更高的分辨率允许更好地编码地图元素的位姿信息。然而,更高的分辨率也带来了计算负担,在计算时间和图形存储器方面都提出了挑战。
b) transformer编码器的有效性:表三显示了带或不带transformer编码器的BEV定位器的精度。没有编码器层,纵向误差和横向误差分别下降0.0789米和0.005米。论文假设self-attention在BEV网格之间进行信息交互。这将启用道路元素的全局场景感知。
c) transformer解码器中位置嵌入的有效性:表四评估了transformer解码器模块中不同transformer策略的影响。基于论文的实验,发现当采用常规transformer结构时,BEV定位器几乎不收敛,特别是在纵向上。该问题通过transformer解码器的轻微改变得以解决。论文在cross-attention操作中向value项添加位置嵌入。直观地说,每个地图查询都包含地图元素的语义信息和位置信息。通过transformer,地图查询意味着查询出其在BEV空间下的相对位置信息。因此,需要检索每个网格的位置信息(包含在位置嵌入中)作为值。这种微小的变化对BEV定位器的性能有很大的贡献。
讨论
总之通过上述实验评估了BEV定位器的可用性,从中可以得出结论,论文的方法在视觉语义定位方面达到了最先进的性能。根据结果,总结了以下发现:
论文证明了语义地图元素可以被编码为查询。利用transformer结构,可以从BEV特征空间中查询自车的位姿信息。验证了transformer在语义地图元素和视觉图像之间的跨模态匹配的有效性;
论文将视觉语义定位问题表述为端到端的学习任务。神经网络需要由位姿偏移产生的简单监督。简单地使用带有原始图像和语义图的车辆轨迹就足以生成BEV定位器的训练数据集;
论文在nuScene数据集和Qcraft数据集上验证了BEV-Locator的性能和准确性。与现有的视觉定位方法相比,BEV定位器仅使用时间戳中的图像即可实现最先进的性能。此外,由于BEV定位器是一种数据驱动方法,因此避免了几何优化策略设计和参数调整;
BEV定位器探索了视觉语义定位问题作为基于BEV特征的大模型的子任务的可行性。未来的工作旨在将BEV-Locator与其他感知子任务集成到大型统一BEV模型中。得益于BEV和transformer结构,论文假设BEV定位器有潜力应对大规模场景。
结论
论文提出了BEV定位器,这是一种基于地图编码、BEV特征和transformer的视觉语义定位系统的新设计,用于自车的直接位姿估计。引入的网络可以有效地对图像和语义图进行编码,并通过跨模型transformer结构进一步查询位姿信息。BEV-Locator可以按照端到端的数据驱动方式直接实现,无需复杂的优化策略或复杂的参数调整。论文的方法基于nuScenes数据集和Qcraft数据集实现了最先进的性能。证明了在BEV空间中估计自车姿态的有效性。这使得视觉语义定位成为基于BEV的自动驾驶汽车大型模型的子任务之一。
参考
[1] BEV-Locator: An End-to-end Visual Semantic Localization Network Using Multi-View Images
往期回顾
盘一盘!实时自动驾驶车辆定位技术都有哪些?(视觉/Lidar/多传感器数据融合)
【知识星球】日常干货分享
【自动驾驶之心】全栈技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多传感器融合、SLAM、光流估计、深度估计、轨迹预测、高精地图、规划控制、模型部署落地、自动驾驶仿真测试、硬件配置、AI求职交流等方向;
添加汽车人助理微信邀请入群
备注:学校/公司+方向+昵称
自动驾驶之心【知识星球】
想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D目标检测、多传感器融合、目标跟踪、光流估计、轨迹预测)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球(三天内无条件退款),日常分享论文+代码,这里汇聚行业和学术界大佬,前沿技术方向尽在掌握中,期待交流!