
这篇文章是BasicVSR的 升级版本 \colorbox{tomato}{升级版本} 升级版本,同一批作者将BasicVSR中的Propagation和Alignment部分进行了增强产生了新一点VSR方法——BasicVSR++。具体而言,Propagation采用了一个Grid-Propagation来重复校正对齐的准确性;更重要的是提出了一个具有二阶马尔可夫性质的跨格点传播机制以及光流引导的可变形卷积对齐模块。通过这3个改进,Basic++取得了SOTA的表现力以及获得了2021年超分挑战赛NTIRE的冠军!
参考目录:
①源码
BasicVSR++: Improving Video Super-Resolution with Enhanced Propagation and Alignment
Abstract
BasicVSR&IconVSR \colorbox{dodgerblue}{BasicVSR\&IconVSR} BasicVSR&IconVSR
BasicVSR利用其双向循环传播结构成功在视频超分的benchmarks上取得了不错的表现力。此外IconVSR在BasicVSR的基础上引入了Coupled-Propagation来使得前向传播的时候可以使用后向传播的信息;Information-refill通过额外的特征提取模块来弥补因为长序列传播累积下来的关于遮挡、边界所造成的对齐误差引起的细节损失。
BasicVSR和IconVSR还是有缺陷的,更何况BasicVSR更多是作为VSR研究的baseline,那么还有哪些改进空间呢?
- 首先是
Propagation部分:①BasicVSR的两个分支是独立进行对齐的,虽然后续会融合,但是如果对齐出现误差,那么融合进行超分会弱化表现力;IconVSR利用Coupled-Propagation将后向分支的对齐结果加入到前向中,的确有助于解决遮挡问题,但是前向的信息是否也可以加入到后向中去呢?答案是可以的,比如对于边界问题,后向在对齐的时候因为没有前面帧关于边界的特征信息,故这部分边界的对齐是找一些不存在不相关的像素去代替的,而这部分不存在的信息就需要前向中的特征信息来帮助补充,IconVSR通过引入information-refill来解决。②两种方法的propagation都是基于一阶马尔可夫性质,每次只接受相邻的隐藏信息 h h h,虽然 h h h包含了之前较长序列中的特征信息,但是经过长序列的传播,对齐中的误差会使得这一特征信息产生偏差;而且每经过1次对齐,就会对上一次的特征信息有所衰减,而更久的特征信息衰减地越厉害(这就好比正如DRCN中所说,SISR中较深的深层特征提取会损失原始图像的信息,故需要加入skip connection来进行补充)。③虽然IconVSR引入information-refill去缓解长序列对齐造成的误差堆积,但毕竟也是基于稀疏的的关键帧来做,故也只是每隔一定的 i n t e r v a l s intervals intervals才缓解一下,是否存在着类似于VESPCN、EDVR这种coarse-to-fine的精确化对齐呢?答案是有的,即BasicVSR++的Grid-Propagation。 - 其次是
Alignment部分:虽然两者的对齐都是基于feature-wise,但毕竟也是依靠光流(flow)来做对齐,而flow-based有3个明显的缺陷:①高度依赖于光流估计的精确性,一旦运动估计出错,那么最终在feature map上的warp就会出现artifacts;②two-stage分2步,先做光流估计,然后做隐式的运动补偿(warp),故速度上会较慢一些;③Flow-based在做对齐的时候,其warp只能根据一个位置通过光流获取像素值,这种做法相对于DCN而言,探索性较差。
Note:
- 最不可取的就是基于flow-based的image-wise对齐,诸如VESPCN、Robust-LTD这种,因为光流法高度依赖于光流估计的准确性,一旦不准确,就会造成artifacts,且你无法像feature-wise去改善校正它(这一点在TDAN和BasicVSR中有提到)。无论是否基于feature,只要是flow-based这种光流法,那么其相对flow-free也是效果较差的,原因在于其warp的时候只在1个位置点根据光流来获取最终的像素值,探索性较弱容错率较高,这种高度依赖于光流估计精确性的做法会当光流估计不那么准确的时候,就会很容易出现artifacts,那么最终的结果相比DCN这种探索强的方法还是效果差很多,哪怕两者都配备相应的卷积层去调优,相同条件下,光流法一般比不过flow-free,因为flow-free诸如DCN对齐下的探索能力较强,不那么容易出现artifacts;此外在遮挡情境下,flow-free的强探索能力往往会比flow-based产生更好的效果。
BasicVSR++ \colorbox{yellow}{BasicVSR++} BasicVSR++
针对上述两个部分,BasicVSR++提出了自己的改进:
- 针对Propagation部分:先引入Grid-Propagation来让前向和后向分支之间互相建立连接,此外作者又增加了一对前后项分支,让对齐实现coarse-to-fine。更重要的是,引入Second-Order Grid Propagation(二阶格点传播),说白了,就是当前状态不仅接受相邻格点的隐藏状态,还接受更远1格的隐藏状态,比如说前向分支中,当做 x i − 1 , x i x_{i-1},x_i xi−1,xi的对齐的时候,除了接受 h i − 1 h_{i-1} hi−1之外,还要接受 h i − 2 h_{i-2} hi−2的特征信息。这种做法是有利于遮挡问题和边界问题,通过这种方式来获取更多的特征信息,如位置信息。比如说边界情景中, x i + 1 x_{i+1} xi+1的特征想要对齐 x i x_{i} xi的边界特征,但是 x i + 1 x_{i+1} xi+1的特征上没有边界相关的信息,但这时候如果有来自于 x i − 1 x_{i-1} xi−1的特征信息,那么就可以帮助 x i + 1 x_{i+1} xi+1的特征对齐。
- 针对Alignment部分:既然flow-based方法有那么多缺陷,故直接采用Flow-free方法,诸如TDAN、EDVR中使用的DCN-based对齐方法,因为DCN的对齐方法可以规避上述flow-based中3个缺陷。同时为了解决DCN较难训练的问题,作者引入光流对齐来做辅助对齐(flow-guided deformable alignment),这样可以减轻DCN去学习对齐的压力。
-
归功于上述在BasicVSR上的改进,BasicVSR++不仅取得了SOAT的表现力,在和BasicVSR类似的参数量下(BasicVSR++(S):轻量版本BasicVSR++),实现了 + 0.82 d B +0.82dB +0.82dB的增益,如下图所示:

