论文精读-SRFormer Permuted Self-Attention for Single Image Super-Resolution

news2024/10/7 15:18:46

论文精读-SRFormer: Permuted Self-Attention for Single Image Super-Resolution

SRFormer:用于单图像超分辨率的排列自注意
Params:853K,MACs:236G
优点:

1、参考SwinIR的RSTB提出了新的网络块结构PAB(排列自注意力块),由此构建了新的网络层PSA。

2、通过信道压缩(减少通道数)+重排列(恢复通道数+缩减窗口大小,/r*r)减少了时间复杂度,并解决了大窗口自注意的参数量、计算成本大的问题。

3、将MLP中的普通卷积替换为深度卷积,补偿了缺失的高频信息。

如果图不全:论文精读-SRFormer Permuted Self-Attention for Single Image Super-Resolution

概述

增加基于变压器的图像超分辨率模型(例如SwinIR)的窗口大小可以显着提高模型性能,但计算开销也相当大。在本文中,我们提出了一种简单而新颖的SRFormer方法,它可以享受大窗口自关注的好处,但引入的计算负担更少。我们的SRFormer的核心是排列自注意(PSA),它在自注意的渠道和空间信息之间取得了适当的平衡。我们的PSA简单,可以很容易地应用于现有的基于窗口自关注的超分辨率网络。在没有任何附加功能的情况下,我们的SRFormer在Urban100数据集上实现了33.86dB的PSNR得分,比SwinIR高0.46dB,但使用的参数和计算量更少。我们希望我们的简单而有效的方法可以作为未来超分辨率模型设计研究的有用工具。

背景介绍

单图像超分辨率(SR)是一种从降级的低分辨率图像中恢复高质量图像的方法。基于cnn的方法长期以来一直是图像超分辨率的主流。这些方法大多利用残差学习[26,30,32,38,55,80]、密集连接[58,67,87]或通道关注[72,86]来构建网络架构。在SwinIR中适当地扩大窗口以转移窗口自关注可以带来明显的性能增益(见图1)。然而,随着窗口尺寸变大,计算负担也是一个重要问题。此外,与之前基于cnn的方法相比,基于变压器的方法利用自注意力,需要更大的通道数网络[26,86,87]。为了探索高效且有效的超分辨率算法,一个直截了当的问题应该是:如果我们减少通道数,同时增加窗口大小,性能会如何?

**在大窗口内建立成对关系的有效方法(例如,24 ×24)。其目的是使更多的像素参与到注意图计算中,同时不引入额外的计算负担。**为此,我们建议缩小键和值矩阵的通道维度,并采用置换操作将部分空间信息传递到通道维度中。这样,尽管通道减少了,但没有空间信息的损失,并且每个注意头也被允许保留适当数量的通道来产生表达性的注意图[60]。此外,我们还通过在两个线性层之间添加深度卷积来改进原始前馈网络(FFN),我们发现这有助于高频分量的恢复。

相关工作

CNN SR

自SRCNN[9]首次将CNN引入图像超分辨率(SR)以来,出现了大量基于cnn的SR模型。DRCN[27]和DRRN[55]引入递归卷积网络,在不增加参数的情况下增加了网络的深度。一些早期的基于cnn的方法[9,27,55,56]试图将低分辨率(LR)作为输入进行插值,这导致了计算代价高昂的特征提取。为了加速SR推理过程,FSRCNN[10]在LR尺度上提取特征,并在网络末端进行上采样操作。这种带有像素洗牌上采样[52]的流水线在后来的作品中得到了广泛的应用[37,85,86]。LapSRN[29]和DBPN[19]在提取特征时进行上采样,学习LR和HR之间的相关性。也有一些作品[30,65,67,83]使用GAN[14]在重建中生成逼真的纹理。MemNet[56]、RDN[87]和HAN[49]有效地聚合了中间特征,增强了重建图像的质量。非局部注意力[64]也在SR中得到了广泛的探索,以更好地模拟远程依赖关系。这类方法包括CS-NL[48]、NLSA[47]、SAN[7]、IGNN[89]等。

视觉Transformer SR

