condlanenet翻译

摘要

现代基于深度学习的车道检测方法在大多数情况下都是成功的,但在复杂拓扑的车道线上却很困难。 在这项工作中,我们提出了 CondLaneNet,这是一种新颖的自上而下的车道检测框架,它首先检测车道实例,然后动态预测每个实例的线形。 为了解决车道实例级区分问题,我们引入了一种基于条件卷积和行式公式的条件车道检测策略。 此外,我们设计了循环实例模块(RIM)来克服检测具有复杂拓扑(例如密集线和叉线)的车道线的问题。 受益于几乎不需要后期处理的端到端管道,我们的方法具有实时效率。 我们在车道检测的三个基准上广泛评估了我们的方法。 结果表明,我们的方法在所有三个基准数据集上都达到了最先进的性能。 此外,我们的方法具有准确性和效率的共存,例如 在 CULane 上获得 78.14 F1 分数和 220 FPS。 我们的代码可在 https://github.com/aliyun/conditional-lane-detection 获得。

引言

人工智能技术越来越多地应用于驾驶领域,有利于自动驾驶和高级驾驶辅助系统(ADAS)。 车道检测作为自动驾驶的基本问题,在车辆实时定位、行车路线规划、车道保持辅助、自适应巡航控制等应用中发挥着至关重要的作用。
传统的车道检测方法通常依赖手工算子提取特征 [24, 43, 13, 17, 15, 1, 16, 33],然后通过霍夫变换等后处理拟合线形 [24, 43] 和 随机抽样共识 (RANSAC) [17, 15]。 然而,传统方法无法在真实场景中保持鲁棒性,因为手工制作的模型无法应对不同场景中车道线的多样性[27]。 最近,大多数关于车道检测的研究主要集中在深度学习上 [34]。 早期基于深度学习的方法通过分割检测车道线 [28, 27]。 最近,基于anchor的方法[32, 2, 39],行检测方法[30, 29, 41]和参数预测方法[31, 25]等各种方法被提出,并不断刷新精度和效率。
尽管基于深度学习的车道检测方法取得了很大进展[42],但仍然存在许多挑战。
车道检测的一个常见问题是实例级别的区分。 大多数车道检测方法 [27, 28, 19, 32, 12, 21, 29, 2, 30, 41, 39]首先预测车道点,然后将这些点聚合成线。 但是将不同的点分配给不同的车道实例仍然是一个常见的挑战[34]。 一个简单的解决方案是将车道线标记为固定数量的类(例如,如果最大车道数为 4,则标记为 0, 1, 2, 3)并进行多类分类 [28, 30, 41, 3] . 但限制是只能检测到预定义的固定数量的车道 [27]。
为了克服这个限制,研究了后聚类策略 [27, 19]。 但是,这种策略对于某些情况(例如密集线)来说很困难。 另一种方法是基于锚的方法 [25, 22, 39]。 但是由于anchor [39]的固定形状,预测线形并不灵活。
另一个挑战是检测具有复杂拓扑的车道线,例如叉线和密集线,如图1所示。这种情况在驾驶中很常见narios,例如 分叉线通常在车道数量变化时出现。 Homayounfar 等人[10] 提出了一种可以处理分叉线的HDMap(High Definition Map)离线车道检测方法。 然而,关于实时驾驶场景中复杂拓扑的车道线感知的研究很少。
车道检测任务类似于实例分割,需要为不同的实例分配不同的像素。 最近,一些研究 [35, 38] 研究了条件实例分割策略,这对于车道检测任务也很有前景。 然而,直接将此策略应用于车道检测是低效的,因为掩码的约束与指定线形不完全一致。 [3, 34, 30]。
在这项工作中,我们提出了一种名为 CondLaneNet 的新型车道检测框架。 为了解决车道实例级区分问题,我们提出了受 CondInst [35] 和 SOLOv2 [38] 启发的条件车道检测策略。 与实例分割任务不同,我们将优化重点放在基于行式公式指定车道线形状上 [30, 41]。
此外,我们设计了循环实例模块(RIM)来处理具有复杂拓扑的车道线的检测,例如密集线和叉线。 此外,受益于几乎不需要后期处理的端到端管道,我们的方法实现了实时效率。 这项工作的贡献总结如下:
• 我们通过提出的条件车道检测策略和逐行公式大大提高了车道实例级别的区分能力。
• 我们解决了通过提议的 RIM 检测具有复杂拓扑结构的车道线的问题,例如密集线和叉线。
• 我们的 CondLaneNet 框架在多个数据集上实现了最先进的性能,例如 CurveLanes 的 F1 分数为 86.10(比 SOTA 高 4.6%),CULane 的 F1 分数为 79.48(比 SOTA 高 3.2%)。
此外,我们的 CondLaneNet 的小版本在确保高精度的同时具有高效率,例如 在 CULane 上获得 78.14 F1 分数和 220 FPS。

