SwiftLane: Towards Fast and Efficient Lane 翻译

摘要

最近在车道检测方面所做的工作已经能够在复杂的场景中准确地检测车道,但许多无法提供实时性能,特别是在计算资源有限的情况下。 在这项工作中,我们提出了 SwiftLane:一个简单、轻量级、基于端到端深度学习的框架,结合行分类公式,用于快速高效的车道检测。 该框架补充了误报抑制算法和曲线拟合技术,以进一步提高准确性。 我们的方法实现了每秒 411 帧的推理速度,在速度方面超越了最先进的技术,同时在流行的 CULane 基准数据集的准确性方面取得了可比的结果。
此外,我们提出的框架与 TensorRT 优化一起促进了作为嵌入式系统的 Nvidia Jetson AGX Xavier 上的实时车道检测,同时实现了每秒 56 帧的高推理速度。

引言

车道检测是驾驶员辅助系统和自动驾驶汽车中的关键要素,因为车道标记信息对于在道路上安全操纵车辆至关重要。
由于恶劣的天气、光照条件和遮挡,在现实世界中检测车道是一项具有挑战性的任务。
由于上述系统中可用于车道检测的计算预算有限,因此轻量、快速和准确的车道检测系统至关重要。
最近的车道检测方法分为两大类:基于语义分割的方法和基于行分类的方法。 虽然基于语义分割的方法 [1]-[3] 在准确性方面提供了有竞争力的结果,但一个常见的缺点是由于按像素分类和大型主干而降低了速度。 另一方面,基于行分类的方法 [4]、[5] 侧重于提高速度和获得实时性能。 然而,基于网格的表示在行分类方法中的固有局限性以及由于训练集中车道结构相似而导致的过度拟合偏差可能会导致 精度降低,突出了车道检测模型中的速度-精度权衡。
在这项工作中,我们提出了一个简单、轻量级、基于端到端深度学习的车道检测框架,具有较小的主干和较少数量的乘法累加操作 (MAC),遵循行分类方法。
通过降低计算复杂度显着提高推理速度,并且轻量级网络架构更不容易过拟合。 此外,我们还引入了基于车道段长度和 Pearson 相关系数的误报抑制算法,以及作为后处理技术的二阶多项式拟合方法,以提高系统的整体精度。 综合实验结果显示在 CULane [1] 基准数据集上,同时将我们的结果与其他最先进的方法进行比较。
消融研究显示了所提出的每种方法如何对速度和准确性做出贡献。
此外,我们在与机器人操作系统 (ROS) [6] 集成的 Nvidia Jetson AGX Xavier 上部署了我们的车道检测框架,以展示我们的轻量级网络架构在嵌入式系统中执行实时车道检测的能力。 训练后的模型使用 TensorRT 进行优化和量化,以提高推理速度。 我们还为本地捕获的街景图像提供定性结果,以展示我们的模型对车道检测任务的概括程度。
总之,我们的贡献如下:我们介绍了一种新颖的、轻量级的、端到端的深度学习架构,辅以两种有效的后处理技术,用于快速高效的车道检测。 我们提出的方法极大地提高了推理速度,达到每秒 411 帧 (FPS) 以超越最先进的技术,同时实现可比的准确性。 我们使用 TensorRT 进一步优化训练模型,并在 ROS 生态系统中的嵌入式系统上实现它。 整个系统实现了 56 FPS 的推理速度,证明了我们的方法执行实时车道检测的能力。
相关工作
最初,车道检测的研究主要集中在经典的图像处理算法上,例如使用基本的手精心制作的特征 [7]-[9]、基于颜色的方法 [10]、[11],以及使用机器学习算法(如决策树和支持向量机)[12]、[13] 的传统特征提取方法。 尽管这些方法在计算上成本较低,但在具有遮挡、阴影和不同光照条件的复杂场景中性能较差。
最近基于深度学习的方法优于经典方法,可以进一步分为两大类:基于语义分割的方法和基于行分类的方法。 在基于语义分割的方法 [1]-[3] 中,通过将每个像素分类为车道或背景,在每个像素的基础上完成分类。 SCNN [1] 中提出了一种称为逐切片卷积的特殊卷积方法,它使信息在同一层内传播,以提高对车道等细长结构的检测。 CurveLane-NAS [2] 专注于使用车道敏感神经架构搜索框架捕获远程上下文信息和短程弯曲轨迹信息。 从包含重要上下文信息的训练模型的不同层中提取的注意力图被用作 SAD [3] 中较低层的蒸馏目标。 基于语义分割的方法中的逐像素计算增加了计算复杂度并大大降低了推理速度。
通过解决计算复杂性问题,基于行分类的方法 [4]、[5] 已经能够向实时车道检测迈进。 在这些方法中,输入图像被分成一个网格,对于每一行,模型输出每个单元格属于一条车道的概率。 这种方法首先在 E2E-LMD [4] 中引入,通过使用称为水平缩减模块的特殊模块将分割主干的输出转换为行式表示。 UltraFast [5] 使用低成本、基于行分类的网络解决了车道检测中的无视觉线索问题,该网络利用了全局和结构信息。 尽管他们的方法达到了 322.5 FPS 的最先进速度,但与其他方法相比,准确性较低。
上面提到的算法几乎都被在高端计算平台中实施和在嵌入式系统中实施车道检测器是相对较少研究的领域。 [14] 引入了一种针对 PXA255 嵌入式设备优化的车道检测算法,该算法实现了 13 FPS 的帧速率。 PathMark [15] 是另一种在基于 TIOMAP4430 的嵌入式系统中以 13 FPS 运行的车道检测算法。 Nvidia Jetson-TK1 板已在 [16] 中用于以 44 FPS 实现实时车道检测和偏离警告系统。 在 [17] 中,针对嵌入式平台提出了车道检测和建模管道,该管道可在 Jetson-TX2 嵌入式设备中提供实时性能。 所有这些方法都依赖于基于经典图像处理的技术,与基于深度学习的方法相比,在复杂场景中表现不佳。

