视频生成经典模型资源(一):TGAN、VGAN、MoCoGAN、SVG、vid2vid、VideoVAE、DVD-GAN—1

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
简介: 视频生成经典模型资源(一):TGAN、VGAN、MoCoGAN、SVG、vid2vid、VideoVAE、DVD-GAN

专栏由机器之心SOTA!模型资源站出品,每周日于机器之心公众号持续更新。

 

本专栏将逐一盘点自然语言处理、计算机视觉等领域下的常见任务,并对在这些任务上取得过 SOTA 的经典模型逐一详解。前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及 API 等资源。


本文将分 2 期进行连载,共介绍 15 视频生成任务上曾取得 SOTA 的经典模型。


  • 第 1 期:TGAN、VGAN、MoCoGAN、SVG、vid2vid、VideoVAE、DVD-GAN、SWGAN
  • 第 2 期:TGANv2、TGANv2-ODE、VideoGPT、DVG、NÜWA、StyleGAN-V、Video Diffusion Models


您正在阅读的是其中的第 1 期。前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及 API 等资源。


本期收录模型速览


模型 SOTA!模型资源站收录情况 模型来源论文
TGAN https://sota.jiqizhixin.com/project/tgan
收录实现数量:1
Temporal Generative Adversarial Nets with Singular Value Clipping
VGAN https://sota.jiqizhixin.com/project/vgan Generating Videos with Scene Dynamics
MoCoGAN https://sota.jiqizhixin.com/project/mocogan
收录实现数量:4
支持框架:PyTorch、TensorFlow
MoCoGAN: Decomposing Motion and Content for Video Generation
SVG https://sota.jiqizhixin.com/project/svg
收录实现数量:2
支持框架:PyTorch、TensorFlow
Stochastic Video Generation with a Learned Prior
vid2vid https://sota.jiqizhixin.com/project/vid2vid
收录实现数量:1
支持框架:PyTorch、TensorFlow
Video-to-Video Synthesis
VideoVAE https://sota.jiqizhixin.com/project/videovae
收录实现数量:1
支持框架:PyTorch、TensorFlow
Probabilistic Video Generation using Holistic Attribute Control
DVD-GAN https://sota.jiqizhixin.com/project/dvd-gan-fp
收录实现数量:1
支持框架:PyTorch
ADVERSARIAL VIDEO GENERATION ON COMPLEX DATASETS
SWGAN https://sota.jiqizhixin.com/project/pg-swgan-3d
收录实现数量:1
支持框架:TensorFlow
Sliced Wasserstein Generative Models

什么是生成?就是模型通过学习一些数据生成类似的数据。让机器看一些动物图片,然后自己来产生动物的图片,这就是图像生成的,即最终生成的目标物是图像。视频生成与基于数据生成数据(图像)的任务不同,重点聚焦于了解物体运动和场景动态。因此,视频生成(video generation)任务也被定位于future prediction任务。不过,创建一个动态模型是非常具有挑战性的,因为物体和场景有大量的变化方式。
深度生成模型最近受到了越来越多的关注,这不仅是因为它们提供了一种以无监督方式学习深度特征表征的方法,可以潜在地利用所有未标记的数据进行训练,还因为它们可以用来生成各种视觉应用所需的新型图像。然而,从生成图像到生成视频的扩展被证明是一项极具挑战性的任务,尽管生成的数据只是多了一个维度—时间维度。

首先,由于视频是对物体进行各种动作的视觉信息的时空记录,生成模型除了学习物体的外观模型外,还需要学习物体的合理物理运动模型。如果学习到的物体运动模型不正确,生成的视频可能包含物体进行物理上不可能的运动。
第二,时间维度带来了大量的变化。考虑到一个人在做下蹲动作时可以有多种速度变化,每种速度模式都会产生不同的视频,尽管视频中人的外表是一样的。
第三,由于人类已经进化的对运动非常敏感,运动伪影特别容易察觉。

与在图像生成任务中的应用类似,GAN仍然是视频生成中最有效的模型。本文介绍视频生成必备的TOP模型,主要按照各个模型提出的时间顺序来介绍,以近两年的SOTA模型为主。

TGAN


