论文精读-SwinIR Image Restoration Using Swin Transformer

论文精读-SwinIR: Image Restoration Using Swin Transformer

SwinIR:使用 Swin Transformer进行图像恢复

参数量:SR 11.8M、JPEG压缩伪影 11.5M、去噪 12.0M

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

优点:1、提出了新的网络结构。它采用分块设计。包括浅层特征提取:cnn提取,得到低维特征。深层特征提取:使用残差连接(过程可融合不同维度的特征)+Swin transformer+CNN特征增强,得到高纬特征。高质量图像重建:融合浅特征和深特征。

2、针对不同任务设计了相应的损失函数,针对SR使用图像重建模块函数,并使用L1像素损失。针对去噪和JPEG压缩使用残差学习构建LQ和HQ图像之间的残差,并使用Charbonnier损失。

3、消融实验清晰,对比了不同参数的效果,并给出了与先进模型的比较

小结:总体使用深度学习(设计了新的基于SWIN的网络结构)的方法进行图像恢复,针对图像恢复中超分(低尺度)和去噪(噪声),JPEG压缩伪影(压缩图像)3种代表性任务使用不同的损失函数。

如果无法查看图片请查看:论文精读-SwinIR Image Restoration Using Swin Transformer

概述

图像恢复是一个长期存在的低级视觉问题,其目的是从低质量图像(例如,低尺度、噪声和压缩图像)中恢复高质量图像。虽然最先进的图像恢复方法是基于卷积神经网络的,但很少有人尝试用变形金刚在高级视觉任务中表现出令人印象深刻的表现。在本文中,我们提出了一个基于Swin Transformer 的强基线模型SwinIR 用于图像恢复。SwinIR 包括三个部分:浅层特征提取、深层特征提取和高质量图像重建。其中,深度特征提取模块由多个残差Swin Transformer 块(RSTB)组成,每个残差块都有多个Swin Transformer 层和残差连接。我们对图像超分辨率(包括经典图像、轻量级图像和真实图像超分辨率)、图像去噪(包括灰度图像和彩色图像去噪)和JPEG 压缩伪影减少三个具有代表性的任务进行了实验。实验结果表明,SwinIR 在不同任务上的性能优于最先进的方法,最高可达0.14 ~ 0.45dB,而参数总数可减少67%。

背景介绍

大多数基于 cnn 的方法侧重于精细的架构设计,如残差学习[43,51]和密集连接[97,81]。虽然与传统的基于模型的方法相比,性能有了明显的提高方法[73,14,28],它们通常会遇到两个源于基本卷积层的基本问题。首先,图像和卷积核之间的交互是内容无关的。使用相同的卷积核来恢复不同的图像区域可能不是最好的选择。其次,在局部处理的原理下,卷积对于远程依赖建模是无效的。

作为 CNN 的替代方案,Transformer[76]设计了一种自注意机制来捕捉上下文之间的全局交互,并在几个视觉问题中显示出良好的性能[6,74,19,56]。然而,用于图像恢复的视觉变形金刚[9,5]通常将输入图像分割成固定大小的小块(如 48×48),并对每个小块进行独立处理。这样的策略不可避免地会产生两个弊端。

1、首先,边界像素不能利用补丁之外的邻近像素进行图像恢复。(使用3x3卷积)

2、其次,修复后的图像可能会在每个补丁周围引入边界伪影。虽然这个问题可以通过斑块重叠来缓解,但它会带来额外的计算负担。

最 近 , Swin Transformer[56] 集成了 CNN 和Transformer 的优点,显示出很大的前景。

一方面,由于局部注意机制,它具有 CNN处理大尺寸图像的优势。

另一方面,它又具有 Transformer 的优势,可以用移位窗口方案(固定分区与移动分区)对远程依赖进行建模。

相关工作

1.图像恢复