变压器最近在各种视觉任务中显示出巨大的潜力,包括图像分类[11,59,62,74,75],目标检测[4,12,16,54,73],图像字幕[33,69,84],语义分割[53,71,88],图像恢复[5,17,37,76]等。其中,最典型的工作应该是Vision Transformer (ViT)[11],它证明了变压器在特征编码上比卷积神经网络有更好的表现。变压器在低层次视觉中的应用主要包括两大类:生成[8,24,31,78]和恢复。进一步,恢复任务也可以分为两类:视频恢复[13、39、40、42、51]和图像恢复[5、18、68、70、76]。作为图像恢复的一项重要任务,图像超分辨率需要保持输入图像的结构信息,这对设计基于变压器的图像模型提出了很大的挑战。IPT[5]是基于Transformer编码器和解码器结构的大型预训练模型,并已应用于超分辨率、去噪和去训练。SwinIR[37]基于SwinTransformer编码器[41],在8 ×8局部窗口上进行特征提取的自关注,实现了极其强大的性能。ELAN[85]简化了SwinIR的架构,并使用在不同窗口大小下计算的自关注来收集远程之间的相关性像素。

SRFormer

SRFormer也是基于Transformer的。与前面提到的直接利用自我关注来构建模型的方法不同,我们的SRFormer主要针对的是自我关注本身。我们的目的是研究如何在不增加参数和计算成本的情况下,在大窗口内计算自注意力,以提高SR模型的性能。

方法

模型架构

SwinIR:

图片

SRFormer(基础架构与SwinIR一致,只是将其中的RSTB块替换为了PAB块):
在这里插入图片描述

像素嵌入层(低维信息获取):

使用CNN网络 3x3卷积

特征编码器(高维信息获取):

使用新的 基于PAB+CNN的PSA网络

PSA=MxPAB+3x3Conv

整个中间层=NxPSA+3x3Conv

重构模块:

3x3 卷积+亚像素卷积层

损失函数:仍然使用L1像素损失

排列自注意

image-20240519145214962

1、Xin ∈ R(H×W×C)

2、拆分窗口=> X ∈ R(N*S^2×C) N个S x S的窗口

3、通道压缩=>

在这里,Q保持与X相同的通道维度,而LK和LV将通道维度压缩为C/r^2,得到

image-20240519150615882

4、线性转换=> image-20240519145447136

5、通道恢复=>

为了使更多的token参与到自关注计算中,避免计算成本的增加,我们建议将K和V中的空间token置换到通道维度。

(只需要移动数据,不需要计算)

image-20240519150056384

然后我们使用Q和缩小的Kp和Vp来执行自注意操作。

6、自注意力计算=>

image-20240519150150612

B是对齐的位置嵌入

其中Q:windows size:sxs C个通道

Kp:windows size:s/rxs/r C个通道

Vp:windows size:s/rxs/r C个通道

为了能够计算,需要填充相应的数据,可以填充相同数据,这样相同数据的计算可以避免(only copy)。

所以实际计算就是sxs 与 s/r x s/r进行MatMul的计算量。

计算复杂度

传统Attention计算:

4个线性投影:(Q,K,V,softmax)

=>4hwC^2 而 h*w =(h * w/N) *N

=> N * 4 * (S * S * C^2)其中括号内=S * S * C1、S * S * C2

2个矩阵乘法:(Q*K^T,attention score * V)

=>2W^2 hwC

=>N * 2 * ( S * S * S * S * C)其中括号内=S * S * C、S * S * C

image-20240519151712476

使用排列自注意(PSA)后:

4个线性投影:(Q,K,V,softmax)

其中的Q和softmax仍然和普通attention一致,即2hwC^2,而K和V计算,因为进行了通道压缩,所以

=>2hwC2/r2 而 h*w =(h * w/N) *N

=> N * 2 * (S * S * (C/r) ^2)其中括号内=S * S * C1/r、S * S * C2/r

2个矩阵乘法:(Q*K^T,attention score * V)

=>2W^2 (h/r)(w/r)C

=>N * 2 * ( S * S * S/r * S/r * C)其中括号内=S * S * C、S/r * S/r * C

image-20240519152711031

PSA将K、V的线性投影计算和注意力计算减少到1/r^2。

深度卷积

注意力可以被视为一个低通滤波器[50,61]。为了更好地恢复高频信息,通常在每组transformer的末尾添加3 ×3卷积。

在PAB中,我们建议在FFN块的两个线性层之间添加一个局部深度卷积分支,以帮助编码更多细节。我们将新块命名为ConvFFN。经验上看,几乎不增加计算量,但可以补偿自注
意引起的高频信息损失。

image-20240519153202919

大窗口自注意

1、token reduction

image-20240519154504448

使用一个深度卷积,直接将窗口大小缩小为S/r x S/r,从而减少计算量,它与PSA的通道恢复后进行MatMul类似。

2、token 采样

