添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
千年单身的长颈鹿  ·  Probate Citation | ...·  7 月前    · 
玩篮球的日光灯  ·  HISD Miles Ahead ...·  10 月前    · 
开朗的烤红薯  ·  Tomcat 9 : ...·  1 年前    · 
L R 像素做特征提取,在当时来说,可以算是一种提高计算效率的有效途径。

参考文档:
①: 【超分辨率】Efficient Sub-Pixel Convolutional Neural Network

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

Abstract

文章推出了一种在以往算法(SRCNN、Bicubic)上对于重建表现力以及计算效率(重建速度、计算资源损耗)都有一定提升的SR算法—— ESPCN
SRCNN 先对输入图像做
Bicubic插值 ,然后进行特征提取,这种方式相当于直接在HR层面做超分,作者证明这种方式是一种次优策略且会带来计算复杂度的提升。

针对这种问题,作者提出了 ESPCN 结构:

  1. 这是一种直接对输入 L R 图像做卷积取代了SRCNN中的bicubic预处理部分,这直接带了 计算复杂度的降低以及执行速度的提升 ,作者实现了在1080P视频中的超分效果,做到了标题中的” Real-Time “。
  2. ESPCN在图像和视频上都做了相关的实验,分别提升了0.15dB以及0.39dB;此外ESPCN的执行速度也超越了之前的CNN-based系列SR算法。

Note:

  1. 这篇文章的核心,也是最重要的部分就是一个亚像素卷积层

1 Introduction

ESPCN主要2个点很重要:①是直接对 f^1(I^{LR};W_1,b_1) = \phi(W_1*I^{LR}+b_1)\\ f^l(I^{LR};W_{1:l},b_{1:l}) = \phi(W_l*f^{l-1}(I^{LR})+b_l). f 1 ( I L R ; W 1 , b 1 ) = ϕ ( W 1 I L R + b 1 ) f l ( I L R ; W 1 : l , b 1 : l ) = ϕ ( W l f l 1 ( I L R ) + b l ) . 其中 n 0 = C ,这也是我们一些深度学习库中卷积层的设置方式,比如 PyTorch

2.1 Deconvolution layer

Deconvolution layer 主要分为三个方面:

  1. 非监督学习,比如这篇文章 Adaptive Deconvolutional Networks for Mid and High Level Feature Learning 所介绍的一种反卷积结构。
  2. CNN可视化。
  3. 上采样。比如 FCN网络 中介绍的deconvolution layer是一种将低分辨率的图像还原成高分辨率图像的方法。

我们在SR中所用到的反卷积层大多都是用几层CNN处理的,比如DCSCN、SRDenseNet、SRGAN、SRResNet、EDSR, 详见我的几篇论文解读

2.2 Efficient sub-pixel convolution layer

FCN 网络中最后3层改以往的全连接层为反卷积层,其本质也是个卷积层,故称之为 Fully-convolution (具体内容详见 我的另一篇中关于FCN的笔记 )。诸如FCN这种反卷积过程是一种上采样过程,它可以将低分辨率尺寸的图像转换为高分辨率尺寸的图像,因此这种卷积可以看成是卷积步长为 \mathcal{PS}(T)_{x,y,c} = T_{[x/r], [y/r], C\cdot r \cdot mod(y,r)+C\cdot r\cdot mod(x,r) + c}.\tag{2} P S ( T ) x , y , c = T [ x / r ] , [ y / r ] , C r m o d ( y , r ) + C r m o d ( x , r ) + c . ( 2 )
Note:

  1. 我们定义亚像素卷积层(第 P S ( ) 表达的就是亚像素卷积的过程。
    Note:

    1. 关于亚像素卷积是一个隐式卷积,它是另一种提取特征的过程,不含任何可学习参数,故并不是我们常用的卷积层,文中2处也指明了这一点: 在这里插入图片描述
    2. 我们画出上述第一点中的②结构: 在这里插入图片描述

    有了亚像素卷积层的输出,我们就可以利用Ground-Truth来做MSE,通过梯度反传更新网络参数来学习如何从低分辨率重建成高分辨率图像:
    l(W_{1:L},b_{1:L})=\frac{1}{r^2HW}\sum^{rH}_{x=1}\sum^{rW}_{y=1}(I^{HR}_{x,y}-f^L_{x,y}(I^{LR}))^2.\tag{3} l ( W 1 : L , b 1 : L ) = r 2 H W 1 x = 1 r H y = 1 r W ( I x , y H R f x , y L ( I L R ) ) 2 . ( 3 ) 作者指出我们的亚像素卷积层可以比FCN的上采样过程快近 1 9 2 0 × 1 0 8 0 )的视频,每一份长达10s; Ultra Video Group database ,包含7份1080p的视频,每份长达5s。

3.2 Implementation details

  1. 实验中的ESPCN设置 1 0 4 而最后一层的学习率要同比衰减10倍
  2. 使用PSNR做图像评价指标。

3.3 Image super-resolution results

3.3.1 Benefits of the sub-pixel convolution layer

在这里插入图片描述
上图是为了体现亚像素卷积层的作用,从图中可以得出以下结论:

  1. 使用了亚像素卷积层的ESPCN(relu)要比SRCNN有更好的表现力。
  2. 较大的数据集有利于表现力的提升。
  3. 虽然SRCNN和ESPCN(relu)在小数据集上表现相似,但是一旦数据集增大,两者增加的PSNR分别是0.07和0.33,显然ESPCN有更大的提升潜能。
  4. 对比ESPCN关于ReLU和Tanh版本的激活函数可知:在ESPCN中,Tanh对于表现力的提升要强于ReLU。