与传统的基于模型的图像恢复方法[28,72,73,62,32]相比,基于学习的方法,特别是基于 cnn 的方法,由于其令人印象深刻的性能而变得越来越受欢迎。它们经常学习来自大规模配对数据集的低质量图像和高质量图像之间的映射。自开创性的 SRCNN[18](用于图像 SR)、DnCNN90和 ARCNN[17](用于 JPEG 压缩伪迹还原)以来,已经提出了一系列基于 cnn 的模型,通过使用更精细的神经网络架构设计,如残差块[40,7,88]、密 集 块 [81,97,98] 和 其 他[10,42,93,78,77,79,50,48,49,92,70,36,83,30,11,16,96,64,38,26,41,25]来提高模型表示能力。其中一些利用了 CNN 框架内的注意机制,如频道注意[95,15,63]、非局部注意[52,61]和自适应补丁聚集[100]。

2.视觉Transformer

最近,自然语言处理模型 Transformer[76]在计算机视觉界获得了很大的普及。当用于图像分类,对象检测[6,53,74,56],分割[84,99,56,4]和人群计数[47,69]等视觉问题时[66,19,84,56,45,55,75],,它通过探索不同区域之间的全局交互来学习关注重要的图像区域。由于其令人印象深刻的性能,Transformer 也被引入到图像恢复中[9,5,82]。Chen 等[9]在标准 Transformer 的基础上提出了一种针对各种恢复问题的骨干模型 IPT。然而,IPT 依赖于大量的参数(超过115.5 万个参数)、大规模的数据集(超过 110 万张图像)和多任务学习来获得良好的性能。Cao 等人[5]提出的 VSR-Transformer 利用自注意机制在视频 SR 中进行更好的特征融合,但仍然从 CNN 中提取图像特征。此外,IPT 和VSR-Transformer 都是局部关注,可能不适用于图像恢复。此 外 , 一 项 并 行 研 究 [82] 提 出 了 一 种 基 于 SwinTransformer 的 u型架构[56]。

方法

概述

本文提出了一种基于 Swin Transformer 的图像恢复模型—SwinIR。更具体地说,SwinIR 包括三个模块:浅层特征提取、深层特征提取和高质量图像重建模块。浅层特征提取模块使用卷积层提取浅层特征,直接传输到重建模块,从而保留低频信息。深度特征提取模块主要由残差 SwinTransformer 块(RSTB)组成,每个残差块利用多个 SwinTransformer 层进行局部关注和跨窗口交互。此外,我们在块的末尾添加了一个卷积层用于特征增强,并使用残差连接为特征聚合提供了一条捷径。最后,在重建模块中融合浅特征和深特征,实现高质量的图像重建。

与流行的基于 cnn 的图像恢复模型相比,基于transformer 的 SwinIR 具有以下几个优点:

(1)图像内容和注意力权重之间基于内容的交互,可以解释为空间变化的卷积[13,21,75]。

(2)通过移位窗口机制实现远程依赖建模。

(3)参数更少,性能更好。例如,如图 1 所示,与现有的图像 SR 方法相比,SwinIR 以更少的参数获得了更好的PSNR。

网络体系结构

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

1、浅层特征提取

给定一个低质量(LQ)输入ILQ∈RH×W ×C in (H、W和 Cin分别为图像高度、宽度和输入通道号),我们使用一个 3 ×3 卷积层 HSFnull(·)提取浅层特征 F0∈RH×W ×C as

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

卷积层擅长早期视觉处理,导致优化更稳定,结果更好[86]。它还提供了一种将输入图像空间映射到高维特征空间的简单方法。

2、深层特征提取

从 F0中提取深度特征 FDF∈RH×W ×C为

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

在 HDF(·)为深度特征提取模块,包含 K 个残差 Swin Transformer 块(RSTB)和一个 3 ×3 卷积层。更具体地说,中间特征 F1 F2 ,……FK 和输出深度特征 FDF 逐块提取为

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

在 HRSTBi (·)表示第 i 个 RSTB层,HCONV是最后一
个卷积层。

使用卷积层在特征提取的末端可以将卷积运算的归纳偏置带入到基于transformer 的网络中,为后期浅层和深层特征的聚合奠定更好的基础。

3、特征融合(图像重建)

针对超分,IRHQ通过将浅层和深层特征聚合

[外链图片转存中…(img-vYsp7cTc-1716003176503)]

浅层特征主要包含低频,深层特征侧重于恢复丢失的高频。SwinIR 通过较长的跳线连接,将低频信息直接传递给重构模块,帮助深度特征提取模块专注于高频信息,稳定训练。

对于重构模块的实现,我们使用亚像素卷积层[68]对特征进行上采样。

