视频超分中影响超分性能的最主要因素就是帧间对齐效果的好坏。对于不同帧间的对齐,比较常用的就是光流
对齐。但是基于光流对齐的模型需要额外的光流估计网络,光流估计的效果极大地影响着视频超分的性能。因此,如何端到端的完成对齐和重建是很值得思考的。
TDAN模型虽然是CVPR2020年的入选文章,但是其于2019年就已经提出,并且其改进版EDVR
也已经入选CVPR2019。所以作为视频超分中首次以可变形卷积完成特征对齐的文章,TDAN可以作为视频超分的基础文章来看。
在此就不再介绍文章的主要内容,仅仅详细解读一下网络的模型结构,以方便大家对照网络模型代码梳理结构流程。
TDAN网络模型在论文中的结构图如下:
从图中可以看出模型共分为4部分:特征提取模块、特征对齐模块、低分重建模块、超分重建模块。主要流程就是将相邻的视频帧输入到由1层卷积、5层Residual构成的特征提取模块,获得每一帧视频的特征。随后以中间帧的特征为基础,将与中间帧相邻的4帧特征分别于中间帧拼接后送入到特征对齐模块。特征对齐模块完成的功能是将当前帧的特征利用可变形卷积向中间帧的特征进行偏移,生成对齐后的特征。相邻帧特征对齐以后,被输入到低分重建模块恢复成RGB图像,并以中间帧为参考值计算对齐损失。相邻帧全部对齐并重建为低分对齐图像以后,将5帧图像全部送入到超分重建网络。此处的超分重建网络就是以常见的亚像素卷积完成放大的,其中在特征提取时还用了10层Residual。最终就得到超分的图像了!
下面我对照作者给出的代码,详细的绘制了模型各个模块的结构,可以提供给大家对照分析:
一、特征提取模块
输入中间帧和相邻的4帧,共计5帧。首先经过一层卷积和relu提取特征,随后经过5个删除归一化模块的Residual模块。至于为何要删除归一化模块,可以在论文中找到答案。输出就是各个帧的特征图。
二、特征对齐模块
经过特征提取模块的每一帧都被提取成64通道的特征图。特征对其部分将中间帧特征和其他帧特征分别拼接成concat_feat,然后经过一层卷积进行特征融合,随后经过两层普通DCN可变形卷积增强特征的偏移适应性,随后就是改进的DCN,在改进的DCN中,偏移量不在加入到融合特征,而是直接加到待对齐的特征上。也就是说,通过融合特征学习中间帧和相邻帧的偏移特性,然后将偏移特性加到相邻帧上,这样就在特征层面将相邻帧特征向中间帧特征进行对齐。随后又经过了一层普通DCN进一步增强偏移量的偏移能力,最终输出的就是对齐后的相邻帧特征。
值得一提的是,不论是在作者给出的源码中还是mmediting中给出的TDAN代码,在改进DCN的前后分别加了2层和1层普通DCN。这与作者在论文中提到的分别加了3层DCN是有出入的。可能是作者在发论文时实验并没有进行完全。
三、低分重建模块
低分重建就是直接由一层卷积直接将64通道的特征图恢复成3通道的RGB图。对于此部分我曾怀疑一层卷积的恢复能力,所以我也做了实验,对于此处添加几层卷积或者Residual模块,但是效果基本没有变化。也就是说对齐后的特征经过一层卷积就可以很好的恢复为低分辨率图片。
四、超分重建模块
超分重建模块的输入是经过低分重建的5帧对齐低分图像,到此已经完成了不同帧的对齐工作,剩下的就是图像超分的内容了。
作者使用的是ESPCN中的亚像素卷积层完成放大(图中黄色块),在之前用一层卷积和10层Residual完成特征提取和细节提取,最后仍是由一层卷积完成64通道的特征图向3通道的RGB图像的转换。
下面是TDAN网络的整体结构图:
以上就是TDAN的全部流程。
TDAN使用的数据集是Vimeo90K,其在Vid4数据集上的指标PSNR为26.3左右。
对于TDAN的优缺点我会在之后介绍EDVR时指出。
最后,本文中图片除第一张论文中给出的结构图外均为本人自制,请勿盗用。
转载他人文章:https://blog.csdn.net/happyrobot01/article/details/121121513?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_paycolumn_v3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_paycolumn_v3&utm_relevant_index=2
TDAN训练有两个阶段。
阶段一:以更大的学习率训练(1e-4)
./tools/dist_train.sh configs/restorers/tdan/tdan_vimeo90k_bix4_lr1e-4_400k.py 8
阶段二:以较小学习率进行微调(5e-5)
./tools/dist_train.sh configs/restorers/tdan/tdan_vimeo90k_bix4_ft_lr5e-5_400k.py 8