YOLOv9改进系列,YOLOv9主干网络替换为RepViT (CVPR 2024,清华提出,独家首发),助力涨点

摘要
轻量级视觉变换器(ViTs)在资源受限的移动设备上表现出优越的性能和较低的延迟,相比之下轻量级卷积神经网络(CNNs)稍显逊色。研究人员发现了许多轻量级 ViTs 和轻量级 CNNs 之间的结构联系。然而,它们在块结构、宏观和微观设计上的显著架构差异尚未得到充分研究。在本研究中,我们从 ViT 的角度重新审视轻量级 CNNs 的高效设计,并强调其在移动设备上的光明前景。具体而言,我们通过整合轻量级 ViTs 的高效架构设计,逐步增强标准轻量级CNN(即MobileNetV3)的移动友好性。最终形成了一种新的纯轻量级 CNN 家族,即 RepViT。大量实验表明,RepViT 优于现有的最先进的轻量级 ViTs,并在各种视觉任务中表现出良好的延迟性能。
介绍
通过集成轻量级 ViT 的设计理念,如分离的 token 混合器和通道混合器,使用结构重参数化技术(SR),调整扩展比和网络宽度等,RepViT 模型实现了在移动设备上的高效推理。RepViT 在多个计算机视觉任务(包括图像分类、物体检测、实例分割等)上表现出色,与其他轻量级ViT和CNN模型的性能对比显示,RepViT在延迟和准确率方面具有显著的优势。CNN 的性能和延迟通常受到卷积核大小的影响。例如,ConvNeXt 通过使用大卷积核来捕捉长距离依赖关系,展现了性能提升的效果。同样,RepLKNet 展示了一种强大的使用超大卷积核的 CNN 范式。然而,较大的卷积核并不适合移动设备,因为它们的计算复杂度和内存访问成本较高。此外,与3×3卷积相比,较大卷积核通常未被编译器和计算库高度优化。SE层是轻量级 CNN 的常见选择,通过全局信息动态调整通道权重。然而,SE层带来了额外的计算成本,尤其是在通道数量较大的后期阶段。为了优化这一点,在 RepViT 块中设置了可选的 SE 层。通过试验,发现将 SE 层放置在早期阶段效果更好,而后期阶段对性能的影响较小。因此,将 SE 层仅放置在前两个阶段。
如下图,(a)是带有可选挤压和激励(SE)层的 MobileNetV3 模块。(b)是设计的 RepViT 模块,通过结构重新参数化技术将令牌混合器和通道混合器分开。SE 层在 RepViT 模块中也是可选的。为简化起见,省略了规范层和非线性部分。

