本文主要是介绍轻量且高性能的视频超分算法——BasicVSR,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
向AI转型的程序员都关注了这个号👇👇👇
这篇文章是2021年的CVPR,文章作者是和EDVR同一批的人。该篇文章提出了一个轻量且高表现性能的视频超分framework——BasicVSR。BasicVSR改进了传统VSR结构中的propagation和alignment部分,分别提出了一个双向视频流的循环结构以及基于flow-based的feature-wise对齐方法。此外,在BasicVSR的基础上,作者进一步对propagation和aggregation进行优化,产生了一个更高表现性能的VSR结构——IconVSR。
https://arxiv.org/abs/2104.13371
https://github.com/open-mmlab/mmagic
作者将VSR分为4个功能块,即通用的VSR的pipeline为:Propagation、Alignment、Aggregation(Fusion)、Upsampling。作者通过设计一种双向循环结构的propagation、基于光流的feature-wise的alignment以及使用现存的一些融合和上采样方法,形成一种简单轻量的在速度和重建表现力上都优于现存VSR结构的视频超分方法——BasicVSR。
BasicVSR可以作为一种后续研究VSR的baseline,我们可以以它为backbone,继续往上增加一些功能。
作者向我们展示了如何延申BasicVSR:通过对BasicVSR的propagation部分增加coupled-propagation结构,以及在Aggregation部分增加Information-refill来形成一个更高表现力且模型量略微增加的VSR模型——IconVSR,它和BasicVSR都可以作为后续研究的基石。
一般来说,视频超分比SISR更加复杂,因为他要处理多帧的融合问题以及不同时间帧之间的对齐问题。在EDVR中,其作者引入多尺度的可变形卷积网络来做对齐,用时间和空间注意力来做融合;类似的视频超分还有TDAN、Robust-LTD、VESPCN、DUF、FRVSR、RSDN等。这些方法基本上各有各的设计,且诸如RBPN和EDVR还会有较大的模型参数,具体如下图所示:
因此作者试图去设计一种更通用、更有效率、轻量的VSR模型作为我们日后研究的baseline。
于是,BasicVSR就开始了!
1 Introduction
首先将VSR分为4个部分:
①Propagation:它决定了VSR如何去利用视频序列的信息,它可以将所有的VSR分为Sliding-Window和Recurrent两类。
②Alignment:时间和空间上的关于内容对齐。
③Aggregation:特征信息的聚合,或者可以说就是Fusion,它旨在将对齐后的连续帧进行时间和空间上的特征融合。
④Upsampling:上采样层,将融合后的特征信息转变成H R HRHR层级的信息。
作者列举了近年来的几种VSR方法,并按照上述的pipeline进行整理归纳,具体如下图所示:
从图中可以看出,BasicVSR对Propagation和Alignment做了新的设计,而对于Aggregation和Upsampling则利用之前的VSR的方法。具体而言,BasicVSR的Propagation使用了Bidirectional(双向)循环机制,分为前向分支和后向分支,将整个输入序列的所有信息都加入到后续的对齐中;而对齐子网络使用flow-based方法,但对齐是feature-wise的,即使用光流估计,但是对齐是做在feature map上的;融合使用最基本的concat(或者说就是Early fusion);上采样使用ESPCN提出的PixelShuffle,即亚像素卷积层。BasicVSR这种结构在性能和速度上都取得了很大的突破,证明了BasicVSR的可行性和轻量性。
BasicVSR最有价值的地方在于其可以作为一个起点,一个日后VSR研究的baseline,通过不断地扩展四个部分来设计新的VSR模型。作者给了如何去扩展的例子——IconVSR。IconVSR则是在BasicVSR的基础上,对Propagation和Aggregation做了升级。具体而言,Propagation部分进一步引入Coupled机制,旨在前向分支中加入后向分支的信息,这样的好处在于对于遮挡区域在刚露出来的时候,它可以基于后向的信息来较好的重建出这一块刚出现的区域;对齐部分还是和BasicVSR是一样的;Aggregation部分引入了Information-refill,它可以弥补BasicVSR丢失的一些信息,比如说在遮挡区域、边界区域,Information-refill就可以通过一个额外的特征提取模块对关键帧及其相邻支持帧进行对齐和融合,然后将结果和原来对齐之后的进行融合,然后送进特征校正模块去refine;此外Propagation这种方式容易长序列输入方式容易不断堆积误差,特别是对齐误差,因此会对一些细节区域造成很大影响,而Information-refill会去校正这一问题。IconVSR基于这两个提升点,超越了BasicVSR的性能,但是由于额外的特征提取模块使得IconVSR的模型参数会增加一些,但从Figure 1来看,模型量的增加还可以接受。
Note:
在BasicVSR中,光流估计是利用SpyNet做的。
在IconVSR中,额外的特征提取模块是利用一个轻量级的EDVR去做的。
2 Related Work
略
3 Methodology
3.1 BasicVSR
接下来我们具体分析BasicVSR的4个子网络的结构及其功能,首先总的模型如下所示:
①Propagation
BasicVSR的Propagation采用双向循环机制(bidirectional),即前向分支后后向分支;而我们之前接触的例如VESPCN、TDAN、Robust-LTD、EDVR等都是每次输入一个时间窗口(比如连续5帧),这种Propagation称之为local,也就是说网络每次考虑的是一个长视频序列的局部信息。此外,FRVSR、RSDN属于另一个分支,即单向循环分支(unidirectional)。接下来我们具体分析下这3种Propagation的优点和缺点,并推出BasicVSR的做法:
①Propagation
BasicVSR的Propagation采用双向循环机制(bidirectional),即前向分支后后向分支;而我们之前接触的例如VESPCN、TDAN、Robust-LTD、EDVR等都是每次输入一个时间窗口(比如连续5帧),这种Propagation称之为local,也就是说网络每次考虑的是一个长视频序列的局部信息。此外,FRVSR、RSDN属于另一个分支,即单向循环分支(unidirectional)。接下来我们具体分析下这3种Propagation的优点和缺点,并推出BasicVSR的做法:
Local:Local属于sliding-window方法,每个样本含有D 帧,其中D是时间窗口(尺度)的大小。这种方式虽然简单,但是每次只考虑整个序列的局部信息,对于较远的输入信息是无法获取的。在我们的认知中,虽然离参考帧越近的信息越有用,所以Local类方法都只考虑邻近的支持帧,但是其实较远的帧也能提供有用的信息,甚至窗口的帧信息也不是都有用的,有的还会影响重建。因此显然Local这种Propagation考虑不全面的缺陷会限制其在VSR表现力的提升。为了证明这一点,作者做了一个实验,将一个长输入序列分为K KK段,其中K = 1 的时候就是一整个输入序列,即Global Propagation,实验结果如下:
从实验中可知:①分段K KK越小对表现力的提升越大,说明了越大的时间感受野越有利于视频超分,即较远的帧信息也很重要,不能像Local那样去忽略他们。②分段之后序列的首端和尾端出的表现力会下降比较厉害且时间窗口越小,下降的次数越多,这说明了采用一个较长序列作为输入还是有必要的。
Unidirectional:解决Local的一个方式就是使用从视频序列头到尾作为输入的方式,但这样也有个问题就是对于不同帧来说是不公平的。具体而言,对于首端的帧来说,其可以利用的特征信息只有它自己,而末端的帧可利用的是整个序列的所有信息。这种信息的不平衡带来的最大问题就是,早期的视频帧会陷入局部最优。为了验证这一点,作者做了相关的实验,实验结果如下:
从实验结果中可知:①序列前端的重建效果比较差,后期的倒是和双向的差不多,这就体现了单向的缺陷。②中间段一直处于比双向(虚线)低了近0.5dB,这说明无法利用较后的信息会限制VSR的表现性能。
Bidirectional:Local的考虑不全面问题和单向的不平衡问题都可以使用一个双向机制来解决,BasicVSR设计了一个前向分支,让输入从头帧到尾帧不断进行VSR;后向分支,让输入从尾帧到头帧不断进行VSR。具体的,对于每一个参考帧x i ,其前邻帧x i − 1 、后邻帧x i + 1 ,以及2个邻帧各自相关的隐藏状态(双向机制利用RNN的存储结构,将之前或之后的信息记忆在隐藏状态h hh中)。双向循环结构如下所示:
②Alignment
对齐主要分为3种:无对齐、图像对齐(image-wise)、特征对齐(feature-wise)。常见的图像级对齐有VESPCN、Robust-LTD等;特征级对齐是一种隐式对齐的方式,其对齐发生在feature map上,它通过隐式捕捉运动来完成隐式的运动补偿,常见的比如TDAN、EDVR等。接下来我们具体分析这三种方式的优缺点,并提出BasicVSR的做法:
Without alignment:RSDN采用的就是一种非对齐的方式,非对齐的方式由于节省了对齐模块,故在效率和资源消耗上会少很多。但是相比对齐,非对齐是一定会弱化最终VSR的表现力的。为了验证非对其的次优性,作者将BasicVSR的对齐模块删去,直接将非对其特征进行concat然后重建,由于BasicVSR的卷积核一般比较小,故非对齐下的PSNR下降了1.19dB,因此非对齐下想要通过更好的融合信息,需要加大感受野,增加卷积的采样范围。
Image alignment:对齐方式中分为图像级对齐和特征对齐,判断的关键就是warp发生在图像上还是feature map上,或者说最后输出的是对齐的图像还是对齐的feature map。大多flow-based对齐方式都是image-wise的,例如VESPCN、Robust-LTD等,但是Understanding Deformable Alignment in Video Super-Resolution这篇文章证明了feature-wise对齐比image-wise对齐能产生更大的性能提升。这其实起源于Image-wise对齐高度依赖于运动(光流)估计的准确性,较低的精度会导致输出对齐图像上出现很多artifacts,比如模糊重影等,为后续融合SR带来性能的下降。作者做了相关实验,基于image对齐在PSNR上下降了0.17dB,这也这个证明了将对齐坐在feature-wise的重要性。
Feature alignment:特征对齐的VSR有诸如TDAN、EDVR等,他们都是flow-free方法,而BasicVSR的对齐模块基于flow-based,但是对齐做在feature map上,即对feature做warp,而不是warp在Image上。其实做在feature map上的另一个好处在于对齐的feature map虽然也会因为隐式的运动补偿出现特征上的artifacts,但它可以继续通过卷积进行校正,减缓后续图像层级上artifacts的出现。在BasicVSR中,两个双向分支中都要做对齐,其包括光流估计和特征级上的warp两个过程,此外还设置让对齐之后特征图进入特征校正模块进行refine,BasicVSR中采用了残差块堆积的形式,而TDAN中的refine采用了简单的卷积层,具体对齐框架结构如下:
它这里的卷积层是用来将对齐特征重建成对齐帧,当然也起到了特征校正的效果。
Warp在变换网络,入STN、DCN中一般指代重采样过程,VSR利用warp产生对齐版本的支持帧,也可以看成是运动补偿的结果,是支持帧的估计值。
隐式的含义就是warp是直接发生在feature map上的(或者说隐式的捕捉运动信息),他一般还需要通过卷积等操作才能将变换显示在图像级上,是一种间接的方法,而不是直接在Image上进行变形。
关于深度学习中feature map的定义:
小结一下:
BasicVSR使用双向循环机制来传播所有帧的信息。
使用flow-based对齐但是基于feature-wise,并使用特征校正来减缓特征上的artifacts。
融合使用简单的concat。
上采样使用PixelShuffle。
通过创新的Propagation和Alignments,以及现存的一些Aggregation和Upsampling方法,BasicVSR最终形成了一个简单轻量的模型,在速度和表现力上都很出色,最重要的是,我们可以以它为基础,网上增加一些功能来进化BasicVSR,为了演示这种进化,作者又提出了BasicVSR的升级版本——IconVSR,接下来我们就介绍这一新结构。
3.2 From BasicVSR to IconVSR
①:BasicVSR的Propagation带来了全局信息的输入,但是这种长距离循环传播的机制会让对齐部分的误差进行累积,从而会导致一些图片上的细节部分无法很好的恢复出来,为了解决误差累积的问题,IconVSR推出了Information-refill来填充弥补因为对齐误差导致的一些细节的损失。
②:此外,在很多情景中都会有遮挡现象,就比如说一辆车经过一棵树,假设现在有3帧,第一帧汽车遮挡住了树,第二帧汽车刚好离开树,第三帧汽车远离树,具体场景如下:
那么当你想要重建第二帧的时候,由于之前的帧没有树的信息,因此第二帧的重建就会很困难,而如果此时后向传播的信息能够加入进来,就可以恢复出这棵树的细节信息,这就是IconVSR针对BasicVSR做出的第二点改进,引入耦合传播(Coupled propagation)机制,在前向分支上加入后向分支对齐的信息。
接下来我们分别介绍IconVSR基于BasicVSR的两个创新点。
①Information-refill
在长距离的propagation上是很容易产生对齐误差的积累,首先对齐本身就是有误差的,是做不到完全精确的,其次特别是当遮挡、边界、多细节位置在对齐的时候更容易产生错误的对齐。遮挡是因为对于走出遮挡之后的帧是无法将其一帧的信息和当前帧对齐;边界是因为,前一帧或后一帧没有和图像边界相关的信息;多细节区域会由于不断累积的误差导致其能恢复出来的细节遭到了限制。
为了解决这三种场景的问题,作者对于Aggregation处引入Information-refill来进行解决。具体地,通过在对齐之后,特征校正之前引入一个额外的特征提取模块,如果当前参考帧在关键帧集合内,那么由关键帧及其相邻2个支持帧组成该模块的输入。该特征提取模块是用较轻量的EDVR来做的,因此其特征提取的结果其实就是EDVR将这3帧当成输入,最后输出这三帧经过PCD和TSA之后的融合结果e i 。然后将e i 和2个分支各自本身对齐的结果相融合,并通过卷积之后输出到特征校正中去。具体结构如下:
可能这时候你会有疑问,BasicVSR不是本身也有后向传播么,之后2个分支融合不是也能将前后传播信息相互结合,难道不能给给上面车挡树视频中间这一帧进行很好的重建嘛?
注意这种方式将后向的信息加入到前向的对齐操作中,所以在重建的时候,对于遮挡的物体可以根据后向信息预测出来相关细节。而BasicVSR前向和后向都是独立预测的,虽然两者都利用了前面和后面的信息,但是每一个分支在对齐的时候,是各做各的,前向分支在对齐的时候,因为没有树的信息,所以很难对齐,这时候如果有后向对齐的信息,就可以借用来做对齐。在BasicVSR中,最后第二帧中树干部分的重建其实只有后向分支的对齐是有意义的,前向由于遮挡,所以其对齐是很难的,经过之后的融合会产生不太好的效果。而IconVSR的改进使得前向也能完成很好的对齐,这样的话第二帧的重建就会有2个不错的对齐一起合力帮助后续融合超分重建出好的表现。
4 Experiments
训练集:REDS、Vimeo-90K
验证集:REDS本身的30个视频,再额外从训练集中抠出4个,记为REDSval4
测试集:Vid4、UDM100、Vimeo-90K-T
实验设置:
可视化结果如下:
实验结论:
总的来说,BasicVSR和IconVSR在表现力上超越了之前的SOTA视频超分类方法。
5 Ablation Studies
本节开始探究IconVSR的2个创新点的功能以及对IconVSR中间隔intervals的讨论。
5.1 From BasicVSR to IconVSR
①首先研究Information-refill对VSR最终性能的影响:
②其次研究Coupled-Propagation对VSR最终性能的影响:
耦合传播机制对于遮挡情景是最适用了,实验结果如下所示:
额外的实验结果如下:
小结一下:
在遮挡问题上,Information-refill和Coupled-Propagation对遮挡区域的对齐使用类似的处理方法,即借助未来帧的特征信息。
在边界问题上,Information-refill和遮挡情形相反,它借助之前帧的特征信息。
5.2 Tradeoff in IconVSR
接下来作者探究的是关键帧个数对IconVSR重建性能和速度的影响,实验结果如下:
实验结论如下:
显然,参考帧越多,Information-refill的使用次数越频繁,那么所造成的训练时间就会越多,但是也带来了表现力的提升。
当参考帧的个数为0时,IconVSR的性能仍然要比BasicVSR要高出0.21dB,从这里也反映出了Coupled-Propagation对VSR表现力的提升作用。
6 Conclusion
在本文中,作者将VSR分为Propagation、Alignment、Aggregation、Upsampling四部分。通过结合一个双向循环传播机制的结构、基于光流的feature-wise的对齐方法,以及结合一般的融合和上采样方式,最终设计出一个轻量级的、同时具备高表现性能的VSR方法——BasicVSR。
BasicVSR最大的价值在于它可以作为今后研究VSR的baseline,作者演示了如何去基于BasicVSR来设计出一个改进版本的VSR方法,这就是IconVSR。
为了解决BasicVSR中因为遮挡、边界等问题造成的对齐误差问题,以及长范围的propagation产生的误差累积问题,IconVSR引入Information-refill机制;为了让每一帧的特征对齐都能利用过去和未来的特征信息,IconVSR引入Coupled-Propagation机制,通过引入这两项创新,IconVSR在略微增加模型复杂度的基础上,在表现力上超越了BasicVSR。
机器学习算法AI大数据技术
搜索公众号添加: datanlp
长按图片,识别二维码
阅读过本文的人还看了以下文章:
TensorFlow 2.0深度学习案例实战
基于40万表格数据集TableBank,用MaskRCNN做表格检测
《基于深度学习的自然语言处理》中/英PDF
Deep Learning 中文版初版-周志华团队
【全套视频课】最全的目标检测算法系列讲解,通俗易懂!
《美团机器学习实践》_美团算法团队.pdf
《深度学习入门:基于Python的理论与实现》高清中文PDF+源码
《深度学习:基于Keras的Python实践》PDF和代码
特征提取与图像处理(第二版).pdf
python就业班学习视频,从入门到实战项目
2019最新《PyTorch自然语言处理》英、中文版PDF+源码
《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码
《深度学习之pytorch》pdf+附书源码
PyTorch深度学习快速实战入门《pytorch-handbook》
【下载】豆瓣评分8.1,《机器学习实战:基于Scikit-Learn和TensorFlow》
《Python数据分析与挖掘实战》PDF+完整源码
汽车行业完整知识图谱项目实战视频(全23课)
李沐大神开源《动手学深度学习》,加州伯克利深度学习(2019春)教材
笔记、代码清晰易懂!李航《统计学习方法》最新资源全套!
《神经网络与深度学习》最新2018版中英PDF+源码
将机器学习模型部署为REST API
FashionAI服装属性标签图像识别Top1-5方案分享
重要开源!CNN-RNN-CTC 实现手写汉字识别
yolo3 检测出图像中的不规则汉字
同样是机器学习算法工程师,你的面试为什么过不了?
前海征信大数据算法:风险概率预测
【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类
VGG16迁移学习,实现医学图像识别分类工程项目
特征工程(一)
特征工程(二) :文本数据的展开、过滤和分块
特征工程(三):特征缩放,从词袋到 TF-IDF
特征工程(四): 类别特征
特征工程(五): PCA 降维
特征工程(六): 非线性特征提取和模型堆叠
特征工程(七):图像特征提取和深度学习
如何利用全新的决策树集成级联结构gcForest做特征工程并打分?
Machine Learning Yearning 中文翻译稿
蚂蚁金服2018秋招-算法工程师(共四面)通过
全球AI挑战-场景分类的比赛源码(多模型融合)
斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)
python+flask搭建CNN在线识别手写中文网站
中科院Kaggle全球文本匹配竞赛华人第1名团队-深度学习与特征工程
不断更新资源
深度学习、机器学习、数据分析、python
搜索公众号添加: datayx
这篇关于轻量且高性能的视频超分算法——BasicVSR的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!