ICCV 2023 | 利用双重聚合的Transformer进行图像超分辨率

导读
本文提出一种同时利用图像空间和通道特征的 Transformer 模型,DAT(Dual Aggregation Transformer),用于图像超分辨(Super-Resolution,SR)任务。DAT 以块间和块内的双重方式,在空间和通道维度上实现特征聚合,从而具有强大的图像表示能力。具体来说,DAT 在连续的 Transformer 块中交替应用空间和通道自注意力,以实现块间聚合。同时,本文还提出自适应交互模块(Adaptive Interaction Module,AIM)和空间门前馈网络(Spatial-Gate Feed-forward Network,SGFN)来实现块内特征聚合。AIM 从空间与通道为徒改进现有注意力机制,SGFN 在前馈网络中引入了非线性空间信息。实验证明,DAT 实现目前最先进的图像超分辨率性能。

论文连接: https://arxiv.org/abs/2308.03364
代码连接: https://github.com/zhengchen1999/DAT

01. 研究问题

图像超分辨率(Image Super-Resolution,简称图像 SR)是一种图像处理技术,旨在通过增加图像的细节和清晰度,将低分辨率(LR)图像转换为高分辨率(HR)图像。简单来说,就是将一张小尺寸的模糊图像,变成大尺寸的清晰图像。图像超分辨率技术在实际应用中具有广泛的用途,包括高清电视、监控摄像头、医学影像、卫星图像等。现如今,随着人工智能、机器学习的发展,使用深度学习技术的图像超分辨率成为主流。

02. 方法动机

目前,Transformer 在 SR 任务中表现出色。其核心是自注意力(Self-Attention,SA)机制,能够建立全局依赖关系。而全局关系的建立,对于高分辨率图像的重建尤为重要。然而,全局SA的计算复杂度与图像大小成平方比,这极大的限制了其在高分辨率图像上的应用(这在图像 SR 中很常见)。考虑到这个原因,一些研究人员提出更加高效的 SA,以有效利用 Transformer。总的来说可以分为空间通道两个方面:

  • 空间方面,局部空间窗口被提出来限制全局 SA 的应用范围,从而提出局部窗口注意力(Spatial-Window Self-Attention,SW-SA)。如图(a),空间维度H×W 被划分为多个窗口,注意力在每个窗口中被执行。
  • 通道方面,提出通道自注意力(Channel-Wise Self-Attention,CW-SA)。如图(b),注意力沿着通道维度 C 计算。也就是图中每一个独立的块都作为一个 token

图片1. 不同自注意力机制示意图

这些方法都在降低计算复杂度的同时,实现优异的性能。同时这两种方法对于图像特征( H×W×C )的建模,是针对不同(空间与通道)的维度的。那么,是否可以同时考虑两个维度,在现有方法的基础上,进一步提高Transformer的建模能力,实现更加出色的超分辨率性能呢?

受以上发现的启发,我们提出 DAT(Dual Aggregation Transformer),通过块间和块内双重方式,实现空间和通道特征有效融合。具体来说,我们在连续的 Transformer 块中交替应用 SW-SA 和 CW-SA 。通过这在交替的方式,DAT 能够同时捕获空间和通道信息,实现块间特征聚合。同时,为了实现块内特征聚合,我们还提出自适应交互模块(Adaptive Interaction Module,AIM)和空间门前馈网络(Spatial-Gate Feed-forward Network,SGFN)。AIM 对 SW-SA 和 CW-SA 建模单一维度进行改进,SGFN 则在前馈网络中引入非线性空间信息。

总体而言,我们的贡献可以总结为以下三点:

  • 设计了一种新的图像超分辨率模型:DAT。该模型以块间和块内双重方式聚合空间和通道特征,增强 Transformer 的建模能力。
  • 交替应用空间和通道自注意力,实现块间特征聚合。此外,还提出 AIM 和 SGFN 来实现块内特征聚合。
  • 进行了大量实验,证明提出的 DAT 实现最先进的图像超分辨率性能,同时保持较低的复杂性和模型大小。

