MuCAN: Multi-Correspondence Aggregation Network for Video Super-Resolution
1.总结
这篇文章作者主要在于突出利用多帧输入里面帧间和帧内的信息,对此作者分别提出了Temporal Multi-Correspondence Aggregation Module 和 Cross-Scale Nonlocal-Correspondence Aggregation Module,相比于以往的视频超分,这两个模块的功能我认为可以类似于帧间对齐和超分这两部分的理解。
首先对于视频超分,通常分为四个模块:特征提取——对齐——融合——重建。
视频超分以往的方法作者是分成了三种:
- 没有任何明显的对齐,直接使用3D卷积处理视频序列的输入。但是这种方法明显的缺点是计算量大。而且对于相邻帧的细节信息提取不够,噪声影响也大。
- 第二种方法是使用光流作为运动补偿。这种方法通常包括了光流的预测和超分两个任务,对于大的运动使用光流信息来辅助重建时比较困难的。同时预测的光流对重建的质量影响也比较大。
- 第三种方法是使用可形变卷积 deformable convolution networks。作者的方法也是这种方法之一。
2.方案介绍MuCan
对于 2 N + 1 2N + 1 2N+1 帧连续的低分辨率输入序列 { I t − N L , . . . , I t L , . . . , I t + N L } \{I_{t-N}^L,...,I_t^L,...,I_{t+N}^L\} {It−NL,...,ItL,...,It+NL},预测中间帧的高分辨率图片 I t H I_t^H ItH。模型包括三部分:
- a temporal multi-correspondence aggregation module (TM-CAM)
- a cross-scale nonlocal-correspondence aggregation module(CN-CAM)
- a reconstruction module
2.1 Temporal Multi-Correspondence Aggregation Module
对于多帧输入来说,在建立对应关系时,大的运动需要效处,准确的小运动很重要。作者设计了分层的对应聚合策略,可同时处理大和细微的运动。
结合图3和图四,对中间帧和相邻帧提取特征,逐渐地编码为分辨率变低的高层特征(high-level/low-resolution)。那么high-level/low-resolution就有大的运动信息,low-level/high-resolution就有精细的亚像素偏移。作者认为与直接在图像空间中回归流场的许多方法不同,我们的模块在特征空间中起作用。 它对噪声更稳定且更鲁棒。
对于AU模块 aggregation unit,在图四有详细的说明。在相同的特征层,比如第三层上,对于中间帧某个位置,在相邻帧中不是用相应位置的值计算,而是在一个距离范围内
p
t
−
p
t
−
1
<
d
p_t -p_{t-1} < d
pt−pt−1<d,选取相似度最像的前K个(top k),集合起来,同时利用中间帧和相邻帧在这一层的特征得到每个位置的卷积权重,将集合起来的特征和每个位置的权重卷积,得到对齐的特征。
其中相似度比较
c
o
r
r
(
f
t
−
1
l
,
f
t
l
)
=
f
t
−
1
l
∣
∣
f
t
−
1
l
∣
∣
⋅
f
t
l
∣
∣
f
t
l
∣
∣
corr(f_{t-1}^l, f_t^l) = \frac{f_{t-1}^l}{||f_{t-1}^l||} \cdot \frac{f_{t}^l}{||f_{t}^l||}
corr(ft−1l,ftl)=∣∣ft−1l∣∣ft−1l⋅∣∣ftl∣∣ftl
得到相似度最高的前K个对应patches
(
f
ˉ
t
−
1
,
1
l
,
.
.
,
f
ˉ
t
−
1
,
K
l
)
(\bar f_{t-1,1}^l, .. ,\bar f_{t-1,K}^l)
(fˉt−1,1l,..,fˉt−1,Kl),聚合起来
f
ˉ
t
−
1
l
=
A
g
g
r
(
[
f
ˉ
t
−
1
,
1
l
,
f
ˉ
t
−
1
,
2
l
,
.
.
.
,
f
t
−
1
,
K
l
]
)
\bar f_{t-1}^l = Aggr([\bar f_{t-1,1}^l, \bar f_{t-1,2}^l,..., f_{t-1,K}^l])
fˉt−1l=Aggr([fˉt−1,1l,fˉt−1,2l,...,ft−1,Kl])
A
g
g
r
Aggr
Aggr是一个卷积层操作。
然后作者设计了一个pixel-adaptive的聚合策略,不同的位置有不同的聚合模式,权重图是通过
F
t
−
1
l
F_{t-1}^l
Ft−1l和
F
t
l
F_t^l
Ftl通过一个
H
×
W
×
s
2
H \times W \times s^2
H×W×s2 (当patch大小为
s
×
s
s \times s
s×s 时)得到的。
W
t
−
1
l
=
C
o
n
v
(
[
F
t
−
1
l
,
F
t
l
]
)
W_{t-1}^l = Conv([F_{t-1}^l, F_t^l])
Wt−1l=Conv([Ft−1l,Ftl])
相邻帧
F
ˉ
t
−
1
l
\bar F_{t-1}^l
Fˉt−1l最后位置
p
t
p_t
pt的值为
F
ˉ
t
−
1
l
(
p
t
)
=
f
ˉ
t
−
1
l
⋅
W
t
−
1
l
(
p
t
)
\bar F_{t-1}^l(p_t) = \bar f_{t-1}^l \cdot W_{t-1}^l(p_t)
Fˉt−1l(pt)=fˉt−1l⋅Wt−1l(pt)
所以可以得到一系列对齐的邻帧特征图
{
F
ˉ
t
−
N
0
,
.
.
.
,
F
ˉ
t
−
1
0
,
F
ˉ
t
+
1
0
,
.
.
.
,
F
ˉ
t
+
N
0
}
\{\bar F_{t-N}^0 ,..., \bar F_{t-1}^0, \bar F_{t+1}^0, ... ,\bar F_{t+N}^0\}
{Fˉt−N0,...,Fˉt−10,Fˉt+10,...,Fˉt+N0}.
2.2 Cross-Scale Nonlocal-Correspondence Aggregation Module
相似的图案广泛存在于自然图像中,可以提供丰富的纹理信息。 自相似可以帮助恢复细节。 作者设计了一种跨尺度的聚合策略,以捕获跨越不同特征分辨率的非本地对应关系,如图5所示。
M
t
s
M_t^s
Mts 表示时间
t
t
t时刻在第
s
s
s层的特征。首先下采样特征
M
t
0
M_t^0
Mt0得到特征金字塔
M
t
s
+
1
=
A
v
g
P
o
o
l
(
M
t
s
)
,
s
=
0
,
1
,
2
M_t^{s+1} = AvgPool(M_t^s), s={0,1,2}
Mts+1=AvgPool(Mts),s=0,1,2
对于一个在
M
t
0
M_t^0
Mt0,
p
t
p_t
pt处的查询块
m
t
0
m_t^0
mt0,在其他的scale使用一个non-local search,
m
~
t
s
=
N
N
(
M
t
s
,
m
t
0
)
,
s
=
1
,
2
,
3
\widetilde m_t^s = NN(M_t^s, m_t^0), s= {1,2,3}
m
ts=NN(Mts,mt0),s=1,2,3.
m
~
t
s
\widetilde m_t^s
m
ts表示
M
t
s
M_t^s
Mts里面跟
m
t
0
m_t^0
mt0最相似的patch。在merge之前,还是用另一个self-attention模块来判断信息是否有用,最后聚合的特征写为
m
ˉ
t
0
=
A
g
g
r
(
[
A
t
t
(
m
t
0
)
,
A
t
t
(
m
~
t
1
)
,
A
t
t
(
m
~
t
2
)
,
A
t
t
(
m
~
t
3
)
]
)
\bar m_t^0 = Aggr([Att(m_t^0), Att(\widetilde m_t^1), Att(\widetilde m_t^2), Att(\widetilde m_t^3)])
mˉt0=Aggr([Att(mt0),Att(m
t1),Att(m
t2),Att(m
t3)])
这里的Att和Aggr也是通过卷积实现。
2.3 Edge-Aware Loss
通常通过VSR方法生成的重建高分辨率图像会出现锯齿状边缘。所以作者提出一个edge-aware loss得到比较好的边缘效果。
首先使用一个边缘提取器从gt HR图像中提取边缘,边缘的权重loss会更大,让网络学习更注意边缘。所以作者使用一个拉普拉斯滤波器提取边缘
I
t
E
I_t^E
ItE。最终在
p
t
p_t
pt处的二值mask可以记为
B
t
(
p
t
)
=
{
1
,
I
t
E
(
p
t
)
≥
δ
0
,
I
t
E
(
p
t
)
≤
δ
B_t(p_t)=\left\{ \begin{aligned} 1, I_t^E(p_t) \geq \delta\\ 0, I_t^E(p_t) \leq \delta \end{aligned} \right.
Bt(pt)={1,ItE(pt)≥δ0,ItE(pt)≤δ
最后应用Charbonnier Loss
L
=
∣
∣
I
^
t
H
−
I
t
H
∣
∣
2
+
ϵ
2
L = \sqrt{||\hat I_t^H - I_t^H||^2 + \epsilon^2}
L=∣∣I^tH−ItH∣∣2+ϵ2
最终总的loss
L
f
i
n
a
l
=
L
+
λ
∣
∣
B
t
∘
(
I
^
t
H
−
I
t
H
)
∣
∣
L_{final} = L + \lambda ||B_t \circ (\hat I_t^H - I_t^H)||
Lfinal=L+λ∣∣Bt∘(I^tH−ItH)∣∣
∘
\circ
∘表示element-wise相乘
3.实验部分
3.1使用数据集
REDS( REalistic and Dynamic Scenes dataset ),训练、验证、测试集分别由240,30,30个视频序列,每个序列有100帧,每一帧大小为
720
×
1280
720 \times 1280
720×1280。作者实际训练的时候,训练和验证集分为了266和4个。
Vimeo-90K数据集,作者选择的是92701 7-frames的数据集,图片大小为
448
×
256
448 \times 256
448×256,训练和测试分别由64612和7824.
使用了PSNR和SSIM评价指标
3.2实验结果
融合学习
TM-CAM中top-k,K的选择
和其他方法的比较结果