超分算法小合集之SRCNN、DCSCN、SRDenseNet、SRGAN

阅读指引

  • SRCNN
  • DCSCN
  • SRDenseNet
  • SRGAN

论文快速指引:
SRCNN:Learning a Deep Convolutional Network for Image Super-Resolution
DCSCN:Fast and Accurate Image Super Resolution by Deep CNN with Skip Connection and Network in Network
SRDenseNet:Image Super-Resolution Using Dense Skip Connections
SRGAN:Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network

在这里顺便推荐一个博主:Ton10对论文的理解鞭辟入里,对论文的描述非常细节。


SRCNN

SRCNN:Learning a Deep Convolutional Network for Image Super-Resolution
SRCNN是深度学习在图像超分辨率上的开篇之作!,证明了深度学习在超分领域的应用可以超越传统的插值等办法取得较高的表现力。
超分算法小合集之SRCNN、DCSCN、SRDenseNet、SRGAN_第1张图片

SRCNN网络非常简单,作者将其分为三部分,特征提取层 - 非线性映射层 - 网络重建层。
在上图网络模型之前 原始图像经过预处理(双三次插值)得到低分辨率图像作为网络的输入。
特征提取层: 采用卷积核大小为 c × f 1 × f 1 × n 1 c \times f_1 \times f_1 \times n_1 c×f1×f1×n1提取特征。
非线性映射层: n 1 × 1 × 1 × n 2 n_1\times 1 \times 1 \times n_2 n1×1×1×n2 的卷积核,将上一层的feature map进一步做非线性映射处理,同时加深网络深度。
网络重建层: n 2 × f 3 × f 3 × c n_2 \times f_3 \times f_3\times c n2×f3×f3×c的卷积核,将feature map还原成高分辨率图像SR。
Note:
!!!前两层的卷积后都用ReLU函数进行激活。但第三层不需要激活函数,这里体现的是一个平均的思想,主要利用的是乘加操作。
Loss:(MSE)
在这里插入图片描述
滤波器分析:
超分算法小合集之SRCNN、DCSCN、SRDenseNet、SRGAN_第2张图片
上图是特征提取层滤波器的学习可视化图,在91张图片的训练结果,其中up-scale-factor=2。
图像a、f:类似于高斯分布。
图像b、c、d:类似于边缘检测。
图像e:类似于纹理检测。
其余:一些坏死的卷积核参数。


DCSCN

DCSCN:Fast and Accurate Image Super Resolution by Deep CNN with Skip Connection and Network in Network
DCSCN介绍了一种轻量级全CNN网络的Super-Revolution算法。
文章特点:使用了skip connection、ResNet结构、并行结构。
超分算法小合集之SRCNN、DCSCN、SRDenseNet、SRGAN_第3张图片
DCSCN整体模型可以分为三个部分,特征提取网络 - 重建网络 - 双三次插值上采样
特征提取网络:
作者直接对原始图像进行特征提取,以往的方法先进行上采样再对像素特征提取,实际上信息是冗余的。
使用了7个3 × 3CNN网络进行特征提取输出feature map,通过skip connection连接将不同深度的图像特征,传送到重建网络。
ResNet网络作用主要是两个:防止梯度消失;保留全局信息,缩减图像通道数,减小网络复杂度。
双三次插值上采样:
在网络外对原始图像做一个双三次插值上采样,与重建网络后的结果相加输出高分辨率图像SR。
双三次插值相当于作为一个正则化项去迫使网络学习LR与HR之间的差异,减小LOSS。

这篇文章的方法最大的优势是计算复杂度低,整体网络结构简单。在这种轻量级的情况下还可以取得最优或次优的效果足以证明该方法的成功。


SRDenseNet

SRDenseNet:Image Super-Resolution Using Dense Skip Connections
文章特点,使用了DenseNet、skip connection
超分算法小合集之SRCNN、DCSCN、SRDenseNet、SRGAN_第4张图片
超分算法小合集之SRCNN、DCSCN、SRDenseNet、SRGAN_第5张图片