对于不需要上采样的任务,如图像去噪和 JPEG 压缩伪影减少,使用单个卷积层进行重建。此外,我们使用残差学习来重建 LQ 和 HQ 图像之间的残差,而不是 HQ 图像。其公式为

[外链图片转存中…(img-HbmHXEZW-1716003176503)]

式中,HSwinIR(·)为 SwinIR函数。

4、损失函数

1、针对SR,L1像素损失(与之前工作相同,为了凸显网络结构的有效性):

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

IHQ是真实的HQ图像,而IRHQ是前面网络输出结果。

2、针对图像去噪和减少 JPEG压缩伪影,我们使用Charbonnier 损失:

image-20240518095737260

经验设置偏置项为10^-3

残差Swin Transformer块

RSTB是由Swin Transformer 层(STL)和卷积层组成的残差块。给定输入特征 Fi,0 在第 i 个 RSTB 中,我们首先提取中间特征Fi,1, Fi,2,…, Fi,L × L Swin Transformer 层为

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

在 HSTLi,j (·) 为第 i 个 RSTB 中的第 j 个 Swin Transformer 层。然后,我们在残差连接前添加一个卷积层。
RSTB的输出公式为

image-20240518100100522

其中Hconvi是第i个RSTB卷积层

优点:

1、虽然 Transformer 可以被视为空间变化卷积的具体实例[21,75],但具有空间不变滤波器的卷积层可以增强 SwinIR 的平移等方差。

2、残差连接提供了从不同块到重建模块的基于特征的连接,允许不同级别特征的聚合。

Swin Transformer 层

Swin Transformer 层(STL)[56]是基于原始 Transformer 层的标准多头自关注[76]。其主要区别在于局部注意和移位窗口机制。

1、将HxWxC的输入转换为MxM的局部窗口(padding)

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

其中HW/M^2是新窗口数量

2、分别计算每个窗口的局部注意力(标准自注意力)

image-20240518100755085

其中 B 为可学习的相对位置编码。在实践中,遵循[76],我们并行执行注意函数 h 次,并将多头自我注意(MSA)的结果连接起来。

(transformer encoder)

3、使用MLP进行进一步的特征转换,该感知器具有两个完全连接的层,它们之间具有GELU非线性。

在 MSA和 MLP之前都添加了 LayerNorm(LN)层,两个模块都使用了剩余连接。

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

但是,当为不同的层固定分区时,没有跨本地窗口的连接。因此,常规和移位的窗口分区交替使用以实现跨窗口连接[56],其中移位的窗口分区意味着将特征移动

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

实验

1、通道数、RSTB(Residual Swin Transformer Block)数、STL(Swin Transformer Layer)数

对于信道数,虽然性能不断增加,但参数总数呈二次增长。为了平衡性能和模型大小,我们在其余实验中选择 180 作为通道数。

对于 RSTB 数和层数,性能增益逐渐趋于饱和。我们为它们都选择 6,以获得一个相对较小的模型。

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

2、patch大小和训练图像数量

训练数据量越大,patch size越大,最终效果越好。

4、RSTB残差连接与卷积影响

1)、残差连接。Pos

2)、3x3卷积可以提取局部邻近特征。Pos

3)、1x1,几乎无影响。

4)、多个3x3卷积会减少参数量,但是会影响模型性能。Neg

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

实验结果:

1、在基准数据集上,与最先进的经典图像 SR 方法进行定量比较(平均 PSNR/SSIM)。最佳和次佳表现分别为红色和蓝色。在×8上的结果在附录中提供。

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

2、在基准数据集上与最先进的轻量级图像 SR方法进行定量比较(平均 PSNR/SSIM)。最佳和次佳表现分别用红色和蓝色表示。

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

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

3、在基准数据集上使用最先进的 JPEG 压缩伪影减少方法进行定量比较(平均 PSNR/SSIM/PSNR- b)。最佳和次佳性能分别用红色和蓝色表示。

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

4、与最先进的灰度图像去噪方法在基准数据集上的定量比较(平均 PSNR)。最佳和次佳表现分别为红色和蓝色。

5、与最先进的彩色图像去噪方法在基准数据集上的定量比较(平均 PSNR)。最佳和次佳表现分别为红色和蓝色。

