论文翻译-Key Points Estimation and Point Instance Segmentation Approach for Lane Detection

在这里插入图片描述

Abstract

用于自动驾驶的感知技术应适应各种环境。在车道线检测(一种基本的感知模块)时,应考虑许多条件,例如车道线数和目标系统的计算能力。为了解决这些问题,在本文中,我们提出了一种车道线检测方法,称为Point Instance Network (PINet)。该方法基于关键点估计和实例分割方法。 PINet包括几个经过训练的堆叠式沙漏型网络。因此,可以根据目标环境的计算能力来选择训练模型的大小。我们将预测关键点的聚类问题转换为实例分割问题;无论车道线的数量如何,都可以对PINet进行训练。 PINetTuSimpleCulane数据集(用于车道检测的公共数据集)上实现了不错的准确性和较少的误报。我们的代码在github上。

I. INTRODUCTION

完全自动驾驶需要了解车辆周围的环境。各种感知模块被融合用于这种理解,并且许多模式识别和计算机视觉技术被应用于这些感知模块[1],[2]。可以定位道路上可行驶区域的车道检测是一种主要的感知技术。识别车道的方法有很多,但是大多数技术都利用车道线检测[3],[4]或道路区域分割[5],[6]。在本文中,我们专注于车道线检测以识别车道。图1显示了我们提出的方法,该方法从输入的RGB图像预测车道的精确关键点,并使用由所提出的网络提取的嵌入特征,将关键点区分为单个实例。另外,提出的网络是端到端的训练,网络规模可以根据目标系统的计算能力进行调整,而不需要改变网络结构或进行额外的训练。
在这里插入图片描述
图1.系统概述。所提出的框架预测了车道线上的关键点,并区分了各个实例,而与车道线的数量无关。另外,如果用户希望在计算能力较弱的系统(例如嵌入式板)上运行经过训练的模型,则可以在不进行额外训练的情况下裁剪和传输网络。

车道线检测的大多数传统方法使用各种手工功能(例如颜色[7],[8]或边缘[9],[10])提取低级车道线特征。这些低级特征可以使用霍夫变换[11],[12]或卡尔曼滤波器[13]进行组合。组合的特征生成车道线信息。这些方法很简单,无需进行重大修改即可适应各种环境。尽管如此,这些方法的性能取决于测试环境的条件,例如光照和遮挡。

深度学习方法在复杂场景中表现出出色的性能。在深度学习方法中,卷积神经网络(CNN)方法主要用于计算机视觉中的特征提取[14],[15]。语义分割方法[16],[17],[18]是计算机视觉的主要研究领域,经常用于车道线检测问题,以推断形状和位置[19],[20],[21], [22]。一些方法使用多类方法来区分各个独立的车道线实例。因此,即使这些方法可以实现出色的性能,它们也只能应用于由固定数量的车道线路组成的场景。作为此问题的解决方案,实例分割方法用于区分各个实例。这些基于语义分割的车道线检测方法,需要一些后处理以估计预测的车道线的确切位置值。为了避免语义分割方法的这种后处理,其他几种方法可以直接预测车道线路的位置[23],[24]。

现有方法有一定的局限性。语义分割方法需要在像素级别进行标记或预处理以进行训练,这很麻烦。这些方法还预测了许多不必要的点,因为语义分割会生成大小与给定输入图像相同的分类像素图像,然而使识别车道线只需要几个点。另外,根据可用的计算能力,现有方法不适用于各种环境。要将其应用于嵌入式板之类的轻量系统,应重新修改和训练整个体系结构。

为了克服这些限制,我们提出的方法使用了受堆叠沙漏网络启发的深度学习模型来预测车道线上的一些关键点。堆叠式沙漏网络[25]通常应用于关键点估计领域,例如姿势估计[26]和目标检测[27],[28]。使用向下采样和向上采样的顺序,堆叠的沙漏网络可以提取有关各种比例的信息。由于堆叠的沙漏网络包含多个受相同损失函数训练的沙漏模块,因此我们可以通过从整个结构中裁剪一些间隔来同时获得具有不同参数大小的各种模型。使用受点云实例分割启发的简单方法,将每个关键点区分为单个实例[29]。

