好久没更新博客了,但是心念念着我这博客,不写感觉对不起自己最近涨的粉,/(ㄒoㄒ)/~~心情复杂。。。。。我最近看了好多文献,正在忙着做毕业设计的事。这是我读大学以来,写论文工作量最大的一次了,才发现数学建模的论文实在是太容易写了,不过也对,这都快毕业了,认真完成给我的大学画上圆满的句号!(捂脸.jpg),虽然我还有研究生要读,读书生涯尚未结束,仍需努力!!!废话说太多了,转入正题。今天要整理的是关于视频超分辨率的一篇文章。
RBPN
RBPN的前身是DBPN,其实RBPN就是专门为了处理视频超分而发的,DBPN是图像超分辨率。所以,我在整理RBPN的同时,顺便也把DBPN整理了。按照以往的套路,就按着文章结构写吧,省事儿~
abstract
文章提出了一种对于处理视频超分问题的新结构:使用循环encoder-decoder模块融合连续帧的时空信息,该结构可将多帧信息与目标帧融合在一起。 与大多数以前通过stack或warp将视频帧合并在一起的工作不同,在这个循环反向投影网络(RBPN) 模型中,是将每个上下文帧视为单独的信息源。 这些源组合在一个迭代细化框架中,该框架受多帧图像超分辨率中的反投影概念的启发。这得益于显式估计相对于目标帧的帧间运动,而不是显式作帧对齐。 所以,本文提出了一个新的视频超分辨率基准,可以进行更大范围的评估并考虑不同运动方式下的视频。
introduce
在传统的VSR方法中,使用CNN做超分的都是采用concatenate图像或者将视频帧送入RNN中,这些帧会与目标帧进行对齐(显式帧对齐),因此得到目标帧的运动矢量。但是,在VSR中,使用这种方法的效果是明显比不采用时间对齐的方法好,但这种方法会导致多张图像被同时处理,增强了训练的难度和计算量;而在RNN中,需要同时处理细微变化和明显变化是比较困难的。针对这样一个问题,作者就提出了循环反投影网络,反投影是图像重建领域的一种传统的方法,其细节我还没查阅,详细可查阅参考文献部分。使用反投影迭代地计算目标帧与其对应的邻帧的残差图,可作为重建的损失函数。多个残差图可以用来表示目标帧与其他帧之间细微的变化以及明显的变化,这弥补了RNN的不足。DBPN(Deep Back-Projection)是针对单帧图像进行超分,他通过多次上下采样的方式来细化生成的高分辨率图像的特征图。而RBPN整合了多帧输入以及DBPN,根据邻帧以及目标帧和邻帧之间的光流来学习残差。
文章的贡献:
- 整合SISR和MISR在一个VSR框架中:可迭代的SISR用于提取代表目标帧细节的特征图,MISR用于提供其他帧的特征图。
- 反投影模块:开发了一个编码器-解码器机制(encoder-decoder),合并通过反投影从SISR和MISR路径中提取的细节。
- 文章附录部分有彩蛋(哈哈哈,这里解决了我找不到训练集的问题)
VSR
基于深度学习的视频超分辨率的视频序列处理,主要分成三类:
a.送入网络前将视频帧concatenate起来,这种方法可看作是SISR的扩展方式直接应用到MISR,代表作有VSR-DUF网络[1];b.将不同数量的帧丢进网络分路,最后输出前concatenate起来,代表作有[2];c.视频帧迭代式地进入RNN,最后输出当前帧的重建结果,代表作有Bi-RNN,LSTM-layer和多对多RNN。
Recurrent Back-Projection Networks
网络结构
RBPN网络分为三部分:初始化特征提取(initial feature extraction)、多投影(multiple projection)和重建(reconstruction)
初始化特征提取 : 分为SISR和MISR两条路径,分别提取目标帧和其他帧(多个)的特征向量。
MISR路径:将第 I t I_t It和 I t − k I_{t-k} It−k帧及其光流 F t − k F_{t-k} Ft−k连接后,进行卷积得到8通道的特征张量 M t − k M_{t-k} Mt−k
SISR路径:第t帧 I t I_t It直接进行卷积得到特征张量 L t L_t Lt
图3:为多投影模块的结构。
多投影: RBPN的多投影部分使用了一个链式的encoder-decoder模块,具体结构如图3和图4
- 通过projection module将第k个M张量与第k-1个L张量进行投影,并输出第k个L张量和第k个高分辨率特征H张量;
- 第k个张量再一次输入到projection module中,然后结合第k+1个M张量,生成L和H
- Encoder:有两条输入路径,分别为SISR和MISR。这两条支路的特征输入到Encoder后,经由上采样得到高分辨率的特征张量 H t − n m H^m_{t-n} Ht−nm和 H t − n − 1 l H^l_{t-n-1} H