CVPR2021

论文地址:https://arxiv.org/abs/2012.08512
代码地址:https://github.com/avinashpaliwal/Super-SloMo

文章目录

  • 1. 亮点
  • 2. Sampling Training Data from Unlabeled Videos
  • 3. 模型结构
  • 4.训练时的一些设置
  • 5.实验结果
    • 5.1 单帧插值
    • 5.2 多帧插值
    • 5.3 速度vs.精度
    • 5.4 面对不同任务难度的鲁棒性比较
    • 5.5 一些消融实验
  • 6.总结

1. 亮点

  • 使用3D卷积来学习帧间运动信息
  • 无光流估计的单次预测视频插帧方法(CAIN也是,但CAIN一次只能插一帧(t=0.5),FLAVR可以进行一次多帧预测)

2. Sampling Training Data from Unlabeled Videos

  • 训练时以插帧倍数为步长从原始视频数据中进行抽帧,比如要进行4倍插帧,那么要采样的视频帧序列就是A1A_{1}A1​,A5A_{5}A5​,A9A_{9}A9​,A13A_{13}A13​,…

  • 设置了滑动窗口(时间窗口),窗口大小为2CCC(C>=1C>=1C>=1,C∈ZC\in\ZC∈Z),表示C组上下文帧信息(Context Frames),图中所示就是C=2C=2C=2,利用{A1A_{1}A1​,A5A_{5}A5​,A9A_{9}A9​,A13A_{13}A13​} 作为输入,然后一次生成中间的{A6A_{6}A6​,A7A_{7}A7​,A8A_{8}A8​}帧

  • 基于上述的训练过程,该网络设置了如下损失函数:
    L({I‾},{I})=1N∑i=1N∑j=1k−1∣∣I^j(i)−Ij(i)∣∣1L(\lbrace \overline{I} \rbrace,\lbrace {I} \rbrace) =\frac{1}{N}\sum_{i=1}^{N}\sum_{j=1}^{k-1}||\hat{I}_j^{(i)}-{I}_j^{(i)}||_{1} L({I},{I})=N1​i=1∑N​j=1∑k−1​∣∣I^j(i)​−Ij(i)​∣∣1​
    ​ 其中,NNN表示min-batch的大小,而k-1就是要一次生成的中间帧的数量,k表示插帧倍数

3. 模型结构

  • 3D U-Net结构,希望利用3D核所引入的时间维度来学习插帧所需要的时间信息(包含运动轨迹、动作以及帧间的对应关系)

  • encoder部分使用ResNet-3D(R3D)并移除了最后的分类器,取而代之的是5个3D conv模块

  • decoder部分渐进形地融合编码器特征以及多尺度上采样特征(融合高级语义信息以及低级的细节纹理信息)

  • 针对decoder部分使用3D TransConv上采样导致的棋盘格伪影,在3D TransConv layers后加入了3D Conv

  • decoder部分输出的是一个3D feature map,通过一个2D Conv(时间信息融合层)转为2D feature map

  • Spatio-Temporal Feature Gating(时空特征选通模块),实际是一种注意力机制,网络中每一个block最后都会加上该模块,通过适当提高特征映射的某些block的权重,以学习更有用的信息

4.训练时的一些设置

  • 基于问题的对称性,随机选择输入序列并随机对序列进行反转,也会对输入帧进行一个随机的水平翻转

  • 评估阶段,对于多帧插帧,计算生成的多个中间帧的平均PSNR 和 SSIM

5.实验结果

5.1 单帧插值

表1 各算法2倍插帧(单帧插值)的结果
  • 单帧插值,视频帧率由15FPS—>30FPS

  • 上述结构是在VImeo90K的训练集上训练,然后分别在Vimeo90K-val以及UCF101和DAVIS数据集上进行评估,后两者是为了测试模型的泛化能力

  • DAIN以及QVI都引入了额外的模块(已有的网络),DAIN是深度估计以及光流估计网络,QVI是光流估计网络PWC-Net


5.2 多帧插值

表2 各算法8倍插帧(多帧插帧)的结果
  • 8倍插帧,相邻帧间要插入7帧,视频帧率由30FPS------>240FPS

  • 在GoPro上进行训练,然后在GoPro的val集和Adobe 数据集上进行评估

  • QVI在Adobe上的效果更好,但是该模型引入了额外的预训练流估计网络