SRDenseNet和DCSCN结构非常类似。都是使用了skip connection,主要结构都是一个特征提取加反卷积重建。
输入是从 100 × 100 100\times100 100×100的高分辨率图像中通过下采样得到的 25 × 25 25\times25 25×25的低分辨率图像。
高层特征特征提取:
使用了8个dense块,每个块输出都是128个feature map。每个dense block中有8个卷积层,growth rate为16。在dense块中和dense块间都使用了skip connection,可以学习到更多高低层互补的信息。
瓶颈层:
在上图的(c)中使用了1×1内核的卷积层用作瓶颈层,以减少输入特征映射的数量,特征图的数量减少到256个。提高了模型的紧凑性和计算效率。
反卷积层:
使用了两个 3 × 3 3\times 3 3×3CNN的反卷积,作为一个上采样滤波器。使用反卷积结构可以学到更多的图像细节。
加速了重建过程,整个过程在LR空间进行,如果放大因子为 r r r,则计算成本将减少 r 2 r^2 r2的一倍; LR图像中的大量上下文信息被用来推断高频细节,如果使用相同深度时,反卷积层网络的感受野大约是使用插值网络感受野的 r 2 r^2 r2倍。
重建层: 具有 3 × 3 3\times 3 3×3核和一个输出通道。

LOSS:(MSE)
在这里插入图片描述
文章研究并比较了三种不同类型的网络结构。
如图1(a)所示,只有顶层的特征映射被用作重构HR输出的输入,将该结构表示为SRDenseNet_H。
如图1(b)所示,网络中引入了一个跳跃连接,以连接低级和高级特征,称之为SRDenseNet_HL。
如图1(c)所示,使用密集跳跃连接将所有卷积层生成的特征映射拼接起来进行SR重建,并将该方法表示为SRDenseNet_all。默认SRDenseNet为该种结构。
在后续实验中也证明了,第三种带来的表现力要比前两种要好,证明了不同深度层的特征之间包含的信息是互补的。


SRGAN

SRGAN:Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network
这篇文章使用了GAN结构,并且发现PSNR不能完美的作为图像清晰度的评价指标。提出了一种新的损失函数:感知损失。
文章首先提出一种新的SRResNet网络,在PSNR指标上达到了SOTA。
在SRGAN中,使用SRResNet作为生成网络。实验证明确实达到了很好的感知效果。
超分算法小合集之SRCNN、DCSCN、SRDenseNet、SRGAN_第6张图片
SRResNet网络结构和SRDenseNet非常之像,用ResNet替换了DenseNet。
首先先对这5种变体模型进行说明:
文章统共提出了五种变体模型(使用了不同的loss函数),对其进行了比较:

SRResNet(MSE-based):以MSE为内容损失函数,没有对抗损失,后面的SRResNet就是指MSE-based。
SRResNet(VGG22-based):以VGG22损失函数为内容损失,没有对抗损失。
SRGAN(MSE-based):以MSE为内容损失函数,外加对抗损失。
SRGAN(VGG22-based):以VGG22损失函数为内容损失,主要用于捕获低层细节,外加对抗损失。
SRGAN(VGG54-based):以VGG54损失函数为内容损失,主要用于捕获高层细节,外加对抗损失,后面的SRGAN指的就是以VGG54为内容损失函数。

因为文章质疑了PSNR的评估能力,所以使用了MOS图像评价指标(人为打分)。
实验中证明了SRResNet在PSNR指标上达到了SOTA;但SRGAN在MOS指标上比SRResNet更好。

接下来看下SRGAN的细节:
目标函数:
在这里插入图片描述

关注两个地方:

  1. 生成网络使用的是SRResNet的结构,判别网络是类似于VGG网络的结构。
  2. 生成网络的loss使用的是感知损失:由内容损失(文中取MSE或者VGG损失) + 一定比率的对抗损失(GAN网络本身就有的损失函数)组成。判别网络损失使用原有的损失函数。
    也是因为使用了不同的损失函数,才有了上述的五种变体。
    在这里插入图片描述

未完待续…


最后祝各位科研顺利,身体健康,万事胜意~

你可能感兴趣的:(超分,超分辨率重建,深度学习,神经网络,其他,计算机视觉)