Transformer工业部署落地!超越ResNet、CSWin(附源码)

news2024/12/24 8:56:10

关注并星标

从此不迷路

计算机视觉研究院

0ea2338626f791d1246103329e78ed2c.gif

8367fca5b0fd6ad1bfa1180625741d7e.gif

公众号IDComputerVisionGzq

学习群扫码在主页获取加入方式

d98fa2dbd1c4cdfc422354178bae63a3.png

论文地址:https://arxiv.org/pdf/2207.05501.pdf

计算机视觉研究院专栏

作者:Edison_G

一种用于在现实工业场景中高效部署的下一代 Vision Transformer。它通过引入 Next Convolution Block (NCB) 和 Next Transformer Block (NTB),在局部和全局信息捕获方面取得了显著的性能改进。

一、总概述

NCB 和 NTB 分别使用新颖的部署友好的多头卷积注意力 (MHCA) 和轻量级的高低频信号混合器来增强建模能力。为了进一步提高性能,设计了 Next Hybrid Strategy (NHS),通过在每个阶段以新的混合范式堆叠 NCB 和 NTB,大大降低了 Transformer 块的比例,并在各种下游任务中最大程度地保留了 Vision Transformer 网络的高精度。

与现有的基于 CNN 和 ViT 的方法相比,Next-ViT 在延迟/准确性权衡方面表现出优越的性能。实验结果表明,Next-ViT 在各种下游任务中取得了最先进的结果,包括图像分类、目标检测和语义分割。因此,Next-ViT 是一个强大的模型,可以有效地应用于现实工业场景中的各种计算机视觉任务。

二、动机

由于传统的卷积神经网络(CNN)和Vision Transformer(ViT)在现实的工业场景中存在一些局限性,因此该论文提出了Next-ViT模型。具体来说,传统的CNN在处理长序列时缺乏全局性,而ViT虽然具有全局性,但它们的注意力机制复杂,导致计算量大且效率低下。为了克服这些缺点,Next-ViT引入了Next Convolution Block(NCB)和Next Transformer Block(NTB),并设计了Next Hybrid Strategy(NHS)来提高模型的性能。

Next-ViT遵循分层的金字塔体系结构,在每个阶段都有一个patch embedding层和一系列的卷积或Transformer blocks。该模型使用MHCA(多头卷积注意力)来增强建模能力,通过创新的CNN和Transformer架构方式实现高性能和高效率相结合。Next-ViT在各种计算机视觉任务中取得了最先进的结果,包括图像分类、目标检测和语义分割。因此,Next-ViT是一个强大的模型,可以有效地应用于现实工业场景中的各种计算机视觉任务。

ee8277dc4f3d55e58330a9a563ddb324.png

Next-ViT和高效网络在精度-延迟权衡方面的比较

三、新框架

1eede855015dc0ebfad99d00fe079173.png

按照惯例,Next-ViT遵循分层的金字塔体系结构,在每个阶段都有一个patch embedding层和一系列的卷积或Transformer blocks。空间分辨率将逐步降低32×,而通道尺寸将在不同的阶段中扩大。

 Next Convolution Block (NCB)

为了展示所提出的NCB的优越性,首先重新审视卷积和Transformer blocks的一些经典结构设计,下图所示。ResNet提出的BottleNeck块因其固有的归纳偏差和部署而在视觉神经网络中长期占据主导地位。大多数硬件平台的友好特性。

74e1249217a8e5293ff966079b5bffff.png

Next Transformer Block (NTB)

虽然通过NCB已经有效地学习了局部表示,但全局信息的捕获迫切需要解决。Transformer Block具有较强的捕获低频信号的能力,从而提供全局信息(例如全局形状和结构)。然而,相关研究观察到,Transformer Block可能会在一定程度上恶化高频信息,如局部纹理信息。不同频率段的信号在人类视觉系统中是不可缺少的,并将以某种特定的方式融合,提取更基本和明显的特征。

三、实验及结果

eb204c2ef49381e1233e3391bfcf0a13.png

(a) Fourier spectrum of ResNet, Swin and Next-ViT. (b) Heat maps of the output feature from ResNet, Swin and Next-ViT.

b665cd696645fc12d2df2c3efc609d9e.png

© THE END 

转载请联系本公众号获得授权

442d0cc2df54d7300ee3435b4bb1ccbc.gif

计算机视觉研究院学习群等你加入!

ABOUT

计算机视觉研究院

