CLRerNet:利用LaneIoU提升车道检测置信度
摘要
车道标检测在自动驾驶和驾驶辅助系统中至关重要。现代深度车道检测方法在车道检测基准测试中表现出色。通过初步的预言机实验,我们首次拆解车道表示组件以确定研究方向。我们表明,正确的车道位置已存在于现行车道检测器的预测中,并且准确表示与真实值IoU的置信度分数最有益。基于这一发现,我们提出了LaneIoU,它通过考虑局部车道角度与评估指标更相关。我们开发了一种名为CLRerNet的新检测器,其在目标分配成本和损失函数中采用LaneIoU,旨在提升置信度分数质量。通过仔细设计的基准测试,包括交叉验证,我们证明CLRerNet大幅超越现有技术——在CULane上的F1分数为81.43%,相比现有方法的80.47%;在CurveLanes上为86.47%,相比86.10%。代码和模型可在 GitHub 上获取。
1. 引言
车道检测在自动驾驶和驾驶辅助系统中起着重要作用。与其他计算机视觉任务一样,卷积神经网络(CNN)的出现推动了车道检测性能的快速发展。现代车道检测方法按车道实例表示可分为四类。分割基准[18,27]和关键点基准[21]分别将车道视为分割掩码和关键点。参数表示方法[25,16]利用曲线参数回归车道形状。行基准表示[24,28,19,20,15]将车道视为特定水平线上的坐标集。前两类被用于自下而上的检测范式,直接在图像中检测车道位置,随后将其分组为车道实例。后两类被用于自上而下的实例检测方法,每个车道检测被视为全局车道实例和局部车道点集。行基准表示在检测性能方面已成为事实上的标准。我们选择CLRNet作为基线。
车道检测的性能依赖于车道点定位和实例级分类。车道检测基准[18,7]采用基于分割掩码的IoU作为评估指标。预测车道中得分高于预设阈值的被视为有效预测以计算F1分数。因此,预测车道与真实车道的分割基准IoU应较大,分类分数应较高。为确定研究方向,我们首先进行初步预言机实验。将置信度分数替换为预言机值后,F1分数接近完美(98.47%)。这表明正确车道已在预测中,置信度分数需更准确地表示与真实值的IoU。图1(中)显示了所有预测(蓝色)和真实值(虚线橙色)的比较。预测的置信度分数与颜色深度成正比。最左侧的预测是高置信度假阳性,错过了真实值,但在真实值附近存在高IoU的低置信度预测。
下一个问题是:如何将基于分割的IoU作为学习目标?在行基准方法中,预测和真实车道均表示为固定行上的x坐标。[28]引入LineIoU损失逐行测量交集和并集并分别求和。但这种方法与基于分割的 IoU 不等价,特别是对于非垂直、倾斜车道(例如图1底部)或曲线。我们引入新的IoU——LaneIoU,考虑车道的局部角度。LaneIoU整合每行的角度感知交集和并集以匹配基于分割的IoU。行基准方法为每个锚点学习全局车道概率分数。最近目标检测器中采用的动态样本分配[4,5]在车道检测训练中也有效[28]。IoU矩阵和成本矩阵分别确定每个真实车道分配的锚点数量和分配的锚点。置信度目标被设置为正(一)。因此,样本分配负责学习置信度分数。我们引入LaneIoU到样本分配中,使检测器的置信度分数接近基于分割的IoU。LaneIoU动态确定每个真实车道分配的锚点数量,并作为成本函数优先分配锚点。此外,用于回归水平坐标的IoU 损失也被我们的LaneIoU替代,以适当惩罚不同倾斜角度的预测车道。将LaneIoU集成到CLRNet中,使检测器训练更直接,因此我们将其命名为CLRerNet。我们通过在CULane和CurveLanes上的广泛实验展示了LaneIoU的有效性,并报告了最新的基准测试结果。重要的是,为确保基准测试的可靠性和公平性,我们采用五种模型的平均分数作为每个实验条件的结果,而以往工作仅显示单一模型的分数。此外,由于车道检测评估中的F1指标对检测器的车道置信度阈值极为敏感,我们利用训练集的5折交叉验证确定阈值。我们的贡献如下:
-
明确研究方向:通过初步预言机实验,我们表明正确的车道位置已存在于现检测器的预测中,并且表示与真实值的IoU的置信度分数最有益于提升性能。
-
明确训练方法:我们采用与评估指标高度相关的LaneIoU作为车道相似性函数,并将其集成到训练中作为样本分配成本和回归目标。
-
明确基准测试:采用多模型评估和基于交叉验证的分数阈值确定,确保公平基准测试。LaneIoU的有效性和通用性得到验证,CLRerNet在CULane和CurveLanes基准测试中达到最新水平。
2. 相关工作
2.1 目标检测
样本分配:样本分配是目标检测的主要研究重点。从检测头生成的提议被分配给真实样本。[22,13,8,12]通过在特征图网格和真实框之间静态计算IoU来分配真实样本。[4]为对象检测器的训练样本分配引入最优传输分配(OTA),动态分配预测框给真实样本。[5]简化OTA并实现无迭代分配。IoU函数:提出了几种IoU函数的变体[23,29,30],用于准确的边界框回归和快速收敛。例如,广义IoU(GIoU)[23]引入最小凸包的概念,即使边界框不重叠,也能使IoU可微。我们的LaneIoU基于GIoU,但新增了在行基准表示中计算曲线之间的IoU功能。
2.2 车道检测
车道检测范式根据车道表示类型分为四类,即基于分割、基于关键点、基于行和基于参数的表示。
-
基于分割的表示:这类工作是基于像素的车道存在概率估计。SCNN[18]和RESA[27]采用语义分割范式,在每个像素上将车道实例分类为不同类别。车道与类别的对应关系由注释确定,因此不够灵活(例如某些车道位置可能属于两个类别)。基准数据集[18,7]采用像素级IoU比较预测车道与真实车道,对基于分割的方法较为友好。然而,这些方法不将车道视为整体实例,需要计算成本高昂的后处理。[19,28]仅在训练期间利用分割任务作为辅助损失以改进骨干网络。我们遵循这些方法,采用辅助分支和损失。
-
基于行的表示:车道实例被表示为固定行上的x坐标集。LaneATT[24]采用车道锚点来学习每个锚点的置信度分数和局部x坐标偏移。锚点被定义为固定角度和起点。训练目标根据每个锚点与真实车道之间的水平距离静态分配。CLRNet[28]采用可学习的锚点参数(起点xa、ya和θa)和长度l。对于样本分配,采用简化最优传输分配[5]动态分配最近的预测给每个真实车道。这两种方法通过锚点池化特征图,并将提取的特征输入到头部网络。头部网络输出每个锚点的分类和回归张量。这种范式对应于两阶段目标检测方法,如[13,8]。UFLD[19]通过展平特征图捕获全局特征,并学习行-wise车道位置分类。UFLDv2[20]扩展[19],增加列-wise车道表示以处理近水平车道。CondLaneNet[15]从车道起点的概率热图中学习,并从中提取动态卷积核。动态卷积被应用于特征图,从而完成行-wise车道点分类和x坐标回归。LaneFormer[6]采用具有行和列注意力的变换器,以端到端的方式检测车道实例。此外,车辆检测结果被输入到解码器中,使管道具备对象感知能力。在四种表示类型中,基于行的表示在检测性能方面已成为事实上的标准。
3. 方法
3.1 网络设计和损失函数
基于行的表示[28,15,24]采用了四种类型中最准确但简单的检测流程。我们从基于行的方法中选择性能最佳的CLRNet[28]作为基线。网络示意图如图2所示。骨干网络(例如ResNet[9]和DLA[26])和上采样网络提取多级特征图,其空间维度为输入图像的1/8、1/16、1/32。初始锚点由Na个可学习的锚点参数(xa、ya、θa)形成,其中(xa、ya)是起点,θa是锚点的倾斜度。沿每个锚点采样特征图并输入到卷积和全连接(FC)层。FC层输出分类 logits c、锚点细化 δxa、δya、δθa、长度 l 和局部x坐标细化 δx张量。通过δxa、δya和δθa细化的锚点重新采样更高分辨率的特征图,并重复该过程三次。池化特征通过交叉注意力与特征图交互,并在不同细化阶段进行连接。车道预测表示为分类(置信度)logits和从最终xa、ya、θa、l和δx计算出的在Nrow行上的x坐标集。更多关于细化机制的细节可在[28]中找到。在训练期间,通过动态分配器[5]将接近真实车道的预测分配给真实车道。分配的预测被回归到对应的真实车道,并学习被分类为正类。