【ICCV2023】Scale-Aware Modulation Meet Transformer

Scale-Aware Modulation Meet Transformer, ICCV2023

论文:https://arxiv.org/abs/2307.08579

代码:https://github.com/AFeng-x/SMT

解读:ICCV2023 | 当尺度感知调制遇上Transformer,会碰撞出怎样的火花? - 知乎 (zhihu.com)

摘要

本文提出了一种新的视觉变换器——尺度感知调制变换器(Scale-Aware Modulation Transformer, SMT),通过将CNN和ViT相结合,可以有效地处理各种下游任务。SMT中提出的尺度感知调制(SAM)包括两个主要的新颖设计:

  • 多头混合卷积(MHMC)模块,该模块可以捕捉多尺度特征并扩展感受野。
  • 规模感知聚合(SAA)模块,该模块重量轻但有效,能够实现不同头部的信息融合。通过利用这两个模块,卷积调制得到了进一步增强。

此外,本文提出一种进化混合网络(Evolutionary Hybrid Network,EHN),它可以有效地模拟随着网络变得更深而从捕获局部依赖性到全局依赖性的转变,从而获得更优的性能。在ImagNet、COCO以及ADE20k等任务上都验证了该模型的有效性。SMT在ImageNet-22k上预训练后以仅仅80.5M的参数量在ImageNet-1k上达到了88.1%的精度。

简介

对于多层级的网络架构来说,由于浅层特征图分辨率大的原因,使用ViT的自注意力的二次复杂性会带来严重的计算负担。因此,如何为浅层stage设计高效的attention计算机制是十分重要的。

  • 以往的大部分Hierarchical(Multi-scale)的模型,以Swin为代表,以及CvT,PvT,Shunted Transformer等等,其贡献点都是设计一种更高效的attention计算单元。
  • 另外一些方法并不直接改善attention,而是将CNN与Transformer结构混合,降低计算成本,并融合两种结构的优势。

ViT论文中提出,Transformer模型的注意力捕捉依赖关系为,浅层捕捉local信息,深层捕捉global信息,而这种特性在多层级网络架构上也会出现。在浅层使用CNN替代Transformer可以有效地降低attention计算成本,还能更好地建模局部信息。

但,简单地把卷积直接作用于特征图并不能有效获取所需信息。卷积调制网络,利用卷积调制可以聚合周围的上下文并自适应地调制,使得其建模能力更强。

因此,本文提出一种新的卷积调制,尺度感知调制(Scale-Aware Modulation,SAM),包括两个模块:多头混合卷积(Multi-Head Mixed Convolution,MHMC) 和 尺度感知聚合(Scale-Aware Aggregation,SAA)

  • MHMC模块旨在增强感受野并同时捕捉多尺度特征。
  • SAA模块旨在有效地聚合不同头部的功能,同时保持轻量级架构。

尽管有这些改进,但SAM在捕捉长期依赖方面没有达到自我关注机制。为此,提出了一种新的混合调制变压器架构,称为进化混合网络(Evolutionary Hybrid Network,EHN)。

  • 具体而言,在前两个阶段引入SAM区块,在后两个阶段纳入Transformer区块,同时在倒数第二阶段引入新的堆叠策略。该体系结构不仅模拟了从浅层到深层的长程依赖关系的变化,而且使每个阶段的每个块都能匹配其计算特性,从而提高了各种下游任务的性能。

总体而言,提出的架构称为尺度感知调制转换器(SMT)。

SMT方法

SMT网络包括四个阶段,每个阶段的下采样率为{4, 8, 16, 32}。

  • 首先在前两个阶段采用尺度感知调制(SAM),
  • 然后在倒数第二个阶段中依次堆叠一个SAM Block和一个多头自注意力(MSA) Block,以建模从捕捉局部到全局依赖关系的转变。
  • 对于最后一个阶段,仅使用MSA块来有效地捕捉长距离依赖关系。

Scale-Aware Modulation

SAM模块包括两个关键部分:MHMC 和 SAA 。 

 Multi-Head Mixed Convolution(MHMC)

引入了具有不同卷积核大小的多个卷积层,使其能够捕捉多个尺度上的空间特征。当N head设置得较大时,能够引入大卷积核来扩大感受野,增强其建模长距离依赖关系的能力。如图2(b)所示,MHMC将输入通道分为N个头,对每个头应用独立的深度可分离卷积。将卷积核大小初始化为3x3,并逐头递增。通过调整头的数量来调节感受野的范围和多粒度信息。

​​​​