基于摄像头的车道线检测已得到积极发展,许多先进的方法[30],[24]对于公共数据集几乎完全有效。但是,某些方法的误报率更高。false positive,模块无法检测到的车道线,不会突然更改控制值,并且可以从其他检测到的车道线或先前的结果中预测出正确的控制值。但是,误报会导致严重的风险;模块对车道线的不正确识别会导致控制值快速变化。

在这里插入图片描述
图2.提议的框架包括三个主要部分。调整大小的网络将压缩512×256大小的输入数据;压缩后的输入被馈送到包含四个沙漏模块的预测网络。在每个沙漏块的末端应用了三个输出分支。他们预测置信度,偏移量和嵌入功能。损失函数可以根据每个沙漏块的输出来计算。通过剪切几个沙漏模块,可以调整所需的计算资源。

总而言之,图2显示了我们提出的车道线检测框架。它具有三个输出分支,并预测车道线上点的确切位置和实例特征。第三节介绍了更多细节。这些是这项研究的主要贡献:

  • 使用关键点估计方法,我们提出了一种新的车道线检测方法。与其他基于语义分段的方法相比,它产生的尺寸预测输出更紧凑。
  • 该框架由几个沙漏模块组成,因此我们可以通过简单裁剪获得具有不同大小的各种模型,因为每个沙漏模块都是使用相同的损失函数同时进行训练的。
  • 所建议的方法可以应用于各种场景,包括车道线的任何方向(例如垂直或水平车道线)和任意数量的车道线。
  • 所提出的方法具有较低的误报率和值得注意的准确性。它保证了自动驾驶汽车的稳定性。

II. RELATED WORK

车道检测是自动驾驶的重要研究领域。车道检测模块可根据输入数据识别道路上的可驾驶区域。车道线检测被认为是车道检测的主要方法。车道线检测通常会定位区分道路上可驾驶区域的线标记。尤其是考虑到将RGB图像作为输入数据,已经提出了各种手工特征来检测车道线[31],[32],[33],[34],[35]。但是,这些方法在复杂的方案中显示出局限性。

最近,深度学习已成为计算机视觉研究中的主要方法。语义分割[16],[17],[18] [36]是感知研究的主要主题;它可以将输入图像的像素分类为各个类别。生成方法[37],[38]也可以执行类似的功能。因此,语义分割方法和生成方法适用于表达复杂形状的线。 [20],[30],[39]和[40]展示了语义分段的应用和生成模型用于车道线检测。有些方法使用多类方法来区分每个实例。但是,多类方法只能对固定数量的实例进行分类。实例分割方法被提议作为该限制的解决方案。 Neven等。 [41]试图用实例分割来解决这个多类方法的问题。他们提出的LaneNet具有共享的编码器和两个解码器。这些解码器之一执行二进制通道分段;另一种预测嵌入特征以进行实例细分。

尽管语义分割方法可以预测具有复杂形状的线,但是在训练和测试期间,它们需要像素级标记的数据和后处理才能提取线上的精确点。一些直接方法[23],[24]直接在直线上生成精确点。 [23]预测每条车道线的确切起点和终点,以及固定y轴值的x轴值。 [24]提出了Faster RCNN [42]的区域提案网络(RPN)启发的线路提案单位(LPU)。 LPU会沿某些预定义的线建议预测固定y轴值的水平偏移。

这些方法,语义分割方法,生成方法和直接方法会产生许多不必要的输出值。在语义分割和生成方法中,并非所有像素都需要识别车道线。可以从几个关键点预测出一条精确的线。直接方法还具有某些不必要的预测,例如未知的给定目标车道线路的长度,起点和终点。

