【图像任务】Transformer系列.2

news2024/12/21 17:57:40

两篇改进Transformer结构的论文:MAN(arXiv2022),ScalableViT(ECCV2022).

Multi-Scale Attention Network for Single Image Super-Resolution, arXiv2022

解读:【ARIXV2209】Multi-Scale Attention Network for Single Image Super-Resolution - 高峰OUC - 博客园 (cnblogs.com)

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

代码:https://github.com/icandle/MAN

利用多尺度机制与大核注意机制结合,用于图像超分辨率。

本文提出了一种基于CNN的多尺度注意力网络(MAN),该网络由多尺度大核注意力单元(MLKA)和门控空间注意力单元(GSAU)组成,以提高卷积SR网络的性能。
MLKA用多尺度和门方案校正LKA,以获得不同粒度级别的丰富注意力图,从而联合聚合全局和局部信息,避免潜在的阻塞伪影。GSAU将门机制和空间注意力相结合,以去除不必要的线性层并聚合信息空间上下文。

Visual Attention Network (VAN)提出将大核卷积划为:depth-wise conv,dilated conv,和 point-wise conv 的组合。VAN作者指出,图像超分任务中使用VAN,发现了一个很重要的问题:含膨胀的深度卷积会为超分任务带来“块状伪影(blocking artifacts),损害恢复性能”

论文提出多尺度大核注意力(MLKA),它将多尺度机制和LKA相结合,以相对较少的计算构建各种范围相关性。为避免膨胀引起的潜在块伪影,采用门机制来自适应地重新校准生成的注意力图。并将其置于MetaFormer风格的结构上,以构建多注意力块(MAB)。构建一种简化的门控空间注意力单元(GSAU),通过应用空间注意力和门机制来减少计算并包括空间信息。在MLKA和GSAU的武装下,MAB被堆叠以构建用于SR任务的多尺度注意力网络(MAN)。

MAN网络(Multi-scale Attention Network)

MAN由三个部分组成:浅层特征提取模块(SF)、基于多尺度注意力块的深层特征提取模块 和高质量图像重建模块。

Multi-scale Attention Block (MAB)

MAB由两个组件组成:多尺度大核注意力(MLKA)模块和门空间注意力单元(GSAU)。

Multi-scale Large Kernel Attention (MLKA)

MLKA,结合大核分解和多尺度学习。它有三个主要部件,用于建立相互依赖性的大内核attens(LKA)、用于获得异构尺度相关性的多尺度机制以及用于动态重新校准的门控聚合。

MLKA首先使用 Point-wise conv 改变通道数,然后将特征 split 成三组,每个组都使用 VAN 里提出的大核卷积来处理(即depth-wise conv,dilated conv,和 point-wise conv 的组合)。三组分别使用不同尺寸的大核卷积(7×7、21×21、35×35),膨胀率分别设置为(2,3,4)。

 使用深度膨胀卷积会带来“块状伪影”问题。因此在分组后,作者引入门控聚合来动态调整LKA的输出。即上图中最上面的DWConv。在对应组中,与下方深度卷积使用的核尺寸一致,并将该卷积的输出与对应组中LKA的输出做逐元素乘法。

Gated Spatial Attention Unit (GSAU)

在Transformer块中,前馈网络(FFN)是增强特征表示的重要组成部分。然而,具有宽中间通道的MLP对于SR来说太重了,尤其是对于大的图像输入。论文将简单空间注意力(SSA)和门控线性单元(GLU)集成到所提出的GSAU中,以实现自适应门控机制,并减少参数和计算。为了更有效地捕捉空间信息,采用单层深度卷积来对特征图进行加权。

普通的FFN是两个 point-wise conv 。为了进一步增强特征表示,作者引入了 spatial self-attention 和 gated linear unit (GLU) 的思路,具体如下图所示,上面分支加入了一个 dwconv 对结果加权,两个分支的特征进一步加强了特征表示。

Large Kernel Attention Tail (LKAT)

作者采用了以前超分方法的范式,将一个LKA用在网络尾部,以进一步从特征中总结出可用的信息,提升图像修复性能。

实验

 

 

ScalableViT: Rethinking the Context-oriented Generalization of Vision Transformer, ECCV2022

解读:【论文笔记】ScalableViT:可伸缩Transformer - 知乎 (zhihu.com)

ECCV 2022 | ScalableViT:重新思考视觉Transformer面向上下文的泛化 - 知乎 (zhihu.com) 

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

代码:https://github.com/yangr116/scalablevit

本文提出一种新的transformer模型ScalableViT。它提出一种可伸缩的自注意力机制SSA来解除QKV与输入维度的绑定,和一种基于交互窗口的自注意力IWSA来实现非重叠窗口的交互,取得SOTA性能。