[外链图片转存中…(img-oNyBcROt-1716003176506)]

QA

(待补充)

Q:图像超分辨率(包括经典图像、轻量级图像和真实图像超分辨率)、图像去噪(包括灰度图像和彩色图像去噪)和JPEG 压缩伪影减少?

Q:密集连接?残差块,密集块

Q:局部处理?

Q:图像和卷积核之间的交互是内容无关的?

Q:一方面,由于局部注意机制,它具有 CNN处理大尺寸图像的优势。另一方面,它又具有 Transformer 的优势,可以用移位窗口方案对远程依赖进行建模?

Q:卷积层提取浅层特征,低频信息?

Q:sr方法?psnr?

Q:卷积本质?为什么可以将图像转为高维表示?

Q:swin transformer layer(STL)?

Q:类似via, NMP+NAS

A:

Q:上采样与下采样?

A:

Q:L1正则化?

A:

Q:Transformer 可以被视为空间变化卷积的具体实例?

A:

Q:最后一个cnn是怎么增强特征的?

A:

Q:卷积运算的归纳偏置?

A:

Q:HREC与HSwinIR?

A:

Q:vit中MLP不同层使用固定分区与移位窗口分区?

A:

Q:平滑,要么过于锐化,无法恢复丰富的纹理?

A:

Q:边界伪影?

