超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建

超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建
超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建

这篇文章是第一次将之前已有的递归神经网络(Recursive Neural Network)结构应用在图像超分辨率上。为了增加网络的感受野,提高网络性能,引入了深度递归神经网络,但出现了梯度爆炸/消失问题,又研究出了递归监督跳跃连接两个扩展办法。
论文指引:https://arxiv.org/abs/1511.04491

Abstract

作者提出了一种使用深度递归卷积网络(DRCN)的图像超分辨率重建方法(SR)。网络有一个非常深的递归层(多达16个递归)。增加递归深度可以提高性能,而不会因为额外的卷积而引入新参数。在参数优势外,由于网络非常深,会引起梯度的爆炸/消失,使用标准的梯度下降方法学习DRCN非常困难。为了减轻训练的难度,作者提出了两个扩展方法:递归监督和跳跃连接。实验证明该网络能达到很好的效果。

1 Introduction

在图像超分辨率(SR)中,卷积网络的感受野非常重要。感受野越大,可以用来恢复缺失的高频分量的有用上下文信息就越多。现有的各种计算机视觉任务的深层卷积网络通常使用非常大的感受野(224×224,在ImageNet分类中常见)。

那么一般有两种方法来增加感受野:增加卷积核的大小和增加网络的深度。
作者提到使用增加网络深度的方法有两种:使用尺寸大于1×1的卷积核conv层或pool层。
但这两种增加网络深度的方法都有各自的缺陷:conv层会引入更多参数;pool层通常会丢弃一些重要的像素级的信息导致重建图像丢失细节。对于超分辨率和去噪等图像恢复问题,图像细节非常重要,因此图像重建类的工作都不使用pool。因此只能考虑通过增加卷积层来增加网络深度,但过大的网络又会导致两个问题:需要用大量的数据来避免过拟合、网络模型的存储和加载困难。

由此作者提出了深度递归卷积网络,用相同的循环层来替代不同的卷积层。当执行更多递归时,参数的数量不会增加。又加深了网络的深度。单纯的使用深度递归卷积网络,作者发现了一些问题:用广泛使用的随机梯度下降法优化的DRCN不容易收敛。是因为梯度爆炸/消失和单个权重层难以学习像素之间的长期依赖关系。

由此,作者提出了两种缓解训练难度的方法:循环监督和跳过连接。

1. 循环监督:把每次递归后的特征映射都用于重建目标高分辨率图像HR。由于每次递归都会导致不同的HR预测,因此作者将不同级别的递归产生的所有预测结合起来,以提供更准确的最终预测。
2. 跳跃连接:在SR中,低分辨率图像(输入)和高分辨率图像(输出)在很大程度上共享相同的信息。输入的精确信息在许多向前传递过程中可能会衰减。于是作者将输入和各层的输出连接到重建层,用于图像的恢复。

2 Method

作者先介绍了基本的含递归卷积网络的模型,但这个方法难以训练,作者又提出了改进后的高级模型(加入了递归监督和skip connection)。

2.1 Basic Method

超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建
基底模型由三个子网络组成:嵌入网络embedding netword推理网络 inference network 重建网络reconstruction network。嵌入网络用于将给定图像表示为特征映射,推理网络加深网络深度,将嵌入网络的输出特征映射到更高维度。一旦推理完成,推理网络中的最终特征映射将被送入重建网络以生成输出图像。 上图中的input图像是原始LR图像经过插值上采样后的图像。

该网络的目标是学习一个模型超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建,使得预测值超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建是估计的ground truth输出。用超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建分别表示嵌入层、推理层和重建层的子网络功能。整体模型用超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建表示。

嵌入层:
含有一层隐藏层,将输入图像(灰度或RGB)表示为一组特征映射。
嵌入层网络函数超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建取输入向量超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建,计算矩阵输出超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建,即推理网络超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建的输入。隐藏层值用超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建表示。
嵌入层网络的公式如下:
超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建
推理层:
推理网络是解决超分辨率问题的主要组成部分。分析一个大的图像区域是由一个递归层完成的。每个递归层应用相同的卷积,使用激活函数ReLU。 卷积核尺寸大于1×1,每循环一次网络的感受野都变宽了。
推理层超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建获取输入矩阵超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建并计算矩阵输出超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建。推理层中对每个循环网络操作使用相同的权重和偏差矩阵W和b。设g表示由推理层的单个递归建模的函数:超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建
递归层公式为:
超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建
重建层:
虽然递归层最终应用的特征图代表重建的高分辨率图像,但将其(多通道)转换回原始图像空间(1或3通道)是必要的。
对于嵌入层,作者使用3×3卷积核,因为对于超分辨率,图像特征信息比原始信息更丰富。对于推理层,3×3卷积意味着隐藏状态只传递给相邻像素。重建网络也要考虑相邻信息。
重建网络超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建获取输入的隐藏状态超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建,并输出目标图像SR(高分辨率)。简单来说,重构网络相当于嵌入网络的逆运算。
重建层公式:
超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建

