论文阅读笔记-BasicVSR: The Search for Essential Components in Video Super-Resolution
概述
Video super-resolution (VSR)相较于图像超分拥有更多的组成部分,也更为复杂,因为它们多了一个时间维度。本文系统的分析了一些VSR的基本方法,比较了它们之中的四个组成部分:Propagation, Alignment, Aggregation, and Upsampling.(传播,对齐,聚集,上采样)。在已有方法上做了简单的修改,提出了BasicVSR,在速度和复原效率上显著提高。并且加入信息补充机制和成对传播方法后,延伸出了更具有扩展性的方法IconVSR。
对比总结已有VSR方法
比较上述表格可以发现,传播方式和对齐方法对性能的影响尤为重要。聚集大多采用concat,上采样均采用pixel-shuffle。
BasicVSR结构
传播
传播可以分为局部传播(Local Propagation),单向传播(Unidirectional Propagation),双向传播(bidirectional propagation)。
局部传播:滑动窗口方法在局部窗口中针对LR图像进行局部信息恢复,由于忽略了远处的帧,从而限制了恢复效果。
我们将test sequences分成K段,使用BasicVSR去独立复原每一段。虚线部分段为k=1,其他分段的结果均与k=1做差,得出的PSNR如上图所示。
可以看出分段结果越少(时间维度的感受野增加),PSNR的差值越少,效果越好。这说明了远帧对信息的复原是有利的,不应该被忽略。另外PSNR在每一段的两端最大,说明采用长序列有利于信息的复原。
单向传播:信息从第一帧单向传送到最后一帧。第一帧除了自身之外不从视频序列接收信息,而最后一帧从整个序列接收信息。这种不平衡的方法使得靠前的帧的重建效果不佳。
单向传播和双向传播的比较,在早期的帧中,单向传播PSNR明显很低,说明重建效果差。这种差异随着帧数的增加,更多信息的聚合而逐渐减少,在中间帧中,基本稳定少0.5dB。这说明可以把信息从最后一帧传回第一帧,也就是双向传播。
双向传播:上述问题,可以用双向传播解决。BasicVSR采用双向传播的方式。双向循环网络的前后传播如下:(\(x_i\)表示第i帧,\(x_{i-1}\),\(x_{i+1}\))表示相邻帧,h表示从相邻帧传播的feature,\(F_b\)表示backward传播branches,\(F_f\)表示forward传播branches)
$$
h_i^b = F_b(x_i,x_{i+1},h_{i+1}^b) \\
h_i^f = F_f(x_i,x_{i-1},h_{i-1}^f)
$$
对齐
对齐操作负责把高度相关但是未对齐的图像/特征对齐,这有利于之后的聚集操作。主要的对齐操作分为未对齐,图像对齐和特征对齐。
未对齐:从BasicVSR中去掉了空间对齐部分。在这种情况下,我们直接concat未对齐的特征进行复原。由于一些局部操作(例如卷积操作),拥有较小的感受野,在相应的位置聚集信息时效率低下,PSNR下降了1.19db。说明针对较远的空间位置,采用大的感受野去聚集信息更加重要。
图像对齐: 图像对齐在复原前,通过计算光流从而warp图像,以达到对齐效果。我们在BasicVSR上比较了图像warp和特征warp。由于光流估计的不精确性,warp后的图像不可避免地会出现模糊和不正确的情况,PSNR下降了0.17db。
特征对齐:采用光流估计后,warp特征而非图像,然后将对齐的特征传入的残差块中。
$$
s_i^{\{b,f\}} = S(x_i,x_{i\pm 1}) \\
\bar{h}_i^{\{b,f\}} = W(h_{i\pm 1}^{\{b,f\}},s_i^{\{b,f\}}) \\
h_i^{\{b,f\}} = R_{\{b,f\}}(x_i,\bar{h}_i^{\{b,f\}})
$$
S:flow estimation
W:spatial warpping modules
stack of residual blocks
聚集和上采样
BasicVSR采用基本的聚集和上采样。
聚集采用concat。
上采样采用若干个卷积操作和pixel-shuffle(U表示unsampling module)
$$
y_i = U(h_i^f,h_i^b)
$$
IconVSR
以BasicVSR为主干,引入了两个新的组件:信息填充机制和耦合传播,以减少传播过程中的错误积累,促进信息聚合。
信息填充机制
在封闭区域或图像边界,不正确的对齐可能会导致错误的积累,特别是在框架中采用长期传播的情况下。为了减轻这种错误特征引起的不理想的效果,提出了信息填充机制。
使用一个额外的特征提取器用来提取输入帧、相邻帧的深度特征,然后将提取的特征和对齐的特征通过卷积操作融合。
E: feature extractor
C:convolution
\(I_{key}\):所选关键帧的索引
调整后的特征接着输入残差结构进行进一步调整。
$$
h_i^{\{b,f\}} = R_{\{b,f\}}(x_i,\hat{h}_i^{\{b,f\}})
$$
注意:feature extractor和feature fusion仅针对空间稀疏选择的关键帧,因此计算负担并不是很大。并且这些由关键帧分隔的interval并不是独立的,而是相互连接,从而保持全局信息的传播。(详见耦合传播)
耦合传播
在双向传播中,信息传播是沿着两个相反的方向独立传播的,每个传播分支中的特征都是由局部信息(相邻帧)计算得出的。
如上图b所示(紫线),在耦合传播中,将backward传播的中的特征h_i^b也作为正向传播模块的输入,从而使得传播模块在内部是相互连接的。
$$
h_i^b = F_b(x_i,x_{i+1},h_{i+1}^b) \\
h_i^f = F_f(x_i,x_{i-1},h_i^b,h_{i-1}^f) \\
y_i = U(h_i^f)
$$
通过耦合传播,forward分支接收来自过去和未来帧的信息,从而获得更高质量的特征。此外,由于耦合传播只需要改变分支的连接,因此可以在不引入计算开销的情况下获得性能增益。
训练细节
flow estimator:SpyNet(该操作只针对关键帧)
feature extractor:EDVR-M
flow estimator和feature extractor与整个网络一起fine-tuned
每五帧选择一次关键帧
每一个传播branch里使用30个残差块
loss function:Charbonnier loss
Degradations:训练和测试模型使用×4的下采样- Bicubic (BI) 和 Blur Downsampling (BD)
BI:使用MATLAB function imresize for downsampling.
BD:blur the ground-truths by a Gaussian filter with σ=1.6, followed by a subsampling every four pixels
消融实验
针对IconVSR的两个部件做了消融实验
Information-Refill
在没有信息填充的情况下,warp后的特征中边界像素会消失(如下图a所示),这是由于没有对应的信息来提供给它,丢失信息后复原结果会变差。在加入了填充机制后,在没有精确对齐的区域,信息就可以被“填充”进去,得到后的结果将更有利于之后的特征传播。
在拥有精细细节的地方,上述的现象尤为明显。因为在这些区域中,由于存在对齐错误的情况,相邻帧的信息很难被有效聚集。在有了信息聚集后,额外的特征将会有利于图像的复原。如上图所示,车牌信息根据填充后,得到了有效的复原。
Coupled Propagation
为了得到coupled propagation的消融实验,我们在模型中取消了信息填充机制以比较IconVSR 和BasicVSR。如上图b所示,黄色框的部分表示在之前的帧中,它是封闭的区域(因为该区域在之前的帧中得到的信息有限,无法被有效复原),在BasicVSR的前向传播分支中,无法得到该区域的信息。红色框表示该部分在所有帧中都存在,因此在后面的帧数中,可以得到该区域的大量信息。在coupled propagation中,backward传播的特征将会被有效利用,因此更多的细节和边框都将会被有效重建。