本文提出了一种轻量级模型,用于驾驶区域和车道线分割,这是自动驾驶中常见的任务,用于理解周围环境,确保安全和高效的道路导航。然而,原始的语义分割模型计算成本高,需要高端硬件,这在自动驾驶车辆的嵌入式系统中并不可行。
本文提出了一种名为TwinLiteNet的轻量化设计模型,能够实现准确和高效的分割结果。作者在BDD100K数据集上评估了TwinLiteNet,并与现代模型进行了比较。实验结果表明,TwinLiteNet在性能上与现有方法相似,但所需计算资源明显较少。
具体而言,TwinLiteNet在仅有400,000个参数的情况下,对于驾驶区域任务实现了91.3%的mIoU得分,对于车道线检测任务实现了31.08%的IoU,并在GPU RTX A5000上实现了415 FPS。
此外,TwinLiteNet可以在计算能力有限的嵌入式设备上实时运行,特别是在Jetson Xavier NX上实现了60FPS,这使其成为自动驾驶车辆的理想解决方案。
1、简介
近年来,自动驾驶汽车已成为一个具有前景的领域,可能彻底改变交通和道路发展的方式。自动驾驶的一个关键组成部分是准确高效地感知环境。深度学习已应用于实际的驾驶控制任务。语义分割是这个问题中的一个基本任务,涉及将图像中的每个像素标记为相应的语义类别,例如道路、车辆、行人等。这些信息可以帮助自动驾驶汽车安全导航并避免障碍物。
具体而言,准确地检测可行驶区域和车道标线为系统做出转向和变道决策提供了关键信息。然而,像UNet、SegNet、ERNet等语义分割模型;LaneNet、SCNN、ENet-SAD等车道线检测模型;以及YOLOP、YOLOPv2、HybridNets、DLT-Net、Multinet等多任务模型通常具有较高的计算成本,并需要高端硬件,这对于低计算能力的嵌入式系统自动驾驶车辆来说并不适合。
本文介绍了一种轻量级架构,可以轻松部署在自动驾驶车辆系统中。本报告的主要贡献如下:
- 为可行驶区域分割和车道线检测提供了一种计算效率高的架构。
- 提出的架构基于ESPNet,是一个具有深度可分离卷积和双注意力网络[Dual Attention Network]的可扩展卷积段网络。与使用单个解码器块的ESPNet不同,TwinLiteNet为每个任务使用了2个解码器块,类似于YOLOP、YOLOPv2。
- 实验结果表明,TwinLiteNet在各种图像分割任务中可以实现相当的性能,同时参数更少。
2、本文方法
在本节中,将详细介绍轻量级模型的设计。
- 首先,提出设计一个输入和两个输出的模型,如图1所示;TwinLiteNet由一个输入和两个输出组成,使得模型可以学习两个不同任务的表示。
- 然后,建议使用双注意力模块来提高模型性能。
- 此外,还提出了用于训练模型的一些损失函数。还介绍了使用的训练和推理机制。
2.1、模型架构
本文提出了一种适用于分割的轻量化架构,称为TwinLiteNet,如图2所示。本文的方法利用ESPNet-C作为信息编码块,实现了高效的特征图生成。将双注意力模块集成到网络中,以捕捉空间和通道维度上的全局依赖性。这些模块增强了网络感知上下文信息的能力。然后将得到的特征图通过两个专门执行两个特定任务(可行驶区域分割和车道线检测)的编码器块。通过采用这种架构可以以更低的成本实现这些任务的准确和高效的分割结果。
首先,与使用Backbone网络和高计算成本方法不同,利用低计算成本但高准确性的ESPNet。
使用ESPNet-C作为编码器,从输入图像中提取特征。在ESPNet-C中,除了通过特征图在ESP模块之间共享信息,它还在架构的不同块之间整合输入信息。从ESPNet-C获取特征图后,通过双注意力模块处理提取的特征。双注意力模块包括位置注意力模块(PAM)和通道注意力模块(CAM)。
PAM模块旨在将更广泛的上下文信息融入局部特征中,增强其表示能力。另一方面,CAM模块利用通道图之间的相互依赖性,突出特征图的相互依赖性,并增强特定语义的表示。通过卷积层对两个注意力模块的输出进行转换,并使用元素加操作实现特征融合。
论文为可行驶区域和车道分割任务提出了多输出设计。不是使用单个输出来进行所有需要分割的对象类型,而是采用2个解码器块来处理特征图,并分别获得每个任务的最终结果。
推荐这种多输出设计的原因如下:
- 独立性能优化:通过两个专用的输出块,可以独立优化每个类别的分割性能。这种方法允许单独对可行驶区域和车道进行微调和改进,而不受其他类别的影响。
- 增强准确性:使用两个输出块来处理不同的层次也提高了分割准确性。通过独立关注每个层次,模型可以更好地学习和调整与可行驶区域和车道特定的特征,从而为每个类别实现更准确的分割结果。
通过采用多输出设计,并为可行驶区域和车道分割任务分别使用两个独立的输出,实现了独立的性能优化和增强的分割准确性。解码器块设计简单但高效,依赖于ConvTranspose层,后跟批量归一化和pRelu激活函数,如图3所示。
在解码之后,TwinLiteNet返回两个分割图像,用于可行驶区域和车道线检测任务。TwinLiteNet通过利用ESPNet-C和特征分析块双注意力网络,增强了模型的特征提取能力。此外,简单的解码器块有助于减少计算成本并提高模型的效率。
2.2、损失函数
作者为提出的分割模型使用了两种损失函数:Focal Loss 和 Tversky Loss。
Focal Loss的目标是减少像素间的分类错误,并解决易于预测样本的影响以及严重惩罚难以预测样本的问题,如方程式1所示。
另一方面,Tversky Loss受到Dice Loss 的启发,并解决了分割任务中的类别不平衡问题。然而,与Dice Loss不同,Tversky Loss引入了α和β参数来调整计算过程中假阳性和假阴性的重要性,如Tversky方程式2所述。
在这里,符号的含义如下:
- N:输入图像中像素的数量
- C:类别数量,在这种情况下,一个类别代表可行驶区域或车道,而其余类别代表背景。
- :用于确定像素属于类别的预测值
- :类别中像素的真实值(即与GT相对应的标签)
- γ:平衡校正因子。
在这里,符号的含义如下:
- TP:真正例(True Positives)
- FN:假负例(False Negatives)
- FP:假正例(False Positives)
- C:类别数量,在这种情况下,一个类别代表可行驶区域或车道,其余类别代表背景。
- α,β:控制假正例和假负例的惩罚程度。
每个头(任务)的聚合损失函数采取以下形式:
2.3、训练机制和推理机制
使用尺寸为640x360的输入图像来训练TwinLiteNet。使用了Adam 优化器,并在训练过程中逐渐减小学习率。TwinLiteNet在100个epochs中进行训练,批大小为32。
在推理过程中,采用了新参化技术,将卷积和批量归一化层合并为单一层,从而加速了推理速度。这种合并过程仅在推理过程中发生,而在模型训练过程中,它们仍然作为单独的层:卷积和批量归一化。
3、实验
3.1、速度对比
表格I将提出的模型与其他多任务网络进行了比较。TwinLiteNet仅有0.4M参数,远低于之前的模型。此外,TwinLiteNet在相同的测试设备上实现了415FPS的推理速度,而其他模型的推理速度仅在100FPS以下。这表明TwinLiteNet在参数数量和推理速度方面都表现出了显著的优势。
3.2、可驾驶区域分割结果
结果如表II所示。尽管TwinLiteNet的准确性高于一些先前提出的模型,但TwinLiteNet略低于当前的State-of-the-Art (SOTA) YOLOPv2 (-1.88%)和低于YOLOP (-0.18%)。这是可以理解的,因为TwinLiteNet的开发重点是优化推理时间而不是准确性。
图4a展示了一些模型的分割结果。结果展示了TwinLiteNet在各种光照条件下(包括白天和夜晚场景)完成任务的出色性能。值得注意的是,该网络在对可行驶区域进行分割时表现出较高的准确性,并且能够有效避免与对向车道混淆。
3.3、车道线检测结果
如表III所示,TwinLiteNet在IoU方面仍然低于当前的SOTA HybridNets(-0.52%),但TwinLiteNet的准确率达到了97.3%,远高于当前的模型。图4b展示了一些模型的分割结果。实验结果表明,TwinLiteNet在多车道道路上表现出很强的预测能力,在白天和夜晚场景下表现出色。这一观察结果强调了该模型的准确性和对车道配置的准确预测能力,不受光照条件的影响。
3.4、消融研究
在本节中,作者进行了消融研究。提出了不同消融选项并展示了它们对应的结果,如表IV所示。评估了仅包含主干网络和一个输出用于整个可行驶区域的Baseline模型,以及逐步添加了Dual Attention模块、多头输出和重参化方法的模型。
结果显示,Baseline模型实现了最高的推理速度,达到530FPS,但与完全集成的模型相比,牺牲了很多准确性,后者实现了415FPS的推理速度。这表明在优化推理速度的同时,模型的准确性也受到了影响。
3.5、边缘设备
本节介绍了在嵌入式设备上部署TwinLiteNet模型的推理速度结果,具体是在NVIDIA Jetson TX2和Jetson Xavier NX上的部署情况。使用TensorRT SDK在这些Jetson设备上执行模型推理。结果表明,TwinLiteNet模型在边缘设备上实现了实时计算,Jetson Xavier NX的帧率达到了60FPS,Jetson TX2的帧率达到了25FPS。
为了评估模型的性能,使用BDD100K数据集的测试视频,在边缘设备上记录了预测过程,部分可见的结果展示在图5中。这些结果表明TwinLiteNet模型在各种嵌入式设备上在白天和夜晚图像中都能够实现准确的预测。
此外,还监测了TwinLiteNet模型在嵌入式设备上的功耗和工作温度。图6a显示了记录的功耗情况,图6b显示了模型在边缘设备上推理过程中的工作温度。这些测量结果提供了TwinLiteNet模型在实际部署场景中的能量效率和热性能的信息。
4、参考
[1]. TwinLiteNet:An Efficient and Lightweight Model for Driveable Area and Lane Segmentation in Self-Driving Cars.