B.关键点估计
关键点估计技术从输入图像中预测某些重要点,这些关键点称为关键点。人体姿态估计[26]是关键点估计领域的主要研究主题。堆叠的沙漏网络[25]由几个同时训练的沙漏模块组成。沙漏模块可以将各种比例尺的信息传递到更深的层次,从而帮助整个网络获得全局和局部特征。由于这种特性,沙漏网络经常用于检测物体检测区域中物体的中心或角落。对于关键点估计,不仅开发了网络体系结构或损失功能,而且开发了适用于现有网络的优化方法。 [43]提出了一种特征聚合和从粗到精的监督方法,可以应用于其他多阶段方法。 [44]提出了改进网络,以改善其他现有模型的结果。在本文中,这些细化方法未用于指示我们提出的框架的性能。但是,可以将它们应用于改善性能。

III. METHOD

对于车道检测,我们训练了一个由几个沙漏模块组成的神经网络。我们称其为点实例网络(PINet)的网络在车道上生成点,并将预测的点区分为单个实例。为了完成这些任务,我们提出的神经网络包括三个输出分支,一个置信分支,偏移分支和嵌入分支。置信和偏移分支预测车道线的精确的点;使用受YOLO [45]启发的损失函数。嵌入分支生成每个预测点的嵌入特征。嵌入功能被馈送到聚类过程以区分每个实例。嵌入分支的损失函数受实例分割方法的启发。相似性组提议网络(SPGN)[29],一种用于3D点云的实例分割框架,介绍了一种简单的技术和一种用于实例分割的损失函数。根据SPGN提出的内容,我们设计了一个损失函数拟合函数来区分预测车道线的每个实例。

第II-A节介绍了主要架构,II-B节包含有关损失函数的详细信息; II-C节详细介绍了该实现。
在这里插入图片描述

A. Architecture
图2示出了所提出的网络框架。输入RGB图像大小为512×256;它被馈送到调整大小的网络。该图像通过调整大小网络中的卷积层序列被压缩为较小的尺寸(64×32)。调整大小网络的输出被馈送到预测网络。预测网络中可以包含任意数量的沙漏模块本文使用了四个沙漏模块。所有沙漏模块都通过相同的损失函数同时进行训练。在训练步骤之后,用户可以根据计算能力选择使用多少个沙漏模块,而无需其他训练。以下各节提供有关每个网络的详细信息。

1)调整大小网络:调整大小网络会减小输入图像的大小,以节省内存和推理时间。首先,输入的RGB图像大小为512×256。该网络由三个卷积层组成。所有卷积层使用3×3的kernel,步幅2,Padding为1。在每个卷积层之后使用Prelu [46]和批处理归一化[47]。最后,该网络生成尺寸为64×32的调整大小的输出。表I示出了组成层的细节。
在这里插入图片描述
在这里插入图片描述
图3.沙漏块的详细信息,包括三种类型的瓶颈层:相同的瓶颈,向下的瓶颈和向上的瓶颈。输出分支应用于沙漏层的末端;置信度输出转发到下一个块。
2)预测网络:调整大小的网络输出(1286432)被输入到预测部分。这部分预测了车道线路上的精确的点以及用于细分的嵌入特征。该网络由几个沙漏模块组成,每个模块都包括一个编码器,解码器和三个输出分支,如图3所示。一些跳过连接将各种规模的信息传输到更深的层。图3中的每个彩色块都是一个瓶颈模块;这些瓶颈模块在图4中进行了描述。共有三种瓶颈:相同,向下和向上瓶颈。相同的瓶颈产生的输出与输入的大小相同。下行瓶颈用于编码器中的下行采样;向下瓶颈的第一层由具有过滤器大小3,跨度2和填充1的卷积层替换。将具有kernel大小3,步长2和填充1的转置卷积层应用于上部瓶颈。在上采样层。每个输出分支具有三个卷积层,并生成64×32网格。每个网格包含关键点存在的置信度值、偏移量,嵌入特征的输出预测。表II显示了预测网络的详细信息。因为更深的网络具有更好的性能[25],所以它可以充当教师网络。因此,使用知识提炼技术,我们可以期望剪短网络的更好性能。每个输出分支的通道不同(置信度:1,偏移量:2,嵌入:4),并且根据每个输出分支的目标应用相应的损失函数。
在这里插入图片描述
图4.瓶颈的详细信息。三种瓶颈根据其用途具有不同的第一层。
在这里插入图片描述
B. Loss Function
对于训练,四个损失函数应用于沙漏网络的每个输出分支。以下各节提供了每个损失函数的详细信息。如表二所示,输出分支生成64个网格,输出网格中的每个单元由7个通道的预测值组成,包括置信值(1个通道)、偏移量(2个通道)值和嵌入特征(4个通道)。置信度值确定车道线的关键点是否存在;偏移值可对由置信度值预测的关键点的确切位置进行定位,并利用嵌入功能将关键点区分为各个实例。因此,除蒸馏损失函数外,三个损失函数适用于输出网格的每个单元。提取教师网络知识的蒸馏损失函数适用于每个编码器的蒸馏层,如表2所示。每个预测值和特征的详细信息包含在以下章节中。

