论文学习:Learning to Generate Time-Lapse Videos Using Multi-StageDynamic Generative Adversarial Net...

Welcome To My Blog
这篇论文收录于KDD2018,有关视频生成的,论文有个项目主页,题目翻译过来大致是:使用多阶段动态生成对抗网络学习生成time-lapse(延时)视频.
多阶段具体来说是两阶段,

  1. 第一阶段(Base-Net): 注重每一帧内容的真实性
  2. 第二阶段(Refine-Net): 注重帧与帧之间物体的运动

下图是模型整体框架,叫做MD-GAN
MD-GAN由base-net和refine-net构成

论文学习:Learning to Generate Time-Lapse Videos Using Multi-StageDynamic Generative Adversarial Net..._第1张图片
1.png

Base-Net

Generator,G1

G1采用的是encoder-decoder这种结构,具体是采用了多个3D卷积层-反卷积层对;同时还采用了skip connection(构成了U型架构)的策略,3D卷积和skip connection 对视频内容进行了很好的建模.
skip connections用于连接与encoder对应的decoder的feature maps,从而使decoder再次利用encoder的信息,减少了信息损失.
skip connection是通过identity mapping(恒等映射)实现的

Discriminator,D1

D1采用的是G1中encoder的网络,除了最后一层用的是sigmoid激活函数而不是ReLU了

损失函数

Lcon是像素级别的L1距离,L1可以使画面更加sharpness


论文学习:Learning to Generate Time-Lapse Videos Using Multi-StageDynamic Generative Adversarial Net..._第2张图片
7.png

作用

base-net保证内容的sharpness

Refine-Net

Generator,G2

G2的网络和G1很像,只不过G2中移除了部分skip connections,具体的是溢出了 “conv1” and “deconv6”, “conv2” and “deconv5”之间的skip connection
因为使用G1中那么多的skip connection对视频的动态性不能很好的建模

Discriminator,D2

D2和D1的结构一样,只不过有3个D2,分别是Y1,Y2,Y对应的D2
D2的重点是Gram matrix和ranking loss

Gram matrix 建模帧与帧之间物体运动的动态性

在refine-net中,作者引入Gram matrix作为运动特征的表示(motion feature representation),用来辅助G2学到帧与帧之间的动态特性
具体怎么用?

  1. 首先从D2中提取特征,具体的就是以D2的某一层的输出作为特征,论文中说的是:features of the first and third convolutional layers (after the ReLU layer) of discriminator D2,也就是第一个和第三个卷积层+ReLU激活后的输出作为特征.
  2. 接下来用这些特征去计算Gram矩阵,这样做的好处是加入了丰富的时间信息,而动作是随着时间进行的,所以也就是加入了训练集视频片段的动作信息.
    Gram矩阵的计算如论文所示,这其实是求提取自D2中的特征之间的协方差矩阵,计算得到的Gram矩阵将会用于ranking loss.


    论文学习:Learning to Generate Time-Lapse Videos Using Multi-StageDynamic Generative Adversarial Net..._第3张图片
    2.png

ranking loss

ranking loss是论文的一大特点,计算得到的Gram矩阵将会用于ranking loss.
D2的结构和D1一样,针对D2中某一层的特征,ranking loss计算公式如下所示,这个公式引用自ContrastingLoss-Generative Semantic Manipulation with Contrasting这篇论文,原论文用的是l2范式,这里用的是l1范式,也许是因为l1范式对于视频生成任务更合适,确切地说是因为l1范式会提升生成视频的sharpness(清晰度).进一步观察公式,如果ranking loss小,说明:g(Y2;l)接近g(Y;l),同时g(Y2;l)远离g(Y1;l),换句话说就是生成的视频Y2更接近ground truth Y,同时比起base-net的输出Y1,refine-net的Y2有了进一步的提升(动作上的提升)

论文学习:Learning to Generate Time-Lapse Videos Using Multi-StageDynamic Generative Adversarial Net..._第4张图片
3.png

损失函数

最终的ranking loss是把所有层的结果加起来(论文中是用了D2的第一层和第三层卷积层输出)


论文学习:Learning to Generate Time-Lapse Videos Using Multi-StageDynamic Generative Adversarial Net..._第5张图片
4.png

注意到三个D2(Y,Y1,Y2)组成的ranking loss充当Discriminator的一部分

refine-net的损失函数,Lcon是像素级别的L1距离,L1可以是画面更加sharpness


论文学习:Learning to Generate Time-Lapse Videos Using Multi-StageDynamic Generative Adversarial Net..._第6张图片
6.png

算法流程

最大化D,最小化G


论文学习:Learning to Generate Time-Lapse Videos Using Multi-StageDynamic Generative Adversarial Net..._第7张图片
5.png

作用

在保证视频内容的清晰度(sharpness)的基础上,提升画面的动态性

总结

  1. 论文提出了MD-GAN,MD-GAN有两个网络:base-net和refine-net
  2. 使用base-net保证内容的sharpness
  3. 使用refine-net提升画面的动态性
  4. Generator中的3D卷积与skip connection(通过恒等映射实现)算是亮点
  5. D2中的Gram matrix和ranking loss算是重点

你可能感兴趣的:(论文学习:Learning to Generate Time-Lapse Videos Using Multi-StageDynamic Generative Adversarial Net...)