为了避免大窗口导致的计算成本增加,并想使用大窗口的带来的性能提升。token reduction采用从大窗口中随机抽取窗口大小为T的小窗口T^2 (0 ≤ T ≤ S),从而减少计算。NT^2 ×C。但是这样需要每次计算前,先进行令牌采样。且随机选择一部分令牌会丢失内容的结构信息,而这是图像SR所需要的。

计算成本:随窗口大小线性增加。

3、PSA方法

实验

1、深度卷积

image-20240519154944030

2、大窗口自注意

image-20240519155016521

3、大窗口下模型性能:

image-20240519155040908

4、经典图像SR:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

5、典型图像SR:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

6、轻量级图像SR:

image-20240519155259767

7、真实世界图像SR:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

8、可解释性:

image-20240519155501745

QA

(待补充…)

Q:PSA?排列自注意力

Q:残差连接,密集连接(一般指全连接层),通道关注?

Q:x2 SR x4 SR ?

Q:注意力可以被视为一个低通滤波器[50,61]。为了更好地
恢复高频信息,通常在末尾添加一个conv?

A:在图像超分辨率(Super-Resolution, SR)领域,“x2 SR” 和 “x4 SR” 指的是将输入图像的分辨率分别提高到原来的2倍和4倍。具体来说:

  1. x2 SR

    • x2 SR表示超分辨率技术将图像的水平和垂直分辨率都提高到原来的2倍。
    • 这通常意味着图像的每个维度(宽度和高度)都增加到原来的2倍,因此整个图像的像素数量增加到原来的4倍(因为 (2 \times 2 = 4))。
    • x2 SR技术可以用于改善图像细节,使图像看起来更清晰。
  2. x4 SR

    • x4 SR表示超分辨率技术将图像的分辨率提高到原来的4倍。
    • 这意味着图像的每个维度(宽度和高度)都增加到原来的4倍,整个图像的像素数量增加到原来的16倍(因为 (4 \times 4 = 16))。
    • x4 SR是一个更具挑战性的任务,因为需要从较低分辨率的图像中恢复出更多的细节信息。

这些技术可以应用于不同类型的图像超分辨率方法中,包括基于插值的方法、基于重建的方法以及基于深度学习的方法。随着深度学习技术的发展,基于深度学习的超分辨率方法,如使用卷积神经网络(CNN)、生成对抗网络(GAN)等,已经成为提高图像分辨率的有效手段。

在实际应用中,选择合适的放大倍数(如x2、x4或其他倍数)取决于目标应用的需求和可用的计算资源。更高的放大倍数虽然可以提供更多的细节,但同时也需要更复杂的算法和更多的计算资源。此外,过高的放大倍数可能会导致图像质量下降,因此需要仔细平衡放大倍数和图像质量。

Q:非局部注意力?

Q:SwinIR[37]基于SwinTransformer编码器[41],在8 ×8局部窗口上进行特征提取的自关注,实现了极其强大的性能

Q:深度方向(depth-wise)卷积?

Q:单令牌计算量?

Q:类似多头,但不是多头,因为Q使用的是全通道信息。而K,V使用的也是通道压缩后的全通道信息,并不是部分通道。

Q:transformer远程依赖,WMSA,SWMSA?令牌采样?

Q:经典图像SR,轻量级图像SR,真实世界图像SR?

A:图像超分辨率(Super-Resolution, SR)是一种图像处理技术,旨在提高图像的分辨率,使其看起来更清晰。根据实现的复杂度和应用场景的不同,图像超分辨率技术可以分为几个不同的类别:

  1. 经典图像SR

    • 经典图像超分辨率技术通常指的是早期的基于插值、重建或者学习的方法。
    • 这些方法可能包括最近邻插值、双线性插值、双三次插值等传统的图像放大技术。
    • 经典方法也可能涉及更复杂的重建技术,如基于稀疏表示的SR,它们通过学习图像的稀疏编码来恢复高分辨率图像。
    • 这些技术在理论上较为成熟,但在处理速度和效率上可能不如现代的深度学习方法。
  2. 轻量级图像SR

    • 轻量级图像超分辨率技术是为了在资源受限的环境中(如移动设备或嵌入式系统)实现快速且有效的图像放大。
    • 这些方法通常使用深度学习模型,但模型结构设计得更为简单,参数更少,以减少计算复杂度和提高运行速度。
    • 轻量级模型可能采用如ShuffleNet、MobileNet等轻量级网络结构,或者通过知识蒸馏等技术将大型模型的知识迁移到小型模型中。
  3. 真实世界图像SR

    • 真实世界图像超分辨率技术关注于处理实际场景中拍摄的图像,这些图像可能包含噪声、模糊、光照不均等问题。
    • 这类技术不仅需要放大图像,还需要处理和纠正图像中的各种退化问题,以获得更自然和高质量的结果。
    • 真实世界SR技术可能会集成多种图像处理技术,如去噪、去模糊、颜色校正等,以及使用深度学习模型来学习复杂的图像先验和退化模型。

