【超分辨率】(EDSR)Enhanced Deep Residual Networks for Single Image Super-Resolution论文阅读笔记

2023-10-26

论文名称:Enhanced Deep Residual Networks for Single Image Super-Resolution
论文下载地址:https://arxiv.org/pdf/1707.02921.pdf
论文代码地址:https://github.com/sanghyun-son/EDSR-PyTorch
论文参考翻译:https://blog.csdn.net/qq_43620967/article/details/126210566


论文标题在这里插入图片描述


1.论文概述

  1. 在本论文中,作者提出了一种增强的深度超分辨率网络(EDSR),其性能超过了目前最先进的SR方法。
  2. EDSR模型的显著性能改进是通过去除传统残差网络中不必要的模块来优化。并且在稳定训练过程中的同时,通过扩大模型尺寸(即分为baseline和扩大后的模型,在深度和宽度上进行扩展)进一步提高性能。
  3. 作者还提出了一种新的多尺度超分辨率模型(MDSR)和训练方法,该方法在单一模型中重建不同放大因子的高分辨率图像。

2.论文提出的背景

作者首先提出了一些之前研究中的不足之处,总结如下:

  1. 单图像超分辨率问题的目标是从一个低分辨率图像 I L R I_{LR} ILR重建一个高分辨率图像 I H R I_{HR} IHR。许多研究假设 I L R I_{LR} ILR I H R I_{HR} IHR的双倍降采样版本。但是这种假设没有考虑退化因素,例如模糊、噪声等。(对于该问题,论文中其实也没有说出解决办法,只是在NTIRE2017 SR Challenge这一节中说明他们提出的模型对于不同的下采样条件非常的鲁棒)
  2. 深度神经网络的重建性能对微小的结构变化敏感。同样,相同的模型通过不同的初始化方法和训练技术也会导致不同的性能水平。因此,精心设计的模型体系结构和复杂的优化方法是训练神经网络的关键。
  3. 现有的SR算法将不同尺度因子的超分辨率视为独立的问题,而没有考虑和利用不同尺度之间的相互关系。需要特定尺度的网络和训练方法来处理不同尺度问题。(VDSR可以在单个模型中联合处理多个尺度的超分辨率。VDSR的作者在实验中证明了使用多尺度数据训练VDSR可以显著提高性能,并优于特定尺度模型的性能,这意味着特定尺度模型之间存在冗余,也可以认为多个尺度的超分辨率问题是相互关联的任务)
  4. VDSR模型引入了残差网络,SRResNet也引用了ResNet架构以良好的性能成功地解决了时间和内存问题,但SRResNet未对ResNet架构做任何修改而直接应用到SR问题。然而,原始ResNet架构被提出是为了解决更高级别的计算机视觉问题,将ResNet架构直接应用到低级视觉问题可能是次优的。

为了解决上面的这些问题,作者首先基于SSResNet体系结构,通过分析和删除不必要的模块进行优化,以简化网络体系结构(解决问题2和4)。其次,作者研究了模型训练方法,为了在训练过程中利用与尺度无关的信息,作者从预先训练的低尺度模型中训练高尺度模型。将一个低尺度模型迁移到其他高尺度中进行训练(解决问题2)。最后,作者提出了一种新的多尺度架构,它在不同的尺度上共享大多数参数。与多个单尺度模型相比,所提出的多尺度模型使用的参数明显更少,但显示出了相当的性能(解决问题3)。

3.论文提出的方法

在本节中将描述作者所提出的网络结构。首先,描述作者修改的残差结构,这个结构去掉了原残差结构中的BN层,因此结构更加简单。通过实验表明,作者的网络优于原始的残差结构,并提高了计算效率。其次,介绍一个处理特定尺度的单尺度架构(EDSR)和一个在单个模型中重建不同尺度高分辨率图像的多尺度架构(MDSR)。EDSR和MDSR架构的Building Block都是修改后的ResBlock结构。

3.1 残差结构

