介绍
在自动驾驶中,下游模块如规划和控制通常需要将车道位置表示为正交的鸟瞰图(BEV)而不是前视图表示。使用BEV表示有助于更好地与环境中的交互式代理(如车辆、道路标志、交通灯等)对齐任务,并且与其他传感器(如LiDAR和雷达)兼容。
传统方法及其局限性:
简单投影方法:一种传统的方法是将透视视图中的车道简单地投影到BEV空间中。这种方法虽然直接,但会导致投影的车道线在高度变化的场景(如上下坡、颠簸)中出现偏差。
特征转换方法:另一种更优雅的解决方案是利用摄像头的内外参数矩阵,将透视视图中的特征投射到BEV空间。这种方法受到了空间变换网络(STN)的启发,通过生成从图像到BEV特征网格的一对一对应关系来实现特征转换。然而,这种方法的效果取决于透视视图中特征的质量,而透视图中的尺度差异问题仍然存在,这是由摄像头的小孔模型引起的。
高度信息的重要性
在从2D前视图(a)转换到BEV(b)时,传统方法的平面假设可能导致车道线在BEV空间中发散或收敛,从而产生不准确的车道预测。
我们的方法(c)考虑了车道的高度,能够更准确地预测车道的平行拓扑结构。在这种情况下,与传统方法相比,我们的方法能够提供更精确的车道线定位。
在将透视视图中的车道投射到BEV空间时,车道线的高度信息必须被考虑。如果忽略高度信息,车道线在上下坡的情况下会在BEV视图中出现发散或收敛的现象,导致下游的规划和控制模块做出错误的决策。之前的一些研究假设BEV空间中的车道位于平坦的地面上,即假设车道线的高度为零。然而,这种平面假设在大多数自动驾驶场景中并不成立,例如在上下坡、颠簸路面或急转弯中。
3D车道检测的挑战:
由于公共数据集上通常没有高度信息,或者很难获得精确的地面真实值,3D车道检测任务是一个不良定式问题。一些研究试图通过创建3D合成数据集来解决这个问题。然而,在复杂和现实的场景中,这些方法的性能仍需改进。此外,模拟数据与真实数据之间的领域适应性问题也尚未得到充分研究。
主要创新点:
-
空间特征转换模块:
- 我们将空间特征转换建模为一个具有注意力机制的学习过程,能够捕捉前视图特征局部区域之间的交互,以及前视图和BEV视图之间的交互,从而生成精细的BEV特征表示。
- 受[60,8]的启发,我们构建了一个基于Transformer的模块,并采用了可变形注意力机制[72],显著减少了计算内存需求,并通过跨注意力模块动态调整关键特征,以捕捉局部区域中的显著特征。
- 与通过逆透视映射(IPM)进行的直接一对一转换相比,结果特征更加具备代表性和鲁棒性,因为它能够关注周围的局部上下文并聚合相关信息。
-
2D和3D车道检测任务的统一:
- 我们进一步统一了2D和3D车道检测任务,以从联合学习优化中获益。
-
OpenLane数据集的发布:
- 我们发布了首个真实世界的大规模3D车道数据集和相应的基准OpenLane,以支持对这一问题的研究。
- OpenLane包含了20万帧标注数据和超过88万条车道线(每条车道线都属于14类标签之一,如单白虚线、双黄实线、左/右路缘等),规模超越了所有现有的车道数据集。
- 此外,OpenLane还包括场景、天气和闭合路径内的物体(CIPO)等独特元素,为自动驾驶的其他研究主题提供支持。
车道线检测
网络结构
由三部分组成:主干网络、Perspective Transformer 和车道检测头。具体如下:
-
主干网络(Backbone):
- 负责接收调整大小后的图像作为输入,并生成多尺度的前视图特征。这里使用了流行的ResNet变体 [56]。
- 需要注意的是,这些特征可能会受到前视图空间内在特征提取的影响,例如尺度变化、遮挡等问题。
-
Perspective Transformer:
- 该模块接收前视图特征作为输入,通过相机内外参数生成BEV(鸟瞰视图)特征。
- 我们并没有简单地将前视图特征一一映射到BEV空间,而是引入了Transformer来关注局部上下文并聚合周围特征,以形成稳健的BEV特征表示。
- 通过这种方式,我们以优雅的方式学习了从前视图到BEV的逆透视映射。
-
车道检测头(Lane Detection Heads):
- 负责预测2D/3D坐标以及车道类型。
- 2D/3D检测头分别使用了LaneATT [55] 和3D-LaneNet [16],并在结构和锚点设计上进行了修改。
Proposed Perspective Transformer
Perspective Transformer 的架构灵感来源于流行的方法如 DETR [8],包括自注意力模块和交叉注意力模块(见图 )
自注意力模块
在自注意力模块中,输出通过输入的三元组(键、值、查询)进行交互生成。这样的自注意力的公式可以描述为:
交叉注意力模块
在交叉注意力模块中,输入查询 Q是多个额外层将自注意力输出 Qbev作为输入后的结果。用于指示在 BEV 中应更加关注哪个部分,因为查询的生成在 BEV 中是位置敏感的。
利用IPM透射变换,将Q中的BEV查询点(x,y)投影到前视图中的对应点(u,v)。接着在点(u,v)附近增加一些偏移量,以学习其周围特征。这些学习到的点称为参考点,有助于将前视图的特征表示转换到 BEV 空间。
总结来说,Perspective Transformer 在参考点之间提取前视图特征以构建具有代表性的 BEV 特征。
Simultaneous 2D and 3D Lane Detection
3D anchor design
2D anchor design
2D 锚点的描述和预测与 3D 视图中的定义类似,只不过 (u, v) 位于 2D 空间中,并且没有高度(见图 4(右))。为了简洁起见,我们省略了详细的符号说明。值得一提的是,每个具有倾斜角度 φ 的 3D 锚点 Xi_bev 对应于具有倾斜角度 θ 的特定 2D 锚点 U_i_fv;这种连接通过公式 (2) 的投影建立(IPM)。我们通过设置相同的锚点集实现同时统一 2D 和 3D 任务的目标。这种设计可以使特征在视图之间更好地对齐和表示,从而优化特征。
Prediction Loss
网络训练中添加更多的中间监督可以提升网络性能。由于车道检测属于图像分割并且需要较大的分辨率,我们在生成的 BEV 特征上连接了一个 U-Net 结构的头部。这项辅助任务是在 BEV 中预测车道线,但以传统的 2D 分割方式进行,旨在为主要任务提供更好的特征表示。
Ground truth Sgt 是从 3D 车道线 ground truth 投影到 BEV 空间的二值分割图。预测输出表示为 Spred,其大小与 Sgt 相同。
Experiments
我们在新提出的 OpenLane 数据集上提供了 3D 和 2D 的评估结果。为了全面评估模型,我们报告了整个验证集和不同场景集的 F-Score。场景集是根据每帧的场景标签从整个验证集中选取的。在表 2 中,PersFormer 在整个验证集和每个场景集中都获得了最高的 F-Score,超越了先前的最先进方法,程度不一。在表 3 中,PersFormer 比我们的基线 2D 方法 LaneATT [55] 高出 11%。与之前的 3D 最先进方法的详细比较见表 4。PersFormer 的 F-Score 比之前的最佳方法高出 6.4%,在车道类型分类上实现了令人满意的准确性,并呈现了第一个基线结果。需要注意的是,
PersFormer 在 x 轴近端误差指标上表现欠佳,这可能是因为统一锚点设计更适合拟合车道的主要部分而非起点。定性结果如图 6 所示,表明 PersFormer 在通常的自动驾驶场景中能够很好地捕捉密集和不明显的车道。总体而言,PersFormer 在 3D 车道检测中达到了最佳性能,并在 OpenLane 的 2D 任务中取得了显著的改进。