理论详解可以参考链接:论文地址
代码可在这个链接找到:代码地址
本文在YOLOv9中的主干网络
相关文章:
YOLOv9改进系列,YOLOv9主干网络替换为RepViT (CVPR 2024,清华提出,独家首发),助力涨点
摘要 轻量级视觉变换器(ViTs)在资源受限的移动设备上表现出优越的性能和较低的延迟,相比之下轻量级卷积神经网络(CNNs)稍显逊色。研究人员发现了许多轻量级 ViTs 和轻量级 CNNs 之间的结构联系。然而,它们在块结构、宏观和微观设计上的显著架构差异尚未得到充分研究。在…...
VBS学习1 - 语法、内置函数、内置对象
文章目录 概述执行脚本语法转义字符文本弹框msgbx定义变量dim(普通类型)定义接收对象set字符拼接&用户自定义输入框inputbox以及输入判断ifelse数组(参数表最大索引,非数组容量)有容量无元素基于元素确定容量 循环…...
11 vue3之插槽全家桶
插槽就是子组件中的提供给父组件使用的一个占位符,用<slot></slot> 表示,父组件可以在这个占位符中填充任何模板代码,如 HTML、组件等,填充的内容会替换子组件的<slot></slot>标签。 匿名插槽 1.在子组…...
Excel 基础知识-操作手册1
Excel基础操作知识 一、工作窗口的视图控制 1、创建新窗口:依次点击【视图】----【新建窗口】命令,即可为当前工作簿创建新的窗口。在原有的工作簿中更改标题或表格内容时,新建的工作簿也会相应的更改。 2、窗口切换:在【视图】…...
Python 类的继承
Python 的代码组织如下: moudle:模块,和实例名和函数都是小写加下划线的方法表示。 class:类,使用首字母大写驼峰的写法表示。 类里面包含类的属性,__init__ ()方法和类的方法。 __init__() 方法在类的创建…...
gRPC介绍
gRPC 是一个由谷歌开发的现代开源高性能 RPC 远程过程调用( Remote Procedure Calls)框架,具备良好的兼容性,可在多个开发环境下运行。 相较于目前主流的 HTTP API 接口,gRPC 接口采用了领先的 HTTP/2 底层架构设计作…...
Git之误执行git rm -r解决方案(六十七)
简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【…...
html文件指什么
HTML 文件指的是超文本标记语言文件(HTML,HyperText Markup Language),它是用于构建网页内容的文件格式。HTML 文件包含一系列的标签(tags),这些标签用于定义网页的结构和元素,例如文…...
AAAI2024--频谱在多模态表示和融合中的作用更为有效:A Multimodal Spectrum Rumor Detector
https://github.com/dm4m/FSRU 多模态内容,如将文本与图像混合,对社交媒体中的谣言检测提出了重大挑战。现有的多模态谣言检测侧重于在空间和序列位置之间混合令牌进行单模态表示,或者在模态间融合谣言真实性的线索。然而,它们受…...
【Python报错已解决】SyntaxError invalid syntax
🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 专栏介绍 在软件开发和日常使用中,BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…...
CI/CD持续集成和持续部署以及相关软件的使用
目录 一:CI/CD是什么? 1.1 持续集成(Continuous Integration) 1.2 持续部署(Continuous Deployment) 1.3 持续交付(Continuous Delivery) CI/CD 的好处包括: 二:git…...
Charles mac电脑配置
安装 Charles: 如果你还没有安装 Charles,可以从官方网站下载安装包并按照提示完成安装。 启动 Charles: 安装完成后,启动 Charles 应用程序。 设置 Charles 代理: Charles 默认的代理端口是 8888。你可以通过以下步…...
FPGA基本结构和简单原理
前言: FPGA全程为(Field Programmable Gate Array)现场可编程逻辑阵列,以基本的逻辑为主可以实现大多数芯片可以实现的功能,比如说:ASIC芯片等,在半导体领域有着重要的作用。 本文…...
【machine learning-七-线性回归之成本函数】
监督学习之cost function 成本函数权重、偏置如何实现拟合数据成本函数是如何寻找出来w和b,使成本函数值最小化? 在线性回归中,我们说到评估模型训练中好坏的一个方法,是用成本函数来衡量,下面来详细介绍一下 成本函数…...
Stable Diffusion Fooocus批量绘图脚本
当当当挡~,流动传热数值计算之余发布点AIGC相关文章,希望大家能喜欢~ 1 Stable Diffusion各种UI分析对比 提示:此部分主要是对SD各种界面的简要介绍和对比,只关注Fooocus批量绘图的读者可直接跳到第二部分。 Stable Diffusion …...
Web 安全基础教程:从零基础入门到精通
一、Web 安全概述 (一)Web 安全的定义与重要性 1.定义 Web 安全是指保护 Web 应用程序免受各种网络威胁,确保 Web 服务的保密性、完整性和可用性。在当今数字化时代,Web 应用广泛存在于各个领域,从电子商务到社交媒…...
ubuntu 20.04 ‘Wired Unmanaged‘ 网络无法配置解决方法
问题描述 系统:ubuntu20.04连上网线后右上角没有有线网络连接的图标,在网络配置界面也只有VPN和无线网络的配置;实际上此时电脑已经连接网络,通过DHCP获得IP地址可以正常访问网络。 解决办法 ubuntu有有两套网络管理软件:serve…...
前端实战:使用JS和Canvas实现运算图形验证码(uniapp、微信小程序同样可用)
图形验证码是网站安全防护的重要组成部分,能有效防止自动化脚本进行恶意操作,如何实现一个简单的运算图形验证码?本文封装了一个简单的js类,可以用于生成简单但安全的图形验证码。它支持自定义验证码样式,包括字体大小…...
SQL Server 语句日期格式查找方法
1. SQL Server中,处理日期格式和查找特定日期格式方法示例 在SQL Server中,处理日期格式和查找特定日期格式的记录是一个常见的需求。SQL Server提供了多种函数和格式选项来处理和比较日期。以下是一个详细的示例,展示了如何根据特定日期格式…...
【Python报错已解决】python setup.py bdist_wheel did not run successfully.
🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 专栏介绍 在软件开发和日常使用中,BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…...
大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...
HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
排序算法总结(C++)
目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...
GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...
【C++特殊工具与技术】优化内存分配(一):C++中的内存分配
目录 一、C 内存的基本概念 1.1 内存的物理与逻辑结构 1.2 C 程序的内存区域划分 二、栈内存分配 2.1 栈内存的特点 2.2 栈内存分配示例 三、堆内存分配 3.1 new和delete操作符 4.2 内存泄漏与悬空指针问题 4.3 new和delete的重载 四、智能指针…...
