点击下方卡片,关注“自动驾驶之心”公众号
戳我-> 领取自动驾驶近15个方向学习路线
今天自动驾驶之心为大家分享首尔国立大学车道线检测的工作HeightLane!大幅超越BEV-LaneDet等算法。如果您有相关工作需要分享,请在文末联系我们!
自动驾驶课程学习与技术交流群事宜,也欢迎添加小助理微信AIDriver004做进一步咨询
编辑 | 自动驾驶之心
写在前面 & 笔者的个人理解
单目图像的准确3D车道线检测面临重大挑战,主要由于深度信息的歧义性和地面建模的不完善。以往的研究通常采用具有有限自由度的平面地面假设进行地面建模,这在复杂道路环境中,尤其是存在不同坡度的情况下,显得力不从心。本研究提出了一种名为HeightLane的创新方法,它基于多斜率假设创建锚点,从单目图像中预测出高度图,从而提供对地面的详细和精确表示。HeightLane结合了预测出的高度图和基于可变形注意力机制的空间特征转换框架,高效地将2D图像特征转换为3D鸟瞰视图(BEV)特征,增强了空间理解力和车道结构识别能力。此外,高度图还被用于BEV特征的位置编码,进一步提升了空间精度。这种显式视图转换方法有效地弥合了前视感知与空间精确的BEV表示之间的差异,显著提高了检测性能。为了解决原始OpenLane数据集中缺少必要的地面真实高度图的问题,作者利用Waymo数据集的LiDAR数据,为每个场景的可行驶区域生成了高度图。使用这些真实高度图训练了从单目图像中提取高度图的模块。在OpenLane验证集上的广泛实验表明,HeightLane在F-score等指标上达到了最先进的性能,展示了其在现实世界应用中的潜力。
相关工作总结
3D车道检测
3D车道检测对于现实驾驶场景中的准确定位至关重要。虽然2D车道检测已经得到了广泛的研究,但关于3D车道建模的却相对较少。传统的方法通常使用逆透视变换(IPM)将2D特征转换到3D空间,基于道路平坦的假设。然而,这种假设在遇到斜坡或下坡等不平坦地形时会失效,导致特征表示扭曲和可靠性降低。
SALAD通过结合前视图图像分割与深度估计来解决3D车道检测问题,但它依赖于密集的深度注释和精确的深度预测。此外,远处车道因显得较小,每个像素覆盖的深度范围更广。M2-3DLaneNet通过融合LiDAR数据增强单目3D检测,将图像特征提升至3D空间,并在鸟瞰视图(BEV)空间中融合多模态数据,但这增加了数据收集的复杂性和成本。DV-3DLane同样使用LiDAR和相机输入进行3D车道检测,但它从两种来源生成车道查询,而非提升图像特征。
与此同时,BEVLaneDet采用视图关系模块学习图像特征与BEV特征之间的映射,要求两者之间的关系固定。该论文引入了一种虚拟坐标,始终使用特定的外参矩阵和内参矩阵来调整图像。此外,它不是使用BEV特征的锚点,而是提出一种在BEV上直接预测车道的关键点表示法。LATR和Anchor3DLane通过将地面假设为具有2个自由度(2-DoF)的平面,在3D车道检测方面取得了最新进展。
LATR使用地面建模作为变换器中的位置编码,预测地面的俯仰角和高度;而Anchor3DLane则利用俯仰角和偏航角进行2D特征提取。与此不同,作者的方法HeightLane在BEV空间中仅使用LiDAR创建地面真实高度图。与M23DlaneNet不同,后者在推理过程中需要同时使用LiDAR和相机数据,而HeightLane仅依赖相机数据简化了推理过程。作者的方法不是用2-DoF对地面进行建模,而是预测预定义BEV网格中每个点的高度,创建了一个密集的高度图。通过采样专注于地面的空间特征,作者生成了BEV特征,允许使用关键点表示法进行准确的3D车道预测,有效地桥接了2D图像数据和3D车道几何学。这种方法优化了空间特征的处理,在保持高精度的同时提高了效率。
鸟瞰视图高度建模
BEVHeight引入了一种新颖的方法,将深度估计中使用的深度分箱技术应用到高度概念上。这种方法通过对图像中的物体高度箱进行分类,首次提出了一种回归方法,用于确定3D目标检测中物体与地面之间的高度。然而,该方法的实验仅限于路边相机数据集,限制了研究的应用范围。BEVHeight旨在通过利用物体的高度信息,提供更精确的3D位置信息。
另一方面,HeightFormer利用Nuscenes自动驾驶数据集,尝试回归物体与地面之间的高度。HeightFormer将预测的高度信息整合到变换器的解码器中,与基于深度的方法相比,实现了性能的提升。这一改进展示了利用高度信息进行更准确3D目标检测的潜力。
作者提出的方法HeightLane,利用了车道始终附着在地面上的特性。通过仅预测相对于地面的高度,HeightLane显式地将图像特征转换到对应于地面的预定义BEV网格中。这种方法简化了任务,旨在提高3D目标检测中空间转换的准确性。
HeightLane方法详解
作者提出的HeightLane整体架构展示于图2。输入一个RGB前视图图像 ,其中 和 分别代表图像的高度和宽度。利用ResNet-50作为CNN骨干网络提取前视图特征 。定义一个与自我车辆相对应,代表地面的预设BEV网格 ,其中 和 分别代表相对于自我车辆的纵向和横向范围,然后结合高度提取模块从前端视图特征中提取高度信息,生成高度图。