在VDSR中引入了残差网络,在SRResNet中也引入了ResNet架构。而在SRResNet中并没有对ResNet架构做任何的修改,作者认为这种直接的应用是次优的,所以修改了ResNet架构以进一步提升性能。
在这里插入图片描述
如上图所示:比较了原始ResNet、SRResNet和作者所提出网络的Building block。作者的block中删除了批处理归一化层(BN层)。作者给出了删除该层的原因:由于批处理归一化层对特征进行了归一化,通过对特征进行归一化消除了网络的范围灵活性。删除原始ResNet结构中的BN层这一创新点来自于Nah的这篇去模糊论文。这个简单的修改大大提升了性能。具体表现在:减少了GPU内存的使用,因为BN层消耗了与前面卷积层相同数量的内存。

3.2 单尺度模型

  • 提高网络模型性能的最简单方法是增加参数的数量。在卷积神经网络中,模型的性能可以通过网络层的堆叠(增加深度)和增加滤波器的数量(增加宽度)来提高。具有深度B和宽度F的一般CNN架构大约占用 O ( B F ) O(BF) O(BF)的内存和 O ( B F 2 ) O(BF^2) O(BF2)的参数。因此,在考虑有限的计算资源时,增加F而不是B可以使模型的性能最大化。即增加F可以更多的提升参数数量而不明显占用内存。

  • 作者进一步发现将F增加到一定数量后将会导致训练时数值上的不稳定。为了解决这一问题,作者采用了因子为0.1的残差缩放层。在每个ResBlock中,将残差缩放层放置在最后一个卷积层之后(见下图)。当使用大量的滤波器时,残差缩放层能大大稳定训练过程。在测试阶段,为了提升计算效率,可以将残差缩放层整合到前一个卷积层中。
    1.EDSR-baseline——B=16 ; F=64; 无残差缩放
    2.EDSR——B=32;F=256;残差缩放因子=0.1
    在这里插入图片描述

  • 训练加速(解决问题2):在训练上采样因子为x3和x4的模型时,作者用预先训练的x2网络初始化模型参数。也就是在第2节中提出的从预先训练的低尺度模型中训练高尺度模型,x2模型是从零开始训练的,在模型收敛后,将其作为其他尺度的预训练网络。 这种策略加速了训练。如下图所示,蓝线为使用了预先训练的x2模型,绿线为随机初始化开始训练的模型。可见蓝线训练时的收敛速度比绿线要快。从该图中也侧面说明了多个尺度的超分辨率是相互关联的任务。
    在这里插入图片描述

3.3 多尺度模型

  • 作者认为,既然多个尺度的超分辨率是相互关联的任务,因此也可以像VDSR一样,通过构建一个利用尺度相关性的多尺度体系结构来解决多个尺度的超分辨率问题。作者设计了多尺度基线模型,如下图所示:在这里插入图片描述
    1.MDSR-baseline——B=16;F=64;无残差缩放
    2.MDSR模型——B=80;F=64;无残差缩放

  • 在多尺度体系结构中,作者引入了特定尺度的处理模块来处理多个尺度的超分辨率。首先,预处理模块位于网络的头部,以减少来自不同尺度输入图像的方差。每个预处理模块由两个具有5*5内核的残差块组成。通过对预处理模块采用较大的内核,可以保持在特定尺度部分的浅层使用大的感受野。在多尺度模型的末端,特定尺度的上采样模块被平行放置以处理多尺度重建。上采样模块的结构和单尺度模型的结构相似。

3.4 模型比较

  • 从参数的角度上看,3个不同尺度的EDSR-baseline模型共有4.5M个参数,而MDSR-baseline模型只有3.2M个参数,参数少了很多,却可以达到相当的效果。(前面提到过提高网络模型性能的最简单方法是增加参数的数量)
  • 从模型的角度上看,MDSR和MDSR-baseline相比,MDSR的深度是MDSR-baseline的5倍,但只需要2.5倍的参数,因为ResidualBlock比特定尺度的部分要轻量。
    在这里插入图片描述

4.实验