1)置信度损失:置信输出分支预测每个单元的置信值。如果单元格中存在关键点,则置信值接近1,否则为0。置信支路的输出有1个通道,它被送入下一个沙漏模块。置信损失由存在损失和不存在损失两部分组成。存在性损失用于包含关键点的单元,不存在损失用于降低每个背景单元的置信值。在预测置信值高于0.01的单元处计算不存在损失。因为远离关键点的单元格会迅速收敛,这项技术有助于训练集中在靠近关键点的单元格上。下面显示了置信度分支的损失函数:
在这里插入图片描述
其中 N e N_e Ne代表包含关键点的单元格数量, N n N_n Nn代表不包含任何关键点的单元格数量, G e G_e Ge代表一组包含关键点的单元格, G n G_n Gn代表一组包含点的单元格, C c C_c Cc代表预测值置信度输出分支中的每个像元, c c ∗ c^∗_c cc表示真实值。具有关键点的单元格的真实值为1;否则为0。在推断时,如果置信度值大于预定义的阈值,则我们认为该单元格处存在关键点。 L n o n e x i s t L_{non_exist} Lnonexist第二项是正则化项。
2)偏移损失:PINet从偏移分支预测每个输出像元关键点的确切位置。每个单元的输出值在0到1之间;该值指示与相应单元格相关的位置。在本文中,一个单元格与输入图像的8个像素匹配。例如,如果预测的偏移值为0.5,则关键点的实际位置距离单元格的边缘4个像素。偏移分支具有两个用于预测x轴和y轴偏移的通道。公式2显示了损耗函数:
在这里插入图片描述
由于在不包含关键点的像元上不存在地面真相,因此在计算偏移损耗时将忽略这些像元。

3)嵌入特征损失:该分支的损失功能受SGPN(一种3D点云实例分割方法[29])启发。如果在这种情况下嵌入特征相同,则训练分支以使每个单元的嵌入特征更接近。公式3和4显示了特征分支的损失函数:
在这里插入图片描述
其中 F i F_i Fi表示单元格i的预测嵌入特征, I i j I_{ij} Iij表示单元格i和单元格j是否是同一实例,并且K是一个常数,使得K>0。如果 I i j = 1 I_{ij} = 1 Iij=1,则这些单元格是同一实例,并且如果Iij = 0,这些单元格是不同的实例。对网络进行训练时,当每个像元属于同一实例时,损失函数会使特征更接近。当单元属于不同的实例时,它会分配要素。我们可以使用基于距离的简单聚类技术将关键点区分为单个实例。在本研究中,如果某些预测关键点的嵌入特征在一定距离内,则我们认为它们是同一实例。在这项研究中,特征尺寸设置为4,但是观察到该尺寸对性能没有重大影响。

4)蒸馏损失:根据Newell等人。 [25],当堆叠更多的沙漏模块时,观察到更好的性能。因此,最深的沙漏模块可以是教师网络,并且我们希望,如果应用知识提炼方法,则比教师网络轻的裁剪短网络将表现出更好的性能。 Zagoruyko和Komodakis [48]提出了一种可以应用于CNN模型的简单知识蒸馏方法。这种方法允许学生网络模仿教师网络。侯等人。 [30]表明该方法可以提高整个框架的性能。公式5显示了蒸馏的损失函数:
在这里插入图片描述

