当前位置:网站首页>Enhanced Deep Residual Networks for Single Image Super-Resolution
Enhanced Deep Residual Networks for Single Image Super-Resolution
2022-08-09 23:37:00 【ysh9888】
Abstract
随着深度卷积神经网络(DCNN)的发展,超分辨率的研究取得了新的进展。特别是,残差学习技术表现出更好的性能。在本文中,我们开发了一种增强的深度超分辨率网络(EDSR),其性能超过了目前最先进的SR方法。我们的模型的显著性能改进是通过去除传统残差网络中不必要的模块进行优化。在稳定训练过程的同时,通过扩大模型尺寸进一步提高了性能。我们还提出了一种新的多尺度深度超分辨率系统(MDSR)和训练方法,该方法可以在单一模型中重建不同放大因子的高分辨率图像。该方法在基准数据集上表现出优于最先进的方法的性能,并通过赢得NTIRE2017超分辨率挑战[26],证明了其卓越性。
1.Introduction
图像超分辨率(SR)问题,特别是单幅图像超分辨率(SISR)问题,几十年来一直受到越来越多的研究关注。SISR的目标是从一个低分辨率图像ILR重建一个高分辨率图像ISR。一般来说,ILR与原始高分辨率图像IHR之间的关系会因情况而不同。许多研究假设ILR是IHR的双倍降采样版本,但其他退化因素,如模糊、抽取或噪声也可以考虑用于实际应用。
最近,深度神经网络[11,12,14]在SR问题中在峰值信号调比(PSNR)方面提供了显著的性能。然而,这种网络在架构最优性方面表现出了局限性。首先,神经网络模型的重建性能对微小的结构变化很敏感。同样,相同的模型通过不同的初始化和训练技术实现了不同的性能水平。因此,精心设计的模型体系结构和复杂的优化方法是训练神经网络的关键。
其次,现有的SR算法将不同尺度因子的超分辨率视为独立问题,而没有考虑和利用不同尺度之间的相互关系,这些算法需要许多特定尺度的网络,这些网络需要独立训练来处理不同尺度。例外情况下,VDSR[11]可以在单个网络中联合处理多个尺度的超分辨率。使用多尺度训练VDSR模型可以显著提高性能,并优于特定尺度训练,这意味着特定尺度模型之间存在冗余。尽管如此,VDSR风格的架构需要双边插值图像作为输入,与使用特定尺度的上采样方法[5,22,14]的架构相比,这导致了更重的计算时间和内存。
虽然SRResNet[14]以良好的性能成功地解决了这些时间和内存问题,但它只是使用了He等人[9]的ResNet架构,没有做太多修改。然而,原始的ResNet被提出来解决更高级别的计算机视觉问题,如图像分类和检测。因此,将ResNet架构直接应用于超分辨率等低级视觉问题可能是次优的。
为了解决这些问题,我们首先基于SRResNet体系结构,通过分析和删除不必要的模块进行优化,以简化网络体系结构。当模型很复杂时,训练一个网络就变得不重要了。因此,我们用适当的损失函数和训练后仔细的模型修改来训练网络。实验结果表明,改进后的方案具有更好的效果。
其次,我们研究了模型训练方法,它从其他尺度训练的模型中转移知识。为了在训练过程中利用与尺度无关的信息,我们从预先训练过的低尺度模型中训练高尺度模型。此外,我们提出了一种新的多尺度架构,它在不同的尺度上共享大多数参数。与多个单尺度模型相比,所提出的多尺度模型使用的参数明显更少,但显示出相当的性能。
我们在标准基准数据集和一个新提供的DIV2K数据集上评估我们的模型。所提出的单尺度和多尺度超分辨率网络在PSNR和SSIM方面的所有数据集上都显示出了最先进的性能。我们的方法在NTIRE 2017超分辨率挑战[26]中分别排名第一和第二。
2. Related Works
为了解决超分辨率问题,早期的方法使用了基于采样理论[1,15,34]的插值技术。然而,这些方法在预测详细的、真实的纹理方面存在局限性。以往的研究[25,23]采用自然图像统计方法来解决这个问题,以重建更好的高分辨率图像。
高级工作的目标是学习ILR和IHR图像对之间的映射函数。这些学习方法依赖于从邻居嵌入[3,2,7,21]到稀疏编码[31,32,27,33]等技术。Yang等人[30]引入了另一种方法,即聚集补丁空间并学习相应的函数。一些方法利用图像的自相似性来避免使用外部数据库[8,6,29],并通过补丁[10]的几何变换来增加有限的内部字典的大小。
近年来,深度神经网络的强大能力导致了SR的显著改进。自从Dong等人[4,5]首次提出一种基于深度学习的SR方法以来,人们对各种CNN架构进行了研究。Kim等人[11,12]首次引入了残差网络来训练更深层次的网络架构,并取得了优越的性能。特别地,他们表明,跳过连接和递归卷积减轻了在超分辨率网络中携带身份信息的负担。与[20]类似,Mao等人的[16]通过编码-解码器网络和对称跳跃连接解决了一般的图像恢复问题。在[16]中,他们认为这些嵌套的跳过连接提供了快速和改进的收敛性。
在许多基于深度学习的超分辨率算法中,输入图像在输入到网络[4,11,12]之前通过双边插值进行上采样。与其使用插值图像作为输入,还可以在网络的最后端训练上采样模块,如[5,22,14]所示。通过这样做,可以在不损失模型容量的情况下减少大量计算,因为特征的大小减小。然而,这些方法有一个缺点:它们不能像VDSR[11]那样在单一框架中处理多尺度问题。在本工作中,我们解决了多尺度训练和计算效率的困境。我们不仅利用了每个尺度的学习特征之间的相互关系,而且还提出了一种新的多尺度模型,可以有效地重建不同尺度的高分辨率图像。此外,我们开发了一种适当的训练方法,对单尺度和多尺度模型都使用多个尺度。
一些研究也集中在损失函数上,以更好地训练网络模型。均方误差(MSE)或L2损失是一般图像恢复中使用最广泛的损失函数,也是解决这些问题的主要性能度量(PSNR)。然而,Zhao等人[35]报道,在PSNR和SSIM方面,与其他损失功能相比,L2损失训练并不能保证更好的表现。在他们的实验中,L1训练的网络与L2训练的网络相比取得了更好的性能。
3. Proposed Methods
在本节中,我们将描述所提出的模型体系结构。我们首先分析了最近发表的超分辨率网络,并提出了一个结构更简单的残余网络体系结构的增强版本。我们表明,我们的网络优于原始的,同时表现出提高的计算效率。在下面的章节中,我们建议使用一个处理特定超分辨率尺度的单尺度架构(EDSR),以及一个在单个模型中重建不同尺度高分辨率图像的多尺度架构(MDSR)。
3.1. Residual blocks
近年来,残差网络[11,9,14]在从低级到高级任务的计算机视觉问题中表现出优异的性能。虽然Ledig等人[14]成功地将ResNet架构应用于SRResNet的超分辨率问题,但我们通过采用更好的ResNet结构进一步提高了性能。
在图2中,我们比较了来自原始ResNet[9]、SRResNet[14]和我们提出的网络的每个网络模型的构建块。如Nah等人[19]在他们的图像去模糊工作中所述,我们从我们的网络中删除了批处理归一化层。由于批处理归一化层对特征进行了归一化,它们通过对特征进行归一化,消除了网络的范围灵活性,最好是去除它们。我们的实验表明,这个简单的修改大大提高了性能,详细说明在Sec4.
此外,GPU内存的使用也被充分地减少了,因为批处理标准化层消耗了与前面的卷积层相同数量的内存。与SRResNet相比,我们的没有批处理归一化层的基线模型在训练期间节省了大约40%的内存使用。因此,在有限的计算资源下,我们可以建立一个更大的模型,比传统的ResNet结构具有更好的性能。
3.2. Single-scale model
提高网络模型性能的最简单的方法是增加参数的数量。在卷积神经网络中,模型的性能可以通过层层堆叠或增加滤波器的数量来提高。具有深度(层数)B和宽度(特征通道数)F的一般CNN架构大约占用O(BF)内存含O(BF2)参数。因此,在考虑有限的计算资源时,增加F而不是B可以使模型容量最大化。
然而,我们发现增加特征图的数量超过一定的水平会使训练过程在数值上不稳定。Szegedy等人的[24]也报道了类似的现象。我们通过采用因子为0.1的残差尺度[24]来解决这个问题。在每个残差块中,固定的缩放层被放置在最后一个卷积层之后。当使用大量的过滤器时,这些模块大大稳定了训练过程。在测试阶段,该层可以集成到之前的卷积层中,以提高计算效率。
我们用图2中提出的残差块构建了我们的基线(单尺度)模型。该结构类似于SRResNet[14],但我们的模型在残余块之外没有ReLU激活层。此外,我们的基线模型没有残差缩放层,因为我们为每个卷积层只使用64个特征映射。在我们最终的单尺度模型(EDSR)中,我们通过设置B=32,F=256来扩展基线模型。模型体系结构如图3所示。
当训练上采样因子×3和×4的模型时,我们用预先训练的×2网络初始化模型参数。这种训练前的策略加速了训练,提高了最终的表现,如图4所示。对于升级×4,如果我们使用预先训练的×2模型(蓝线),训练的收敛速度比从随机初始化开始的收敛速度(绿线)快得多。
3.3. Multi-scale model
从图4的观察,我们得出多个尺度的超分辨率是相互关联的任务。我们可以像VDSR[11]一样,通过构建一个利用尺度间相关性的多尺度体系结构,进一步探索了这一想法。我们设计了我们的基线(多尺度)模型,使其有一个单一的主分支,具有B=16剩余块,这样大多数参数就可以在不同的尺度上共享,如图5所示。
在我们的多尺度体系结构中,我们引入了特定尺度的处理模块来处理多个尺度的超分辨率。首先,预处理模块位于网络的头部,以减少来自不同尺度的输入图像的方差。每个预处理模块由两个具有5×5内核的剩余块组成。通过对预处理模块采用较大的内核,我们可以保持特定规模的部分较浅,而在网络的早期阶段则覆盖了较大的接受域。在多尺度模型的最后,并行定位特定尺度的上采样模块来处理多尺度重构。上采样模块的体系结构类似于上一节中描述的单尺度模型。
我们用B=80和F=64构建了我们最终的多尺度模型(MDSR)。虽然我们的3个不同尺度的单尺度基线模型每个都有大约15万参数,总计45万,但我们的基线多尺度模型只有320万个参数。然而,多尺度模型表现出与单尺度模型相当的性能。此外,我们的多尺度模型在深度方面是可扩展的。虽然我们最终的MDSR比基线多尺度模型有大约5倍以上的深度,但只需要2.5倍以上的参数,因为残差块比特定尺度的部分更轻。请注意,MDSR还显示了与特定规模的edsr相当的性能。我们所提出的模型的详细性能比较如表2和表3所示。
4. Experiments
4.1. Datasets
DIV2K数据集[26]是一个新提出的高质量(2K分辨率)图像数据集,用于图像恢复任务。DIV2K数据集由800张训练图像、100张验证图像和100张测试图像组成。由于测试数据集的地面真实值没有发布,我们报告并比较了在验证数据集上的性能。我们还比较了在四个标准基准数据集上的性能:Set5[2]、Set14[33]、B100[17]和Urban100[10]。
4.2. Training Details
在训练中,我们使用LR图像中大小为48×48的RGB输入补丁和相应的HR补丁。我们用随机的水平翻转和90度旋转来增加训练数据。我们通过减去DIV2K数据集的平均RGB值来对所有图像进行预处理。我们训练我们的模型用ADAM优化器
对于单尺度模型(EDSR),我们按照Sec3.2.中所述的方法训练网络。×2模型是从零开始进行训练的。在模型收敛后,我们将其作为其他尺度的预训练网络。
在每次训练多尺度模型(MDSR)更新时,我们在×2、×3和×4中随机选择一个尺度构建小批量。只有与所选比例对应的模块才会被启用和更新。因此,与选定的剩余块对应的特定剩余块和上采样模块不会启用或更新。
我们用L1损失而不是L2来训练我们的网络。最小化L2通常是首选的,因为它能使PSNR最大化。然而,通过一系列的实验,我们发现L1损失比L2具有更好的收敛性。对这种比较的评价在Sec4.4提供。
我们使用Torch7框架实现了所提出的网络,并使用NVIDIA TitanXgpu对它们进行了训练。训练EDSR和MDSR分别需要8天和4天。该源代码可以在网上公开获https://github.com/LimBee/NTIRE2017
4.3. Geometric Self-ensemble 几何自集成
为了最大化我们的模型的潜在性能,我们采用了类似于[28]的自集成策略。【[28] R. Timofte, R. Rothe, and L. Van Gool. Seven ways to improve example-based single image super resolution. In CVPR 2016. 5 】
略
6. Conclusion
在本文中,我们提出了一种增强的超分辨率算法。通过从传统的ResNet体系结构中删除不必要的模块,我们在使模型紧凑的同时实现了改进的结果。我们还采用了残差尺度技术来稳定地训练大型模型。我们提出的单尺度模型超过了现有的模型,达到了最先进的性能。
此外,我们开发了一个多尺度的超分辨率网络,以减少模型的规模和训练时间。该多尺度模型具有基于尺度依赖的模块和共享的主网络,可以在一个统一的框架内有效地处理各种尺度的超分辨率。虽然与一组单尺度模型相比,多尺度模型仍然保持紧凑,但它表现出与单尺度SR模型相当的性能。
我们提出的单尺度和多尺度模型在标准基准数据集和DIV2K数据集上都排名第一。
边栏推荐
猜你喜欢
7. type( )函数——查询数据类型
博弈小游戏
基于 LSTM 的分布式能源发电预测(Matlab代码实现)
Creo5.0入门教程赠素材
【SSL集训DAY2】Sort【树状数组】
mysql无法远程连接 Can‘t connect to MySQL server on ‘xxx.xxx.xxx.xxx‘ (10060 “Unknown error“)
数字孪生智慧制造生产线项目实施方案,平台认知与概念
如何抑制告警风暴?
The technical aspects of the byte have been passed, and the salary has been negotiated for 20K*13, but the result is still being brushed. I asked the HR why...
网络协议05 -网络层
随机推荐
LSTM-based distributed energy generation prediction (Matlab code implementation)
Why don't suggest you run in Docker Mysql?
阿里云短信服务开通
安全知识培训——消防安全
Impala 疑问
Golden Warehouse Database KingbaseGIS User Manual (6.5. Geometry Object Editing Function)
解锁时间生成与比较
Fury:一个基于JIT动态编译的高性能多语言原生序列化框架
博弈小游戏
上交所实时行情文件汇总
Creo5.0入门教程赠素材
Pinduoduo store operation must know to leave a little knowledge of operation
deepstream学习笔记(三):deepstream-imagedata-multistream解析与接入适配yolov5模型测试
深度剖析 Apache EventMesh 云原生分布式事件驱动架构
断开和服务器共享连接的方法「建议收藏」
构建平衡二叉树「建议收藏」
AUTOCAD——形位公差如何标注、CAD打断于点的操作
CST Studio Suite 2021 software installation package and installation tutorial
【集训DAY5】堆箱子【数学】
分形网络(FractalNet)----学习笔记