Quadratic Video Interpolation

  • 1. 网络整体结构
  • 2. 主要模块
    • 2.1 quadratic flow prediction 模块
    • 2.2 flow reversal 模块
    • 2.3 frame synthesis
  • 3. 实验结果
  • References

这篇文章来自NeurIPS 2019,主要关于视频插帧。视频插帧的目的是在视频中合成新的中间帧,以提高视频的帧率。

以前的关于视频插帧工作的主要特点:

  • 通常假设物体帧间运动是匀速的,所以通常采用线性模型进行插帧

这篇论文的主要创新点是:

  • 考虑视频中帧间物体运动的加速度信息,能够更加准确刻画视频中物体的真实运动轨迹。(为了简单,文中考虑的是匀加速运动)

下面详细分析改论文的主要内容。

1. 网络整体结构

首先来看下,改论文进行二次视频插帧的整体网络框架。
从上图可以看出,为了实现二次视频插帧,作者提出了两个关键模块:quadratic flow prediction 和 flow reversal模块,来实现两个方向的光流计算,用于计算最终的插入视频帧。下面来分析这两个光流计算模块。

2. 主要模块

为了叙述的方便,先对下文中要用到的符号进行简单的说明。

  • {...,I−2,I−1,I0,I1,I2,...}:\{...,I_{-2},I_{-1},I_0,I_1,I_2,...\}:{...,I−2​,I−1​,I0​,I1​,I2​,...}: 表示连续的视频帧。
  • 不失一般性,下文以在I0,I1I_0,I_1I0​,I1​ 连续两帧之间插入新的帧 It^,t∈(0,1)\hat{I_t},t\in(0,1)It​^​,t∈(0,1) 为例。
  • f0→t:f_{0\rightarrow t}:f0→t​: 表示像素从 0 时刻到 ttt 时刻产生的位移。
  • vt:v_t:vt​: 表示像素在 ttt 时刻的运动速度
  • at:a_{t}:at​: 表示像素在 ttt 时刻的加速度

2.1 quadratic flow prediction 模块

对于一般的运动,有如下的关系式:
f0→t=∫0t[v0+∫0κaτdτ]dκ(1)f_{0\rightarrow t} = \int_{0}^{t}[v_0 + \int^{\kappa}_{0}a_{\tau}d_{\tau}]d\kappa\tag{1}f0→t​=∫0t​[v0​+∫0κ​aτ​dτ​]dκ(1)

  • 假设 aτ=0a_{\tau}=0aτ​=0,即得到常用的线性模型 f0→t=t⋅f0→1f_{0\rightarrow t}=t\cdot f_{0\rightarrow 1}f0→t​=t⋅f0→1​ 线性模型只需要两点,即 I0,I1I_0, I_1I0​,I1​。
  • 原文中为了兼顾运动高阶信息和模型复杂性,假设 aτ=aa_{\tau}=aaτ​=a,为一个常数,即采用匀加速运动模型。易得,f0→t=(f0→1+f0→−1)/2⋅t2+(f0→1−f0→−1)/2⋅t(2)f_{0\rightarrow t}=(f_{0\rightarrow 1} + f_{0\rightarrow -1})/2\cdot t^2 + (f_{0\rightarrow 1} - f_{0\rightarrow -1})/2\cdot t \tag{2}f0→t​=(f0→1​+f0→−1​)/2⋅t2+(f0→1​−f0→−1​)/2⋅t(2)
    这即一个二次模型,需要三个点的信息,即 I−1,I0,I1I_{-1},I_0,I_1I−1​,I0​,I1​ 三个点的信息。也就是原文中提到的用到了更多相邻帧的信息。(当然,高阶模型必然用到更多的点去进行拟合,自然就用到了更多帧的信息)
    Quadratic Video Interpolation 一文中用到的就是匀加速运动模型。显然,高阶模型能够更加准确刻画一些复杂的运动,如下图所示:

2.2 flow reversal 模块

为了插入高质量的帧,需要用到光流 ft→0f_{t\rightarrow 0}ft→0​ (可参考文献[1,2])。为了更好的适应文中提出的二次模型,文中作者提出了“flow reversal layer” 来计算流 ft→0f_{t\rightarrow 0}ft→0​, 具体如下:其中 uuu 表示 ItI_tIt​ 帧上的像素,N(u)\mathcal{N}(u)N(u) 表示 uuu 的邻域,w(d)=e−d2/σ2w(d)=e^{-d^2/\sigma^2}w(d)=e−d2/σ2 表示高斯权重,原文实验中 σ=1\sigma=1σ=1。之所以用到邻域而非单个像素点,是为了使得算法更加鲁棒。

2.3 frame synthesis

