在这里插入图片描述
今年年初出了一片《端到端的多任务感知网络HybridNet,性能优于YOLOP》,论文 HybridNets: End2End Perception Network,代码已开源,在目标检测、车道线、freespace的多任务感知任务上性能优于YOLOP,取得了新SOTA。视频效果如下:

Yolop

但仅仅3个月,‍YOLOPv2又来了,实现了新的反超。
在这里插入图片描述

1 摘要

在上一个十年里,多任务学习网络在解决全景驾驶感知问题方面取得了优异的表现,同时实现了精度和效率的大幅提升。多任务学习框架已经成为有限计算资源条件下实时自动驾驶系统设计的主流选择。本文提出了一种有效且高效的多任务学习网络——YOLOPv2,可以同时完成目标检测、可行驶区域分割和车道检测三个任务。

YOLOPv2模型在具有挑战性的自动驾驶基准数据集BDD100K 上的准确性和速度方面实现了新的SOTA。尤其是与之前的YOLOP、Hybrid-Net等SOTA模型相比,推理时间减少了一半

2 简介

尽管计算机视觉和深度学习已经取得了显著的巨大发展,但对于object detection、segmentation、lane detection等基于视觉的任务而言,在低成本自动驾驶的应用中仍然不是一件容易的事情。全景驾驶感知系统(Panoptic Driving Perception)通过摄像头或激光雷达等常规传感器,帮助车辆全面了解车身周围的情况。基于相机的目标检测和目标分割任务通常在场景理解的实际使用中得益于其较低的成本而受到广泛选择。目标检测在提供交通障碍物的位置和大小信息方面发挥着重要作用,帮助自动驾驶汽车在行驶阶段做出准确及时的决策。同时,可行驶区域分割和车道线检测也为路径规划和提高行车安全提供了丰富的信息。目标检测和目标分割是CV方向的两个长期研究课题。经过近年来的发展,已经诞生了一系列的出色工作,包括 CenterNet、Faster R-CNN 和 YOLO 系列等。常见的目标分割网络常用于可行驶区域划分,例如:UNET、SegNet 和 PSPNet等。而对于车道检测/分割而言,需要更强大的网络来提供更好的高层和低层特征融合,从而考虑全局结构上下文信息。然而,在实时自动驾驶系统中为每个单独的任务运行单独的模型通常是不太现实的。在此背景下,多任务学习网络应用而生,为节省计算成本提供了一种潜在的解决方案,网络通常被设计成encoder-decoder模式,其中encoder被不同的任务有效共享。在本文中,在对历史方法进行了深入分析之后,提出了一种有效且高效的多任务学习网络——YOLOPv2,并在具有挑战性的 BDD100K 数据集上进行了相关实验。YOLOPv2在3个任务中都取得了最佳性能:目标检测任务的 AP50 为 0.83,可行驶区域分割任务的 mIOU 为 0.93,车道线检测的准确率为 87.3。与 Baseline 相比,性能得到了大大的提升。此外,将在NVIDIA TESLA V100上运行的FPS达到了 91,远远高于 YOLOP 模型在相同实验设置下的 49 FPS 。这进一步说明模型可以降低计算成本并保证实时预测,同时为其他实验研究的改进留出空间。YOLOPv2的主要贡献如下:

  • **Better:**提出了一种更有效的模型结构,例如,在对数据预处理执行 Mosaic 和 Mixup 以及应用了一种新的混合损失;
  • **Faster:**为模型设计了更高效的网络结构和内存分配策略;
  • **Stronger:**模型是在强大的网络架构下训练完成的,具有良好的通用性,可以适应各种场景并同时保证速度;

3 YOLOPv2

3.1 概况

YOLOPv2是基于YOLOP 和 HybridNet,保留了其核心设计理念,但利用强大的 backbone 进行特征提取。此外,与现有工作不同的是,利用encoder的3个分支来执行特定任务,而不是在同一分支中运行可行驶区域和车道检测任务。这主要是因为作者发现可行驶区域和车道检测的任务难度完全不同,这意味着这两个任务对特征级别的要求不同,因此最好有不同的网络结构。第 4 节中的实验表明,新设计的网络结构可以有效地提高整体分割性能,并且在计算速度上引入的开销可以忽略不计。图 2 显示了设计概念的总体方法流程图。

在这里插入图片描述

3.2 网络结构

YOLOPv2的网络结构如下图所示,由一个用于从输入图像中提取特征的共享encoder和用于相应任务的3个decoder头组成。
在这里插入图片描述

The network of YOLOPv2
3.1 Shared Encoder