基于PersFormer研究的洞察,作者提出了一种高度图引导的空间特征转换框架。该框架基于观察到的2D前视图特征可以作为键和值,而BEV特征可以作为查询在可变形交叉注意力中使用。与PersFormer研究假设地面为平面并使用IPM将前视图特征转换为BEV特征查询不同,本方法使用在预定义BEV网格内预测的高度图,允许作者匹配每个BEV特征查询与相应的前视图特征,不依赖于地面平坦的假设。这使得可变形注意力的执行更加高效。这些转换后的BEV特征 随后通过车道检测头部处理,遵循基于关键点的表示方法,最终生成3D车道输出。
高度提取模块
高度预测
高度图 的分辨率为每像素0.5米,表示从车辆位置向前 米和向两侧各 米范围内的高度信息,其中高度值为零。与直接从前视图特征预测路面的其他研究不同,作者首先定义了一个密集的BEV网格 ,然后预测这个网格内所有对应点的高度图 。这需要创建BEV特征,这些特征来源于2D前视图特征,以准确捕获高度信息。例如,生成一个斜率为零的高度图锚 ,用作获取BEV网格 的3D坐标。然后,使用内参矩阵和外参矩阵将这个高度图锚投影到图像上,采样对应于BEV点的前视图特征。投影高度图锚 的x, y网格到图像的流程如下:
其中, 和 分别表示相机内参矩阵和从自我车辆坐标到相机的变换矩阵, 的计算公式为:
与投影的 一起,从高度图特征 中采样前视图特征 的过程如下:
其中 表示多个斜率。如果实际道路在图像中存在斜率,使用单一斜率锚无法确保图像特征与BEV网格之间的对齐。为此,作者使用多斜率高度锚进行采样,然后将这些特征连接起来形成最终的BEV高度特征 。利用 ,可以预测高度图 :
其中 并且 由几个卷积层构成。
高度监督
由于OpenLane数据集缺乏地面点云或标签信息,现有研究主要集中在仅包含车道的区域进行数据创建和监督。LATR只在有车道的区域应用损失以估计地面的俯仰角和高度。类似地,LaneCPP通过在车道存在区域插值结果来模拟地面。为了提供密集的高度图真实标注,作者使用Waymo数据集中的LiDAR点云,这是OpenLane的基础数据集。通过累积Waymo数据中每个场景的可行驶区域的LiDAR点云,获得了每个场景的密集地面点云。然后,将这个密集地面点云采样到预定义的BEV网格 上,并用作高度图 的监督。

高度引导的空间变换框架
作者提出的空间变换框架利用第3.1节预测的高度图,如图4所示。BEV初始查询经过自注意力模块处理,在自注意力过程中,BEV查询之间进行交互,并为每个BEV查询添加位置编码以提供位置信息。位置编码是可学习的参数。与在2D FV特征上执行注意力的研究不同,作者的方法使用BEV网格坐标和每个BEV查询的高度嵌入进行位置编码。