相关工作

本节介绍最近基于深度学习的车道检测方法。 根据线形描述的策略,目前的方法可以分为四类:基于分割的方法、基于锚的方法、行检测方法和参数预测方法。
图 1. 具有复杂拓扑结构的车道线场景。 应对密集线(第一行)和叉线(第二行)等场景具有挑战性。 在该图中,不同的实例用不同的颜色表示。
2.1基于分割的方法
基于分割的方法 [28, 12, 27, 19, 21, 6] 是最常见的,并且取得了令人印象深刻的性能曼斯。 不同于一般的语义分割任务,车道检测需要实例级别的区分。
早期的方法 [28, 6] 使用多类分类策略来区分车道实例。 正如上一节所述,这种策略是不灵活的。 为了获得更高的实例精度,后聚类策略 [4] 被广泛应用 [27, 19]。 考虑到基于分割的方法通常预测缩小的掩码,一些方法 [19] 预测用于细化的偏移图。 最近,一些研究 [3, 30] 表明将车道线描述为掩码是低效的,因为分割的重点是获得每个像素的准确分类,而不是指定线形。 为了克服这个问题,提出了基于锚的方法和逐行检测方法。
2.2基于锚的方法
基于锚点的方法 [32, 2, 39] 采用自上而下的管道,并通过回归相对坐标将优化重点放在线形上。 预定义的anchors可以减少无视觉线索问题[32]的影响,提高实例判别能力。 由于车道线的形状细长,在目标检测中广泛使用的boxanchor [7] 不能直接使用。 PointLaneNet [2] 和 CurveLane [39] 使用垂直线作为锚点。 LaneATT [32] 设计了具有细长形状的锚点,并在多个数据集上实现了最先进的性能。 然而,固定的锚形状导致描述线形状的自由度低 [39]。
2.3行检测的方法
逐行检测方法 [30, 29, 41] 充分利用先验形状并预测每行的线位置。 在训练阶段,通过每一行的位置约束来实现对整体线形的约束。 基于从行到行的预测位置的连续性和一致性,可以将形状约束添加到模型中 [29, 30]。 此外,在效率方面,最近的一些行检测方法[30,41,11]取得了优势。 然而,实例级别的区分仍然是行式公式化的主要问题。 由于在基于分割的方法 [27, 19] 中广泛使用的后聚类模块 [4] 不能直接集成到行式公式中,行式检测方法仍然采用多类分类策略进行车道实例区分。 考虑到在准确性和效率方面令人印象深刻的表现,我们还采用了 row-wise 公式并提出了一些新的策略来克服实例级区分问题。
2.4参数检测的方法
与上述预测点的方法不同,参数预测方法直接输出参数曲线方程表示的直线。 PolyLaneNet [31] 首次提出使用深度网络对车道曲线方程进行回归。 LSTR [25] 将 Transformer [37] 引入车道检测任务并获得 420fps 的检测速度。 然而,参数化预测方法在准确性方面并没有超越其他方法
图 2. 我们的 CondLaneNet 框架的结构。 主干采用标准 ResNet [8] 和 FPN [23] 进行多尺度特征提取。 添加了转换器编码器模块 [37] 以实现更高效的上下文特征提取。 提议头负责检测位于直线起点的提议点。 同时,预测包含动态卷积核的参数图。 条件形状头部预测行方向位置、垂直范围和偏移图以描述每条线的形状。 为了解决密集线和叉线的情况,设计了 RIM。