03. 方法介绍

在本节中,我们首先介绍 DAT 的架构。 随后,我们详细阐述自适应交互模块(AIM)和空间门前馈网络(SGFN)两个组件。

3.1 模型架构

图片2. 模型架构

正如前文提到,在 DAT 中,我们以交替的方式同时使用 SW-SA 和 CW-SA 两种注意力模块。这种组合,能够对两个维度的特征进行建模,并利用它们的优势互补:

  • SW-SA 对空间上下文进行建模,增强每个特征图的空间表达。
  • CW-SA 可以更好地构建通道之间的依赖关系,扩大感受野,从而帮助 SW-SA 捕获空间特征。

因此,空间和通道信息在连续的 Transformer 块之间流动,以此实现块间特征聚合。

3.2 自适应交互模块(AIM)

图片3. 自适应交互模块(AIM)

我们提出的 AIM 对 SW-SA 和 CW-SA 实现进一步改进。首先,考虑到自注意力主要是捕获全局特征,我们增加了与自注意力模块平行的卷积分支,依次引入局部性到 Transformer 中。接着,考虑到虽然交替执行 SW-SA 和 CW-SA 可以在块间实现空间与通道的特征聚合,但是对于每个自注意力(SA)而言,不同维度的信息仍然无法有效利用。因此,我们提出了AIM(灰色阴影区),作用于两个分支之间,并根据分支的类型,从空间或通道维度自适应地重新加权特征,从而在单个注意力模块中实现空间和通道信息的聚合。

综合上述改进,我们在 SW-SA 和 CW-SA 的基础上,提出改进版的自适应空间自注意力(Adaptive Spatial Self-Attention,AS-SA)和 自适应通道自注意力(Adaptive Channel Self-Attention,AC-SA)。

相比原始自注意力机制,我们的方法具有:

  • 局部(卷积)和全局(注意力)更好的耦合:两个分支的输出可以自适应调整以相互适应、融合。
  • 更强的建模能力:对于 SW-SA,互补通道信息提高了其通道建模能力;对于 AC-SA,通过空间交互,额外的空间知识同样增强特征表征能力。

3.3 空间门前馈网络(SGFN)

图片4. 空间门前馈网络(SGFN)

传统的前馈网络(Feed-Forward Network,FFN)有线性层和非线性激活组成。只能够对特征通道进行建模, 但忽略了建模空间信息。 此外,FFN会通过线性层在内部对特征通道进行放大,这导致通道之间存在冗余,从而阻碍了特征表达能力。

为了克服上述问题,我们提出了 SGFN:将空间门控(Spatial-Gate,SG)引入到 FFN 中。SG 是一个简单的门空机制,由深度卷积和逐元素乘法组成。同时,我们将特征图沿着通道维度,均匀的分为两个部分,分别送入卷积和乘法旁路中,以此来降低通道冗余性。并且该操作也能有效降低计算复杂度。

整体来看,AIM 和 SGFN 是 Transformer 块的两个主要组成。通过这个两个模块,我们实现块内的特征聚合:

  • AIM 从通道维度增强 SW-SA,并从空间维度增强 CW-SA。
  • SGFN 将非线性空间信息引入仅建模通道关系的 FFN 中。

04. 实验结果

消融实验:我们对提出方法的各个进行详尽的消融实验,证明了方法的有效性。

图片5. 消融实验

定量对比:我们提出了2个不同大小的模型变体(DAT-S、DAT),与目前最先进的图像超分辨率方法,在5个基准数据集上进行对比。如下表所示,我们的方法取得了最先进的结果。

图片6. 定量对比,最优结果着红色,次优结果着红色

视觉对比:我们在下图中展示了视觉效果的对比结果。可以发现,我们的方法在细节的重建上具有明显的优势。

图片7. 视觉对比