上图是学习过后的滤波器可视化图,其中 W L 的确学习到了一些复杂多样的参数,为不同的feature map配置不同的滤波器参数,相比SRCNN较为单一的滤波器类型,ESPCN会使得特征的提取更加复杂、全面。

  • 这里有个疑问点是最后一层的可视化不知道是怎么做上去的,这可能要涉及到ESPCN的源码。

3.3.2 Comparison to the state-of-the-art

这一节是将ESPCN在ImageNet上做训练,然后和其余几种算法做对比,具体如下表:
在这里插入图片描述
此外, 可视化的结果如下图所示
在这里插入图片描述

3.4 Video super-resolution results

这一节是将ESPCN和SRCNN等算法在视频上做超分,其实就是 对每一帧做图像超分 。相比之前的算法,ESPCN具有执行速度上的优势,实验基于3.1节的2个视频数据集,结果如下:
在这里插入图片描述

3.5 Run time evaluations

这一节是探究ESPCN在 执行速度 上和其他算法的差异,作者将几种算法在Set14数据集上测试,其中ESPCN选择最佳的实验模型并使用Tanh做激活函数,在 > × 1 0 )。由于ESPCN拥有在LR领域做特征提取以及亚像素卷积层结构,故其网络参数会相对较少,这也为 ESPCN在视频中可以做到Real-Time ,即实时性的要求。

  • 关于亚像素卷积层,PyTorch中也有相关实现,即 torch.nn.PixelShuffle() ,具体参考我的另一篇 PyTorch之PixelShuffle()
  • 5 Future work

    1. SRCNN是一种SISR方法,而ESPCN可以针对视频做超分。但是ESPCN并没有利用视频中前后相邻帧和当前帧的时间关系,要知道相邻帧种蕴藏着很多和当前帧相关的信息, 作者指出接下来需要利用这一时间冗余的关系 ,时间冗余指的是视频在时间序列上具有相似关系。
    2. ESPCN接下来的一个发展方向就是 VESPCN ,是一种主要针对视频超分的方法,大致的方向就是将ESPCN结构扩展成时序空间网络结构(Spatio-temporal Network),将 时间信息 加入到我们的网络中来,因此就有了同一批作者写的" Real-Time Video Super-Resolution with Spatio-Temporal Networks and Motion Compensation "。
    这篇文章推出了一种具有亚像素卷积层结构的SR算法——ESPCN;相比于SRCNN直接对HRHRHR领域像素做卷积,ESPCN是直接对输入LRLRLR像素做特征提取,在当时来说,可以算是一种提高计算效率的有效途径。参考文档:①Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural NetworkAbstract1 Introduction2 Method2.1.
    最近闲着无聊在家学习一些基本的CNN模型,这里做一个简要的总结,供自己学习使用。 一、VGG ​ VGG模型是2014年ILSVRC竞赛的第二名,第一名是GoogLeNet。但是VGG模型在多个迁移学习任务中的表现要优于googLeNet。而且,从图像中提取CNN特征,VGG模型是首选 算法 。它的缺点在于,参数量有140M之多,需要更大的存储空间。但是这个模型很有研究价值。 VGG有多种网络结...
    ES PC N ES PC N(efficient sub-pixel convolutional neural network)是创业公司Magic Pony Technology的Wenzhe Shi和Jose Caballero作品。该创业团队主要来自Imperial College London,目前已被Twitter收购。
    Real-Time Single Image and Video Super-R es olution Using an EfficientSub-Pixel Convolutional Neural Network 我挑选了论文中最有趣的部分翻译并加上了自己的理解 Abstract 最近,几种基于深度 神经网络 的单张图片 超分 辨率重构方法在重构精确度和计算性能上都取得了突破性的进步。在那些方法中,输入的...
    目录FSRCNNDRCNRDN FSRCNN : Accelerating the Super-R es olution Convolutional Neural Network DRCN: Deeply-Recursive Convolutional Network for Image Super-R es olution RDN: R es idual Dense Network for Image Super-R es olution FSRCNN FSRCNN : Accelerating the Supe
    好的,关于 PyTorch 超分 ,我可以为您提供一些基本信息。PyTorch 是一个基于 Python 的科学计算库,它支持动态计算图,可以方便地进行 深度学习 模型的构建和训练。而 超分 技术是指将低分辨率图像转换为高分辨率图像的技术,通常使用 深度学习 模型来实现。 在 PyTorch 中,可以使用一些预训练的 超分 模型,如 SRCNN、 ES PC N、FSRCNN、SRGAN 等。同时,也可以根据自己的需求构建自己的 超分 模型。 如果您想了解更多关于 PyTorch 超分 的内容,可以参考 PyTorch 官方文档中的相关章节,或者查阅一些相关的论文和博客。 火锅不要再吃啦: 楼主您好,您在讲到BasicVSR和BasicVSR++的对比时,Propagation部分BasicVSR++增加了skip connection来将原始特征信息直接输送到高层和上采样之后的结果相结合。但是我在看BasicVSR的源码的时候,最后有一段代码如下: [code=python] # upsample out = torch.cat([out_l[i], feat_prop], dim=1) out = self.lrelu(self.fusion(out)) out = self.lrelu(self.pixel_shuffle(self.upconv1(out))) out = self.lrelu(self.pixel_shuffle(self.upconv2(out))) out = self.lrelu(self.conv_hr(out)) out = self.conv_last(out) base = F.interpolate(x_i, scale_factor=4, mode='bilinear', align_corners=False) out += base out_l[i] = out [/code] BasicVSR最后也是将当前帧x_i做了一个插值,然后和特征图相加构成了最终的输出,这个和BasicVSR++有什么区别呢? 论文笔记之Soft Q-learning m0_61808480: 先期望再累加和先累加再期望有什么区别啊,看不太懂 Pytorch之Rot旋转 QingLuanWG: 第三个参数是dims不是dim