Vid2Vid:Video-to-Video Synthesis

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

视频生成的难点

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

作者给出的方案

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

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

符号定义:

  • 输入图像序列:《Vid2Vid:Video-to-Video Synthesis》
  • 目标图像序列:《Vid2Vid:Video-to-Video Synthesis》
  • 生成的图像序列:《Vid2Vid:Video-to-Video Synthesis》

视频-视频转换问题可以建模为如下一个条件分布:
《Vid2Vid:Video-to-Video Synthesis》
那么我们可以训练一个CNN,将条件分布《Vid2Vid:Video-to-Video Synthesis》建模为《Vid2Vid:Video-to-Video Synthesis》
进一步《Vid2Vid:Video-to-Video Synthesis》可以表示为:
《Vid2Vid:Video-to-Video Synthesis》
上面这个公式有三个未知量《Vid2Vid:Video-to-Video Synthesis》《Vid2Vid:Video-to-Video Synthesis》《Vid2Vid:Video-to-Video Synthesis》。这三个未知量都是通过学习一个CNN得到的

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

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

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

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

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

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

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

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

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

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

    原文作者:Mordekaiser
    原文地址: https://www.jianshu.com/p/94469da8b709#comments
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