SwinIR: Image Restoration Using Swin Transformer

news2024/11/20 0:40:16
  • ICCV2021 workshop
  • https://github.com/JingyunLiang/SwinIR
  1. 问题引入
  • 将swim transformer使用到图像恢复任务当中,因为卷积存在不能建模长距离依赖以及使用相同的卷积核来恢复不同的图像区域;
  • 并不是首个将transformer引入图像恢复中的方法,但是之前的方法将图片分为固定大小的patch,在patch的边缘会产生伪影
  1. 方法
  • 模型分为三个部分:shallow feature extraction, deep feature extraction和high-quality image reconstruction,其中深层特征提取器包含多个residual Swin Transformer blocks (RSTB)
  • 特征提取模块对所有的任务共享,但是重建模块为任务单独设计;
    在这里插入图片描述
  • Shallow and deep feature extraction:浅层特征提取,输入 I L Q ∈ R H × W × C i n I_{LQ}\in\mathbb{R}^{H\times W\times C_{in}} ILQRH×W×Cin,经过一个 3 × 3 3\times 3 3×3的卷积层 H S F ( ⋅ ) H_{SF}(\cdot) HSF()得到输出 F 0 ∈ R H × W × C F_0\in\mathbb{R}^{H\times W\times C} F0RH×W×C,之后进行深层特征提取 F D F ∈ R H × W × C , F D F = H D F ( F 0 ) F_{DF}\in\mathbb{R}^{H\times W\times C},F_{DF}=H_{DF}(F_0) FDFRH×W×C,FDF=HDF(F0),其中 H D F ( ⋅ ) H_{DF}(\cdot) HDF()包含 K K K个residual Swin Transformer blocks (RSTB) and a 3 × 3 convolutional layer
  • 图像重建层:以图像超分任务为例 I R H Q = H R E C ( F 0 + F D F ) I_{RHQ}=H_{REC}(F_0+F_{DF}) IRHQ=HREC(F0+FDF),使用sub-pixel convolution layer来进行上采样,假如不需要上采样的任务例如图像去噪和JPEG compression artifact reduction,就使用一层卷积实现重建层,模型学习的目标是LR和HR的residual,所以 I R H Q = H S w i n I R ( I L Q ) + I L Q I_{RHQ}=H_{SwinIR}(I_{LQ})+I_{LQ} IRHQ=HSwinIR(ILQ)+ILQ
  • 超分任务损失函数使用的是L1 pixel loss, L = ∣ ∣ I R H Q − I H Q ∣ ∣ 1 L = ||I_{RHQ}-I_{HQ}||_1 L=∣∣IRHQIHQ1,其他任务使用的是Charbonnier loss;
  • Residual Swin Transformer Block:由L个STL和一个卷积层组成;
  • Swin Transformer layer:对于输入 H × W × C H\times W\times C H×W×C,首先将输入reshape成 H W M 2 × M 2 × C \frac{HW}{M^2}\times M^2\times C M2HW×M2×C,总共有 H W M 2 \frac{HW}{M^2} M2HW个相互之间不重叠的window,之后再每个window上进行local attention,也就是标准的attention;对于当个window X ∈ R M 2 × C X\in\mathbb{R}^{M^2\times C} XRM2×C Q = X P Q , K = X P K , V = X P V Q=XP_Q,K=XP_K,V=XP_V Q=XPQ,K=XPK,V=XPV,其中 P Q , P K , P V P_Q,P_K,P_V PQ,PK,PV是不同window之间共享的参数, Q , K , V ∈ R M 2 × d Q,K,V\in\mathbb{R}^{M^2\times d} Q,K,VRM2×d,之后 A t t e n t i o n ( Q , K , V ) = S o f t M a x ( Q K T / d + B ) V Attention(Q,K,V)=SoftMax(QK^T/\sqrt{d}+B)V Attention(Q,K,V)=SoftMax(QKT/d +B)V,其中 B B B是可学习的相对位置编码,此处是多头注意力机制,接下来是MLP层(包含两层全连接和GELU),整体 X = M S A ( L N ( X ) ) + X , X = M L P ( L N ( X ) ) + X X = MSA(LN(X))+X,X=MLP(LN(X))+X X=MSA(LN(X))+X,X=MLP(LN(X))+X,为了保证cross-window connections,铍铜的window partition和shifted window partition是交替使用的;

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

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

相关文章

python 常见错误 ModuleNotFoundError: No module named ‘requests‘

我们经常会遇到类似错误 ModuleNotFoundError: No module named ‘requests‘ ModuleNotFoundError: No module named bs4 现在记录一下解决方案。 File--》Settings--》Project--》Python interpreter》点击+ 》输入requests--》选中requests--》点击右下角inst…

Linux虚拟主机如何设置错误页面

设置一个定制的404页面对网站有多种好处。首先,它能够提升用户体验,当用户访问错误的网址或不存在的页面时,定制的404页面能够友好地提醒用户并给予导航或提示。其次,404页面可以帮助留住访问者,让他们在意外情况下不至…

【系统架构师】-案例篇(六)MVC模式与XML

某商业银行欲开发一套个人银行系统,为用户提供常见的金融服务,包括转账、查询、存款变更和个人信息管理等功能。该软件除了业务需求外,还有一些特殊的表现层需求: A.根据用户级别的不同,界面和可用功能是不…

使用 Valgrind 检测内存泄漏

Valgrind 是一个编程工具,用于内存调试、内存泄漏检测以及性能分析。Valgrind 工具集中的 Memcheck 是用于检测内存管理和线程错误的主要工具。 参考:https://blog.csdn.net/weixin_44046545/article/details/138417524 1、安装 Valgrind sudo apt-ge…