基础的自注意力本质上依赖于在预定义的固定维度上运算 ,这限制了它获得有上下文线索和全局表征的泛化能力。ScalableViT则提出可缩放自注意力SSA,通过两个在维度上的缩放系数来释放query,key,value矩阵维度与输入的绑定,来缓解这个问题。这种缩放能力获取到上下文泛化能力,增强了目标敏锐度,同时也让整个模型位于准确率和代价之间更经济的权衡状态。提出一种基于窗口的自注意力IWSA,通过重新合并独立的value块、聚合相邻窗口的空间信息来建立不重叠区域的交互。SSA和IWSA交替堆叠就得到ScalableViT。

展示了基于窗口的自注意(WSA)和可伸缩自注意(SSA)中第二个Transformer块之后的特征图。由于映射维度有限,WSA的激活是不连续的。SSA(rc=1)在保持全局感知的同时减少了计算开销,确保了其特征图几乎是连续的。rc=1表示通道尺寸中没有比例因子。SSA将尺度因子引入空间和通道维度,建模为整体表示和面向上下文的概括。

WSA更倾向于部分而非整个对象,可能归咎于固定的维度限制了学习能力。SSA在通道和空间维度引入缩放系数,维度更加灵活,输入不再绑定;空间缩放能力也聚合了带有相似语义信息的冗余块更为紧凑;扩展通道维度以学习更多的图像表征。

ScalableViT架构

在每个阶段,设计了一种交替排列的IW-MSA和S-MSA块来组织拓扑结构。在每个阶段的前端,在两个Transformer块之间插入一个位置编码生成器(PEG),动态生成位置嵌入。

SSA同时在空间和通道维度中引入不同的尺度因子,以保持面向上下文的泛化,同时减少计算开销。IWSA通过聚集来自一组离散值标记的信息来增强局部自我注意的感受域。两者都具有线性计算复杂性,并且可以在单层中学习长程依赖关系。

Scalable Self-Attention

可伸缩的自我注意(SSA),其中两个缩放因子(rn和rc)分别引入到空间和通道维度,产生了比普通的一个更有效的中间计算。中间维度更有弹性,不再与输入x深度绑定。模型可以获得面向上下文的泛化,同时显著减少计算开销。

 Interactive Window-based Self-Attention

WSA的线性复杂度,它可以适用于各种需要高分辨率输入的视觉任务,但这种计算效率高的WSA产生了一个具有完整形状但孤立激活的特征图,这归因于在单一层中错过了全局感受野。于是,本文提出了基于交互式windows的自我注意(IWSA),该IWSA将一个本地交互模块(LIM)整合到WSA中。

输出的Y = F(V)是一个包含全局信息的综合特征图,这个特征图被添加到Z上作为最终输出Z '。在不丧失一般性的前提下,IWSA的计算公式为: 

位置编码

除了LIM引入的位置信息外,作者还利用由固定权值的卷积层组成的位置编码生成器(PEG)来获取隐式的位置信息。如图2所示,它被插在两个连续的Transformer块之间,每个级的前面只有一个。在PEG之后,输入的tokens被发送到随后的块,位置偏差可以使Transformer实现输入排列。

实验

 

 

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

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

相关文章

Java课程设计-学生管理系统《控制台版本》

博主介绍:✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

JavaEE(系列20) -- 网络编程之UDP和TCP套接字

目录 1. 网络编程 2. UDP网络编程 2.1 DatagramSocket API 2.2 DatagramPacket API 2.3 基于UDP实现的回显服务器 2.3.1 UDP服务器设计步骤 2.3.2 服务器代码 2.3.3 客户端代码 2.3.4 基于UDP写一个字典服务器 3. TCP网络编程 3.1 ServerSocketAPI 3.2 SocketAPI …

如何不出国一年内拿到加拿大女王大学金融硕士学位证书?

作为加拿大最好的公立大学之一,QueensUniversity位于安大略省的金斯顿市。最近,它在QS全球大学排名中跻身第209位,同时在加拿大的综合排名中名列第7位。这表明女王大学在学术研究和教育方面都有着出色的表现。Queens University坐落于安大略省…

分布式光伏发电远程监控系统

分布式光伏发电远程监控系统 项目背景 新能源、可再生能源接入电网是智能电网建设的重要组成,也是能源互联网发展的基础。近年来,太阳能光伏发电技术快速发展,光伏发电并网对配电网的影响也不断加深。电网调度人员需要人工参与光伏发电站的发…

RK3588+FPGA+Cameralink高速相机解决方案

1. 视频接入,其中可见使用LVDS,红外使用cameralink 2. H264低倍率压缩编码本地存储 3. H264压缩使用同步422接口或者网口UDP协议输出实时码流 4. 使用串口进行通讯,进行类似于可见、红外或者激光器或者地面控制软件等之间的通讯 5. 使用网…

SpringBoot3-基础配置和多环境开发