在实际应用中,选择哪种类型的图像超分辨率技术取决于具体的应用需求、可用的计算资源以及图像的质量要求。例如,对于需要快速处理大量图像的移动应用,可能会选择轻量级图像SR技术;而对于需要极高图像质量的专业图像编辑或医学成像,可能会采用更为复杂和精细的经典或真实世界图像SR技术。随着深度学习技术的发展,基于深度学习的图像超分辨率方法已经成为研究和应用的热点。

Q:深度卷积和点卷积?

Q:通道压缩计算量没有考虑??通道压缩,使用点卷积。没有计算量???

压缩完,计算K,Q,然后执行重排列,还原通道数。再进行矩阵乘法。。。

[Ref:Zhou Y, Li Z, Guo C L, et al. Srformer: Permuted self-attention for single image super-resolution[C]//Proceedings of the IEEE/CVF International Conference on Computer Vision. 2023: 12780-12791.]

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

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

相关文章

非授权人员进入报警系统

非授权人员进入报警系统基于智能视频分析技术和深度学习技术,非授权人员进入报警系统通过现场已经装好的监控摄像头针对人体进行精准检测,并根据设置的禁入区范围进行判断。通过图像处理和人体识别算法,非授权人员进入报警系统可以在实时监测…

适用于当下的红色系统可视化大屏,大量图。

特定场合下使用红色系可视化大屏是可以的,但是千万要注意时间和场合,平时最好别用。

【Linux系统】文件与基础IO

本篇博客整理了文件与文件系统、文件与IO的相关知识,借由库函数、系统调用、硬件之间的交互、操作系统管理文件的手段等,旨在让读者更深刻地理解“Linux下一切皆文件”。 【Tips】文件的基本认识 文件 内容 属性。文件在创建时就有基本属性&#xff0…

简单快捷的图片格式转换工具:认识webp2jpg-online

经常写博客或记笔记的朋友们可能会碰到图床不支持的图片格式或图片太大需要压缩的情况。通常,我们会在浏览器中搜索在线图片格式转换器,但这些转换器往往伴有烦人的广告或要求登录,并且支持的转换格式有限。最近,我在浏览 GitHub …

【董晓算法】竞赛常用知识之图论2(最小环,最小生成树)

前言: 本系列是学习了董晓老师所讲的知识点做的笔记 董晓算法的个人空间-董晓算法个人主页-哔哩哔哩视频 (bilibili.com) 动态规划系列(还没学完) 【董晓算法】动态规划之线性DP问题-CSDN博客 【董晓算法】动态规划之背包DP问题&#xff…

AI交互数字人讲解员对博物馆有何价值?

近日,贵州省地质博物馆推出AI交互数字人贵州龙“贵贵”,采用垂直类大语言模型驱动,拥有贵地博相关专业知识,能够作为数字人讲解员向公众解答关于博物馆的各类问题。该AI交互数字人身着考古服装、佩戴馆徽、以可爱的小龙形象&#…

vue使用driver.js引导并自定义样式和按钮

参考网址https://driverjs.com/docs/installation 安装 npm install driver.js 以下是1.3.1版本的基本使用方法 import { driver } from driver.js import driver.js/dist/driver.css mounted() {// 实例化driver对象const driverObj driver({showProgress: true,steps: …

MQTT 5.0 报文解析 05:DISCONNECT

欢迎阅读 MQTT 5.0 报文系列 的第五篇文章。在上一篇中,我们已经介绍了 MQTT 5.0 的 PINGREQ 和 PINGRESP 报文。现在,我们将介绍下一个控制报文:DISCONNECT。 在 MQTT 中,客户端和服务端可以在断开网络连接前向对端发送一个 DIS…

Java 循环嵌套深度揭秘:挑战极限与性能优化

哈喽,大家好,我是木头左! 探索Java的调用栈极限 在Java中,方法调用是通过栈(Stack)这种数据结构来实现的。每当一个方法被调用时,一个新的栈帧(Stack Frame)会被创建并压…

MT3042 这项目我小码哥投了

代码 1.暴力7/15&#xff1a; #include <bits/stdc.h> using namespace std; typedef long long ll; const int N 5e6 10; int n, m; char mp[1005][1005]; int main() {cin >> n >> m;for (int i 1; i < n; i){for (int j 1; j < m; j){cin >…

【设计模式深度剖析】【A】【创建型】【对比】| 工厂模式重点理解产品族的概念

回 顾&#xff1a;创建型设计模式 1.单例模式&#x1f448;️ 2.工厂方法模式&#x1f448;️ 3.抽象工厂模式&#x1f448;️ 4.建造者模式&#x1f448;️ 5.原型模式&#x1f448;️ &#x1f448;️上一篇:原型模式 | &#x1f449;️下一篇:代理模式 目录…

2024年失业率狂飙18.1%,史上最难就业季即将来临,该如何逆袭?_2024年失业潮

【2024年被称为最难就业年&#xff0c;1158万大学生面临难题】 距离2024年毕业季还剩不到4个月&#xff0c;毕业学员将面临空前严峻的就业压力&#xff01;具国家统 计局的数据显示&#xff0c;1-2月份&#xff0c;16至24岁年轻人的失业率飙到18.1%&#xff0c;也就是说&…

WordPress建站公司模板免费下载

WordPress建站公司 适合提供WordPress建站服务的公司或个体(个人)工作室使用的WordPress建站公司主题模板。 演示 https://www.jianzhanpress.com/?p545 https://www.wpicu.com/jianzhan/ 下载 链接: https://pan.baidu.com/s/11trlwUJq_lW81R_acq4ilA 提取码: r19i

【华为】BFD与静态路由和RIP联用

【华为】BFD与静态路由和RIP联用 实验需求配置AR1AR2AR3AR4效果抓包查看 实验需求 如上图组网所示&#xff0c;在R1上配置到达R4的Loopback0。 4.4.4.4/32网段的浮动静态路由&#xff0c;正常情况下通过R3访问R4。 当R3故障时&#xff0c;自动选路通过R2访问R4的Loopback0;在R…

免费发布web APP的四个途径(Python和R)

免费发布数据分析类&#x1f310;web APP的几个途径&#x1f4f1; 数据分析类web APP目前用来部署生信工具&#xff0c;统计工具和预测模型等&#xff0c;便利快捷&#xff0c;深受大家喜爱。而一个免费的APP部署途径&#xff0c;对于开发和测试APP都是必要的。根据笔者的经验…

基于地理坐标的高阶几何编辑工具算法(6)——合并相离面

文章目录 工具步骤应用场景算法输入算法输出算法示意图算法原理 工具步骤 选中一个面&#xff0c;点击“合并相离面”工具&#xff0c;绘制一个面&#xff0c;与其他面相交&#xff0c;双击结束后。 应用场景 用于将相离的两个同类型几何面进行合并。 算法输入 待合并的面…

基础编程函数题

1.简单输出整数&#xff1a;本题要求实现一个函数&#xff0c;对给定的正整数N&#xff0c;打印从1到N的全部正整数。 #include <stdio.h> void PrintN ( int N ); int main () { int N; scanf("%d", &N); PrintN( N ); return 0; } void Prin…

温故而知新-Java基础篇【面试复习】

温故而知新-Java基础篇【面试复习】 前言版权推荐温故而知新-基础篇【面试】解决hash冲突的方法try catch finallyException与Error的包结构OOM你遇到过哪些情况&#xff0c;SOF你遇到过哪些情况线程有哪些基本状态?Java IO与 NIO的区别堆和栈的区别对象分配规则notify()和not…

记录踩坑事件 分页查询order by出现重复数据bug

MySQL排序小坑_mysql order by name相同导致排序混乱-CSDN博客 1、问题描述 列表页分页查询出现重复数据。 2、问题排查 排查最终执行sql日志。 select * from tableA where (start_time>2024-04-17 00:00:00) AND (start_time<2024-05-18 00:00:00) ORDER BY sta…

Fastjson漏洞之CVE-2017-18349

前言&#xff1a; 要想理解漏洞原理&#xff0c;首先看看Fastjson是什么&#xff0c;具体用来做什么才能更好的找到可以利用的场景&#xff1a; Fastjson 是一个由阿里巴巴开发的 Java 语言实现的高性能 JSON 解析器和生成器。它具有以下特点: 快速&#xff1a;Fastjson 在序列…