super resolution 论文阅读简略笔记(个人,持续ing)

来源:互联网 发布:自考网络助学加分 编辑:程序博客网 时间:2024/05/17 07:13

从deep learning开始后开始看的。具体实验细节没看。写的比较简略,只是为了过段时间忘记论文内容的时候还可以翻下。。。



1. Image Super-Resolution Using Deep Convolutional Networks


以往都是采用传统方法进行super resolution。这篇论文提出SRCNN,第一次用deep learning解决single image super resolution(SISR)的问题。作者认为传统的super resolution的方法可用卷积操作和激活函数来替换。


开山之作结构也很简单,如下图。共三层conv layers,图中三部分每一部分对应一层。第一部分提取输入LR图(已经被放大到HR要求的尺寸)的feature,为conv+relu;第二部分将提取的LR的feature 映射至HR的feature,为conv+relu;第三部分重建HR,为conv。




loss function也很简单,是MSE(mean squared error) loss。其中F项为output之后的HR图像,X为已经经过插值得到的和HR同尺寸的输入图像,theta为模型参数。






2. Accurate Image Super-Resolution Using Very Deep Convolutional Networks


SRCNN 对于细节恢复不好,收敛慢,并且需要固定scale factor。基于这些问题,该论文提出了用更深的残差网络快速进行single image super resolution的VDSR网络,在快速的同时,也比以往的工作much more accurate。

contributions:


  • propose a highly accurate SR method based on a very deep convolutional network.
  • resolve the convergency issue with residual-learning and gradient clipping.
  • extend our work to cope with multiscale SR problem in a single network.

我认为最主要的贡献就是提出用residual 解决super resolution这一问题。

网络结构如下图。ILR是已经经过插值得到的和HR同尺寸的输入。整个结构是由conv+relu堆叠的(最后共20层),学得的residual与输入相加得到输出的HR。上面的四个图为可视化某些中间层,该网络每层均为64个filters,这四幅图的每个小格子是64个filter 后得到的不同feature map,可以看到经过relu后,大部分都会学成0或很小的值,所以training会容易。



loss function 为  其中 ,y 为gt,x为LR,f(x)为HR。


作者还提到,可以多增加一个输入,scale数值,可以应对multi scale的问题,并且这样做,效果要比单一尺寸super resolution好。


(另外插一句很小很小的细节。SRCNN中说越deep,效果越好这句话对于super resolution 来说并不适用,最终就用了3层。。。。但该文作者打脸说,SRCNN应该是learning rate太小了,还没等训练收敛,就停了,所以得出了这样错误的结论。。。作者说,在super resolution领域,依旧是The Deeper,the Better!)

(所以说,调参是很玄学也很重要滴)




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


以往的工作都是在网络一开始,就进行上采样将LR 变为 HR的尺寸,但这样会造成计算复杂度很高,因为都是在高 res 上进行的操作。该文对于这个问题提出了一种real time 的single image super resolution的方法ESPCN,在网络最后进行upsampling 。


作者选择在网络最后进行upsampling而不是一开始进行,网络的操作都是在低res上做的,复杂度会低很多。并且用可学习的upsampling filter 代替以往方法中的handcrafted bicubic filter,可以学得一个更有效的upscaling的mapping,SP效果会更好。


速度和之前工作比真的很快,贴上论文结果。


网络结构如下图。前 l-1 层均为正常的conv+activation func(作者在relu 之外,还试了 tanh,发现在SISR 时,tanh效果要比relu 好),最后一层为作者提出的sub-pixel convolutional layer,但是并没有进行卷积的操作,只是将像素按照 channel 重新排列,将的feature maps 重新排列为 作为输出。




loss function为,这些论文在 loss 的设计上基本都没有什么变化。





4. Real-Time Video Super-Resolution with Spatio-Temporal Networks and Motion Compensation


以往能做到real time,可以用于video的single image super resolution的方法并不能有效利用 temporal 信息。在这篇论文中,作者提出了针对video 的super resolution方法VESPCN,可以有效结合 temporal 的信息,提高重建准确率,并且速度也很快,并且是the first end-to-end video SR framework。


