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.   

       

        

          

  • 相关阅读:
    Linux内核RPC请求过程
    二分图
    Java实现 蓝桥杯 算法提高 合并石子
    Java实现 蓝桥杯 算法提高 合并石子
    Java实现 蓝桥杯 算法提高 摩尔斯电码
    Java实现 蓝桥杯 算法提高 摩尔斯电码
    Java实现 蓝桥杯 算法提高 文本加密
    Java实现 蓝桥杯 算法提高 文本加密
    Java蓝桥杯 算法提高 九宫格
    Java蓝桥杯 算法提高 九宫格
  • 原文地址:https://www.cnblogs.com/wangxiaocvpr/p/6393268.html
Copyright © 2011-2022 走看看