论文原文:
Ting-Chun Wang, Ming-Yu Liu, Andrew Tao, Guilin Liu, Jan Kautz, and Bryan Catanzaro. "Few-shot Video-to-Video Synthesis", in NeurIPS, 2019.
https://nvlabs.github.io/few-shot-vid2vid/main.pdf
论文地址:
https://nvlabs.github.io/few-shot-vid2vid/
目录
3. Few-shot Vid2vid Synthesis 少样本视频-视频合成
摘要
当前vid2vid(输入视频,输出另一个视频,如输入人体骨架的运动,输出某个真实的人的运动)任务存在两点不足:
- 缺少训练数据:需要大量的场景数据;
- 泛化能力差:如pose-to-human任务只能完成对训练数据集中的人的视频生成,不能完成其他不在训练集中的人的动作视频;
本文完成了vid2vid任务的小样本学习,即对于一个新的物体,只需要测试时利用该样本的几张图片,就可以合成该样本的video;
原理:基于注意力机制的网络权重生成模型;
在如下3个数据集上进行了验证:
- human-dancing videos;
- talking-head videos;
- street-scene videos.
1. Introduction
前两段主要说要做的few-shot vid2vid是什么:即在几张相同属性image的指导下,完成该属性下视频到视频的转换,如图*所示:

- 第一段: 什么是vid2vid;
- 第二段: 针对vid2vid泛化能力差的缺点提出了仅通过几张未知样本场景图片即可重建未知场景下视频的few-shot vid2vid任务;
后两段讲文章是怎么做的:
- 第三段:输入为一个语义视频+几张target domain的images. 其中,image用于配置模型,生成符合target domain的权重;
- 第四段:说明文章在三个不同的数据集上(跳舞视频;talking head 和 street场景)进行了验证;训练集中的不同场景越多,测试时给出的example images越多,则最后的效果就越好。
2. Related Work
GANs:
- 本文网络基于conditional GAN; 训练时输入为视频(condition);
- 测试时会额外输入example images,动态改变生成模型的网络权重.
Image-to-image synthesis:
- vid2vid的基础就是img2img;
- 相比于img2img, vid2vid的挑战在于视频帧与帧之间的联系(利用帧间冗余);
- 相比于其他工作,本文的特点是能够通过几张example images完成对没见过的场景的生成。
Video generative models:
视频生成模型分为三类:
- 无条件视频生成: 输入噪声,输出视频;
- 未来帧预测:根据观测到的帧预测未知的帧;
- vid2vid: 输入语义视频(semantic input),输出真实视频(photorealistiv video).
本文是vid2vid,但是是能够适用于没见过的场景的few-shot的研究;
Adaptive networks:
指网络的部分权重会随输入数据的改变而改变;
Human pose transfer:
输入:人的一个姿势;输出:同一个人的之前没有出现过的姿势。
现有方法基于人体先验,如身体部分建模/人体表面坐标映射。
本文的方法仅仅使用了输入的语义信息,不使用特定的人体先验,因此泛化能力更强。同时,本文方法可以用于视频。
3. Few-shot Vid2vid Synthesis 少样本视频-视频合成
3.1 传统的video to video
: 输入视频序列,比如是语义分割帧的序列或者边缘图序列;
:真实场景的(目标)视频序列;
普通的vid2vid任务的目标:找到从到重建视频
的映射。从而使二者的条件分布相同:
为了对上述条件分布进行建模,常常使用如下的基于Markov假设的序列生成模型:
通过假设马尔可夫过程来简化图像生成任务,即认为条件分布可以分解为
也就是说视频仅仅通过部分的帧序列即可还原,并且第t帧只与下面3个有关:
(1) 当前输入帧;
(2) 之前的L个输入帧;
(即共计L+1个输入帧)
(3)之前的L个生成帧。
通过训练一个网络F,来使用第t帧建模条件分布
.
通过递归使用F来得到最终的输出,即重建的视频。
不同的研究给出了序列生成器F的不同的构建方法,一种常见的构造方法(即vid2vid中的构造方法)如下:
其中,表示element-wise操作,1表示全1图像。这样,第一部分就是考虑到光流估计的前一帧;第二部分即为合成的有新像素的图片。上式中各项的含义为
: 估计的从
到
的光流;W是光流预测网络。文章通过输入的帧
和之前合成的帧
来估计光流.
的意思是使用
来wrap
.
是由生成器H合成的图片;
是遮挡mask,取值为[0,1]之间的连续值,M则是mask预测网络。通过使用连续取值而不是bool值来更好地处理放大区域(也就是图片放大之后会变模糊,一些像素看起来就好像既被遮挡了又没被遮挡),从而更好地恢复细节。
图2(a)给出了vid2vid的结构,相当于是对上式的图示。

