SwinIR: Image Restoration Using Swin Transformer

SwinIR

简介

论文地址:SwinIR: Image Restoration Using Swin Transformer

代码:SwinIR

​ 本文提出了一个基于swin transformer的图像超分模型swinIR。其中SwinIR分为三部分:浅层特征提取、深层特征提取和高质量图像重建模块。

现阶段问题

vanilla transformer通过注意力捕获了全局依赖,但是它是将图片达成patch进行输入,这样在图像超分领域出现了两个问题。

  • 重建图像在每个小块附近存在边界伪影
  • 边界像素会丢失信息。

虽然通过patch重叠,能进行缓解,但是也带来额外计算负担。

主要贡献

​ 将Swin Transformer应用于low-level任务中。

网络框架

​ 采用shallow feature进行浅层特征提取后,输入到RTSB(多个swin transformer残差块)进行深层的特征提取,最后使用高质量图像重建模块(卷积和上采样操作)进行图像重建。

2023-11-22_09-50-50

浅层特征提取

​ 在浅层特征提取中是采用的几个简单卷积层进行提取,因为卷积层对视觉任务的前期处理,一般对结果以及优化产生好的影响。

​ 见这篇论文:Early Convolutions Help Transformers See Better

深层特征提取

​ RTSB是采用使用多个STL块并在最后使用一个conv层进行特征聚合(将卷积操作的归纳偏差引入基于 Transformer 的网络),同时还采用了残差结构。

HQ图像重建

​ 采用残差连接将浅层特征和深层特征进行跳跃连接(浅层特征主要包含低频,深层特征侧重于恢复丢失的高频),对于图像超分重建部分,则是采用了PixelShuffle进行实现。

损失

​ 经典和轻量级的图像 SR,我们只使用与之前工作相同的原始 L1 像素损失来展示所提出网络的有效性。对于真实世界的图像SR,我们使用像素损失、GAN损失和感知损失的组合来提高视觉质量。


参考资料

  • 图像恢复 SWinIR : 彻底理解论文和源代码 (注释详尽)_听 风、的博客-CSDN博客

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

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

相关文章

【C++11(三)】智能指针详解--RAII思想循环引用问题

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:C从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习C   🔝🔝 C11 1. 前言2. 为什么要有智能指针?3. RAII思想…

使用Python提取PDF文件中指定页面的内容

在日常工作和学习中,我们经常需要从PDF文件中提取特定页面的内容。在本篇文章中,我们将介绍如何使用Python编程语言和两个强大的库——pymupdf和wxPython,来实现这个任务。 1. 准备工作 首先,确保你已经安装了以下两个Python库&…

保姆级 | XSS Platform环境搭建

0x00 前言 XSS Platform 平台主要是用作验证跨站脚本攻击。该平台可以部署在本地或服务器环境中。我们可以使用 XSS Platfrom 平台搭建、学习或验证各种类型的 XSS 漏洞。 0x01 环境说明 HECS(云耀云服务器)xss platformUbuntu 22.04Nginx 1.24.0MySQL 5.6.51Pure-Ftpd 1.0.49…

LeetCode力扣每日一题(Java):35、搜索插入位置

一、题目 二、解题思路 1、我的思路(又称:论API的重要性) 读完题目之后,我心想这题目怎么看着这么眼熟?好像我之前学过的一个API呀! 于是我回去翻了翻我之前写的博客:小白备战蓝桥杯&#xf…

Draw.io or diagrams.net 使用方法

0 Preface/Foreword 在工作中,经常需要用到框图,流程图,时序图,等等,draw.io可以完成以上工作。 official website:draw.io 1 Usage 1.1 VS code插件 draw.io可以扩展到VS code工具中。

Python自动化:selenium常用方法总结

使用的Python版本为3.8,selenium版本为4.15.2 Python自动化:selenium常用方法总结 1. 三种等待方式2. 浏览器操作3. 8种查找元素的方法4. 高级事件 1. 三种等待方式 强制等待 使用模块time下的sleep()实现等待效果隐式等待 使用driver.implicitly_wait()方法&#…

ChibiOS简介2/5

ChibiOS简介2/5 1. 源由2. ChibiOS基础知识2/52.4 Chapter 4 - ChibiOS General Architecture2.4.1 The Big Picture(总体框图)2.4.2 Embedded Components(嵌入式组件)2.4.3 Application Model(应用模型)2.…

Vue之数据绑定

在我们Vue当中有两种数据绑定的方法 1.单向绑定 2.双向绑定 让我为大家介绍一下吧&#xff01; 1、单向绑定(v-bind) 数据只能从data流向页面 举个例子&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"…

【Kubernetes】持久化存储emptyDir/hostPath/nfs/PVC

k8s持久化存储 一、为什么做持久化存储&#xff1f;二、k8s持久化存储&#xff1a;emptyDir三、k8s持久化存储&#xff1a;hostPath四、k8s持久化存储&#xff1a;nfs4.1、搭建nfs服务4.2、挂载nfs共享目录 五、k8s持久化存储&#xff1a; PVC5.1、什么是PV5.2、什么是PVC5.3、…

使用shell脚本将一台虚拟机上面数据分发到其他虚拟机上面

目录 1&#xff0c;功能2&#xff0c;注意点3&#xff0c;shell脚本介绍4&#xff0c;bash内容 1&#xff0c;功能 使用shell脚本将一台虚拟机上面数据分发到其他虚拟机上面。 2&#xff0c;注意点 需要修改的地方&#xff1a;hadoop250 hadoop251 hadoop252 hadoop253 hado…

普冉(PUYA)单片机开发笔记(4): 配置通用定时器

概述 在前几篇开发笔记中&#xff0c;从 PY32F003 的一个厂家标准例程开始&#xff0c;实现了中断式无阻塞串口收发、对开发板 LED3 的亮/灭控制&#xff0c;时钟系统的初始化和时钟选择。在此基础上&#xff0c;今天做一下定时器的应用实验。事先考虑以下几个问题&#xff1a…

使用Git进行版本控制

参考&#xff1a;《Python编程从入门到实践》 前言1、安装、配置 Git1.1 在Linux系统中安装Git1.2 在OS X系统中安装Git1.3 在Windows系统中安装Git1.4 配置Git 2、创建项目3、忽略文件4、初始化仓库5、检查状态6、将文件加入到仓库中7、执行提交8、查看提交历史 前言 版本控制…