文摘
车道检测中扮演一个重要组成部分高级驾驶员辅助系统和自动驾驶系统。然而,车道检测是受许多因素影响等一些具有挑战性的交通情况。多车道检测也是非常重要的。要解决这些问题,我们提出了一个基于实例的车道检测方法分割,RS-Lane命名。这种方法是基于LaneNet和使用分割注意力ResNeSt提出改善特性表示巷等细长和稀疏的注释标记。我们也使用Self-Attention蒸馏来增强网络的特征表征能力不增加推理时间。RS-Lane可以检测车道没有数量限制。TuSimple和CULane数据集上的测试结果表明,RS-Lane与SOTA取得了类似的结果,改进了在具有挑战性的交通情况下如没有线,炫光,阴影。本研究为应用程序提供一个参考的车道检测自动驾驶和高级驾驶员辅助系统。
1。介绍
在自主驾驶车道检测中起着至关重要的作用。可靠的车道检测可以帮助自主驾驶系统作出正确的决策。车道检测算法是一个具有挑战性的任务,由于许多因素如各种各样的路面标志,复杂多变的道路条件,路面标志的固有的特性。在本文中,我们提出了一个基于LaneNet车道检测方法(1使用分割ResNeSt提出的关注[]2]和Self-Attention蒸馏(SAD) [3)提高细长的特征表示和稀疏像车道标记注释。
当前车道检测方法大致可以分为两类:一是基于传统计算机视觉,另一个是基于深度学习。大多数的传统检测方法依靠提取某些特征来检测车道如颜色特征(4- - - - - -6),边缘特征(7,8)、几何特性(9- - - - - -11),等等。他们也可能结合霍夫变换(12共识(RANSAC)[]和随机样本13,14]。这些方法是简单和有效的,但他们需要手动调整参数。虽然他们可以执行当工作在正常情况下,他们不能适应情况等不同条件下照明和闭塞。
最深刻的学习方法是基于卷积神经网络(CNN) (1,15,16]。CNN的发展,越来越多的理论和结构。这些先进的理论也被用于通道检测,如注意力机制(3),深黑色的卷积(17],语义分割[17- - - - - -19],实例分割[20.,21),等等。递归神经网络(RNN)和长期短期记忆(LSTM) [22)也用于检测车道在连续帧。
尽管这些方法具有良好的性能在大多数正常的情况下,仍有一些局限性。首先,大多数方法只能检测一个固定数量的车道。其次,由于细长的车道,背景像素的数量远远大于车道像素的数量。学习这些特性可能是非常困难的。同时,某些情况下几乎没有视觉线索甚至根本没有线索,如没有线,阴影遮挡,而复杂的照明条件。在这些情况下,检测图像的车道可能会非常棘手。
为了解决上述问题,我们使用LaneNet提出的框架(1),使用像素嵌入[23),实现实例分割,这样我们的方法可以检测车道没有数量限制。我们使用Self-Attention蒸馏(SAD) (3]ResNeSt提出的机制和注意力分散2)提高细长的特征表示和稀疏像车道标记注释。与此同时,悲伤不会增加模型的推理时间。结果TuSimple数据集和CULane数据表明,我们的方法在一般情况下,与现有的方法比较的。最重要的是,我们的方法显示更好的改善情况很少有视觉线索,如没有线,阴影和炫光。
我们的贡献总结如下:(我)我们使用分割注意力改善网络的特性表征巷等细长和稀疏的注释标记。(2)我们用悲伤的蒸馏和注意力机制来进一步提高网络的能力无需更多的注释信息。同时,它不增加推理时间部署。(3)通过使用像素嵌入获取车道情况下,我们的方法可以检测车道没有数量限制,大多数车道检测方法的局限性。我们的方法在具有挑战性的交通情况下还显示了巨大的改善,如没有线,阴影和炫光。
本文的其余部分组织如下。部分2评论车道检测的一些相关研究。部分3介绍了拟议的车道检测方法。部分4讨论了我们的实验结果。部分5使得本文的结论。
2。相关研究
建立车道检测方法可以分为传统的视觉方法和深度学习方法。然而,这两种方法都可以分为三个步骤:图像预处理,特征检测和车道模型拟合。图像预处理是消除噪音的一部分。特征检测使用通道的特点提取车道的地区。车道模型安装一般采用最小二乘法,花键配合等。
其中,特征检测是最重要的一部分,车道检测算法和性能起着决定性的作用。有很多种车道标记,包括黄线,白线,实线和虚线。此外,车道标记在图片的比例非常低。可能会有磨损和阻塞,使检测更加困难。
自从AlexNet [24],卷积神经网络(CNN)已广泛应用于计算机视觉领域以其突出的特征提取能力。越来越多的优秀的提出了神经网络,如ZFNet [25],GoogLeNet [26],VGGNet [27],ResNet [28]。ResNet提出以来,它已经被广泛地应用于骨干网络由于其简单的和模块化的结构。近年来,有许多变种提出基于ResNet,如ResNeSt [2]和ResNeXt [29日]。这些网络也广泛应用领域的车道检测。
语义分割方法(30.- - - - - -32)是用来区分背景和车道像素。实例分割方法(23)用于直接得到车道位置。对象检测方法(33)是用来消除噪声引起的汽车和行人。
在[1),他们把车道检测问题作为实例分割问题。他们设计了一个两个分支,多任务网络分割巷实例。在[3),一本小说知识蒸馏的方法,提出了Self-Attention蒸馏(SAD),它允许一个模型学习本身没有任何额外的监督或标签。锅等。20.)提出了一种相邻像素之间的消息传递机制更有效地利用视觉信息,大大提高了深度分割方法的性能。在[21),配方和结构的损失提出了解决问题的速度和没有视觉线索。拟议的配方作为车道检测问题的基于行的选择使用全局特征和达到惊人的速度和准确性。在[22),提出了一种混合网络结合CNN和RNN的健壮的车道检测连续驾驶场景。在这个框架中,每一帧的特征输入被CNN首先抽象编码器。然后,所有输入帧的顺序编码特性是由ConvLSTM处理。在[34有人知道由罗[],33)与尼共(35)是用来消除噪音,然后提出了一个车道标记模型推理方法,可以检测车道车道标记时失踪。但它只能检测两个车道。事实上,(3,20.- - - - - -22,34)与固定数量的车道都是有限的。
在本文中,我们设计一个网络,同时执行语义分割和实例分割和车道的数量没有限制。我们的方法在具有挑战性的交通情况下也有更好的性能。
3所示。该方法
我们的方法可以分为如下几个模块。图像预处理模块,输入可以适当处理更容易提取特征在稍后阶段。驾驶状况及其注释转换成标准格式,可以输入到模型中。在模型训练阶段,带注释的数据用于训练网络,以便它可以实现通道的分割。后处理阶段的最终结果是让通过去噪和拟合模型的输出。图1展示了我们的方法的流程图。
3.1。预处理
这个模块流程的输入图像特征提取更容易在后期阶段,提高了速度和准确性。在我们的方法中,预处理模块主要是输入图像downsampled。
图像的原始大小是1280720年TuSimple数据集和1960年590年的CULane数据集。如果是直接输入到网络,计算是非常大的。因此,需要downsampled原始图像。在本文中,我们使用双线性插值downsample图像大小为512288 (TuSimple数据集)和800年288 (CULane数据集)。
在我们的方法中,在我们的网络有两个分支机构,这意味着两个输出。所以,我们做了两个标签基于注释的一个输入。一个标签是二进制分支,表示一个像素是否属于车道或背景。和另一个是嵌入分支,表示像素所属的车道。此外,由于原始图像downsampled,相同的操作应该应用于标签;结果如图所示2。
(一)
(b)
(c)
3.2。模型训练
我们的网络使用LaneNet提出的结构(1分割)同时执行语义分割和实例,使用encoder-decoder [36)的框架。语义分割是实现对输入进行像素级处理图片,像素属于车道。与此同时,基于语义分割,分割使用像素嵌入[执行实例23]De Brabandere等提出的方法。
不同,LaneNet使用一个编码器和两个解码器,这意味着每个分支都有一个译码器。减少网络的参数和复杂性,我们只有一个解码器,使用两个不同的 卷积层末端的译码器两个分支。二元语义分割、分支和嵌入分支例如分割。网络的结构显示在图中3。
3.2.1之上。编码器
我们的编码器使用ResNeSt为骨干。ResNeSt份提出了一种机制,它可以获得关注基于不同组织和不同的渠道。作为ResNet的一个变种,ResNeSt保留完整的ResNet结构和conv1和4层。每一层包含几个街区。编码器的结构如图4。首先,编码器将输入分成几组块(或主要)沿着通道尺寸。然后,每组分为几个分裂(或子组)。通过不同的旋转将分裂后,每组特征的地图是一个分裂的加权组合,而权重选择基于上下文信息。块的输出连接组的特征图谱。这种结构使网络利用多维信息,使跨团队和横跨海峡的注意。
我们添加两个悲伤的路径,进一步提高网络的特征提取能力。悲伤使网络学习本身,不需要任何提取信息。通过使注意力地图层模仿越高的越低,较低的层可以学习更高的功能表示。由于下层的特征表征能力是增强,高的和整个网络也增强。
应用悲伤的步骤可以概括如下:(我)挤压。特征映射被挤到一个频道地图,地图生成的关注。(2)插值。Upsample目标地图的大小来模拟的。(3)Softmax。softmax操作在同一维度申请地图。(iv)模拟损失。得到模拟地图和目标地图之间的MSE损失。
第一步是注意力地图的生成相当于找到一个映射函数: 在哪里表示的输出米th层和 , ,和 ,分别表示该频道、高度和宽度。这个映射函数可以通过计算这些值统计构建海峡对岸的维度。
在我们的方法中,我们设置 ,后侯et al。3]。此外,侯et al。3)使用空间softmax注意力地图。然而,我们发现,使用空间softmax后,有大量的0存在的地图,而且只有几个值几乎是1,这并不有利于计算梯度值。所以,我们在同一个维度softmax申请地图。
3.2.2。解码器
解码器执行反褶积操作解码特征图的输出编码器和实现upsampling和分类。我们的解码器有5层,层编码器的一一对应。为了充分利用全局上下文信息,我们使用skip-connect Unet提出(32)连接编码器和译码器的输出。译码器的结构如图1。在最后一层的解码器,我们有两个分支,即二进制分支和嵌入分支。我们使用两个卷积与1×1的内核层生成的输出二进制分支和嵌入分支。二进制分支输出语义分割。嵌入分支输出一个三通道嵌入地图,这意味着一个3 d为每个像素嵌入向量。
3.2.3。损失函数
损失函数的优化网络中起着重要作用。我们的网络有两个输出结束时,需要选择适当的损失函数。
自车道图像中像素的比例非常小,有严重的data-imbalance问题巷分割任务。为了解决这个问题,我们使用骰子损失作为语义分割任务的损失。
培训后,嵌入分支输出3 d为每个像素嵌入向量。像素之间的距离嵌入属于同一车道的很小。和像素属于不同车道的嵌入的之间的距离最大化。De Brabandere et al。23]介绍了三项实现损失函数,方差损失 ,距离损失 ,和正规化的损失 。方差损失将嵌入的像素的意思是嵌入巷,也就是说,使嵌入像素属于同一车道之间的距离近了。损失的距离推动集群中心除了彼此之外,也就是说,增加了嵌入像素属于不同车道线的距离。正则化的功能损失是吸引所有集群原点。
乃文[1)等人做了一些修改损失函数的公式和省略 。我们使用他们修改的损失函数,如方程所示4)和(5)。 在哪里和hyperparameters,表示数量的集群,是像素属于集群的数量吗 , 的嵌入向量像素,的意思是嵌入集群 ,和意味着l2距离。
我们在网络,添加两个悲伤的路径layer2之间,layer3, layer4。提取后注意地图,因为目标地图小于起源地图,我们upsample目标映射到相同的地图和执行softmax起源的大小在每个地图。然后我们计算均方误差(MSE)模拟地图和目标之间的映射。可悲的损失是制定如下: 在哪里表示提取、插值和softmax操作。
总损失包括这三个方面,如下: 在哪里的损失是语义分割任务与骰子损失函数计算。的参数 , ,和平衡每一个损失的影响。在我们的实验中,我们发现最好的性能 , ,和 。
3.3。后处理
正如上面提到的,网络的输出有两种:一是语义分割地图输出的二进制分支,另一个是嵌入地图嵌入分支的输出。我们使用分割图作为一个面具,面具应用嵌入映射,这样我们就可以得到嵌入地图只有巷像素。然后我们执行意味着集群上转移到集群的每个车道和获得真正的实例分割的结果。
大多数时候,车道非常直的开始,他们开始弯曲的景象。最小二乘法拟合不能适合这样的曲线。所以,对于每一个车道,我们中心分每10行,通过三次样条插值得到最终的输出。
4所示。实验结果
4.1。开发和测试环境
我们使用Python作为主要的开发语言。深度学习模型的训练和测试是基于PyTorch框架。图像处理部分使用OpenCV框架。科学计算的部分使用numpy和sklearn。整体环境配置参数如表所示1。
4.2。数据集
评估我们的方法,我们使用两个数据集TuSimple数据集(37和CULane数据集38]。TuSimple数据集收集道路信息在不同的时间白天,包括两个车道/三车道/四条车道/或多个车道,与不同的交通状况,包括清晰的车道线和严重磨损。一些样品的数据集在图所示5。
(一)
(b)
CULane数据集是一个更具挑战性,更大的数据集,包括正常和8具有挑战性的情况下,如拥挤,晚上,没有线。不同情况下的比例如图6。一些例子如图7。
(一)
(b)
(c)
(d)
CULane相比,TuSimple数据集是相当简单的。但CULane数据集中在四车道标记的检测,而TuSimple数据集包括四条车道或更多。和这两个数据集的基本信息如表所示2。
4.3。评价指标和测试结果
通常,我们把车道检测二元分类问题,所以可以由混淆矩阵的性能。此外,为了与其他方法比较,我们也使用官方数据集所提供的评价指标。
CULane数据集(38)使用精度,回忆,F1评估检测。精确的表达在方程(8),并给出召回的表达在方程(9)。TP(真阳性)表示车道像素的像素数量,预测结果是积极的;FP(假阳性)表示像素的数量不是巷像素,但预测结果是积极的;FN(假阴性)表示车道像素的像素数量,但预测结果都是负面的。一起来测量这两个值,F1是调和平均数,表达式所示方程(10)。
TuSimple [37使用精度,计算如下。 在哪里表示正确预测巷分和的数量是真实的数量弄点。同时,FN和FP是作为参考。
我们与基本方法的比较,LaneNet, ENet-SAD, EL-GAN TuSimple数据集表给出3。CULane数据集的比较表4。
表3展示了我们的TuSimple比较结果。考虑到不同的方法的准确性,都已经相当高,我们的方法之间的差距和最好的很小(0.0027)。它是公平地说,我们有类似的性能TuSimple艺术的状态。表4表明,我们的方法具有更好的性能在具有挑战性的情形下,尤其是在没有线,阴影和炫光的情况。在正常情况下我们的方法具有良好的整体性能和改善具有挑战性的交通情况。
训练网络的输出如图8。
(一)
(b)
从图8,可以看出,训练网络有很好的识别效果车道在各种干扰下,像道路如图8 (b)闭塞的大型车辆。语义分割阶段未能识别阻挡车道线的像素,但实例分割阶段仍然可以分类两道相同的车道。
TuSimple数据集上的测试结果如图9。
图9显示检测结果的一部分,本文设计的车道线检测算法。它表明,我们的方法具有良好的性能在普通公路上的情况。它可以检测到超过4车道。当有一个大面积的阴影在路上,我们的方法仍然可以工作得很好。
CULane数据集上的测试结果如图10。因为CULane包含更困难的情况下,图10展示了我们的方法的性能在拥挤的情况下,hazzle光情况下,晚上和性能没有道路标线或还有其他标记。
(一)
(b)
(c)
(d)
(e)
(f)
(g)
(h)
从上面的测试结果,可以看出,我们的方法具有良好的鲁棒性。它可以处理大部分的白天正常情况下和执行在困难的条件下。比较也表明,我们的方法取得了艺术的状态。
为了测量实时性能的方法,我们也测试的运行时间的方法。在我们每一步算法的平均运行时间如表所示5。
方法的实时性能在现有硬件设备(如表所示1)是稍微偏离。现在我们的方法的运行时间是关于54每帧女士。通常,50 ms可以满足大多数情况下的实时要求。聚类算法的方法主要是需要时间的,占了近一半的运行时间。这是因为通过GPU集群算法无法加速。但它可以由一些简单的解决方案在应用工程。一个是升级CPU和GPU,另一个是减少图像预处理时的规模。通过这些举措,我们的方法可以应用于工程。
5。结论
在本文中,我们提出一个新的车道检测网络,利用分割注意力和Self-Attention蒸馏在具有挑战性的交通情况下提高性能。使用像素嵌入获取车道情况下,我们的方法也没有限制数量的车道。
结果TuSimple表明RS-Lane可比性能与国家的艺术在大多数正常的情况。CULane和结果表明,RS-Lane等具有挑战性的交通情况的改善没有线和阴影。一般来说,我们的方法达到最先进的性能和车道检测为应用程序提供一个参考。尽管实时性能略,我们的方法可以应用在工程通过一个小变化。
在未来,我们将进一步探讨如何提高速度和准确性在同一时间。我们还将继续工作在各种天气条件的情况下,如多雨和多雾。除此之外,我们的工作是一个合作车辆基础设施系统的一部分,尤其是对未来智能汽车设计和控制5 g技术(42- - - - - -44]。
数据可用性
从可用的数据集https://github.com/TuSimple/tusimple-benchmark和https://xingangpan.github.io/projects/CULane.html。
的利益冲突
作者宣称没有利益冲突有关这篇文章的出版。
确认
这项研究部分由中国国家重点研发项目(没有。2020 yfb1600400)、广州科技计划项目(没有。202007050004)、深圳基础研究项目(没有。JCYJ20200109142217397)和广东省自然科学基金(没有。2021 a1515011794)。