YOLOv8最新改进系列:融合DySample超轻量动态上采样算子,低延迟、高性能,目前最新上采样方法!!!遥遥领先!

news2024/11/27 8:26:59

YOLOv8最新改进系列:融合DySample超轻量动态上采样算子,低延迟、高性能,目前最新上采样方法!!!遥遥领先!

DySample超轻量动态上采样算子全文戳这!here!

详细的改进教程以及源码,戳这!戳这!!戳这!!!B站:AI学术叫叫兽 源码在相簿的链接中,动态中也有链接,感谢支持!祝科研遥遥领先!

YOLOv8最新改进系列:融合DySample超轻量动态上采样算子,低延迟、高性能,目前最新上采样方法!!!遥遥领先!

  • YOLOv8最新改进系列:融合DySample超轻量动态上采样算子,低延迟、高性能,目前最新上采样方法!!!遥遥领先!
  • 摘要
  • 1 简介
  • 2 相关工作
  • 3.学习采样和上采样
  • 4 结论
  • 9 修改步骤!
    • 4.1 修改YAML文件
    • 4.2 新建.py
    • 4.3 修改tasks.py
  • 三、验证是否成功即可


arge Separable Kernel Attention: Rethinking the
Large Kernel Attention Design in CNN(提出原文戳这)

详细的改进教程以及源码,戳这!戳这!!戳这!!!B站:AI学术叫叫兽 源码在相簿的链接中,动态中也有链接,感谢支持!祝科研遥遥领先!
截止到发稿时,B站YOLOv9最新改进系列的源码包,已更新了11种的改进!自己排列组合2-4种后,考虑位置不同后可排列组合上千种!!专注AI学术,关注B站博主:Ai学术叫叫兽er!

摘要

我们介绍DySample,一个超轻量和有效的动态上采样器。虽然最近基于内核的动态上采样器(如CARAFE、FADE和SAPA)的性能提升令人印象深刻,但它们带来了大量的工作负载,主要是由于耗时的动态卷积和用于生成动态内核的额外子网络。此外,对高特征指导的需求在某种程度上限制了它们的应用场景。为了解决这些问题,我们绕过动态卷积并从点采样的角度制定上采样,这更节省资源,并且可以很容易地使用PyTorch中的标准内置函数实现。我们首先展示了一个朴素的设计,然后演示了如何逐步加强其上采样行为,以实现我们的新上采样器DySample。与以前基于内核的动态上采样器相比,DySample不需要定制CUDA包,并且具有更少的参数、FLOPs、GPU内存和延迟。除了轻量级的特点,DySample在五个密集预测任务上优于其他上采样器,包括语义分割、目标检测、实例分割、全视分割和单目深度估计。

1 简介

特征上采样是密集预测模型中逐渐恢复特征分辨率的关键因素。最常用的上采样器是最近邻(NN)和双线性插值,它们遵循固定的规则来插值上采样值。为了增加灵活性,在一些特定任务中引入了可学习的上采样器,例如,实例分割中的去卷积[13]和图像超分辨率中的像素混洗场景(高分辨率功能必须可用)。与早期的普通网络不同,多尺度特征经常用于现代架构中;因此,作为上采样器输入的高分辨率特征可能不是必要的。例如,在特征金字塔网络(FPN)[23]中,高分辨率特征将在上采样后添加到低分辨率特征中。因此,我们认为设计良好的单输入动态上采样器就足够了。考虑到动态卷积引入的繁重工作量,我们绕过基于内核的范例并返回到上采样的本质,即,点采样,以重新制定上采样过程。具体来说,我们假设输入的功能是内插到一个连续的双线性插值,并产生内容感知的采样点重新采样的连续地图。从这个角度来看,我们首先提出了一个简单的设计,其中逐点偏移由线性投影生成,并用于使用PyTorch中的网格采样函数重新采样点值。然后,我们展示了如何通过i)控制初始采样位置,ii)调整偏移量的移动范围,iii)将上采样过程划分为几个独立的组来逐步改进它,并获得我们的新上采样器DySample。在每一步,我们解释为什么需要调整,并进行实验,以验证性能增益。与其他动态上采样器相比,DySample i)不需要高分辨率的引导功能作为输入,ii)也不需要PyTorch以外的任何额外CUDA包,特别是iii)具有更少的推理延迟,内存占用,FLOP和参数数量,如图1和图8所示。例如,在以MaskFormer-SwinB [8]为基线的语义分割上,DySample比CARAFE的性能提高了46%,但只需要CARAFE的3%的参数和20%的FLOP。由于高度优化的PyTorch内置函数,DySample的推理时间也接近双线性插值(6.2 ms vs. 1.6 ms,当对256 × 120 × 120特征图进行上采样时)。除了这些吸引人的轻量级特性外,DySample在五个密集预测任务(包括语义分割、对象检测、实例分割、全景分割和单眼深度估计)上的性能优于其他上采样器。简而言之,我们认为DySample可以安全地取代现有密集预测模型中的NN/双线性插值,不仅是有效性,而且是效率。