TGAN( Temporal Generative Adversarial Net )是一种可以学习无标签视频数据集中的语义表示并产生新的视频的生成对抗网络。TGAN由两个生成器构成:temporal generator G0和image generator G1。G0用z0(从分布P_G0(z0)中随机抽样得到)作为输入,生成一系列潜在变量z1。G1使用z0和z1作为输入,输出为视频。为了解决原始GAN训练不稳定的问题,引入了WGAN,又因为TGAN对WGAN中的参数比较敏感,作者将WGAN中的权值分割方法用SVC方法代替,从而使得模型更加稳定,并且在损失函数不同于传统时仍然能够成功的训练。TGAN的结构如图1所示:


图1. TGAN结构。鉴别器由三维卷积层组成,并评估这些帧是来自数据集还是来自视频生成器。鉴别器中的张量的形状记为“(通道)×(时间)×(高度)×(宽度)”


表1. generator的网络配置。第二行表示输入变量。“线性(·)”是线性层中的输出单元的数量。卷积层和反卷积层中的参数表示为“conv/denonv((内核大小)、(输出通道)、(填充)、(步幅))

TGAN的极大极小策略可以表示为:


其中x_t是数据集中视频的第t帧,(z_1)^t是G_0(z_0)生成的第t帧对应的潜在变量。θ_D、θ_G0、θ_G1分别表示D、G0、G1的参数。


temporal generator


首先将z0∈R^K0视为z0∈R1×K0的一维激活图,其中,通道的长度和数量分别为1和k0。采用均匀分布的方法对z0进行采样。接下来,应用反卷积层扩展其长度,同时减少通道的数量。除通道数和一维反卷积外,反卷积层的设置与图像生成器的设置相同。与原始的图像生成器一样,在反卷积后插入一个批处理归一化(BN)层,并使用ReLU作为激活函数。


Image generator

图像生成器采用两个潜在变量作为参数。在对每个变量进行线性变换后,对它们进行如表1所示的reshape,将它们连接起来并执行5次反卷积。除最后一个反卷积层外,核大小、步幅和填充分别设为4、2和2。最后一个反卷积层的输出通道的数量取决于数据集是否包含颜色信息。


Discriminator

采用时空三维卷积层来建模鉴别器。图层的设置类似于图像生成器。具体来说,使用四个卷积层,4×4×4内核,步幅为2。初始卷积层的输出通道数为64个,当该层深度加深时将该数目设置为两倍大小。引入一个a=0.2的LeakyReLU和批处理归一化层。最后,使用一个全连接层,将所有的units总结在一个标量中。鉴别器中使用的张量形状如图1所示。


SVC

为了满足1-Lipschitz约束,给鉴别器中的所有线性层添加一个约束,以满足权重参数W的spectral norm 等于或小于1。这意味着权重矩阵的奇异值都是1或小于1。在参数更新后进行奇异值分解(SVD),将所有大于1的奇异值替换为1,然后用它们重建参数。将同样的操作也应用于卷积层,将权重参数中的高阶张量解释为一个矩阵Wˆ,称这些操作为奇异值剪切(Singular Value Clipping,SVC)。

与线性和卷积层一样,以同样的方式表征批处理归一化层的缩放参数的γ值。表2给出各层的剪裁方法。注意,不对ReLU和LeakyReLU层进行任何操作,因为它们总是满足条件,除非LeakyReLU中的a小于1。


表2. 满足1-Lipschitz约束的方法。|| · ||表示 a spectral norm 。a表示LeakyReLU层的固定参数。γ和σ_B分别是批量归一化后的比例参数和一个批量的标准差的运行平均值


当前 SOTA!平台收录TGAN共 1 个模型实现资源。

项目 SOTA!平台项目详情页
TGAN 前往SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/tgan


VGAN

VGAN的核心思想是将视频区分为前景(foreground)和后景(background),即,将运动前景的生成和静态背景的生成解耦:首先输入为100维的噪声向量,然后使用3D转置卷积网络生成运动前景,使用2D转置卷积网络生成运动背景,并使用mask构建显性表达式约束网络的优化,整个网络结构如下图所示:



图2.  Video Generator Network,对generator的网络结构进行了说明。输入是100维的(高斯噪声)。有两个独立的数据流:一个是分层时空卷积的运动前景路径,一个是分层空间卷积的静态背景路径,两者都是上采样的。结合两条路径,使用运动路径的mask创建生成的视频。每个volume下面是它的大小,括号里是通道的数量

Generator Network

生成器网络的输入是一个低维的潜在变量z 。在大多数情况下,z可以从一个分布中取样(例如高斯)。给定z,目标是产生一个视频。在设计generator网络结构时,遵循几个原则。首先,希望该网络在空间和时间上对平移都是不变的。第二,希望一个低维的z能够生成一个高维的输出(视频)。第三,假设一个静止的摄像机,并利用通常只有物体移动的特性。我们感兴趣的是对物体运动进行建模,而不是对摄像机的运动进行建模。此外,由于对背景静止的建模在视频识别任务中很重要,它可能对视频生成也有帮助。