方法

在本节中,我们将介绍车道表示机制,详细解释我们的模型架构以及用于进一步提高模型精度的算法。
车道表示
我们按照 [5] 引入的公式将车道检测任务作为行分类问题进行处理。包含车道的图像区域被划分为预定义数量的行锚(h),每行锚被划分为预定义数量的网格单元(w),如图 2 所示。 车道 © 是预先定义的,对于每个车道,车道位置由 ah × w 网格表示。 每个行锚点的末尾附加一个单元格,以指示该行锚点中没有特定车道。
模型架构
我们为车道检测任务提出了一个简单的基于端到端轻量级卷积神经网络的模型架构,如图 1 所示。所提出模型的第一阶段是从输入图像中提取特征的主干。 作为主干,我们使用“ResNet-14”,它是通过删除 ResNet18 [18] 的最后四个卷积层获得的,通过降低计算复杂度来提高速度。
主干的输出是图像的特征表示,然后将其送入 2 × 2 最大池化层以减少空间维度的维数。
为了降低通道维度的维度,应用了 1×1 卷积层。 该输出被展平以获得一维张量,然后通过两个全连接层获得输出张量。 Dropout 层在两者之间实施,以进一步防止网络过度拟合。
输出张量表示每行锚点中属于每个车道的每个网格单元(包括无车道单元)的得分。 Si,j,k 表示属于第 i 条车道的第 j 行锚点中的第 k 个网格单元的得分,可以通过以下方式获得,
公式(1)
这里,f、X、c、h 和 w 分别代表分类模型、输入图像、车道数、行锚点数和网格单元数。 然后可以通过选择每个车道的每一行锚点中得分最高的网格单元来提取车道点。 如果最后一个网格单元不是得分最高的单元,则第j行anchor中第i个车道的位置由下式给出,
公式(2)
在最后一个网格单元格中得分最高意味着所考虑的车道不存在于选定的行锚点中。
为了训练模型,我们将分类损失定义为负对数似然损失,其由下式给出,
公式(3)
这里,Ti,j 表示根据地面实况在第 j 行锚点中第 i 个车道的正确位置(网格单元),而 Pi,j,k 表示第 j 行锚点中第 k 个网格单元属于第 i 个的概率 可以通过以下方式获得的车道
公式(4、5)
误报抑制
我们提出了两种后处理技术来减少模型输出中的错误检测。 首先,我们删除检测到的车道点数少于阈值的小车道段的所有实例。 其次,我们删除了与直线有相当大偏差的所有车道实例。 Pearson 相关系数衡量两个变量之间的线性相关性,由 (6) 给出,其中 xi 和 yi 是 x 和 y 变量的样本数据点,x¯ 和 y¯ 是各自的均值
公式(6)
在我们的案例中,已识别车道段的行锚点和网格单元的 Pearson 相关系数用于衡量车道点可以使用直线表示的程度。 由于大多数车道与直线略有偏差,因此 Pearson 相关系数的量级应接近 1。 因此,我们删除了 Pearson 相关系数低于阈值的所有车道实例
曲线拟合
在大多数情况下,车道是具有较小曲率值的直线或曲线段。因此,车道可以在更大程度上用二阶多项式近似。
由于我们使用有限数量的网格单元,因此模型输出中的车道在离散域中表示。二阶多项式拟合可用于将这些离散网格单元数替换为连续值,从而生成平滑的车道段

