admin管理员组

文章数量:821334

经典视频超分论文总结1

本文总结一下PaperWithCode中VID4榜上的几篇超分论文。

相关的论文可以查看地址

经典视频超分论文总结1 
经典视频超分论文总结2 
经典视频超分论文总结3 
经典视频超分论文总结4 
经典超分论文总结5

1、Bidirectional Recurrent Convolutional Networks for Multi-Frame Super-Resolution(BRCN, NeurIPS 2015)

.pdf.pdf

首次提出使用双向循环卷积神经网络来处理多帧视频超分任务。

网络包含3个组件。1)前向卷积(黑色箭头)学习LR与HR之间的视觉空间独立性。2)循环卷积(蓝色箭头)通过连接连续帧的相邻隐藏层,对视频帧之间的长期时间依赖性进行建模,其中当前隐藏层在前一时间步的隐藏层上进行调节。前向反向均使用来充分利用时间动态。3)条件卷积(红色箭头)将上一时间步的输入层连接到当前隐藏层,使用以前的输入提供长期上下文信息。

隐藏层  网络使用两层隐藏层,表示为:

 Xi为输入,Xi+1 相邻帧,Hi+1相邻帧的隐藏层,W权重,B偏置。激活函数为ReLU

输出层 结合了正向反向 条件卷积和前向卷积的输出和偏置,公式如下:

 损失函数  MSE loss

2、Image Super-Resolution Using Deep Convolutional Networks(SRCNN,TPAMI2015)

何凯明、汤晓鸥两位大佬的巨作,据说是开创DNN用于图像重建的先河。网上资料巨多,我鹦鹉学舌简单讲讲。

2. 1、网络结构

网络如上图所示,包含三层卷积。分别叫 Patch extraction and representation(块析出与表示)、Non-linear mapping(非线性映射)、Reconstruction(重构)

Patch extraction and representation:对输入图像进行特征提取,卷积+ReLU,ks=9 x 9 c = 64

Non-linear mapping:特征非线性映射,卷积+ReLU,ks=1 x 1 c = 32

Reconstruction:特征重建,生成高分辨率图像,卷积,ks=5 x 5 c = 1

最后c=1是因为只采用Y通道进行重建。

2.2 损失函数  MSE

3、Deep Back-Projection Networks For Super-Resolution(DBPN,CVPR2018)

论文是这么想的:原来的超分要么是a)直接把图像差值到HR大小。 b)最后阶段上采。c)慢慢分几次上采。作者说 你们太单调了,让我们一会上采一会下采。于是提出了以下两组上采和下采的结构。

 第一组左边,用于DBPN的上采下采模块

第二组右边,用于Dense-DBPN的上采下采模块

所以将第一组嵌入图1的(d)就是DBPN。将第二组模块嵌入下面的网络,得到Dense-DBPN。

其中DBPN包含S,M,L三种网络,分别对应t=2,t=4,t=6。所以主体结构基本看图就可以了解了。

4、Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network(ESPCN, CVPR2016)

SISR工作,本文比论文3更早。他说你们现在超分都是开始就先上采,然后再重建,所以你们的操作都是在HR空间进行的,但是这样速度太慢了。因此我们直接在LR空间一直卷卷卷,最后再上采好了,这样速度多快。

更重要的是,本文首次提出了一个亚像素卷积层 (sub-pixel convolutional layer)。在网络最后的输出RxR通道,然后重排成RxR尺寸

我就喜欢这种凭空创造点新玩意的创新,膜拜一波 

损失函数: MSE​​​​​​​

5、Real-Time Video Super-Resolution with Spatio-Temporal Networks and Motion Compensation(VESPCN,CVPR2017)

论文地址: .05250v2.pdf

代码地址:GitHub - JuheonYi/VESPCN-PyTorch

VSR的工作。看看这名字,比4的ESPCN只多一个V。本文主要是说,SISR不能利用帧间的时序信息,但是其他人利用时序信息又速度太慢。让我来,即利用时序信息,又能满足实时性的要求。

5.1  动量补偿

咱先学习一下这个文章最难搞懂的地方,就是开始对输入进行的Warp操作。该操作图示为

 首先一个网络估计粗糙的光流,并生成粗糙的目标帧,这两个再和原始两个帧输入网络,得到精细的光流,和粗糙光流一起得到最后的帧。这个估计光流的网络结构如下:

 网络的损失函数 Huber loss, MSE

 warp的实现如下。关于这个grid_sample函数可以看这篇知乎文章,讲解的超级详细。

def warp(self, img, flow): img_compensated = torch.nn.functional.grid_sample(img, (-flow.permute(0,2,3,1)+self.identity_flow).clamp(-1,1),             padding_mode='border')         return img_compensated

 5.2  时序

空间的有了,咱继续搞搞时空相关性(spatio-temporal correlations)。这里作者对比了early fusion,slow fusion,3D convolution三种。

结果如下表所示,其中SF为单帧,E5为5帧图像早期融合,S5为5帧图像慢速融合,S5-SW为5帧图像3D卷积。可以看出早期融合效果最好。

 6、 Deep Video Super-Resolution using HR Optical Flow Estimation(SOF-VSR, TIP2020)

书接上回,咱说了很多论文考虑在LR空间做还是HR空间做SR,或者HR-LR空间互换对图像做SR。这篇论文说,你看你图片在HR,但是你光流是在LR,这怎么能匹配呢?因此通过一个网络将光流也超分到HR空间,这不就可以了嘛!所以名字就叫HR光流估计。

6.1 贡献点

1)将光流和图像的HR合并到一个SOF-VSR net,对光流的SR可以对图像的SR有帮助

2)提出OFRnet得到HR光流,用一种coarse-to-fine的方式

3)SOTA

6.2 整体架构

 看图学论文,基本上大体架构看上图就能了解。说一点细节。

1)图中每个经过OFRnet输出的HR光流C=2,即分别为X,Y轴运动,详见上篇中论文5对Warp的部分。对应的经过Space2depth后得到的Flow cube就有2*S*S,S为放大尺寸。

2)每次输入图像为T=2*N+1帧,即包含N帧前面的,N帧后面的,1帧中间预测的。图示为N=1的情况。

3)得到的Draft cube包含2*S*S*N(N帧前面的图像生成的Flow cube经过动量补偿后结果) + 1 (中间帧) + 2*S*S*N(后面的)

4)SRnet输出结果通道为1,因为在输入时将RGB转到YCbCr通道,并只是用亮度维作为输入。

6.3 OFRnet

文章通过OFRnet得到HR光流,虚线部分共享权重,采用循环思想对相同网络多次训练。 

1)Level1:F初始化全0; I 为降采的图像 ;三个残差block包含channel split,channel shuffle,depth-wise Conv;第一个卷积C=320, 第二个C=2; 上采使用线性插值

2)Level2:比Level 1多了warp,其余相同

3)Level3: 多了三个卷积Block,sub-pixel Conv 上采

6.4 损失函数

1)超分监督:MSE

2)OFRnet监督:

 对每层warp后的结果与中间帧做L1 loss,同时对光流进行L1 正则化限制其平滑度。

本文标签: 经典视频超分论文总结1