【VFI系列2】视频内插帧中基于optical flow的 backward/forward warping

该系列内容比较基础,仅是方便我们实验室小萌新入门。(最近太忙了,更慢了)

基于backward warping的可微图像采样(Differentiable image sampling)已经广泛应用于深度估计(depth estimation)、光流预测(optical flow prediction)等任务中。

ps:Differentiable image sampling在论文 Spatial Transformer Networks 中有描述。

 

简单的说,内插帧的原理即:假定输入的两帧为 I_{0}(x) 和 I_{1}(x) , x\in [1,H]\times [1,W], 这里的H和W是图像的高和宽,也就是视频的分辨率中的高和宽。视频内插帧的目标是生成两帧间 t 时刻的帧 I_{t}t\in [0,1]

 

在插帧方法中,有一类是基于流(flow-based)的方法,即结合了光流估计(optical flow estimation)来合成中间帧。基本的流程大致如下:

1. 通过输入的两个参考帧 I_{0} 和 I_{1},基于光流估计算法得到双向光流(bi-directional optical flow),记为F_{0\rightarrow 1}F_{1\rightarrow 0} 

  F_{0\rightarrow 1}:  I_{0} 到 I_{1} 的光流

  F_{1\rightarrow 0}I_{1} 到 I_{0} 的光流

由于中间帧不可用,因此通过变换前后参考帧之间的流,然后对其进行投影以模拟中间帧和参考帧之间的流。

2. 基于得到的光流,warping 输入的参考帧,去预测中间帧,这里就根据warping的方式可分为两类:

 1)forward warping

  •      基于F_{0\rightarrow 1},估计 t 时刻的光流 \mathbf{F_{0 \rightarrow t}}通过 f forward warping I_{0},得到中间帧 I_{t}

     I_{t}\approx f(I_{0},F_{0 \rightarrow t})=f(I_{0},t \cdot F_{0 \rightarrow 1})

  •      基于F_{1\rightarrow 0},估计 t 时刻的光流 \mathbf{F_{1 \rightarrow t}}通过 f forward warping I_{1},得到中间帧 I_{t}

     I_{t}\approx f(I_{1},F_{1 \rightarrow t})=f(I_{1},(1-t) \cdot F_{1 \rightarrow 0})

     但是forward warping会出现孔洞(holes)问题。本系列上一篇文章介绍过,这里再简单直观地说明一下    【VFI系列2】视频内插帧中基于optical flow的 backward/forward warping_第1张图片

      t 表示时域关系,第一行和第三行表示 I_{0} 和 I_{1}。箭头指向即前向流。上图描述了三个问题:

       (1) holes 问题,即在中间时刻 t=\alpha ,没有流经过中间帧的某些像素点;

       (2) ordering 问题,即在中间时刻 t=\alpha ,有多个流经过中间帧的某些像素点;

       (3) occlusion问题,即在 t=1,有多个流指向相同的位置。

 2)backward warping

  •      基于F_{0\rightarrow 1},估计 t 时刻的光流 \mathbf{F_{t \rightarrow 0}} ,通过 f backward warping  I_{0},得到中间帧 I_{t}

       I_{t}\approx f(I_{0},F_{t \rightarrow 0})=f(I_{0},-t \cdot F_{0 \rightarrow 1})   

  •       基于F_{1\rightarrow 0},估计 t 时刻的光流  \mathbf{F_{t \rightarrow 1}},通过 f backward warping  I_{1},得到中间帧 I_{t}

       I_{t}\approx f(I_{1},F_{t \rightarrow 1})=f(I_{1},- (1-t) \cdot F_{1 \rightarrow 0})       

   

你可能感兴趣的:(视频插帧)