图1.比较不同上采样器的性能、推理速度和GFLOP。圆圈的大小表示GFLOP的成本。通过对尺寸为256×120×120的特征图进行×2上采样来测试推理时间。使用SegFormer-B1 [40]在ADE 20 K数据集[42]上测试mIoU性能和其他GFLOP。
图1.比较不同上采样器的性能、推理速度和GFLOP。圆圈的大小表示GFLOP的成本。通过对尺寸为256×120×120的特征图进行×2上采样来测试推理时间。使用SegFormer-B1 [40]在ADE 20 K数据集[42]上测试mIoU性能和其他GFLOP。

2 相关工作

我们回顾了深度学习中的密集预测任务、特征上采样算子和动态采样。密集预测任务。密集预测是指需要逐点标签预测的任务的分支,例如语义/实例/全景分割[2,39,40,8,7,13,11,16,19],对象检测[33,4,24,36]和单眼深度估计[38,18,3,21]。不同的任务往往表现出不同的特点和困难。例如,在语义分割中很难预测平滑的内部区域和尖锐的边缘,在实例感知任务中也很难区分不同的对象。在深度估计中,具有相同语义含义的像素可能具有相当不同的深度,反之亦然。人们经常需要为不同的任务定制不同的架构。虽然模型结构各不相同,但上采样算子是密集预测模型中的重要组成部分。由于主干通常输出多尺度特征,因此低分辨率特征需要上采样到更高的分辨率。因此,一个轻量级的,有效的上采样器将有利于许多密集的预测模型。我们将展示我们新的上采样器设计为SegFormer [40]和MaskFormer [8]带来了一致的性能提升,用于语义分割,用于对象检测的Faster R-CNN [33],例如分割的Mask R-CNN [13],用于全景分割的Panoptic FPN [16],以及用于单目深度估计的DepthFormer [21],同时引入可忽略不计的工作量。功能上采样。常用的特征上采样器是NN和双线性插值。它们应用固定的规则来插值低分辨率特征,忽略了特征图中的语义含义。SegNet [2]在语义分割中采用了最大解池来保留边缘信息,但噪声和零填充的引入破坏了平滑区域的语义一致性。与卷积类似,一些可学习的上采样器在上采样中引入了可学习的参数。例如,反卷积以卷积的相反方式对特征进行上采样。Pixel Shuffle [34]使用卷积提前增加通道数,然后重塑特征图以提高分辨率。最近,一些动态上采样算子进行内容感知上采样。CARAFE [37]使用子网络来生成内容感知的动态卷积核来重新组装输入特征。FADE [29]提出将高分辨率和低分辨率特征联合收割机来生成动态内核,以便使用高分辨率结构。SAPA [30]进一步引入了点关联的概念,并计算高分辨率和低分辨率特征之间的相似性感知内核。作为模型插件,这些动态上采样器增加了比预期更多的复杂性,特别是对于需要高分辨率特征输入的FADE和SAPA。因此,我们的目标是提供一个简单,快速,低成本和通用的上采样器,同时保留动态上采样的有效性特征图,作为标准网格采样的替代。Dai等人。[9]和Zhu等人。[43]提出了可变形卷积网络,其中标准卷积中的矩形窗口采样被移位点采样取代。Deformable DETR [44]遵循这种方式,对与某个查询相关的关键点进行采样,以进行可变形注意。当图像被下采样到低分辨率时,也会发生类似的做法,用于内容感知的图像增强,也称为缝刻[1]。例如,在一个示例中,Zhang等人。[41]提出学习使用显着性指导对图像进行下采样,以保留原始图像的更多信息,Jin等人。[15]还设置了一个可学习的变形模块来对图像进行下采样。与目前基于核的上采样器不同,我们将上采样的本质解释为点重采样。因此,在特征上采样中,我们倾向于遵循与上述工作相同的精神,并使用简单的设计来实现强大而高效的动态上采样器。