作者探索了两种不同的网络结构。

One Stream Architecture: 将时空卷积与分层卷积结合起来,生成视频。三维卷积提供了空间和时间上的不变性,而分层卷积可以在深度网络中有效地进行上采样,确保z低维。使用4×4×4卷积的五层网络,步长为2,只有第一层使用2×4×4卷积(时间×宽度×高度)。

Two Stream Architecture:  One Stream Architecture并没有建立世界是静止的模型,通常只有物体在移动。作者进一步引入一个强制执行静态背景和移动前景的架构。


为了在generations中强制执行背景模型,b(z)生成一个随时间复制的空间图像,而f(z)生成一个被m(z)掩盖的空间-时间立方体。通过将前景模型与背景模型相加,可以得到最终的生成,即元素相乘,我们复制单子维度以匹配其相应的张量。


Discriminator Network

鉴别器需要能够解决两个问题:

首先,它必须能够从合成的场景中分类出真实的场景;

其次,它必须能够识别帧之间的真实运动。设计鉴别器,使其能够用同一模型解决这两个任务。使用一个五层的时空卷积网络,其内核为4×4×4,这样隐藏层就可以同时学习视觉模型和运动模型。该架构与生成器中的前景流相反,用分层卷积取代分层卷积(下采样而不是上采样),并将最后一层替换为输出二元分类(表征真实与否)。

项目 SOTA!平台项目详情页
VGAN 前往SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/vgan


MoCoGAN


视频中的视觉信号可分为内容和运动两类,其中,内容说明了视频中的哪些物体,而运动则描述了它们的动态。基于这一前提提出了运动和内容分解生成对抗网络( Motion and Content decomposed Generative Adversarial Network ,MoCoGAN)框架,用于视频生成任务 。该框架通过将一连串的随机向量映射到一连串的视频帧来生成视频,每个随机矢量都由内容部分和运动部分组成。虽然内容部分是固定的,但运动部分是作为一个随机过程实现的。为了以无监督的方式学习运动和内容的分解,引入了一种新的对抗性学习方案。


图3. MoCoGAN采用了运动和内容分解的表示方法来生成视频。它使用一个图像潜在空间(每个潜在变量代表一个图像)并将潜在空间划分为内容和运动子空间。通过对内容子空间中的一个点进行采样并对运动子空间中的不同轨迹进行采样,可以生成同一物体的不同运动的视频。通过对内容子空间中的不同点和运动子空间中的相同运动轨迹进行采样,可以生成不同物体做相同运动的视频



图4. 用于视频生成的MoCoGAN框架。对于一个视频,内容向量zC被采样一次并固定下来。然后,采样一系列随机变量并通过递归神经网络映射到一系列运动代码[z(1)M, ..., z(K)M]。生成器GI使用内容和运动向量{zC, z(k)M}产生一个帧,x˜(k)。鉴别器,DI和DV,分别从训练集v和生成集v˜中取样,对真实和虚假的图像和视频进行训练。函数S1从视频中取样一个单帧,ST取样T个相关的帧

在MoCoGAN中,假设有一个图像的潜空间ZI≡Rd,其中,每个点z∈ZI代表一个图像,一个K帧的视频由潜在空间中长度为K的路径表示。通过采用这种表述,不同长度的视频可以由不同长度的路径生成。此外,以不同速度执行的同一动作的视频可以通过在潜在空间中以不同速度穿越同一路径来生成。进一步,假设ZI被分解为内容ZC和运动ZM子空间。ZI = ZC × ZM,其中,ZC = RdC ,ZM = RdM,d = dC + dM。内容子空间为视频中与运动无关的外观建模,而运动子空间为视频中与运动有关的外观建模。例如,在一个人微笑的视频中,内容代表这个人的身份,而运动代表这个人的面部肌肉的变化。一个人的身份和面部肌肉构造的配对代表了这个人的面部图像。这些配对的序列代表了这个人微笑的视频片段。通过将这个人的表情与另一个人的表情互换,就可以代表一个不同人的微笑视频。使用高斯分布对内容子空间进行建模:zC ∼ pZC ≡ N (z|0, IdC) ,其中,IdC是一个大小为dC × dC的身份矩阵。基于在一个短的视频片段中内容基本保持不变的观察,使用相同的实现,zC,来生成一个视频片段中的不同帧。视频片段中的运动是由运动子空间ZM中的路径来模拟的。用于生成视频的矢量序列由以下方式表示:



