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.