实则上得到了backward flow ft→0f_{t\rightarrow 0}ft→0​ 之后,已经可以进行新的视频帧的合成(如下面的公式(6),只需将(6)中的 ft→0′f^{'}_{t\rightarrow 0}ft→0′​ 替换为 ft→0f_{t\rightarrow 0}ft→0​ 即可)。但是一般地, ft→0f_{t\rightarrow 0}ft→0​ 具有边缘震荡效果(ringing artifacts),文中作者希望对 ft→0f_{t\rightarrow 0}ft→0​ 进行中值滤波,但为了使得操作更加简单,使用如下方式来模拟一个中值滤波过程:
ft→0′(u)=ft→0(u+δ(u))+r(u)(5)f^{'}_{t\rightarrow 0}(u)=f_{t\rightarrow 0}(u+\delta(u))+r(u)\tag{5}ft→0′​(u)=ft→0​(u+δ(u))+r(u)(5)
其中 ft→0′f^{'}_{t\rightarrow 0}ft→0′​ 表示 ft→0f_{t\rightarrow 0}ft→0​ 滤波后的值;δ(u)∈(−k,k)\delta(u)\in (-k,k)δ(u)∈(−k,k),用 k×tanh⁡(⋅)k\times \tanh(\cdot)k×tanh(⋅) 来实现,是可学习的(原文中用U-Net来估计 δ(u),r(u)\delta(u), r(u)δ(u),r(u)),(这个有点类似可形变卷积deformable convolution过程),原文实验中 k=10k=10k=10;

在得到了滤波后的 ft→0′f^{'}_{t\rightarrow 0}ft→0′​ 之后,同理可得 ft→1′f^{'}_{t\rightarrow 1}ft→1′​;然后,就可以根据下面的公式进行新的视频帧的合成,即
其中 m(u)m(u)m(u) 是一个可学习的mask(可用CNN实现),用来记录哪些有效的点用于进行新的视频帧的合成。

这样,经过上面的三个步骤就可以计算得到新的插入视频帧。(这些操作,都是建立已经估计好光流信息的前提下,至于估计光流的网络,文中用的PWC-Net;当然也可以是其他的光流估计方法。)

注意: 原文中在提到希望对 ft→0f_{t\rightarrow 0}ft→0​ 进行中值滤波时,作者说到 “While the classical median filter involves indifferentiable operation and cannot be easily trained in our end-to-end model”,个人觉得这句话表述有误,中值滤波仅仅涉及元素的排序及取中值,这与CNN中常用的 maxpoolingmax ~poolingmax pooling 是类似的(它相当于排序及取最大值)。所以原文中的表述说“不可微”是不恰当的

3. 实验结果

在UCF101, DAVIS数据集上的PSNR,SSIM指标

References

[1]. High quality estimation of multiple intermediate frames for video interpolation.
[2]. Video frame synthesis using deep voxel flow.

Quadratic Video Interpolation 视频插帧相关推荐

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

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

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

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

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

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

  4. 计算机视觉动画视频插帧难点、流程及改进

    0  引言 在动画行业中,动画视频是由专业动画师使用复杂的手绘图和精确的程序进行制作.手动绘制视频的每一帧都需要花费大量的时间,过高成本的同时无法产生令人满意的动画数据效果.本文结合Deep Anim ...

  5. AI视频插帧 附带『视频插帧』工具

    AI视频插帧 附带『视频插帧』工具 视频插帧工具来啦! 下载链接在最下面. 前言 继视频抠图工具以来,本人又考虑制作一款视频插帧的工具,最近一直在改各种问题(头都大了- _ -),还好该来的终于来了( ...

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

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

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

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

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

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

  9. 论文阅读 | Enhanced Quadratic Video Interpolation

    前言:发表在ECCV workshop2020上的一篇文章,在QVI的方法上做的改进,是AIM2020时域超分辨挑战赛的第一 论文地址:[here] 代码地址:[here] Enhanced Quad ...

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

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

最新文章

  1. Java反射:框架设计的灵魂
  2. 输出该链表中倒数第k个结点
  3. 启动多个线程后同时并行执行程序
  4. 【图像融合】评价方法(熵、均方根误差)
  5. 深入浅出看懂AlphaGo Zero (文章最后有原AlphaGo Zero论文地址)
  6. 开心消消乐简单的逆向破解过程
  7. JSP中文显示乱码解决方案
  8. python生成词云图、特殊图形_Python模块---Wordcloud生成词云图
  9. 初谈黑客破解密码的原理
  10. 后端学习路线的书籍经验总结
  11. 利用Python脚本计算基因组测序数据Nx0
  12. matlab一维图像程序,求大神指教啊!基于图像处理的一维条码识别(MATLAB程序)...
  13. 大类资产配置(三)市场择时能力模型T-M
  14. 南柯服务器压力,从纳兰性德《木兰花》中看网络暴力和舆论压力带来的抑郁现象...
  15. 中国连锁药店行业发展机遇与竞争格局分析报告2022-2028年版
  16. 海康摄像头实现点位缩放功能(切换焦距)
  17. JavaScript实现放大镜预览效果
  18. 编码过滤器 | 解决中文乱码问题
  19. IDEA右下角git图标上消失,如何重现?
  20. java学习之服务器第28天( --jsp--三个指令--六个动作标签--PageContext域--EL表达式--)

热门文章

  1. Swiper(介绍、官网链接、引入链接、使用方式,滑动样式属性含义、查找滑动效果、动态Swiper、Vue-CLI引入)
  2. Vue使用Electron获取电脑MAC地址
  3. easyar no matched package name
  4. 远程办公和分布式协作的区别
  5. 安卓手机管理器_iOS苹果手机最好用的三款文件管理器APP
  6. 网站建设方案书怎么写,有规范有固定结构吗?
  7. 没有产权证的车库能不能随时拆掉
  8. 1753: [Usaco2005 qua]Who's in the Middle (快速排序)
  9. 什么是集合竞价和连续竞价
  10. Android实现头像上传至数据库与保存 简易新闻(十七 上)