这篇文章是2021年的AAAI,和EDVR、BasicVSR、BasicVSR++是同一批作者。文章最重要的贡献在于①用一个统一的数学表达式去归纳flow-based对齐(如TSTN)和flow-free对齐(如TDCN);②得出了两种对齐方式高度相似性;③推出了offset-fidelity
作为loss来缓解DCN训练不稳定的问题,这也为后续使用DCN来做对齐的VSR方法解决了后顾之忧。此外,文章还提出了一些关于对齐方面的小知识点,并通过实验进行验证。总的来说,虽然这篇文章的提出的大部分内容大家之前就都明白,但是它的存在为后续的VSR研究提供了理论上的支持。
参考文档:
①HeatMap的理解与生成
Understanding Deformable Alignment in Video Super-Resolution
Abstract
- STN、DCN(或DCN-v2)的提出是为了适应图片的空间几何变换,即增加网络的空间不变性,但后来发现其可以适用于VSR的对齐中,通过使用flow-based(诸如STN方法)或flow-free(诸如DCN方法)来对支持帧做空间warp,从而实现它与参考帧的对齐。
- 这篇文章着重研究了flow-free类对齐和flow-based类对齐之间的关系:①首先当DCN只学习1个offset的时候,它和flow-based对齐是高度相似的;②其次作者将DCN分解成一个spatial warping和1个3D卷积(或2D卷积),从而将DCN和flow-based对齐归纳成1个表达式,关键的区别只是在offset的个数上,flow-based相当于只有1个offset。这种新型的表达式既可以表示flow-based对齐,也可以表示DCN的对齐,此外,它的offset不像DCN那样限制死了——卷积核大小的平方,而是可以为任意数值 N N N,如当 N = 1 N=1 N=1表示flow-based对齐。
- 一定量的offset diversity(即offset的个数)可以增加对齐的质量,从而对后续SR重建产生不错的表现力。
- 作者推出了一种
offset-fidelity
损失函数来引导光流(flow)辅助的offset学习,并通过实验证明这种loss可以避免offset的溢出以及缓解DCN训练不稳定问题。 - 作者对DCN的分解为flow-based对齐提供了offset diversity,从而加强了flow-based对齐本身的探索能力,提高了对齐和重建的性能。
Note:
- 第2点的
spatial warping
和STN、DCN的warp是不一样的,前者只是纯粹将DCN的卷积对象进行变形,为DCN类对齐和flow-based对齐提供统一的表达式;而后者指代的是重采样过程,或者说是一种运动补偿(对齐模块的最后阶段)。 - DCN的offset可以看成是
flow-like
,offset是一种运动信号,所以其中的每一个运动信号都可以看成是一种光流。
1 Introduction
在VSR中,对齐是一个必要的步骤,通过对齐可以建立其时间相关性(连续性)以及空间相关性来帮助后续融合SR网络获取更多细节。对齐主要分两类:flow-based,诸如VESPCN、Robust-LTD等;flow-free,诸如TDAN、EDVR等,它们隐式地完成运动补偿。之所以是隐式,是因为并不是像flow-based那样通过诸如SPyNet或者PWC-Net等那样获取光流,然后在每个位置根据光流(运动矢量)进行运动补偿(估计)或者说是warp,而是通过学习flow-like的offset,然后在基于offset的新位置出进行卷积提取特征进行warp,这一套流程和flow-based的目的是一样的都是进行空间变换,但是其步骤并不是严格的运动估计+运动补偿的过程。
这篇文章的核心是两个问题 \colorbox{yellow}{这篇文章的核心是两个问题} 这篇文章的核心是两个问题:
- 显式对齐(flow-based)和隐式对齐(flow-free或者说DCN-based)之间的联系是什么?
- 我们之前都知道,DCN这种对齐方式要比flow-based有更好的对齐效果,从而使得最终SR重建效果更好,那么这种提升来自于哪里呢?其实在TDAN这篇文章中,作者有提到是因为DCN的探索能力更强,它每一个位置的warp都基于1个卷积核大小的特征信息,而flow-based每一个位置的warp只取决于1个位置的光流,容错率较低。作者在这篇文章中会通过一种共同表示两种对齐方式的统一式子来更深一步研究这种探索力机制。
Q
1
Q_1
Q1:作者通过将DCN分解成1个spatial warping和1个3D卷积的过程,这种方式会将2种对齐方式用统一的表达式体现出来,然后可以直接看出他们的差异仅仅只是在offset的个数上(在这里我们将flow看成是一种offset)。因此flow-based方法在每个位置上只需要学习一个offset,如下图所示(
X
、
Y
X、Y
X、Y方向都统称为1个offset):
这和我们flow-based实际在对齐过程中的学习也是一致的:左边的光流
Δ
\Delta
Δ我们可以通过简单的CNN堆叠(VESPCN)、SPyNet(BasicVSR)或者是PWC-Net预测得到;而flow-free对齐通过CNN学习多个offset,在DCN中,每次offset的个数是卷积核大小的平方数。从这里就可以直观的看出为何说DCN的探索能力更强,因为其每次的warp都是基于许多个运动信号(offset)综合产生的,而flow-based只取决于1个offset。
Q
2
Q_2
Q2:在第一个问题中,我们通过DCN的分解知道了2种对齐的关键差别在于offset的个数,因此直观来看offset的个数就是导致DCN性能更佳的原因,作者在后面第4节也证明了这一点。
上述2个问题都离不开offset diversity这个关键词,作者通过研究表明这个offset发现了2个有趣的点:
- DCN中学得的offset和光流(运动矢量)有着类似的表现形式,这表明flow-free对齐和flow-based对齐有着很高的相似度。
- 多样的offset比单一的offset能产生更好的SR重建性能。因为多样的offset可以互相补充特征信息来获取更强的信息探索能力,这种强探索能力可以解决遮挡问题和大运动产生的warp误差问题。这里需要分别解释下:①对于遮挡问题,如下图所示:在对齐过程中,支持帧没有参考帧中关于手挡住树枝的信息,所以对齐中会出现问题,DCN的做法是在一个卷积核范围内,搜刮多方信息(多个offset)来输出最终warp的像素值;而flow-based其探索能力差,只取决于1个光流信号,所以通过光流决定的最终warp位置一般不会有被遮挡物体的特征信息,大多都是和树枝无相关的物体,比如说是手指,那么这样的warp最终会导致对齐的支持帧这一部分出现重影或其他artifacts。②对于大运动下的误差问题,个人认为这是一个方差问题(衡量稳定性的指标),DCN最终warp的输出是多个像素采样(卷积)的综合结果,而flow-based每个位置的warp只取决于1个光流,故其在大运动光流下的变化就会比较不稳定,这就有点类似于随机梯度下降(单样本)和小批量随机梯度下降一样。而这种差距在小运动或平缓运动下就体现不出来,因为光流本身就小,很难体现出来变化的不稳定性。
为了验证上述两个点,作者做了相关实验,实验结果如下:
5帧视频可以看成是物体不动,摄像机沿着右下方移动;图1是在flow-based对齐方法中学习到的光流,比如VESPCN这种;图2和图4是DCN中同一个offset窗口内(大小为卷积核大小的平方)不同的offset;图3是纯flow-based,通过这篇文章PWC-Net: CNNs for Optical Flow Using Pyramid, Warping, and Cost Volume提出的PWCNet来计算光流;图5和图6分别是flow-based和flow-free最终的对齐feature map。
从实验中我们可以得出结论:
- 无论是DCN还是单个offset版本的flow-based对齐(本文提出的),单个offset都和光流高度相似,只是存在很小的差别。
- 图2和图4可知:DCN可以学习到多种不同的offset,图2学习到了相机的右向运动(汽车相对向左,所以呈现黄色);图4学习到了相机下向运动(汽车相对向上,所以呈现偏红色),所以DCN探索捕捉到了更丰富全面的运动信息,而图1中flow-based只能捕捉到单一的运动。这一点在最终的对齐中得到了验证,相比基于flow-based的图5,基于DCN的图6获取到了更多的细节。
- DCN可以捕捉更复杂的运动,而flow-based只能捕捉单一的运动。
- 由于DCN具有较强的探索能力,所以其对齐不容易出现artifacts;而flow-based对齐方法由于高度依赖于运动估计的准确性,每个位置的warp仅仅取决于1个光流信号,所以容错率低,不正确的光流就会很容易出现artifacts,如图5的轮胎所示。
Note:
- 此外需要指出的一点是光流图的颜色代表着物体运动的方向,光流图颜色的深浅代表着运动的速率。
Flow-free vs Flow-based
\colorbox{hotpink}{Flow-free vs Flow-based}
Flow-free vs Flow-based
①基于DCN的对齐方式以强探索能力著称,可以有效应对遮挡、大运动问题(注意是缓解,而不是解决,想通过DCN解决大运动问题需要级联多个DCN且基于不同的分辨率做可变形卷积,即EDVR的做法)。
②先不讨论特征校正的问题,Flow-based对齐每个位置的warp只取决于1个运动矢量,因此其高度依赖于运动估计的准确性,容错率较低,比flow-free更容易出现artifacts,虽然flow-free也会出现artifacts,但是其基于其较丰富的offset信息使得artifacts很少出现。
③此外flow-based一般都是two-stage,速度相对较慢。
Offset-fidelity
\colorbox{dodgerblue}{Offset-fidelity}
Offset-fidelity
基于上述对比,我们在对齐上最佳的选择就是DCN这种flow-free做法,但是DCN的一大缺陷在于训练不稳定以及offset容易溢出问题,为了解决这个麻烦,作者提出了以offset-fidelity
为损失函数来实现flow-based引导DCN中offset的学习,实验证明这种策略确实稳定了offset的训练。
通过DCN的分解成本文的新型表达式之后,我们明白了2种对齐方式的差异在offset的个数上,因此对于基于flow-based方法的对齐来说,增加offset的个数是提升对齐性能的关键;此外本文提出的新型表达式并不像DCN那样限定offset diversity(卷积核大小的平方),而是可以任意offset个数,因此这种分解之后的新表达拥有更大的灵活性。
小结一下本文的贡献:
- 探究了flow-free和flow-based对齐之间的关系——两者可以使用同一个表达式来归纳,只不过offset个数不同。
- 作者研究了offset diversity的好处,表明offset的个数是提升对齐质量和后续SR重建的关键。
- 在保持DCN中offset多样性的同时,使用offset-fidelity损失函数来稳定DCN的训练。
- 通过分解DCN形成新的表达式为flow-based对齐方法增加表现力提供了方案——增加offset的个数。
2 Related Work
略
3 Unifying Deformable and Flow-Based Alignments
3.1 Deformable Convolution Revisited
首先简要介绍下DCN,假设可变形卷积核为
3
×
3
3\times 3
3×3,
p
,
p
k
,
Δ
p
k
,
Δ
m
k
p,p_k,\Delta p_k,\Delta m_k
p,pk,Δpk,Δmk分别为输出点坐标;卷积核内第
k
k
k个位置,
p
k
∈
{
(
−
1
,
−
1
)
,
(
−
1
,
0
)
,
⋯
,
(
1
,
1
)
}
p_k\in \{(-1,-1),(-1,0),\cdots,(1,1)\}
pk∈{(−1,−1),(−1,0),⋯,(1,1)};offset;modulation mask。此外
n
n
n表示卷积核的大小,此处
n
=
3
n=3
n=3。
令
x
,
y
x,y
x,y表示输入和输出,则DCN-v2的表达式为:
y
(
p
)
=
∑
k
=
1
n
2
w
(
p
k
)
⋅
x
(
p
+
p
k
+
Δ
p
k
)
⋅
Δ
m
k
.
(1)
y(p) = \sum^{n^2}_{k=1} w(p_k) \cdot x(p+p_k+\Delta p_k) \cdot \Delta m_k.\tag{1}
y(p)=k=1∑n2w(pk)⋅x(p+pk+Δpk)⋅Δmk.(1)Note:
- DCN-v2是DCN的进阶版,增加了modulation mask来控制offset的幅度且 Δ m k ∈ [ 0 , 1 ] \Delta m_k\in [0,1] Δmk∈[0,1],其相当于一种注意力机制,给予给DCN表现力增加最多的offset设置更多的权重。
- 关于更多DCN的介绍可参考我的另一篇深度学习之DCN;关于更多DCN-v2的介绍可参考我的另一篇深度学习之DCN-v2。
- 实际操作中,我们会将输入的 C C C个通道进行分组卷积,假设为 G G G组,每组的通道数为 C / G C/G C/G,每组只学习1份深度为 n 2 n^2 n2的offset参数矩阵,因此一共学习 n 2 ⋅ G n^2\cdot G n2⋅G张offset特征图。
3.2 Deformable Alignment
根据TDAN、EDVR可知,DCN中offset的学习都是基于参考帧特征和支持帧特征的concat(或者说是Early fusion,时间融合的一种方式,利用了视频之间的时间相关性,而图像上的卷积由于是局部的,所以利用了图像的局部空间相关性。
VSR中的DCN属于一种变体,因为它的输入是时间相关的相邻帧,所以我称之为Temporal-DCN(TDCN),其示意图如下:
设
F
t
,
F
t
+
i
F_t,F_{t+i}
Ft,Ft+i分别为参考帧和支持帧,对齐的目的就是获取和参考帧对齐的对齐版本的支持帧
F
^
t
+
i
\hat{F}_{t+i}
F^t+i,所以是要在支持帧上进行空间变换,而offset是由参考帧和支持帧共同学习得到的,数学表达式如下:
F
^
t
+
i
(
p
)
=
∑
k
=
1
n
2
w
(
p
k
)
⋅
F
t
+
i
(
p
+
p
k
+
Δ
p
k
)
⋅
Δ
m
k
.
(2)
\hat{F}_{t+i}(p) = \sum^{n^2}_{k=1} w(p_k)\cdot F_{t+i}(p+p_k+\Delta p_k)\cdot \Delta m_k.\tag{2}
F^t+i(p)=k=1∑n2w(pk)⋅Ft+i(p+pk+Δpk)⋅Δmk.(2)Note:
- 参考帧只是作为一个标签,其只用于求取offset,并不在DCN学习的计算图中。
- 可以看出DCN的学习中,offset diversity是固定的,即卷积核大小的平方 n 2 n^2 n2。
3.3 Relation between Deformable Alignment and Flow-Based Alignment
这一节开始介绍DCN类对齐方法和flow-based对齐的联系,作者将两种对齐方法用统一的表达式进行描述。具体而言,两种对齐的联系可通过将DCN的过程分解成1个spatial warping和1个3D卷积的过程来刻画。
令
x
k
(
p
)
=
x
(
p
+
p
k
+
Δ
p
k
)
x_k(p) = x(p+p_k+\Delta p_k)
xk(p)=x(p+pk+Δpk),则式(1)可变为:
y
(
p
)
=
∑
k
=
1
n
2
w
(
p
k
)
⋅
x
k
(
p
)
.
(3)
y(p) = \sum^{n^2}_{k=1} w(p_k)\cdot x_k(p).\tag{3}
y(p)=k=1∑n2w(pk)⋅xk(p).(3)因此我们可以将式子(3)总体看成1个先将图片
x
k
(
⋅
)
x_k(\cdot)
xk(⋅)变形然后进行卷积核为
1
×
1
×
n
2
1\times 1 \times n^2
1×1×n2的3D卷积,具体如下所示:
Note:
- 这个spatial warping有点类似于
PixelShuffle
的逆过程。 - 通过将 n 2 n^2 n2改变为任意正整数 N ∈ N N\in \mathbb{N} N∈N,可以将DCN扩展成一个新的对齐表达式,它比DCN更加灵活,因为DCN中的 N N N必须是1个卷积核大小的平方。接下去为了统一叙述,offset的个数都用 N N N表示。
- 因为上述3D卷积中,输入图像格式为 ( N , C , T , H , W ) (N,C,T,H,W) (N,C,T,H,W),卷积核为 ( C , o u t _ c h a n n e l s , T , F H , F W ) (C, out\_channels, T,FH,FW) (C,out_channels,T,FH,FW),所以其可以看成是以卷积核为 ( C , o u t _ c h a n n e l , F H , F W ) (C,out\_channel,FH,FW) (C,out_channel,FH,FW)对 ( N , C ∗ T , H , W ) (N,C*T,H,W) (N,C∗T,H,W)做2D卷积。
- 令 n = 1 n=1 n=1,则每次卷积只对1个位置上经过运动信号的偏移之后进行特征提取,那这就等效于flow-based中每个位置的warp只取决于1个运动矢量,然后根据这个运动信号进行一些插值去采样提取输入上的特征信息。因此我们就可以将DCN和flow-based对齐用一个表达式来统一,并且需要指出的是它两唯一的不同只是offset个数不同,即offset diversity。从这里我们也可以看出flow-based的光流可以看成是1个offset,DCN中1个 n × n n\times n n×n的offset矩阵内每一个offset都可以近似看成1个flow。
- 这种新表达式具备统一性的可变形卷积,因此其比标准的DCN更具灵活性。
根据我们得到的新表达式,我们可以获取2种对齐方式的统一表达,并且可以引出3个结论:
- 真正引起DCN优于flow-based对齐的因素是offset的个数,作者后续会通过实验进行验证。
- 并不是offset越多对齐的性能越好,后续实验证明了增加到一定程度会进入一个平稳期;此外offset越多就会消耗越多的计算资源,因此实际需要在性能和计算复杂度之间平衡。
- 既然offset个数可以增加对齐以及后续SR的表现力,那么往flow-based对齐内引入多个offset机制也是有必要的,后续实验证明了在flow-based中增加offset个数可以增加表现力。
3.4 Offset-fidelity Loss
DCN虽然有较多的offset从而产生较强的探索能力,但是其有一个缺陷在于当网络复杂度增加,其训练会不稳定,offset的溢出会降低表现力。为了解决这个问题,作者提出了一种offset-fidelity
损失函数去训练DCN,其表达式如下所示:
L
^
=
L
+
λ
∑
n
=
1
N
L
n
.
(4)
\hat{L} = L+\lambda \sum^N_{n=1}L_n.\tag{4}
L^=L+λn=1∑NLn.(4)其中
L
L
L是data-fitting损失,例如EDVR和BasicVSR中使用的Charbonnier
损失函数:
L
=
1
N
∑
i
=
0
N
ρ
(
y
i
−
z
i
)
,
ρ
(
x
)
=
x
2
+
ϵ
2
,
ϵ
=
1
×
1
0
−
8
,
z
i
:
G
T
.
L = \frac{1}{N}\sum^N_{i=0}\rho(y_i - z_i),\\ \rho(x) = \sqrt{x^2 + \epsilon^2},\epsilon = 1\times 10^{-8},z_i:GT.
L=N1i=0∑Nρ(yi−zi),ρ(x)=x2+ϵ2,ϵ=1×10−8,zi:GT.此外
L
n
=
∑
i
∑
j
H
(
∣
x
n
,
i
,
j
−
y
i
,
j
∣
−
t
)
⋅
∣
x
n
,
i
,
j
−
y
i
,
j
∣
.
(5)
L_n = \sum_i\sum_j H(|x_{n,i,j} - y_{i,j}| - t) \cdot |x_{n,i,j} - y_{i,j}|.\tag{5}
Ln=i∑j∑H(∣xn,i,j−yi,j∣−t)⋅∣xn,i,j−yi,j∣.(5)其中
H
(
⋅
)
H(\cdot)
H(⋅)为Heaviside函数(单位阶跃函数);
y
i
,
j
,
x
n
,
i
,
j
y_{i,j},x_{n,i,j}
yi,j,xn,i,j分别表示为现成的光流计算结果和在DCN中offset特征图位置
(
i
,
j
)
(i,j)
(i,j)处的第
n
n
n个offset;
λ
,
t
\lambda,t
λ,t是超参数,用于控制DCN中offset的多样性,其
λ
=
1
,
t
=
10
\lambda=1,t=10
λ=1,t=10是个合理的值。
Note:
- 对于光流,每个位置 ( i , j ) (i,j) (i,j)只有1个值;对于DCN,每个位置 ( i , j ) (i,j) (i,j)有 N N N个。
接下来我们分析下为何这个offset-fidelity损失函数可以稳定offset的训练。
分析
:
\colorbox{mediumorchid}{分析}:
分析:
⋆
⋆
⋆
\star\star\star
⋆⋆⋆损失函数通过
H
(
⋅
)
H(\cdot)
H(⋅)函数将每个offset限定在光流的周围,而我们已经知道DCN的offset和光流是高度相似的,所以最小化二者的距离是不会太大损失offset,这种限制可以避免每一个offset跑飞(即溢出)。由于offset的学习是基于光流的值,而光流是之前计算好的较为准确的,因此这种损失函数实现了光流引导offset学习的模式。
Note:
- Robust-LTD也是一种光流引导的变换参数学习,只不过其引导的仍然是光流;VESPCN采用二阶段光流学习来实现光流预训练。
4 Analysis
4.1、4.2节都采用DCN-v1,即没有modulation mask的DCN版本。
4.1 Deformable Alignment vs. Optical Flow
设置
G
=
N
=
1
G=N=1
G=N=1,即DCN仅仅之去学习1个offset,这就和flow-based每个位置的warp只取决于1个位置处的运动矢量很相似,因此学习到的offset和flow应该是十分类似的,作者经过实验也表明了这一点,实验结果如下:
实验结论如下:
- 单个offset的学习和光流的学习是十分相似,但也是有微小的差距。
- 从对齐来看,flow-based出现了重影、边界缺失等artifacts,而DCN却没有。这正式两种对齐方式的微小差距导致,从图中看出单个offset能学到的运动比光流都要复杂,更别说多个offset了,因此flow-based对于VSR来说不是一个最佳的选择。
Note:
- 光流估计是由PWC-Net做的。
- 上述flow-based对齐和BasicVSR一样,是基于feature-wise。而诸如VESPCN、Robust-LTD的对齐都是image-wsie,这种对齐容易出现artifacts,是因为比如flow-based代表STN-based中会引入双线性插值来做重采样,插值就会引进一些重复的信息,而损失了很多高频信息,这样自然会出现类似重影等artifacts,虽然DCN这种feature-wise也会有插值,但是好在其具有较强的探索能力,以及特征校正模块,所以其很少出现artifacts。作者通过将flow-based对齐中的特征对齐用图像对齐来替换,发现PSNR下降了
0.84
d
B
0.84dB
0.84dB,实验数据如下:
这证明了feature-wise对齐比image-wise对齐效果更好,更有助于SR重建表现力的提升;此外作者还进行相关可视化,实验结果如下:
。 - 判断对齐基于feature还是image,关键看warp在特征上还是图像上,这一点在TDAN、BasicVSR中都有指明。
另一个实验同样也说明了学习1个offset的DCN对齐和光流对齐是高度相似的:
4.2 Offset Diversity
Decomposition Equivalence
\colorbox{dodgerblue}{Decomposition Equivalence}
Decomposition Equivalence
在3.3节中我们将DCN进行分解,产生了关于对齐的新的统一表达式,其最大的优点在于offset个数的灵活性,为了验证它和DCN的等效性,作者做了相关实验进行验证,实验结果如下所示:
从实验结果来看,DCN和Ours表现力相差无几,因此作者提出的新表达式是有效的,其可以代表DCN。
Note:
- EDVR-M是轻量版本的EDVR,其兼具效率与表现力。
- Ours虽然在 N = 1 N=1 N=1的时候可以近似代表flow-based对齐,但是仍然还是可变形卷积,只不过在offset设置上比DCN更加灵活。
Learned Offsets
\colorbox{yellow}{Learned Offsets}
Learned Offsets
我们已经知道flow-based对齐和DCN-based对齐主要区别在于offset的个数,因此作者接下去要研究学习多个offset(
N
>
1
N>1
N>1)在对齐中各自扮演了什么角色,为此作者设置
G
=
1
G=1
G=1,对比
N
=
15
N=15
N=15和
N
=
1
N=1
N=1的offset学习可视化,两者通过本文提出的Ours来做。
作者将15个offsets可视化出来,各自挑选2个offset表示和flow最接近和最不接近的光流体,实验结果如下:
实验结论如下:
- 存在着一些单个offset确实和光流高度接近但仍有微笑的差别,比如第一行;同时也存在一些单个offset和光流有不同的物体估计运动方向,比如第二行。
- 无论是光流还是offset,虽然都将不同运动的物体分割出来并正确显示了物体的大致形状,但是它们都没能正确反应真实的运动方向。
- 作者刻画了像素级的标准差来衡量不同offset在每个像素上和flow的差距,大致如下图所示:作者发现越是flow对齐不好的区域,offset在这个区域的多样性越明显,表现在标准差上就是 σ \sigma σ比较大。这种区域大多是看不见的区域,诸如遮挡、边界区域。如上图Figure 6所示,diversity heatmap显示的是对多样性贡献最大的物体的可视化,可以看出在边界处,offset表现得非常多样(这也是DCN更善于处理遮挡边界问题),这是因为offset在处理看不见的区域的时候,因为DCN也是无法获取确定的运动方向,因此各个offset的值偏随机化(这也是DCN探索能力强的原因),最后DCN通过各个offset的综合结果作为最后warp的值,这个值一般都会比只被1个运动矢量影响的flow-based要好很多,这一点也在figure 6中得到了验证:flow-based处理轮胎的时候,运动方向是有问题的;而DCN不同的offset展现了不同的运动方向,这种运动信息的多样性最终会为对齐带来很好的性能提升,这一点在Figure 1中对齐结果体现了出来。
当继续增加到25个offset,实验结果如下:
从图中可以看出,哪怕是增加到了25,每个offset在大致形状上还是和光流高度相似,但是每个offset的预测方向几乎是不同的,这些运动信息可以互为补充,从而最终在可变形卷积中聚合起来,从而产生更佳的对齐特征。
此外,在另一个实验中,实验结果如下:
实验结果如下:
- 光流(flow)和单个offset高度相似,但存在微小的差别。
- 从第二行行人中看出,光流和offset表现类似,但是显然后者在边界上更加突出。
Contributions of Diversity
\colorbox{lavender}{Contributions of Diversity}
Contributions of Diversity
上面只是光流图,为了验证多个offset在边界、遮挡这种看不见区域下对对齐性能的影响,接下来我们对比
N
=
1
N=1
N=1和
N
=
15
N=15
N=15在处理边界上的差异,实验结果如下:
可以看出来在边界这种在下一帧就不存在的情况会当
N
=
1
N=1
N=1这种少offset的DCN产生artifacts,这也和flow容易在边界差生artifacts也是相符的;而反观
N
=
15
N=15
N=15,在边界处理这些看不见区域上,DCN具有较强的探索能力,其具有多样丰富的运动信息,因此对于这种看不见区域的对齐有较鲁棒的预测。
Increasing Offset Diversity
\colorbox{violet}{Increasing Offset Diversity}
Increasing Offset Diversity
实验一:接下来我们探究
N
N
N的值对于对齐表现的影响,实验结果如下:
实验结论:
- 当 N N N从1升到5,对于SR重建性能的增加幅度是很大的;但是之后逐渐增加 N N N,虽然也有一定的提升,但似乎进入了平缓期;更重要的是,不断增加 N N N的同时计算效率也在变低,因此如何平衡计算效率与表现力是一个关键。
- 作者指出,DCN很难进行平衡计算效率和重建表现力,因为其 N N N是个固定的值,而本文提出的ours这个具有统一性的可变形卷积可以有效调节至最佳的计算效率和表现力的trade-off,这也就体现了ours的灵活性。
- 如Figure 9所示,表现力和offset diversity的皮尔逊相关系数为0.9418,这证明了一定的offset的个数确实有助于表现力的提升。
实验二:进一步探究
N
N
N的增加对SR重建表现力和计算效率的影响,实验结果如下:
实验结论:
- 我们可以将 N = 1 N=1 N=1看成是flow-based对齐,因此 N : 1 → 3 N: 1\to 3 N:1→3意味着从flow-based对齐到可变形卷积的对齐,SR重建性能显著提升,而继续从 3 → 25 3\to 25 3→25,从视觉上看重建表现力并没有显著提升。
- 从Figure 16可以看出,当 G = 1 , N : 1 → 5 G=1,N:1\to 5 G=1,N:1→5时候,PSNR每增加1M的参数其值增加了2.893;当 G = 1 , N : 5 → 25 G=1,N:5\to 25 G=1,N:5→25,PSNR增加了3M的参数量其值总共才增加了2.668。
- 因此在实际中,我们需要合理调节 N N N的值来实现计算效率和表现力的平衡。
实验三:对于
N
N
N的增加对对齐表现中物体定位的影响,作者还增加了补充实验,实验结果如下:
实验结论:
- 从对齐特征图中可知,当offset较少时,由于获取较少的运动信息,因此其对于物体的定位十分模糊,出现了一大片黑色区域;而当offset的个数增加到5时,显然对齐特征图中可以较为清晰的定位到物体的位置信息。
实验四:接下来我们讨论可变形卷积分组
G
G
G对SR重建的表现力以及对计算效率的影响,我们之前一直到对于分组
G
G
G,一共有
G
×
N
G\times N
G×N个offset可以被学习,因此增加
G
G
G对于offset的多样性也是有帮助的,实验结果如下:
实验结论:
- 和增加 N N N一样,对于分组 G G G的增加也可以提升表现力,因为可变形卷积分组的增加使得offset变得多样丰富。
- 同样的,一旦当可变形卷积分组增加到了一定值的时候,对表现力的提升就会很小,而计算资源的消耗就会很大,故如何选择合适的分组是平衡计算效率和表现力的关键。
此外作者在TDAN和TOFlow上进行了相关实验,实验设置为TOFlow的warp基于LR而非原版中的HR,以及因为这个模型属于flow-based对齐算法,所以offset的个数通过多个SPyNet实现。
实验结果如下:
实验结论如下:
- Offset的增加确实可以提升VSR的重建表现力。
- TOFlow模型属于flow-based的image-wise,表明增加offset的个数也可以延申到flow-based方法中,和flow-free一样,同样可以提升表现力。
4.3 Offset-fidelity Loss
DCN方法有个缺陷在于随着网络模型复杂度的增加,其训练会变得不稳定,且offset的溢出可能会使得对齐之后的输出feature map全为0,这会使得DCN-based对齐的VSR方法变成SISR方法。为了避免这种不稳定现象,offset-fidelity损失函数可以将offset限定在光流周围,由于单个offset和光流高度接近,因此这种做法是合理的。
作者设置了关于offset-fidelity损失函数的相关实验,实验基于EDVR-L(只使用Charbonnier损失函数)实验结果如下:
Note:
- Offset-fidelity损失函数可以更好的降低损失函数,说明了flow对offset的限制是有效的。
- 在REDS数据集上, 300 k 300k 300k个iterations之后,不带offset-fidelity损失函数的EDVR的offset直接溢出,从而使得损失不降反增。
- Offset-fidelity的确可以稳定Offset的训练。
- Offset-fidelity损失函数对offset的稳定训练最终会使得SR重建性能的提升,实验结果如下所示:
相关的可视化结果如下:
4.4 Modulation Masks
在DCN-v2中提出了modulation masks,即
Δ
m
\Delta m
Δm,其引出是为了调控offset的幅度,使其出现在更加有利于对抗空间变换的采样区域。他本质也是一种注意力机制,让offset更加注重出现在合适的空间变换区域。
为了探究modulation masks和offset之间的关系,作者做了相关实验,实验结果如下:
在Figure 17中,横轴是光流和offset的差异,纵轴是所有offset各自对应的modulation mask的平均值。可以看出差异越小,所对应下的平均modulation masks就会更大,意味着modulation mask会更加关注和光流比较接近的offsets,给与它们更多的注意力值,这一点可以在Figure 18中得到验证。此外,当offset diversity增加的时候,modulation mask在光流和offset有较大差距的区域的值会更加小,这其实是因为当分组
G
,
N
G,N
G,N增加的时候,表现力到达瓶颈期,所以很多offset就会显得冗余,故总体平均modulation mask就会下降。
5 Convolution
- 本文通过将DCN进行分解成1个空间变形操作和1个3D卷积形成一种具有统一性的可变形卷积,它比普通的DCN更具灵活性,因为其offset个数可以为任意正整数,而不用限定在卷积核大小的平方值。此外,当offset为1时,这种可变形卷积就相当于是flow-based对齐,从而揭示了flow-based和DCN之间的关键不同在于offset的个数。
- 作者为了缓解DCN中offset训练的不稳定以及溢出问题,提出了
offset-fidelity
损失函数去限定每个offset在光流附近,或者说让预先计算好的光流来引导offset的学习,避免offset跑飞。 - 在一定程度上,越多的offset的个数(多样性)可以提供更多丰富的运动信息,这的确有利于对齐的准确性,从而提升后期融合SR重建性能;此外,offset由于其丰富性或较强的探索能力使其对看不见的区域,比如遮挡、边界问题十分鲁棒。
- 光流和单个offset具有高度相似性,但仍然具有微小的差别。
- DCN对齐比flow-based对齐具有更好的对齐性能,这得益于offset的多样性,因此同样也可以通过提升flow-based对齐中offset的多样性来增加表现力。