Video-to-Video论文解读


论文: 《Video-to-Video Synthesis Ting-Chun》
github: https://github.com/NVIDIA/vid2vid

解决问题

视频生成任务需要生成时间上的连续帧,这对图像翻译任务来说是个挑战;
视频预测任务不会尝试预测目标运动或相机运动,这与视频生成存在很大差异;
本文提出方法可生成连续逼真高分辨率视频。

算法

s 1 T ≡ { s 1 , s 2 , . . . , s T } s^T_1 \equiv \{s_1,s_2,...,s_T\} s1T{ s1,s2,...,sT}表示源视频序列, x 1 T ≡ { x 1 , x 2 , . . . , x T } x^T_1 \equiv \{x_1,x_2,...,x_T\} x1T{ x1,x2,...,xT}表示相关真实序列, x ~ 1 T ≡ { x ~ 1 , x ~ 2 , . . . , x ~ T } \tilde x^T_1 \equiv \{\tilde x_1,\tilde x_2,...,\tilde x_T\} x~1T{ x~1,x~2,...,x~T}表示生成序列;
通过优化式2训练生成器,
在这里插入图片描述

序列生成器

为简化video-to-video问题,作者将条件分布 p ( x ~ 1 T ∣ s 1 T ) p(\tilde x^T_1 | s^T_1 ) p(x~1Ts1T)转化为式3,
在这里插入图片描述
第t帧 x ~ t \tilde x_t x~t生成依赖于三个要素:

  1. 当前源帧 s t s_t st
  2. 过去L帧源帧 s t − L t − 1 s^{t-1}_{t-L} stLt1
  3. 过去L帧生成帧 x ~ t − L t − 1 \tilde x^{t-1}_{t-L} x~tLt1;

作者使用前馈网络F建模条件分布 p ( x ~ t ∣ x ~ t − L t − 1 , s t − L t ) p(\tilde x_t | \tilde x^{t-1}_{t-L},s^t_{t-L}) p(x~tx~tLt1,stLt) x ~ t = F ( x ~ t − L t − 1 , s t − L t ) \tilde x_t = F(\tilde x^{t−1}_{t−L}, s^t_{t−L}) x~t=F(x~tLt1,stLt)
L过少导致训练不稳定,过大将增加训练耗时及内存,且质量改善不明显。在作者实验中设置为2。
由于连续帧中大量信息重复,因此如果连续帧之间光流一致,则可以估计下一帧,除去遮挡区域,此估计很大程度上式正确的。基于此发现,F可定义为式4,前半部分用于扭曲前一帧,后半部分用于引入新生成像素,两者相互补充
在这里插入图片描述
其中,
w ~ t − 1 = W ( x ~ t − L t − 1 , s t − L t ) \tilde w_{t-1} = W(\tilde x^{t-1}_{t-L},s^t_{t-L}) w~t1=W(x~tLt1,stLt)表示 x ~ t − 1 \tilde x_{t-1} x~t1帧到 x ~ t \tilde x_{t} x~t帧所估计光流;
h ~ t = H ( x ~ t − L t − 1 , s t − L t ) \tilde h_t = H(\tilde x^{t−1}_{t−L},s^t_{t−L}) h~t=H(x~tLt1,stLt) 为预测生成帧;
m ~ t = M ( x ~ t − L t − 1 , s t − L t ) \tilde m_t = M(\tilde x^{t−1}_{t−L}, s^t_{t−L}) m~t=M(x~tLt1,stLt)为预测遮挡mask;

判别器

作者设置多个判别器解决面模式坍塌问题;
D I D_I DI用于确保输出帧与真实图相似; D V D_V DV用于确保生成视频与真实视频相似;
另外作者使用两个采样器 ϕ I , ϕ V \phi _I, \phi _V ϕI,ϕV分别进行图像随机采一帧,视频随机采K帧;

损失函数

损失函数如式5,
在这里插入图片描述
L I L_I LI使用 ϕ I \phi _I ϕI,如式6,
在这里插入图片描述
L V L_V LV使用 ϕ V \phi _V ϕV,如式7,
在这里插入图片描述
L W L_W LW如式8,包括两项,前者计算光流预测值与真值误差,后者计算依据光流预测下一帧与真实帧误差;
在这里插入图片描述

前背景先验

当输入mask作为源视频时,作者解耦图像生成网络H为前景模型 h ~ F , t = H F ( s t − L t ) \tilde h_{F,t}=H_F(s^t_{t-L}) h~F,t=HF(stLt)和背景模型 h ~ B , t = H B ( x ~ t − L t − 1 , s t − L t ) \tilde h_{B,t}=H_B(\tilde x^{t−1}_{t−L},s^t_{t−L}) h~B,t=HB(x~tLt1,stLt)。由于背景区域变化不大,可通过光流估计预测, H B H_B HB只需生成遮挡区域;而前景变化大,通过光流估计比较困难,使用 H F H_F HF生成大多数前景区域,因此F可定义为式9;
在这里插入图片描述
低分辨率视频生成器网络结构如图8所示,
在这里插入图片描述
高分辨率视频生成器网络结构如图9所示,
在这里插入图片描述

多模态生成

生成网络F为单模态映射网络,给出源视频,仅能生成一个输出视频;为了达到多模态生成目的,作者训练图像编码器E将真实图 x t x_t xt编码为d维特征图,而后将实例进行avg pooling得到特征向量 z t z_t zt,使得在同一目标区域像素使用同一特征向量,将 z t z_t zt及分割mask s t s_t st送入生成器F;推理时,使用使用某一目标的特征向量;因此随着特征向量不同,F可以生成不同视频;

实验

图1,图2中虽然pix2pixHD生成每一帧比较真实,但是整个视频缺少连贯性,建筑物、车道帧与帧之间不一致,COVST也存在此问题。
在这里插入图片描述
在这里插入图片描述
表2展示消融实验结果,前背景先验、有条件视频判别器、flow wrap均有利于生成逼真效果;
在这里插入图片描述
图3展示多模态生成结果;
在这里插入图片描述
图4展示改变分割标签效果;
在这里插入图片描述
图5展示sketch2video效果,模型可以改变原始人脸视频,生成新的人脸;
在这里插入图片描述
图6,该模型学习生成超分跳舞视频,包含未见过人体身材和动作。
在这里插入图片描述
图7表示视频预测结果;预测分割mask,依据mask生成视频;
在这里插入图片描述

结论

作者基于conditional GAN提出video2video视频生成;大量实验证明本文方法达到SOTA;
但仍存在一些问题:
1、由于缺少足够信息,难以生成转弯的汽车;
2、不能保证目标在整个视频中一致性;
3、在进行分割处理将树转变为建筑时,偶尔出现伪影,因为两者形状不同。

猜你喜欢

转载自blog.csdn.net/qq_41994006/article/details/125686847
今日推荐