与使用 CSPDarknet 作为主干的 YOLOP 不同,采用 E-ELAN 的设计来利用组卷积,使不同层的权重能够学习到更多样化的特征。在Neck部分,通过连接收集和融合不同阶段产生的特征。与 YOLOP 类似,应用空间金字塔池 (SPP) 模块来融合不同尺度的特征,并使用特征金字塔网络 (FPN) 模块来融合不同语义级别的特征。

3.2 Task Heads

YOLOPv2为每个单独的任务设计了3个独立的decoder。与 YOLOv7 类似,采用Anchor-base的多尺度检测方案。首先,使用自下而上结构的路径聚合网络(PAN)来更好地提取定位特征。通过结合来自 PAN 和 FPN 的特征,能够将语义信息与这些局部特征融合,然后直接在 PAN 中的多尺度融合特征图上运行检测。多尺度特征图中的每个网格都会分配3个不同纵横比的anchor,检测头会预测位置的偏移量和缩放后的高宽,以及每个类预测的概率和对应的置信度。所提出方法中的可行驶区域和车道线检测在具有不同网络结构的单独任务头中执行。与 YOLOP 不同,YOLOP 的两个任务的特征都来自Neck的最后一层,采用了不同语义级别的特征。作者实验发现,与其他两个任务相比,从更深的网络层提取的特征对于可行驶区域任务来说并不是必需的。这些更深层次的特征并不能提高性能,反而会增加模型在训练过程中的收敛难度。因此,可行驶区域头的分支连接在FPN模块之前。此外,为了补偿这种变化造成的可能影响,使用了一个额外的上采样层,即在解码器阶段总共应用了4个最近邻插值上采样。对于车道线检测分支,连接到 FPN 层的末端,以便提取更深层次的特征,因为车道线通常较细且在输入图像中难以检测。此外,在车道检测的解码器阶段应用了反卷积,以进一步提高性能。

3.3 Design of BOF

基于YOLOP的设计,在检测部分保留了损失函数的设置,即分类损失、目标检测损失和边界损失的加权和损失,如公式1所示。
在这里插入图片描述
此外, 在 和 中使用了 Focal Loss 来处理样本不平衡问题。 用于惩罚分类, 用于预测置信度。 反映了预测结果与 Ground truth 的重叠率、纵横比和尺度相似度的距离。合理设置损失权重可以有效保证多任务检测的结果。交叉熵损失用于可行驶区域分割,旨在最小化网络输出和Ground truth之间的分类误差。对于车道线检测,使用Focal Loss而不是交叉熵损失。因为对于车道检测等分类难的任务,使用Focal Loss可以有效地引导模型专注于困难样本,从而提高检测精度。此外,在实验中实现了由Dice loss和Focal Loss组成的混合损失。Dice loss 能够学习减轻不平衡问题的类分布。Focal loss 具有强制模型学习分类不均衡的能力。最终损失可以计算公式 ,如下所示:

在这里插入图片描述
其中 r r r 是 Dice loss 和 Focal Loss 之间的权衡, C是类别的总数, 因此, C设置为 2 , 因为在可驾驶区域和车道线检测中只有两个类别。 T P p ( c ) TP_{p(c)} TPp(c) F N p ( c ) FN_{p(c)} FNp(c) F P p ( c ) FP_{p(c)} FPp(c)分别表示真阳性、假阴性和假阳性。值得一提的是,在多任务学习方法中引入了 Mosaic Mixup 的增强方法,根据论文描述,这是第一次在目标检测、可行驶区域和车道检测这三个任务中显示出显著的性能提升。
在这里插入图片描述

4 实验

4.1 目标检测

与YOLOP一样,这里使用mAP50和Recall作为评价指标。我们的模型获得了更高的mAP50和更好的召回率,如表2所示
在这里插入图片描述

4.2 可行驶区域

表3给出了可行驶区域分割的评价结果,采用MIOU对不同模型的分割性能进行评价。我们的模型获得最好的性能,MIOU指标达到0.93
在这里插入图片描述

4.3 车道线检测

在这里插入图片描述

4.4 速度比较

在这里插入图片描述

4.5 检测效果展示

1 白天
在这里插入图片描述
2 夜间
在这里插入图片描述

3 动图效果
文件大小超过了10M,不支持上传,感兴趣的朋友可以去github上查看。

总结

论文提出了一种高效的端到端多任务学习网络,该网络同时执行3种驾驶感知任务:目标检测、可行驶区域分割和车道检测。我们的模型在具有挑战性的BDD100k数据集上性能达到SOTA,大大超过了现有的模型的速度和准确性

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