由于zM中并非所有的路径都对应于物理上合理的运动,我们需要学习生成有效的路径。用一个循环神经网络对路径生成过程进行建模。令RM表征递归神经网络。在每个时间步长,它将一个从高斯分布中采样的向量作为输入:(k)∼pE≡N(|0,IdE),并输出一个ZM中的向量,作为运动表示。RM(k)表征递归神经网络在时间k的输出,那么,z(k)M=RM(k)。递归神经网络的功能是将一串独立同分布(i.i.d.)的随机变量映射为一串相关的随机变量[RM(1), ..., RM(K)],以表征视频中的动态变化。在每个迭代中注入噪声,模拟每个时间步长的未来运动的不确定性。使用一个单层的GRU网络来实现RM。

MoCoGAN由4个子网络组成,分别是递归神经网络RM、图像生成器GI、图像鉴别器DI和视频鉴别器DV。图像生成器通过将ZI中的向量按顺序映射到图像,从向量序列到图像序列,生成视频剪辑。DI和DV都扮演judge角色,为GI和RM提供批评意见。图像鉴别器DI专门用于批评基于单个图像的GI,它被训练来确定一个帧是来自真实的视频片段v,还是来自v~。另一方面,DV根据生成的视频片段为GI提供批评意见。DV需要一个固定长度的视频片段,比如说T帧,并决定一个视频片段是来自真实视频还是来自v˜采样。与DI不同,它是基于虚构的CNN架构的,DV基于一个空间-时间CNN架构。

视频鉴别器DV也对生成的运动进行评估。由于GI没有运动的概念,对运动部分的批评直接指向了递归神经网络RM。为了生成一个具有现实动态的视频以骗过DV,RM必须学会从一连串的i.i.d.噪声输入中生成一连串的运动编码。理想情况下,单靠DV应该足以训练GI和RM,因为DV提供了对静态图像外观和视频动态的反馈。然而我们发现,使用DI可以显著提高对抗性训练的收敛性。这是因为训练DI比较简单,它只需要关注静态的外观。


当前 SOTA!平台收录 MoCoGAN 共 4 个模型实现资源。

项目 SOTA!平台项目详情页
MoCoGAN 前往SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/mocogan


SVG


SVG(Stochastic Video Generation)是一种随机视频生成方法,可以根据现有的视频预测生成出接下来一段时间的视频。视频生成的思路比较直接:将已有的视频帧编码至一个latent space中去,再用LSTM在潜在空间中学习到视频帧时域上的联系。最后,将LSTM输出的latent vector解码至图像空间。本文的一个创新点就在于,采用VAE的思路,在潜在空间中引入另一个随机变量z,用它和编码特征一起来对未来进行预测。



图5. SVG视频生成模型。(a)用固定先验的训练(SVG-FP);(b)用学习先验的训练(SVG-LP);(c)用学习先验LP模型生成。红框表示训练过程中使用的损失函数


模型有两个不同的组成部分。(i) 预测模型pθ,根据序列x_(1:t-1)中以前的帧和潜在变量z_t生成下一个帧;(ii) 先验分布p(z),z_t在每个时间步长中被抽样。先验分布可以是固定的(SVG-FP)或学习的(SVG-LP)。直观地讲,潜在变量z_t携带着确定性预测模型无法捕捉的关于下一帧的所有随机信息。在对一系列简短的真实帧进行调节后,该模型可以通过将生成的帧传回预测模型的输入来生成未来的多个帧。

encoder学习的latent vector的概率分布不再是基于当前样本的p(z|x) , 而是相对于一个序列p(z_t|x_(1:t)) 。这部分通过 LSTM实现。用于decoder的不再仅仅是重采样得到的latent vector,同时还有前一帧通过encoder得到的特征。decoder学习的也不再是基于当前latent vector的数据分布,而是基于一个latent vector序列的分布p(xt|x_(1:t−1),z_(1:t))。因此, 要优化这样一个修改版的VAE,其变分下界具有如下形式:




