提供了预训练,149m
本文提出了一种有效且高效的多任务学习网络,可同时执行交通目标检测、可行驶道路区域分割和车道检测任务。YOLOP-v2模型在具有挑战性的 BDD100K 数据集上的准确性和速度方面实现了新的 SOTA 性能。特别是与之前的 SOTA 模型相比,推理时间减少了一半。
论文链接:https://arxiv.org/pdf/2208.11434v1.pdf
代码链接:https://github.com/CAIC-AD/YOLOPv2
在过去的十年中,多任务学习方法在解决全景驾驶感知问题方面取得了不错的成果,同时提供了高精度和高效率的性能。在为计算资源有限的实时实际自动驾驶系统设计网络时,它已成为一种流行的范例。本文提出了一种有效且高效的多任务学习网络,可同时执行交通目标检测、可行驶道路区域分割和车道检测任务。
YOLOP-v2
模型在具有挑战性的BDD100K
数据集上的准确性和速度方面实现了新的最先进 (SOTA
) 性能。特别是与之前的SOTA
模型相比,推理时间减少了一半。
1、简介
尽管计算机视觉和深度学习取得了长足的发展,但基于视觉的任务(如物体检测、分割、车道检测等)在低成本自动驾驶的应用中仍然具有挑战性。最近已经努力建立一个强大的全景驾驶感知系统,这是自动驾驶的关键组成部分之一。
全景驾驶感知系统通过摄像头或激光雷达等常见传感器,帮助自动驾驶车辆全面了解周围环境。基于相机的目标检测和分割任务通常在场景理解的实际使用中因其低成本而受到青睐。目标检测在提供交通障碍物的位置和大小信息方面发挥着重要作用,帮助自动驾驶汽车在行驶阶段做出准确及时的决策。此外,可行驶区域分割和车道段也为路径规划和提高行车安全提供了丰富的信息。
目标检测和分割是计算机视觉领域的两个长期研究课题。有一系列针对目标检测的出色工作,例如 CenterNet
、Faster R-CNN
和 YOLO
系列。常见的分割网络常用于可驱动区域分割问题,例如:UNET
、SegNet
和 PSPNet
。而对于车道检测/分割,需要更强大的网络来提供更好的高层和低层特征融合,从而考虑全局结构上下文来增强分割细节。然而,在实时自动驾驶系统中为每个单独的任务运行单独的模型通常是不切实际的。在这种情况下,多任务学习网络为节省计算成本提供了一种潜在的解决方案,其中网络被设计成编码器-解码器模式,并且编码器被不同的任务有效共享。
在本文中,在对以前的方法进行了深入研究之后,提出了一种有效且高效的多任务学习网络。并在具有挑战性的 BDD100K 数据集上进行了实验。
YOLOP-v2
所有3个任务中都取得了最佳性能:目标检测任务的 AP50
为 0.83,可驾驶区域分割任务的 mIOU
为 0.93,车道检测的准确率为 87.3。与Baseline
相比,性能得到了大大的提升。此外,将在 NVIDIA TESLA V100
上运行的每秒帧数 (FPS
) 提高到 91,这远高于 YOLOP
模型在相同实验设置下的 49FPS
值。它进一步说明模型可以降低计算成本并保证实时预测,同时为其他实验研究的改进留出空间。
这项工作的主要贡献总结如下:
-
更好:我们提出了一种更有效的模型结构,并开发了更复杂的免费袋,例如,在对数据预处理执行 Mosaic 和 Mixup 以及应用了一种新的混合损失时。
-
更快:我们为模型实施了更高效的网络结构和内存分配策略。
-
更强:我们的模型是在强大的网络架构下训练的,因此它具有很好的通用性,可以适应各种场景并同时保证速度。
2、本文方法
2.1、概况
模型受到 YOLOP
和 HybridNet
工作的启发,保留了其核心设计理念,但利用强大的Baseline进行特征提取。此外,与现有工作不同的是,利用解码器的3个分支来执行特定任务,而不是在同一分支中运行可行驶区域分割和车道检测任务。
这种变化的主要原因是作者发现交通区域分割和车道检测的任务难度完全不同,这意味着这两个任务对特征级别的要求不同,因此最好有不同的网络结构。
第 4 节中的实验表明,新设计的架构可以有效地提高整体分割性能,并且在计算速度上引入的开销可以忽略不计。图 2 显示了设计概念的总体方法流程图。
2.2、架构
所提出的网络架构如图 1 所示。它由一个用于从输入图像中提取特征的共享编码器和用于相应任务的3个解码器头组成。本节演示模型的网络配置。
1、Shared Encoder
与使用 CSPDarknet
作为主干的 YOLOP
不同,采用 E-ELAN
的设计来利用组卷积,使不同层的权重能够学习到更多样化的特征。图 2 显示了组卷积的配置。
在Neck
部分,通过连接收集和融合不同阶段产生的特征。与 YOLOP
类似,应用空间金字塔池 (SPP
) 模块来融合不同尺度的特征,并使用特征金字塔网络 (FPN
) 模块来融合不同语义级别的特征。
2、Task Heads
如上所述,为每个单独的任务设计了3个独立的解码器头。与 YOLOv7
类似,我们采用Anchor-base
的多尺度检测方案。首先,使用自下而上结构的路径聚合网络(PAN
)来更好地提取定位特征。通过结合来自 PAN
和 FPN
的特征,能够将语义信息与这些局部特征融合,然后直接在 PAN
中的多尺度融合特征图上运行检测。多尺度特征图中的每个网格都会分配3个不同纵横比的anchor
,检测头会预测位置的偏移量和缩放后的高宽,以及每个类预测的概率和对应的置信度。
所提出方法中的可行驶区域分割和车道分割在具有不同网络结构的单独任务头中执行。与 YOLOP
不同,YOLOP
的两个任务的特征都来自Neck
的最后一层,采用了不同语义级别的特征。
作者发现,与其他两个任务相比,从更深的网络层提取的特征对于可驱动区域分割来说并不是必需的。这些更深层次的特征并不能提高预测性能,反而会增加模型在训练过程中收敛的难度。因此,可行驶区域分割头的分支连接在FPN
模块之前。此外,为了补偿这种变化造成的可能损失,应用了一个额外的上采样层,即在解码器阶段总共应用了4个最近插值上采样。
对于车道分割,任务分支连接到 FPN
层的末端,以便提取更深层次的特征,因为道路线通常不细且在输入图像中难以检测。此外,在车道检测的解码器阶段应用了反卷积,以进一步提高性能。
3、Design of BOF
基于YOLOP
的设计,在检测部分保留了损失函数的设置。是检测损失,是分类损失、目标损失和边界损失的加权和损失,如公式1所示。
此外, 在 和 中使用了 Focal Loss 来处理样本不平衡问题。 用于惩罚分 类, 用于预测置信度。 反映了预测结果与 Ground truth 的重叠率、纵横比和尺度 相似度的距离。合理设置损失权重可以有效保证多任务检测的结果。
交叉熵损失
用于可行驶区域分割,旨在最小化网络输出和Ground truth
之间的分类误差。
对于车道分割,使用Focal Loss
而不是交叉熵损失。因为对于车道检测等困难分类任务,使用Focal Loss
可以有效地引导模型专注于困难样本,从而提高检测精度。
此外,在实验中实现了由Dice loss
和Focal Loss
组成的混合损失。Dice loss
能够学习减轻不平衡问题的类分布。Focal loss
具有强制模型学习分类不均衡的能力。最终损失可以计算为公式 2,如下所示。
其中 是 Dice loss 和 Focal Loss 之间的权衡, C是类别的总数, 因此, C设置为 2 , 因为 在可驾驶区域分割和车道分割中只有两个类别。、 和 分别表示真阳性、假阴性和假阳性。
值得一提的是,在多任务学习方法中引入了 Mosaic 和 Mixup 的增强策略,据论文描述所知,这是第一次在目标检测、可行驶区域和车道检测这三个任务中显示出显著的性能提升。
3、实验结果
3.1、目标检测
3.2、可行驶区域
3.3、车道线分割
3.4、速度对比
3.5、可视化结果
1、白天
2、夜间