自注意力模块输出的查询 在第 层表示为:
其中 是层索引, 是相应查询的网格值。
经过自注意力处理的BEV查询 与2D前视图特征执行可变形交叉注意力。可变形注意力为每个查询定义了参考点 并学习从这个参考点到周围区域的偏移。这些可学习的偏移决定了最终的参考点,并且在前视图特征 中与这些最终参考点对应的特征作为交叉注意力中的值与BEV查询相互作用。由于作者有对应于BEV网格的高度图 ,作者可以精确地确定每个BEV网格像素将被投影到前视图特征中的参考点 ,如下所示:
经过交叉注意力处理的查询 在第 层表示为:
HeightLane中的空间变换由多个层组成,每层都包含自注意力和交叉注意力模块。实验中,作者将层数设置为 。通过所有 层的BEV查询成为车道检测头部的输入特征。为了捕获不同分辨率的前视图特征,作者采用了多尺度前视图表示。为每种分辨率生成一个BEV查询,最终的BEV特征 通过连接每个尺度的查询获得。
训练
通过空间变换框架生成的 会经过几层卷积网络,预测BEV网格的置信度、偏移和嵌入,遵循BEVLaneDet的关键点表示法。预测的密集高度图 被用作3D车道的表示,连同置信度、偏移和嵌入。置信度 的损失函数定义为:
其中,BCE表示二元交叉熵损失,IoU代表交并比损失。
车道在x方向上的预测偏移损失定义为:
在[22]中,每个网格单元的嵌入被预测以区分置信度分支中每个像素的车道身份。作者采用了相同的嵌入损失,如公式(10)所示,其中 表示拉力损失,用于最小化类内方差,而 表示推力损失,用于最大化不同类之间的距离:
预测的高度图 与真实高度图 之间的损失使用L1损失计算,如公式(11)所示:
为了确保2D特征有效地捕获车道特征,作者增加了一个2D车道检测头,并结合了一个辅助损失用于2D车道检测,如公式(12)所示:
最终,总损失由公式(13)定义,其中 表示应用于每个损失组件的权重:
这个损失函数综合了置信度损失、偏移损失、嵌入损失、高度图损失和2D车道检测损失,以优化整个网络的性能。
实验结果和分析
数据集
作者的方法在OpenLane数据集上进行了评估,该数据集覆盖了多样的道路条件、天气状况和照明环境。OpenLane建立在Waymo数据集基础之上,使用了150,000张图像用于训练,40,000张图像用于测试。该数据集包含798个训练场景和202个验证场景,每个场景大约包含200张图像。尽管OpenLane数据集本身不包含生成高度图所需的信息,但由于其基于Waymo数据集构建,作者能够从中提取每个OpenLane场景所需的LiDAR数据。在提取LiDAR数据的过程中,作者注意到数据在每个场景的中部密集,而在末端帧则变得稀疏。例如,图3展示了一个场景,其中车辆启动、上坡、右转,并继续行驶在另一段坡道上。在起始点(绿色区域),LiDAR数据较为稀疏,因此作者采用了双线性插值来填补高度图中的空隙,以确保高度图的一致性。作者的评估包括了多种场景,如上坡/下坡、曲线、极端天气、夜间、交叉口以及合并/分流等条件。评估指标包括F分数、近端和远端的X误差以及Z误差。
实现细节
作者采用了ResNet-50作为2D特征提取的骨干网络,并将图像尺寸设定为576×1024像素。为了获得多尺度的图像特征,作者增加了额外的CNN层,以产生尺寸为输入图像1/16和1/32的特征图,每个特征图具有1024个通道。高度图和BEV特征的BEV网格尺寸被设置为200×48像素,分辨率为每像素0.5米。在高度提取模块中,作者为多斜率高度图锚点设置了-5°、0°和5°的斜率Θ。在5°的斜率下,高度图能够表示高达约8.75米的高度。在高度引导的空间特征转换中,作者使用了具有2个注意力头和4个采样点的可变形注意力机制。位置编码是通过嵌入BEV网格的X和Y位置以及相应的预测高度来生成的。
在OpenLane上的评估
定性结果
图5展示了OpenLane验证集上的定性评估结果。作者的方法HeightLane、现有的最佳性能模型LATR以及地面真实值的预测结果被可视化展示。其中,地面真实值用红色表示,HeightLane用绿色表示,LATR用蓝色表示。图5的第一行展示了输入图像,第二行展示了在3D空间中HeightLane、LATR和地面真实值的可视化对比。第三和第四行分别从Y-Z平面视角展示了HeightLane与地面真实值、LATR与地面真实值的3D车道对比。

特别是,HeightLane即使在车道中断后再次出现的场景中,如交叉口或减速带上方,也能准确检测到车道。这一点在图5的第1、2、4、5和6列中尤为明显。例如,在第1列中,尽管存在车辆遮挡和部分车道标记不完整,HeightLane仍然能够提供精确的车道预测,证明了其在处理具有遮挡和信息不完整的复杂场景中的鲁棒性。此外,借助高度图的使用,HeightLane有效地模拟了道路坡度的变化,如图3所示,道路从平坦过渡到有坡度的情况。在展示曲线道路和部分可见车道的第2和5列中,HeightLane展示了其在曲线上维持连续车道检测的优越预测精度和性能。
图6可视化了高度提取模块预测的高度图,从左到右依次为输入图像、预测高度图和地面真实值高度图。场景从上到下依次为上坡、平地和下坡路段,更多可视化结果可在补充材料中找到。

