点击下方卡片,关注“自动驾驶之心”公众号
ADAS巨卷干货,即可获取
大家好我是清华大学袁天远,很荣幸能够在自动驾驶之心的平台上分享我们关于在线高精地图构建的新方案:StreamMapNet,文章已经授权自动驾驶之心原创,如果您希望做进一步转载,欢迎联系自动驾驶之心。
论文作者 | 袁天远
编辑 | 自动驾驶之心
很荣幸能够在自动驾驶之心的平台上分享我们关于在线高精地图构建的新方案——StreamMapNet,更多详细信息可查看我们的论文:https://arxiv.org/abs/2308.12570
![88b1c2dc3e257f48008b2d883aab9212.png](https://img-blog.csdnimg.cn/img_convert/88b1c2dc3e257f48008b2d883aab9212.png)
论文一览
高精(HD)地图对于自动驾驶系统的安全至关重要。现有技术利用相机图像和车载传感器生成矢量化高精度地图,但受限于仅依赖单帧输入。因为缺乏时序信息,这种方法限制了它们在遮挡等复杂场景中的性能。此外,当需要感知的范围更大时,它们的性能会下降。
为此我们提出了StreamMapNet,这是一种新的在线建图方法,适用于对视频进行长序列时序建模。StreamMapNet采用多点注意力方法并利用时序信息,提高了大范围局部高精地图的构建稳定性,突破了现有方法的局限性。
此外,我们重新审查了Argoverse2和nuScenes数据集,揭示了当前评估方法中的缺陷。实验结果证明,StreamMapNet在所有设置下明显优于现有方法,同时保持每秒14.2帧的在线推理速度。
论文链接:https://arxiv.org/abs/2308.12570
1. 方法提出
早期地图学习语义方法将任务视为BEV空间中的分割问题(HDMapNet、Lift-Splat-Shoot、Roddick和Cipolla)。但是,这些方法生成的栅格化地图缺乏实例的概念,使其不适合需要矢量化地图的下游任务,如轨迹预测或规划(VectorNet、LaneGCN)。最近的方法,如VectorMapNet和MapTR,采用受DETR启发的transformer解码器,使用层次查询在端到端矢量化局部HD地图构建方面取得了不错的结果。
尽管如此,这些方法面临两个挑战:
(1)感知范围小:这些方法在构建HD地图方面受限于相对较小的60×30米感知范围,这对自动驾驶场景不实用。当尝试扩展到100×50米时,它们的性能会显著下降。
(2)未能有效利用时序信息:这些方法仅利用单帧输入,未能利用时序信息。因此,这些方法容易受到自动驾驶场景中频繁出现的遮挡、大十字路口和极端相机曝光等具有挑战性的环境条件的影响。
此外,不同时间戳的地图之间的时序不一致性对运动规划模块极具挑战性,因为它为自动驾驶系统创造了一个不断变化的世界。为了解决这些问题,我们提出了StreamMapNet,一种端到端在线方法,通过时序融合策略利用视频构建时间一致的高质量矢量化地图,感知范围更广。
具体来说,我们将地图构建任务视为检测问题。StreamMapNet采用编码器-解码器架构:一个通用的BEV编码器接收来自多视图图像的特征,和一个利用多点注意力进行解码的DETR类解码器用于解码地图元素实例。在细节上,为每个地图元素分配一个对象查询。与典型的物体检测场景不同,地图元素通常具有不规则和长的形状,需要长注意力建模,而传统的可变形注意力无法有效感知。为了实现更大的感知范围,StreamMapNet进一步引入了一种称为“多点注意力”的新方法,可以有效捕捉更长时序的注意力,同时保持计算效率。
并且StreamMapNet采用流式策略进行时序融合。与把多帧堆叠在一起不同,我们的方法对单帧进行处理,同时在时间上传播隐藏状态以保留时序信息,如图1所示。与堆叠策略相比,流式策略具有两个关键优点:
(1)它有利于更长的时序关联,因为传播的隐藏状态编码了所有历史信息;
(2)与堆叠策略相比,它最大程度地减少了内存和耗时,后者随着堆叠帧数的增加线性内存消耗和计算资源。StreamMapNet传播的隐藏状态包含BEV特征和优化的对象查询。我们为每个组件设计了一个专用的时序融合模块。
![5ed83d7937d727cd1bee03a008263bae.png](https://img-blog.csdnimg.cn/img_convert/5ed83d7937d727cd1bee03a008263bae.png)
最后,我们仔细清洗了nuScenes数据集。nuScenes中存在重大的公平问题,其训练-验证集划分存在重叠。具体来说,验证集有84%以上也出现在训练集中,这可能会导致过度拟合。我们在Argoverse2数据集中也发现了类似的问题。为了应对这一点,我们为这两个数据集提出了新的不重叠的训练集和验证集划分,旨在为未来的研究建立一个更公平的基准。为了确保公平的比较,我们在每个数据集的原始和新划分上进行了广泛的实验。定量结果证明了我们的方法在所有实验设置下的性能优势,超过了所有现有的最先进方法。
2. 相关技术
2.1. 在线矢量化局部HD地图构建
最近,利用车载传感器构建矢量化局部HD地图的研究受到了极大关注。HDMapNet 最初生成鸟瞰视角(BEV)语义分割,然后经过一系列启发式和耗时较大的后处理步骤生成矢量化地图实例。VectorMapNet是第一个引入transformer的端到端模型。它采用DETR 解码器检测地图要素,然后用自回归transformer进行细化。然而,自回归模型需要长时间的训练,并导致推理速度降低。MapTR采用一阶段transformer方法,使用层次查询解码地图要素。然而,当扩展到更宽的感知范围时,其性能会受到大量查询之间复杂关联的影响。BeMapNet利用贝塞尔曲线和手工设计的规则来建模地图要素。
2.2. BEV感知
BEV感知技术在3D目标检测和BEV分割任务中得到了广泛研究。Lift-Splat-Shoot 提出使用逐像素预测的深度将图像特征提升到3D空间。BEVFormer 采用可变形注意力操作,使用可学习的BEV查询来聚合图像特征。SimpleBEV使用透视构建的变体从2D图像对预定义的BEV锚点进行特征采样。
2.3. 视觉3D目标检测的时序建模
直接从单帧视觉图像中建模3D空间非常具有挑战性。最近的基于视觉的3D目标检测进展探索利用时序信息来增强感知结果。一些方法(BEVDet4D,BEVFormer v2)采用堆叠策略,其中多个历史帧或特征被堆叠在一起并在单次正向传递中一起处理。但是,这种策略在训练和推理速度上产生了显著的计算和内存成本,这些成本与堆叠帧数呈线性关系,从而减少了训练和推理速度,同时消耗了大量GPU内存。因此,堆叠的帧数通常是有限的,导致只进行短时序融合。相比之下,近期的方法包括VideoBEV 、StreamPETR 和Sparse4D v2引入了流式融合策略。这种策略将图像序列视为流式数据,并单独处理每一帧,同时利用从前一帧传播的记忆特征。与堆叠策略相比,流式策略在节省GPU内存和减少延迟的同时实现更长的时序关联。VideoBEV 将BEV特征作为记忆特征进行传播。而Sparse4D v2,传递对象查询作为记忆特征。
3. 方法详解
3.1. 整体架构
StreamMapNet由自动驾驶车辆收集的环视图像序列,以构建局部HD地图。这些地图表示为一组矢量化实例,每个实例由一组点的参数化的类标签和多边形组成。
如图所示,StreamMapNet包含三个主要组件:一个通用的图像backbone配备BEV编码器用于BEV特征提取,一个使用多点注意力的transformer解码器用于生成预测,和一个内存缓冲区来存储传播的记忆特征。
![03d893d6fa6261f6a87a4a33a159d0d7.png](https://img-blog.csdnimg.cn/img_convert/03d893d6fa6261f6a87a4a33a159d0d7.png)
3.2. BEV特征编码器
首先,使用一个共享的CNN图像backbone从多视图图像中提取特征。随后,这些特征被特征金字塔网络聚合和处理。最后,应用BEV特征提取器将特征提升到BEV空间以获得BEV特征。
3.3. 解码器transformer
尽管DETR transformer解码器在检测模型(BEVFormer)中已经显示出强大的潜力,但将其应用于HD地图构建并非一蹴而就,因为两项任务之间的本质差异。StreamMapNet包含设计解码器的两个关键要素。
查询设计。我们的方法为每个地图实例分配一个查询,可以是一个完整的人行横道或连续的道路边界,总共个查询。从概念上讲,每个查询同时编码地图元素实例的语义和几何信息,因此在自注意力操作期间增强全局场景理解。在训练中的二分匹配中,每个查询匹配一个真实实例或背景类。在解码阶段,每个查询通过多层感知器(MLP)生成一个分类结果和个点坐标。
![7fe45f56337ee280dc4c5d9f4a5b9dc9.png](https://img-blog.csdnimg.cn/img_convert/7fe45f56337ee280dc4c5d9f4a5b9dc9.png)
多点注意力。为适应查询设计,我们用我们提出的多点注意力替换了传统的可变形DETR设计在交叉注意力操作中,如图所示。在目标检测中,目标通常是局部的,在BEV空间中占据一个靠近其中心的小区域。传统的可变形DETR为每个查询分配一个参考点,作为从构建的BEV特征收集特征的锚点。在每个transformer层中,这个参考点通过预测相对于其前一个位置的残差偏移来调整向对象中心。为简洁起见,我们在下面给出第层的公式,省略了自注意力和前馈网络组件:
![6943cd1ed6005059e668c7c3a605a0bc.png](https://img-blog.csdnimg.cn/img_convert/6943cd1ed6005059e668c7c3a605a0bc.png)
这里,,,表示使用作为查询在上的位置收集特征的可变形注意力操作。表示采样偏移,表示每个查询的采样偏移数,表示采样权重,表示参考点,表示对象中心回归分支。下标表示第层,上标表示第个元素。
然而,地图元素可能显示出高度不规则和拉长的形状,在BEV空间中是非局部的。因此,我们的方法使用前一层预测的个点,而不是目标中心,作为当前层的参考点。这种方法在BEV空间中允许长范围注意力,同时保持低复杂度:O(N_p),相比之下全局注意力为O(HW)。我们为所有层使用共享的作为回归分支来预测绝对坐标,而不是残差偏移。那么第i$层可以表示为:
![b533465e8ca58be5d0c79a870556324a.png](https://img-blog.csdnimg.cn/img_convert/b533465e8ca58be5d0c79a870556324a.png)
请注意,在此上下文中,表示第层预测多边形上的第个点的坐标。
3.4. 时序融合
本节描述了两个时序融合模块,用于将时序信息从记忆特征集成到当前帧中:查询传播和BEV融合。
查询传播。在地图构建场景中,所有地图实例都是静态的,这意味着当前帧中的实例可能会持续到后续帧中。这激励我们传播置信度分数最高的个查询到下一帧,为位置提供有价值的先验知识,并在所有历史帧中保留时序特征。鉴于采用自车坐标,这些传播的查询在利用之前必须进行变换。因此使用具有残差连接的MLP来进行变换。
![d3a991bf5bdbbc94ada275aa1b81cac3.png](https://img-blog.csdnimg.cn/img_convert/d3a991bf5bdbbc94ada275aa1b81cac3.png)
这里,表示两个帧之间的坐标系统的标准变换矩阵。我们还将预测的点多边形转换到新的坐标系,作为传播查询的初始参考点。
![815fb82bcae80e44f51adf31476f1e0b.png](https://img-blog.csdnimg.cn/img_convert/815fb82bcae80e44f51adf31476f1e0b.png)
![858382978c6a9a58004a84c1fbe3ff7a.png](https://img-blog.csdnimg.cn/img_convert/858382978c6a9a58004a84c1fbe3ff7a.png)
如图所示,传播的查询与解码器的第一个transformer层中的Top个查询concat在一起,组成一个新的查询集。我们添加了一个辅助变换损失来辅助学习:
![b7ef8489907fdf1f5c363d96c9097c76.png](https://img-blog.csdnimg.cn/img_convert/b7ef8489907fdf1f5c363d96c9097c76.png)
![4bf57132d230dbd1d32b407470205ec2.png](https://img-blog.csdnimg.cn/img_convert/4bf57132d230dbd1d32b407470205ec2.png)
BEV融合。虽然查询传播在稀疏查询上进行时序关联,但密集的BEV特征也可以从历史特征中受益。如图所示,我们基于自车的位姿递归传播BEV特征并对其进行转换。受神经地图先验的启发,我们采用门控循环单元来融合这些BEV特征。为确保训练稳定性,我们在最后一步引入了层标准化操作:
![8fc044df007850f25b106cbe5b7b027e.png](https://img-blog.csdnimg.cn/img_convert/8fc044df007850f25b106cbe5b7b027e.png)
3.5. 匹配损失和训练损失
我们的模型采用端到端的训练方法。使用二分匹配将预测的地图实例与其对应的真实实例进行配对。预测实例表示为。在此上下文中,我们稍微修改符号以表示第个查询的预测多边形,与方程中略有不同。多边形匹配损失定义如下:
![994b3dd9240dd42a67ebb69de499bbdb.png](https://img-blog.csdnimg.cn/img_convert/994b3dd9240dd42a67ebb69de499bbdb.png)
在这种情况下,表示的第个点在这里,MapTR引入的排列组表示为。对于分类匹配损失,我们使用Focal Loss。然后最终匹配损失表达为:
![9add0375a27c3477f43b6dfe11980940.png](https://img-blog.csdnimg.cn/img_convert/9add0375a27c3477f43b6dfe11980940.png)
尽管在方程12中给出了辅助损失,但训练损失反映了匹配损失的结构,定义为:
![8e80f708bcfd1770216e2ee7b734b26f.png](https://img-blog.csdnimg.cn/img_convert/8e80f708bcfd1770216e2ee7b734b26f.png)
4. 实验结果
4.1. 对数据集的审视
NuScenes作为主流的自动驾驶研究基准数据集,提供了约1000个场景,包括六个同步相机和精确的自车位姿。大多数在线HD地图构建模型在这个数据集上测试他们的性能。但是,数据集划分用于目标检测任务,在地图构建方面存在不足。我们发现训练和验证集之间有超过84%的重叠。这种重叠对于目标检测来说可能不是问题,鉴于不同遍历中目标的显著变异。然而,地图本质上保持不变,这意味着模型可以简单地从训练集中记忆位置-高精地图对,并在验证集上表现异常良好。但是,这样的模型将完全无法推广到新场景。这显然与在线建图的本质相矛盾:目标是开发可以推广到未见过的环境并适应潜在地图更改的模型,而不是简单地记忆训练集。
在Argoverse2数据集中检测到了类似的问题,其中1000个场景中有54%的验证和训练数据重叠。为了解决这个问题,我们为这两个数据集使用了最小化重叠并确保位置、对象和天气条件分布平衡的新的训练/验证划分。我们采用Roddick和Cipolla的划分方案进行NuScenes划分,并为Argoverse2引入了一个新的700/150训练/验证场景划分。这两个划分将在代码中发布。值得注意的是,当我们讨论一个特定划分上的结果时,我们指的是在该划分的训练集上训练并在其验证集上评估的模型。虽然我们主要比较这些新划分上的性能,但我们也在原始划分上呈现结果,以便与现有方法进行全面和公平的比较。
4.2. 实现细节
流式训练。我们采用流式训练策略进行时序融合,如图1所示。记忆特征的梯度不向前一帧反向传播。对于每个训练序列,我们在每个训练epochs开始时随机将其划分为2段,以培养更多样化的数据序列。在推理期间,我们使用整个序列。为稳定流式训练,我们在前4个epochs使用单帧输入进行训练。
4.3. 指标
与现有工作一致,我们考虑三种类型的地图要素:人行横道、车道线和道路边界。我们将感知范围扩大到前后50米,左右25米,与3D目标检测任务的范围一致。同时,我们也提供小范围(前后30米,左右15米)的感知结果。
4.4. 与基线的比较
我们基于官方代码库实现了VectorMapNet和MapTR,仅更改感知范围和训练-验证划分。根据RTX3090 GPU的内存调整了VectorMapNet的输入图像大小。对于MapTR,我们使用BEVFormer作为BEV特征提取器,以确保与我们的模型进行公平比较。
4.4.1. 在Argoverse2数据集上的性能
Argoverse2数据集原本以10Hz的帧率提供图像帧。
![9b611af2d64f1fbb5669da6eadf5aa9f.png](https://img-blog.csdnimg.cn/img_convert/9b611af2d64f1fbb5669da6eadf5aa9f.png)
表1. 在新的Argoverse2划分上,30米和50米感知范围下,各种方法的性能比较。StreamMapNet明显优于其他方法在所有类别中,展示出更好的鲁棒性和更大感知范围。
![c90b769a339f1ce9e6a91a3628526702.png](https://img-blog.csdnimg.cn/img_convert/c90b769a339f1ce9e6a91a3628526702.png)
表2. 在新的NuScenes划分上,30米和50米感知范围下,与基线方法的性能比较。SteamMapNet优于现有方法。尽管与Argoverse2新划分上的结果相比,StreamMapNet表现出更好的性能,但所有方法相对于Argoverse2新划分的结果出现了性能下降。
![152239efca593dae077d8fc7ab3ad67b.png](https://img-blog.csdnimg.cn/img_convert/152239efca593dae077d8fc7ab3ad67b.png)
表3展示了在原始训练/验证划分上的50米范围的性能结果,以进行全面的比较。StreamMapNet以至少10.2 mAP的显著优势超过其他方法。与新划分的结果(表1)相比,在原始划分上可以发现显著的性能差距,这充分证实了原始划分的过拟合问题不容忽视。
4.4.2. 在NuScenes数据集上的性能
新划分。表2比较了在新的NuScenes划分上30米和50米感知范围的性能。我们的方法显示了可观的提升,在30米范围上超过其他方法13.0 mAP,在50米范围上超过8.2 mAP。
与Argoverse2数据集的结果(表1)相比,所有方法的性能出现下降。我们把这归因于两个主要原因:(1) Argoverse2数据集提供来自更多相机(7个)、更高分辨率(1550×2048)的图像,而NuScenes只从6个相机提供900×1600分辨率的图像。Argoverse2中的相机位于更高的视点,因此提供更长的视野范围。(2) Argoverse2数据集包含来自六个不同城市的数据,训练数据更加丰富多样,而NuScenes只有两个城市。尽管存在这些挑战,但NuScenes仍然是一个宝贵的基准,用于评估在线地图构建任务。
![347596532f950bf063a109cfba939d91.png](https://img-blog.csdnimg.cn/img_convert/347596532f950bf063a109cfba939d91.png)
表4. 在原始NuScenes划分上的30米范围的性能比较,这是评估在线地图构建任务的广泛使用的基准。StreamMapNet优于现有方法。
原始划分。现有大多数方法主要在原始NuScenes划分上使用30米感知范围评估其结果。尽管这种设置倾向于过拟合,但我们提供了StreamMapNet在其上的性能与这些方法的比较,以确保全面分析。如表4所示,即使训练周期更少或相等,StreamMapNet也优于现有方法。
4.5. 消融研究
![5896ebb897a4ab01550495b580b39d41.png](https://img-blog.csdnimg.cn/img_convert/5896ebb897a4ab01550495b580b39d41.png)
表5. 消融实验。从单帧基线模型到完整模型。每项修改都有助于性能提升。
4.6. 定性分析
![70053dcf0d8447c94ccc7491d2585441.png](https://img-blog.csdnimg.cn/img_convert/70053dcf0d8447c94ccc7491d2585441.png)
图6. 我们比较了具有和不具有时序信息的模型在遮挡场景中的表现。在t时刻,十字路口被一辆白色卡车遮挡(用橙色圆圈标出)。具有时序信息的模型成功构建了道路结构,而单帧模型则不足以做到这一点。在HD地图中,绿线表示道路边界,红线表示车道分界线,蓝线表示人行横道。
5. 结论
本文提出了StreamMapNet,这是一个端到端的、在线构建矢量化本地HD地图的模型。通过利用时序信息,我们的方法提高了更大范围局部高精地图构建的稳定性。更重要的是,我们深入研究了NuScenes和Argoverse2数据集目前的评估方法,发现训练/验证集划分存在严重的公平性问题。为此对这两个数据集提出了新的非重叠划分方法。实验结果证实了我们的方法在所有实验设置下的具有卓越性能,超过了所有现有的最先进方法。
投稿作者为『自动驾驶之心知识星球』特邀嘉宾,如果您希望分享到自动驾驶之心平台,欢迎联系我们!
① 全网独家视频课程
BEV感知、毫米波雷达视觉融合、多传感器标定、多传感器融合、多模态3D目标检测、点云3D目标检测、目标跟踪、Occupancy、cuda与TensorRT模型部署、协同感知、语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码学习)
![fe38e211e17c272a01e62947064f5c4a.png](https://img-blog.csdnimg.cn/img_convert/fe38e211e17c272a01e62947064f5c4a.png)
② 国内首个自动驾驶学习社区
近2000人的交流社区,涉及30+自动驾驶技术栈学习路线,想要了解更多自动驾驶感知(2D检测、分割、2D/3D车道线、BEV感知、3D目标检测、Occupancy、多传感器融合、多传感器标定、目标跟踪、光流估计)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频,期待交流!
![a7a184d7044b103c37d919ab662e5328.png](https://img-blog.csdnimg.cn/img_convert/a7a184d7044b103c37d919ab662e5328.png)
③【自动驾驶之心】技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多模态感知、Occupancy、多传感器融合、transformer、大模型、点云处理、端到端自动驾驶、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、产品经理、硬件配置、AI求职交流等方向。扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)
④【自动驾驶之心】平台矩阵,欢迎联系我们!