目录

  • FSRCNN
  • DRCN
  • RDN
  • EDSR

文章:
FSRCNN : Accelerating the Super-Resolution Convolutional Neural Network
DRCN: Deeply-Recursive Convolutional Network for Image Super-Resolution
RDN: Residual Dense Network for Image Super-Resolution
EDSR:Enhanced Deep Residual Networks for Single Image Super-Resolution

FSRCNN

Accelerating the Super-Resolution Convolutional Neural Network

FSRCNN : Accelerating the Super-Resolution Convolutional Neural Network
这篇文章是SRCNN的加强版,主要目的是降低计算成本,加快其运行速度。在保持良好性能的同时,在通用CPU上实现实时性能。
所以这篇文章最关心的是速度。

主要改进在三个地方:

  1. FSRCNN采用原始低分辨率图像作为输入,无需进行双三次插值,在网络末端引入反卷积层来完成上采样,极大的减小了网络参数。
  2. 网将SRCNN中的非线性映射层替换为FSRCNN中的三个层,即收缩、映射和扩展,减少特征参数维度。
  3. 将“宽”的非线性映射层用“**窄”的“深”**的网络来替代。

网络结构:
Conv(5,d,1) - PReLU - Conv(1,s,d) - PReLU - m× \times×Conv(3,s,s) - PReLU -Conv(1,d,s) - PReLU - DeConv(9,1,d)

特征提取层: 同SRCNN一样,从输入中提取图像特征,表示为特征向量。不同之处在于输入图像是原始LR图像,5×5卷积核。
收缩层: 为了减少网络参数数量,提高计算效率,采用1×1卷积核。
映射层: 将上一层的feature map进一步做非线性映射处理。为了保持良好性能,使用多个3×3层来替换单个宽层。
扩展层: 收缩层的逆作用,为了保持与收缩层的一致性,仍采用1×1卷积核,其数量与特征提取层相同。
反卷积层: 完成图像的上采样。由多种自动学习的上采样核组成,这些核共同产生最终的HR输出。该层的卷积核步长用来控制缩放尺寸。

与其他基于深度学习的方法相比,FSRCNN的另一个优点是,可以实现跨不同放大倍数的快速训练和测试
作者发现FSRCNN中所有卷积层总体上都像LR图像的复杂特征提取器,只有最后一个反卷积层包含放大因子的信息。


DRCN

Deeply-Recursive Convolutional Network for Image Super-Resolution

DRCN: Deeply-Recursive Convolutional Network for Image Super-Resolution
这篇文章是第一次将之前已有的递归神经网络(Recursive Neural Network)结构应用在图像超分辨率上。为了增加网络的感受野,提高网络性能,引入了深度递归神经网络,但出现了梯度爆炸/消失问题,又研究出了递归监督和跳跃连接两个扩展办法。
文中所有卷积核尺寸皆为3 × 3 。


作者首先把递归网络直接引入SR任务,记为Basic Model :
嵌入层: 含有一层隐藏层,将输入图像(灰度或RGB)表示为一组特征映射。
推理层: 推理网络是解决超分辨率问题的主要组成部分。每个递归层应用相同的卷积,使用激活函数ReLU。 推理层中对每个循环网络操作使用相同的权重和偏差矩阵W和b。
重建层: 将得到的HR空间特征(多通道)转换回原始图像空间(1或3通道)。

Basic Model 虽然简单且功能强大,但作者发现因为梯度爆炸/消失问题,训练深度递归网络非常困难(最多训练三个循环层)。

针对以上问题,作者引入了两个方法来改进:

  1. Recursive-Supervision:监督每层递归,以减轻梯度消失/爆炸的影响。使用相同的重建层来预测每一次递归重建的SR图像。重建层输出D个预测图像,将所有D个预测图像通过加权求和来计算最终输出(权重由网络学习得到),所有预测都在训练期间同时受到监督,这一步在公式中的体现为增加了一部分loss。
  2. Skip-Connection:对于图像重建任务,输入和输出图像高度相关,所以可以直接通过跳层连接将LR信息直接传输到SR重建层。该做法有两个优点:节约了远距离传输的复杂算力、极大程度的保留了完整的低频信息。

LOSS
使用递归监督,会有D+1次目标函数最小化:监督递归的D个输出 l 1 ( θ ) l_1(\theta) l1​(θ) + 最终输出 l 2 ( θ ) l_2(\theta) l2​(θ)。 θ \theta θ 表示参数集。
对于中间输出,损失函数:

对于最终输出,损失函数:

综上,得出最终的损失函数 L ( θ ) L(θ) L(θ)。训练通过权重衰减( L 2 惩 罚 × β L2惩罚\timesβ L2惩罚×β)进行规范化 。

DRCN提出了一种使用深度递归卷积网络的图像超分辨率重建方法。该网络有效地重复利用权重参数,减少了额外参数的引入,提高了网络效率,效果成功超越了其他现有的方法。


RDN

Residual Dense Network for Image Super-Resolution