其中D表示平方和,Am表示第m个沙漏模块的蒸馏层输出,如表II所示,M表示沙漏模块的数量,Ami表示Am的第i个通道,所有运算符都喜欢sum ,功率和绝对值(|·|)按元素排列。

总损耗Ltotalis等于上述四个损耗项的加权和,并且使用端到端过程对整个网络进行训练,其总损耗如下:

在这里插入图片描述
在训练步骤中,我们将 γ o γ_o γo设置为0.2,将 γ f γ_f γf设置为0.5,将 γ d γ_d γd设置为0.1。 γ e γ_e γe γ n γ_n γn在第IV节中描述。建议的损失函数适用于每个沙漏模块的输出分支。这有助于稳定地训练整个网络。
在这里插入图片描述
在这里插入图片描述
图5.数据扩充方法。 (a)是原始图像,(b),(c),(d),(e),(f)和(g)显示了所应用数据增强方法的示例。

C. Implementation Detail
将所有输入图像调整为512×256尺寸,并从RGB值0到255归一化为0到1,然后再在训练和测试中将数据馈送到建议的网络中。用于评估该方法的两个公共数据集TuSimple [49]和CULane [20]根据固定的yaxis值提供了车道线的x轴值。由于采用了注释方法,因此稀疏地注释了一些靠近水平线的车道线。为了解决此问题,我们通过对原始数据进行线性回归,在x轴的每10个像素处添加了附加注释。还应用了各种数据增强方法,例如阴影,添加噪声,翻转,平移,旋转和强度更改。这些方法如图5所示。

另外,这两个公共数据集包括很多图像帧。但是,数据不平衡。例如,CULane数据集的测试集包含各种类别,例如正常,夜间和十字路口。类别框架的数量差异很大。 CULane类别的确切比率可以在IV-B部分(结果部分)中找到。为了解决此问题,我们对在训练步骤中显示出较差损失值的困难数据进行采样,并增加了困难数据的选择率。这个概念类似于hard negative mining technique

我们使用一个GPU(GTX 2080ti 11GB)进行训练和测试;源代码是用Pytorch编写的。在训练步骤中,每批包含六张图像;诸如阈值和系数之类的超参数是通过实验确定的。超参数的确切值在以下部分中显示。 PINet预测车道线上关键点的确切位置,然后应用样条曲线拟合方法获得更平滑的曲线。

IV. EXPERIMENTS

在本节中,我们在两个公共数据集TuSimple [49]和CULane [20]上评估PINet。以下A节介绍了官方评估方法中用于每个数据集的概述和评估指标。 B节显示了PINet的评估结果; C部分包括对知识蒸馏方法效果的消融研究。

A. Dataset
我们的网络PINet在TuSimple和CULane上均训练过。表III总结了这两个数据集的信息。 TuSimple比CULane相对简单,因为TuSimple数据集仅由高速公路环境组成,障碍较少。我们使用官方评估源代码评估PINet;下一节将介绍数据集和评估指标的详细信息。
1)TuSimple:TuSimple数据集包含3,626个训练集和2,782个测试集。准确性是TuSimple数据集的主要评估指标,由以下等式根据正确点的平均数定义:

在这里插入图片描述
其中 C c l i p C_{clip} Cclip表示由训练好的模型预测的点数, S c l i p S_{clip} Sclip表示剪辑中真实点的数量。下式还提供了误报率(FN)和误报率(FP):
在这里插入图片描述
其中 F p r e d F_{pred} Fpred表示错误预测的车道数量, N p r e d N_{pred} Npred表示预测的车道数量, M p r e d M_{pred} Mpred表示错过的车道数量, N g t N_{gt} Ngt表示真实车道的数量。
2)CULane:CULane数据集包括88,880个训练图像和34,680个测试图像。 与TuSimple数据集不同,CULane数据集中显示了各种道路类型,例如城市和夜晚。 我们遵循官方评估指标[20]评估CULane数据集。 根据[20],假设每条车道线的宽度为30像素,我们计算出评估模型的预测与真实值之间的交叉相交(IoU)。 在CULane数据集中,F1量度是主要的评估指标;它定义为以下等式。
在这里插入图片描述