实验

在本节中,我们将详细介绍用于评估我们的模型的数据集、培训过程以及实时应用程序嵌入式系统实现的详细描述。
数据集描述
为了训练和定量评估我们的模型,我们使用公开的CULane[1]基准数据集,这是最大的车道检测数据集之一,共有133235帧,分辨率为1640×590。数据集分为训练集、验证集和测试集,分别包含88880帧、9675帧和34680帧。该数据集涵盖多个复杂场景,测试图像分为9类:正常、拥挤、眩光、阴影、无线、箭头、曲线、十字路口和夜间。
作为评估指标,F1度量用于比较CULane基准中的性能。每条车道由一条30像素宽的线表示,每条预测线与地面真值的联合交点(IoU)大于0.5被视为真正数。然后,F1测度计算如下,其中tp、fp和fn分别代表真阳性、假阳性和假阴性
模型训练
CULane数据集中的每个图像都从590×1640的输入分辨率调整为288×800。我们使用36行锚(h)和150个网格单元(w)来表示包含车道的区域(原始图像中的高度范围为260到590)。车道数(c)设置为4。使用车道点数抑制假阳性的阈值设置为12,使用皮尔逊相关系数抑制假阳性的阈值设置为0.995。
作为优化算法,使用带有动量[24]的SGD,初始学习率为0.1,动量为0.9,权重衰减为1×10−4.培训模型。
该模型训练了50个时期,在第15、25、35和45个时期,学习率乘以系数0.3。
为了训练和测试我们的模型,我们使用了一个由Intel Core i9-9900K CPU和Nvidia RTX-2080 Ti GPU组成的计算平台。所有实验都是在[5]实现的基础上使用Pytork[25]进行的。
为了在不过度拟合的情况下提高模型的鲁棒性和通用性,我们在训练模型时采用了两种数据增强技术。首先,我们将随机仿射变换适配到每个包含随机仿射变换的图像旋转、随机水平移动和随机垂直移动。
其次,我们使用颜色抖动增强技术来随机改变输入图像的亮度和对比度。
编码系统实现
作为嵌入式系统,我们使用具有所需处理能力的Nvidia Jetson AGX Xavier在CUDA和Tensor内核的帮助下运行基于深度学习的算法。通过生成TensorRT引擎,我们进一步优化了嵌入式系统的车道检测模型,如图3所示。首先,将经过训练的PyTorch模型转换为ONNX文件格式,然后TensorRT Python API中的ONNXParser使用ONNX模型生成TensorRT引擎。我们评估了构建TensorRT引擎时使用单精度浮点(FP32)和半精度浮点(FP16)格式的情况。
我们在机器人操作系统(ROS)[6]生态系统中实现车道检测器系统,如图4所示。
图像馈送器节点从给定的视频文件检索帧,并将每个帧发布到输入帧主题。车道检测器节点检测当前帧中的车道,并将检测结果发布到车道检测主题。暂时更快的推理速度,我们使用FP16量化TensorRT引擎进行车道检测任务。可视化工具节点标记当前帧中检测到的车道点,并将生成的图像发布到输出帧主题。RViz可视化工具用于实时可视化车道检测。