表3 各算法4倍插帧(多帧插帧)的结果

5.3 速度vs.精度
图3 各算法推理速度和质量的比较图
图4 各算法在不同倍数下的插帧推理速度折线图

  • 图3是各算法在GoPro数据集(512x512图像分辨率 240FPS)上进行8倍插帧后的一个PSNR和推理速度的比较图

  • 图4文中没有提到是在哪个数据集上测出来的结果(能进行32倍插帧比较的话应该是GoPro),但从结果上来说,FLAVR的推理速度随着K的增加几乎没有增加,这一点比较亮眼

  • 文章中也提到这篇工作最大的共享可能就在于提出的FLAVR在现有方法中在速度和精度上达到了最佳平衡,尽管CAIN的速度也很快,但是它只能在t=0.5时刻进行插帧,所以这也是第一篇不需要利用流估计且能进行多帧插值的视频插帧算法。


5.4 面对不同任务难度的鲁棒性比较
图5 各算法在SNU-Film不同插帧难度下的PSNR折现图
  • 上图所示结果是在SNU-Film数据集(AAAI 2020)上测出来的,该数据集根据不同的帧间隔,设置了不同的插帧难度:

    • easy(120-240FPS)
    • medium(60-120FPS)
    • hard(30-60FPS)
    • extreme(15-30FPS)

    都是进行x2插帧(单帧插值),但是很明显若帧间的时间间隔越大,帧间所具有的时间信息就会越多,网络所需要学习并预测的运动信息也会越多,难度就更大。实际上,easy,medium,hard这三个难度是如今更多场合下所需要的。


5.5 一些消融实验

图6 在Vimeo90k上的几个消融实验结果
  • 不同的骨干网络以及上下文输入帧

    • R3D(ResNet 3D)的整体效果优于R2D

    • 采用两组含上下文信息的视频帧(C=2)作为输入的效果会比较好

  • 编码器和解码器部分的不同特征融合方式

    • 比起不进行融合,在编解码器之间相同维度上采用一定的特征传输(融合)方式,能够达到更好的效果(原因:编码器所提供的细节纹理信息和解码器的一个语义信息将进行融合)
    • 融合方式上,从实验结果上来说沿通道维度拼接后,在通过CNN进行聚合优于直接相加
  • 时间步的设置

    • 池化(pooling)和步长(striding)的设置会在一定程度上造成帧间细节信息,而对于VFI这样low-level的合成任务来说对这些细节信息又是有需求的
  • 特征选通(Gating Module)的作用

    • 如下图所示,在每个block后添加了Gating Module后,拥有最大激活值(注意力权重)的特征图如(b)所示会更加关注帧间可视的运动信息,这一点上和CAIN的想法是一致的

图7 注意力加权特征图的可视化

6.总结

​ 上下文帧对中间帧的合成很重要,一般情况下不能引入太多的相关帧,这会带来太多的干扰信息,但并不意味着仅使用前后两帧作为输入(目前大部分方法还是使用这种策略),尤其是在比较高帧率的视频上插帧,时间间隔小了,更大的窗口应该也能引入更多有用信息,QVI做了转变,但实际上也仅是对运动情况做了稍微复杂一点的假设,我觉得FLAVR使用3D Conv 全靠网络自己学习运动轨迹,至少学到得轨迹是不规则的,。。大致就是我觉得前面的方法有下限,也有上限,但这个属于没下限(应该是下限比前者低)也没有上限 。

​ 还没跑模型,但我觉得网络要学习这么多的信息,模型可能会不太好训练,即不容易收敛

