Sora 技术参考文献
-- Generating long videos of dynamic scenes
计划根据openai关于Sora介绍的参考文献,做一系列的技术介绍。
openai 关于Sora的介绍网址。 对于该文章的翻译和简介见文章
Generating long videos of dynamic scenes.
文章主要内容
视频是随时间变化的数据,具有复杂的相机视点、运动、变形和遮挡模式。在某些方面,视频是无界的------它们可以任意长,并且随着时间的推移,可能变得可见的新内容数量没有限制。然而,描绘现实世界的视频也必须规定哪些随时间变化是可行的,而且物理定律保持一致的。例如,相机只能沿着平滑的路径在3D空间中移动,物体不能相互变形,时间不能倒退。因此,生成真实的长视频需要能够产生无尽的新内容,同时结合适当的一致性。
在本文中,作者专注于生成具有丰富动态和随时间出现的新内容的长视频 。虽然现有的视频生成模型可以产生"无限"的视频,但沿着时间轴的变化类型和数量非常有限。例如,一个合成的无限视频,一个人在说话,只会包含嘴和头的小幅运动。此外,常见的视频生成数据集通常包含短视频,随着时间的推移,新内容很少,这可能会不经意间偏向于在短片段或帧对上进行训练的设计选择,迫使视频内容保持固定,或使用具有小时间感受野的架构。
作者让时间轴成为视频生成的一等公民。在模型的训练中,引入了两个新的数据集,这些数据集包含随时间变化的运动、相机视点、物体和景观的进出。通过在长视频上进行训练来学习长期一致性,并设计了一个能够建模复杂时间变化的时间潜在表示。下图展示了文章提出的模型能够生成的丰富运动和景观变化。文章的主要贡献是一个采用广阔时间感受野和新颖时间嵌入的分层生成器架构。作者采用了一种多分辨率策略,首先在低分辨率下生成视频,然后使用单独的超分辨率网络进行细化。在高空间分辨率下直接训练长视频成本过高,但作者发现视频的主要方面在低空间分辨率下仍然存在。这一观察使作者能够在低分辨率下使用长视频和高分辨率下使用短视频进行训练,使得作者能够优先考虑时间轴,并确保长期变化被准确描绘。低分辨率和超分辨率网络在RGB瓶颈之间独立训练。这种模块化设计允许独立迭代每个网络,并利用相同的超分辨率网络进行不同的低分辨率网络消融。
上图中,作者的目标是生成能够准确描绘运动、变化的相机视点以及随时间出现的新内容的视频。上图:马术数据集中展示了这些类型的变化,因为马在环境中向前移动。中图:StyleGAN-V,一个最新的视频生成基线模型,无法随时间生成新内容;马未能越过障碍物向前移动,场景没有变化,视频在一个短暂的运动窗口内来回变形。下图:作者的新颖视频生成模型优先考虑时间轴,并在长时间内生成真实的运动和景观变化。
笔者总结
作者的贡献:
- 设计的模型致力于保证生成视频与真实环境中预期的一致性,以及时间一致性。
- 作者提出在低分辨率的长视频和高分辨率低短视频上进行训练的方式,实现了计算量和模型长时间一致性的均衡。
- 作者提出的模型,包括长视频生成和模糊视频超分两个子模型,这两个子模型可以分开训练。这种方式允许他们各自独立迭代。
模型
下图a展示了生成器的总体设计。文章使用一个可变长度的时间噪声流来启动生成过程,每个帧包含8个从独立同分布的高斯分布中抽取的标量组成部分。时间噪声首先由一个低分辨率生成器处理,以获得一系列642分辨率的RGB帧,然后由一个单独的超分辨率网络细化,以产生最终的2562分辨率帧。低分辨率生成器的作用是模拟运动和场景组合的主要方面,这需要强大的表达能力和时间上的大感受野,而超分辨率网络负责更细粒度的任务,即幻想剩余的细节。
模型的两阶段设计在生成长视频方面提供了最大的灵活性。具体来说,低分辨率生成器被设计为在时间上完全卷积,因此可以通过移动和重塑时间噪声来控制生成视频的持续时间和时间偏移。另一方面,超分辨率网络是基于帧进行操作的。它接收一个由9个连续的低分辨率帧组成的短序列,并输出一个单一的高分辨率帧;每个输出帧都使用滑动窗口独立处理。完全卷积和每帧处理的结合使得能够按任意顺序生成任意帧,这对于例如交互式编辑和实时播放非常理想。
低分辨率和超分辨率网络在中间有一个RGB图像的连接。整个模型分为两个字模型,是模块化的,能够独立训练。这极大地简化了实验。
低分辨率生成器
上图b展示了作者针对低分辨率生成器的训练设置。在每次迭代中,为生成器提供了一套新的时间噪声,以产生128帧的序列。为了训练判别器,通过选择一个随机视频和该视频中的128帧随机间隔来从训练数据中采样相应的序列。 作者观察到,使用长序列进行训练往往会加剧过拟合的问题。随着序列长度的增加,作者怀疑生成器同时模拟多个时间尺度上的时间动态变得更加困难,但同时,判别器发现任何错误也变得更容易。在实践中,作者发现强大的判别器是稳定训练所必需的。作者使用DiffAug,对序列中的每个帧使用相同的转换,以及在1/2×和2×之间的分数时间拉伸。
下图展示了低分辨率生成器的架构。主要目标是让时间轴成为一等公民,包括对时间潜在表示、时间风格调制、时空卷积和时间上采样的精心设计。通过这些机制,文章设计的生成器跨越了一个广阔的时间感受野(5k帧),使其能够表示多个时间尺度上的时间相关性。
作者采用了基于风格设计的方案,类似于Karras等人,将输入的时间噪声映射到一系列中间潜在变量 <math xmlns="http://www.w3.org/1998/Math/MathML"> w t w_t </math>wt中,用于调制主合成路径中每一层的行为。每个中间潜在变量与特定帧相关联,但它可以通过在主路径中出现的分层3D卷积显著影响多个帧的场景组合和时间行为。
为了充分受益于基于风格的设计,对于中间潜在变量捕获长期时间相关性(如天气变化或持续存在的对象)至关重要。为此,作者采用了一种方案,首先通过一系列时间低通滤波器丰富输入的时间噪声,然后逐帧通过全连接映射网络。低通滤波的目的是为映射网络提供跨广泛不同时间尺度的足够长期上下文。具体来说,给定一个时间噪声流 <math xmlns="http://www.w3.org/1998/Math/MathML"> z ( t ) ∈ R 8 z(t) ∈ R^8 </math>z(t)∈R8,计算相应的丰富表示 <math xmlns="http://www.w3.org/1998/Math/MathML"> z ( t ) ∈ R ( 128 × 8 ) z(t) ∈ R^{(128×8)} </math>z(t)∈R(128×8),其中 <math xmlns="http://www.w3.org/1998/Math/MathML"> z i ′ , j = f i ∗ z j z'_i,j = f_i * z_j </math>zi′,j=fi∗zj,其中 <math xmlns="http://www.w3.org/1998/Math/MathML"> f i f_i </math>fi是一组时间足迹从100到5000帧的128个低通滤波器,*表示时间上的卷积。
主合成路径首先通过32×时间分辨率下采样 <math xmlns="http://www.w3.org/1998/Math/MathML"> w t w_t </math>wt,并将其与在4/2分辨率处学习到的常数连接起来。然后通过一系列处理块逐渐增加时间和空间分辨率,如图3所示,首先关注时间维度(ST),然后是空间维度(S)。前四个块有512个通道,接着是两个256通道的块,两个128通道的块和两个64通道的块。处理块由与StyleGAN2和StyleGAN3相同的基本构建块组成,并增加了跳过连接;中间激活在每次卷积之前进行归一化,并根据{wt}的适当下采样副本进行调制。在实践中,我们采用双线性上采样,并使用时间轴的填充以消除边界效应。通过我们的时间潜在表示和时空处理块的结合,我们的架构能够模拟时间上的复杂和长期模式。
对于判别器,采用了一个通过宽时间感受野、3D时空和1D时间卷积以及空间和时间下采样来优先考虑时间轴的架构。
超分辨率网络
上图c展示了文章针对超分辨率网络的训练设置。视频超分辨率网络是StyleGAN3的一个简单扩展,用于条件帧生成。与输出一系列帧并包含显式时间操作的低分辨率网络不同,超分辨率生成器输出单个帧,并且只在输入处利用时间信息,其中真实的低分辨率帧和时间前后各4个相邻的真实低分辨率帧沿通道维度连接起来提供上下文。从生成器的每一层中移除了空间傅里叶特征输入,并调整并连接低分辨率帧堆栈。生成器的架构与StyleGAN3保持不变,包括使用每个视频采样一次的中间潜在代码。低分辨率帧在数据管道中作为条件处理之前会经过增强,这有助于确保泛化到生成的低分辨率图像。
超分辨率鉴别器是StyleGAN鉴别器的一个类似简单扩展,输入处连接了4个低分辨率和高分辨率帧。唯一的其他变化是作者发现在实践中去除小批量标准差层是不必要的。4帧的低分辨率和高分辨率段都会经过自适应增强,其中相同的增强应用于两种分辨率的所有帧。低分辨率段还会经过激进的丢弃(p = 0.9的概率将整个段置零),这防止了判别器过分依赖条件信号。
作者发现这样一个简单的视频超分辨率模型足以产生相当好的高分辨率视频。