作者 | 集智书童 编辑 | AI视界引擎
点击下方卡片,关注“自动驾驶之心”公众号
ADAS巨卷干货,即可获取
点击进入→自动驾驶之心【车道线检测】技术交流群
本文只做学术分享,如有侵权,联系删文
3D车道检测是自动驾驶中的一项基本但具有挑战性的任务。最近的进展主要依赖于结构化的3D替代方法,这些方法是从前视图图像特征和摄像机参数构建的。然而,Monocular图像中的深度歧义不可避免地导致了构建的替代特征图与原始图像之间的不对齐,对准确的车道检测构成了巨大挑战。
为了解决上述问题,作者提出了一种新颖的LATR模型,这是一个端到端的3D车道检测器,使用了3D感知的前视图特征,而不需要转换视图表示。具体来说,LATR通过基于Query,Key和Value对的交叉注意力来检测3D车道,这些Query,Key和Value对是使用作者的车道感知Query生成器和动态3D地面位置嵌入构建的。一方面,每个Query是基于2D车道感知特征生成的,并采用混合嵌入来增强车道信息。另一方面,3D空间信息是作为位置嵌入注入的,来自一个迭代更新的3D地平面。
LATR在合成的Apollo数据集和逼真的OpenLane数据集上均表现出色,远远超过以前的最先进方法(例如,在OpenLane上的F1得分提高了11.4个百分点)。
代码:https://github.com/JMoonr/LATR
1、简介
3D车道检测对于自动驾驶中的各种应用非常关键,例如轨迹规划和车道保持。尽管基于激光雷达的方法在其他3D感知任务中取得了显著进展,但最近在3D车道检测方面的进展更倾向于使用单目摄像头,因为与激光雷达相比,它具有可取之处的优势。除了低部署成本外,相机在感知范围方面比其他传感器具有更广泛的范围,并且可以生成具有丰富纹理的高分辨率图像,这对于检测细长和长跨度的车道至关重要。
由于缺乏深度信息,从单目图像中检测3D车道是具有挑战性的。一个直接的解决方案是根据2D分割结果和逐像素深度估计来重建3D车道布局,就像SALAD [47]中提出的那样。然而,这种方法需要高质量的深度数据进行训练,并且严重依赖于估计深度的精度。
另一种方法是CurveFormer,它使用多项式来建模前视图中的3D车道。虽然它避免了视图变换的不确定性,但其设计中采用的多项式形式限制了各种车道形状的灵活性。相比之下,目前主流方法更倾向于使用3D替代表示法。这些替代表示法是基于前视图图像特征和摄像机参数构建的,不依赖深度信息。由于车道固有地位于道路上,因此这些方法中的大多数都是通过将图像特征投影到鸟瞰图(BEV)中来构建3D替代表示法,通过逆透视映射(IPM)进行投影。
然而,IPM严格基于平坦地面的假设,因此在许多实际驾驶情况下(例如,上坡/下坡和颠簸),引入了3D替代表示法与原始图像之间的不对齐。这种不对齐,与扭曲相互交织在一起,不可避免地阻碍了道路结构的准确估计,危及驾驶安全。尽管已经有尝试通过使用可变注意力来更新BEV替代表示法以缓解此问题,但不对齐问题仍然不可避免。
基于上述观察,作者的目标是通过通过具有车道感知的Query直接从前视图中定位3D车道,而无需任何中间3D替代来改进3D车道检测。受到2D目标检测器DETR的启发,作者将车道检测流程简化为端到端的集合预测问题,形成了LAne detection TRansformer(LATR)。LATR使用具有车道感知的Query和动态3D地面位置嵌入从前视图图像中检测3D车道。作者设计了一种车道表示方案,用于描述车道Query,更好地捕获3D车道的特性。
此外,作者利用具有车道感知的特征来为Query提供丰富的语义和空间先验知识。由于纯粹的前视图特征缺乏对3D空间的认识,因此作者将来自假设的3D地面的
3D位置信息注入到前视图特征中。这个假设的地平面是作为一个水平网格初始化的,它会在监督下进行迭代优化,以适应GT情况。最后,具有车道感知的Query通过Transformer解码器与具有3D感知的特征相互作用,然后通过MLP生成3D车道预测。
主要贡献如下:
提出了LATR,这是一个基于Transformer的端到端3D车道检测框架。LATR通过直接从前视图检测3D车道,而不使用任何3D替代表示法,提供了高效性,并避免了先前方法中存在的特征不对齐问题。
引入了一种车道感知Query生成器,它使用动态提取的车道感知特征来初始化Query嵌入。此外,还提出了一种动态位置嵌入,用于将3D空间与2D图像相连,该嵌入来自一个根据监督进行迭代更新的构建的3D地面。
在OpenLane、Apollo和ONCE-3DLanes等基准数据集上进行了彻底的实验。LATR在F1得分方面大幅超过了以前的SoTA方法(在OpenLane上提高了11.4,在Apollo上提高了4.3,在ONCE-3DLanes上提高了6.76)。
2、本文方法
3D车道检测旨在预测图像中车道的3D位置。车道由一组3D点表示,表示为,其中是图像中的车道数量,表示第条车道。每条车道由一组点构成,其中是输出点集的预定类别数,表示类别。通常,被设置为预定义的纵向坐标 。
2.1. 总体架构
LATR的总体架构如图2所示。作者首先使用2D主干从输入图像中提取特征图。之后,作者使用Laneaware Query Generator模块生成具有车道感知的Query ,其中N表示车道的数量,每个车道由M个点表示。注意,(N×M)表示沿相应维度的扁平通道。随后,通过可变注意力机制,车道感知的Query Q与特征图X积极交互。
在可变注意力期间,作者提出了Dynamic 3D Ground Positional Embedding(PE) Generator,以增强2D特征的3D感知。最后,作者在更新后的Query上应用一个预测头,以获得最终的车道预测。
2.2. 车道感知Query生成器
与以前的方法中采用固定学习特征作为Query不同,作者提出了一种动态方案来生成车道感知的Query嵌入,为Query提供基于图像特征的有价值的2D车道先验。
此外,为了使Query在描绘车道和隐式建模车道内部和车道之间的关系方面更加灵活,作者以不同粒度表示Query嵌入,车道级和点级。车道级嵌入捕捉了每条车道的整体结构,而点级嵌入则聚集了位于上述所述的处的局部特征。
然后,作者将这两个级别协同作为作者的最终Query嵌入。这种混合嵌入方案使用不同车道的有区别的特征对Query进行编码,并使每个Query能够通过共享相同的点级嵌入来捕捉特定深度的公共模式。
这里的直觉是,在不同车道上位于相同深度的点在投影到图像时将以相同的因子进行重新缩放。同时,在3D空间中处于同一道路上会导致不同车道之间存在一些共享的属性,例如相同的高度。所提出的车道感知Query生成器的内部结构在图2的右侧部分呈现。
车道级嵌入从图像特征图中编码了N个车道实例的特征。具体来说,作者利用一个车道感知的特征聚合器来收集不同车道的特征,基于一组实例激活图(IAMs)。IAMs是动态生成的,可以表示为:
其中F由若干卷积层实现,σ是一个sigmoid函数,表示连接,是一个表示2D空间像素定位的两通道特征图。使用IAMs,可以通过以下方式获得车道级嵌入 :
在训练过程中,作者在之上添加一个辅助分割头用于预测2D车道实例Mask,这些Mask由投影的3D注释进行监督。作者使用Dice基于二分图匹配为N个实例Mask分配了GT标签。作者还使用相同的匹配结果来为作者的最终车道预测分配标签。
点级嵌入表示点与车道中其他点的关系。作者将其表示为一组可学习的权重,其中每个对应于预定义的中的的嵌入。这些嵌入将在训练过程中学习。
车道感知Query嵌入可以使用以下方程获得:
其中表示广播求和。广播操作使模型能够区分不同的实例并根据车道级嵌入对点进行分组。
请注意,共享点级嵌入可以帮助模型在不引入几何先验(例如,点距离约束)和复杂的监督的情况下,模拟不同车道之间点的相对关系和共同特征,这是以前方法中所做的。
2.3. 动态3D地面位置嵌入
如第2.2节所讨论的,现有方法主要要么利用替代的3D空间来估计3D车道位置,要么隐含地迫使模型学习3D位置。与之不同,作者提出使用一个先验,即在现实世界中所有的车道都位于地面上,并构建一个3D平面来建模地面。尽管已经有一些尝试利用地面先验来促进3D物体检测,有些提出了一些强烈的假设,比如固定地面,而其他一些引入了额外的预测任务,例如密集深度估计,地平线检测和接触点检测。然而,预测这些额外的任务具有很高的自由度(DOF),不准确的预测不可避免地会因累积误差而损害性能。
在本文中,作者通过将平面限制为仅具有两个自由度来解决这个问题。具体来说,作者将平面编码为每个可变注意力模块中的关键位置嵌入。接下来,作者将深入探讨如何生成3D地面位置嵌入,并使用仅有3D车道注释来动态接近真实地面。
位置嵌入生成
作者首先构建一个3D平面,由带有P个点的3D网格表示,然后使用相机参数T将所有点投影到2D图像中,如下所示:
作者将网格初始化为一个具有z值的水平平面,根据经验设置为-1.5。基于方程(1),作者将所有投影点散布到2D画布中,该画布保留了每个投影点的3D位置,如下所示:
对于那些没有投影点的像素,作者将它们简单地设置为0。随后,作者通过MLP获得3D地面位置嵌入。
动态平面更新
为了动态更新平面以接近真实地面,作者在每个解码器层中使用图像特征和投影的画布来预测具有两个自由度(即θ,)的残差变换矩阵,如下所示:
其中表示连接,是两个卷积层,表示来自主干的2D特征,是编码了方程(2)中的3D位置的投影画布。此外,变换矩阵可以表示为:
然后,作者通过以下方式逐层迭代更新平面:
其中是P的齐次表示,索引解码器层。
监督
为了监督具有两个自由度θ,的预测变换矩阵D,作者使用相机参数T将3D车道注释投影到图像中,,其中是3D车道注释,是2D图像上对应的位置。与方程(2)类似,作者将所有投影车道分散到中。
因此,作者使用投影的3D车道注释来稀疏监督投影的平面。给定P,表示从平面投影出的所有像素的集合,以及L,表示所有投影的3D车道注释的集合,作者的损失可以表示为:
作者使用来监督构建的3D平面的更新,使其接近真实地面并获得准确的3D地面位置信息。图3展示了所提出的的有效性。
2.4. 解码器
作者的解码器采用了L个解码器层,遵循标准的基于Transformer的方法。在每一层中,作者使用Query来预测3D车道位置作为3D参考点,并根据方程(1)将每个3D点投影到2D图像中,称为。然后,作者使用车道感知Query嵌入和3D地面位置嵌入来制定消息交换过程,如下所示:
其中表示提取的图像特征图,是层索引,DeformAttn是标准的可变注意力模块。如图2所示,作者还估计了作者构建的平面的残差变换矩阵,如第3.3节所示,并迭代调整其位置,类似于参考点。通过这种迭代的细化机制,LATR可以逐渐更新其对3D地面的知识,并提高其可定位性。
2.5. 预测头和损失
预测头
作者在Query之上应用了一个预测头,以生成作者的最终预测。对于3D位置估计,作者使用一个MLP,可以表示为:
其中表示相对于上一个解码器层中相应参考点的偏移。而表示每个预测的车道点的可见性,表示投影点是否在图像中有效。结合预定义的纵向坐标,作者获得了N个点集作为。对于车道类别,作者采用了沿点维度的最大池化,然后是每个实例的MLP:
其中表示类别对数和K是可能类别的数量。在作者的最终预测中,将被分类为“背景”的车道将被丢弃。在这里,作者应用了与第2.2节中辅助分割相同的二部匹配结果,用于3D车道标签分配。这种策略确保了每个Query的一致的2D分割和3D车道检测监督。
总损失
给定车道Query的匹配真实标签,作者计算了每对匹配的损失。具体来说,作者的总损失包括3个部分:实例分割辅助损失、3D地面感知平面更新损失和3D车道预测损失。形式上,
其中表示不同的损失权重:、=2.0、=10.0、=10.0,其余均设置为1.0。对于、,作者使用L1损失,并对使用BCE损失。对于分类,作者采用了Focal Loss,其中γ,α。
3、实验
3.1、Results on the OpenLane
在表1中,作者展示了在OpenLane验证集上的主要结果。可以观察到几个关键趋势:
LATR在F1分数和类别准确性方面都明显优于以前的方法。与先前的最先进方法Persformer相比,它在F1分数上取得了显著提高,提高了11.4,类别准确性提高了2.5。
与以前的SOTA相比,LATR在近距离和远距离的X和Z方向误差都显著减小。值得注意的是,在近/远距离内,X和Z方向的误差分别减小了0.100m/0.066m和0.037m/0.037m。
LATR-Lite虽然是LATR的轻量级版本,只有两个解码器层,但其结果与LATR相当。
尽管Persformer(Persformer-Res50)在使用与LATR相同的Backbone和输入形状的情况下,F1分数从50.5提高到53.0,但其性能仍然远远落后于LATR。
在图4中,作者展示了LATR和Persformer的定性比较,其中作者的方法在几种具有挑战性的场景中进行更准确的预测。
3.2、Results on the Apollo
表2总结了作者在Apollo数据集上的实验结果。作者在三个不同的场景上评估了作者的方法,并研究了F1分数、AP和误差。尽管性能接近饱和,但作者的LATR在所有场景和指标上都表现出优势。值得注意的是,作者的设计显著提高了在视觉变化场景下的性能,F1分数提高了4.3点,AP提高了3.6点,这表明了作者动态地面设计的有效性。
此外,作者观察到,作者的模型在2层和6层解码器下均取得了可比的结果。由于篇幅限制,ONCE-3DLanes的结果呈现了与OpenLane数据集相似的趋势。这些对于现实和合成数据集的实验证明了作者提出的方法的泛化能力和鲁棒性,表明它有潜力应用于实际场景中。
3.3、Model Analysis
作者在OpenLane-300数据集上进行了深入分析,以验证作者在LATR中的设计选择的有效性。
模块消融
表3的第一行和第三行显示了使用可学习权重替代车道级嵌入的结果。使用可学习嵌入,没有关于图像特征的先验知识,性能远远不如其车道感知对应项(F1分数分别为70.4与61.5,以及67.9与45.5)。
此外,无论车道级嵌入如何获得,当将动态3D地面PE从LATR中删除时,都会观察到明显的性能下降。当可学习权重替代车道级嵌入时,差距变得更加显著(61.5→45.5)。
总体而言,表3中的每个组件在Baseline性能上都显著提高了性能。同时使用这两种设计进一步提高了性能,并获得了最佳结果。
点级Query与车道级Query
在LATR中,每个Query都使用点级嵌入进行增强,对应于最终的车道预测中的一个点。属于相同车道级嵌入的每组M个点被组合在一起形成一个完整的车道。在这部分中,作者探讨另一种选择,使用车道级嵌入 作为最终的Query嵌入。与点级Query方法不同,这种设置需要为每个车道Query预测M个不同的点。
如表4所示,使用纯车道级Query会导致性能明显下降(例如,F1分数从70.4降至66.5),与作者提出的设置相比。
动态3D地面位置嵌入的影响
为了评估作者的动态3D地面位置嵌入的有效性,作者将其与几种替代方案进行了比较。具体来说,作者尝试将3D位置分配给图像像素,使用固定的视锥体或固定的地平面,以及作者提出的使用迭代更新的地平面的设置。
如表5所示,无论使用哪种方法,将3D位置信息分配给图像像素都会提高性能。正如预期的那样,作者观察到使用视锥体生成3D位置的结果不如使用平面。这是合理的,因为车道存在于地面上,使用视锥体会引入空中车道不存在的大部分点。此外,表5显示,使用动态更新的平面优于使用固定平面,证明了作者的设计选择的有效性。
4、参考
[1]. LATR: 3D Lane Detection from Monocular Images with Transformer.
① 全网独家视频课程
BEV感知、毫米波雷达视觉融合、多传感器标定、多传感器融合、多模态3D目标检测、点云3D目标检测、目标跟踪、Occupancy、cuda与TensorRT模型部署、协同感知、语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码即可学习)
视频官网:www.zdjszx.com② 国内首个自动驾驶学习社区
近2000人的交流社区,涉及30+自动驾驶技术栈学习路线,想要了解更多自动驾驶感知(2D检测、分割、2D/3D车道线、BEV感知、3D目标检测、Occupancy、多传感器融合、多传感器标定、目标跟踪、光流估计)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频,期待交流!
③【自动驾驶之心】技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多模态感知、Occupancy、多传感器融合、transformer、大模型、点云处理、端到端自动驾驶、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、产品经理、硬件配置、AI求职交流等方向。扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)
④【自动驾驶之心】平台矩阵,欢迎联系我们!