BasicVSR++: Improving Video Super-Resolution with Enhanced Propagation and Alignment
BasicVSR++:通过增强传播和对齐提高视频超分辨率
论文:https://arxiv.org/pdf/2104.13371.pdf
代码:GitHub - open-mmlab/mmediting: OpenMMLab Image and Video Editing Toolbox
本篇笔记主要对整篇论文从头到尾进行阅读分析,本文内容有点多,主要是对不同部分的总结以及图例解释,如果只对模型原理部分有兴趣,可直接观看第四部分。
本文为了详细说明各图、公式在各组件中的情况,所以对原文图片、公式做了切割和拼接,保证该内容是在该组件中生效的。
目录
(1)摘要
(2)引言
(2.1)二阶网格传播
(2.2)光流引导可变形
(2.3)对比
(3)相关工作
(4)本文方法介绍
(4.1)二阶网格传播
(4.2)基于光流引导的可变形对齐
(5)实验
(5.1)BasicVSR++相比较其他模型的实验结果:
(5.2)消融实验实验结果:
(5.2.1)二阶传播与网格传播结果对比
(5.2.2)基于光流的DCN对齐
BasicVSR++是在BasicVSR基础上优化的,(BasicVSR没看的,可以查看我Blog,其中IconVSR提高了0.31dB),BasicVSR++在其基础组件上进一步优化,在传播组件中使用二阶网格传播,对齐组件中使用光流引导可变形对齐方案,可以更好的利用未对齐视频帧中的时空信息,其中BasicVSR++相比较BasicVSR提高了0.82dB。
BasicVSR中存在限制,在遮挡区域以及复杂区域往往恢复效果一般,所以为了解决这样的问题,本文设计BasicVSR++,在传播和对齐组件上进行优化。提出二阶网格传播以及光流引导可变形对齐。
如上图所示,经过BasicVSR和BasicVSR++的对比有传播上两点不同:
(1) BasicVSR中前向传播和反向传播之间没有信息交互,无法完全利用互补信息,BasicVSR++设计为二阶网格形式,前向传播和反向传播可以进行信息交互补充。
(2) BasicVSR中遵循一阶马尔科夫链的特性,也就是下一个节点的状态只与前一个节点状态有关,与前两个节点状态无关。BasicVSR++中设计不同的节点信息互联,可以充分利用不同位置的时空信息进行聚合。
如上图所示,光流评估对于遮挡也没有良好的解决办法,所以BasicVSR++使用可变性卷积对齐。
(1)BasicVSR中进行光流评估之后,直接对特征进行扭曲对齐。而对于原本有遮挡情况效果不行。
(3)BasicVSR++使用可变形卷积对齐,但是可变性卷积的结果不稳定且难以训练,所以BasicVSR++中使用光流评估结果与(光流评估结果与特征的残差偏移量)进行偏移量学习,作为DCN的偏移量。
结果没啥好说的,就在BasicVSR论文中的对比加上了BasicVSR++
作者对本文中使用的内容进行了简单的介绍,循环神经网络,网格连接,可变形对齐等。
首先,对本节中第一幅图做一个简单的介绍(接下来部分会对图中内容逐个介绍),可以看出下方图就是BasicVSR++的数据处理的流程图,以作为例子,是第i帧数据,通过残差模块提取出特征,将数据往下传递,在正向传播和反向传播中进行可变形卷积对齐得到特征(其中i代表第i帧,j-1代表传播分支),经过二阶网格传播重复优化,对最后特征进行聚合和上采样。
二阶网格传播如上图所示,放宽一阶马尔可夫链的限制(也就是子节点只与父节点状态有关系,与祖父节点无关),变为二阶马尔可夫,这就是二阶的由来,上图中红线就是通过子节点与祖父节点之间连接进行信息传递。并且允许信息以网格的形式进行传播,正向传播中每个i时刻的结果可以传递到反向传播的i时刻,进行信息交互。这种方式,不但可以使信息得到多次提炼,而且可以对该模块未获取到的信息起到补充作用。
下图中的左边公式,主要是对右边的图进行解释,首先是进行残差模块提取出的目标帧的特征信息,A代表基于光流的可变形对齐模块,表示i-1帧数据的特征信息,同理,s是光流估计,计算i到i-1和i到i-2的结果( 和 )。(j表示的是第j个传播分支)
第二个公式更是经过残差卷积之后的精细化特征信息。特别的就是
本小节主要介绍本文的另一个重要点:对齐方式。使用DCN对齐方式,可变形对齐相比光流的优势在于偏移多样性。然而,可变形对齐模块很难训练。训练的不稳定常常导致补偿溢出,从而影响性能。为了在克服不稳定性的同时利用偏移分量,由于可变形对齐和光流对齐之间存在着很强的关系,本文提出利用光流来引导可变形对齐。如下图所示:(下面是对齐单个特征)
对上图中数据流程和公式进行解释。(我觉得这个图中有问题,在扭曲对齐生成的特征按文中的公式,表述应该是,有个人见解请评论)
(1) 首先,右图公式3 , 在上面章节介绍过,是光流估计从i到i-1的结果。先得到从i到i-1的光流估计结果,与i-1帧的特征信息进行扭曲对齐,得到 的特征信息作为偏移量。
(2) 右图公式4,是(与的细化特征)与光流结果之间的微小偏差,减轻可变形对齐的负担。是DCN masks的结果,用来权衡目标帧中不同像素的贡献。
(3) 右图公式5,经过D,变形卷积之后得到对齐结果。
———————————————————————————————————————————
下图的公式是在二阶网格中传播,对齐多个特征的公式。其中左图为了说明和的区别。
训练数据集:REDS、Vimeo-90K
测试数据集:REDS4、Vid4、UDM10、Vimeo-90K-T、Vimeo-90K
验证数据集:REDSval4
下采样方法:Bicubic (BI) and Blur Downsampling (BD)
迭代优化器:Adam optimizer、Cosine Annealing
学习率:主网络10^-4,光流估计2.5*10^-5
输入LR尺寸:64*64
损失函数:Charbonnier loss
使用不同的下采样方式进行测试,本方法的PSNR/SSIM效果最好,参数少,运行时间短。
与自己的前两种方法对比,效果提升的同时,参数量也没有大幅提高。
不同测试集上的效果比对
与基础的传播、对齐、聚合和上采样相比。BasicVSR多了三个改动,(1)一个基于光流引导的DCN.(2)拓宽一阶马尔科夫链限制的二阶传播。(3)网格传播。实验如下图所示:
光流引导的特征对齐对模型的有效性:
个人总结:这篇文章还是在BasicVSR的基础上,对四大组件进行延伸修改,主要在传播和对齐方面进行优化,利用二阶网格传播,重复对信息进行提取和利用,使得特征细节丰富。光流引导的可变形对齐,解决遮挡情况下的光流对齐效果一般的情况,并且通过使用光流引导,稳定和加快可变形对齐的速度。