手机在网状态多方面重要性

手机在网状态的重要性体现在多个方面,它是现代社会中人们保持联系、获取信息以及进行日常活动不可或缺的一部分。以下是一些关于手机在网状态重要性的详细解释: 通信联系: 手机是在现代社会中进行通信联系的主要工具。当手机处于在网状态时&…

【北京迅为】《iTOP-3588从零搭建ubuntu环境手册》-第8章 安装编译所需要的依赖包

RK3588是一款低功耗、高性能的处理器,适用于基于arm的PC和Edge计算设备、个人移动互联网设备等数字多媒体应用,RK3588支持8K视频编解码,内置GPU可以完全兼容OpenGLES 1.1、2.0和3.2。RK3588引入了新一代完全基于硬件的最大4800万像素ISP&…

(41)5.6-5.8数据结构(栈和队列的应用和数组)

1.栈在括号匹配中的应用 #define _CRT_SECURE_NO_WARNINGS #define MaxSize 10 typedef struct { char data[MaxSize];//静态数组存放栈中元素 int top; //栈顶指针 }SqStack;//初始化栈 void InitStack(SqStack& S);//判断栈是否为空 bool StackEmpty(SqStack S…

(已解决)org.springframework.amqp.rabbit.support.ListenerExecutionFailedException

报错截图 解决方案 1、登录rabbitMQ网址,删除所有队列 2、重启rabbitMQ 亲测有效!!!亲测有效!!!亲测有效!!!

【工具】Office/WPS 插件|AI 赋能自动化生成 PPT 插件测评 —— 必优科技 ChatPPT

本文参加百度的有奖征文活动,更主要的也是借此机会去体验一下 AI 生成 PPT 的产品的现状,因此本文是设身处地从用户的角度去体验、使用这个产品,并反馈最真实的建议和意见,除了明确该产品的优点之外,也发现了不少缺陷和…

无需公网IP、无需云服务器,异地组网实现远程直连NAS、游戏联机

手机图片、视频太多,存储空间不够用怎么办?出门在外无法直连家中NAS,远程访问NAS速度慢?自建私有云、多媒体服务器,如何多人远程共享媒体资源?幻兽帕鲁、我的世界、泰拉瑞亚…局域网游戏,想远程多人联机&a…

PAD如何实现在用RJ45上网的同时还能保证PAD的续航?|边充电边上网

在数字化时代,手机已经成为我们生活、工作的得力助手。当提及手机边上网边充电时,或许您会想:“这不是常态吗?”但今天,我们要探讨的是一个更为特殊而重要的场景——有线网络直连手机。对于那些需要稳定网络连接、不能…

面试官:SPA(单页应用)首屏加载速度慢怎么解决

一、什么是首屏加载 首屏时间(First Contentful Paint),指的是浏览器从响应用户输入网址地址,到首屏内容渲染完成的时间,此时整个网页不一定要全部渲染完成,但需要展示当前视窗需要的内容 首屏加载可以说是…

如何获得一个Oracle 23ai数据库(RPM安装)

准确的说,是Oracle 23ai Free Developer版,因为企业版目前只在云上(OCI和Azure)和ECC上提供。 方法包括3种,本文介绍第2种: Virtual ApplianceRPM安装Docker RPM安装支持Linux 8和Linux 9。由于官方的Vi…

安装配置pushgateway

环境 主机名 服务器IP 系统 说明 Ubuntu -1 192.168.1.144 Ubuntu.20.04 docker安装Prometheus docker 192.168.1.140 cent…

GPIO输出速度(ARM-GD32)

单片机输出速度对GPIO硬件的影响 如果T为100ns 那么2/3*100ns 67ns 那么tr tf 38 ns (也就是不能超过32ns) tr 和tf和什么东西有关如何去控制 CL 是一个电容,电容会改变和影响电压变化的速率,输出高低电平也就是对电容进行充电…

QT的C++版本是如何从ui文件编译成C++可以使用的.h文件的

Desktop_Qt_6_7_0_MinGW_64_bit是一个编译器,可以将ui文件编译为.h文件。我们可以在项目文件下看到这一样一个文件: 这里的ui_mainwindow.h文件我们可以打开看一下:你会发现你所有的ui设计都被记录在了这里。 /***************************…

让SOLIDWORKS用户无忧的基于云的PLM

在市场需求和法规不断变化的时代,紧跟变化步伐对于更快速、更有效地交付创新的高质量产品至关重要。 现代产品开发流程会生成数量惊人的数据,从零件和装配体文件到仿真和CAD/CAM文件。此外,要实现有效的项目交流,需要无数的文件&…

羊大师:羊奶纯鲜儿童健康每一天

羊大师:羊奶纯鲜儿童健康每一天 羊奶因其纯鲜和营养丰富的特性,羊大师发现羊奶对于儿童的健康成长具有诸多益处,确实可以帮助儿童度过健康快乐的每一天。 营养丰富:羊奶中含有丰富的蛋白质、矿物质、维生素和微量元素等&#xf…

《ElementUI 基础知识》el-tree 之“我的电脑”目录结构效果

前言 项目需求,Web 端获取服务器文件夹目录结构。目录数据是调接口获取,本篇略过,直接展现数据! 效果 实现 html 代码 8 - 15 行,自定义节点信息;代码 9 - 14 行,判断 icon 显示&#xff1b…

物联网概述定义体系架构、与云计算关系

物联网概述 物联网综述 所谓物联网是指把所有物品通过射频识别等信息传感设备与互联网连接起来,从而实现智能化识别和管理,是继计算机、互联网和移动通信之后的又一次信息产业的革命性发展。 以信息感知为特征的物联网被称为世界信息产业的第三次浪潮…