方法

给定输入图像 I∈RC×H×W,我们的 CondLaneNet 的目标是预测车道集合 L = {l1, l2, …, lN },其中 N 是车道总数。 通常,每个车道 lk 由一组有序的坐标表示如下。
公式(1)
其中k是车道索引,Nk是第k车道的最大样本点数。
我们的 CondLaneNet 的整体结构如图 2 所示。本节将首先介绍条件车道检测策略,然后介绍 RIM(循环实例模块),最后详细介绍框架设计。
(2)
3.1条件车道检测
针对实例级别的区分能力,我们提出了基于条件卷积的条件车道检测策略——具有动态内核参数的卷积操作 [14, 40]。 条件检测过程 [35, 38] 有两个步骤:实例检测和形状预测,如图 3 所示。实例检测步骤预测对象实例并为每个实例回归一组动态内核参数。 在形状预测步骤中,应用条件卷积来指定实例形状。 此过程以动态内核参数为条件。 由于每个实例对应于一组动态内核参数,因此可以逐个预测形状。
图 3. 条件实例分割与提出的条件车道检测策略之间的差异。 我们的 CondLaneNet 检测车道线的起点来检测实例,并使用 row-wise 公式来描述线形状而不是掩码。 可以根据建议的 RIM 区分重叠线,这将在第 3.2 节中详细说明。
这种策略在实例分割任务上取得了令人印象深刻的性能 [35, 38]。 然而,将条件实例分割策略直接应用于车道检测是生硬和不恰当的。 一方面,由于自由度过高,基于分割的形状描述对于车道线效率低下[30]。 另一方面,由于边界和中心不显眼的视觉特征,一般物体的实例检测策略不适用于细长和弯曲的物体。 我们的条件车道检测策略改进了形状预测和实例检测以解决上述问题。
3.1.1形状预测
我们改进了 row-wise 公式 [30] 以根据我们的条件形状头部预测线形,如图 2 所示。在 row-wise 公式中,我们预测每一行的车道位置,然后将位置聚合到 根据线形的先验,按从下到上的顺序得到车道线。 我们的行式公式包含三个组件:行式位置、垂直范围和偏移图。 前两个输出是大多数行检测方法的基本元素 [30, 41]。 此外,我们预测偏移图作为第三个输出以进行进一步细化。
图 4. 从位置图解析行位置和垂直范围的过程
Row-wise Location 如图 4 所示,我们将输入图像划分为 Y × X 形状的网格并预测对应的位置图,它是由提出的条件形状头输出的形状 1 × Y × X 的特征图。
在位置图上,每一行都有一个横坐标表示车道线的位置。
要获得行式位置,一种基本方法是处理每一行中的 X 类分类。 在推理时,行方向的位置是通过选择每行中响应最快的横坐标来确定的。 但是,常见的情况是线路位置在两个网格之间,两个网格都应该有高响应。 为了克服这个问题,我们引入了以下公式。
对于每一行,我们预测车道线出现在每个网格中的概率。
公式(2)
其中i代表第i行,filoc是位置图floc第i行的特征向量,pi是第i行的概率向量。
最终的行位置定义为预期的横坐标。
公式(3)
其中 E(ˆxi) 是期望的横坐标,pij 是车道线通过坐标 (j, i) 的概率。
在训练阶段,应用 L1-loss。
公式(4)
其中 V 代表标记线的垂直范围,Nv 是有效行数。
垂直范围垂直车道范围是通过逐行预测车道线是否通过当前行来确定的,如图4所示。我们添加一个线性层并逐行进行二元分类。 我们使用位置图中每一行的特征向量作为输入。 采用 softmax-cross-entropy loss 来指导训练过程。
公式(5)
其中 vi 表示第 i 行的预测正概率,y i gt 是第 i 行的真实值。
Offset Map 公式 3 中定义的行方向位置指向网格左侧顶点的横坐标,而不是精确位置。 因此,我们添加偏移映射来预测每行行位置附近水平方向的偏移。 我们使用 L1-loss 来约束偏移图,如下所示。
公式(6)
其中 ˆδij 和 δij 是预测偏移量和坐标 (j, i) 上的标签偏移量。 我们将Ω定义为车道线附近具有固定宽度的区域。 NΩ 是 Ω 中的像素数。
形状描述 每条输出车道线都表示为一组有序的坐标。 对于第 k 行,第 i 行的坐标 (x i k , yi k ) 表示如下。
公式(7)
其中 i ∈ v k min 、vk max 、v k min 和 v k max 分别是预测垂直范围的最小值和最大值,lock i 从 Ek i 向下取整,δ(·) 是预测偏移量。
3.1.2实例分割
我们为实例检测设计了提议头,如图 2 所示。对于一般的条件实例分割方法 [35, 38],通过预测每个对象的中心,在端到端管道中检测实例。
但是,由于线中心的视觉特征不明显,因此很难预测细长曲线和曲线的中心。
我们通过检测位于线起点的提议点来检测车道实例。 起点的定义比中央更清晰,视觉特征更明显。 我们遵循 CenterNet [5] 并预测提案热图以检测提案点。 为了约束提案热图,我们在 CornerNet [20] 和 CenterNet [5] 之后采用了焦点损失。
公式(8)
其中 Pxy 是坐标 (x, y) 处的标签,Pˆ xy 是提案热图坐标 (x, y) 处的预测值。 Np 是输入图像中的提议点数。
此外,我们通过预测遵循 CondInst [35] 和 SOLOv2 [38] 的参数映射来回归动态内核参数。 参数图的约束是通过对线形的约束来构造的。
3.2循环实例模块
在上面描述的提议头中,每个提议点都绑定到一个车道实例。 然而,在实践中,多条车道线可以落在同一个提议点,例如叉车道。 为了处理上述情况,我们提出了循环实例模块(RIM)。
提议的 RIM 的结构如图 5 所示。
图 5. 循环实例模块。 图中h和c分别是短期记忆和长期记忆,f是输入特征向量,s是输出状态logit,k是输出核参数向量
基于 LSTM(Long Short-term Memory)[9],RIM 循环预测状态向量 si 和内核参数向量 ki 。 我们将 si 定义为表示两种状态的二维 logits:“继续”或“停止”。 向量 ki 包含用于后续实例动态卷积的内核参数。 在推理阶段,RIM 反复预测绑定到同一提议点的车道方向内核参数,直到状态为“停止”。 如图2所示,为每个提议点添加了RIM。 因此,每个提议点都可以指导多个车道实例的形状预测。
我们采用交叉熵损失来约束状态输出如下。
公式(9)
其中si是第i个状态的softmax操作的输出,结果yi是第i个状态的ground truth,Ns是一个batch中状态输出的总数。
在训练阶段,总损失定义如下。
公式(10)
超参数 α、β、γ 和 η 分别设置为 1.0、1.0、0.4 和 1.0
3.3架构
整体架构如图 2 所示。我们采用 ResNet [8] 作为主干,并添加一个标准的 FPN [23] 模块来提供集成的多尺度特征。 提议头通过预测形状为 1 × Hp × Wp 的提议热图来检测车道实例。 同时,预测包含动态内核参数的形状 Cp × Hp × Wp 的参数图。 对于提议点位于(xp,yp)的实例,对应的动态核参数包含在参数图上(xp,yp)处的Cp维核特征向量中。 此外,给定内核特征向量,RIM 循环预测动态内核参数。 最后,条件形状头根据动态内核参数实例化地预测线形状。
我们的框架需要强大的上下文特征融合能力。 例如,建议点的预测是基于整条车道线的特征,通常具有拉长的形状和远距离。 因此,我们在主干的最后一层添加了一个 Transformer 编码器结构,用于融合上下文信息。
我们保留编码器层中的二维空间特征并使用卷积进行特征提取。 我们框架中使用的变压器编码器的结构如图 6 所示。
图 6. 变压器编码器的结构。 ⊕和⊗分别表示矩阵加法、点积运算和元素乘积运算。