TP是真实的正值,这意味着预测的IoU大于阈值0.5。 FP为假阳性,FN为假阴性。
B. Result
1)TuSimple:对TuSimple数据集的评估需要某些固定y轴值的精确x轴值。评估结果详见表五。图6显示了TuSimple数据集的某些结果。表IV-VI中的值nH表示该网络由n个沙漏模块组成。尽管未使用预先训练的权重和额外的数据集,但PINet在准确性和误报率方面也表现出了很高的性能。假阴性率也显示出合理的值。

表VI根据沙漏模块的数量显示了GTX 2080ti GPU的参数数量和fps。 PINet的大多数组件都是由瓶颈层构建的。这种架构可以节省大量内存。使用所有沙漏网络时,PINet可以25 fps的速度运行,如果仅应用一个沙漏网络,则该网络的工作速度约为40 fps。在评估短网络时,该网络只是从整个受过训练的网络中裁剪而来,而无需任何其他培训。最深层的网络具有更高的性能,但被修剪的短层网络的性能与最深层网络的性能存在细微的差异。距离阈值为0.08,以区分每个实例;置信度阈值为0.35(4H),0.32(3H),0.30(2H)和0.52(1H); γe和γnare为1.0和1.0。

2)CULane:表IV和图7显示了PINet在CULane数据集上的详细结果。我们在结果中观察到三个特征。首先是PINet在CULane数据集上显示出特别低的误报率。这意味着我们的PINet对车道的错误预测比其他方法要少。这保证了安全性能。第二,裁剪的网络2H和3H表现出与整个网络相似的性能;只有1H的性能较差。在我们建议的体系结构中,当深度为三个沙漏模块时,似乎蒸馏效果最佳。最后,在强光条件下,PINet比其他方法效果更好。 CULane数据集中的夜间和炫光类别包括强光条件; PINet在这些类别中显示出更高的性能。但是,由于PINet基于关键点估计方法,因此局部阻塞或车道线路不清晰可能会对性能产生负面影响。拥挤,箭头和曲线类别可以是PINet的示例,在这些类别中显示的性能略低。 PINet在CULane数据集上显示了总体F1量度的最高性能。区分每个实例的距离阈值为0.08;置信度阈值为0.94(4H),0.95(3H),0.96(2H)和0.97(1H); γe和γnare最初设置为1.0和1.0。在最后40个时间段,γeis从1.0变为2.5。
C. Ablation Study
在这里插入图片描述
在这里插入图片描述

我们研究了知识蒸馏方法的效果,该知识蒸馏方法的目的是为了减少剪短的网络与充当教师网络的最深网络之间的差距。表VII显示了消融研究的结果。平均性能差距使用以下公式计算:
在这里插入图片描述
其中AGn表示4H和nH之间的平均性能差距,N表示此消融研究的训练时期总数,PnH i表示第i个时期的nH性能。性能在tuSimple测试集中进行评估;我们会收集前30个时期的数据。当使用蒸馏方法时,当不使用蒸馏方法时,整个网络和修剪的短网络之间的平均性能差距较小。这意味着蒸馏方法可帮助修剪的短网络很好地模仿教师网络。
V. CONCLUSION
在这项研究中,我们提出了一种新颖的车道检测PINet,结合点估计和点实例分割方法。该方法可以实时工作。另外,PINet可以根据目标系统的计算能力进行裁剪。裁剪后的网络无需任何额外培训即可直接应用。 PINet可实现高性能和较低的误报率;低误报率保证了自动驾驶汽车的安全性能,因为很少会出现错误预测的车道。特别是,PINet在夜晚,阴影和刺眼的光线等困难的光照条件下表现出比其他方法更好的性能。但是,当存在本地阻塞或车道线路不清晰时,PINet会受到限制。通过消融研究表明,知识蒸馏方法可以提高截短网络的性能。结果,我们观察到裁剪后的短网络的性能接近整个网络的性能。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值