神经网络与深度学习深度学习·神经网络·计算机视觉生成模型

Vid2Vid:Video-to-Video Synthesis

2018-11-22  本文已影响6人  Mordekaiser

论文:Vid2Vid
代码:项目主页
Vid2Vid作为pix2pixpix2pixHD的改进版本,重点解决了视频到视频转换过程中的前后帧不一致性问题。

视频生成的难点

GAN在图像生成领域虽然研究十分广泛,然而在视频生成领域却还存在许多问题。主要原因在于生成的视频很难保证前后帧的一致性,容易出现抖动。对于视频问题,最直观的想法便是加入前后帧的光流信息作为约束,Vid2Vid也不例外。由于Vid2Vid建立在pix2pixHD基础之上,加入时序约束。因此可以实现高分辨率视频生成

作者给出的方案

1.对生成器加入光流约束

符号定义:

视频-视频转换问题可以建模为如下一个条件分布:
p(\tilde{x}_1^T|s_1^T)=\prod_{t=1}^Tp(\tilde{x}_t|\tilde{x}_{t-L}^{t-1},s_{t-L}^t)
那么我们可以训练一个CNN,将条件分布p(\tilde{x}_1^T|s_1^T)建模为\tilde{x}_t=F(\tilde{x}_{t-L}^{t-1},s_{t-L}^t)
进一步F(\tilde{x}_{t-L}^{t-1},s_{t-L}^t)可以表示为:
F(\tilde{x}_{t-L}^{t-1},s_{t-L}^t)=(1-\tilde{m}_t)\odot\tilde{w}_{t-1}(\tilde{x}_{t-1})+\tilde{m}_t\odot{\tilde{h}_t}
上面这个公式有三个未知量\tilde{w}_{t-1}\tilde{h}_t\tilde{m}_t。这三个未知量都是通过学习一个CNN得到的

\tilde{w}_{t-1}表示t-1帧到t帧的光流,光流的计算通过学习一个CNN来实现。\tilde{w}_{t-1}(\tilde{x}_{t-1})表示利用t-1帧光流信息预测得到的第t帧的输出\tilde{x}_t
\tilde{h}_t表示当前帧的输出结果,也是利用CNN来实现。
\tilde{m}_t表示输出结果的模糊程度。

最终输出的结果由\tilde{w}_{t-1}(\tilde{x}_{t-1})\tilde{h}_t加权得到。二者的权重通过学习一个CNN来实现,权重代表\tilde{w}_{t-1}(\tilde{x}_{t-1})生成结果的模糊程度,越模糊,则\tilde{w}_{t-1}(\tilde{x}_{t-1})的比重越低。

如何学习一个计算光流的CNN

这个其实很简单,用\tilde{w}_t表示生成前后两帧图片的光流,{w}_t表示目标图像(Ground truth)前后两帧的光流。训练时只要最小化二者的重构误差就可以了。此外,利用第t帧的光流信息以及第t帧的Ground truthx_t应当能够完美重构第t+1帧。所以Loss如下:
L_{flow}=\frac{1}{T-1}\sum_{t=1}^{T-1}(\lVert\tilde{w}_t-w_t\rVert+\lVert\tilde{w}_t(x_t)-x_{t+1}\rVert)

第一点改进就是这些啦。下面说一下第二点。

2.对判别器器加入光流约束

这里作者使用了两个判别器,一个是图像粒度的判别器。这个比较简答,使用CGAN。
另一个是视频粒度的判别器。输入为视频序列及其光流信息,同样输入到CGAN。

3. 对前景,背景分别建模

对于语义地图转换为街景图这个任务,作者还分别对前景,背景进行建模,以加快收敛速度。具体来说,可以把语义地图中的“行人”,“车辆”当做前景,“树木”,“道路”当做背景。背景通常都是不动的,因此光流计算会很准,所以得到的图像也会很清晰。因此,我们可以设置一个mask,控制前景和背景的透明度。具体公式如下:
F(\tilde{x}_{t-L}^{t-1},s_{t-L}^t)=(1-\tilde{m}_t)\odot\tilde{w}_{t-1}(\tilde{x}_{t-1})+\tilde{m}_t\odot((1-m_{B,t})\odot\tilde{h}_{F,t}+m_{B,t}\odot\tilde h_{B,t}) \tilde{h}_{F,t}\tilde h_{B,t}分别代表前景和背景。二者也是通过CNN实现,m_{B,t}是背景的不透明度。

整个文章的idea就是上述三点了。对于前两点,在视频生成领域非常有借鉴意义。

上一篇 下一篇

猜你喜欢

热点阅读