实验

4.1实验设置
4.1.1数据集
为了广泛评估所提出的方法,我们在三个基准上进行了实验:CurveLanes [39]、CULane [28] 和 TuSimple [36]。 CurveLanes 是最近提出的基准,用于复杂拓扑的情况,例如叉线和密集线。 CULane 是一个广泛使用的大型车道检测数据集,有 9 种不同的场景。 TuSimple 是另一个广泛使用的高速公路驾驶场景数据集。
三个数据集的详细信息显示在表1.中。
4.1.2评估指标
对于 CurveLanes 和 CULane,我们采用 SCNN [28] 的评估指标,该指标使用 F1 度量作为指标。 预测车道线和GT标签之间的IoU用于判断样本是真阳性(TP)还是假阳性(FP)或假阴性(FN)。 两条线的 IoU 定义为它们具有固定线宽的掩码的 IoU。
此外,F1-measure 计算如下:
公式(11、12、13)
对于 TuSimple 数据集 [36],官方给出了三个指标:假阳性率(FPR)、假阴性率(FNR)和准确率。
公式(14)
其中 Cclip 是正确预测的车道点数,Sclip 是剪辑的车道点总数。 准确度大于 85% 的泳道被视为真阳性,否则为假阳性或假阴性。 此外,还报告了 F1 分数。
4.1.3实施细节
我们修复了所有三个数据集的 CondLaneNet 的大、中和小版本。 三个模型之间的差异如表 2 所示。对于所有三个数据集,输入图像在训练和测试期间都被调整为 800×320 像素。 由于在 CULane 和 TuSimple 中没有分叉线的情况,RIM 仅适用于 CurveLanes 数据集。 在优化过程中,我们使用 Adam 优化器 [18] 和步进学习率衰减 [26],初始学习率为 3e-4。 对于每个数据集,我们在没有任何额外数据的情况下在训练集上进行训练。 我们分别为 CurveLanes、CULane 和 TuSimple 训练 14、16 和 70 个时期,批量为 32。结果报告在 CULane 和 TuSimple 的测试集上。 对于 CurveLanes,我们在 CurveLane [39] 之后报告了验证集的结果。
所有实验均在具有 RTX2080 GPU 的机器上计算。
4.2结果
CurveLanes、CULane 和 TuSimple 数据集上的可视化结果如图 7 所示。结果表明我们的方法可以处理复杂的线拓扑。 即使对于密集线和分叉线的情况,我们的方法也可以成功区分实例。
CurveLanes CurveLanes 的比较结果如表 3 所示。CurveLanes 包含具有复杂拓扑的车道线的情况,例如曲线、分叉和密集车道。 我们的大版本 CondLaneNet 达到了 86.10 的最新最先进 F1 分数,比 CurveLane-L 高 4.63%。 我们的小版本 CondLaneNet 仍然有 85.09 F1 分数的性能(比高出 3.40%索塔)。 由于我们的模型可以处理分叉线和密集车道线的情况,因此召回指标有显着提高。 相应地,假阳性结果会增加,导致精度指标下降。
CULane 我们的 CondLaneNet 和其他最先进的方法在 CULane 上的结果显示在表 4 中。我们的方法实现了新的最先进的结果,即 79.48 F1 分数,增加了 3.19%。 此外,我们的方法在九个场景中的八个中实现了最佳性能,显示了对不同场景的鲁棒性。 对于曲线、夜间等一些困难的情况,我们的方法具有明显的优势。 此外,我们的 CondLaneNet 的小版本获得了 78.14 F1 分数,速度为 220 FPS,比 LaneATT-L 高 1.12 和 8.5 倍。 和…相比LaneATT-S、CondLaneNet-S 以类似的效率实现了 4.01% 的 F1 分数提升。 在 CULane 的大多数场景中,我们的 CondLaneNet 的小版本超过了 F1 测量中所有以前的方法。
Tusimple TuSimple 上的结果如表 5 所示。相对而言,该数据集上不同方法之间的差距较小,因为数据量较小,场景较多。 我们的方法达到了 97.24 的新的最先进的 F1 分数。 此外,我们方法的小版本以 220 FPS 获得 97.01 F1 分数。
表4,表5
4.3改进策略的消融研究
我们基于 CondLaneNet 的小版本对 CurveLanes 数据集进行了消融实验。结果如表6所示。我们以基于原始条件实例分割策略[35, 38](如图3.a所示)的车道检测模型作为基线。 第一行显示基线的结果。
在第二行中,应用了提出的条件车道检测策略,并且车道掩码表达式被逐行公式替换(如 3.b 所示)。 在第三行,添加了用于后期细化的偏移映射。 在第四行中,添加了变压器编码器并移除了偏移映射。 第五行显示了具有行式公式、偏移图和变压器编码器的模型结果。 在最后一行,添加了 RIM
表6
比较前两行,我们可以看到提出的条件车道检测策略显着提高了性能。 比较第2行和第3行,第4行和第5行的结果,我们可以看到偏移图的积极作用。 此外,transformer 编码器在我们的框架中起着至关重要的作用,这可以通过比较第 2 行和第 4 行、第 3 行和第 5 行来表示。 此外,针对叉线和密线设计的RIM也提高了精度
4.4Transformer消融研究
本节进一步分析了变压器编码器的功能,这表明在之前的实验中起着至关重要的作用。 我们的方法首先通过检测来检测实例建议点,然后预测每个实例的形状。 建议点的精度对车道线的最终精度有很大影响。 我们设计了不同的控制组来比较 CurveLanes 上的建议点和车道线的准确性。 我们将位于真实点的八个邻域中的提议点定义为真阳性样本。 考虑到RIM的功能,多条线对应的提议点被认为是多个不同的提议点。 我们报告了提案点和车道线的 F1 分数,如表 7 所示。
第一行显示了标准 CondLaneNet 的小、中、大版本的结果。 在第二行,变压器编码器被移除。 在第三行,我们通过用标准模型(第一行)输出的提议热图替换提议热图来破解第二行的推理过程。 对于小版本,移除编码器会导致提议点和车道的显着下降。 但是,使用标准模型的proposal heatmap,第三行的结果接近第一行。
以上结果证明了encoder的作用主要是提高proposal points的检测,依赖于contextual features和global information。
此外,上下文特征可以在更深的网络中得到更充分的细化。 因此,对于中大版本,编码器的提升远不及小版本。

结论

在这项工作中,我们提出了 CondLaneNet,这是一种新颖的自上而下的车道检测框架,它首先检测车道实例,然后逐个实例地预测形状。
为了解决实例级区分问题,我们提出了基于条件卷积和行式公式的条件车道检测策略。 此外,我们设计了 RIM 以应对复杂的车道线拓扑,例如密集线和叉线。 我们的 CondLaneNet 框架在 CULane、CurveLanes 和 TuSimple 上刷新了最先进的性能。 此外,在 CULane 和 CurveLanes 上,我们的 CondLaneNet 的小版本不仅在准确性上超越了其他方法,而且还呈现出实时效率。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值