4.1数据集和损失函数

  • 数据集:DIV2K数据集是一个新提出的高质量(2K)图像数据集,用于图像恢复任务。DIV2K数据集由800张训练图像,100张验证图像和100张测试图像组成。作者报告并比较了在100张验证数据集上的性能(因为测试数据集的ground truth未发布),此外还比较了在四个基准数据集上的性能:Set5、Set14、B100和Urban100 。
  • 损失函数:论文中采用L1损失函数来训练网络,因为L1损失比L2损失具有更好的收敛性。(L2通常能使PSNR最大化)

4.2 在DIV2K数据集上进行评估

  • 下图为模型的具体说明。在实验中作者用3x 1 0 5 10^5 105次更新对所有模型进行训练。对DIV2K验证集的10张图像进行评价,采用PSNR和SSIM标准。对于评价,使用完整的RGB通道,并忽略来自边界的(6 +比例)像素。

下表为定量结果显示。从下表中我们可以观察到如下结论:
在这里插入图片描述
注释
a.采用L1损失函数训练的SRResNet在性能方面略高于采用L2损失函数训练的SRResNet。
b.最后两列显示了使用几何自集成技术的最终较大模型EDSR+和MDSR+的显著性能增益。
c.EDSR+和MDSR+为以EDSR和MDSR为基础,采用几何自集成策略生成的模型,从上表可以观察到采用该策略可以带来性能增益。(几何自集成策略详细见原论文

  • 如下图所示,为DIV2K数据集上的定性结果:可以观察到所提出的模型成功地重建了HR图像中的细节纹理和边缘,比VDSR和SRResNet模型性能要好。
    在这里插入图片描述

4.3 基准测试结果

  1. 在下表中给出了在基准测试集上的定量结果,并将提出的模型与其他最先进的模型进行比较。
    在这里插入图片描述
    注释:上表中的红色字体代表最好的性能,蓝色字体代表次好的性能。可以观察到作者提出的模型取得了最好的结果。
  2. 如下图所示为定性结果,可以观察到所提出的模型成功地重建了HR图像中的细节纹理和边缘,与以往的工作相比,呈现出更好的SR输出。
    在这里插入图片描述
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【超分辨率】(EDSR)Enhanced Deep Residual Networks for Single Image Super-Resolution论文阅读笔记 的相关文章

随机推荐

  • pinia简介和setup语法糖

    pinia简介和setup语法糖 1 pinia的基本特点 pinia同样是一个Vue 状态管理工具 它和vuex有很多相似的地方 本质上他是vuex团队核心成员开发的 在vuex上面提出了一些改进 与vuex相比 pinia去除了vuex
  • Linux的Shell变量、环境变量、代理设置

    Linux的Shell变量 环境变量 代理设置 引言 一 shell与shell变量 环境变量 1 1 概念 1 2 作用域 1 3 SSH 连接 Linux 服务器的环境变量处理流程 1 4 环境变量文件 二 变量增删改查 2 1 查看变
  • 金融tag对照表

    tag 说明 格式 长度 值 描述 4F 应用标识符 AID b 注册应用提供商标识 RID 和专用标识符扩展 A000000333010101A000000333确定UICS注册应用提供商 所有的卡片都一样 010101表明UICS借记应
  • Axios post请求

    1 常见post请求种类 1 form表单提交 method post 是同步的 要素 页面是否刷新 2 axios post 异步操作 1 1axios post请求入门案例 1 1 1编辑前端JS h1 Axios测试案例 2 h1
  • MySQL——使用mysqldump命令备份

    使用mysqldump命令备份 mysqldump命令可以将数据库中的数据备份成一个文本文件 表的结构和表中的数据将存储在生成的文本文件中 本节将介绍mysqldump命令的工作原理和使用方法 mysqldump命令的工作原理很简单 它先查
  • java基础面试题系列(81-90)

    请你说明ConcurrentHashMap有什么优势 1 7和1 8有什么区别 参考链接 https www cnblogs com like minded p 6805301 html 请你说明一下TreeMap的底层结构 TreeMap
  • 第十篇 -- Windows 下免费的GIF录制工具

    网址 https blog csdn net u013019701 article details 80550411 本人用的第二个 亲测好用 转载于 https www cnblogs com smart zihan p 11461101
  • [CISCN2019 华北赛区 Day2 Web1]Hack World

    1 测试过滤 我想到到了 联合注入 unin被过滤 报错注入 and or updatexml被过滤 bool注入和time注入 and or被过滤 可以通过fuzz测试 模糊测试 发现哪些字符被过滤了 length为482的 全都是被过滤
  • LLVM编译流程

    LLVM概述 LLVM是构架编译器 compliter 的框架系统 以C 编写而成 用于优化以任意程序语言编写的程序的便是时间 compile time 链接时间 link time 运行时间 run time 以及空闲时间 idle ti
  • 网络编程--TCP/IP协议

    参考 https lijie blog csdn net article details 105297532 https blog csdn net qq 20785973 article details 83104695 https bl
  • 华为OD机试 - 分苹果(Python)

    题目描述 A B两个人把苹果分为两堆 A希望按照他的计算规则等分苹果 他的计算规则是按照二进制加法计算 并且不计算进位 12 5 9 1100 0101 9 B的计算规则是十进制加法 包括正常进位 B希望在满足A的情况下获取苹果重量最多 输
  • JJWT三种算法的工具类实现

    前言 最近学习jwt生成token 一直各种报错 不知道怎么生成对应的秘钥 周末研究了一下 把jjwt的HMAC RSA ECDSA三种签名算法方式都实现了 并记录下来 依赖版本如下
  • 波场链通过Tron JS SDK TronWeb发送带备注的TRC - 20 转账及使用简介

    波场链通过tronWeb发送带备注的TRC 20 转账 var contractAddress TRC 20 合约 选择合约 法 let functionSelector transfer address uint256 根据 法构造参数
  • 应对程序员面试,你必须知道的八大数据结构

    大数据文摘出品 编译 Hope 睡不着的iris 胡笳 云舟 瑞士计算机科学家Niklaus Wirth在1976年写了一本书 名为 算法 数据结构 编程 40多年后 这个等式仍被奉为真理 这就是为什么在面试过程中 需要考察软件工程师对数据
  • java在大量增强for循环中找到某个特定对象去分析的方法-推荐使用debug工具(idea为例)

    场景 代码中有一部分增强for循环 里面是很复杂的处理逻辑 并且处理的AObjectList列表数量非常大 在这串代码中想看一下某个name为 小白 的对象的处理过程 如果断点直接打在for循环体内 可能要重复百次甚至千次以上才能找到这个对
  • 毕业设计-基于深度学习的目标检测算法

    目录 前言 课题背景和意义 实现技术思路 一 两阶段深度学习算法 二 单阶段深度学习方法 实现效果图样例 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个
  • 华为OD机试 - 最大平分数组( Python)

    题目描述 给定一个数组nums 可以将元素分为若干个组 使得每组和相等 求出满足条件的所有分组中 最大的平分组个数 输入描述 第一行输入 m 接着输入m个数 表示此数组 数据范围 1 lt M lt 50 1 lt nums i lt 50
  • 使用C++的libcurl库实现HTTP的POST请求

    简介 libcurl库是由C语言编写的轻量级网络库 可以实现客户端的一些基本功能 本文使用libcurl库实现了HTTP的POST请求 代码 C 代码 使用POST方式完成对以下两个API的访问 localhost 8050 api dat
  • .NET框架介绍

    NET平台 如图所示最上层VB C C JScript等为编程语言 这些语言的基础是最底层的操作系统以及com组件和services服务程序 net语言的核心由 公共语言进行时 CLR 和基础类库 Base Class Library 两部
  • 【超分辨率】(EDSR)Enhanced Deep Residual Networks for Single Image Super-Resolution论文阅读笔记

    论文名称 Enhanced Deep Residual Networks for Single Image Super Resolution 论文下载地址 https arxiv org pdf 1707 02921 pdf 论文代码地址