【图像超分辨】DBPN
这篇文章是CVPR 2018年的文章,相较同时录用的《Residual Dense Network for Image Super-Resolution》而言,个人觉得本文创意非常不错。文章很好的利用了传统算法 IBP(迭代反投影),并通过深度网络实现出来的结构。
网络结构
区别于前几年的三种典型网络:
- pre-upsample 处理的网络,先将LR进行bicubic插值到desired size,然后在投入到网络中,这样就可避免stride为分数的情况。但往往会引入大量的计算量;
- single up-sampling。观测到第一种将插值后的LR 输入到网络会带来大量的计算,该类方法直接对LR 图像进行feature extracting,这样大大减少了计算量。典型算法:FSRCNN(deconvolution layer), ESPCN(sub-pixel conv);
- 就是以LapSRN带头的progressively upsample的网络结构。这类网络结构能够逐渐放大,然后在大的upsampling factor上取得比较好的成绩(x4,x8);
作者把自己的网络归为第四种:Iterative up and downsampling。这种结构有一种直观的好处,也就是有效挖掘 dependencies of low- and high- resolution images的先验信息。其中内部的两种操作都非常简单:(up-projection and down-projection)。
上投影单元中,将低分辨率图像先进行反卷积,上采样得到高分辨率特征图,将该高分辨率图进行卷积,下采样得到一个低分辨率特征图,再将得到的低分辨率特征图和一开始的低分辨率图像进行残差运算,把得到的残差值加入上采样层,进行反卷积产生高分辨率特征图,将此刻生成的高分辨率特征图和起初得到的高分辨率特征图相加得到最终的高分辨率特征图。
下采样单元的过程类比上投影单元。这些投影单元可以理解为自我纠正的过程,将投影误差提供给采样层,这样不断地迭代,来产生更优的解。
整个DBPN里面的主要block是投影单元(projection unit),为了学习HR到LR的投影和LR到HR的投影。两种投影单元的网络和数学描述如下:
up-projection:
down-projection:
上述操作互相交互,完成non-linear mapping的过程。
本文在去年提出的Dense网络的基础上,扩展了所提出的深度反投影网络。由于Dense网络被证明能缓解梯度消失问题,并且可以产生改进的特征、鼓励特征重用,本文提出了D-DBPN。当然作者参考了DenseNet,也提出了Dense projection units。
这是DBPN的一种扩展:D-DBPN,其中每个单元的输入都是之前所有单元的输出的堆叠。例如增采样投影单元中,输入尺寸是LR,所以输入是所有降采样投影单元的输出的堆叠(因为它们输出的尺寸都是LR)。反之亦然。另外在进入投影单元时,用一个1*1卷积来降低通道数。
文章主要想法就是上面介绍的这样。
个人觉得这个想法非常有意思,但是他用的训练数据集是相当的大,包括DIV2K, Flickr和ImageNet。这和之前的算法对比感觉还是不公平的。
实验设置
对于不同尺度的超分辨任务,作者设置的卷积核参数也不一样:
- 对2的任务,卷积核66,stride 2,padding 2;
- 对4的任务,卷积核88,stride 4,padding 2;
- 对8的任务,卷积核1212,stride 8,padding 2。
以上的理论依据是卷积的尺寸公式 ,以*2为例,卷积后的输出为,正好等于降采样了两倍。
训练集采用了DIV2K,Flickr和Imagenet,和之前的291image相比大了不少。
实验结果
参考博客
如何评价CVPR2018论文Deep Back-Projection Networks For SR?
《Deep Back-Projection Networks For Super-Resolution》论文阅读之DBPN
图像超分辨之DBPN 读后总结