RDN: Residual Dense Network for Image Super-Resolution
这篇文章总结分析了ResNet 和DenseNet的优缺点,并将其结合,提出了新的结构ResidualDenseNet。
这是一个类似套娃的结构。
整体网络简单来讲就是:先局部多次提取特征,将之融合;再把多个局部特征融合;再重建图像。

网络整体结构:

浅层特征提取(SFENet): 使用两个Conv层来提取浅层特征。
残差密集块(RDBs): D个RDBs块相连
密集特征融合(DFF): 将D个RDBs提取的层次特征进一步进行密集特征融合(DFF),包括全局特征融合(GFF)和全局残差学习(GRL)。DFF充分利用了前面所有层的特性。
上采样网络UPNet: 使用ESPCN,然后接一个Conv层。

RDB结构:

密集连接层RDBs:
连续存储机制: 第d-1个RDB输出和第d个RDB的1到c-1层卷积层输出特征映射拼接。前一个RDB和该RDB的每一卷积层的输出都直接连接到所有后续层,这不仅保留了前馈特性,还提取了局部密集特征。​
局部特征融合(LFF): 经过密集连接层拼接后,共有G0+(c−1)×G个 特征映射,如果不控制数量,经过多层RDB后特征维度将会是灾难性的,网络将难以训练。因此作者提出了局部特征融合,使用自适应的方式来融合得到的特征映射,使每个RDB输出映射固定在G0。
使用了1×1卷积层来自适应控制输出信息。LFF能够稳定训练更广泛的网络,所以网络可以使用非常高的增长率G。
局部残差学习(LRL): LRL的目的是为了进一步改善信息流。这一步简单来说就是把上一个RDB输出和这个块特征融合后的结果相加。

DFF:
局部特征融合和残差学习是放在每个RDB内对局部信息进行整合,而DFF是对得到的每个RDB特征进行特征融合和残差学习,以全局方式利用层次特征。一个由小到大的过程。DFF包含:全局特征融合(GFF)、全局残差学习(GRL)。
全局特征融合(GFF):
通过融合所有RDB的特征(D个)来提取全局特征​,将第1到D个RDB生成的特征图的串联,再使用1×1和3×3卷积减少特征维度。
1×1卷积层用于自适应地融合一系列不同级别的特征。3×3卷积层用以进一步提取用于全局残差学习的特征。
全局残差学习(GRL):
将最初的浅层特征和全局融合后的特征相加,进一步增强图像信息,减少信息丢失。

在RDN中,提出了一种用于图像SR的超深残差密集网络(RDN),其中残差密集块(RDB)作为基本构建模块。充分利用了原始LR图像的所有层次特征。可以拆分为两步看,局部(单个RDB内)和全局(RDB之间)。
总体的结构简单来说就是:局部多次提取特征并融合,再对提取出的多个局部特征融合,再重建图像。


EDSR

Enhanced Deep Residual Networks for Single Image Super-Resolution

EDSR:Enhanced Deep Residual Networks for Single Image Super-Resolution
参考文章:超分之EDSR
这篇文章是在SRResnet上进行了改进,去除了其中没必要的的BN部分,减少计算资源损耗。还提出了一种基于EDSR的多缩放尺度融合在一起的结构: MDSR。
BN不适合超分任务的原因:为啥去掉BN层?

这篇文章在整体结构上并没有很大的改动。网络整体结构就是特征提取+反卷积重建。

作者主要在五个方面进行了优化:

  1. 去除了不适合SR任务的BN层,模型会更加轻量。BN层天然会拉伸图像本身的色彩、对比度,这样反倒会使得简单的SR任务输出图像变坏,实验也证明去掉BN层反倒可以增加模型的表现力。

  2. 增加了Residual-scaling。减缓feature map过多(滤波器过多或者说通道数过大)带来训练不稳定的问题。

  3. 将几何自集成的方法用于在测试的时候。将每一张输入图像经过8种不同(其中一种是原图)的变换方式 f i f_i fi​进行转换,输入网络后得到输出结果,将8个得到的结果经过转置处理 f i − 1 f_i^{-1} fi−1​(输入前变换的逆操作),最后取平均。得到的结果用于计算PSNR/SSIM,从实验结果来看,self-ensemble确实可以提升表现力。

  4. 使用L1-Loss,作者通过大量实验证明L1-Loss比L2-Loss具有更好的收敛能力。

  5. 提出了一种在单一网络中实现多尺度融合的SR网络:MDSR,包括 × 2 、 3 、 4 × 2 、 3 、 4 ×2、3、4 相比训练3个不同单一尺度的SR网络,MDSR可以节省更多的参数。
    可以看右边的图5,是MDSR的网络结构:
    ① 每个预处理模块由2个残差块组成,针对每一种up-scale-factor设置不同的残差快,预处理阶段的残差块中的卷积采用较大的5 × 5卷积核来增大初始阶段的感受野;
    ②中间是一个共享残差网络;
    ③最后是针对不同缩放倍数设计的上采样网络。

    作者经过实验发现,训练3个单独的EDSR-baseline来实现不同放大倍数的SR的消耗是训练一个MDSR的baseline的约1.5倍,而MDSR在后续实验中表现也还不错,因此MDSR是一种资源消耗相对少且有一定表现力的SR网络。

