《Deep Back-Projection Networks For Super-Resolution》论文阅读之DBPN

Deep Back-Projection Networks For Super-Resolution


paper: Deep Back-Projection Networks For Super-Resolution

PyTorch: alterzero/DBPN-Pytorch

Caffe:alterzero/DBPN-caffe


导读:

这篇文章是CVPR 2018年的文章,相较同时录用的《Residual Dense Network for Image Super-Resolution》而言,个人觉得本文创意非常不错。文章很好的利用了传统算法 IBP(迭代反投影),并通过深度网络实现出来的结构。


摘要

  • 近年来提出的超分辨网络多为前馈结构,学习HR和LR的非线性映射。然而,这些方法不能解决LR和HR的相互依赖关系(address the mutual dependencies of low- and high-resolution images)。
  • 之前的研究表明,人类的视觉系统可能使用反馈连接来简单地指导任务,最近的超分辨网络可能就是由于缺乏这种反馈,所以才不能很好地表达。
  • 作者提出了一种不断迭代地进行增采样和降采样的网络,为每个阶段的映射错误提供错误反馈机制。思想很像传统的迭代反投影算法。作者构建了相互连接的上采样和下采样阶段,每个阶段代表不同类型的图像退化和HR分量。网络命名为DBPN(Deep Back-Projection Networks),以及扩展版本D-DBPN(Dense Deep Back-Projection Networks)。实验表明其超分辨尤其在*8尺度中达到了state-of-the-art。

相关工作

现在的超分辨网络分成四种类型:

《Deep Back-Projection Networks For Super-Resolution》论文阅读之DBPN

区别于前几年的三种典型网络:

1) Predefined upsampling。事先把图像增采样到需要的尺寸。这可能会引入新的噪声。

这种算法需要进行预插值来使得输入及输出的size 统一。 
这也起源于SRCNN (Dong et.al),Dong 认为将输入输出的feature maps 的size 设置成一致,将有利于进行非线性映射。否则的stride需要设置为分数stride,这将为带来很多不便之处。 

先将LR进行bicubic插值到desired size,然后在投入到网络中,这样就可避免stride为分数的情况。但往往会引入大量的计算量。

2)Single upsampling。在最后一步增采样。这种方法可能无法学习到复杂的映射。

观测到第一种将插值后的LR 输入到网络会带来大量的计算,该类方法直接对LR 图像进行feature extracting,这样大大减少了计算量。典型算法:FSRCNN(deconvolution layer), ESPCN(sub-pixel conv)

3)Progressive upsampling。逐步增采样,例如LapSRN。

这类网络结构能够逐渐放大,然后在大的upsampling factor上取得比较好的成绩(x4,x8)

作者把自己的网络归为第四种:

4)Iterative up and downsampling. 通过学习各种增采样与降采样的操作,该架构允许网络保留HR的内容。

这种结构有一种直观的好处,也就是有效挖掘 dependencies of low- and high- resolution images的先验信息。

通过不断的上下采样,进行error feedback来矫正reconstruction error。

模型

1)、Projection units

整个DBPN里面的主要block是投影单元(projection unit),为了学习HR到LR的投影和LR到HR的投影。两种投影单元的网络和数学描述如下: 

up-projection unit

《Deep Back-Projection Networks For Super-Resolution》论文阅读之DBPN

对比一下Iterative Back-projection 
Assume X为高分辨率图像, Y为低分辨率图像,D为降采样算子, H为模糊算子 


X = argmin ||DHX-Y||^2 
X(t+1) = X(t) - FTDT(DFX-Y)

在传统算法中,迭代反投影算法往往需要对H模糊算子进行估计。 
上面两种算法基本一致。

down-projection unit
《Deep Back-Projection Networks For Super-Resolution》论文阅读之DBPN



  • 这些投影单元可以理解为是一种self-correcting过程,它将投影误差提供给采样层,并通过反馈投影误差来迭代地改变解。
  • 在投影单元中,卷积核的尺寸非常大(例如8*8,12*12),这在过去的网络中不常使用,因为会减低收敛速度,或陷入局部最小值。但是投影单元的迭代利用使网络能够避免这种限制,得到更好的表现。
上述操作互相交互,完成non-linear mapping的过程。


2)、Dense Projection units

  • 《Deep Back-Projection Networks For Super-Resolution》论文阅读之DBPN
  • 这是DBPN的一种扩展:D-DBPN,其中每个单元的输入都是之前所有单元的输出的堆叠。例如增采样投影单元中,输入尺寸是LR,所以输入是所有降采样投影单元的输出的堆叠(因为它们输出的尺寸都是LR)。反之亦然。另外在进入投影单元时,用一个1*1卷积来降低通道数。

网络全貌

  • 整体网络如下所示。我们可以把网络分成三个部分:Initial feature extraction、Back-projection stages、Reconstruction
《Deep Back-Projection Networks For Super-Resolution》论文阅读之DBPN

实验设置

  • 对于不同尺度的超分辨任务,作者设置的卷积核参数也不一样: 
    • 对*2的任务,卷积核6*6,stride 2,padding 2。
    • 对*4的任务,卷积核8*8,stride 4,padding 2。
    • 对*8的任务,卷积核12*12,stride 8,padding 2。
    • 以上的理论依据是卷积的尺寸公式H=HF+2PS+1H=H−F+2PS+1 ,以*2为例,卷积后的输出为H=H6+222+1=H2H=H−6+2∗22+1=H2,正好等于降采样了两倍。
  • 训练集采用了DIV2K,Flickr和Imagenet,和之前的291image相比大了不少。LR的尺寸为32*32,batch大小为20。

实验结果

《Deep Back-Projection Networks For Super-Resolution》论文阅读之DBPN

《Deep Back-Projection Networks For Super-Resolution》论文阅读之DBPN



《Deep Back-Projection Networks For Super-Resolution》论文阅读之DBPN


《Deep Back-Projection Networks For Super-Resolution》论文阅读之DBPN




参考文献:
1.
作者:马小啸
链接:https://www.zhihu.com/question/268488873/answer/345427528
来源:知乎

2.https://blog.csdn.net/shwan_ma/article/details/79611869

3.https://blog.csdn.net/Cyiano/article/details/79814758

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。