Basic Model 虽然简单且功能强大,但作者发现训练深度递归网络非常困难(最多训练三个循环层)。
有几个原因:

  1. 梯度消失和爆炸
    .梯度爆炸是由链梯度的乘法性质引起的。对于深度递归,它可以成倍增长。梯度消失问题与梯度爆炸完全相反。梯度以指数速度快到零向量。因此,梯度爆炸和消失的存在使得深度循环网络很难掌握远距离像素信息之间的关系。
  2. 经过多次递归
    想要保留原始LR信息并不容易
    。在SR任务中,输出与输入非常相似,所以LR图像的信息非常重要,需要为后续更深的递归层保留输入图像的精确信息。
  3. 有一个
    找到最佳递归次数
    问题。如果给定任务的递归太深,则需要减少递归次数。找到最佳数量需要训练许多具有不同递归深度的网络。

2.2 Advanced Model

超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建

对于Basic Model作者并没能训练出成功的深度递归网络,为了解决梯度和最优递归问题,作者又提出了一种改进的模型。

  1. Recursive-Supervision:监督每层递归,以减轻梯度消失/爆炸的影响。假设在推理层中卷积过程反复使用相同的卷积核,使用相同的重建层来预测每一次递归重建的SR图像。重建层输出D个预测图像,所有预测都在训练期间同时受到监督,这一步在公式中的体现为增加了一部分loss,后面公式中具体再介绍。
    a、将所有D个预测图像通过加权求和来计算最终输出(权重由网络学习得到)。通过递归轻了训练递归网络的困难,通过反向传
    传播通过对不同预测损失产生的反向传播梯度求和来提供平滑效果,可以有效缓解梯度爆炸或消失。
    b、此外,由于监督能够利用所有中间层的预测信息,因此选择最佳递归次数的重要性降低了。
  2. Skip-Connection:对于图像重建任务,输入和输出图像高度相关,所以可以直接通过跳层连接将LR信息直接传输到SR重建层。该做法有两个优点:节约了远距离传输的复杂算力、极大程度的保留了完整的低频信息。

高级模型的公式:(在基础模型的基础上修改)

递归监督中每个中间预测的输出:
超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建
超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建

重建层网络现在多接收了一个来自skip-connection的超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建信息。
这种重构网络可以采取多种功能形式。例如作者使用超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建,因为网络的输入是插值图像,超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建。这也是一种简化计算的方法。
最终输出是所有中间预测的加权平均值:
超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建
超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建表示递归过程中每个中间隐藏状态重建的预测权重。这些权重是在网络训练期间学习的。

2.3 LOSS

本小节描述了训练网络的目标函数。
给定训练数据集超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建,网络的最终目标是找到能够准确预测超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建值的最佳模型超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建。均方误差超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建在训练集上求平均值最小化。这是一种在SR任务中广泛使用的评估标准,有利于得到高峰值信噪比(PSNR)。使用递归监督,会有D+1次目标函数最小化:监督递归的D个输出超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建和最终输出超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建表示参数集。
对于中间输出,损失函数:
超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建
对于最终输出,损失函数:
超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建
综上,得到了最终的损失函数超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建。训练通过权重衰减 (超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建) 进行归一化。
超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建
式中,超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建代表中间输出对重建图像的重要性比,超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建代表权重衰减系数。较大的 超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建 设置可以使训练过程稳定,因为早期递归趋于收敛。随着训练的进行,使用后期 超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建 衰减来提高最终输出的性能。通过使用基于反向传播的小批量梯度下降优化回归目标来执行训练。

3 Experiments

数据集:
Train:使用91-image数据集。Test:使用了四个数据集:Set5、Set14、B100、Urban100。

训练设置:
文章中默认使用16个递归网络。整个网络展开,从输入到输出的最长路径有20个conv.层(41×41的感受野)。
SGD中的动量参数:0.9
权重衰减系数β:0.0001
所有卷积核大小:超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建
patch size:41X41
stride:21
batch size:64
学习率:0.01,若5个epoch后loss没有下降,则学习率缩小10倍。若学习率低于超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建,训练终止。
最终网络在Titan X GPU训练了6天。

实验结果和对比结果见论文。
可以得出结论:随着循环层加深,PSNR的越来越高,实验中最大层数是16。继续加深网络,PSNR是否会继续提高并未可知。但是综合考虑性能平衡,作者选择了16层递归网络。
超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建

本文的提出的网络模型优于其他所有现有方法,该方法重建的图像SR可以产生相对尖锐的边缘,而其他方法重建的图像中边缘会模糊。

4 Conclusion

本文提出了一种使用深度循环卷积网络的图像超分辨率重建方法。该网络在利用大图像上下文的同时有效地重用了权重参数,减少了额外参数的引入,提高了网络效率,成功超越了其他现有方法。

文章首先使用了一般的递归网络,但是发现存在梯度爆炸/消失问题,难以训练出一个成功的深度递归网络。为了降低模型训练的难度,使用了递归监督跳跃连接两种方法,构造出了高级递归神经网络。

最后祝大家科研顺利,身体健康,万事如意~

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2022年4月10日 下午4:52
下一篇 2022年4月10日 下午5:09

相关推荐