计算机视觉研究院主要涉及深度学习领域,主要致力于人脸检测、人脸识别,多目标检测、目标跟踪、图像分割等研究方向。研究院接下来会不断分享最新的论文算法新框架,我们这次改革不同点就是,我们要着重”研究“。之后我们会针对相应领域分享实践过程,让大家真正体会摆脱理论的真实场景,培养爱动手编程爱动脑思考的习惯!

VX:2311123606

6e62ef2844421faee9b9703f425eebb1.png

往期推荐

  • CVPR'23 最佳论文候选|提速256倍!蒸馏扩散模型生成图像质量媲美教师模型,只需4步!

  • CVPR2023高质量论文 | Consistent-Teacher:半监督目标检测超强SOTA

  • 工业检测:基于密集尺度特征融合&像素级不平衡学习框架(论文下载)

  • 用于精确目标检测的多网格冗余边界框标注

  • 目标检测创新:一种基于区域的半监督方法,部分标签即可(附原论文下载)

  • LCCL网络:相互指导博弈来提升目标检测精度(附源代码)

  • 纯干货:Box Size置信度偏差会损害目标检测器(附源代码)

  • RestoreDet:低分辨率图像中目标检测

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

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

相关文章

读改变未来的九大算法笔记02_数据库

1. 基础思想 1.1. 预写日志记录 1.2. 两阶段提交 1.3. 关系数据库 2. 两个事实 2.1. 计算机程序会崩溃 2.1.1. 当一个程序崩溃时,它会丢掉所有正在处理的东西 2.1.2. 只有安放在计算机文件系统中的信息会得到保存 2.1.3. 崩溃相当宽泛:包括任何可…

助力智能制造数字化转型 | 5.31 IoTDB 中航机载制造行业客户分享会回顾

5 月 31 日,IoTDB & 中航机载智能制造实践分享会在线上举办。IoTDB 与中航机载的两位产品、技术专家,结合 EMQ 与深南电路的两位技术大拿,针对制造行业智能化痛点带来了一场方案实践分享,与线上直播中上千人次的智能制造关注者…

专访瑞声科技应用软件开发总监陆其明:当一名老兵决定重新上路

编者按:从互联网公司到智能终端解决方案公司,陆其明的这次转变可能难以被人理解。但经济大环境的影响和个人的技术困境还是让他义无反顾地走向一个未知的世界。正如黄仁勋日前所言,“撤退”对聪明人来说并不容易。然而,战略性的撤…

刷题记录:一维前缀和 | leetcode-2559. 统计范围内的元音字符串数 2023/6/2

leetcode-2559. 统计范围内的元音字符串数 这道题的思路并不难找,一开始我有点看出是一维前缀和问题,但没有很确定,因此也就没有直接从这个思路走下去。还是想着先做暴力版本的吧! 这是暴力版本的代码: class Solut…

零基础搭建私有云盘并内网穿透远程访问

文章目录 摘要视频教程1. 环境搭建2. 测试局域网访问3. 内网穿透3.1 ubuntu本地安装cpolar3.2 创建隧道3.3 测试公网访问 4 配置固定http公网地址4.1 保留一个二级子域名4.1 配置固定二级子域名4.3 测试访问公网固定二级子域名 转载自cpolar极点云的文章:使用Nextcl…

小白入门C#初探Web简易页面显示信息小案例

1、创建新项目 选择ASP.NET Core Web应用(模型-视图-控制器),然后点击下一步。 然后在项目名称里面填写CSharpDemo,点击下一步,直至创建即可。 目录结构: Connected Services:是Visual S…

计算机网络-网络层1.2

IPv6 IP地址耗尽,CIDR和NAT只是延长了IPv4地址分配结束的时间 IPv6从根本上解决了IP地址的耗尽问题 与IPv4的比较 扩大了地址空间移除校验和字段,减少了每跳的处理时间将IPv4的可选字段移出首部,变成拓展首部,路由器不对拓展首…

NIO vs BIO模型解读

目录 stream vs channel IO模型 零拷贝 传统IO NIO优化 stream vs channel stream 不会自动缓冲数据,channel 会利用系统提供的发送缓冲区、接收缓冲区(更为底层)stream 仅支持阻塞 API,channel 同时支持阻塞、非阻塞 API&a…

计算机网络-网络层1.1

IPv4 网络层打包传输数据时,数据量小则称IP数据报,数据量大则分片,每一片称为IPv4分组 分组格式 固定部分长20B,可变部分用于提供错误检测和安全等机制 版本:指IP版本首部长度:以4B为单位&#xff0c…

