更好、更快、更强的多任务全景感知YOLOPv2,目标检测、freespace、车道线检测

今年5月29日,小汤给大家分享了《端到端的多任务感知网络HybridNet,性能优于YOLOP》,论文 HybridNets: End2End Perception Network,代码已开源,在目标检测、车道线、freespace的多任务感知任务上性能优于YOLOP,取得了新SOTA。视频效果如下:

端到端的多任务感知网络:目标检测、车道线、freespace,性能优于YOLOP。HybridNets: End-to-End Perception Network

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

paper:https://arxiv.org/pdf/2208.11434v1.pdf
code:https://github.com/CAIC-AD/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头组成。
在这里插入图片描述

1 Shared Encoder
与使用 CSPDarknet 作为主干的 YOLOP 不同,采用 E-ELAN 的设计来利用组卷积,使不同层的权重能够学习到更多样化的特征。

在Neck部分,通过连接收集和融合不同阶段产生的特征。与 YOLOP 类似,应用空间金字塔池 (SPP) 模块来融合不同尺度的特征,并使用特征金字塔网络 (FPN) 模块来融合不同语义级别的特征。

2 Task Heads
YOLOPv2为每个单独的任务设计了3个独立的decoder。与 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 具有强制模型学习分类不均衡的能力。最终损失可以计算公式 ,如下所示:

在这里插入图片描述

其中 是 Dice loss 和 Focal Loss 之间的权衡, C是类别的总数, 因此, C设置为 2 , 因为在可驾驶区域和车道线检测中只有两个类别。

值得一提的是,在多任务学习方法中引入了 Mosaic 和 Mixup 的增强方法,根据论文描述,这是第一次在目标检测、可行驶区域和车道检测这三个任务中显示出显著的性能提升。
在这里插入图片描述

4 实验

4.1 目标检测
在这里插入图片描述

4.2 可行驶区域
在这里插入图片描述

4.3 车道线检测
在这里插入图片描述

4.4 速度比较
在这里插入图片描述

4.5 可视化展示
**1 白天**在这里插入图片描述
2 夜间
在这里插入图片描述

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

代码暂未开源,模型权重也暂时没有公开。

你觉得YOLOPv2的效果如何?欢迎点赞、转发,也欢迎加入技术交流群和众多同行朋友一起讨论。

技术交流群
欢迎对车道线检测、车位检测、目标跟踪、目标检测、目标分类、语义分割、深度估计等计算机视觉任务及自动驾驶技术(感知、融合、规控、定位、建图、传感器、嵌入式移植、测试、产品等)感兴趣的朋友、同行,加入技术交流群,一起学习,一起玩!
群内免费分享各类相关学习资料、研报、行业资讯、技术问题讨论,欢迎加入!添加小汤vx:TQ1508420095,请备注:技术交流群!

相关阅读(点击进入)

车道线检测综述及近期新工作

车道线检测新工作VIL-100: A New Dataset and A Baseline Model for Video Instance Lane Detection ICCV2021

CVPR2022车道线检测Efficient Lane Detection via Curve Modeling

Stixel算法将物体抽象成立在地面上的一根根的Sticks,这些Sticks将图片分割成Freespace与障碍物。Stixel是一个细长矩形,宽度固定,高度与障碍物相同。它是一种超像素抽象,介于像素与物体之间,在性能和算法复杂度上比二者有着明显的优势。与像素级的算法相比,Stixel将物体抽象成了一根根立在地面上的长方形柱子,有效降低了计算规模。与传统的目标检测相比,Stixel的一般性较强。传统的目标检测一般是对某一类的目标检测,如行人、车辆等。而Stixel并不区分类别,它可以用于ADAS和无人驾驶系统上,提升了一般性而且降低了系统实现复杂度。\[3\] 因此,Stixel算法可以用于检测非标障碍物,即那些不属于特定类别的障碍物。通过将图像分割成Stixels,可以对障碍物进行抽象表示,并且可以通过Stixels的位置和高度信息来检测非标障碍物。\[3\] #### 引用[.reference_title] - *1* *3* [计算机视觉大型攻略 —— 立体视觉(5)Stixel World](https://blog.csdn.net/plateros/article/details/102817168)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Stixel_World(single)学习笔记](https://blog.csdn.net/weixin_30702413/article/details/96924793)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值