精华内容
下载资源
问答
  • 基于ResNet或GAN的遥感图像超分辨率论文《空间感知残差网络的遥感图像超分辨率重建》操作:遥感图像特点:网络模型:去掉批处理层的原因:具体操作损失方程:《改进的残差卷积神经网络遥感图像超分辨率重建》方法:...


    这一周阅读了几篇针对遥感图像的超分辨率论文,其中两篇基于的是残差网络做改进,另外两篇是基于生成对抗网络。遥感图像与普通图像有较大区别,具体表现在纹理特征明显、成像幅宽较大、具有较多的地物特征等。因此不能直接将普通图像的超分辨率方法直接应用于遥感影像。这些文章中的改进点,大多是在调整网络结构、增加卷积层数量、改变损失函数等,对于处理遥感影像,取得了较好效果。

    《空间感知残差网络的遥感图像超分辨率重建》

    目的: 提升遥感图像超分辨率重建算法纹理细节信息还原能力。

    方法: 基于特征空间感知损失深度残差网络的遥感图像超分辨率重建算法。

    操作:

    1. 增加深度残差网络中的残差块数量;
    2. 在网络末端采用了亚像素卷积的方法;
    3. 在损失函数中增加了特征空间感知损失。

    可以学习到遥感图像更多的纹理细节信息,最终对遥感图像进行了有效的超分辨率重建。

    遥感图像特点:

    1. 遥感图像的成像幅宽较大,
    2. 低空间分辨率与低对比度,
    3. 普通影像相比,具有地球地表更多的地物信息,
      (如山川、河流、城市建筑群等静态物体及空中的飞机等运动物体)
    4. 遥感图像的纹理信息比较丰富。

    网络模型:

    采用了深度残差网络作为网络模型,并对传统的残差网络做了些细微的调整。

    本文使用的残差网络的残差块则***去掉了所有的批处理化层***及***每个残差块之后的线性整流函数***。
    为了更好地还原出遥感图像的纹理信息和细节信息,本文***将传统的深度残差网络中的批规范化层去掉***了,并将残差块调整成了32层。

    虽然增加残差块的数量会使网络的计量增加,计算效率降低,但由于去除批处理化层可以节省计算内存,因此在相同的GPU内存下,相比传统的残差网络,可以堆叠更多的残差块,以提取更多的特征,达到更好的超分辨率重建效果。

    去掉批处理层的原因:

    对于图像超分辨率重建,网络输出的图像在色彩、对比度、亮度上要求和输入一致,改变的仅仅是分辨率和一些细节,而批处理化层对图像来说类似于一种对比度的拉伸,任何图像经过批处理化层后,其色彩的分布都会被归一化,图像原本的对比度信息被破坏,所以批处理化层会影响输出图像的质量,因此在超分辨率重建过程中去掉批处理层。)
    在这里插入图片描述

    具体操作

    1. 输入的图像块首先***经过一个卷积层得到256个特征图谱***(feature map)。

    2. 接着,经过32个残 差块、一 个卷积层
      其中卷积层以及残差块中的卷积层的填充输入图像边界(padding)均为0,使得亚像素卷积层之前输入输出图像块的分辨率保持不变, 降低了整个网络模型的参数数量。
      对所有的残差块,卷积核的大小设为3像素×3像素,由于排列了足够多的残差块, 该网络模型具有足够大的感受野(receptive field),能够得到更好的图像重建效果。

    3. 为了避免由于堆叠太多的残差块导致训练不稳定,将经过第一层卷积处理的结果***乘以一个小于1的系数与残差网络的输出相加***,作为亚像素卷积层的输入.

    4. 最后经过亚像素卷积层改变图像尺度,得到整个网络的输出。

    在这里插入图片描述

    损失方程:

    内容损失(参考自 Lossfunctions for image restoration with neural networks)
    L1范数损失函数,也被称为最小绝对值偏差(LAD),最小绝对值误差(LAE)。总的说来,它是把目标值(Yi)与估计值(f(xi))的绝对差值的总和(S)最小化:
    在这里插入图片描述
    本文使用L1损失作为本文模型的内容损失,见式(6)、式(7)。
    式中:Iest为模型生成的图像;Igt为对应的高分辨率图像;w 为输入模型图像的宽度;h为输入模型图像的高度;c为输入模型图像的通道数。内容损失通过除以图像所有像素数量值进行归一化。
    在这里插入图片描述

    特征空间的感知损失(参考自Generating image with perceptual similarity metrics based on deep networks)
    在计算距离之前先通过一个可微函数φ将Iest 和Igt 映射到一个特征空间
    在这里插入图片描述
    式中:Iest为模 型 生 成 的 图 像;Igt为 对 应 的 高 分 辨率图像;φ为将Iest和Igt映射到一个特征空间的可微函数。这 使 得 模 型 产 生 具 有 与 真 实 图 像 相 似 特征,但可能与真实图像像素精度不那么匹配的图像,从而能够更好地重建出图像的纹理细节信息。

    总损失函数
    为了更好地还原出遥感图像的细节纹理 信 息,在 内 容 损 失 的 基 础 上,在 损 失函数部分加上了特征空间感知损失。SRRSP 的损失函数表示为式(9)。
    在这里插入图片描述
    式中:L 为 总 损 失;Lcont为 内 容 损 失;LP 为 特 征空间的感知损失;λ为特征空间感知损失的比例系数。根据对不同的λ值进行实验,可知若λ太小网络不能很好地重建出遥感图像的细节信息,若λ太大,网络 生 成 的 高 分 辨 率 图 像 的 PSNR 会 变 小,因此这里λ取0.001。

    实验数据集:
    为了训练SRRSP,使 用 了 公 开 的UCMerced-LandUse数 据 集。从飞机、建筑物、高密度住宅区、十字路口、中密度住宅区、储油罐、网球场这7类图像中各选用30张作为训练图像。输入神经网络模型的高分辨率图像块分辨率大小为64像素×64像素×3通道,是从训练数据集中随机截取的。
    低分辨率图像块的分辨率大小为32像素×32像素×3通道,由对应的高分辨率图像下采样得到。为了防止训练 的 过 程 中 过 拟 合,本 文 采 取 了 下 列 的 方法:对UCMerced-LandUse数据集中的遥感图像进行随机截取并 将截取的图像块旋转随机的角度或水平、垂直翻转。最终得到4×104个高、低分辨率遥感图像对。

    《改进的残差卷积神经网络遥感图像超分辨率重建》

    方法:

    在 VDSR 基础上,将神经网络的卷积层数目由 20 层增加到 24 层,改进激活函数为 PReLU 函数,并以 80 000 张遥感图像作为训练集,训练迭代次数到 40 000 次网络收敛,最终针对遥感图像进行了超分辨的网络训练。

    操作:

    由于 VDSR算法以彩色图像作为训练集,而对遥感图像的超分辨效果没有其对彩色图像的超分辨效果好,本文在 VDSR的基础上,对网络的结构与激活函数进行了优化使用遥感图像作为训练集,客观参数与主观视觉上都好于其他算法。

    不使用池化层的原因:

    本文算法与 VDSR、SRCNN 算法都没有使用池化层,因为下采样层通常应用于图像的分类,保证了图像特征。同时,可以减少参数增加网络性能,但图像超分辨的目的是为了获取图像更多的细节信息,与池化层的作用恰好相反,所以在图像超分辨算法中并不需要池化层。
    在这里插入图片描述

    《基于对抗网络遥感图像超分辨率重建研究》

    方法:

    基于条件生成对抗网络的遥感图像超分辨率重建的改进模型。为了加快模型的收敛速度,在生成器网络中 使用内容损失和对抗损失相结合作为目标函数。另外为了提高了网络训练的稳定性,在判别器网络中 引入梯度惩罚函数对判别器梯度进行限制

    遥感图像特点:

    在获取遥感图像的过程中,由于受到频率干扰,大气扰动和成像设备等多因素的影响,导致传统的遥感图像分辨率普遍偏低。高分辨率遥感图像相比低分辨率遥感图像,图像细节信息更加丰富,更有利于遥感数据的后续处理。

    本文的改进:

    1. 改进 CGAN(Conditional GenerativeAdversarial Nets) ,用于遥感图像超分辨率重建。
    2. 在判别器网络中,引入梯度惩罚损失函数,提高训练的稳定性和收敛速度。
    3. 相较于传统使用随机向量作为输入,采用低分辨率图像作为生成器输入,实现了四倍上采样的遥感图像超分辨率重建。

    CGAN原理:

    CGAN 结合了卷积神经网络强大的特征提取能力,在此基础上加以条件辅助生成样本。为得到高分辨率的遥感图像,在对网络进行训练时可将高分辨率的遥感图像作为额外输入,其作用相当于网络训练的控制条件,在训练过程中将上述的控制条件作为标签加到训练数据中,最后得到所需要的高分辨率遥感图像。

    算法改进:

    采用梯度惩罚来满足Lipschitz 连续性。为了尽可能将判别器的梯度▽D(x)变大,而 Lipschitz 连续性限制要求判别器的梯度▽D(x)不能超过 K

    网络结构:

    1. 生成器:
      CNN生成器网络采用了包含 两个1/2间隔的卷积单元,9 个剩余残差单元两个反卷积单元 ,每个残差模块由一个卷积层,实例归一化层和 ReLU激活组成。在图像生成过程中,以高分辨率遥感图像作为条件变量,引导低分辨率图像重建。不同于一般的对抗网络生成器输入为任意随机向量,输入为1/4 采样的低分辨率遥感图像,输入的每张低分辨率遥感图像对应有高分辨率遥感图像进行重建。
      在这里插入图片描述
    2. 判别器
      判别器采用 PatchGAN的方法,即 对每张输出图像的每个 N×N 小块(Patch)计算概率,然后再将这些概率求平均值作为整体的输出。这样的结果通常通过卷积层来达到,最终输出的矩阵中的每一个元素,实际上代表着原图中一个比较大的感受野,也就是对应着原图中的一个 Patch。该方法能够加快模型收敛和计算速度。

    在这里插入图片描述
    在这里插入图片描述

    损失函数:

    1. 对抗损失:
    在这里插入图片描述
    2. 内容损失:
    是估计生成图像和真实图像两者的差距,这里的内容损失为 L2 损失,它反映的是生成的特征图和真实的特征图之间的距离
    在这里插入图片描述
    3. 最终损失:
    在这里插入图片描述
    上式中由于是加权合并,所以 为 0 到 1 的常数。

    数据集:

    本文采用的数据集,大约包含了 1 万张 30类的高分影像,包含了机场,立交桥和车场等15 个类别,训练集和测试集的比例 8:2,进行 1/4采样,使用 SSIM(结构相似度)和 PSNR(峰值信噪比)两种评价算法对重建图像进行评价,同时使用 SRCNN,FSRCNN,SRGAN 重构出的超分辨率图像作为结果对比。

    训练时,为了避免模型陷入局部最优解,首先预训练好 VGG19 模型作为初始化模型。训练过程中,将生成器和判别器进行交替训练,学习率设置为 0.0002,迭代次数为 500,训练时间为72 小时。

    《基于生成对抗网络的单帧遥感图像超分辨率》

    遥感图像特点:

    遥感图像的分辨率对图像解译质量有着重要影响,与低分辨率图像相比,高分辨率图像具有更高的像素密度,能
    够提供更多的色调、形状和纹理信息。

    改进点:

    1. 将BEGAN经调整改进后应用于遥感图像超分辨率重建;
    2. 设计了一种端到端的自编码器结构网络,生成网络和判别网络均使用该类型结构,简化网络结构设计,易于代码复用;
    3. 与传统GAN使用随机向量作为生成网络输入不同,本文生成网络使用低分辨率图像作为输入,实现了4倍上采样的单帧遥感图像超分辨率。

    使用均方误差作为待优化损失函数,被应用于单帧遥感图像超分辨率时存在两个主要问题:
    一是网络难以训练,常会出现梯度消失问题;
    二是重建结果过于平滑。

    网络结构及参数设置:

    由于遥感图像的多样性和复杂性,需设计专门的超分辨率神经网络结构,总体上,网络属于条件生成对抗网络,高分辨遥感图像作为条件变量,指导低分辨率图像重建过程。本文网络生成器的输入为经双线性立方插值方法 4 倍放大后的低分辨遥感图像自编码器类型网络结构设计参考了 SegNet,设计的网络结构拥有更多的卷积组和特征图数量,为增强生成图像质量及加速网络收敛,每一卷积组和其对应的解卷积组之间都使用了“跳跃连接”

    对生成器 G :
    1. 网络输入为经过归一化处理的三波段 (R、G、B) 遥感图像,大小为256×256×3。
    2. 然后是编码器结构部分,即五组“卷积+ELU 激活+最大池化”操作,前两组包含连续两次卷积操作,后三组包含连续三次卷积操作。各组过滤器大小均为 3×3,深度依次为64、128、256、512、512,过滤器权重使用服从截断高斯分布的随机值初始化,移动为单位步长、边界补齐,偏置权重统一置初始值 0.1。最大池化层中过滤器大小为2×2,步长为 2,边界补齐。
    3. 接着是对应的解码器结构,包含五组“解卷积+卷积+ELU 激活”操作,参数设置与编码器部分相同。与原始 SegNet 网络结构不同的是,用“解卷积”替代“上池化”,使用跳跃连接辅助图像重构过程。生成器最后输出为重建的高分辨率遥感图像,这也将会作为判别器的输入之一。
    对判别器 D :

    除输入输出不同以外,判别器的网络结构与生成器一致。具体地,判别器的输入包含生成器的输出及相应的真实高分辨率遥感图像,输出仍是与输入同样尺寸的图像形式,这一点与传统GAN输出为判别概率有很大区别。在其他超参数的设置方面,batch_size为 16,epochs为 100,初始学习率为 0.000 1,每 2 000次迭代学习率衰减为0.95,γ 初始值设置为0.75。

    在这里插入图片描述

    损失函数:

    在传统 GAN 中的训练过程早期,判别器 D 的学习能力远远超过生成器 G ,从而造成 model collapse 问题。由此,在网络训练中使用一种基于 L1 范数和判别器重构误差的损失函数,该损失函数不仅可以平衡生成器和判别器的竞争力,而且可以增加增强生成图像视觉质量。
    在这里插入图片描述
    式中,IHR 表示真实高分辨率图像,ILR 表示对应的低分辨图像。生成器和判别器的待优化损失函数及更新
    规则有:
    在这里插入图片描述
    式(3)~(7)中,x 表示真实的高分辨率图像,z 表示对应低分辨图像,y 表示生成高分辨率图像,LDr
    、LDf 分别表示判别器关于 x 和 y 的损失,θG、θD 分别表示生成器和判别器的相关参数。 λk 表示 k 的比例增益,kt 表示 k的第 t 次更新值,参数 k 可以平衡生成器和判别器的竞争力。 γ 是生成样本损失的期望与真实样本损失的期望值之比,该参数可以控制生成图像多样性和视觉质量之间的权衡。

    数据集:

    实验使用数据集源自 NWPU-RESISC45 高分辨率遥感图数据集。NWPU-RESISC45 包含机场、立交桥、火车站、住宅区等 45 个场景类别,每一类拥有 700 幅图像,保证了实验数据的真实性和多样性。对原始数据集中的每一类别图像选取10幅,共450幅图像组成实验数据集。按照惯例,将图像样本顺序随机打乱后,按照8∶2的比例进行划分,80%的样本用于训练,20%的样本用于测试。

    优点:

    克服了传统方法重建结果整体平滑的缺点,重建结果恢复了更多的高频细节。这主要得益于本文网络采用了基于生成对抗网络的框架,同时不再使用均方误差作为损失函数。在对单帧遥感图像做超分辨时,其他生成网络主要是对多种可能的生成图像取平均,该方式会得到一个较小的均方误差值,但也会造成图像模糊。生成对抗网络一次可生成多个高分辨图像,然后将这多个生成图像随机映射到一个潜在的输出上,从而增加了生成图像的多样性。受BEGAN启发,本文网络使用超参数 γ 来平衡生成图像多样性和视觉质量,这实现了最优的遥感图像超分辨结果。

    展开全文
  • 现有TM30m分辨率遥感影像和局部worldview2影像,如何通过超分算法提高TM影像分辨率?
  • 超分概念集锦

    千次阅读 2019-08-04 21:59:10
    超分概念 超分辨率(Super Resolution,SR),与超分相对应的是低分辨率图像(Low Resolution,LR),以及经常作为Ground Truth的高分辨率图像(High Resolution, HR)。 超分辨率是一项底层图像处理任务,将低分辨率...

    超分概念

    超分辨率(Super Resolution,SR),与超分相对应的是低分辨率图像(Low Resolution,LR),以及经常作为Ground Truth的高分辨率图像(High Resolution, HR)。
    超分辨率是一项底层图像处理任务,将低分辨率的图像映射至高分辨率,以期达到增强图像细节的作用。图像模糊不清的原因有很多,比如各式噪声、有损压缩、降采样……超分辨率是计算机视觉的一个经典应用。SR是指通过软件或硬件的方法,从观测到的低分辨率图像重建出相应的高分辨率图像(说白了就是提高分辨率),在监控设备、卫星图像遥感、数字高清、显微成像、视频编码通信、视频复原和医学影像等领域都有重要的应用价值。

    最早将深度学习用到SISR的是何凯明大神等人在ECCV2014年提到的SRCNN,因此可以说凯明大神是超分这一技术领域的祖师爷。自2016年开始举办的New Trends in Image Restoration and Enhancement workshop(NTIRE)开辟超分比赛以来,新模型新算法层出不穷。

    超分入门的综述文章首先推荐:A Deep Journey into Super-resolution: A survey. 总结的非常干练精彩。

    超分分类

    一般来说,超分分为以下两种应用场景:
    SISR: 只参考当前低分辨率图像,不依赖其他相关图像的超分辨率技术,称之为单幅图像的超分辨率(Single Image Super Resolution,SISR),需要注意的是对于一个低分辨率图像,可能存在许多不同的高分辨率图像与之相对应。
    VSR: 参考多幅图像或多个视频帧的超分辨率技术,称之为多帧视频/多图的超分辨率(multi-frame super resolution/Video SR)。对于video SR,其核心思想就是用时间带宽换取空间分辨率。既可以通过多张图像来获得图像更多的信息,又可以综合考虑图像的前后帧语义,使得连续图像之间的信息表达有连续性。VSR目前主流的做法是通过多帧之间的帧间对齐(光流计算+运动补偿);多帧融合(超分重建)来得到最终的超分结果。

    我们通常理解的超分辨率都是指SISR,我们只需要输入一张低分辨率图像而获得高分辨率图像的输出。 而VSR会利用视频的时间关联性来获得对某一帧的SR。

    评价指标

    常用的图像质量评估指标有如下三种,在此逐一进行介绍:

    MSE:Mean Squared Error,逐个比较两幅图像的像素差,最终求解所有像素的均方误差
    PSNR::Peak Signal to Noise Ratio,峰值信噪比,即峰值信号的能量与噪声的平均能量之比,数值越大表示失真越小,通常表示的时候取 log 变成分贝(dB),由于 MSE 为真实图像与含噪图像之差的能量均值,而两者的差即为噪声,因此 PSNR 即峰值信号能量与 MSE 之比。

    第二个等式由于图像像素点数值以量化方式保存,bits 即每个像素点存储所占的位数。因此 MaxValue 即为 2^bits - 1。灰度图中的bits = 8,因此PSNR与MSE在本质上是相似的,只是PSNR相对而言更易于解读,一般取值范围:20-40。值越大,视频质量越好。

    基于MSE改进而来的PSNR是最普遍和使用最为广泛的一种图像客观评价指标,然而它基于误差敏感的图像质量评价,并未考虑到人眼的视觉特性(人眼对空间频率较低的对比差异敏感度较高,人眼对亮度对比差异的敏感度较色度高,人眼对一个区域的感知结果会受到其周围邻近区域的影响等),因而经常出现评价结果与人的主观感觉不一致的情况。

    SSIM:Structural Similarity, 由于基于像素的简单计算不符合人类视觉系统(Human Visual System,HVS)的评价结果,因此需要对评价方式进行重新考量。如果图片的最终目的是向人类进行展示的话,那么质量应该以人的主观测评为准。但是由于主管评价不方便且费时,因此我们试图用客观的 image quality assessment 来对图像进行评价,使其接近 HVS 的特点。SIMM的评价指标在如下三点:1. luminance,亮度;2. contrast,对比度;3. structure,结构。SSIM取值范围[0,1],值越大,表示图像失真越小。

    VSR常见的光流法

    本博客深入浅出,讲解的非常好,在此直接贴上链接。
    https://blog.csdn.net/qq_41368247/article/details/82562165
    关于超分的概念讲解,尤其是单帧SR没有充分考虑前后帧图像间的相关性,造成Video中出现波浪状纹路,解释见以下博客:
    https://blog.csdn.net/Gavinmiaoc/article/details/90666538
    关于近期VSR的论文与模型整理,可以见github上分享:
    https://github.com/LoSealL/VideoSuperResolution

    图像增强

    上采样(UnSampling):相比于数据集的上采样与下采样,图像也有属于自己的上采样与下采样,对应着常见的用语:增强与压缩。在深度学习中图像的上采样包括反卷积(Deconvolution)、传统插值与上池化(UnPooling)。
    反卷积: https://buptldy.github.io/2016/10/29/2016-10-29-deconv/ 卷积的本质就是矩阵运算,这篇博客通过对矩阵运算的讲解,将卷积与反卷积的数学本质解释的很透彻。
    上池化: 也就是反池化,不需要学习,用的不是太多,参考论文Visualizing and Understanding Convolutional Networks,还有SegNet和DeconvNet
    简单原理:在池化过程中,记录下max-pooling在对应kernel中的坐标,在反池化过程中,将一个元素根据kernel进行放大,根据之前的坐标将元素填写进去,其他位置补0
    传统插值:包括双线性插值、三次样条插值,都属于传统的图像插值方法。注意:图像上采样几乎都是采用内插值方法,即在原有图像像素的基础上在像素点之间采用合适的插值算法插入新的元素;而下采样是直接向下进行s倍的下采样。无论图像下采样还是图像上采样,采样方式有很多种。如最近邻插值,双线性插值,均值插值,中值插值等方法。插值只是上下采样的手段,务必了解这一点

    展开全文
  • 超分辨率重建基础知识总结

    千次阅读 2021-03-03 11:08:49
    超分辨率重建基础知识总结1、为什么使用超分辨率重建?2、经典图像插值算法有哪些,局限在哪里?3、进行超分辨率重建的方式有哪些?4、超分辨率重建技术与图像复原技术区别与联系? 1、为什么使用超分辨率重建? 通常...

    超分辨率是计算机视觉的一个经典应用。SR是指通过软件或硬件的方法,从观测到的低分辨率图像重建出相应的高分辨率图像(说白了就是提高分辨率),在监控设备、卫星图像遥感、数字高清、显微成像、视频编码通信、视频复原和医学影像等领域都有重要的应用价值。
    本博文主要介绍SISR。SISR是一个逆问题,对于一个低分辨率图像,可能存在许多不同的高分辨率图像与之对应,因此通常在求解高分辨率图像时会加一个先验信息进行规范化约束。在传统的方法中,这个先验信息可以通过若干成对出现的低-高分辨率图像的实例中学到。而基于深度学习的SR通过神经网络直接学习分辨率图像到高分辨率图像的端到端的映射函数。

    1、为什么使用超分辨率重建?

    通常情况,图像传感器均能获得较好的质量,但在特殊场合,受到诸多因素影响,导致图像质量下降。如图像采集获取过程中:成像环境、成像距离、传感器形状和大小、光学系统的误差、空气扰动、物体运动、镜头散焦的影响。
    图像数字化处理过程中:成像、转换、编码、压缩、存储都会影响到图像的分辨率。另外**,还有成像噪声、电气噪声、系统噪声的叠加**。所以实际应用中,无法按照理想状况实现,存在的这些因素,必然影响图像的质量,获得较高质量的图像分辨率也是相当困难的。理论上,获得高分辨率只要增加成像系统的个数,最直接的方法是,通过传感器制造技术减小像素尺寸,增加单位面积的成像点阵就可以解决问题。
    综上,由于技术水平和经济条件的限制,使得成像传感器和光学器件的性能指标可能无法满足应用的需要,因此,需要采用信号处理方法提高图像分辨率

    2、经典图像插值算法有哪些,局限在哪里?

    经典算法也可以提高图像分辨率,包括最近邻插值、线性插值、双三次插值、样条插值,但只是可以增加图像的像素尺寸,改变图像的视觉效果,不能突破原有的信息量。因此,需要有一种新的方法来克服信息量不足的问题。
    (1)最近邻插值:又叫零阶插值(Nearest Neighbor Interpolation),是最简单的插值方法。它是用原始图像中的特定像素点的像素值去填充缩放后的图像,容易实现,对于灰度图像,即将原始图像进行逐点处理,把每一个像素点的灰度值进行插值倍数次复制。它采用的插值函数是一个常量函数,是矩形函数。
    最近邻插值的优点是简单易实现计算量很小,使得这种方法在很多场合得以应用。它的缺点是插值后的图像质量不高,常常出现方块效应和锯齿效应。
    (2)线性插值,又叫双线性插值(Bilinear Interpolation),也是一种简单的插值方法,广泛在图像重建领域中使用,主要是由于线性插值较低的计算量和优于邻域插值的图像质量,因为它是二阶代数拟合。它被称为双线性插值是因为在对图像的插值是分两次对行、列像素分别线性插值处理得到的。
    线性插值放大产生的图像比最近邻域插值产生的图像平滑,不会出现灰度值不连续的的情况。由于线性插值具有低通滤波器的性质,使高频分量受损,当放大倍数增大时,放大后的图像也会出现明显的块状现象,使图像轮廓一定程度上变得模糊。
    (3)三次插值(Cubic Interpolation),又叫双三次卷积值,它是在线性插值基础上的改进,基本思想是增加邻域像素点获得更佳的插值函数,利用卷积算子表达插值方法,卷积过程如下:
    在这里插入图片描述

    优点是图像差值质量好。
    (4)样条插值
    上述三种插值属于传统的多项式插值,为了处理更多数据点,更好的逼近,必须增加了多项式阶数,则应用上受到很多限制。多项式插值的问题:第一、多项式插值受数据点位置的影响大。若出现杠杆点则影响更大。第一多项式插值受输入点变动的影响大。多项式插值没有局部性,它的形式由所有的数据点决定的。一点变动,整个多项式都要变动。
    多项式插值在数据点间震荡被称为龙格现象,可以通过样条插值(Spline Interpolation)来解决问题。样条是特殊函数,多项式分段定义。样条插值比多项式插值好用,低阶样条插值能达到高阶多项式插值效果,还能避免龙格现象,且样条插值具有保凸特性。样条插值在插值点一阶连续可导,与期望函数的均方误差最小。

    3、进行超分辨率重建的方式有哪些?

    超分分为以下两种:
    Image SR。只参考当前低分辨率图像,不依赖其他相关图像的超分辨率技术,称之为单幅图像的超分辨率(single image super resolution,SISR)。
    Video SR。参考多幅图像或多个视频帧的超分辨率技术,称之为多帧视频/多图的超分辨率(multi-frame super resolution)。对于video SR,其核心思想就是用时间带宽换取空间分辨率。简单来讲,就是在无法得到一张超高分辨率的图像时,可以多取相邻几帧,然后将这一系列低分辨率的图像组成一张高分辨的图像。
    一般来讲Video SR相比于Image SR具有更多的可参考信息,并具有更好的高分辨率视频图像的重建质量,但是其更高的计算复杂度也限制了其应用。
    通常包括两个步骤:首先图像配准,即估计低分辨率图像之间亚像素级别的相对位移;其次图像融合,将多幅低分辨率图像融合成一幅高分辨率图像。

    4、超分辨率重建技术与图像复原技术区别与联系?

    超分辨率重建过程中,由于低分辨率图像序列往往受光学模糊、运动模糊、噪声以及混叠因素的影响,所以超分辨率重建技术涵盖图像复原技术。二者的区别是图像复原技术是在不改变图像尺寸的情况下恢复一幅图像,所以图像复原技术和图像超分辨率重建具有相当紧密的联系,可认为图像超分辨率重建是在理论上的第二代图像复原问题。研究图像超分辨率重建技术一方面具有重要的理论意义,推动图像复原技术的进一步发展;另一方面具有重要的实践意义,克服光学成像系统硬件方面的局限性,某些场合下仍然可以继续使用原有的低分辨率成像系统,在较小数据量传输的情况下,获得满足特定分辨率要求的图像。

    5、SR常用的评价指标

    有两种,一种是PSNR(峰值信噪比),另一种是SSIM(结构相似性评价),这两种评价指标是SR中最基础的测量被压缩的重构图像质量的指标。

    (1)PSNR——峰值信噪比 Peak Signal-to-Noise Ratio
    PSNR是信号的最大功率和信号噪声功率之比,来测量已经被压缩的重构图像的质量,通常以分贝(dB)来表示。PSNR指标越高,说明图像质量越好。
    P S N R = 10 ∗ log ⁡ 10 ( M A X I 2 M S E ) = 20 ∗ log ⁡ 10 ( M A X I M S E ) PSNR=10*\log_{10}(\frac{MAX_I^2}{MSE})=20*\log_{10}(\frac{MAX_I}{\sqrt {MSE}}) PSNR=10log10(MSEMAXI2)=20log10(MSE MAXI)
    其中,MAXI 表示的是图像中像素值中的最大值,MSE 表示的两个图像之间对应像素之间差值的平方的均值,单通道图像的MSE可以表示为如下公式:

    M S E = 1 M ∗ N ∑ i = 1 N ∑ j = 1 M ( f i j − f i j ′ ) 2 MSE=\frac{1}{M*N} \sum_{i=1}^N \sum_{j=1}^M (f_{ij}-f'_{ij})^2 MSE=MN1i=1Nj=1M(fijfij)2

    多通道(C通道)图像的MSE可以表示为如下公式:

    M S E = 1 C ∗ M ∗ N ∑ k = 1 C ∑ i = 1 N ∑ j = 1 M ( f i j k − f i j k ′ ) 2 MSE=\frac{1}{C*M*N} \sum_{k=1}^C \sum_{i=1}^N \sum_{j=1}^M (f_{ijk}-f'_{ijk})^2 MSE=CMN1k=1Ci=1Nj=1M(fijkfijk)2

    (2)SSIM——结构相似性评价 Structural Similarity Index
    SSIM是衡量两幅图像相似度的指标,其取值范围为[0,1],SSIM的值越大,表示图像失真程度越小,说明图像质量越好。
    话不多说,先把SSIM的公式放上:
    L ( X , Y ) = 2 μ X μ Y + C 1 μ X 2 + μ Y 2 + C 1 L(X,Y)=\frac{2\mu_X\mu_Y+C_1}{\mu_X^2+\mu_Y^2+C_1} L(X,Y)=μX2+μY2+C12μXμY+C1

    C ( X , Y ) = 2 σ X σ Y + C 2 σ X 2 + σ Y 2 + C 2 C(X,Y)=\frac{2\sigma_X\sigma_Y+C_2}{\sigma_X^2+\sigma_Y^2+C_2} C(X,Y)=σX2+σY2+C22σXσY+C2

    S ( X , Y ) = σ X Y + C 3 σ X σ Y + C 3 S(X,Y)=\frac{\sigma_{XY}+C_3}{\sigma_X\sigma_Y+C_3} S(X,Y)=σXσY+C3σXY+C3

    S S I M ( X , Y ) = L ( X , Y ) ∗ C ( X , Y ) ∗ S ( X , Y ) SSIM(X,Y)=L(X,Y)*C(X,Y)*S(X,Y) SSIM(X,Y)=L(X,Y)C(X,Y)S(X,Y)

    其中,μX 和μY 为图像X,图像Y的像素的均值,σX 和σY 为图像X,图像Y的像素的标准值,σ XY代表图像X和图像Y的协方差。
    此外,C1 ,C2和C3是常数,C1=(K1 * L)2,C2=(K2 * L)2,C3=1/2C3
    ,一般的,K1=0.01,K2 = 0.03 ,L = 255 。

    在实际操作中,对于求得图像像素的均值、方差和标准差,可以用高斯函数计算图像参数,可以保证更高的效率。同时,我们可以用平均结构相似性评价指标MSSIM来代替结构相似性评价指标SSIM。
    平均结构相似性评价指标MSSIM:利用滑动窗将图像分块,令分块总数为N,采用高斯加权计算每一窗口的均值、方差和协方差,计算对应块的结构相似度SSIM,取平均值。
    M S S I M ( X , Y ) = 1 N ∑ k = 1 N S S I M ( X k , Y k ) MSSIM(X,Y)=\frac{1}{N} \sum_{k=1}^{N} SSIM(X_k,Y_k) MSSIM(X,Y)=N1k=1NSSIM(Xk,Yk)

    我们对于图像重构质量的评价指标还有其他许多种,但是我们也要思考的是真的是评价指标的高低和我们人眼看到的优劣是一致的么?除了这些常用评价指标外还有没有其他的指标可以衡量图像重构的质量。

    基于重建的方法

    通常都是基于多帧图像的,需要结合先验知识。有如下方法:

    • 凸集投影法(POCS)
    • 贝叶斯分析方法
    • 迭代反投影法(IBP)
    • 最大后验概率方法
    • 正规化法
    • 混合方法

    基于学习的图像超分辨率

    机器学习领域(非深度学习邻域)的图像超分方法如下:

    • Example-based方法
    • 邻域嵌入方法
    • 支持向量回归方法
    • 虚幻脸
    • 稀疏表示法

    基于深度学习的图像超分辨率重建技术

    基于深度学习的图像超分辨率重建的研究流程如下:

    • 1,首先找到一组原始图像Image1;
    • 2,然后将这组图片降低分辨率为一组图像Image2;
    • 3,通过各种神经网络结构,将Image2超分辨率重建为Image3(Image3和Image1分辨率一样)
    • 4,通过PSNR等方法比较Image1与Image3,验证超分辨率重建的效果,根据效果调节神经网络中的节点模型和参数
    • 5,反复执行,直到第四步比较的结果满意
    展开全文
  • 图像超分辨率重建原理学习

    千次阅读 多人点赞 2020-02-15 12:44:06
    传统的图像超分辨率重建技术简介 基于插值的图像超分 基于重建的图像超分辨率 基于学习的图像超分辨率 基于深度学习的图像超分辨率重建技术 两种常用的评价超分的指标——PSNR和SSIM SRCNN(Super-Res...

    原文链接:https://blog.csdn.net/gwplovekimi/article/details/83041627

    目录

    超分辨率(Super Resolution,SR)

    传统的图像超分辨率重建技术简介

    基于插值的图像超分

    基于重建的图像超分辨率

    基于学习的图像超分辨率

    基于深度学习的图像超分辨率重建技术

    两种常用的评价超分的指标——PSNR和SSIM

    SRCNN(Super-Resolution Convolutional Neural Network)

    FSRCNN(Fast Super-Resolution Convolutional Neural Networks)

    ESPCN(Efficient Sub-Pixel Convolutional Neural Network)

    VESPCN(Video Efficient Sub-Pixel Convolutional Neural Network)

    VDSR(VeryDeep Convolutional Networks)

    DRCN(Deeply-Recursive Convolutional Network)

    RED(very deep Residual Encoder-Decoder Networks)

    DRRN(Deep Recursive Residual Network)

    LapSRN(Laplacian PyramidSuper-Resolution Network)

    SRDenseNet

    SRGAN(SRResNet,super-resolution generative adversarial network)

    EDSR(enhanced deep super-resolution network)

    参考材料


     

    超分辨率(Super Resolution,SR)

    超分辨率是计算机视觉的一个经典应用。SR是指通过软件或硬件的方法,从观测到的低分辨率图像重建出相应的高分辨率图像(说白了就是提高分辨率),在监控设备、卫星图像遥感、数字高清、显微成像、视频编码通信、视频复原和医学影像等领域都有重要的应用价值。

    超分分为以下两种:

    • Image SR。只参考当前低分辨率图像,不依赖其他相关图像的超分辨率技术,称之为单幅图像的超分辨率(single image super resolution,SISR)。
    • Video SR。参考多幅图像或多个视频帧的超分辨率技术,称之为多帧视频/多图的超分辨率(multi-frame super resolution)。对于video SR,其核心思想就是用时间带宽换取空间分辨率。简单来讲,就是在无法得到一张超高分辨率的图像时,可以多取相邻几帧,然后将这一系列低分辨率的图像组成一张高分辨的图像。

    一般来讲Video SR相比于Image SR具有更多的可参考信息,并具有更好的高分辨率视频图像的重建质量,但是其更高的计算复杂度也限制了其应用。本博文主要介绍SISR。SISR是一个逆问题,对于一个低分辨率图像,可能存在许多不同的高分辨率图像与之对应,因此通常在求解高分辨率图像时会加一个先验信息进行规范化约束。在传统的方法中,这个先验信息可以通过若干成对出现的低-高分辨率图像的实例中学到。而基于深度学习的SR通过神经网络直接学习分辨率图像到高分辨率图像的端到端的映射函数。

     

    传统的图像超分辨率重建技术简介

    基于插值的图像超分

          通过某个点周围若干个已知点的值,以及周围点和此点的位置关系,根据一定的公式,算出此点的值,就是插值法。对于如何把原图像的点摆放在新图中并确定具体坐标;未知的点计算时,需要周围多少个点参与,公式如何,如何计算,不同的方案选择,就是不同的插值算法。图像处理中,常用的插值算法有:最邻近元法,双线性内插法,三次内插法等等。

    例如:现有一张分辨率为3 x 2的图片,原图每个像素点的亮度值是:

    我们要把它变成分辨率为6 x 4的图片,把这6个已经知道的点,放在他们大概应该在新图的位置:

    那么我们已经知道6 x 4新图中6个已知的点(绿色),下面只需要求剩余18个点(蓝色)的值即可。通过某个点周围若干个已知点的值,以及周围点和此点的位置关系,根据一定的公式,算出此点的值,就是插值法。如何把原图像的点摆放在新图中(确定具体坐标);未知的点计算时,需要周围多少个点参与,公式如何。不同的方案选择,就是不同的插值算法。图像处理中,常用的插值算法有:最邻近元法,双线性内插法,三次内插法等等。但是实际上,通过这些插值算法,提升的图像细节有限,所以使用较少。通常,通过多幅图像之间的插值算法来重建是一个手段。另外,在视频超分辨重建中,通过在两个相邻帧间插值添加新帧的手段,可以提升视频帧率,减少画面顿挫感。

    基于重建的图像超分辨率

    基于重建的方法通常都是基于多帧图像的,需要结合先验知识。有如下方法:

    • 凸集投影法(POCS)

    • 贝叶斯分析方法

    • 迭代反投影法(IBP)

    • 最大后验概率方法

    • 正规化法

    • 混合方法

    基于学习的图像超分辨率

    机器学习领域(非深度学习邻域)的图像超分方法如下:

    • Example-based方法

    • 邻域嵌入方法

    • 支持向量回归方法

    • 虚幻脸

    • 稀疏表示法

     

    基于深度学习的图像超分辨率重建技术

    基于深度学习的图像超分辨率重建的研究流程如下:

    1,首先找到一组原始图像Image1;

    2,然后将这组图片降低分辨率为一组图像Image2;

    3,通过各种神经网络结构,将Image2超分辨率重建为Image3(Image3和Image1分辨率一样)

    4,通过PSNR等方法比较Image1与Image3,验证超分辨率重建的效果,根据效果调节神经网络中的节点模型和参数

    5,反复执行,直到第四步比较的结果满意

     

    两种常用的评价超分的指标——PSNR和SSIM

    对SR的质量进行定量评价常用的两个指标是PSNR(Peak Signal-to-Noise Ratio)和SSIM(Structure Similarity Index)。这两个值越高代表重建结果的像素值和标准越接近。

    1、PSNR(Peak Signal to Noise Ratio)峰值信噪比:

    MSE表示当前图像X和参考图像Y的均方误差(Mean Square Error),H、W分别为图像的高度和宽度

    PSNR的单位是db,数值越大表示失真越小。n为每像素的比特数,一般的灰度图像取8,即像素灰阶数为256. 

     

    SRCNN(Super-Resolution Convolutional Neural Network)

    (Learning a Deep Convolutional Network for Image Super-Resolution, ECCV2014)

    code: http://mmlab.ie.cuhk.edu.hk/projects/SRCNN.html

    传统的SR方法都是学习compact dictionary or manifold space to relate low/high-resolution patches。

    SRCNN是深度学习在图像超分辨率重建上的开山之作,通过采用卷积神经网络来实现低分辨率到高分辨率图像之间端到端的映射。网络的结构如下图所示:

    对于一个低分辨率得图像,首先采用双三次插值(bicubic)将低分辨率图像放大成目标尺寸,接着通过三层卷积网络拟合非线性映射,最后输出高分辨率图像结果。在文种,作者将三层卷积的结构解释成三个步骤:图像块的提取和特征表示,特征非线性映射和最终的重建。三个卷积层使用的卷积核的大小分为为9x9,,1x1和5x5,前两个的输出特征个数分别为64和32。用Timofte数据集(包含91幅图像)和ImageNet大数据集进行训练。使用均方误差(Mean Squared Error, MSE)作为损失函数,有利于获得较高的PSNR。

    SRCNN的流程为:

    step1:图像块提取(Patch extraction and representation)。先将低分辨率图像使用双三次(实际上,bicubic也是一个卷积的操作,可以通过卷积神经网络实现)插值放大至目标尺寸(如放大至2倍、3倍、4倍,属于预处理阶段),此时仍然称放大至目标尺寸后的图像为低分辨率图像(Low-resolution image),即图中的输入(input)。从低分辨率输入图像中提取图像块,组成高维的特征图。

    其中,W1和B1为超参。激活函数采样ReLu

    step2:非线性映射(Non-linear mapping)。第一层卷积:卷积核尺寸9×9(ff1),卷积核数目64(n1),输出64张特征图;第二层卷积:卷积核尺寸1×1(ff2),卷积核数目32(n2),输出32张特征图;这个过程实现两个高维特征向量的非线性映射;

    W2为n1*1*1*n2。采用了1*1卷积(single convolutional layer,目的应该是压缩feature map的深度,同时也起到非线性映射的作用)。

    step3:重建(Reconstruction)。第三层卷积:卷积核尺寸5×5(ff3),卷积核数目1(n3),输出1张特征图即为最终重建高分辨率图像;

    模型参数结构如下:

    • 第一层卷积:卷积核尺寸9×9(f1×f1),卷积核数目64(n1),输出64张特征图;
    • 第二层卷积:卷积核尺寸1×1(f2×f2),卷积核数目32(n2),输出32张特征图;
    • 第三层卷积:卷积核尺寸5×5(f3×f3),卷积核数目1(n3),输出1张特征图即为最终重建高分辨率图像。

    LOSS function(Mean Squared Error (MSE))。估计超参为重构的结果,为ground truth。Using MSE as the loss function favors a high PSNR.

    下面是SRCNN与传统算法得结果对比

    SRCNN的本质就是用了深度卷积网络实现了稀疏编码的方法。只不过稀疏编码的参数需要人工优化,而且能优化的参数有限。但是SRCNN能根据输入的训练集自动优化学习所有参数。因此效果比以前的方法要好。

     

    FSRCNN(Fast Super-Resolution Convolutional Neural Networks)

    (Accelerating the Super-Resolution Convolutional Neural Network, ECCV2016)

    code: http://mmlab.ie.cuhk.edu.hk/projects/FSRCNN.htmlhttp://

    对于一幅240*240的图片,要放大三倍,SRCNN的速度为1.32fps(而实际要求起码要到24fps)

    FSRCNN是对SRCNN的改进(主要起到加速的作用,40times)。改进结果体现在非常快的处理速度上和稍稍提高的输出质量。其主要贡献有三点:

    1. 在最后使用了一个反卷积层(deconvolution layer)放大尺寸(并将反卷积层放于最后,可以缩少计算时间),因此可以将原始的低分辨率图像直接输出到网络中,不需要先通过bicubic interpolation方法放大尺寸,直接对低分辨率图像进行处理(去掉预处理阶段,可以大大提升速度);
    2. 非线性映射部分也十分耗费计算时间(通过shrink the network scale来提高实时性)。改变特征维数,更小的卷积核,更多的映射层;在映射前缩少输入特征的维数,然后再扩展;
    3. 可共享其中的卷积层,如需训练不同上采样倍率的模型,只需fine-tuning最后的反卷积层。only need to do convolution operations once, and upsample an image to different scales using the corresponding deconvolution layer.

    由于FSRCNN不需要在网络外部进行放大图像尺寸(小的图片尺寸可以降低训练时间),同时用一些小的卷积层来代替SRCNN中的大卷积层,因此速度上FSRCNN有较大的提升。且如果仅仅需要FSRCNN得到不同分辨率的图片,只需单独训练反卷积层即可,更加省时,不需要重新训练整个网络。SRCNN与FSRCNN的网络结构对比如下图所示:

    FSRCNN分为五个步骤(每个卷积层的激活函数采用PReLU):

    step1:特征的提取(feature extraction)。SRCNN中针对的是插值后的低分辨率图像,选取的核大小为9×9。而FSRCNN是直接是对原始的低分辨率图像进行操作,因此可以选小一点,设置为5×5。

    step2:收缩(shrinking)。在SRCNN中,特征提取完就进行非线性映射,但当feature map的深度较大时,计算复杂度较高。故此在FSRCNN中,通过应用1×1的卷积核进行降维,减少网络的参数(降低深度),降低计算复杂度。

    step3:非线性映射(mapping,The non-linear mapping step is the most important part that affects the SR performance,主要体现在每一层的滤波器数目,以及层数(也即是深度))。感受野大,能够表现的更好。在SRCNN中,采用的是5×5的卷积核,但是5×5的卷积核计算量会比较大。用两个串联的3×3的卷积核可以替代一个5×5的卷积核,同时两个串联的小卷积核需要的参数3×3×2=18比一个大卷积核5×5=25的参数要小。FSRCNN网络中通过m个核大小为3×3的卷积层进行串联。

    step4:扩张(expanding)。作者发现低维度的特征带来的重建效果不是太好,因此应用1×1的卷积核进行扩维,相当于收缩的逆过程(用1*1的卷积核进行扩张,增加深度)。

    step5:反卷积层(deconvolution,卷积层的逆操作)。如果步长为n,那么尺寸放大n倍,实现了上采样的操作。

    For convolution, the filter is convolved with the image with a stride k, and the output is 1=k times of the input. Contrarily, if we exchange the position of the input and output, the output will be k times of the input。如下图所示

    卷积与反卷积的示意:

    整个结构为:

    loss function 跟SRCNN一样

    结果对比如下:

     

    ESPCN(Efficient Sub-Pixel Convolutional Neural Network)

    (Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network, CVPR2016)

    github(tensorflow): https://github.com/drakelevy/ESPCN-TensorFlowhttps://

    github(pytorch): https://github.com/leftthomas/ESPCNhttps://

    github(caffe): https://github.com/wangxuewen99/Super-Resolution/tree/master/ESPCNhttps://

    (本文同时实现了video和image的超分)

    本文的作者提到:对于类似于SRCNN的方法,由于需要将低分辨率图像通过上采样插值得到与高分辨率图像相同大小的尺寸,再输入到网络中,这意味着要在交大的尺寸上进行卷积操作,从而增加了计算复杂度。为此本文作者提出了一种直接在低分辨率图像尺寸上提取特征,计算得到高分辨率图像的高效方法(efficient sub-pixel convolution layer 来代替插值处理)。ESPCN网络结构如下图所示。

    ESPCN的核心概念是亚像素卷积层(sub-pixel convolutional layer)。网络的输入是原始低分辨率的图像,经过三个CONV后,得到通道数为 r^{2} 的与输入图像大小一样的特征图像。再将特征图像每个像素的 r^{2} 个通道重新排列成一个 \[r \times r\] 的区域,对应高分辨率图像中一个 \[r \times r\] 大小的子块,从而大小为 \[H \times W \times {r^2}\] 的特征图像被重新排列成 \[rH \times rW \times 1\] 的高分辨率图像(理解如下图所示)。而图像尺寸放大过程的插值函数被隐含地包含在前面的卷积层中,有神经网络自己学习到。由于卷积运算都是在低分辨率图像尺寸大小上进行,因此效率会较高。

    其效果如下图所示:

    (对 1080 HD 格式的视频进行3倍放大,SRCNN 每帧需要0.435s,而 ESPCN 则只需0.038s)

     

    VESPCN(Video Efficient Sub-Pixel Convolutional Neural Network)

    Real-Time Video Super-Resolution with Spatio-Temporal Networks and Motion Compensation,CVPR2017)

    STN(Spatial Transform Networks, STN

           CNN分类时,通常需要考虑输入样本的局部性、平移不变性、缩小不变性,旋转不变性等,以提高分类的准确度。而实现这些不变性的传统方法实际上就是对图像进行空间坐标变换,我们所熟悉的一种空间变换就是仿射变换,图像的仿射变换公式可以表示如下:

    式中,表示原图像像素点,表示仿射变换后的图像像素点。系数矩阵θ即为仿射变换系数,可以通过调整系数矩阵θ,实现图像的放大、缩小、平移、旋转等。

           而STN网络提出了一种叫做空间变换网络的模型,该网络不需要关键点的标定,能够根据分类或者其它任务自适应地将数据进行空间变换和对齐(包括平移、缩放、旋转以及其它几何变换等)。在输入数据空间差异较大的情况下,这个网络可以加在现有的卷积网络中,提高分类的准确性。该空间变换网络包括三个部分,网络结构如下图所示:

    Localisation Network——该网络就是一个简单的回归网络。将输入的图片进行几个卷积操作,然后全连接回归出6个角度值(假设是仿射变换),2*3的矩阵。

    Grid generator——网格生成器负责将V中的坐标位置,通过矩阵运算,计算出目标图V中的每个位置对应原图U中的坐标位置。即生成T(G)

    Sampler——采样器根据T(G)中的坐标信息,在原始图U中进行采样,将U中的像素复制到目标图V中。

    简而言之,STN网络首先通过一个简单的回归网络生成6个θ,用以进行原图的仿射变换。然后依据θ矩阵,将目标图上每个点与原图进行对应。最后使用采样器,将原图上的像素值采样到目标图中。流程如下图:

    但是,在VESPCN中,并不按照这个变换顺序。作者使用一个近10层的卷积网络,计算整一张输入图片的光流。即直接实现了STN网络中的第二部分,然后再利用二次插值进行采样操作。作者同样将这个操作称为Spatial Transform。

    好,介绍完STN后,正式介绍VESPCN。

    在视频图像的SR问题中,相邻几帧间具有很强的关联性。VESPCN(属于video超分)提出使用视频中的时间序列图像进行高分辨率重建(可以达到实时性处理)。算法主要包括以下三个方面:

    step 1:纠正相邻帧的位移偏差,先通过Motion estimation(动作补偿,可采用光流法)估计出位移,然后利用位移参数对相邻帧进行空间变换,将二者对齐;

    step 2:把对齐后的相邻若干帧叠放在一起,当作一个三维数据;在低分辨率的三维数据上使用三维卷积,得到的结果大小为\[H \times W \times {r^2}\]

    step 3:采用ESPCN,将特征图像被重新排列成\[rH \times rW \times 1\]的高分辨率图像;

    VESPCN的网络结构如下图所示

    VESPCN主要分为两块:相邻帧之间的位移估计和SR重建,两者都通过神经网络来实现(Spatio-temporal networks & Subpixel convolution SR)。SR重建采用的就是上面介绍的ESPCN。下面介绍一下动作补偿

    Motion estimation这个过程可以通过传统的光流算法来计算,VESPCN使用了STN网络进行动作补偿(其框架如下图所示)。Spatial Transformer Networks, 通过CNN来估计空间变换参数。首先通过初始的两帧(低的分辨率上)估计粗糙的光流,并生成粗糙的目标帧,这两个再与原始的两个帧插值(高的分辨率)输入网络,得到精细的光流。精细的光流和粗糙光流一起得到最后的帧。输出使用tanh激活层。

    具体来说,在VESPCN中,是利用video前后两帧图像的信息来进行高分辨率的重建,然而在视频序列中,前后两帧中的场景与物体会发生(微小)的位移,因此在SR前,要先对两帧图像进行“对齐”。“对齐”的过程可以看作是对图像做仿射变换的过程,图片并不是只通过平移就可以“对齐”,还要进行旋转、缩放等操作。因此作者借鉴了STN网络和光流的思想,使用动作补偿网络来实现两帧图片的对齐功能。具体步骤如下:

    • 代表前后两帧图片,首先将它们进行堆叠(即在第三维上拼接),后通过一个6层的卷积网络(如下图)得到长宽与原图相同,通道数为2的一张feature map,即图中的∆c(代表其x方向分量),称为粗糙光流。

    • Warp是STN网络的步骤,即利用得到的光流图对进行仿射变换(对齐)得到。这样做得到的动作补偿仍然达不到理想要求。因此还要计算精细光流。
    • 将原图的前后两帧()、粗糙光流、经过首次warp之后得到的图片(即),三张图进行堆叠,使用一个6层的卷积网络(上图)计算得到一张通道数为2的精细光流。
    • 将粗糙光流图与精细光流图相加,得到联合光流图(图中)。再利用联合光流图对进行仿射变换,即使用STN。得到最终的经过动作补偿后的

    loss function

    损失函数由三个部分组成:

    1. 高分辨率输出图MSE损失 (ESPCN网络的损失函数)

    2. [前一帧+当前]动作补偿图MSE损失 + Huber 损失 (光流与STN)

    3. [后一帧+当前]动作补偿图MSE损失 + Huber 损失 (光流与STN)

    图像融合

    Spatio-temporal networks可以处理输入为许多帧的情况,对于前中后三帧(多个帧)融合的方法有early fusion,slow fusion,3D convolution三种。其中3D convolution是slow fusion的权重共享的形式。如下图所示

    在VESPCN中使用的是early fusion方法,即在三张图片输入网络之前就进行堆叠。但是论文作者认为slow fusion在网络变深时效果才好于early fusion。

    结果展示:

     

    VDSR(VeryDeep Convolutional Networks)

    (Accurate Image Super-Resolution Using Very Deep Convolutional Networks, CVPR2016)

    code: https://cv.snu.ac.kr/research/VDSR/

    github(caffe): https://github.com/huangzehao/caffe-vdsrhttps://

    github(tensorflow): https://github.com/Jongchan/tensorflow-vdsrhttps://

    github(pytorch): https://github.com/twtygqyy/pytorch-vdsrhttps://

    VDSR是从SRCNN的基础上改进的网络。正如它的名字Very Deep Super-Resolution,其最大的结果特点就是层数很多。它的最终效果准确率非常地高,并且还比SRCNN快。作者认为SRCNN有三个缺点:

    1、学习的信息有限。

    SR是一个逆问题,解决SR问题是借助大量的学习信息得到结果。直观地认为,如果学习的数据越多,学习的上限越大,那么得到的准确性越高。在深度学习中,就是感受野越大,理论上得到的准确性越高。而SRCNN只有三层,得到感受野只有13*13,结果受限于那13*13个像素。

    2、收敛太慢。

    虽然SRCNN相比于当时其他的SR算法已经算快了,但在还是无法满足实际需求,SRCNN训练一个网络花了一星期之久,而SR的应用领域之非常多,要实现实际的应用,对算法收敛速度的提升是很有必要的。

    3、无法实现统一模型的多尺度方法。

    虽然放大倍数是在训练前认为设计的,但在生活中人们放大一张图可以是任意倍数的(包括小数)。SRCNN一个网络只能训练一个放大倍数,倘若对每一个倍数都训练一个SRCNN,那是不现实的。所以我们期望一种新的网络能实现不同倍数的超分辨。

    这三个缺点,也是作者针对SRCNN的改进方向,最终创造一种多层网络能优化以上缺点,命名为VDSR。

    对于超分的问题,实际上,输入的低分辨率图像与输出的高分辨率图像在很大程度上是相似的。也就是,低分辨率图像的低频信息与高分辨率图像的低频信息相近。那么实际上,低分辨率图片与高分辨率图片只是缺乏高频部分的残差,若训练的时候,仅仅训练高分辨率和低分辨率之间的高频残差部分,那么就不需要在低频部分花太多的时间。为此,作者引入了ResNet的思想(参见博文:学习笔记之——基于深度学习的分类网络(未完待续))输出的结果=低分辨率输入(经过插值变成目标尺寸的低分辨率图像)+网络学习到的残差。残差网络结构的思想特别适合用来解决超分辨率问题,可以说影响了之后的深度学习超分辨率方法。VDSR是最直接明显的学习残差的结构,其网络结构如下图所示

    VDSR的改进:

    1.加深了网络结构(20层),使得越深的网络层拥有更大的感受野。文章选取3×3的卷积核,深度为D的网络拥有(2D+1)×(2D+1)的感受野。

    本文的作者认为多层网络对提高SR的准确性非常有帮助,原因有两个:(i)多层网络能获得非常大的感受野理论上,感受野越大,学习的信息越多,准确率越大。对于一个m层全卷积网络,如果每层的过滤器大小(假设长和宽相等)是fi,那么用数学归纳法最终得到的感受野为当m=20,fi=3。得到的感受野为(20*3+1-20)* (20*3+1-20),即为41*41。(ii)多层网络能现实复杂的非线性映射,如下图所示,为层数对VDSR的效果影响,可以看出层数越多,效果越好

    但太多层网络也有不好的地方。首先是多层网络的收敛问题,SRCNN层提出4层的网络,但训练了一星期得出的结果不好。作者认为这是由于4层SRCNN的收敛速度低和收敛稳定不好而导致的。为了解决收敛问题,作者采用了残差学习和自适应梯度剪切的方法。

    2.采用残差学习,残差图像比较稀疏,大部分值都为0或者比较小,因此收敛速度快。VDSR还应用了自适应梯度裁剪(Adjustable Gradient Clipping),将梯度限制在某一范围,也能够加快收敛过程。与此同时再采用高学习率。

    残差学习

    由于输入图像和输出图像有着高度的相似性(高分率图像可以看出是低分辨率图像+高分率图像的信息)。所以我们可以改用学习输出与输入的残差(即高分辨率的特征)取代直接学习全部(高分辨率的特征+低分辨率的特征)。输入图像是x,f(x)是经过学习得到的残差,r=y-x是实际的残差。那么损失函数为,当损失函数够小时,f(x)+x就能逼近y了。残差学习能提高收敛速度,因为只需学习高分辨率的特征。从上面网络结构图中的特征图上可以看到,很多是空的,残差学习只学习了高分辨率的特征。下图为用残差学习和不用残差学习的算法比较。可以看到残差学习(蓝色的线)的学习速度非常的快(Epochs很小的时候就收敛了)

    上图中为VDSR的论文原图,作者用VDSR(使用残差学习)和另外一个不用残差学习的网络比较。但这可能并非严格的控制变量法,论文的描述为“Performance curve for residual and non-residual networks.”VDSR除了使用残差学习,还用了多层网络、自适应梯度剪切、高学习率等技巧。如果拿VDSR和SRCNN比较,并不能说明残差学习的优越。

    自适应梯度剪切

    由于链式法则的计算,当网络的层数非常多时,经常出现梯度消失或者梯度爆炸的现象。体现在图像,就是损失函数有一个悬崖式的变化。如果设置的学习率太大,那么可能出现修改过度,甚至丢失已经优化好的数据。而自适应梯度剪切就是根据你的学习率,调整梯度的角度,确保收敛的稳定性。

    高学习率

    提高收敛速度的最直接方式就是增大学习率,但单纯的增大高学习率会产生收敛问题(收敛不稳定),虽然作者已经用了自适应梯度剪切的方法来增大收敛稳定性。但作者在设置学习率时,也能使用一下技巧来增强收敛稳定性。具体的做法是,一开始设置一个很大的学习率(CDSR简单地令每层的学习率相同),每过20个epochs,将学习率缩小十倍。这么做的原理也很直观,一开始训练时网络损失函数还较大,能够大胆地用高学习率来缩短收敛时间,随着训练次数得增多,模型趋向收敛,如果继续用高学习率,就会破坏收敛稳定性,所以改用小学习率,确保网络收敛。这么多次缩小学习率,进一步缩小了收敛时间。

    3.对于采用非常深的网络来预测输出,会导致每一次进行卷积运算,feature map的大小都会减少,这样甚至会造成高清新图像的尺寸会比低分辨图像的尺寸小。这与其他超分辨率方法是一致的,因为许多方法需要周围的像素来正确地推断中心像素。这个中心环绕关系是有用的,因为周围区域为这个超分辨率这个病态问题提供了更多的约束。对于图像边界附近的像素影响最大,因为边界像素与周边像素的关系最强,随着尺度变小,周边像素的影响力减小,对边界像素的学习不是好事。许多SR方法对结果图像进行裁剪。然而,如果所需的环绕区域非常大,这种方法就无效了。裁剪后,最终的图像太小,无法达到视觉效果。为了解决这个问题,VDSR在每次卷积前都对图像进行补0操作,这样保证了所有的特征图和最终的输出图像在尺寸上都保持一致,解决了图像通过逐步卷积会越来越小的问题,又突出了边界像素的特征。文中说实验证明补0操作对边界像素的预测结果也能够得到提升。

    4.多尺度学习。VDSR将不同尺度的图像混合在一起训练,这样训练出来的一个模型就可以解决不同倍数的超分辨率问题(同一个模型学习多个尺度的放大)。那么就不存在SRCNN中网络只适用于单一规模的问题了。

    可以根据实验结果得出几点结论。

    1. 对于低倍数图像,用多尺度训练的网络几乎和用单尺度训练的网络一样
    2. 对于高倍数图像,采用多尺度训练的效果比采用单尺度训练的网络的效果好

    原因是高倍数放大和低倍数放大有相似之处,它们间可以互相学习,尤其是高倍数的放大,能从低倍数放大的学习中额外获得新的信息,从而导致对于高倍数图像,采用多尺度训练的网络比采用单尺度训练的网络好。

     

    VDSR之后,几乎所有的网络都借鉴了其学习残差的思想,原因在下图的效果图里就可以看出来

    结果对比如下图所示:

    DRCN(Deeply-Recursive Convolutional Network)

    (Deeply-Recursive Convolutional Network for Image Super-Resolution, CVPR2016)

    code: https://cv.snu.ac.kr/research/DRCN/

    githug(tensorflow): https://github.com/jiny2001/deeply-recursive-cnn-tfhttps://

    DRCN与上面的VDSR都是来自首尔国立大学计算机视觉实验室的工作,两篇论文都发表在CVPR2016上,两种方法的结果非常接近。其贡献主要如下:

    1、将RNN(递归神经网络,Recursive Neural Network)的结构应用于SR中。RNN用于非线性映射时,通过RNN,数据循环多次地通过该层,而将这个RNN展开的话,就等效于使用同一组参数的多个串联的卷积层;

    2、利用了ResNet的思想,加入了skip-connection,加深了网络结构(16个递归),增加了网络感受野,提升了性能。DRCN网络结构如下图所示:

    DRCN输入的是插值后的图像,分为三个模块,第一个是Embedding network,相当于特征提取,第二个是Inference network, 相当于特征的非线性映射,第三个是Reconstruction network,即从特征图像恢复最后的重建结果。其中的Inference network是一个递归网络,即数据循环地通过该层多次。将这个循环进行展开,等效于使用同一组参数的多个串联的卷积层,如下图所示。

    其中的  到  是D个共享参数的卷积层。将这D个卷积层的每一层的结果都通过相同的Reconstruction Net,在Reconstruction Net中与输入的图像相加,得到D个输出重建结果。这些所有的结果在训练时都同时被监督,即所有的递归都被监督,作者称之为递归监督(Recursive-Supervision),避免了梯度消失/爆炸问题。将D个递归得到的结果再加权平均:,得到一个总输出。每个加权在训练的过程中也不断地更新。最终的目标函数就需要优化每一个递归层输出的误差和总输出的误差:

    表示的是权值衰减(weight decay)。 的初始值设置得比较高以使得训练过程稳定,因为训练开始的阶段递归更容易收敛。随着训练的进行,  逐渐衰减来提升最终输出的性能。

    结果对比如下所示:

    RED(very deep Residual Encoder-Decoder Networks)

    (Image Restoration Using Convolutional Auto-encoders with Symmetric Skip Connections, NIPS2016)

    这篇论文提出了一个由对称的卷积层——反卷积层构成的网络结构,如下图所示(可以看作为ResNet+VDSR):

    卷积层——反卷积层结构有点类似与编码——解码结构。其网络结构是对称的,每个卷积层都对应有反卷积层,卷积层将输入图像尺寸减小后,再通过反卷积层上采样变大,使得输入输出的尺寸一样。卷积层用于提取图像的特征,相当于编码的作用。而反卷积层用于放大特征的尺寸并恢复图像细节。而每一组镜像对应的卷积和反卷积有skip connection将两部分具有同样尺寸的特征(要输入卷积层的特征和对应的反卷积层输出的特征)做相加操作(ResNet那样的操作)后再输入到下一个反卷积层。这样的结构能够让反向传播信号能够直接传递到底层,解决了梯度消失问题,同时能将卷积层的细节传递给反卷积层,能够恢复出更干净的图片。与此同时,网络中有一条线是将输入的图像连接到后面与最后的一层反卷积层的输出相加,也就是VDSR中用到的方式,因此RED中间的卷积层和反卷积层学习的特征是目标图像和低质图像之间的残差。(个人理解如下图所示)

    结果如下图所示:

    DRRN(Deep Recursive Residual Network)

    (Image Super-Resolution via Deep Recursive Residual Network, CVPR2017)

    github(caffe): https://github.com/tyshiwo/DRRN_CVPR17

    可以看作:ResNet+VDSR+DRCN

    DRRN中的每个残差单元都共同拥有一个相同的输入,即递归块中的第一个卷积层的输出。每个残差单元都包含2个卷积层。在一个递归块内,每个残差单元内对应位置相同的卷积层参数都共享(图中DRRN的浅绿色块或浅红色块)。作者列出了ResNet、VDSR、DRCN和DRRN四者的主要策略。ResNet是链模式的局部残差学习。VDSR是全局残差学习。DRCN是全局残差学习+单权重的递归学习+多目标优化。DRRN是多路径模式的局部残差学习+全局残差学习+多权重的递归学习。

    文章中比较了不同的递归块和残差单元数量的实验结果,最终选用的是1个递归块和25个残差单元,深度为52层的网络结构。总之,DRRN就是通过对之前已有的ResNet等结构进行调整,采取更深的网络结构得到结果的提升。

    结果对比如下图所示:

    LapSRN(Laplacian PyramidSuper-Resolution Network)

    (Deep Laplacian Pyramid Networks for Fast and Accurate Super-Resolution, CVPR2017)

    github(matconvnet): https://github.com/phoenix104104/LapSRN

    github(pytorch): https://github.com/twtygqyy/pytorch-LapSRNhttps:/

    github(tensorflow): https://github.com/zjuela/LapSRN-tensorflowhttps:/

    作者总结了之前的基于深度学习的SR方法,主要有以下三个缺点:

    1、关于上采样的问题。

    • 基于预处理的上采样。使用预先定义好的上采样操作(如bicubic操作)来获得目标的空间尺寸,这样做增加了额外的计算开销,且会导致重建伪影;
    • 基于亚像素卷积层(ESPCN)或反卷积层(FSRCNN)。这些方法的网络结构又相对比较简单,性能较差,并不能学好低分辨率图像到高分辨率图像复杂的映射;

    2、在训练网络时使用 l_{2} 型损失函数时,不可避免地会产生模糊的预测,恢复出的高分辨率图片往往会太过于平滑;

    3、在重建高分辨率图像时,如果只用一次上采样的操作,在获得大倍数(8倍以上)的上采样因子时就会比较困难。而且在不同的应用时,需要训练不同上采样倍数的模型。

    因此作者提出了Lap SRN网络结构,其结构如下图所示

    LapSRN可以看成由多级组成的分级网络,每一级完成一次2倍的上采样(若要实现8倍,就要3级)。在每一级中,先通过一些级联的卷积层提取特征,接着通过一个反卷积层将提取出的特征的尺寸上采样2倍。反卷积层后连有两个卷积层,一个卷积层的作用是继续提取特征,另外一个卷积层的作用是预测出这一级的残差。输入图像在每一级也经过一个反卷积层使尺寸上采样2倍,再与对应级的残差相加,就能重构出这一级的上采样结果。(个人理解的图示如下)

    结果对比如下图所示:

     

    SRDenseNet

    (Image Super-Resolution Using Dense Skip Connections, ICCV2017)

    DenseNet在稠密块(dense block)中将每一层的特征都输入给之后的所有层,使所有层的特征都串联起来,而不是像ResNet那样直接相加。这样的结构给整个网络带来了减轻梯度消失问题、加强特征传播、支持特征复用、减少参数数量的优点。一个稠密块的结构如下图所示。

    Dense Block是通过将许多个卷积网络分成3~4个部分,这些部分叫做dense block(有点类似于残差网络中的残差块)。在每个block中,都执行密集链接,block的输出再通过池化降低特征图尺寸。如下图所示:

    SRDenseNet将稠密块结构应用到了超分辨率问题上(在dense block上再加上skip connection),其结构可以分为四个部分:

    step 1:用一个卷积层学习低层的特征;

    step 2:用多个稠密块学习高层的特征;

    step 3:通过几个反卷积层进行上采样;

    step 4:最后再通过一个卷积层生成高分辨率输出;

    网络结构如下图所示

    结果对比如下图所示

     

    SRGAN(SRResNet,super-resolution generative adversarial network)

    (Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network, CVPR2017)

    github(tensorflow): https://github.com/zsdonghao/SRGANhttps://

    github(tensorflow): https://github.com/buriburisuri/SRGANhttps://

    github(torch): https://github.com/junhocho/SRGANhttps:/AN

    github(caffe): https://github.com/ShenghaiRong/caffe_srganhttps:///caffe_srgan

    github(tensorflow): https://github.com/brade31919/SRGAN-tensorflowhttps://RGAN-tensorflow

    github(keras): https://github.com/titu1994/Super-Resolution-using-Generative-Adversarial-Networkshttps://er-Resolution-using-Generative-Adversarial-Networks

    github(pytorch): https://github.com/ai-tor/PyTorch-SRGAN

    将生成对抗网络(Generative Adversarial Network, GAN)用在了超分辨率问题上。其出发点是传统的方法一般处理的是较小的放大倍数,当图像的放大倍数在4以上时,很容易使得到的结果显得过于平滑,而缺少一些细节上的真实感。因此SRGAN使用GAN来生成图像中的细节。

    关于GAN的理解如下图所示:

    传统的方法使用的代价函数一般是最小均方差(MSE),即:

    该代价函数使重建结果有较高的峰值信噪比,但是恢复出来的图像通常会丢失高频细节,出现过度平滑的纹理,使人不能有好的视觉感受。SRGAN的理念是:应当使重建的高分辨率图像与真实的高分辨率图像无论是低层次的像素值上,还是高层次的抽象特征上,和整体概念和风格上,都应当接近。MSE和GAN方法的区别如下图

    SRGAN利用感知损失(perceptual loss)和对抗损失(adversarial loss)来提升恢复出的图片的真实感。感知损失是利用卷积神经网络提取出的特征,通过比较生成图片经过卷积神经网络后的特征和目标图片经过卷积神经网络后的特征的差别,使生成图片和目标图片在语义和风格上更相似。简单来说,一个GAN所要完成的工作就是:G网通过低分辨率的图像生成高分辨率图像,由D网判断拿到的图像是由G网生成的,还是数据库中的原图像。当G网能成功骗过D网的时候,那我们就可以通过这个GAN完成超分辨率了。SRGAN网络结构如下图(SRGAN还是用SRRESNET来进行超分工作 但增加了一个对抗网络来判断生成的图片是原图还是超分出来的图):

    在生成网络部分(SRResNet)部分包含多个残差块,每个残差块中包含两个3×3的卷积层,卷积层后接批规范化层(batch normalization, BN)和PReLU作为激活函数,两个2×亚像素卷积层(sub-pixel convolution layers)被用来增大特征尺寸。在判别网络部分包含8个卷积层,随着网络层数加深,特征个数不断增加,特征尺寸不断减小,选取激活函数为LeakyReLU,最终通过两个全连接层和最终的sigmoid激活函数得到预测为自然图像的概率。

    SRGAN的损失函数为:

    第一部分是基于内容的代价函数(content loss),第二部分是基于对抗学习的代价函数(adversarial loss)。

    content loss可以是基于均方误差的损失的损失函数:

    也可以是基于训练好的以ReLU为激活函数的VGG模型的损失函数:

    i和j表示VGG19网络中第i个最大池化层(maxpooling)后的第j个卷积层得到的特征。然后,又对内容损失分别设置成基于均方误差、基于VGG模型低层特征和基于VGG模型高层特征三种情况作了比较,研究表明在基于均方误差的时候表现最差,基于VGG模型高层特征比基于VGG模型低层特征的内容损失能生成更好的纹理细节。

    adversarial loss为:

    结果对比如下

     

    EDSR(enhanced deep super-resolution network)

    (Enhanced Deep Residual Networks for Single Image Super-Resolution, CVPRW2017)

    github(torch): https://github.com/LimBee/NTIRE2017https://2017

    github(tensorflow): https://github.com/jmiller656/EDSR-Tensorflowhttps://

    github(pytorch): https://github.com/thstkdgus35/EDSR-PyTorchhttps://

    EDSR,单幅图像超分辨率增强深度残差网络。EDSR最有意义的模型性能提升是去除掉了SRResNet的批量标准化(batch normalization, BN)层。由于批量标准化层对特征进行了规范化,因此通过规范化特征可以摆脱网络的范围可变性,最好将其删除

    ,从而可以扩大模型的尺寸来提升结果质量。相当于SRResNet的改进,EDSR与原始 ResNet 和SRResnet的对比图如下

    此外,由于BN层消耗的内存量与前面的卷积层相同,因此去掉BN层后,EDSR的GPU内存使用量也会减少。与SRResNet相比,基准模型没有批量标准化层,在培训期间可节省大约40%的内存使用量。因此,可以在有限的计算资源下构建一个比传统ResNet结构具有更好性能的更大模型。

    提高网络模型性能的最简单方法是增加参数数量。在卷积神经网络中,可以通过堆叠多个层或通过增加滤波器的数量来增强模型性能。一般的CNN架构的深度(层数)B和宽度(特征Channels的数量)F约占内存与参数。因此,当考虑有限的复合资源时,增加F而不是B可以最大化模型容量。

    但是,将特征图的数量增加到一定水平以上会使训练过程在数值上不稳定。这里通过采用因子0.1的残差缩放来解决这个问题。在每个残余块中,在最后的卷积层之后放置恒定的缩放层。当使用大量滤波器时,这些模块极大地稳定了训练过程。在测试阶段,该层可以集成到之前的卷积层中,以提高计算效率。使用上面三种网络对比图中提出的残差块(即结构类似于SRResNet,但模型在残差块之外没有ReLU激活层)构建单尺度模型。此外,因为每个卷积层仅使用64个特征图,所以单尺度模型没有残余缩放层。在最终单尺度模型EDSR中,通过设置B=32,F=256并使用比例因子0.1来扩展单尺度模型。模型架构如下图所示:

    在训练上采样因子×3和×4的模型时,用预训练的×2网络初始化模型参数,这种预训练策略加速了训练并提高了最终性能,如下图所示。红线表示绿线的最佳性能。对于向上扩展×4,如果使用预先训练的尺度×2模型(蓝线),则训练收敛速度远远快于从随机初始化(绿线)开始的训练。(启发:可先用低放大倍数来做预训练,最终再采用高放大倍数来做最终训练

    从上图中的观察,作者得出结论,多尺度的超分辨率是相互关联的任务。于是通过构建一个多尺度架构来进一步探索这个想法,该架构利用了VDSR的尺度间相关性。将多尺度基线模型设计为具有B=16个残差块的单个主分支,以便大多数参数在不同尺度上共享,简单来说,MDSR(multiscale architecture SR)的中间部分还是和EDSR一样,只是在网络前面添加了不同的预训练好的模型来减少不同倍数的输入图片的差异。在网络最后,不同倍数上采样的结构平行排列来获得不同倍数的输出结果。如下图所示

    在多尺度架构中,通过引入特定规模的处理模块来处理多尺度的超分辨率。首先,预处理模块位于网络的前面,以减少不同尺度的输入图像的差异。每个预处理模块由两个具有5×5内核的残差块组成。通过采用更大的内核作为预处理模块,可以使不同尺度部分保持浅薄,而而较大的感受野被覆盖在网络的早期阶段。在多尺度基线模型的最后,进行特定尺度的上采样模块并行定位,以处理多尺度重建。上采样模块的体系结构类似于EDSR中描述的单尺度基线模型的体系结构。

    基于这些要素,构建了最终的多尺度模型MDSR,其中B=80和F=64。虽然这里针对3种不同尺度的单尺度基线模型分开了看各有约150万个参数,简单相加总计为450万个,但最后的多尺度基线模型只有320万个参数,然而多尺度基线模型可以表现出与单尺度基线模型相当的性能。此外,多尺度模型在深度方面还具有可扩展性。尽管最终的MDSR的深度大约是多尺度基线模型的5倍,但其实只需要2.5倍的参数,因为残余块比特定尺度的部件的参数数量更少。MDSR显示出与比例特定的EDSR相当的性能。

    下图是不同尺度不同模型训练得到的(PSNR(dB) / SSIM)值对比,红色代表最佳表现,蓝色代表次之(baseline即基线模型):

    结果对比如下图所示:

     

    参考材料

    https://blog.csdn.net/prinstinadl/article/details/80825638

    https://mp.weixin.qq.com/s?__biz=MzU3MDMyNzc1Mg==&mid=2247485054&idx=1&sn=83f2b5589149428d1968631a7f2a3430&chksm=fcf051d9cb87d8cf145c8e6990862726007c02b6b764b959d315d47cbfd3240e980bf5f3dfe8&mpshare=1&scene=24&srcid=1011h21ziMx5baUPsmVBplTC#rd

    https://mp.weixin.qq.com/s?__biz=MzI5MDUyMDIxNA==&mid=2247484150&idx=1&sn=b165feed640c9df9f4487eac85ff5a85&chksm=ec1fef0fdb6866197253c1311a048bfe20bc9d57958977eca099c91d6e9d259dcb89ca7de5d6&mpshare=1&scene=1&srcid=1011ahCRVF94OJohJLAAUh4d#rd

    https://blog.csdn.net/zjyruobing/article/details/49908979(PSNR和SSIM)

    https://mp.weixin.qq.com/s?__biz=MzAwNDI4ODcxNA==&mid=2652249131&idx=3&sn=d44ded4e2b1e080e607daec028506576&chksm=80cc858eb7bb0c984d42612bb476b10e7485c146f7ef0351baf3789dbb7c321080eacaff3cf9&mpshare=1&scene=24&srcid=1011KJe0Nh62sOt3FV84WwCw#rd

    https://mp.weixin.qq.com/s?__biz=MzIwMTc4ODE0Mw==&mid=2247491802&idx=1&sn=35fb3c579a05ebb5cffa67dd1e650b15&chksm=96ea3f5aa19db64cb0eb0ec3a4d2045a0c85b11454283066e9d323813988dc59e7692d076e6c&mpshare=1&scene=24&srcid=1011Xt9HxeNm43MrRSQ6aXrT#rd(SRCNN的复现)

    https://blog.csdn.net/Autism_/article/details/79401798(SRCNN)

    https://blog.csdn.net/Cyiano/article/details/78368263?locationNum=4&fps=1(VESPCN)

    https://blog.csdn.net/itleaks/article/details/80336825(反卷积)

     

     

    展开全文
  • 向AI转型的程序员都关注了这个号????????????人工智能大数据与深度学习 公众号:datayx一. 图像超分辨率重建概述1. 概念图像分辨率是一组用于评估图像中蕴含细节信息丰...
  • 超分模型总结

    千次阅读 多人点赞 2020-04-26 10:53:15
    超分模型总结简介基于预采样的模型SRCNNVDSRDnCNNIRCNN后上采样FSRCNNESPCN残差网络EDSRCARN多级网络FormResNetBTSRNREDNet递归网络DRCNDRRNMemNet逐步重建设计SCNLapSRN密集连接网络SR-DesNetRDND-DBPN多分支网络...
  • 学习笔记之——基于深度学习的图像超分辨率重建

    万次阅读 多人点赞 2018-10-13 20:01:44
    SR是指通过软件或硬件的方法,从观测到的低分辨率图像重建出相应的高分辨率图像(说白了就是提高分辨率),在监控设备、卫星图像遥感、数字高清、显微成像、视频编码通信、视频复原和医学影像等领域都有重要的应用...
  • 图3 简化版超分重建处理流程 简化版的超分重建处理流程如图3所示,当然,图像放大和修复两个步骤的顺序可以任意互换。 2. 构建深度网络模型提高超分重建性能 SRCNN只采用了3个卷积层来实现超分重建,有文献指出...
  • 基于深度学习的图像超分辨率重建

    千次阅读 2020-08-24 15:17:12
    最近开展图像超分辨率( Image Super Resolution)方面的研究,做了一些列的调研,并结合本人的理解总结成本博文~(本博文仅用于本人的学习笔记,...基于插值的图像超分 基于重建的图像超分辨率 基于学习的图像超
  • 目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、...
  • 目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、...
  • 随着人工智能的不断发展,超分辨率重建技术在视频图像压缩传输、医学成像、遥感成像、视频感知与监控等领域得到了广泛的应用与研究。本文简要介绍了图像超分辨率技术的研究背景与意义,同时概述了其基本原理及评估...
  • 目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、...
  • 基于深度学习的图像超分论文推荐

    千次阅读 多人点赞 2019-05-29 11:10:58
    时隔一年,重新回顾超分领域,真是读论文的速度赶不上发论文的速度,一年不见,已经出现了不少优秀的paper。先来一波, CVPR2019中关于超分辨率算法的16篇论文压压惊。 好了,上干货,开始我们的重点,首先介绍下...
  • ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、Transformer、PyTorch和TensorFlow等群...
  • Set5数据集,是图像数据处理常用的一个数据集,需要的可以来下载。
  • 目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、...
  • 在监控设备、卫星图像遥感、数字高清、显微成像、视频编码通信、视频复原和医学影像等领域都有重要的应用价值。 近年来,随着深度学习技术的快速发展和设备运算能力的不断提升,基于 AI 的超分技术在图像恢复与...
  • 技术解析 | ZEGO 移动端超分辨率技术

    千次阅读 2022-01-13 16:04:46
    即构超分追求:速度更快、效果更好、码率更低、机型更广。 超分辨率(Super Resolution, SR...在直播、点播、监控设备、视频编解码、卫星图像遥感、数字高清、显微成像、视频复原和医学影像等领域都有重要的应用价值。
  • 2021年小目标检测最新研究综述

    千次阅读 2021-08-16 01:02:16
    精确地检测出卫星遥感图像中的微小目标将有助于政府机构遏制毒品和人口贩 运,寻找非法渔船并执行禁止非法转运货物的规定。综上所述,小目标检测具有广泛的应用价值和重要的研究意义。 与以往将小目标与常规目标等同...
  • 点击下方卡片,关注“CVer”公众号AI/CV重磅干货,第一时间送达本文转载自:新智元来源:arXiv |编辑:Priscilla【导读】东南大学研究团队最新提出的4K实时处理超分...
  • python计算PSNR(图像信噪比)

    千次阅读 2019-05-15 21:01:23
    图像信噪比是用于评估图像超分结果的指标 def psnr2(img1, img2): mse = np.mean( (img1/255. - img2/255.) ** 2 ) if mse < 1.0e-10: return 100 PIXEL_MAX = 1 return 20 * math.log10(PIXEL_MAX / math.sqrt...
  • 目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、...
  • 编者按:作为将模糊的图像变清晰的神奇技术,图像超分辨率技术在游戏、电影、相机、医疗影像等多个领域都有广泛的应用。在这篇文章中,微软亚洲研究院的研究员们为你总结了图像超分辨率问题中的主流方...
  • 目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、...
  • 图像的超分辨率,是图像处理相关问题中的基础问题之一,并具有广泛的实际需求和应用场景,在数字成像技术,视频编码通信技术,深空卫星遥感技术,目标识别分析技术和医学影像分析技术等方面,视频图像超分辨率技术都...
  • 时至今日,我已经在商汤实习了近一年半,我已经成长为多尺度遥感影像质量改善算法研究的核心成员,今年 7月交付的超分模型得到了公司 leader和客户的一致好评,已累计为公司节省了数百万的数据成本。与此同时,在...

空空如也

空空如也

1 2 3
收藏数 45
精华内容 18
关键字:

遥感影像超分重建

友情链接: eternetcode.rar