3.2 few-shot video to video
3.2.1 整体网络结构
为了使模型能够根据unseen domain中的几张example images就给出在unseen domain下的结果,few-shot vid2vid使用了如下方法:
第t帧不再只与之前的L+1个输入帧
和L个生成帧
有关,同时和目标domain的K个样例图片{
} 和这K张图片对应的语义图片
.即:
从而使序列模型F能够利用测试时给出的样例图片去提取unseen domain合成的视频中的有用特征。
具体而言,设计网络E来提取给出的example images的特征,并使用E计算图像合成网络H的权重:
网络E不会改变M和W的权重,因为W是光流估计网络,M是遮挡估计网络,在不同的domain中(例如,不同的人脸,不同的人),这两个网络是相同的。
H的网络结构则是SPADE的网络结构。
SPADE生成器主要包括两个部分:
- 几个空间调制分支;
- 1个主要的图像合成分支。
在本文中,用于调整权重的网络E仅仅调整H中几个空间调制分支的权重。(如图2(c)所示)这样做的原因是:
- 大大降低了E需要生成的参数数量,防止过拟合;
- 避免了example images直接映射为输出图片。
3.2.2 网络权重生成模块(E)
E的作用:学习并提取能够通过控制权重而被用于视频合成分支的模式;
首先考虑只有1个example image的情况(K=1):
将E分为两个部分:
- 一个样本特征提取器
;
- 一个多层感知器
.
具体过程为:
- 样本图片e1输入到样本特征提取器
中,
- 输出为特征表示q;
- 特征表示q再输入到多层感知器
中,
- 输出为权重
,该权重被用在了图片合成网络H中。
令网络H有L层,分别为
则设计E同样有L层,每一层生成用于对应的
的权重。具体而言,为了生成
的权重
,文章将:
- 首先得到
的第l层的输出
;
- 之后,平均池化
(因为
可能仍是空间维度上的特征图);
- 再将其通过多层感知器的第l层
得到权重
。
数学上的解释为,若定义,则:
,
输出的权重被用于卷积输入的语义图st,从而得到SPADE中的归一化参数。(如图2(c)所示)
对K>1的情况(即输入多张Example images):
对k张example images,样本特征提取器共计会得到k个特征:
. 文章使用了注意力机制来整合这些特征。
具体而言,定义一个新的注意力网络,得到权重
再得到注意力权重:
并利用该权重整合特征:
3.2.3 SPADE
对SPADE中主要的generator的每一层,文章使用来计算反归一化系数
。
也就是说,在普通的SPADE中,是从输入语义图
中得到的固定系数;
而在这篇文章中,则通过
动态生成。
共包括了三个部分的权重:
其中,是用于提取共同特征的共享层;其输出经
生成
。计算方法为:
3.2.4 训练与测试
可选:warping example images:
为了减小负担,可以选择将example image和合成的帧相结合。方法如下:
该技巧对example images和target images非常相近的情况有效。(如姿态合成任务,背景一样)
损失函数
与vid to vid相同;
训练时:使用和
监督训练,example images则通过从x中随机采K个样本获得。
T的选择
刚开始T=1, 后来过几个epoch增大一倍,从而变为视频。
测试阶段
能够输入任意多个example images.
4. Experiments
实现细节:
ADAM, lr=0.0004, ( β1;β2) = (0:5; 0:999), 8 * 32GB V100
数据集
- YouTube dancing videos.
- Street-scene videos.
- Face videos.
Baselines
- Encoder.
- ConcatStyle.
- AdaIN.
(尚无few-shot vid2vid的研究,故使用别的baseline提取特征并生成类似的泛化结果)
评估指标:
- FID
- Pose error
- 分割准确性
- Human subjective score(使用亚马逊AMT)
主要结果:






limitations
依旧是泛化能力,当目标domain和训练集中的domain差别太大时,如使用计算机动画,则效果会很差。
除此之外,当语义图不准确的时候,结果也会不准确。
总结
本文的few-shot特点能够使用unseen domain的example image(s)指导视频合成,且效果较好。
======================================================================================================
本文为阅读笔记,阅读的论文是:
Ting-Chun Wang, Ming-Yu Liu, Andrew Tao, Guilin Liu, Jan Kautz, and Bryan Catanzaro. "Few-shot Video-to-Video Synthesis", in NeurIPS, 2019.
本阅读笔记原载于 我的博客
如有错误,请联系 rxnlos@126.com
======================================================================================================