这篇文章是2019年在视频超分领域上的作品,由商汤联合实验室出版。作者推出的EDVR结合了TDAN中时间可变形对齐网络的优势和Robust-LTD中融合注意力机制的优势,推出了一种基于金字塔级联可变形对齐网络(PCD)和时空注意力融合超分网络(TSA)的新型VSR方法——EDVR!
参考文档:
①源码
②REDS数据集
③视频超分:EDVR
④论文笔记之EDVR
一、出现问题
EDVR为何被推出?在EDVR提出之前,现存的VSR方法都面临这无法解决的两大难题:
NTIRE19超分挑战赛上出现了REDS视频数据集,这个包含了大运动的数据集就是专门针对之前算法的上述缺陷而存在的,因此为了能在该数据集上表现出色,就必须设计出一个新的VSR算法。
二、分析问题
Q 1 Q_1 Q1:大运动为何带来了VSR表现力的下降呢?
如下图所示:
①当你运动幅度过大,那么对齐带来的难度就会增加,因为大运动就意味运动轨迹的可能性增加,故运动估计的方向和精确性都会受到影响,上述就列举了3种情况下通过对齐网络(比如VESPCN的TSTN对齐方法、TDAN的TDCN对齐方法、Robust-LTD的TSTN对齐方法)产生的对齐情况,一旦如上述橙色球所示,那么就会导致对齐出错,这样不仅会使得对齐之后的图像出现artifacts;还会直接影响融合SR网络的性能,试想一下融合的时候,一旦其中一帧对齐不当,那么融合就会出现重叠或者模糊,最后超分重建的效果一定不会好。关于对齐出错导致最后SR性能下降的例子可以在Robust-LTD这篇文章的实验部分得到验证。
②此外,在平滑、小幅度运动上也会因为对齐网络能力受限从而影响融合SR网络表现力受限,这起源于不管是基于Flow-based的对齐网络(如STN系列的VESPCN、Robust-LTD)还是基于Flow-free的对齐网络(如DCN系列的TDAN)都会存在一个粗略估计或者说无法做到精确对齐的问题。
③Flow-based
对齐方法还有个问题就是其严重依赖于运动估计的准确性,一旦运动估计出现问题,就会使得最后的对齐出现artifacts,故会给后续融合SR网络的性能带来影响。不仅如此,Flow-based方法在预估出现artifacts的情况下也无法去调整校正减少artifacts的出现;与之对比的是基于DCN的flow-free对齐方法,它的对齐基于feature map,虽然这种方式也会因为offset的粗略计算等问题使得对齐的feature map同样出现artifacts,但feature-wise好就好在它还有可以校正的空间,如TDAN论文中的对齐网络结构所示,它在对齐支持feature map之后接了一层 3 × 3 3\times 3 3×3的卷积层来进行校正来减少artifacts的出现,具体结构如下所示:
Q 2 Q_2 Q2:当对齐使得输入SR网络的对齐帧中出现了模糊、重影等artifacts或者当视频中存在多运动,如何进行有效融合来提升超分重建性能呢?
通过引入注意力机制,让网络更加关心对重建质量提升的特征信息,而对于模糊、重影等特征信息就给予较少的注意力。也就是说并不是和之前的VSR算法一样,对于什么特征信息都进行融合,而是要挑选有用的信息。
三、解决问题
在2019超分挑战赛NTIRE上出现了Realistic and Diverse Scenes datasets
(REDS)数据集,这是一个比以往视频集包含更大且更复杂的运动。大而复杂的运动很容易会使得以往的VSR方法在对齐后出现artifacts,从而使得融合的时候提取不到有用的信息,故之前的VSR方法诸如VESPCN、DUF、TDAN、Robust-LTD等都会在这个数据集上吃瘪。
VESPCN在VSR上的出色表现使我们更加肯定了一套明确的视频超分pipeline:特征提取、对齐、融合、重建(或者也可以对齐网络+融合SR网络)。故如何在大运动复杂视频中进行对齐,以及如何在存在模糊重影下的融合下提升重建表现是EDVR的当务之急。
接下来我们分别对近年来融合和对齐的发展进行简要介绍:
①对齐
对齐主要分为2个派别,一个是flow-based对齐,其直接在Image-wise上对支持帧进行warp,典型的VSR结构有VESPCN、Robust-LTD等;另一个是基于flow-free对齐,其在feature-wise上对支持帧的feature map进行对齐,是一种隐式运动补偿的对齐方式,典型的VSR结构有DUF、TDAN等。
但是上述的这些算法,不管是flow-based还是flow-free都无法在大运动视频中进行有效对齐,主要原因在于他们都只是在单一分辨率尺度下进行对齐。此外,还有个对齐精确度的问题,上述的算法中除了VESPCN采用了2级的由粗到细的对齐之外,其余都只用了1级的对齐,故无法保证运动补偿的准确性。但VESPCN这种flow-based方法一来高度依赖于运动估计的准确性,二来其属于two-stage方法,故如果需要完成多级的对齐就需要花费更多的时间资源,相对flow-free这种one-stage方式来说更慢!
②融合
在VESPCN中采用了Early fusion、Slow fusion、3D卷积等融合方式;Frame-Recurrent Video Super-Resolution和Recurrent Back-Projection Network for Video Super-Resolution采用循环神经网络进行特征融合;Robust-LTD采用时间自适应网络来设计一个基于注意力机制来自动选择时间尺度的融合方式。
但是上述的这些融合方式对待不同的帧都是相同的方式,但客观事实是不同的帧、不同的feature point具有对于超分来说不同的价值,即有的feature map对于最后的重建是有益的,而有的特征信息被不精确的对齐给弄模糊了或者出现重影等artifacts,那么显然这些信息是不益于超分网络的训练的,我们就要给与它一个很微小的权重。而一些重要的信息我们要去学习注意力权重,使那部分有价值的特征信息被赋予较大的权重。
基于上述对于近年来VSR的优缺陷分析,EDVR取长补短,对于对齐网络和融合SR网络都做出了改进:
Pyramid
,这有点类似于15年用于目标识别的SppNet)、级联(Cascade
)的可变形卷积(Deformable
Convolution Network)网络就用来充当EDVR的对齐网络——PCD
。关于PCD的具体信息,可参考3.2节,这里我们简要说明下其结构:PCD是一个类似金字塔的结构,最顶层是较低分辨率的feature map,最底层是参考帧和支持帧,不同层级代表不同频率的特征信息。PCD先对最小分辨率的参考feature map进行对齐形成粗略的对齐,然后offset和对齐feature map传到更大分辨率的层上去,就这样每次都将offset和不断对齐的feature map往底层传过去,从而自顶向下形成从粗糙到精确的隐式运动补偿;此外在金字塔外PCD额外设置一个DCN来进一步提升对齐网络的鲁棒性。Temporal Spatial Attention
)去更关注对超分重建有意义的特征信息,而一些不好的特征信息就给与较小的注意力甚至为0(关于注意力机制,典型代表有SISR中的RCAN以及VSR中的Robust-LTD)。在TSA中,作者不仅使用了类似RCAN中的空间注意力(SA),还使用了时间注意力(TA)。TA的计算是基于参考帧和支持帧之间的时间依赖(冗余),因为这样获取的权重可以用来衡量支持帧每个位置相对于参考帧的相关性(注意力机制会更加关注相关的东西),我们根据这个相关性来表示当前位置的信息对于重建参考帧的重要程度。之后我们将时间注意力在各支持帧上的结果进行concat成 F f u s i o n F_{fusion} Ffusion并输入一个空间金字塔结构获取element-wise的空间注意力,最后和 F f u s i o n F_{fusion} Ffusion结合输出最后融合后的feature map。Note:
element-wise
的,小结:
EDVR是一个具备VSR和去模糊(Handling Motion Blur in Multi-Frame Super-Resolution)的framework。其核心是一个金字塔级联可变形卷积网络(PCD)和一个时空注意力融合网络(TSA)。
略
如上图所示是整个EDVR的网络结构(红线上为超分部分):
下面分步骤介绍EDVR中pipeline各个模块:
①输入层:输入层分为两部分,如果是超分任务,则输入 2 N + 1 2N+1 2N+1帧连续的 L R LR LR图像;如果是去模糊任务,则输入 2 N + 1 2N+1 2N+1帧连续的 H R HR HR图像,并通过降采样到 L R LR LR层级来降低去模糊任务的复杂度。
②去模糊:去模糊模块对于超分也是有用的,它放在对齐模块之前可以有效减少输入端带来的模糊问题,从而提升对齐质量。
③PCD:金字塔级联可变形卷积层,PCD基于feature-wise,每次对齐2张feature map,分别是参考feature map和时间大小内的支持feature map,一共要对齐 2 N 2N 2N次,最后输出参考feature map以及 2 N 2N 2N张对齐feature map。
④TSA:时空注意力融合模块,输入为 2 N + 1 2N+1 2N+1帧对齐feature map,结合时间注意力融合和空间注意力融合机制,输出融合后的feature map。
⑤重建层:EDVR中使用残差块,作者指出重建层可以是任意SISR方法,即意味着这一层其实就是SR网络的特征提取层。
⑥上采样层:通过反卷积、亚像素卷积等方式来提升feature map的大小,不仅如此和DCSCN中采取一样的措施,和来自输入端的参考帧的上采样相加最后才输出超分图像,这里的这个连接可以作为一种正则化项迫使网络去学习残差信息,即如何重建出较高质量的参考帧。
如果说上述是一个EDVR网络,那么作者提出了一个二阶段版本的EDVR,第一阶段还是一个较深的网络,而第二个几段采用较浅的网络。
PCD对齐模块基于DCN(可变形卷积网络),EDVR将DCN用于时间对齐,因此它和TDAN中对于DCN的用法几乎完全一样,唯一不同的是,TDAN中只是用了一个DCN网络;而PCD使用了多个DCN网络和卷积网络进行级联形成金字塔结构,并且每个DCN都基于不同层级的feature map,故PCD的对齐是一种从粗到细、自顶向下的过程。接下来我们简要介绍下PCD中每个DCN的基本原理(关于DCN,可参考我的另一篇深度学习之DCN):
不同于经典的DCN,VSR中的DCN由于需要结合时间,因此offset通过参考帧和支持帧通过简单融合(一般是Early fusion进行直接concat)来学习得到的,我们使用算子 f ( ⋅ ) f(\cdot) f(⋅)表示学习offset的网络, F t + i , i ∈ [ − N , N ] F_{t+i},i\in [-N,N] Ft+i,i∈[−N,N]表示 2 N + 1 2N+1 2N+1帧图像(这是一个样本),其中 F t F_t Ft为参考帧,其余为支持帧,则偏移矩阵 Δ P \Delta P ΔP表达式为:
Δ P t + i = f ( [ F t + i , F t ] ) . (1) \Delta P_{t+i} = f([F_{t+i}, F_t]).\tag{1} ΔPt+i=f([Ft+i,Ft]).(1)其中 Δ P = { Δ p } \Delta P =\{\Delta p\} ΔP={Δp}, [ ⋅ , ⋅ ] [\cdot,\cdot] [⋅,⋅]表示concat操作。
Note:
有了offset,我们接下来将offset用于支持帧 F t + i , i ∈ { − N , ⋯ , − 1 , 1 , ⋯ , N } F_{t+i},i\in\{-N,\cdots,-1, 1, \cdots,N\} Ft+i,i∈{−N,⋯,−1,1,⋯,N},并对变换之后的支持帧进行卷积,输出对齐之后的支持特征图 F t + i a F^a_{t+i} Ft+ia,具体表达式为:
F t + i a = ∑ k = 1 K w ( p k ) ⋅ F t + i ( p 0 + p k + Δ p k ⏟ p ) + b ( p k ) . (2) F^a_{t+i} = \sum^K_{k=1} w(p_k)\cdot F_{t+i}(\underbrace{p_0+p_k+\Delta p_k}_p) + b(p_k).\tag{2} Ft+ia=k=1∑Kw(pk)⋅Ft+i(p p0+pk+Δpk)+b(pk).(2)其中 w ( p k ) 、 b ( p k ) w(p_k)、b(p_k) w(pk)、b(pk)表示可变形卷积的参数, p k p_k pk表示卷积核中的某一个位置,假设 3 × 3 3\times 3 3×3卷积,则 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)}且 K K K表示一个卷积核的参数个数。
Note:
接下来我们可以介绍基于DCN的金字塔级联可变形卷积网络(PCD)了,其网络结构如下:
PCD的前向过程如下:
PCD结构分析:
那么PCD这样金字塔结构有什么好处呢?
feature-wise
这种隐式运动补偿带来减少对齐后artifacts的影响,且其并不依赖于运动估计的精度。在VSR中,帧间相关性和帧内相关性都很重要,但是不同帧之间由于包含信息的重要程度不同:
因此为了解决这个问题,我们就需要在时间和空间上都引入注意力机制,对于不好的特征信息进行忽略,而更加注重对重建有益的特征信息。
EDVR提出TSA模块,其主要分为时间注意力和空间注意力两个部分,其具体网络结构如下图所示:
①时间注意力
时间注意力的设计是基于参考feature map和支持feature map之间的相关性:在支持feature map中每个通道中每个位置上和支持feature map相关性高的,或者说支持feature map上和参考feature map相关性较高的位置被赋予更多的注意力权重。
时间注意力网络的设计是简单的先进行卷积,然后通过element-wise将输入和注意力权重相结合。我们用 θ ( ⋅ ) 、 ϕ ( ⋅ ) \theta(\cdot)、\phi(\cdot) θ(⋅)、ϕ(⋅)分别表示对支持feature map和参考feature map的卷积,故时间注意力权值的数学表达式为:
h ( F t + i a , F t a ) = s i g m o i d ( θ ( F t + i a ) T ϕ ( F t a ) ) . (5) h(F^a_{t+i},F_t^a) = sigmoid(\theta(F^a_{t+i})^T \phi(F_t^a)).\tag{5} h(Ft+ia,Fta)=sigmoid(θ(Ft+ia)Tϕ(Fta)).(5)
关于更多注意力机制中注意力函数的介绍,可参考我的另一篇NLP之Seq2Seq。 s i g m o i d ( ⋅ ) sigmoid(\cdot) sigmoid(⋅)在注意力设计中是结合门机制来将权重缩进在0~1之间,在RCAN中CA可以看成是residual scaling的一种方式,用于稳定训练,故sigmoid这种缩减也有助于增加训练的稳定性。
Note:
获取注意力权值之后,就可以进行时间融合输出 F f u s i o n F_{fusion} Ffusion,数学表达式如下:
F ~ t + i a = F t + i a ⊙ h ( F t + i a , F t a ) , (6) \tilde{F}^a_{t+i} = F^a_{t+i} \odot h(F^a_{t+i},F_t^a),\tag{6} F~t+ia=Ft+ia⊙h(Ft+ia,Fta),(6)
F f u s i o n = C o n v ( [ F ~ t − N a , ⋯ , F ~ t a , ⋯ , F ~ t + N a ] ) . (7) F_{fusion} = Conv([\tilde{F}_{t-N}^a,\cdots, \tilde{F}_{t}^a, \cdots, \tilde{F}_{t+N}^a]).\tag{7} Ffusion=Conv([F~t−Na,⋯,F~ta,⋯,F~t+Na]).(7)其中 [ ⋅ , ⋅ ] [\cdot, \cdot] [⋅,⋅]表示concat,式(7)本质就是个Early fusion。
②空间注意力
通过时间融合后的结果可以看成是个不含时间维度的feature map,然后我们开始做空间注意力,其网络结构是一个金字塔状,先使用2次卷积下采样,然后从顶层开始自顶向下通过上采样、相加等操作获取和 F f u s i o n F_{fusion} Ffusion相同size的空间注意力,最后通过element-wise的相乘来输出结合空间注意力融合的feature map—— F F F,接下来就直接使用融合后的 F F F送进SR网络进行超分重建出高分辨率版本的支持帧。空间注意力的具体表达式如下:
F 0 = C o n v ( F f u s i o n ) , F 1 = C o n v ( F f u s i o n ) , F 2 = F 0 + F 1 ↑ , F = F 2 ↑ + F f u s i o n ⊙ F 2 ↑ . F_0=Conv(F_{fusion}),F_1 = Conv(F_{fusion}),\\ F_2 = F_0 + F_1^{\uparrow},\\ F = F_2^{\uparrow} + F_{fusion}\odot F_2^{\uparrow}. F0=Conv(Ffusion),F1=Conv(Ffusion),F2=F0+F1↑,F=F2↑+Ffusion⊙F2↑.其中 ( ⋅ ) ↑ 、 ⊙ (\cdot)^{\uparrow}、\odot (⋅)↑、⊙分别表示上采样和element-wise相乘。
Note:
为了更进一步提升VSR的质量,作者提出了一个two-stage
的EDVR,即将2个EDVR串接起来。首先使用一个 ( E D V R ) 1 (EDVR)_1 (EDVR)1来做视频超分,然后将其超分的结果输入给下一个级联的 ( E D V R ) 2 (EDVR)_2 (EDVR)2来做进一步的调整。
作者指出这种two-stage有2个好处:
①训练集:
Note:
②训练设置:
这一节作者将EDVR和其余几种SOTA方法一起对比,此外EDVR这里只使用one-stage且不使用自集成方法。
实验结果如下:
实验结论如下:
超分的可视化结果如下:
EDVR还可以应用于去模糊,但这不是我们超分的研究范畴,所以我直接放一下实验结果:
这一节我们分别去研究PCD和TSA各自的作用。
①首先是PCD
实验结果如下:
其中Model1直接使用1个DCN来对齐;Model2使用和TDAN一样的做法,使用4个DCN级联做对齐;Model3和Model4均使用PCD。
实验结论如下:
接下来作者可视化了有无PCD对齐下的光流图,其中第29帧为参考帧,第28、30为相邻的支持帧,光流图如下所示:
实验结论如下:
此外为了进一步体现时间注意力的作用,作者又进行了光流可视化,实验结果如下:
实验结论如下:
③数据集偏差
此外,作者还做了一项数据集偏差的实验,实验结果如下右表:
实验结论:
进一步探究self-ensemble
和two-stage
对EDVR性能提升作用,其中在训练期间我们只使用2种自集成,而在测试中使用4种自集成,实验结果如下:
实验结论如下:
EDVR
对经典VSR结构的对齐网络和融合网络都进行了改进,分别使用了PCD
和TSA
模块。PCD的存在使得EDVR可以应对大而复杂的运动;而TSA的存在使得EDVR更加注重对重建效果好的特征信息,对于存在模糊或对齐不佳的特征进行忽略。此外EDVR使用two-stage的策略可以较大提升表现力。