结果

我们的方法在CULane基准数据集上的性能与最先进的车道检测进行了比较表I中的方法。误报数显示在“交叉”类别下,因为该类别的基本真相中没有真阳性。通过获取1000次运行的平均每秒帧数(FPS)值来测量推断速度,包括模型的前向传递和后处理步骤。以十亿为单位的乘法累加运算数在“GMACs”列中表示。为了进行更公平的比较,我们在与我们相同的条件下测量了[5]的速度。
可以观察到,虽然我们的方法是最快的,但在F1测量中,我们的方法与其他最先进的方法取得了竞争性的结果。我们的方法还使用了最少数量的乘法累加运算(MAC),这突出了我们公式的效率。“交叉”类别中的低误报数验证了我们的误报抑制技术的有效性。与基于分割的方法[1]、[3]相比,推理速度大大提高,同时提供更好的结果。与其他方法中速度最快的[5]相比,我们的方法取得了更好的结果,F1测量值增加了6.6%。虽然我们获得了与[2]和[4]相当的性能,但不能就速度进行直接比较,因为没有提到它们的推理速度。虽然〔20〕、〔21〕、〔22〕和〔23〕达到了比我们的方法好或更好的结果,但是它们的最佳执行模型的低推理速度充当了实时执行的障碍,特别是在资源受限的环境中。
在英伟达JETSON AGX沙维尔上的Py火炬模型和所生成的FP32和FP16 TunSRRT发动机的性能在表II中显示在F1测量和速度方面。推断速度计算为平均值每秒帧数用于推断ROS生态系统内本地捕获视频的值。可以观察到,在精度几乎保持不变的情况下,通过TensorRT对模型进行优化和量化,推理速度显著提高。
我们的车道检测器模型获得的定性结果如图6所示,用于CULane数据集中的九个类别。此外,为了评估我们训练过的模型的稳健性,还推断了包含一系列道路场景(包括城市、农村和高速公路条件)的本地捕获街景图像。其中一些结果如图5所示。
消融实验
作为一项烧蚀研究,根据表III中给出的速度和F1测量值,对每种建议的方法进行评估。第一行包含基本模型的结果,并根据GPU上的正向推断时间计算FPS值。高FPS值显示了我们提出的具有减少乘法累积操作(mac)的轻量级网络架构的效率。其余几行显示了建议的后处理技术如何有助于提高精度。然而,每种方法的使用都会降低FPS值,特别是因为这些算法是在CPU上运行的。

结论

在这项工作中,我们提出了一种简单、轻量级、基于端到端深度学习的网络体系结构,并结合行分类公式,用于快速高效的车道检测。此外,我们还介绍了一种基于车道段长度和皮尔逊相关系数的假阳性抑制算法,以及一种二阶多项式拟合方法作为后处理技术。总的来说,我们的方法在速度达到411 FPS方面超过了最先进的技术,同时在准确性方面取得了竞争性的结果,这在CULane基准数据集上进行的定性和定量实验中得到了证明。通过使用TensorRT优化和量化我们的训练模型,并在与ROS集成的同时部署到嵌入式系统上,我们进一步证明了我们的轻量级网络体系结构实时执行的能力,实现了56 FPS的高推理速度。对局部采集的街景图像的推理结果表明,我们的方法在车道检测任务中具有良好的通用性。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值