多任务全景感知YOLOPv2:目标检测、freespace、车道线

news2025/1/24 22:34:57

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

Yolop

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

  • 论文:YOLOPv2: Better, Faster, Stronger for Panoptic Driving Perception
  • 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头组成。
在这里插入图片描述

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,大大超过了现有的模型的速度和准确性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/40056.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大厂Java面试必备面试题:基础语法-数据类型-编码-注释-运算符-关键字-流程控制语句

基础语法 数据类型 Java有哪些数据类型 定义:Java语言是强类型语言,对于每一种数据都定义了明确的具体的数据类 型,在内存中分配了不同 大小的内存空间。 分类: 基本数据类型 Java源代码---->编译器---->jvm可执行的Java字…

如果Controller里有私有的方法,能成功访问吗?

背景 写代码的时候,复制粘贴的时候,没注意到方法的属性,就导致了Controller里有了一个私有的方法,然后访问这个接口的时候就报了空指针异常,找了好久才找到是这个原因。 来看一个例子 Service public class MyServi…

Netty面试经典问题

目录 Netty是怎么实现高性能设计的? 简单介绍一下对于Netty的了解 Netty的高性能表现在哪些方面 介绍一下Java中的几种IO模型 一个通俗例子读懂BIO、NIO、AIO BIO与NIO的区别 Netty的线程模型 什么是零拷贝 Netty中的模块组件: Netty 中有哪种…

Linux rpm方式安装 MYSQL8.0

1.卸载原有的mysql 数据库 1)查找安装的mysql软件包和依赖包: rpm -pa | grep mysql 显示结果: mysql80-community-release-el7-1.noarch mysql-community-server-8.0.11-1.el7.x86_64 mysql-community-common-8.0.11-1.el7.x86_64 mysql…

ReLU,Sigmoid,Tanh,softmax【基础知识总结】

一、ReLU(Rectified Linear Activation Function)1、优点2、缺点补充二、Sigmoid1、优点2、缺点三、Tanh四、Sigmoid 和 Tanh 激活函数的局限性五、softmax(待补充)激活函数的引入是为了增加神经网络模型的非线性,没有…

【机器学习入门项目10例】(九):聚类算法用于降维,KMeans的矢量量化应用(图片压缩)

🌠 『精品学习专栏导航帖』 🐳最适合入门的100个深度学习实战项目🐳🐙【PyTorch深度学习项目实战100例目录】项目详解 + 数据集 + 完整源码🐙🐶【机器学习入门项目10例目录】项目详解 + 数据集 + 完整源码🐶🦜【机器学习项目实战10例目录】项目详解 + 数据集 +

万字长文!对比分析了多款存储方案,KeeWiDB最终选择自己来

大数据时代,无人不知Google的“三驾马车”。“三驾马车”指的是Google发布的三篇论文,介绍了Google在大规模数据存储与计算方向的工程实践,奠定了业界大规模分布式存储系统的理论基础,如今市场上流行的几款国产数据库都有参考这三…

Fama-French三因子和五因子模型和Stata代码(内附原始数据)

一、Fama-French三因子模型数据和Stata代码(2000-2020年) 1、数据来源:原始数据在分享文件中 2、时间跨度:2000-2020年 3、区域范围:全国 5、原始数据: 4、指标说明: 部分指标如下&#xff…

Linux虚拟机的克隆

文章目录🚏 Linux虚拟机的克隆🚀 克隆虚拟机🚬 1、虚拟机在未开启的状态下🚬 2、选择创建完整克隆🚬 3、选择虚拟机的名称和位置🚄 修改 克隆虚拟机的设置🚬 1、mac地址🚬 2、主机名…

RocketMQ安装部署

RocketMQ的物理部署结构图如下: Producer和Consumer对应的是我们的应用程序,多个NameServer实例组成集群,但相互独立,没有信息交换,所以对于NameServer来说部署两个或两个以上即可保证高可用,对于Broker来…

AWS Skill Builder - 练习 ACF 认证的第一站

AWS Skill Builder - 练习 ACF 认证的第一站 AWS Skill Builder https://explore.skillbuilder.aws/learn 是 AWS 针对要想要自学 AWS 云计算技术所提供的网站,里面提了很多自学的课程,今天要展示的是在学习完 AWS Academy Cloud Foundations 课程后&am…

车牌识别停车场智能管理系统

摘 要 本论文主要论述了如何使用JSP技术开发一个车牌识别停车场智能管理系统 ,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述车牌识别停车场智能管理系统的…

【Paraview教程】第一章安装与基础介绍

1 Paraview介绍 1.1基本介绍 ParaView是一个开源的,跨平台的数据处理和可视化程序。ParaView用户可以迅速的建立起可视化环境利用定量或者是定性的手段去分析数据。利用它的批量处理能力可以在三维空间内在工具栏和展示界面中进行交互操作,从而实现“数…

PDF中的某个图或表想几乎无损的插入ppt或者word里的方法

要使用ps打开pdf并另存为tiff或者,其他方法存储的tiff可能不如这种方法高清 0. 参考方法网址:PS导出符合投稿规范的图片 1. pdf可能很多页,一页内有很多图像文字,要先使用福昕阅读器(破解版本的)裁剪到想保留tiff的那张图或那个表…

四、nginx反向代理

一、反向代理 解释:nginx反向代理如正向代理原理类似,只是实现了不同的功能。客户端将请求发给服务端(代理服务器)后,服务端(代理服务器)并没有自己处理请求,而是交给被代理服务器&…

P4用软件实现和硬件实现的区别

摘要:我们目前看到从可配置性有限的固定功能网络设备向具有完全可编程处理流水线的网络设备的转变。这种发展的一个突出例子是P4,它提供了一种语言和参考架构模型来设计和编程网络设备。这个参考模型的核心元素是可编程匹配动作表,它定义了网…

[附源码]Python计算机毕业设计高校餐厅评价系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

Java多线程编程【一文全解】

文章目录01 线程简介02 进程的创建> 继承 Thread 类> 实现 Runnable 接口> 实现 Callable 接口※ Lambda表达式 λ※ 静态代理模式03 线程状态04 线程方法> 停止线程 stop( )> 线程休眠 sleep( )> 线程礼让 yield( )> 线程强行执行 join( )> 线程状态观…

【疑难攻关】——XXE漏洞快速入门

作者名:Demo不是emo 主页面链接:主页传送门创作初心:舞台再大,你不上台,永远是观众,没人会关心你努不努力,摔的痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷座右…

Redis快速上手神册,17W字详解其实Redis也就那么一回事!

开始使用Redis Redis是一个开源的数据库,经常被用来构建高性能的可扩展网络应用。它使用内存数据库,这使得它比其他数据库更快。 Redis用于我们的应用程序中的短期数据。它经常被用于会话或网页头数。 通过使用内存数据库,我们不需要有大的…