Vid2Vid:Video-to-Video Synthesis

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

视频生成的难点

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

作者给出的方案

  • 生成器加入光流约束
  • 判别器加入光流信息
  • 对前景、背景分别建模

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

符号定义:

  • 输入图像序列:
  • 目标图像序列:
  • 生成的图像序列:

视频-视频转换问题可以建模为如下一个条件分布:

那么我们可以训练一个CNN,将条件分布建模为
进一步可以表示为:

上面这个公式有三个未知量,,。这三个未知量都是通过学习一个CNN得到的

表示帧到帧的光流,光流的计算通过学习一个CNN来实现。表示利用帧光流信息预测得到的第帧的输出
表示当前帧的输出结果,也是利用CNN来实现。
表示输出结果的模糊程度。

最终输出的结果由和加权得到。二者的权重通过学习一个CNN来实现,权重代表生成结果的模糊程度,越模糊,则的比重越低。

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

这个其实很简单,用表示生成前后两帧图片的光流,表示目标图像(Ground truth)前后两帧的光流。训练时只要最小化二者的重构误差就可以了。此外,利用第t帧的光流信息以及第帧的Ground truth应当能够完美重构第帧。所以Loss如下:

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

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

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

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

对于语义地图转换为街景图这个任务,作者还分别对前景,背景进行建模,以加快收敛速度。具体来说,可以把语义地图中的“行人”,“车辆”当做前景,“树木”,“道路”当做背景。背景通常都是不动的,因此光流计算会很准,所以得到的图像也会很清晰。因此,我们可以设置一个mask,控制前景和背景的透明度。具体公式如下:
和分别代表前景和背景。二者也是通过CNN实现,是背景的不透明度。

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

你可能感兴趣的:(Vid2Vid:Video-to-Video Synthesis)