Java --- springboot3之web的自动配置原理

目录 一、自动配置 二、默认效果 三、WebMvcAutoConfiguration原理 3.1、生效条件 3.2、效果 3.3、WebMvcConfigurer接口 一、自动配置 1、导入web的pom依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-s…

计算机网络-层级架构

计网概念 计算机网络将分散的、具有独立功能的计算机系统&#xff0c;通过通信设备与线路连接起来&#xff0c;由软件实现资源共享和信息传递&#xff0c;同时也是一些互联的、自治的计算机系统的集合 计网组成的三种划分方式 硬件、软件、协议 硬件包含主机&#xff08;端系…

Redis底层学习(四)—存储类型-Hash篇

文章目录 特点具体服务器操作命令底层结构应用场景 特点 1.适⽤场景&#xff1a;存储⽆序字典的数据&#xff0c;⽐如&#xff1a;适合存储对象类型、存储猪⾁价格等。 2.它的内部采⽤ 数组 链表 的结构&#xff0c;类似java⾥的HashMap。 hash的key值只能是字符串。将对象存…

从C语言到C++_15(vector的模拟实现)+迭代器失效问题

目录 1. vector的基本框架 1.1 构造析构和容量 1.2 push_back&#xff0c;reserve和operator[ ] 2. vector的迭代器 2.1 四个基本迭代器 2.2 迭代器区间初始化 2.3 迭代器的分类 3. vector的其它接口函数 3.1 修改后的reserve 3.2 resize 3.3 pop_back 4. insert和…

【Android】Jadx动态调试应用

【Android】Jadx动态调试应用 1. 前言 Jadx已支持动态调试APP&#xff0c;但一直没试过&#xff0c;从逆向角度尝试走一遍流程并熟悉&#xff0c;方便日后翻阅。 2. 相关知识 2.1 动态调试原理 动态调试的原理可以概括为以下几个步骤&#xff1a; 启动应用程序进程&#x…

[数据挖掘02] pandas的分配和聚合函数(1)

一 说明 窗口函数是什么&#xff1f;窗口函数是时间序列的局部属性处理函数&#xff0c;比如&#xff0c;一维卷积滤波、移动平均、指数平均本篇我们将针对pandas对象的窗口函数展开讨论&#xff0c;并以示例展示他们的概念实质。 二 窗口函数、分组函数&#xff08; GroupBy …

2023年18个最佳的ChatGPT AI插件

​关注文章下方公众号&#xff0c;可免费获取AIGC最新学习资料 导读&#xff1a;ChatGPT已经将人工智能提升到了一个新的高度。ChatGPT 4不仅是聊天机器人&#xff0c;还可以很好地与第三方插件配合使用。我们挑选出了2023年目前18款最佳的插件来介绍给您。 本文字数&#xff…

【运维知识进阶篇】Ansible Jinja2模板详解

哈喽大家好&#xff0c;我是koten&#xff0c;本篇文章给大家介绍jinja2模板&#xff0c;这是python的全功能模板引擎。在Ansible中&#xff0c;通常会使用jinja2模板来修改被管理主机的配置文件&#xff08;saltstack中也会用到&#xff09; Ansible中使用的jinja2模板其实就…

【软件测试】软件测试管理

软件测试管理 软件测试环境测试环境的要素测试环境管理员 软件测试计划⭐测试计划目标测试计划主题测试计划制订过程定义工作进度的过程测试策略 软件缺陷(bug)管理缺陷的主要属性如何报告缺陷⭐如何跟踪缺陷缺陷度量 软件配置管理&#xff08;SCM&#xff09;软件配置管理的基…

计算机网络传输层1.0

功能 传输层提供进程到进程的逻辑通信 复用和分用 传输层对收到的报文进行差错检测 TCP/UDP 提供进程到进程的逻辑通信 网络层是提供主机间逻辑通信 从网络层来看&#xff0c;通信双方为两台主机&#xff0c;IP数据包首部给出两台主机的IP地址 而实际上的两台主机通信时两台…

Makefile路径处理:执行路径、绝对路径与相对路径的处理

问题描述 最近编写了一个 编译设备树 的 Makefile&#xff0c;遇到了使用 make -f xx/Makefile&#xff0c;执行路径变了&#xff0c;造成 Makefile 里面的一些操作路径不正确&#xff0c;无法执行 获取当前目录 make 内置的 $(CURDIR)&#xff0c;可以把当前路径的全路径打印…