时空超分辨论文阅读笔记(一)---- Zooming Slow-Mo
CVPR 2020
论文地址:https://arxiv.org/abs/2002.11616
代码地址:https://github.com/Mukosame/Zooming-Slow-Mo-CVPR-2020
目录
Abstract
关于时空超分辨(STVSR)模型的设计策略:
- 二阶段模型(two-stage)
- 一阶段模型(one-stage)
模型设计
图1 模型结构图
1. 模型主要由四个部分组成:
-
特征提取模块(feature extractor)
该模块由一个Conv layer + k 1 k_1 k1个残差块组成,负责提取输入帧特征。
-
中间帧特征插值模块(frame feature temporal interpolation module)
该模块根据输入的特征序列信息 { F 2 t − 1 L } t = 1 n + 1 \{F^L_{2t-1}\}^{n+1}_{t=1} {F2t−1L}t=1n+1,预测输出中间帧序列的特征 { F 2 t L } t = 1 n \{F^L_{2t}\}^{n}_{t=1} {F2tL}t=1n。
-
Deformable ConvLSTM
该模块则是对整个特征序列进行一个时间对齐和特征聚合 。
-
高分辨率帧重建模块(HR frame reconstructor)
利用经过时空融合后的特征序列生成最后的高清高分辨视频序列
2.主要模块
2.1 中间帧特征插值模块
二阶段方法(VFI+VSR)中往往是在像素级(pixel-wise)上先生成中间帧,然后对插帧后的序列进行超分辨,为了以one-stage的方式完成插帧和超分,该模块对输入帧特征进行采样融合来生成中间帧特征。根据插帧的经验,要生成中间帧特征,需要利用上下文特征间的双向运动信息来近似估计两侧到中间的运动信息(forward motion information and backwarp motion information),然后再进一步融合这两侧运动信息和上下文特征从而生成中间帧特征。
至于如何估计上下文特征间的双向运动信息,该模块采用了可变形卷积,认为其不规则的采样区域,具备比较强大的对几何物体运动建模的能力,能够从上下文特征中捕捉比较丰富的运动信息,以更好应对包含复杂运动和大幅运动的视频场景,运动信息估计模块如下图所示:
图2 可变形卷积估计运动信息近似生成中间特征
值得注意的是这里的blending操作采用的是简单的线性混合函数来结合
T
1
T_1
T1以及
T
3
T_3
T3,具体公式如下:
F
2
L
=
α
∗
T
1
(
F
1
L
,
Φ
1
)
+
β
∗
T
3
(
F
3
L
,
Φ
3
)
F^L_2 = \alpha*T_1(F^L_1,\Phi_1)+\beta*T_3(F^L_3,\Phi_3)
F2L=α∗T1(F1L,Φ1)+β∗T3(F3L,Φ3)
其中,
α
和
β
\alpha和\beta
α和β 指的是两个1x1的卷积核,而
∗
*
∗则代表的是卷积操作。
2.2 Deformable ConvLSTM
生成完整的视频帧特征序列
{
F
t
L
}
t
=
1
2
n
+
1
\{F^L_t\}^{2n+1}_{t=1}
{FtL}t=12n+1 后,就需要利用该特征序列来生成HR Frames。显然,对于整个序列来说,时间信息是非常重要的,且为了保证生成HR video的时间一致性,需要有效利用序列所隐藏的帧间信息。这篇工作,则考虑使用ConvLSTM来在序列间传播时间信息,同LSTM一样,ConvLSTM通过融合前面传递到当前时间步t的隐藏状态
h
t
−
1
h_{t-1}
ht−1,记忆状态
c
t
−
1
c_{t-1}
ct−1和时间步t的特征,输出
h
t
h_t
ht和
c
t
c_t
ct然后继续向下传播时间信息,大致公式如下所示:
h
t
,
c
t
=
C
o
n
v
L
S
T
M
(
h
t
−
1
,
c
t
−
1
,
F
t
L
)
h_t,c_t = ConvLSTM(h_{t-1},c_{t-1},F^L_t)
ht,ct=ConvLSTM(ht−1,ct−1,FtL)
h
t
−
1
h_{t-1}
ht−1 以及
c
t
−
1
c_{t-1}
ct−1 就是t之前序列的时间信息,得益于记忆状态
c
c
c,ConvLSTM具有长期记忆的能力, 而利用Conv来捕捉t时刻的特征与其之前状态的一个运动信息,但是由于卷积时的感受野比较笑,所以ConvLSTM处理大幅运动的能力有限,而这会导致错误信息的不断传播和累积。
为了更好处理大幅运动的视频,这篇工作在ConvLSTM中嵌入了可变形卷积操作,利用可变形卷积分别捕捉 [ h t − 1 , F t L ] [h_{t-1},F^L_t] [ht−1,FtL] 和 c t − 1 , F t L ] c_{t-1},F^L_t] ct−1,FtL]之间的运行信息并实现时间上的对齐,得到 [ h t − 1 a , c t − 1 a ] [h^a_{t-1},c^a_{t-1}] [ht−1a,ct−1a] ,然后再利用ConvLSTM继续进行时间信息的聚集和特征融合,并向下传播,过程的示意图如下所示:
图3 嵌入可变形卷积的ConvLSTM
同时,为了更好利用全局的时间信息,实际上使用了双向的可变形 ConvLSTM(Bidirectional Deformable ConvLSTM),生成融合了过去和未来信息的特征序列 { h t } t 2 n + 1 \{h_t\}^{2n+1}_t {ht}t2n+1。
2.3 帧重建模块
帧重建模块则是使用了一个时间共享的合成网络,输入当个时间步的隐藏状态
h
t
h_t
ht,然后输出对应的HR frame,具体来说就是使用了
k
2
k_2
k2个残差块提取深度特征信息,然后通过亚像素卷积(sub-pixel)+PixelShuffle重建出HR frames
{
I
t
t
}
t
=
1
2
n
+
1
\{I^t_t\}^{2n+1}_{t=1}
{Itt}t=12n+1。重建损失函数如下:
l
r
e
c
=
∣
∣
I
G
T
t
−
I
t
H
∣
∣
2
+
ϵ
2
l_{rec}=\sqrt {||I^GT_t-I^H_t||^2+\epsilon^2}
lrec=∣∣IGTt−ItH∣∣2+ϵ2
ϵ
2
\epsilon^2
ϵ2是一个经验值,设置为1e-3,为了保证训练的稳定性(我认为:数值稳定---->训练稳定)
3.一些参数设置
-
k1=5,k2=40(5个残差块用于feature extractor,40个残差块用于帧重建部分)
-
将连续的4个奇数帧,通过随机裁剪成32x32的patches作为输入
-
VSR的倍数设置为x4
-
数据增强(随机旋转 9 0 。 , 18 0 。 , 27 0 。 90^。,180^。,270^。 90。,180。,270。以及水平翻转)
-
Adam optimizer
-
从4e-4开始到1e-7,对每个batch使用余弦退火(cosine annealing)。
-
batch = 24
实验部分
表1 各算法性能比较
和其他的二阶段方法(由VFI和VSR中的SOTA模型组合完成)比起来,Zooming Slow-Mo在评估集上的表现都更好,并且由于是一阶段模型,模型的参数量比较小,且推理速度比起其他模型都要快得多。(TiTan XP Vid4上测试)