-
BasicVSR++在NTIRE 2021超分挑战赛获得了3项第一名!
-
关于BasicVSR和IconVSR的相关内容可参考我的另一篇超分之BasicVSR。
Note:
- BasicVSR、IconVSR、BasicVSR++属于
recurrent方法,都是同一批作者所推出。和sliding-windows方法不同,这三种方式在对齐的时候,被对齐对象并不是参考帧的相邻支持帧的feature map,而是比如前线分支中是当前参考帧之前所有帧的对齐特征 h h h,它存储了过去所有对齐的结果,当然由于长距离不断地对齐,输入到当前帧的 h h h更加偏向于最近几帧的特征(比如 h i − 1 h_{i-1} hi−1更多是和 x i − 1 x_{i-1} xi−1的特征对齐),而较远距离的对齐特征就会衰减了一些,后向分支也是一样的情况。
1 Introduction
在BasicVSR中,作者将VSR重新设计分为4个功能块:Propagation、Alignment、Aggregation、Upsampling。
- Propagation采用双向循环传播机制来利用长序列信息,这种循环机制类似于RNN,它可以将过去或未来的信息存储在隐藏状态中(需要注意的是,这部分隐藏状态在利用的时候是不参与梯度传播的,因此并不涉及到RNN的梯度爆炸或者梯度消失问题)。通过这样的方式来利用整个长序列的特征信息。但是这样的方式也是有问题的:①很久之前或者未来的信息传到当前帧的时候,其特征信息会损失很多,并且不是每个位置的信息都是有用的;②其次对齐误差(首先对齐会设计到网络的预测和插值,所以其值都是估计值,一定会存在着和目标之间的bias,此外还会因为遮挡和边界出现因为不相关的区域而导致无法输出相应对齐像素而导致的误差)会通过这种长序列循环传播机制不断累积,IconVSR通过information-refill来缓解;③两个分支之间没有联系,虽然之后会一起融合,但是那时候一旦出现了对齐误差,那么融合并不会解决表现力下降的问题,IconVSR通过Coupled-Propagation来解决。
- Alignment基于flow-based,但是为了便于缓解校正(对齐之后一般会加上CNN层,来做进一步校正或者也可以看成是feature到image的重建)因为运动估计(DCN做的是隐式的运动估计,即offset)的不精确造成输出上的artifacts,作者在BasicVSR中采用feature-wise级上的对齐。但其本质还是基于光流,因此在特征上warp的时候,只是从一个位置上根据光流来获取输出像素,因此如果光流估计出现问题,那么即使减缓了artifacts,可是这种较弱的探索性能或限制输出的表现力,特别是在遮挡问题上,DCN这种flow-free会在特征warp的时候考虑一个局部范围(卷积核大小)内的所有信息,最后输出像素,故他的探索能力更强,会为遮挡物体提供更多的细节来对齐,比如下图所示(VSR中,flow-based对齐一般都是基于TSTN来做的,比如VESPCN、Robust-LTD等;而flow-free是基于TDCN来做的,比如TDAN、EDVR等):

