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

article/2025/11/10 15:35:11

目录

  • 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} fi1(输入前变换的逆操作),最后取平均。得到的结果用于计算PSNR/SSIM,从实验结果来看,self-ensemble确实可以提升表现力。

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

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

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

未完待续~


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


http://chatgpt.dhexx.cn/article/lpK1YNvf.shtml

相关文章

初识RDMA技术——RDMA概念,特点,协议,通信流程

1. RDMA概念 在DMA技术中,外部设备(PCIe设备)能够绕过CPU直接访问主机的系统主存; RDMA(Remote Direct Memory Access)在概念上是相对于DMA而言的。指外部设备能够绕过CPU,不仅可以访问本地主机…

【RDMA】技术详解(一):RDMA概述

目录 0、前言 一、技术背景 1 传统的 TCP/IP 网络通信的弊端 2 新的网络通信技术(TOE and RDMA) 2.1 TOE (TCP/IP协议处理工作从CPU转移到网卡) 2.2 RDMA (绕过CPU,数据直接‘传’到对端内存&#xf…

Oriented rcnn

oriented rcnn代码解析 文章目录 rpn_head.forward_trainroi_head.forward_train class OrientedRCNN(RotatedTwoStageDetector) 类似rotated faster rcnn它们都继承两阶段检测器类。 所以训练的整体框架都如下: rpn_head.forward_train 代码主体👇 …

srcnn fsrcnn espcn rdn超分网络的结构

1.Srcnn Code: 数据集制作方法:以x2为例 训练数据:一张原始图作为高分辨率图像(h, w),先下采样到(h/2, w/2),然后再cubic上采样到(h, w)得到低分辨率图像&a…

RDD

RDD <1> 概述一. 什么是RDD二. spark 编程模型1. DataSource2. SparkContext3. Diver&#xff08;1&#xff09;SparkConf&#xff08;2&#xff09;SparkEnv&#xff08;3&#xff09;DAGScheduler&#xff08;4&#xff09;TaskScheduler&#xff08;5&#xff09;Sche…

RDNet

RDNet&#xff1a;Density Map Regression Guided Detection Network for RGB-D Crowd Counting and Localization IntroductionMethodExperiments Introduction Motivation&#xff1a;Regression-based方法有局限性&#xff0c;希望还是使用detection-based可以估计出每个人…

【超分辨率】(RDN)Residual Dense Network for Image Super-Resolution论文翻译

机翻&#xff0c;我尽量调整了公式和图片的排版 发现机翻根本看不了&#xff0c;自己人工翻译了下&#xff0c;其中摘要、网络部分&#xff08;第三节&#xff09;为人工翻译。 自己翻译过程中难免会出错&#xff0c;希望各位海涵&#xff0c;同时也欢迎各位提出翻译过程中的错…

LIIF超分辨率之RDN(残差密集网络)

1. 背景 用PaddlePaddle复现论文LIIF&#xff0c;LIIF中使用的Encoder是RDN&#xff0c;本文介绍一下RDN。 RDN论文&#xff1a;https://arxiv.org/abs/1802.08797 Torch代码&#xff1a; https://github.com/yinboc/liif/blob/main/models/rdn.py 2. RDN的组成 RDN网络结…

图像超分辨之RDN(Residual Dense Network)

论文&#xff1a; Residual Dense Network for Image Super-Resolution Github&#xff1a; https://github.com/yulunzhang/RDN https://github.com/hengchuan/RDN-TensorFlow 整体结构&#xff1a; RDN&#xff08;Residual Dense Network&#xff09;主要包含4个模块。…

超分辨率-RDN

一、简介 RDN——Residual Dense Network—— 残差深度网络 RDN是基于深度学习的超分方法之一&#xff0c;发表于CVPR 2018 二、结构 RDN网络结构分为4个部分&#xff1a; 1、SFENet(Shallow Feature Extraction Net, 浅层特征提取网络) 2、RDBs( Residual Dense Blocks, 残…

【图像超分辨】RDN

RDN 网络结构实现细节讨论&#xff08;与其他网络的区别&#xff09;实验设置实验结果参考博客 RDN——Residual Dense Network—— 残差深度网络。RDN是基于深度学习的超分方法之一&#xff0c;发表于CVPR 2018。 网络结构 RDN网络结构分为4个部分&#xff1a; SFENet(Shall…

【图像复原】RDN论文详解(Residual Dense Network for Image Restoration)

这是CVPR2018的一篇文章&#xff0c;提出了针对图像复原任务的CNN模型RDN(residual dense network)。 RDN主要是提出了网络结构RDB(residual dense blocks)&#xff0c;它本质上就是残差网络结构与密集网络结构的结合。 1.残差网络&#xff08;resnet&#xff09;与密集网络&am…

超分之RDN

这篇文章提出了一种结合ResNet结构和DenseNet结构的深度超分网络——Residual Dense Network(后文简称RDN)。RDN基于Residual Dense Block(后文简称RDB)块以及全局残差连接来提取全局特征&#xff0c;而RDB块基于Dense结构和局部残差连接进一步提取局部特征。通过这种结构&…

Java线程中的用户态和内核态

内核态用户态是什么? 操作系统对程序的执行权限进行分级,分别为用户态和内核态。用户态相比内核态有较低的执行权限&#xff0c;很多操作是不被操作系统允许的&#xff0c;简单来说就是用户态只能访问内存,防止程序错误影响到其他程序&#xff0c;而内核态则是可以操作系统的…

「操作系统」什么是用户态和内核态?为什么要区分

「操作系统」什么是用户态和内核态&#xff1f;为什么要区分 参考&鸣谢 从根上理解用户态与内核态 程序员阿星 并发编程&#xff08;二十六&#xff09;内核态和用户态 Lovely小猫 操作系统之内核态与用户态 fimm 文章目录 「操作系统」什么是用户态和内核态&#xff1f;为…

用户态与内核态之间切换详解

用户空间和内核空间 用户程序有用户态和内核态两种状态。用户态就是执行在用户空间中&#xff0c;不能直接执行系统调用。必须先切换到内核态&#xff0c;也就是系统调用的相关数据信息必须存储在内核空间中&#xff0c;然后执行系统调用。 操作硬盘等资源属于敏感操作&#…

用户态和内核态 中断处理机制

操作系统 一、操作系统基础知识 1.1 用户态和内核态 1.1.1 定义&#xff1a;什么是用户态和内核态&#xff1f; Kernel 运行在超级权限模式&#xff08;Supervisor Mode&#xff09;下&#xff0c;所以拥有很高的权限。按照权限管理的原则&#xff0c;多数应用程序应该运行…

用户态和内核态:用户态线程和内核态线程有什么区别?

转载 文章来源于 拉钩教育 重学操作系统 林䭽 用户态和内核态&#xff1a;用户态线程和内核态线程有什么区别&#xff1f; 什么是用户态和内核态 Kernel 运行在超级权限模式&#xff08;Supervisor Mode&#xff09;下&#xff0c;所以拥有很高的权限。按照权限管理的原则&a…

什么是用户态和内核态

什么是用户态和内核态 从图上我们可以看出来通过系统调用将Linux整个体系分为用户态和内核态&#xff08;或者说内核空间和用户空间&#xff09;。 那内核态到底是什么呢&#xff1f;其实从本质上说就是我们所说的内核&#xff0c;它是一种特殊的软件程序&#xff0c;特殊在哪儿…

用户态和内核态之间的切换

用户态和内核态之间的切换 切换方式 从用户态到内核态切换可以通过三种方式&#xff0c;或者说会导致从用户态切换到内核态的操作&#xff1a; 系统调用&#xff0c;这个上面已经讲解过了&#xff0c;在我公众号之前的文章也有讲解过。其实系统调用本身就是中断&#xff0c;…