3.学习采样和上采样

详细的方法介绍看全文即可,链接在文首!

4 结论

我们提出了DySample,一个快速,有效,通用的动态上采样器。与一般的基于核函数的动态上采样不同,DySample是从点采样的角度进行设计的。我们从一个简单的设计开始,并展示如何从我们对上采样的深刻见解中逐步提高其性能。与其他动态上采样器相比,DySample不仅报告了最佳性能,而且摆脱了定制的CUDA包,消耗了最少的计算资源,在延迟,训练内存,训练时间,GFLOPs和参数数量方面表现出优越性。对于未来的工作,我们计划将DySample应用于低级别任务,并研究上采样和下采样的联合建模。

9 修改步骤!

4.1 修改YAML文件

详细的改进教程以及源码,戳这!戳这!!戳这!!!B站:AI学术叫叫兽 源码在相簿的链接中,动态中也有链接,感谢支持!祝科研遥遥领先!

4.2 新建.py

详细的改进教程以及源码,戳这!戳这!!戳这!!!B站:AI学术叫叫兽er 源码在相簿的链接中,动态中也有链接,感谢支持!祝科研遥遥领先!

4.3 修改tasks.py

详细的改进教程以及源码,戳这!戳这!!戳这!!!B站:AI学术叫叫兽er 源码在相簿的链接中,动态中也有链接,感谢支持!祝科研遥遥领先!

三、验证是否成功即可

执行命令

python train.py

改完收工!
关注B站:Ai学术叫叫兽er
从此走上科研快速路
遥遥领先同行!!!!

详细的改进教程以及源码,戳这!戳这!!戳这!!!B站:AI学术叫叫兽er 源码在相簿的链接中,动态中也有链接,感谢支持!祝科研遥遥领先!

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

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

相关文章

复习回顾ES6基础篇(一小时学会es6)

基本语法 多行注释 /* 这里的所有内容 都是注释。 */单行注释 // 这是一条注释。变量定义 var x "" //定义范围变量 let y "" //定义局部变量 const z "" //定义常量运算符 变量类型 流程语句 if (condition) {/* 条件为真时运行的代…

《中医病证分类与代码》-中医疾病分类数据库

《中医病症分类与代码》由国家中医药管理局2020年底修订,目的是为中医疾病及证候的分类提供统一的规范。规定2021年起,各中医机构的临床科室及基层中医药的医师都应按照最新修订的《中医病症分类与代码》规范来填报病案及病历。 中医病证分类与代码数据库…

js base64 img 转 file