模型大小:我们还提供了模型大小(Params)、复杂度(FLOPs)、性能上的综合对比。我们的方法在实现性能提升的同时,也保持了较低的复杂性和模型大小。

图片8. 模型大小

05. 结论

本文提出了 DAT(Dual Aggregation Transformer),是一种用于图像超分辨率 Transformer 模型。 DAT 以块间和块内双重方式,聚合空间和通道特征,实现强大的建模能力。 具体来说,连续的 Transformer 块交替应用空间窗口和通道自注意力,并实现了空间和通道维度在块间的特征聚合。 此外,本文还提出了自适应交互模块(Adaptive Interaction Module,AIM)和空间门前馈网络(Spatial-Gate Feed-forward Network,SGFN),以在两个维度上实现块内特征聚合,从而增强每个 Transformer 块。 AIM从两个维度增强自注意力机制的建模能力。 而 SGFN 用非线性空间信息补充前馈网络。 实验证明,DAT 实现目前最先进的图像超分辨率性能。

作者:陈铮


  关于TechBeat人工智能社区

TechBeat(www.techbeat.net)隶属于将门创投,是一个荟聚全球华人AI精英的成长社区。

我们希望为AI人才打造更专业的服务和体验,加速并陪伴其学习成长。

期待这里可以成为你学习AI前沿知识的高地,分享自己最新工作的沃土,在AI进阶之路上的升级打怪的根据地!

更多详细介绍>>TechBeat,一个荟聚全球华人AI精英的学习成长社区

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

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

相关文章

企业工程项目管理系统源码-专注项目数字化管理-Java工程管理-二次开发

工程项目各模块及其功能点清单 一、系统管理 1、数据字典:实现对数据字典标签的增删改查操作 2、编码管理:实现对系统编码的增删改查操作 3、用户管理:管理和查看用户角色 4、菜单管理:实现对系统菜单的增删改查操…

用于设计和分析具有恒定近心点半径的低推力螺旋轨迹研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

用Kubernetes(k8s)的ingress部署https应用

用Kubernetes的ingress部署https应用 环境准备Ingress安装域名证书准备 部署应用通过ingress暴露应用根据ssl证书生成对应的secret创建ingress暴露部署的应用确认自己安装了ingress创建ingress 访问你暴露的应用 环境准备 Ingress安装 我之前有一片文章写的是用ingress暴露应…

树和二叉树基础

引言: 树是一种非线性的结构,也是由一个一个的结点构成。 树的一些基本概念: 节点的度:一个节点含有的子树的个数称为该节点的度;如上图:A的度为6 叶节点或终端节点:度为0的节点称为叶节点。…

【LeetCode75】第四十四题 省份数量

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 给我们一个二维数组,表示城市之间的连通情况,连在一起的城市为一个省份,问我们一共有多少个省份。 这…

cocos creator配置终端调试

