zoukankan      html  css  js  c++  java
  • Video Frame Synthesis using Deep Voxel Flow 论文笔记

     

    Video Frame Synthesis using Deep Voxel Flow 论文笔记

    arXiv 

      摘要:本文解决了模拟新的视频帧的问题,要么是现有视频帧之间的插值,要么是紧跟着他们的探索。这个问题是非常具有挑战性的,因为,视频的外观和运动是非常复杂的。传统 optical-flow-based solutions 当 flow estimation 失败的时候,就变得非常困难;而最新的基于神经网络的方法直接预测像素值,经常产生模糊的结果。

      于是,在此motivation的基础上,作者提出了结合这两种方法的思路,通过训练一个神经网络,来学习去合成视频帧,通过 flowing pixel values from existing ones, 我们称之为:deep voxel flow. 所提出的方法不需要人类监督,任何video都可以用于训练,通过丢掉,并且预测现有的frames。这种方法是非常有效的,可以用于任何的分辨率。实验结果还是不错的。

      引言:本文所涉及到的两个重要的部分,一个是 video interporation;一个是 video extrapolation。

      传统的方法解决上述问题,就是依赖于 帧与帧之间的 optical flow,然后进行 optical flow vectors 之间的【插值】或者 【预测】。这种方法称为:“optical-flow-complete”;当光流准确的时候,这种方法是非常有效的,但是当不准确的时候,就会产生额外的错误信息。一种基于产生式 CNN 的方法,直接产生 RGB 像素值。但是这种方法经常会产生模糊的情况,并非像光流一样有效。

      本文的目标是结合这两种方法的优势。作者有两个方面的观察:

      1. 大部分像素块都是近邻图像的直接copy,而直接copy pixels 比模拟产生他们,要简单的多。

      2. 端到端训练的神经网络是一个非常有效的工具。对于 video interpolation 和 extrapolation 来说,更是如此,因为训练可以是无限的;任何video都可以用于训练一个无监督的神经网络。

      

      所以,我们就可以利用现有的video进行无监督的学习。我们扔掉 frames,然后利用损失函数来衡量 产生的像素值 和 gt 像素值之间的差距。但是,像 optical-flow approaches 一样,我们的网络通过从附近的 frames 插值 pixel values。这个网络包括 a voxel flow layer ------ a per-pixel, 3D optical flow vector across space and time in the input video. 所以,对于 video interpolation,最终输出的像素值,可以是前一帧和后一帧混合的像素值。

      The Proposed Methods 

      本文提出一种 Deep Voxel Flow (DVF) 算法 ------ an end-to-end fully differentiable network for video frame synthesis. 

      像上图所展示的那样,卷积 encoder-decoder 预测 the 3D voxel flow, 然后我们添加 添加一个 volume sampling layer sythesizes the desired frame, accordingly. DVF 学习去模拟target frame Y,输入的video为 X。我们将 the convolutional encoder-decoder 看做是 H(),H 的输出是 3D voxel flow field F 

      

      voxel flow F 的空间成分表示 从 target frame 到 the next frame 的optical flow;该光流的 negative 用来鉴别对应的前一帧的位置。即,我们假设光流是局部线性的,并且是 时间上对称的 around the in-between frame. 准确的说,我们在前一帧和后一帧,定义了对应位置的绝对位置:$L_0, L_1$。

       voxel flow F 时间上的成分是 a linear blend weight between the previous and next frames to form a color in the target frame. 

      我们利用这个 voxel flow 来采样原始的输入video X with a volume sampling function T 来构成最终的拟合帧 Y:

      

        The volume sampling function 从 X 上计算出 在 optical-flow-aligned video volume 内部进行插值采样color。给定对应的位置 (L0, L1),我们利用这个 volume 构建一个 virtual voxel,然后利用 trilinear interpolation 来计算输出的 video color 。我们在输入 video X 上计算 the virtual voxel 的 8个顶点的 integer locations :

      

      给定了这个 virtual voxel,3D voxel flow 通过 trilinear interpolation,产生每个 target voxel Y

      

      其中,$W^{ijk}$ 是 trilinear resampling weight.

      这个 3D voxel flow 可以看做是 2D motion field 和 前一帧和后一帧的 mask 选择。我们可以将 F 分为 $F_{motion} and F_{mask}$。

      

      Network Architecture.

        DVF 由 一个完整的 全卷积 encoder-decoder architecture, 包括三个卷积层,三个反卷积层 和 一个 bottleneck layer。

      1. Learning 

        网络训练的目标函数为: 

        

        其中,D 是所有视频三元组的 训练集合,N 是对应的基数,Y 是需要重构的 target frame。

        $||F_{motion}||_1$ 是 在 (x, y)上的 total variation term ; 

        $||F_{mask}||_1$   是  the regularizer on the temporal component of voxel flow。

      

      2. Multi-scale Flow Fusion.

      

      3. Multi-step Prediction.   

       

        

          

  • 相关阅读:
    【交换】
    【数字对】
    【改造二叉树】
    【Begin】
    100以内所有质数的输出
    位运算符、|和||、&和&&的区别
    linux中vim编辑器三种模式及常用命令的使用
    静态代码块、构造代码块和构造函数的执行顺序
    字符乱码出现的原因及解决办法
    Springcloud-微服务
  • 原文地址:https://www.cnblogs.com/wangxiaocvpr/p/6393268.html
Copyright © 2011-2022 走看看