视频超分:RSDN(Video Super-Resolution with Recurrent Structure-Detail Network)

在这里插入图片描述
论文:视频超分与循环的结构-细节网络
文章检索出处:2020 ECCV

摘要和简介

我们提出了一种新颖的循环视频超分辨率方法,它将输入分为结构组件和细节组件,这些组件被馈入到几个two-stream structure-detail 模块所组成的循环单元中。另外还引入了隐藏状态适配模块,它允许当前帧有选择的使用来自隐藏状态的信息,以增强其对外观变化和错误累计的鲁棒性。在超分辨率的性能和速度方面,变表现非常出色。
在这里插入图片描述

方法

Overview

为了处理时间序列,我们的模型类似于FRVSR,RLSP。但是我们并没有在每个时间步上将整个帧馈入到循环网络里,而是将每个输入帧分解为结构组件和细节组件两部分。随着时间的推移,两种信息在SD块中相互交互,这不仅可以增强每个帧的结构,还可以恢复丢失的细节。另外,我们将隐藏状态视为历史字典,这使我们能够突出潜在的有用信息并消除过时的信息。流程如下 (a)(其中 S ^ t ± n \hat S_{t±n} S^t±n 代表结构组件, D ^ t ± n \hat D_{t±n} D^t±n 代表细节组件, H t ± n S D H_{t±n}^{SD} Ht±nSD 代表隐藏状态):在这里插入图片描述
首先我们使用双三次下采样和上采样的操作从 I t L R I_{t}^{LR} ItLR中获取结构分量 S t L R S_{t}^{LR} StLR(构造还可以使用其他的方式,eg:低通道滤波和高通道滤波),细节分量 D t L R D_{t}^{LR} DtLR表示为原图像和结构分量之间的差。为了简单起见,我们对循环单元中的两个组件采用对称的架构。我们举t时刻D分支为例来说明其架构设计(上图 (b))。沿通道轴将{ D t − 1 L R , D t L R , D ^ t − 1 , h ^ t − 1 S D D_{t-1}^{LR},D_{t}^{LR},\hat D_{t-1},\hat h_{t-1}^{SD} Dt1LR,DtLR,D^t1,h^t1SD}进行叠加,然后输入到一个3x3的卷积层和几个SD块中进一步进行整合。 h t D h_t^D htD代表在几个SD块之后的输出特征。它经过一个3x3卷积层和一个上采样层以产生高分辨率细节分量 D ^ t H R \hat D_t^{HR} D^tHR。S分支的设计方式与此类似,将 h t S h_t^S htS h t D h_t^D htD组合在一起以生成HR图 I ^ t H R \hat I_{t}^{HR} I^tHR和新的隐藏状态 h t S D h_t^{SD} htSD
在这里插入图片描述

循环 Structure-Detail 网络

每个帧都可以分解为结构组件和细节组件。结构组件图像中的低频信息以及帧之间的运动进行建模,而细节部分则捕获了精细的高频信息并且外观会略有变化。这两个组件在高分辨率重建中会遇到不同的困难,故应该单独处理。
在这里插入图片描述

隐藏状态的适应

之前模型处理隐藏状态并不是最佳的选择,并且可能会损害最终的性能。下图是在某个时间四个通道的可视化,可以看到四个通道之间存在着一些差异。在这里插入图片描述
为此,我们提出了隐藏状态适应模块(HSA),以使隐藏状态适应当前帧的外观。对于处于隐藏状态的每个单元,如果其外观与当前帧相似,则应该突出显示,否则应该抑制。我们为当前帧中的每个位置生成特定的过滤器,并使用这些过滤器去计算它们与隐藏状态的每个通道中对应位置的相关性。 具体的说,这些空间滤波器 F t θ ∈ R H ∗ W ∗ ( k ∗ k ) F^{\theta}_t∈R^{H*W*(k*k)} FtθRHW(kk)是通过将当前帧 I t L R ∈ R H ∗ W ∗ 3 I^{LR}_t∈R^{H*W*3} ItLRRHW3馈入到具有ReLU的卷积层中获取的。然后,每个滤波器 F t θ ( i , j ) F^{\theta}_t(i,j) Ftθ(i,j)应用于以位置(i,j)为中心的 h t − 1 S D h_{t-1}^{SD} ht1SD的k*k窗口,以进行滤波,此过程可以表述为:在这里插入图片描述
进一步将其提供给Sigmoid激活函数,最终通过逐像素乘法计算出适应的隐藏状态。

损失函数

我们使用三个损失项来训练网络,一个用于结构部件,一个用于细节部件,一个用于整个框架。使用三个超参数来平衡这三个损失的权重。N帧序列的损失公式为:
在这里插入图片描述
我们使用Charbonnier损失来计算HR与重建目标之间的差异:在这里插入图片描述

实验

数据集:Viemo-90K。从90K中选取7K(每个都是7帧)作为测试集,称作Vimeo-90K-T,同属为测试集的还有Vid4,UMD10。训练集则是通过对256x256的HR图像进行 σ = 1.6 \sigma=1.6 σ=1.6的高斯滤波和4x下采样。
训练:base模型由5个SD模块组成,其中每个卷积层都有128个通道,即 RSDN5-128。通过添加更多的SD块,我们可以获得 RSDN7-128,RSDN9-128。为了提高效率,我们对HSA模块采用K=3,当处理序列第一帧时,我们对先前的估计细节 D ^ t − 1 \hat D_{t-1} D^t1 S ^ t − 1 \hat S_{t-1} S^t1 h t − 1 S D h_{t-1}^{SD} ht1SD都使用零初始化。使用Adam优化器,其中 β 1 \beta_1 β1=0.9, β 2 \beta_2 β2=0.999。mini_batch为16,初始学习率设置为1x 1 0 − 4 10^{-4} 104,每60-70 epochs使学习率缩小x0.1,所有试验都在Nvidia Tesla V100 GPU上运行。
消融实验:模型1和模型4实现了相似的性能,其中1的SSIM更高,模型4的PSNR更高。这意味着简单地将输入分为结构和细节组件并不能很好的工作,通过引入信息交换组件,使其获得更好的性能。另外还可以发现,HSA也可以使模型获得进一步的提升。
在这里插入图片描述
将结构组件,细节组件,整个帧的权重设置为(1,1,1)可以获得PSNR/SSIM=27.79/.08474的良好性能。当权重设置为(1,0.5,1)和(0.5,1,1)时,性能会下降。在这里插入图片描述
不同模型对比:在这里插入图片描述

仅供学习使用,请勿转载。

猜你喜欢

转载自blog.csdn.net/Srhyme/article/details/108782797