如图4(a)所示,每个不同的卷积特征图都学习以自适应的方式关注不同的粒度特征,正如预期的那样。值得注意的是,当通过可视化图中的调制图来比较单头和多头时。4(b),发现多头下的可视化在第一阶段准确地描绘了前景和目标对象,同时有效地过滤了背景信息。此外,随着网络的深入,它仍然可以呈现目标对象的整体形状,而与细节相关的信息在单头卷积下丢失。这表明,MHMC在浅层阶段比单个头部更好地捕捉局部细节,同时随着网络的深入,保持目标对象的详细和语义信息。

Scale-Aware Aggregation

为了增强MHMC中多个头之间的信息交互,引入了一种新的轻量化聚合模块,称为多尺度感知聚合(SAA),如图2(c)所示。SAA首先对MHMC生成的不同粒度的特征进行重组和分组。具体而言,从每个头中选择一个通道来构建一个组,然后在每个组内进行up-down的特征融合,从而增强多尺度特征的多样性。Num_group = C / N_head,C为输入通道数,这意味着组的数量与MHMC中头的数量成反比,每个组里只包含N个特征通道。随后,使用1x1卷积进行组内-组间模式的跨组信息融合,从而实现轻量且高效的聚合效果。

图5显示,SAA模块明确地增强了语义相关的低频信号,并精确地关注了目标对象的最重要部分。例如,在第2阶段,眼睛、头部和身体被清楚地突出显示为目标对象的基本特征,从而显著提高了分类性能。与卷积映射预聚合相比,SAA模块展示了更好的能力来捕捉和表示视觉识别任务的基本特征。

Scale-Aware Modulation Transformer

在使用MHMC捕捉多尺度空间特征并通过SAA进行聚合后,获得一个输出特征图,称为调制器Modulator。然后,使用标量乘积采用这个调制器来调制 V。

 

Evolutionary Hybrid Network 

提出根据网络的捕捉范围依赖关系的变化模式重新分配适当的计算模块,以实现更好的计算性能。提出两种混合堆叠策略用于倒数第二个阶段,(i) 依次堆叠一个SAM块和一个MSA块。(ii) 在stage的前半部分使用SAM块,在后半部分使用MSA块。(i)混合堆叠策略更加有效。

计算了倒数第二个阶段中MSA块的相对感受野。浅层layer的相对感受野开始阶段有一个轻微的下降趋势。这种下降可以归因于SAM对早期MSA Block的影响,将这种现象称为计算单元磨合适应期。而随着网络的加深,可以看到感受野呈平稳上升的趋势,这表明提出的进化混合网络有效地模拟了从局部到全局依赖捕捉的过渡。

实验

对比实验

分类任务: 

 

目标检测任务: 

 

分割任务: 

 

 消融实验

 

 

 

 

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

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

相关文章

【Nodejs】Node.js简介

1.前言 Node 的重要性已经不言而喻,很多互联网公司都已经有大量的高性能系统运行在 Node 之上。Node 凭借其单线程、异步等举措实现了极高的性能基准。此外,目前最为流行的 Web 开发模式是前后端分离的形式,即前端开发者与后端开发者在自己喜…

Gitlab 合并分支与请求合并

合并分支 方式一:图形界面 使用 GitGUI,右键菜单“GitExt Browse” - 菜单“命令” - 合并分支 方式二:命令行 在项目根目录下打开控制台,注意是本地 dev 与远程 master 的合并 // 1.查看本地分支,确认当前分支是否…

2、HAproxy调度算法

HAProxy的调度算法可以大致分为以下几大类: 静态算法:这类算法的调度策略在配置时就已经确定,并且不会随着负载的变化而改变。常见的静态算法有: Round Robin(轮询) Least Connections(最少连接数) Static-Weight(静态权重) Sourc…

QSlider 样式 Qt15.15.2 圆形滑块

在看文档的时候测试了一下demo,然后发现了一个有意思的东西,自定义滑块为带边框的圆形。 在设置的时候边框总是和预期的有点误差,后来发现了这样一个计算方式可以画一个比较标准的圆。(ABCDEF在下方代码块内) 滑块的…

Kubernetes 之CNI 网络插件大对比

介绍 网络架构是Kubernetes中较为复杂、让很多用户头疼的方面之一。Kubernetes网络模型本身对某些特定的网络功能有一定要求,但在实现方面也具有一定的灵活性。因此,业界已有不少不同的网络方案,来满足特定的环境和要求。 CNI意为容器网络接…

【iOS】—— 持久化

文章目录 数据持久化的目的iOS中数据持久化方案数据持久化方式分类内存缓存磁盘缓存 沙盒机制获取应用程序的沙盒路径沙盒目录的获取方式 持久化数据存储方式XML属性列表Preferences偏好设置(UserDefaults)数据库存储什么是序列化和反序列化,…

Hadoop概念学习(无spring集成)