[Ref:Liang J, Cao J, Sun G, et al. Swinir: Image restoration using swin transformer[C]//Proceedings of the IEEE/CVF international conference on computer vision. 2021: 1833-1844.]

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

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

相关文章

【C++】C++11(一)

C11是一次里程碑式的更新,我们一起来看一看~ 目录 列表初始化:{ }初始化:std::initializer_list: 声明:auto:decltype: STL的一些变化: 列表初始化: { }初始化&#xf…

JavaSE——类和对象(二)~~封装

目录 一.封装 二.封装扩展之包 三.static成员 四. 代码块 五. 内部类(重要) 大家好呀,我是北纬,接着上节我们继续讲解Java中关于类和对象的相关知识,今天着重给大家介绍一下关于面向对象程序的特性之一——封装。…

最新php项目加密源码

压缩包里有多少个php就会被加密多少个PHP、php无需安装任何插件。源码全开源 如果上传的压缩包里有子文件夹(子文件夹里的php文件也会被加密),加密后的压缩包需要先修复一下,步骤:打开压缩包 》 工具 》 修复压缩文件…

STM32——IIC篇

技术笔记! 一、IIC总线协议介绍(掌握) 1.1 IIC总线结构图 1.2 IIC协议时序 1.3 硬件和软件IIC对比 二、AT24C02介绍(了解) 2.1 AT24C02通讯地址 三、AT24C02读写时序(掌握) 3.1 写时序 3.…

有趣的css - 移形换位加载动画

大家好,我是 Just,这里是「设计师工作日常」,今天分享的是一个移形换位动态加载小动效,适用于 app 列表加载,页面加载或者图片懒加载等场景。 最新文章通过公众号「设计师工作日常」发布。 目录 整体效果核心代码html…

Ubuntu22.04本地部署qwen模型、jupyterlab开发环境、LoRA微调全流程

前言 这段时间在自己的Win11系统上部署了chatGLM以及Qwen模型,进行对话、推理以及工具调用都没有问题,但是在尝试进行微调的时候发现好像并不能成功,因此花费了很大的力气,又分别在ubuntu桌面版、windows子系统WSL2 Ubuntu上部署…

数据可视化第9天(利用wordcloud和jieba分析蝙蝠侠评论的关键字)

数据可以在这里下载 https://github.com/harkbox/DataAnalyseStudy WordCloud wordcloud可以很方便的生成词云图,方便的提供可视化可以直接使用pip install wordcloud进行安装如果使用的是Anaconda,可以使用conda install进行安装 下面看一个简单的例子 txt &qu…

JVM学习-堆空间(三)

JVM在进行GC时,并非每次都对新生代、老年代、方法区(元空间)三个区域一起回收,大部分时间回收的都是新生代 针对Hotspot VM的实现,它里面的GC按照回收区域分两大类型:一种是部分收集(Partial GC),一种是整堆收集(Full …

amtlib.dll打不开怎么办?一键修复丢失amtlib.dll方法

电脑丢失amtlib.dll文件是什么情况?出现amtlib.dll打不开怎么办?这样的情况有什么解决方法呢?今天就和大家聊聊amtlib.dll文件同时教大家一键修复丢失amtlib.dll方法?一起来看看amtlib.dll文件丢失会有哪些方法修复? a…

Docker配置国内镜像源

添加Docker国内镜像源 在/etc/docker/daemon.json文件中添加以下内容: {"registry-mirrors": ["http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn","https://registry.docker-cn.com"] }重启docker s…

【Python】—— lambda表达式

目录 (一)应用场景 (二)lambda 语法 (三)示例分析 (四)lambda参数形式 4.1 无参数 4.2 一个参数 4.3 默认参数 4.4 可变参数 :*args 4.5 可变参数 :…

第四十一天 | 62.不同路径 63.不同路径|| 343.整数拆分 96.不同的二叉搜索树

题目:62.不同路径 1.二维dp数组dp[i][j]含义:到达(i,j)位置有dp[i][j]种方法。 2.动态转移方程:dp[i][j] dp[i - 1][j] dp[i][j - 1] 3.初始化:dp[0][j] 1, dp[i][0] 1 (第一…

Spring Cloud 之 Gateway

本篇主要介绍有关Gateway网关的相关内容。 目录 一、什么是网关 二、Gateway的使用 Gateway服务的搭建 Route Predicate Factories Gateway Filter Factories Filter GlobalFilter Filter的执行顺序 一、什么是网关 经常面试的人肯定知道,在去公司面试时…

CAN笔记第二篇,车载测试继续学起来!

在CAN协议中,“帧”是一个包含完整信息的独立单元,它具有特定的格式和结构,以确保数据在CAN总线上的可靠传输。这里的“帧”字可以理解为: 完整性:一个帧包含了所有必要的信息,从起始到结束,都遵…

【LeetCode】【1】两数之和(1141字)

文章目录 [toc]题目描述样例输入输出与解释样例1样例2样例3 提示进阶Python实现哈希表 个人主页:丷从心 系列专栏:LeetCode 刷题指南:LeetCode刷题指南 题目描述 给定一个整数数组nums和一个整数目标值target,请在该数组中找出…

视觉检测实战项目——九点标定

本文介绍九点标定方法 已知 9 个点的图像坐标和对应的机械坐标,直接计算转换矩阵,核心原理即最小二乘拟合 {𝑥′=𝑎𝑥+𝑏𝑦+𝑐𝑦′=𝑎′𝑥+𝑏′𝑦+𝑐′ [𝑥1𝑦11𝑥2𝑦21⋮⋮⋮𝑥9𝑦91][𝑎𝑎′𝑏𝑏′𝑐𝑐′]=[𝑥1′𝑦…

AI爆文写作:根据别人的爆款标题,如何通过名词替换改成自己的爆款标题?

在日常刷到爆文的时候,就可以培养自己的网感,为啥这篇文章会爆? 这篇爆文的标题有啥诀窍呢? 比如下面这一篇:《极简生活:变富就是每天循环5个动作》 我们可以发现,每天循环5个动作 这几个词语…

C#基础一

使用Visual Studio 2022(VS2022)编写C#控制台程序 1. 安装Visual Studio 2022 确保已安装Visual Studio 2022。如果未安装,请从Visual Studio官网下载并安装。 另一篇文章中已经有详细描述,这里就不在细说了。 VisualStudio2022…

【JavaEE 初阶(十)】JVM

❣博主主页: 33的博客❣ ▶️文章专栏分类:JavaEE◀️ 🚚我的代码仓库: 33的代码仓库🚚 🫵🫵🫵关注我带你了解更多进阶知识 目录 1.前言2.JVM内存区域划分3.类加载3.1双亲委派模型 4.垃圾回收(GC&#xff0…

1098: 堆的判断

解法&#xff1a; 堆是完全二叉树 用数组来存储 然后用定义判定 #include<iostream> #include<vector> using namespace std; int main() {int n;cin >> n;vector<int> vec(n);for (int i 0; i < n; i) cin >> vec[i];for (int i 0; i &…