总体网络结构如下图。



该方法是基于上一篇论文的,网络的最后都是一样的ESPCN与Sub-pixel convolution,不再赘述。重点是作者提出的前面的 Spatial transformer motion compensation 部分,用optical flow的 motion的信息来补偿 spatial的信息。

optical flow 加进网络肯定是有效果的,但是重点是这个时域信息应该怎么用,才能最有效,即怎样用光流代表的时域信息来更好的补偿新的一帧。optical flow是pixel-wise的,其实是通过optical flow ,将每一个pixel 重新放置在运动之后的新的位置,而这个重新放置的偏移量,就是

 ,其中theta 是optical flow的参数。

而这样直接加了偏移量以后并不是一个整数,所以再通过双线性插值得到最终的t+1时刻的经过时域信息补偿的帧。

更准确的是


然后根据这个观点,作者提出了一个multi-scale的设计,如下图。其中的coarse flow estimation单元和fine flow estimation单元详细结构如表所示。输入两帧先经过粗糙的flow估计单元,得到了上文所说的偏移量,用这个偏移量得到一个经过补偿的帧;同样的这两帧再经过一个精细的flow估计,得到精细的偏移量,同样得到一个补偿过的帧;最后这两帧加起来经过一个双线性插值,得到最终的经过运动补偿的帧

 


kernel size (k), number of features (n) and stride (s).



训练时这个motion compensation 部分的loss是MSE loss加上Huber loss。加入Huber Loss是为了让 optical flow在空间光滑(Huber Loss Wikipedia)


其中后面一项近似为,


最后,加上后面的结构,做end-to-end训练时,整个loss为

其中为motion compensation部分的参数,为后半部分的参数。






5. Detail-revealing Deep Video Super-resolution


对于video super resolution要解决的问题,作者总结为两个, (1) 怎样有效利用连续帧之间的信息,即motion 的信息; (2) 怎样有效的融合有用的细节。 作者针对这两个问题提出了一个新的end-to-end网络。


该网络可以接受任意数目的输入且可以放大任意尺寸,灵活性高;网络结构如下图,包括三部分,ME(motion estimation),SPMC(Sub-pixel Motion Compensation),Detail Fusion Net。



首先,第一部分ME,作者尝试了FlowNet 以及VESPCN 中的  motion compensation transformer(MCT)两种方法,最后选择了MCT,因为速度很快(500+ single-channel image pairs (100×100 in pixels) per second),并且用在这个网络里效果也可以接受。由于是上篇论文的方法,这里就不再详细展开了。


之后介绍的是Sub-pixel Motion Compensation(SPMC),这个部分并没有单独的参数,不需要训练。如下图是一个scale为*4的例图,用公式表达就是其中W是warp的矩阵,α是scale,u、v是motion(F)的偏移量,M是插值(什么插值都行)。脚标太多我不想说了。。。。。。。。。就当我说完了吧。


最后第三部分的网络结构在图中很清晰。


训练的时候,要分阶段,因为end-to-end 直接random initialization训练的话,最终ME 的flow 会变成0,最终的效果和single-image SR没啥区别。分三阶段。


Phase 1:只单独考虑ME网络,进行无监督训练(没有gt flow),loss为 其中是根据flow从第零帧得到的warped的i帧图像,后一项我认为是用来约束F平滑一些。


Phase 2:固定ME中的参数,只更新Detail Fusion Net,loss为。其中 最后一项是网络的输出,倒数第二项是gt,第一项是一个超参数,提前设定好的。


Phase 3:就可以jointly tune,total loss 是





6. Video Super-Resolution With Convolutional Neural Networks








References

Image Super-Resolution Using Deep Convolutional Networks      pdf    (TPAMI 15)

Accurate Image Super-Resolution Using Very Deep Convolutional Networks     pdf   (cvpr16)

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

Real-Time Video Super-Resolution with Spatio-Temporal Networks and Motion Compensation      pdf   (cvpr17)

Detail-revealing Deep Video Super-resolution      pdf    (iccv17)

Video Super-Resolution With Convolutional Neural Networks       pdf



阅读全文
0 0
原创粉丝点击