Hadoop 分布式的文件存储系统 三个核心组件 但是现在已经发展到很多组件的s 或者这个图 官网地址: https://hadoop.apache.org 历史 hadoop历史可以看这个: https://zhuanlan.zhihu.com/p/54994736 优点 高可靠性: Hadoop 底层维护多个数据副本,所…

工程师分享:如何解决传导干扰?

电磁干扰 EMI 中电子设备产生的干扰信号是通过导线或公共电源线进行传输,互相产生干扰称为传导干扰。传导干扰给不少电子工程师带来困惑,如何解决传导干扰? 找对方法,你会发现,传导干扰其实很容易解决,只要…

Jmeter基础篇(17)Jmeter中Stop和X的区别

一、前言 在Apache JMeter中,Stop和X之间存在一些区别。虽然它们都是用于结束测试的不同方法,但它们在实施方式和效果上存在一些差异。 二、Jmeter中的Stop 首先,让我们了解一下Stop。 在JMeter中,Stop是指在测试结束时关闭线…

css实现步骤条中的横线

实现步骤中的横线,我们使用css中的after选择器,content写空,然后给这个范围设定一个绝对定位,相当于和它设置伪类选择的元素的位置,直接看代码: const commonStyle useMemo(() > ({fontSize: 30px}),[]…

前端开发中的微服务架构设计

前端服务化和小程序容器技术为前端应用带来了更好的组织结构、可维护性和可扩展性。这些技术的应用将促进前端开发的创新和发展,使团队能够更好地应对复杂的前端需求和业务挑战。通过将前端视为一个服务化的架构,我们能够构建出更强大、可靠且可持续的前…

windows安装npm, 命令简介

安装步骤 要在Windows上安装npm,按照以下步骤操作: 首先,确保您已经在计算机上安装了Node.js。可以从Node.js官方网站(Node.js)下载并安装Node.js。完成Node.js的安装后,打开命令提示符(Command…

Linux推出Debian 12.1,并进行多方面系统修复

据了解,Debian是最古老的 GNU / Linux 发行版之一,也是许多其他基于 Linux 的操作系统的基础,包括 Ubuntu、Kali、MX 和树莓派 OS 等。 此外,该操作系统以稳定性为重,不追求花哨的新功能,因此新版本的发布…

【Huawei】WLAN实验(三层发现)

拓扑图如上,AP与S1在同一VLAN,S1与AC在同一VLAN,AP采用三层发现AC,AP与客户的DHCP由S1提供。 S1配置 vlan batch 10 20 30 dhcp enable ip pool apgateway-list 192.168.20.1network 192.168.20.0 mask 255.255.255.0option 43 sub-option …

Lua脚本解决多条命令原子性问题

Redis是一个流行的键值存储数据库,它提供了丰富的功能和命令。在Redis中,我们可以使用Lua脚本来编写多条命令,以确保这些命令的原子性执行。Lua是一种简单易学的编程语言,下面将介绍如何使用Redis提供的调用函数来操作Redis并保证…

【设计模式——学习笔记】23种设计模式——桥接模式Bridge(原理讲解+应用场景介绍+案例介绍+Java代码实现)

问题引入 现在对不同手机类型的不同品牌实现操作编程(比如:开机、关机、上网,打电话等),如图 【对应类图】 【分析】 扩展性问题(类爆炸),如果我们再增加手机的样式(旋转式),就需要增加各个品牌手机的类,同样如果我们…

JAVA-字符串生成图片

直接上代码 public static void main(String[] args) throws IOException {createFontImage("红色", new Font("宋体", Font.BOLD, 50), 400, 400);}/*** 根据str,font的样式将文字变成图片,然后返回一个流** param str 字符串* param font 字体* pa…

了解Unity编辑器 之组件篇Effects(十一)

一、Halo:是一个可用于游戏对象的特效组件,它可以在对象周围添加一个光晕效果 Color属性: 用于设置Halo的颜色。你可以通过选择颜色面板中的颜色来指定光晕的外观。选择适当的颜色可以使光晕与游戏场景中的其他元素相匹配或突出显示。 Size属性: 用于设…

LeetCode|backtracking|review:40. 131. 93. 47. 332. | 37. Sudoku Solver

复习: 40. Combination Sum II [1,1,2,3]中,答案里有[1,1,2], 但是不能有两个[1,2,3] 131. Palindrome Partitioning 每个for都是在给定的start之后找一个palindrome。当start 93. Restore IP Addresses forloop每次loop都是在给定的start的后三个数…

javascript 模板引擎

使用场景 在实际开发中,一般都是使用动态请求数据来更新页面,服务器端通常返回json格式的数据,正常操作是我们手动的去拼装HTML,但麻烦且容易出错,因此出现了一些用模版生成HTML的的框架叫js模板引擎如:jq…