Video-to-Video Synthesis
参考文献:1、Video-to-Video Synthesis 2018
2、来源:机器之心
3、https://blog.csdn.net/sunny0121/article/details/82380027 (arXiv:1711.11585v1)----coarse-to-fine G and multi-scale D
4、https://blog.csdn.net/sunny0121/article/details/82353485 (arXiv:1611.07004v2)------Pixel2Pixel
介绍:
视频到视频的合成方式有很多种,包括未来帧预测和无条件视频合成,在这里作者提出了一种视频合成的新形式;视频到视频的合成——通过学习输入输出视频之间的映射函数来完成视频合成任务。有点儿类似于图像翻译任务,但是如果把图像翻译任务的框架用到作者提出的方法中时,由于缺乏temporal dynamics,生成的结果会出现视频质量不高且不连续的现象。
本文通过精心设计的生成器、判别器结构以及spatio-temporal目标函数,输入语义分割掩码视频,可以合成长达30s的2k高清视频,还能用草图视频合成真实人物视频,用姿态图合成舞蹈视频,当用于未来帧预测时,得到的结果要比当前最优的方法得到的结果要更好。而且更为惊艳的是当改变语义分割掩码视频中的颜色时就能将真实街景视频中的建筑换成树木。
相关结构:CGAN、coarse-to-fine generator(3个)、multiple discriminators(conditional image discriminator and conditional video discriminator
)、a residual network architecture
损失函数:
第一部分是判别器的损失,第二部分是
的损失,第三部分是流估计损失,除了这些,还有判别器feature matching loss以及VGG feature matching loss,可以帮助提升收敛速度以及训练稳定性。
Sequential generator:
给定(原视频帧:semantic segmentation mask 或者boundary maps),
(输出视频帧)的条件分布和给定
,
的条件分布相等:
对其进性因式分解
通过训练一个前向网络F以建模上式左边的条件分布:
然后通过循环的方式应用F可以得到输出帧。L长度太小会造成训练不稳定,太大会增加训练时间和GPU内存开销但是提升效果不明显,因此实验中选取L=2.
而如果当前帧到下一帧的optical flow已知,就可以通过它得到下一帧的估计(estimation),基于这个有:
其中,
,
。为实现函数M,W,H,使用了一个残差网络结构。为得到高分辨率视频,应用了coarse-to-fine生成器。而通过使用mutiple 判别器可以缓解训练过程中模式爆炸问题。
当使用语义分割掩码作为输入时,可以将语义分割为前景和背景,此时:
多模态合成:
合成函数F是一个单模态映射函数,为了得到多模态的结果,对原视频应用了一个feature embedding scheme,包含instance-level semantic segmentation masks。
实验结果:
细节:1、coarse-to-fine包含3个种分辨率:512*256、1024*512、2048*1024;
2、掩码预测函数M和流预测函数W共享除了输出层的所有参数;
3、使用multi-scale PatchGAN判别器结构
结果:下面是部分实验结果图:
实验应用:多模结果生成、语义分割操作、草图视频生成、姿态图视频生成、未来帧预测
限制和未来工作:
- 因为label map中信息不足导致turning car合成困难。猜测解决方式:添加额外的3D信息。比如:depth maps
- 偶尔汽车的颜色会逐渐改变。
- 模型不能确保目标对象在整个视频中有连续外观。
- 执行语义操作的时候,偶尔会出现明显的人工痕迹