光流法只会从支持帧中的1个位置(绿色点)中取值输出来作为参考帧的对齐帧,但是由于树枝被手遮挡了,无法获取树枝的信息,所以树枝在对齐后的输出其实就变成了手,这是和树不相关的像素值,这样就会出现对齐出错;而flow-free的方法面对遮挡问题,他会考虑一个卷积核(红色框)范围内的特征信息,最后树枝输出的对齐结果多多少少会和红色框内未遮挡的树枝有关,虽然这种对齐不完全精确,但是总比flow-free取和树枝完全不想关的手要好。因此flow-based对齐方法在遮挡问题上并不鲁棒! - BasicVSR在融合部分还是简单的concat合并,但IconVSR引入information-refill来将后向分支的特征信息和前向对齐的特征信息进行融合,有效解决了遮挡、边界、多细节场景问题。
- BasicVSR和IconVSR的上采样部分都是使用残差块堆积加上亚像素卷积层来做的。
BasicVSR&IconVSR&BasicVSR++ \colorbox{violet}{BasicVSR\&IconVSR\&BasicVSR++} BasicVSR&IconVSR&BasicVSR++
在Propagation部分,IconVSR引入Coupled-Propagation来对BasicVSR做改进;接下来BasicVSR在IconVSR基础上进一步引入Grid-Propagation和Second-order grid propagation做改进。
在Alignment部分,BasicVSR和IconVSR一样,而BasicVSR++进一步引入flow-guided deformable alignment来做改进。
在Aggregation部分,BasicVSR++和BasicVSR一样没做改进,故并没有使用information-refill。
在Upsampling部分,三者基本一样的。
接下来我们具体分析BasicVSR++的3个 创新点 \colorbox{tomato}{创新点} 创新点:

- Grid-Propagation \colorbox{yellowgreen}{Grid-Propagation} Grid-Propagation:在BasicVSR中设置了一对前向和后向分支,为了实现从粗到细的对齐,作者又多设置了一对前向和后向分支(如上图(a)中蓝色线)。此外,吸取Coupled-Propagation中后向分支将 h h h传送给前向分支的思想,作者在此设计中直接添加了前向和后向之间的双向联系(如上图(a)中黄色线)来解决遮挡以及边界问题。
- Second-order grid propagation \colorbox{lightseagreen}{Second-order grid propagation} Second-order grid propagation:为了利用更久之前或未来的对齐特征信息,比如它们的位置信息,BasicVSR++引入类似于skip connection的结构(如上图(a)绿色线),或者也可以理解为引入二阶马尔可夫特性。这种方式规避了不断对齐所造成的对较远或未来对齐特征的衰减,从而使得当前帧对齐的时候可以额外获取更多空间位置特征。这种机制对于解决边界问题和另一种遮挡问题也很有帮助。
- Flow-guided deformable alignment \colorbox{hotpink}{Flow-guided deformable alignment} Flow-guided deformable alignment:无论对齐基于feature-wise还是image-wise,反正是光流方法就会产生高度依赖于运动估计精确性问题,虽然flow-free方法也会依赖于offset的精确度,但是由于flow-free有较强的探索能力,其最后warp的结果不只取决于1个像素的运动信息(比如下图所示为flow-based对齐:

它每个位置的对齐都只取决于1个运动矢量(flow),简单粗暴但有明显局限性),而是一个范围(卷积核大小)内的综合情况,其相对容错率较低所以对不会高度依赖于offset的精确性。因此BasicVSR++中,作者将对齐模块建立在基于DCN的flow-free方法上,但由于DCN较难训练,故作者还使用了flow-based来做个粗糙的特征对齐去学习offset,这个光流将和offset的学习构成残差结构来迫使网络去学习残差信息,从而减轻了直接学习offset的训练压力。也就是说并不是直接去学习offset,而是用一个flow-based对齐来引导DCN中offset的学习(如上图(b)所示)! - 上述3点就是BasicVSR++的创新点,需要注意的是,它只针对Propagation和Alignment做了加强,此外DCN部分借鉴了2019年的DCN-v2结构来进一步增强网络的空间变换能力。BasicVSR系列采用了简单高效的结构来解决遮挡、边界等问题以及利用了较大范围的输入特征信息。尤其是BasicVSR++,在和BasicVSR相似的模型参属下,取得了 ± 0.82 d B \pm0.82dB ±0.82dB的提升。关于PSNR表现力以及模型运行时间见上图©所示。
2 Related Work
略
3 Methodology

