[论文笔记] Enhanced Deep Residual Networks for Single Image Super-Resolution

[论文笔记] EDSR

文章目录

  • [论文笔记] EDSR
    • 一,简介
    • 二,EDSR网络
      • Residual blocks
      • SR问题中BN层不好的原因
      • 残差缩放(residual scaling)
      • 网络架构
    • 三,MDSR模型
      • 思路来源
      • 网络架构
    • 四,loss选择
    • 五,实验细节

一,简介

  1. 通过去除残差网络中不必要的组成模块,本文基于SRResNe提出了一个增强深超分辨网络(EDSR),提高了图像超分辨的效果,并赢得了NTIRE2017超分辨率重建挑战赛。
  2. 另外,作者还提出了一种多尺度模型,不同的尺度下有绝大部分参数都是共享的。该模型在处理每一个单尺度超分辨下都能有很好的效果。

二,EDSR网络

Residual blocks

  1. 思路来源

    一开始的ResNet被提出来是为了解决更高层次的计算机视觉问题,如图像分类和检测。但是,根据实验表明,直接对底层视觉问题套用ResNet架构,如超分辨率,得到的答案可能是次优的。

    所以,本文作者据此对SRResNet的残差块做出了一定的修改,并取得了性能的飞跃。

    修改如下:去除掉了SRResNet的批量标准化(batch normalization, BN)层

  2. 原因分析

    BN层的作用是对特征进行归一化,可以消除网络特征的范围灵活性。但是,对于SR问题来说,去除特征的范围灵活性会导致本来不多的特征信息再次减少,不利于产生HR

  3. 效果

    1. 大大提高了性能
    2. 与SRResNet相比,由于BN层的计算量和一个卷积层几乎持平,baseline模型没有批量标准化层,在训练期间可节省大约40%的内存使用量。 因此,可以在有限的计算资源下构建一个比传统ResNet结构具有更好性能的更大模型。

[论文笔记] Enhanced Deep Residual Networks for Single Image Super-Resolution_第1张图片

SR问题中BN层不好的原因

​ 对图像超分辨率来说,网络输出的图像在色彩、对比度、亮度上要求和输入一致,改变的仅仅是分辨率和一些细节。而Batch Norm,对图像来说类似于一种对比度的拉伸,任何图像经过Batch Norm后,其色彩的分布都会被归一化。也就是说,它破坏了图像原本的对比度信息,所以Batch Norm的加入反而影响了网络输出的质量。

(个人的理解,超分辨率CNN输入和输出可以认为有着很相似的空间分布,而BN白化中间的特征的方式完全破坏了原始空间的表征,因此在重建需要模型中部分层或者参数来恢复这种表征)

残差缩放(residual scaling)

首先,作者认为提高网络模型性能的最简单方法是增加参数的数量,增加参数的方式主要有以下俩种:

  1. 堆叠多个层
  2. 通过增加滤波器的数量

当考虑有限的资源时,增加宽度(特征Channels的数量)F而不是深度(层数)B来最大化模型容量。

但是特征图的数量增加(太多的残差块)到一定水平以上会使训练过程在数值上不稳定。

作者提出残差缩放(residual scaling)来解决这个问题。

残差缩放(residual scaling)即残差块在相加前,经过卷积处理的一路乘以一个小数(作者用了0.1)。

作者实现方式:在每个残差块中,在最后的卷积层之后放置恒定的缩放层。

当使用大量滤波器时,这些模块极大地稳定了训练过程。

网络架构

[论文笔记] Enhanced Deep Residual Networks for Single Image Super-Resolution_第2张图片

​ 在最终单尺度模型EDSR中,通过设置B=32个残差块,F=256个通道,并且在训练x3,x4模型时,采用x2的预训练参数。

三,MDSR模型

思路来源

在训练EDSR模型的时候,发现如果在训练上采样因子×3和×4的模型时,用预训练的×2网络初始化模型参数,可以加速了训练并提高了最终性能,如下图所示:

[论文笔记] Enhanced Deep Residual Networks for Single Image Super-Resolution_第3张图片

网络架构

[论文笔记] Enhanced Deep Residual Networks for Single Image Super-Resolution_第4张图片

首先,预处理模块位于网络的前面,以减少不同尺度的输入图像的差异。每个预处理模块由2个具有5×5内核的残差块组成。通过采用较大的内核进行预处理模块,可以在网络早期覆盖较大的视野域的同时,保持特定于尺度的部分较浅

  1. 每个尺度都有2个独自的残差块
  2. 其次是共享的若干个残差块
  3. 在多尺度模型的最后,进行特定尺度的上采样模块并行定位,以处理多尺度重建。

最终的MDRS模型中B=80和F=64,而且基于共享残差块的设计,在保持网络较深的情况下,没有增加太多倍的参数。

四,loss选择

训练时,损失函数用L1而不是L2,即根据LapSRN的思想采用了L1范数来计算对应的误差,L2损失会导致模糊的预测

原因如下:

更深层的原因是是实际图像可能含有多种特征,对应有关的图像构成的真实分布。

图像特征分布有许多个峰值,比如特征1是一个峰,特征2是一个峰…

对于这种图像分布,我们称之为:多模态(Multimodal)。

假如用MSE(或者L2)作为损失函数,其潜在的假设是我们采集到的样本是都来在同一个高斯分布。

但是生活中的实际图像具有多种特征,而且大部分图像分布都不只有一个峰。

如果强行用一个单峰的高斯分布,去拟合一个多模态的数据分布,例如两个峰值。

因为损失函数需要减小生成分布和数据集经验分布(双峰分布)直接的差距,而生成分布具有两种类型,模型会尽力去“满足”这两个子分布,最后得到的优化结果。(此处分析来自于大神~,我仅仅是个学习者)

[论文笔记] Enhanced Deep Residual Networks for Single Image Super-Resolution_第5张图片

简而言之,当我们在使用L2损失训练出来的分布中采样时,虽然采集到的样本属于数据集真实分布的几率很低,但是由于处于中间位置,会被大量采集出来。

故我们最终得到的生成样本实质上是多种特征的数据样本特征信息的平均效果,故产生模糊图像。

也就是生成的图像中的某些信息很可能不属于特征所要表现的任何一个

五,实验细节

  1. dataset

    实验数据用的是比赛提供的DIV2K,它有800张训练图像,100张验证图像,100张测试图像。每张都是2k分辨率。

  2. 实验结果

    [论文笔记] Enhanced Deep Residual Networks for Single Image Super-Resolution_第6张图片

  3. Geometric Self-ensemble

    一个小trick,就是在测试时,把图像90度旋转以及翻转,总共有8种不同的图像,分别进网络然后变换回原始位置,8张图像再取平均。这个方法可以使测试结果有略微提高。Note that geometric self-ensemble is valid only for symmetric downsampling methods such as bicubic downsampling.

你可能感兴趣的:(超分辨,悲惨的读论文生涯,论文笔记,超分辨,EDSR)