在launch.json里添加"preLaunchTask":“CocosCreator compile” 在cocos creator里选择开发者,visual studio code工作流,选择添加编译任务。 添加 settings.json {"files.exclude":{"**/.git": true,"**/.DS_Sto…

【大数据】Flink 详解(六):源码篇 Ⅰ

Flink 详解(六):源码篇 Ⅰ 55、Flink 作业的提交流程?56、Flink 作业提交分为几种方式?57、Flink JobGraph 是在什么时候生成的?58、那在 JobGraph 提交集群之前都经历哪些过程?59、看你提到 Pi…

2023年7月京东打印机行业品牌销售排行榜(京东运营数据分析)

鲸参谋监测的京东平台7月份打印机行业销售数据已出炉! 7月份,打印机市场呈现下滑趋势。根据鲸参谋平台的数据可知,当月京东平台打印机的销量为48万,环比下降约28%,同比下降约18%;销售额为4亿,环…

【云原生】Kubernetes容器编排工具

目录 1. K8S介绍 1.1 k8s的由来 下载地址 1.2 docker编排与k8s编排相比 1.3 传统后端部署与k8s 的对比 传统部署 k8s部署 ​2. k8s的集群架构与组件 (1) Kube-apiserver (2)Kube-controller-manager (3&a…

(数字图像处理MATLAB+Python)第十一章图像描述与分析-第三、四节:几何表述和形状描述

文章目录 一:几何描述(1)像素间几何关系A:邻接与连通B:距离 (2)像素间几何特征A:位置B:方向C:尺寸 (3)程序 二:形状描述&a…

SPI3+DMA外设驱动-TFTLCD初始化

前言 (1)本系列是基于STM32的项目笔记,内容涵盖了STM32各种外设的使用,由浅入深。 (2)小编使用的单片机是STM32F105RCT6,项目笔记基于小编的实际项目,但是博客中的内容适用于各种单片…

13.动态渲染侧边栏

为什么要动态渲染? 比如我们现在需要以下侧边栏的数据: 如果一个个的去写标签会很麻烦,发现导航栏中的数据分为两类,一类是一级导航,另一位是二级导航(有子页),因此直接写两个函数判…

ClickHouse进阶(六):副本与分片-2-Distributed引擎

进入正文前,感谢宝子们订阅专题、点赞、评论、收藏!关注IT贫道,获取高质量博客内容! 🏡个人主页:含各种IT体系技术,IT贫道_Apache Doris,大数据OLAP体系技术栈,Kerberos安全认证-CSDN博客 📌订阅…

如何使用SQL系列 之 了解SQL中的约束规则

简介 在设计数据库时,有时可能需要对某些列中允许的数据设置限制。例如,如果你要创建一张表来保存摩天大楼的信息,你可能希望在保存每座大楼高度的列中禁止使用负值。 关系型数据库管理系统(RDBMS)允许你使用约束来控制哪些数据被添加到表中…

Spring Boot源码解读与原理剖析:深入探索Java开发的奥秘!

评论区留言赠书15本 关注点赞评论,评论区回复“Spring Boot源码解读与原理剖析:深入探索Java开发的奥秘!” 每篇最多评论3条!!采用抽奖助手自动拉取评论区有效评论送书两本, 开奖时间:9月11号 承…

MySQL数据库——多表查询(3)-自连接、联合查询、子查询

目录 自连接 查询语法 自连接演示 联合查询 查询语法 子查询 介绍 标量子查询 列子查询 行子查询 表子查询 自连接 通过前面的学习,我们对于连接已经有了一定的理解。而自连接,通俗地去理解就是自己连接自己,即一张表查询多次。…

二进制数的位运算(非和异或)invert()和bitwise_xor()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 二进制数的位运算(非和异或) invert()和bitwise_xor() [太阳]选择题 下列代码最后一次输出的结果是? import numpy as np a, b 3, 10 print("【执行】np.binary_repr(a, 4)…

vue3+ts组件通信

1、父组件向组件传参 父组件代码 子组件代码 2、子组件向父组件传参 组件间代码 父组件代码 3、如果eslint报错,需在.eslintrc.js中添加一行代码 4、通过父组件通过 ref 获取子组件的属性或者方法 父组件代码 子组件代码 5、孙子组件provide和inject 父组件…

再也不信能用99年的IDEA激活方式了

今天给大家安利一款IDEA伴侣神器 Toolbox,开发必备的IDEA大家都在用,但很多小伙伴没用过Toolbox。 介绍 为什么使用 JetBrains Toolbox? 包含超过 15 款可用于专业开发的工具。 每个工具专门针对其技术开发。 所有工具都会定期更新&#…

python 笔记(3)——request、爬虫、socket、多线程

目录 1、使用requests发送http请求 1-1)发送get请求 1-2)发送 post 请求 1-3)发送 get 请求下载网络图片 1-4)使用 post 上传文件 1-5)自动维护 session 的方式 2、使用 os.popen 执行cmd命令 3、基于 beautif…