这里的先验pz 如果直接采用固定的高斯分布,无法刻画视频中帧与帧之间的联系。因此作者又提出另一个版本:再通过一个LSTM来学习这里的先验,也即SVG-LP(learned prior)。这样inference的时候,潜在变量z 不再是从N(0,I) 中采样,而是从
N(μψ(t),σψ(t)) 中采样。其中,ψ 是用于先验学习的LSTM网络的参数。同时,作者也可视化了学习到的先验σ_ψ 在时间序列中不同时刻的值的大小,它反映了decoder的输入是更依赖与前一帧的特征,还是从学习到的分布中采样出的结果。


当前 SOTA!平台收录 SVG 共 2 个模型实现资源。

项目 SOTA!平台项目详情页
SVG 前往SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/svg


相关文章
|
21天前
|
机器学习/深度学习 编解码 数据可视化
图像恢复SwinIR: Image Restoration Using Swin Transformer
图像恢复SwinIR: Image Restoration Using Swin Transformer
125 2
|
机器学习/深度学习 编解码 数据建模
视频生成经典模型资源(一):TGAN、VGAN、MoCoGAN、SVG、vid2vid、VideoVAE、DVD-GAN-2
视频生成经典模型资源(一):TGAN、VGAN、MoCoGAN、SVG、vid2vid、VideoVAE、DVD-GAN
374 0
|
机器学习/深度学习 编解码 人工智能
视频生成经典模型资源(一):TGAN、VGAN、MoCoGAN、SVG、vid2vid、VideoVAE、DVD-GAN-3
视频生成经典模型资源(一):TGAN、VGAN、MoCoGAN、SVG、vid2vid、VideoVAE、DVD-GAN
252 0
|
机器学习/深度学习 算法 数据可视化
【论文解读】CVPR2020|CentripetalNet:目标检测新网络COCO 48%AP超现所有Anchor-free网络(二)
【论文解读】CVPR2020|CentripetalNet:目标检测新网络COCO 48%AP超现所有Anchor-free网络(二)
174 0
|
计算机视觉
【论文解读】CVPR2020|CentripetalNet:目标检测新网络COCO 48%AP超现所有Anchor-free网络(一)
【论文解读】CVPR2020|CentripetalNet:目标检测新网络COCO 48%AP超现所有Anchor-free网络(一)
107 0
|
机器学习/深度学习
简介网络:GAN、CGAN和PIX2PIX
简介网络:GAN、CGAN和PIX2PIX
712 0
简介网络:GAN、CGAN和PIX2PIX
|
人工智能 算法 测试技术
Unity & FACEGOOD Audio2Face 通过音频驱动面部BlendShape
Unity & FACEGOOD Audio2Face 通过音频驱动面部BlendShape
1861 0
Unity & FACEGOOD Audio2Face 通过音频驱动面部BlendShape
|
机器学习/深度学习 编解码 计算机视觉
Text to image论文精读 StackGAN:Text to Photo-realistic Image Synthesis with Stacked GAN具有堆叠生成对抗网络文本到图像合成
本篇文章提出了叠加生成对抗网络(StackGAN)与条件增强,用于从文本合成现实图像,被2017年ICCV(International Conference on Computer Vision)会议录取。 论文地址: https://arxiv.org/pdf/1612.03242.pdf 代码地址: https://github.com/hanzhanggit/StackGAN 本篇是精读这篇论文的报告,包含一些个人理解、知识拓展和总结。
Text to image论文精读 StackGAN:Text to Photo-realistic Image Synthesis with Stacked GAN具有堆叠生成对抗网络文本到图像合成
|
机器学习/深度学习 编解码 数据可视化
Text to image论文精读 从菜谱描述自动生成菜肴照片 CookGAN: Causality based Text-to-Image Synthesis(基于因果关系的文本图像合成 )
文章被2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)会议录用。 论文地址:[https://ieeexplore.ieee.org/document/9157040/citations#citations](https://ieeexplore.ieee.org/document/9157040/citations#citations) CookGAN旨在解决因果关系效应。食物图像的因果演化隐含在一个连续的网络中。 本博客是精读这篇论文的报告,包含一些个人理解、知识拓展和总结。
Text to image论文精读 从菜谱描述自动生成菜肴照片 CookGAN: Causality based Text-to-Image Synthesis(基于因果关系的文本图像合成 )
DL之pix2pix(cGAN)之AC:基于pix2pix(cGAN)模型实现对图像实现Auto Color自动上色技术—daidingdaiding
DL之pix2pix(cGAN)之AC:基于pix2pix(cGAN)模型实现对图像实现Auto Color自动上色技术—daidingdaiding
DL之pix2pix(cGAN)之AC:基于pix2pix(cGAN)模型实现对图像实现Auto Color自动上色技术—daidingdaiding