转化canvas的图像 打印canvas图像的dataurl const imgDataUrl canvas.toDataURL();console.log(imgDataUrl)上传的图像编码 1,把base64编码转为文件对象第一个参数dataUrl是一个base64的字符串。第二个参数是文件名可以随意命名funtion base64toFile(dataurl, filename fil…

基于ADB的Scrcpy实现电脑控制手机

Scrcpy是一个开源的,基于ADB(Android 调试桥)的手机到电脑上的投屏操控的实现,本文将介绍如何搭建开发环境,使得在Windows系统中去控制投屏的安卓手机。 1. 安装投屏软件 下载Scrcpy软件到电脑上,该软件中…

推荐一个超好用的测试工具,值得体验!

在软件开发领域中,测试是确保质量与可靠性的必要环节。俗话说得好“工欲善其事,必先利其器”,测试工具越简单、用户友好度越高,开发者编写测试的意愿度就越高。 为了满足大家的测试需求,MoonBit 标准库最近引入了 ins…

基于Python的景区票务人脸识别系统(V2.0)

博主介绍:✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&#x1f3…

安装SSMS出现错误和SSMS连接数据库失败

1.点击图片下安装的时候,出现0x80070643错误 解决办法: 1,如果是是第一次安装的话,重新启动电脑,把原来下载的SSMS删除掉,在重新下载安装 2.如果是原来就下载过,先…

基于Docker构建CI/CD工具链(七)使用Jmeter进行自动化压测

上一篇文章中,我们详细介绍了构建 Apifox Cli 的 Docker 镜像的步骤,并通过简单的示例演示了如何利用 GitLab 的 CI/CD 功能,将构建好的镜像利用在自动化测试作业中。在今天的文章中,我们将重点讨论如何构建 JMeter 的 Docker 镜像…

彻底解决 pyshark 库 TShark not found

使用 python 运行 github 某个项目处理 pcap 包时遇到如下报错: (先安装了 pyshark 库) pyshark.tshark.tshark.TSharkNotFoundException: TShark not found. Try adding its location to the configuration file. Searched these paths: […

现在谷歌企业号需要验证企业官网和法人信息,才能注册成功或提审应用?

众所周知,近年来,随着谷歌上架行业的发展,以及开发者们上架马甲包或矩阵式上架的操作,谷歌官方对于开发者账号的审核越来越严格了。 从一开始需要提供收付款卡银行流水账单,到后续引入邓白氏码等更为严格的账号验证机制…

【学习笔记】Vue3源码解析:第四部分- runtime-dom(1)

课程地址:【已完结】全网最详细Vue3源码解析!(一行行带你手写Vue3源码) 第四部分-:(对应课程的第24-26节) 第24节:《理解runtime-dom的作用》 源码中除了 dep.ts ,其余基…

00_Qt概述以及如何创建一个QT新项目

Qt概述 1.Qt概述1.1 什么是Qt1.2 Qt的发展史1.3 支持的平台1.4 Qt版本1.5 Qt的下载与安装1.6 Qt的优点 2.QT新项目创建3.pro文件4.主函数5.代码命名规范和快捷键 1.Qt概述 1.1 什么是Qt Qt是一个跨平台的C图形用户界面应用程序框架。它为应用程序开发者提供建立艺术级图形界面…

边缘计算网关主要有哪些功能?-天拓四方

随着物联网(IoT)的快速发展和普及,边缘计算网关已经成为了数据处理和传输的重要枢纽。作为一种集成数据采集、协议转换、数据处理、数据聚合和远程控制等多种功能的设备,边缘计算网关在降低网络延迟、提高数据处理效率以及减轻云数…

loD:如何实现代码的“高内聚、低耦合“

设计模式专栏:http://t.csdnimg.cn/3a25S 目录 1.引用 2.何为"高内聚、低耦合" 3.LoD 的定义描述 4.定义解读与代码示例一 5.定义解读与代码示例二 1.引用 本节介绍最后一个设计原则:LoD(Law of Demeter,迪米特法则)。尽LoD不像SOLID、KI…

面试:lock 和 synchronized

一、语法层面 synchronized 是关键字,源码在jvm中,用c语言实现Lock 是接口,源码由jdk提供,用java语言实现使用synchronized时,退出同步代码块锁会自动释放,而使用Lock时,需要手动调用unlock方法…

Linux中进程和计划任务

一.程序 1.什么是程序 (1)是一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息化工具 (2)用于描述进程要完成的功能,是控制进程执行的指令集 二.进程 1.什么是进程…

量化过程信息损耗分析(MATLAB)

MATLAB代码 clear_all; Mrand(5,5)*100;% 假设M是待转换的矩阵 a min(M(:)); b max(M(:));% 将M映射到[0, 255] M_mapped functionA(M, a, b); M_mapped_floorfloor(M_mapped); % 将M_mapped恢复到原始范围 M_original functionB(M_mapped_floor, a, b);disp(M); disp(M_m…

【吊打面试官系列】Java高并发篇 - 什么是多线程中的上下文切换?

大家好,我是锋哥。今天分享关于 【什么是多线程中的上下文切换?】面试题,希望对大家有帮助; 什么是多线程中的上下文切换? 在上下文切换过程中,CPU 会停止处理当前运行的程序,并保存当前程序运行…

【Altium Designer 20 笔记】PCB铺铜过程

PCB铺铜步骤 切换到Keep-Out Layer(禁止布线层) 使用shifts键切换单层显示 画禁止布线范围(防止铺铜过大) 切换到需要铺铜的层 选择铺铜网络,通常是地(GND)或某个电源网络 隐藏覆铜:…

为什么说linux操作系统要比windows稳定?

正常人说windows的时候是指一整套桌面系统,而说linux的时候是一个命令行内核。后者从原理上就比前者稳定。 如果你日常使用的是linux的发行版桌面系统,看到这话估计直接想骂娘。就我12年的ubuntu使用体验来说,定期备份系统是必须的&#xff…