视频插帧论文阅读(一)——FLAVR相关推荐

  1. 丝滑!CVPR 2021 视频插帧论文+开源代码汇总

    点击上方"AI算法与图像处理",选择加"星标"或"置顶"重磅干货,第一时间送达 从事算法岗经常需要查看最新的研究成果,希望从中能借鉴一些别人 ...

  2. 视频插帧(Video Frame interpolation)论文及源码

    视频插帧论文列表(含Code) 蓝色突出表示热门方法 CCF A AAAI 2019 CyclicGen:Deep Video Frame Interpolation Using Cyclic Fra ...

  3. 视频插帧各类损失函数汇总

    前言:在做视频插帧方向时,RSNR和SSIM的值往往很高,但是图片的质量却不太佳.这里我先整理一些常用的损失函数,对损失函数进行改进想看看对性能有什么影响. 视频插帧各类损失函数汇总 FLAVR–FL ...

  4. CVPR 2022 | 腾讯优图实验室30篇论文入选,含场景文本语义识别、3D人脸重建、目标检测、视频场景分割和视频插帧等领域...

    关注公众号,发现CV技术之美 本文转载自腾讯优图 近日,CVPR 2022官方公布了接收论文列表(CVPR 2022 接收论文公布! 总计2067篇!),来自腾讯优图实验室共计30篇论文被CVPR收录 ...

  5. 视频插帧—学习笔记(算法+配置+云服务+Google-Colab)

    恰好碰到同学项目需要,了解了一下关于利用深度学习视频插帧的相关知识,在这里做一个简单的记录. 目录 一.方法+论文 1.DAIN (Depth-Aware Video Frame Interpolat ...

  6. 深度学习MEMC插帧论文列表paper list

    整理一下深度学习用于运动估计和运动补偿的论文列表.大致按照内容与时间区分.鉴于工作量太大,而且MEMC这块点击量很少,就不介绍文章内容了. 认准原创:https://blog.csdn.net/lon ...

  7. 干货!考虑部署在移动端的视频插帧模型:CDFI

    点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 对于给定的视频进行插帧操作提高帧率会使得视频更加流畅,但往往用于视频插帧的深度神经网络都具有复杂的模型架构,这使得它们无法部署在系统资源 ...

  8. ECCV 2022 | 视频插帧中的实时中间流估计

    概述 视频插帧算法旨在视频的相邻帧之间生成若干个中间帧.它被广泛用于视频处理,多媒体播放器和显示设备上. 本文提出了一种基于实时中间流估计的视频插帧算法 RIFE,包括一个端到端的高效的中间流估计网络 ...

  9. CVPR 2023 | EMA-VFI: 基于帧间注意力提取运动和外观信息的高效视频插帧

    ©作者 | Guozhen Zhang 单位 | 南京大学媒体计算组 本文介绍南京大学媒体计算组最近被 CVPR 2023 接收的视频插帧方向的工作:Extracting Motion and App ...

  10. CVPR 2022|上海交大腾讯优图提出IFRNet:视频插帧新范式新SOTA

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 点击进入-> CV 微信技术交流群 IFRNet: Intermediate Feature Refi ...

最新文章

  1. python将scikit-learn自带数据集转换为pandas dataframe格式
  2. 腾讯助力贵阳市智慧升级 共同探索创新型城市发展
  3. exit(0)与exit(1)、return区别
  4. QT Windows下生成动态链接库
  5. Asp.Net Core 轻松学-利用日志监视进行服务遥测
  6. java common-lang_common-lang3工具类-使用手册
  7. 【C++笔记】运算符重载
  8. 不用下载Axure RP Extension for Chrome插件,即可看原型文件
  9. 制作 jvm 火焰图
  10. 纯javascript实现 “扫一扫“ 功能,不依赖任何硬件支持,普通浏览器,webview内嵌网页皆可用,如果不能用我吃翔
  11. 介绍一些ddos产品的厂家
  12. Python实现久坐提醒小助手程序
  13. 鼠标指针(光标)变成黑方块的解决方法
  14. python 任务管理系统_python bottle框架开发任务管理系统 V_1.0版
  15. 神奇的口袋【北京大学】
  16. 共词网络(共现网络)学习
  17. 为啥需要RPC,而不是简单的HTTP?
  18. 北京理工大学计算机学院研究生孙灿,蒋芃_北京理工大学计算机学院
  19. 矩阵乘法的并行化算法讨论
  20. KVM 虚机镜像操作, 扩容和压缩

热门文章

  1. linux 迁移类型,迁移到Linux前必须要知道的五个方面
  2. CSR蓝牙芯片进测试模式方法
  3. 中国数字化转型的未来与建议
  4. matlab绘图如何居中,word中插入绘图表格怎样居中
  5. lwj_C#_类的属性,方法参数 举例习题
  6. 非常规的DeepFaceLab(DeepFake)小花招和注意事项
  7. php店铺处罚功能开发,Shopee平台店铺扣分惩罚机制详析!
  8. mysql commit用法_sql commit用法
  9. 2021年9月电子学会图形化四级编程题解析含答案:成语接龙
  10. 【18日】foobox 1.0.1 (foobar2000 CUI配置)