定量结果
表1展示了HeightLane在OpenLane验证集上的定量评估结果。作者的模型在总体F分数上达到了62.5%,超越了所有现有的最先进模型。特别是在极端天气、夜间和交叉口等具有挑战性的场景中,HeightLane实现了显著的性能提升,并在这些条件下取得了最佳成绩。此外,HeightLane在曲线和合并/分流场景中也展现了强劲的性能,获得了这些类别中的第二佳表现。尽管在持续上坡或下坡的场景中,HeightLane的表现不是最佳,因为在这些情况下,2-DoF平面假设已经足够。然而,HeightLane在斜率变化的场景中表现出色,如图5第3列所示,证明了其在处理变化坡度条件下的适应性和预测能力。

表2展示了Openlane验证集上的F分数、X误差和Z误差的定量比较结果。HeightLane在F分数方面取得了最佳成绩,超越了其他所有模型,达到了62.5%。虽然在Z误差方面并未达到最佳或第二佳的表现,但仍然展示了具有竞争力的结果。在X误差方面,HeightLane实现了第二佳的性能,证明了其在横向方向上准确估计车道位置的能力。

消融实验
表3展示了不同高度提取方法对应的F分数。视图关系模块,最初在[18]中提出,并在[22]中作为一个MLP模块用于转换BEV特征。单斜率高度图锚点方法将零高度平面投影到图像上,并使用从该平面采样的图像特征作为BEV特征。然而,这种方法假设地面是平坦的,并且仅在该高度处采样2D图像特征,导致特征表示不完整。相比之下,作者提出的多斜率高度图锚点方法在图像上投影了具有不同斜率的多个平面,从每个平面采样图像特征,并将它们融合以形成BEV特征。这种多锚点方法实现了最高的F分数。

表4展示了不同高度图锚点设计对应的F分数。第一行对应于表3中的单斜率高度图锚点。当使用0°加上±3°时,性能比仅使用0°提高了4.5%。同样,使用0°加上±5°时,性能提升了6.3%。尽管0°、±3°和±5°的配置实现了最佳性能,但与仅使用0°和±5°相比,性能提升的边际效应较小。然而,增加高度图锚点的数量会增加最终BEV高度特征中的通道数,从而增加计算成本。为了在性能和计算效率之间取得平衡,作者最终选择了0°和±5°高度图锚点的配置作为论文中的最终方法。

表5将作者的方法与各种多模态3D车道检测器进行了比较。其中,Ours (GT)表示在推理步骤中使用真实高度图代替高度提取模块获得的结果。这种替代旨在观察在假设高度提取模块预测的高度图非常准确的情况下,空间特征变换框架的性能。通过使用从LiDAR数据获得的真实高度图,作者可以与使用LiDAR输入的检测器进行公平的比较。结果表明,当高度图预测准确时,作者的HeightLane方法能够实现与使用LiDAR和相机输入的模型相当或甚至更好的性能。这证明了作者方法的潜力,能够有效地利用精确的高度信息,突出了作者在2D图像数据和3D车道几何转换中的鲁棒性和能力。

结论
作者的研究工作通过提出一种创新的高度图方法,成功克服了单目图像中3D车道检测面临的主要挑战,包括深度信息的不确定性和地面建模的不完善性。作者的主要贡献包括:
定义了一个用于直接从图像中预测高度信息的鸟瞰视图(BEV)网格和多斜率高度锚点。
提出了一个由高度图引导的空间特征转换框架。
在OpenLane数据集的复杂场景中,实证展示了作者的HeightLane模型的卓越性能。
本研究所提出的方法通过高度图增强了对空间结构的理解和车道的识别能力,显著提升了自动驾驶车辆系统的技术水平。通过精确的3D变换,这些技术进步为自动驾驶领域的发展提供了强有力的支持。作者通过广泛的实验验证了模型的有效性,这标志着在将3D车道检测技术应用于现实世界场景方面迈出了重要的一步。
参考
[1] HeightLane: BEV Heightmap guided 3D Lane Detection
① 全网独家视频课程
BEV感知、BEV模型部署、BEV目标跟踪、毫米波雷达视觉融合、多传感器标定、多传感器融合、多模态3D目标检测、车道线检测、轨迹预测、在线高精地图、世界模型、点云3D目标检测、目标跟踪、Occupancy、cuda与TensorRT模型部署、大模型与自动驾驶、Nerf、语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码即可学习)

② 国内首个自动驾驶学习社区
国内最大最专业,近3000人的交流社区,已得到大多数自动驾驶公司的认可!涉及30+自动驾驶技术栈学习路线,从0到一带你入门自动驾驶感知(2D/3D检测、语义分割、车道线、BEV感知、Occupancy、多传感器融合、多传感器标定、目标跟踪)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、大模型、端到端等,更有行业动态和岗位发布!欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频

③【自动驾驶之心】技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦感知、定位、融合、规控、标定、端到端、仿真、产品经理、自动驾驶开发、自动标注与数据闭环多个方向,目前近60+技术交流群,欢迎加入!扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)
④【自动驾驶之心】全平台矩阵