论文地址:https://arxiv.org/abs/2107.05307
代码地址:https://github.com/Thmen/EGVSR
论文小结
本文的方法名为 EGVSR ,Efficient and Generic video Super-Resolution,意味通用的高效视频超分方法,基于时空对抗学习得到时空相干性。论文中称EGVSR在GPU上能达到 4K@29.61FPS,1080p@66.9FPS,720p@70.0FPS 的速度,github上说使用的GPU为2080Ti。。但其在FPGA上制定了型号 Xilinx KC705,使用的是基于LUT的Winograd卷积方法,速度为 4K@11.05FPS,1080p@44.32FPS,720p@99.44FPS。文中的速度加速都是与TecoGAN对比的。
在方法上,其对比的算法大多是2017年和2018年发布的网络模型。EGVSR借鉴的模型为TecoGAN,整体结构基本是一样的,只做了backbone的更改,使用了ShuffleNet V2,ResNet 和 ResBlock轻量化了FNet和SRNet。在结构上,作者还比较了上采样的几种方式,最后采用了Sub-pixel Convolution的上采样。
此外,作者在文中介绍了融合Conv和BN的方法介绍,Winograd卷积的加速。前者是推理时较为常用的一种无损减少算子和减少推理时间的操作,后者是较为常见的一种卷积替代方式,用以加速推理。
论文简介
VSR问题,就是视频超分问题。利用连续的视频帧来减缓单帧超分问题“凭空想象”的压力。在单帧图像上,有些目标在视频中快速移动会出现运动模糊现象。所以在目标帧和它的相邻帧会存在亚像素位置。因此,对于VSR算法来说,有效的运动补偿算法对VSR相邻帧对齐是至关重要的。
作者认为,使用GAN的方法可以产生比传统生成模型更好的感知质量。
为满足4K分辨率以上的超大分辨率视频的需求,本文借鉴ShuffleNet V2,为EGVSR构建了轻量级的网络结构。生成器部分划分为FNet模块和SRNet模块,分别用于估计光流和进行视频帧超分。下图显示了EGVSR生成器部分的框架和推理阶段的数据流。
借鉴的TecoGAN的生成器图如下:
FNet的结构是参照RNN中的encoder-decoder结构来估计密集的光流,并为相邻帧对其操作(Warp)提供运动补偿信息。encoder部分使用了三个编码单元,每个编码单元由{Conv2d -> LeakyReLU -> Conv2d -> LeakyReLU -> MaxPool2}
组成。解码部分使用三个解码单元,每个解码单元由{Conv2d -> LeakyReLU -> Conv2d -> LeakyReLU -> BllinearaUpx2}
在SRNet上,EGVSR参考了ResNet的结构,采用了轻量级残差块ResBlock来构建SRNet。ResBlock的结构为{(Conv2d -> ReLU -> Conv2d) + Res}
。为了考虑质量和速度的平衡,SRNet使用了10个ResBlock,并在EGVSR网络的末端使用轻量级Sub-pixel Convolution作为输出上采样方法,结构为{PixelShufflex4 -> ReLU -> Conv2d}
。
EGVSR的其余模块,保持TecoGAN的结构。
Efficient Upsampling Method
有两种上采样方式:(1)基于插值的上采样;(2)基于学习的上采样。所有插值上采样方法都有一个明显缺陷------会导致图像边缘模糊。所以本文采用基于学习的上采样方法。
基于学习的上采样方法有三种:(1)Resize Convolution(使用双线性插值方法,再接着Conv);(2)Deconvolution;(3)Sub-pixel Convolution;下表是详细的设定:
如下表所示,可看出亚像素卷积有最好的性能表现。虽然Resize Conv的参数量最少,但由于插值的计算复杂度高,处理时间瓶颈同时存在于CPU和GPU平台上。三种上采样的运行时间,亚像素卷积的性能要优于其他两种,对比Resize Conv方法,在CPU上有1.77倍的加速,在GPU上有1.58倍的加速。
论文实验
论文的实验,对比的都是2017年和2018年的方法。在VID4数据集上,对比的方法有如下:(1)基于MC(动作补偿)的非GAN方法 VESPCN、SOFVSR;(2)没有详细MC的非GAN方法 DUF ;(3)基于MC的光流和基于GAN方法的 EGVSR 网络。
各网络的重构表现如下图所示:
几个方法的定量指标如下表所示:作者认为LPIPS更有效,更贴近人眼的主观评价。基于GAN的方法,LPIPS应该都更好一些。
评估视频质量和时间一致性
为了评估时间一致性,引入两个时间指标 tOF 和 tLP ,两指标的定义如下:tOF评估序列中估计的运动的像素级差异;tLP用深度特征图来衡量感知变化。这两个值都是越小越平滑。
t
O
F
=
∥
O
F
(
b
t
−
1
,
b
t
)
−
O
F
(
g
t
−
1
,
g
t
)
∥
1
t
L
P
=
∥
L
P
(
b
t
−
1
,
b
t
)
−
L
P
(
g
t
−
1
,
g
t
)
∥
1
\begin{aligned} tOF&=\|OF(b_{t-1},b_t)-OF(g_{t-1},g_t)\|_1 \\ tLP&=\|LP(b_{t-1},b_t)-LP(g_{t-1},g_t)\|_1 \end{aligned}
tOFtLP=∥OF(bt−1,bt)−OF(gt−1,gt)∥1=∥LP(bt−1,bt)−LP(gt−1,gt)∥1
在三个数据集VID4,TOS3和GVT72上,比较VESPCN、SOFVSR、FRVSR、TecoGAN和EGVSR的表现,如下图表所示:时间度量指标表明时空对抗模型比传统模型有更好的性能。
如上表所示,TecoGAN在TOS3上的表现比其它所有方法都要好。EGVSR与TecoGAN仍有差距(
−
4.74
%
-4.74\%
−4.74% ~
−
11.01
%
-11.01\%
−11.01%)。但如下图所示,从主观感知的角度上看,两者表现难以区分,甚至在“Bridge”上EGVSR与GT更接近。
在VID4数据集上,EGVSR的指标甚至比TecoGAN要好。
运行速度
各模型在CPU和GPU上的运行速度如下:第2行是各VSR的参数量;第3行是各VSR的计算量;后两行是4倍VSR在不同分辨率下的平均FPS。
后面又提出了一个自己衡量VSR算法的指标,用来平衡单帧图片的各指标以及时间一致性指标,最后的表现如下图所示:EDVR和RBPN的具体表现是从公开数据集上获得的。