未完待续~


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

图像超分算法小合集二:FSRCNN、DRCN、RDN、EDSR相关推荐

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

    阅读指引 SRCNN DCSCN SRDenseNet SRGAN 论文快速指引: SRCNN:Learning a Deep Convolutional Network for Image Supe ...

  2. MATLAB | 特殊绘图小合集(二) | 金字塔图、类桑基图、y轴分段填充折线图

    居然又攒出了一期特殊绘图小合集文章,本来以为要攒很久的,本系列主要拿出来一些简单的,单独拿来写篇幅会很短的绘图小技巧做个合集,本期代码为了绘制好看大部分情况使用了以下这段简单小代码进行修饰: func ...

  3. 图像超分算法SRLUT: Practical Single-Image Super-Resolution Using Look-Up Table图像超分辨率重建

    这篇文章是首次将查表法引入SR领域.将SR网络训练好的缩放像素值存在表中,在测试阶段只需要在表中查找对应值,就能完成图像重建任务.由于该方法不需要大量的浮点运算,因此可以非常快速地执行. 原文链接:S ...

  4. 计算摄影——图像超分

    这一节主要介绍一下基于单张图的图像超分算法.图像超分,就是要从低分辨率的图像恢复为高分辨率的图像,它在日常的图像和视频存储与浏览中都有广泛的应用. 基于深度学习的图像超分算法 不同的采样结构 图像超分 ...

  5. 深度学习(二十)——Ultra Deep Network, 图像超分辨率算法

    http://antkillerfarm.github.io/ Ultra Deep Network FractalNet 论文: <FractalNet: Ultra-Deep Neural ...

  6. 【达摩院OpenVI】AIGC技术在图像超分上的创新应用

    团队模型.论文.博文.直播合集,点击此处浏览 一.背景 近10年来,深度学习技术得到了长足进步,在图像增强领域取得了显著的成果,尤其是以GAN为代表的生成式模型在图像复原.老片修复,图像超分辨率等方面 ...

  7. 网络通道数2的倍数_利用双通道卷积神经网络的图像超分辨率算法

    发布时间: 2016-05-25 摘要点击次数: 288 全文下载次数: 39 DOI: 10.11834/jig.20160503 2016 | Volumn 21 | Number 5 图像处理和 ...

  8. 可生成高清视频的Stable Diffusion来了!分辨率提升4倍,超分算法来自腾讯,支持Colab在线试玩...

    明敏 发自 凹非寺 来源 | 量子位 QbitAI 免费玩的Stable diffusion,又出新变种了! 古典人像丝滑切换,还都是4倍超分辨率水平,细节也就多了亿点点吧,眉毛发丝都根根分明. 还能 ...

  9. 图像超分中的深度学习网络

    图像超分中的深度学习网络 质量评估 操作通道 有监督算法 预上采样 后采样超分 逐步上采样 迭代上下采样 上采样的学习方式 残差块 递归学习 多路径学习 密集连接 通道注意力机制 其他卷积 像素递归网 ...

最新文章

  1. linux内核支持硬盘,Intel 10nm桌面版还是来了:Linux内核已支持
  2. 多点优化损失函数地图全局描述
  3. 【PAT (Advanced Level) Practice】1054 The Dominant Color (20 分)
  4. 液晶显示屏怎么显示泰文_液晶显示屏概念股大涨 液晶显示屏概念股一览表
  5. qt获得 cpu 主频信息_高主频有什么用?我们玩了几款3A大作找到答案
  6. java获取本周的开始时间和结束时间_创业板注册制开始时间/股票开户流程结束后,怎么炒股?...
  7. socket接收的消息怎么更新到页面_利用socketio实现简易即时消息服务
  8. 3天,我用Python手撕了一个深度学习框架!
  9. 简单理解编程语言的工作原理
  10. 可能促使您决定创建自定义数据绑定控件的一些原因:
  11. web压力测试工具介绍
  12. Google(谷歌)博客搜索中文测试版发布
  13. 漫谈程序员(十三)健康程序猿系列之男人晚睡的7大危害
  14. java list取补集_Java 2 个 List 集合数据求并、补集操作
  15. uni-app实现文件管理器(Android)
  16. 【图解CAN总线】-8-CANFD总线网络“负载率”计算
  17. 浅尝 | 从 0 到 1 Vue 组件库封装
  18. mysql按时间段统计_mysql按照时间段内 每天统计
  19. 联想R7000P莫名其妙黑屏问题记录
  20. CSS 版心和布局流程

热门文章

  1. redis常用命令:
  2. ffmepg H264 NALU分析
  3. CST微波工作室学习笔记2 主要特点
  4. 崩三类卡通渲染解析及制作规范
  5. JAVA语言编程练习--图形界面--简易登录界面
  6. 常见的电子器件,这篇文章总结得很到位,你还不收藏吗?
  7. 面包菜单收起和出现案例
  8. 企业如何构建高性能计算云?
  9. 分布式与集群的区别 .
  10. 【ThreeJS基础教程-初识Threejs】1.2掌控我们的物体和模型