上图是BasicVSR和BasicVSR++的对比:
Propagation部分:①BasicVSR++增加了image之后的特征提取层,由一系列残差块组成;②增加了Second-Order Propagation和前后向之间的Grid-Propagation;③增了又一对的前后向分支;④增加了skip connection来将原始特征信息直接输送到高层和上采样之后的结果相结合。Alignment部分:将flow-based的feature-wise对齐方式更新为flow-guided deformable alignment。
这里 skip connection \colorbox{yellow}{skip connection} skip connection的作用:
- 由于从输入到输出这个过程有许多卷积层,势必会损失很多特征信息,超分的过程其实在输入和输出的差距很小,超分的目的也只是补充额外的细节信息,因此直接从输入端输送原始特征到输出端也是很有必要的。
- 将原始信息经过双线性插值之后可以作为一种正则化项来训练主网络,故主网络可作为残差部分来训练,可增加网络训练的稳定性,这种做法在DCSCN、DRCN、EDVR等都有体现。
3.1 Second-Order Grid Propagation
二阶格点传播(SOGP)可分为格点传播(GP)和二阶传播(SOP)两小部分。
Grid Propagation \colorbox{lavender}{Grid Propagation} Grid Propagation

BasicVSR++的整体框架结构长得像格子状,这是因为作者增加了Grid Propagation机制。简单来说格点传播机制就是在BasicVSR基础上增多增加几对前后向分支,并结合IconVSR中Coupled-Propagation机制,在前后向之间建立联系,也就是说不仅仅只是后向输送对齐特征到前向中,Grid-Propagation还将前向输送到后向中去。这样不仅可以解决遮挡问题,还可以有效处理边界情景问题:
①对于边界问题:因为前向特征信息可以为后向提供其并不拥有的边界信息,而这一边界信息在前向特征中是一定有的,边界的特征对齐可以通过这种方式得到补充,这就类似于IconVSR的information-refill机制,但Grid-Propagation处理的更加简单高效,因为它不需要额外增加一个额外的特征提取模块(IconVSR通过一个EDVR来做的,占有了一定的模型量)。关于边界问题具体如下图所示:

②对于遮挡问题:这就和IconVSR一样了,将后向分支的信息传到前向中去,来使得前向在对齐的时候,可以有相关的像素可以得到补充,具体如下所示:
当第一帧对齐第二帧的时候,如果有了后向分支中未来帧(比如上图中的第三帧)的特征信息,就可以在第一帧对齐的时候使用,因为本身第一帧是没有树干的信息的,通过后向和前向的连接之后,前向分支在对齐的时候就能更好的处理。
Note:
- 前后向互相建连接是Grid-Propagation的核心,连接是将隐藏状态输送到块中的对齐之后特征校正之前的融合阶段。
- Grid Propagation通过重复设置前后项分支来实现coarse-to-fine的对齐,来不断优化,减少特征信息在长序列中传播的累积误差。IconVSR通过information-refill来处理,但每次处理过于稀疏,所以对误差的减少效果是欠缺的。
Second-Order Propagation \colorbox{gold}{Second-Order Propagation} Second-Order Propagation

个人认为SOP其实就是个对齐块之间的skip connection,作者将其理解为是一个二阶马尔科夫链的过程,主要是因为如上图所示,当前帧的对齐除了接受上一个块的对齐特征 h t − 1 h_{t-1} ht−1以外,还要接受上上个块的对齐特征 h t − 2 h_{t-2} ht−2。这种跳跃连接的好处在于:
- 它可以接受过去或未来一段时间的对齐特征信息,可以获取更多空间位置信息,而因为BasicVSR这种长距离传播机制会不断衰减过去地对齐特征,因此这种跳跃连接可以直接利用每次衰减之前的对齐特征。
- 二阶传播也可以应对于细节区域和另一种遮挡问题。
①对于遮挡问题:
如上图所示,我们在做第二帧向第三帧对齐的时候,由于第二帧中没有第三帧中的树干信息,所以这部分就会对齐出错,而如果此次数第一帧的特征信息跨越过来,那么他就可以将树干的信息提供补充,从而完成较好的对齐。
②对于细节区域:由于可以利用直接利用较远的特征信息,就可以获取更多不同的位置信息,对于细节区域的重建是很有帮助的,具体细节区域的重建效果如下所示(只是举个大致例子,并不是真的BasicVSR++的效果):


将上述2部分结合之后就是Second-Order Grid Propagation,接下来我们用数学表达式来分析整个前向过程(后向也是同样的原理分析,只是输入流的方向改变了):
设 x i x_i x

BasicVSR++是BasicVSR的升级版,通过增强传播和对齐机制提高了视频超分辨率性能。文章介绍了Second-Order Grid Propagation和Flow-Guided Deformable Alignment两个关键创新,前者通过二阶马尔可夫特性融合更远的对齐特征,后者利用光流引导的可变形卷积减轻训练难度。在NTIRE2021超分挑战赛中,BasicVSR++获得了三项第一,显示了其在视频超分领域的优越性。
最低0.47元/天 解锁文章
932

被折叠的 条评论
为什么被折叠?