1. 配置文件格式 提供三种属性配置方式,当三个配置文件都有,加载顺序从前至后 示例第二种(主要也是用这个): 2. yaml格式 3. yaml读取数据格式的三种方式 第一种,使用Value读取单一属性数据 Value("${…

基于redis实现消息队列(更推荐使用专业的mq)

目录 利用redis实现消息队列(基于list,点对点模型)——lpush存放队列(lpush 队列名 队列内容(可一次存放多个内容,用空格隔开)) brpop取队列(brpop 队列名 等待时间单位秒…

机器视觉日常习题(更新中。。。)

目录 第二讲 图像处理概述 第二讲 图像处理概述 几何变换:又称为图像空间变换,它将一幅图像中的坐标位置映射到另一幅图像中的新坐标位置。图像分割:把图像分成各具特色的区域并提取感兴趣目标的技术和过程。图像边缘: 平滑&#…

【深入浅出 Spring Security(六)】一文搞懂密码的加密和比对

Spring Security 中的密码加密 一、PasswordEncoder 详解常见的实现类(了解)DelegatingPasswordEncoder源码分析DelegatingPasswordEncoder 在哪实例化的? 二、自定义加密自定义方式一:使用{id}的形式自定义方式二:向S…

程序员失业转行送外卖,晒出当天收入,还以为看错了!

在程序员的共识中,30岁之前自己是很受企业欢迎的,有经验有技术,能够为公司创造足够多的价值。 但是一旦超过了35岁,如果没有做到架构师或者成为管理人员,那很可能是连工作都找不到的。而且这个年龄的程序员还要面临着…

700MHz设备对广播电视信号的干扰有哪些?

700MHz,由于其较长的波长,良好的传播与覆盖特性,不仅一直被多国用作广播电视信号频率,4G LTE和5G NR也同样看好这一频段,并在此频段上进行了相应的部署和规划。目前已经有超过45个国家和地区,将700MHz频段部…

【网络安全】企业应急响应基础技能

windows 任务计划列表 1. 计算机管理窗口,选择 系统工具 中 任务计划程序 中的 任务计划程序库选项 可以查看任务计划的名称,状态,触发器等详细信息 2.powershell中输入get-scheduledtask 可以查看当前系统所有任务计划信息 任务路径,名称,状态等详细信息 3.命令行中输入s…

C++11:右值引用,实现移动语义和完美转发

目录 1、右值引用 2、移动语义(std::move) 3、完美转发(std::forward) 1、右值引用 右值引用(Rvalue reference)是C11引入的一个新特性,它是一种新的引用类型,用于表示将要被移动…

5个小时,搭出2套应用,这一低代码平台很强劲!

现代管理学之父德鲁克提及创新本质时,说了两点: 一是让昂贵的东西变得便宜,老百姓能用;二是让高门槛东西变得低门槛,普通人可用。 而低代码正符合这两个条件。 一、背景 所谓低代码,是一种软件开发方法&…

常用的LED显示屏驱动芯片和控制系统

常用的LED显示屏驱动芯片包括以下几种: TPIC6B595:这是一种串行输入、并行输出的LED显示屏驱动芯片,适用于驱动7段数码管等简单的LED显示屏。 MAX7219/MAX7221:这是一种常用的LED显示屏驱动器,可驱动8x8点阵LED显示屏。…

npm 发布新包或者新模块后,无法下载最新版本,如何解决?

目录 1、方法一:在npm官网搜索对应的模块,看看是否有最新版本的存在? 2、方法二:排查本地使用的是什么镜像? 3、方法三:将淘宝镜像切换成npm镜像 1、方法一:在npm官网搜索对应的模块&#xf…

运维小白必学篇之基础篇第十四集:DHCP中继实验

DHCP中继实验 目录 服务器端:(vmware5) 中继器端:(双网卡ens33、vmware5;ens36、vmware6) 客户端:(vmware6) 实验作业(主机名为自己的名字)&a…

WebGIS学习-01-GIS基础概念与Mapbox基础

1.地图数据来源 1.栅格数据: -.jpg,.png等图片数据; -卫星等拍摄的影像;.tiff 2.矢量数据: -geojson的数据,多用于绘制边界 -放大缩小都不会失真,且高度支持手绘 2.网页是如何渲染地图数据的 …

什么是压力测试?如何进行Jmeter压力测试

一、什么是压力测试 软件测试中:压力测试(Stress Test),也称为强度测试、负载测试。压力测试是模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行测试软件,来测试被测系统的性能、…

深度学习-调参技巧总结

针对CNN优化的总结 使用没有 batchnorm 的 ELU 非线性或者有 batchnorm 的 ReLU。用类似1*1的网络结构预训练RGB数据, 能得到更好的效果。使用线性学习率衰退策略。使用平均和最大池化层的和。使用大约 128(0.005) 到 256 (0.01&a…