时序建模
视频与图像的核心区别在于时间维度。时序建模是视频生成的基础,决定了视频的流畅度和连贯性。
什么是时序建模
时序建模是指对视频序列中时间维度的建模方法。与静态图像不同,视频需要在生成每一帧的同时,确保帧与帧之间的连贯性和一致性。这是视频生成领域最核心的技术挑战之一。
核心问题
- 时间连续性:相邻帧之间的平滑过渡
- 运动一致性:物体的运动轨迹连贯
- 内容稳定性:背景和静态元素的稳定
- 语义连贯性:整个视频的叙事逻辑
为什么时序建模如此重要
在视频生成中,如果缺乏有效的时序建模,生成的视频会出现以下问题:
画面闪烁
相邻帧之间出现明显的不连续,导致画面看起来在"闪烁"。这是最常见的时序问题,通常由于每帧独立生成而缺乏时序约束造成。
物体变形
视频中的物体在不同帧之间出现形状变化,比如一个人的脸在不同帧看起来不一样。这严重影响视频的真实感。
运动不自然
物体的运动轨迹不平滑,出现跳跃或突变。这会让视频看起来像是由多个不相关的片段拼接而成。
背景抖动
本应静止的背景元素出现不规则的抖动或变化,破坏视频的稳定感。
时序建模的历史演变
时序建模技术经历了从简单到复杂的演进过程:
| 时期 | 主要方法 | 特点 |
|---|---|---|
| 早期 | 帧间差分、光流 | 手工特征,简单有效 |
| 2010s初 | 3D CNN | 端到端学习,局部时序 |
| 2010s中 | RNN/LSTM | 序列建模,长时依赖 |
| 2020s | Transformer | 并行计算,全局注意力 |
| 当前 | 扩散模型 | 高质量生成,强时序一致性 |
建模方法
1. 3D卷积
3D卷积将传统的2D卷积扩展到时间维度,同时在空间和时间上进行卷积操作。这种方法能够自然地捕获局部时序信息。
核心原理
2D卷积的核大小为 k×k,而3D卷积的核大小为 k×k×t,其中t是时间维度的核大小。这样可以在连续的几帧之间提取特征。
- • 输入:视频片段 (C, T, H, W)
- • 卷积核:(C_out, C_in, t, k, k)
- • 输出:特征图 (C_out, T', H', W')
C3D (Convolutional 3D)
最早的3D卷积网络之一,使用3×3×3的卷积核在所有层进行时空卷积。简单直接,但参数量大,计算开销高。
I3D (Inflated 3D)
将预训练的2D网络"膨胀"为3D网络,通过将2D卷积核复制t次并归一化来初始化3D卷积核,利用了图像预训练的优势。
SlowFast
双路径架构,Slow路径处理低帧率捕获语义信息,Fast路径处理高帧率捕获运动细节,两者通过横向连接融合。
2. 循环神经网络(RNN)
循环神经网络天然适合处理序列数据,通过隐藏状态在时间步之间传递信息。
LSTM与GRU
LSTM (Long Short-Term Memory) 和 GRU (Gated Recurrent Unit) 通过门控机制解决普通RNN的梯度消失问题,能够更好地建模长程依赖。
- • LSTM:输入门、遗忘门、输出门,记忆单元
- • GRU:更新门、重置门,参数更少
- • 双向RNN:同时考虑过去和未来的上下文
优势与局限
优势
- • 天然处理变长序列
- • 可建模长程依赖
- • 参数共享,模型紧凑
局限
- • 难以并行计算
- • 训练不稳定
- • 长序列仍可能丢失信息
3. Transformer时序建模
Transformer通过自注意力机制处理时序关系,支持完全并行计算,能够建模全局依赖。
时间注意力机制
将视频帧序列视为token序列,通过自注意力让每一帧都能"看到"所有其他帧,从而建立全局时序关系。
- • 时间自注意力:在不同帧的相同位置之间计算注意力
- • 时空分离注意力:分别计算时间注意力和空间注意力
- • 时空联合注意力:将时空展平后统一计算注意力
TimeSformer
将ViT扩展到视频领域,提出多种注意力分解策略:Divided Space-Time Attention在时间和空间维度分别计算注意力,效率更高。
Video Swin Transformer
将Swin Transformer的移位窗口机制扩展到3D,在局部时空窗口内计算注意力,复杂度与视频长度呈线性关系。
ViViT (Video Vision Transformer)
提出从视频提取时空token的多种策略,并设计了高效的因子化注意力机制降低计算复杂度。
4. 扩散模型时序建模
扩散模型通过在潜在空间逐步去噪来生成视频,是目前最先进的视频生成方法。
核心思想
视频扩散模型将整个视频作为一个整体进行扩散和去噪,学习视频的时序分布。去噪过程同时考虑空间和时间的一致性。
- • 3D扩散:在空间和时间维度同时进行扩散过程
- • 潜在扩散:先压缩到潜在空间再扩散,降低计算量
- • 条件扩散:通过文本、图像等条件引导生成
Stable Video Diffusion (SVD)
Stability AI开源的视频扩散模型,采用潜在扩散架构,通过时间层确保帧间一致性,支持图生视频。
Sora
OpenAI的DiT架构视频模型,将视频分解为时空Patch,通过Transformer进行扩散去噪,支持长达60秒的高质量视频生成。
帧间一致性
帧间一致性是视频生成质量的核心指标,指相邻帧之间在视觉和语义上的连贯程度。高质量的帧间一致性是视频看起来"真实"的关键。
一致性的多个维度
外观一致性
- • 物体颜色、形状稳定
- • 背景元素不变
- • 光影效果连贯
- • 纹理细节一致
运动一致性
- • 运动轨迹平滑
- • 速度变化自然
- • 加速度符合物理规律
- • 运动方向连贯
语义一致性
- • 物体身份不变
- • 场景逻辑连贯
- • 动作序列合理
- • 叙事完整性
时间一致性
- • 无时间跳跃
- • 因果关系正确
- • 事件顺序合理
- • 时间流逝自然
保持一致性的技术方法
帧间约束
在训练时添加帧间一致性损失,惩罚相邻帧之间的不一致。常用的方法包括光流一致性损失、特征一致性损失等。
参考帧机制
使用第一帧或关键帧作为参考,后续帧在生成时参考前面的帧,确保外观一致性。SVD、Sora等模型都采用这种方式。
运动引导
显式建模运动(如光流、运动向量),通过运动来引导帧间变化,使运动更加可控和连贯。
后处理优化
生成后使用专门的模型对帧间一致性进行优化,如使用光流进行帧间插值或平滑。
一致性评估方法
如何量化评估帧间一致性是一个重要问题,目前常用的方法包括:
| 方法 | 原理 | 优缺点 |
|---|---|---|
| 光流一致性 | 计算光流并检查其连贯性 | 直观但依赖光流质量 |
| 特征相似度 | 比较相邻帧的特征相似度 | 简单但可能忽略运动 |
| 时序FID | 扩展FID到时序维度 | 统计意义但计算量大 |
| 人工评估 | 人眼判断一致性 | 最准确但成本高 |
时间注意力
时间注意力是当前视频生成模型的核心组件,用于建模帧与帧之间的关系。它决定了模型如何"理解"和利用时序信息。
注意力类型对比
空间注意力
在单帧内捕获空间关系,理解画面中不同区域之间的关联
时间注意力
在帧与帧之间建立关系,理解不同时刻画面之间的关联
时间注意力的实现方式
全量时间注意力
每一帧都与其他所有帧计算注意力,能够捕获全局时序关系。
局部时间注意力
每帧只与相邻的若干帧计算注意力,降低计算复杂度。
稀疏时间注意力
通过采样策略选择部分帧对进行注意力计算。
分层时间注意力
在不同层次使用不同粒度的时间注意力,底层关注局部,高层关注全局。
时间注意力的优化技巧
- 位置编码:为每一帧添加时间位置编码,帮助模型理解时序关系
- 相对位置编码:使用帧间相对距离作为编码,更好地泛化到不同长度
- 因果注意力:限制注意力只关注当前帧之前的帧,用于自回归生成
- 记忆机制:引入可学习的记忆token,存储长期时序信息
核心挑战
长序列建模
长视频需要模型"记住"更长时间的内容。传统的注意力机制在长序列上面临计算复杂度和内存消耗的问题。解决方案包括分层注意力、记忆机制、状态空间模型等。
计算复杂度
视频数据的维度远大于图像,一个短视频可能包含数百帧,每帧又有大量的空间信息。这带来了巨大的计算和存储开销,需要高效的模型架构和推理策略。
时间-质量权衡
更强的时序建模能力通常意味着更多计算开销。如何在有限的计算资源下实现最优的视频质量,是一个重要的研究和工程问题。
动态场景处理
视频中的运动类型多种多样,从缓慢的相机移动到快速的动作,从刚体运动到非刚体变形。如何让模型适应不同类型的运动是一大挑战。
遮挡与消失
视频中的物体可能被遮挡或移出画面后再出现。模型需要"记住"这些物体并在合适的时候恢复它们,这对长时记忆提出了要求。
高级技术
因果视频建模
因果视频建模确保生成过程只依赖当前帧之前的信息,这对于实时应用和视频预测至关重要。
因果注意力机制
- • 掩码注意力:将未来帧的注意力权重设为负无穷
- • 自回归生成:逐帧生成,每帧依赖之前所有帧
- • 流式处理:适用于实时视频处理场景
分层时序建模
不同时间尺度的事件需要不同粒度的建模策略。
多层次时间建模
- • 帧级:相邻帧之间的运动变化
- • 片段级:几秒内的动作序列
- • 场景级:整个场景的演变
- • 视频级:完整的叙事结构
条件时序建模
根据不同的条件信息(如运动向量、关键帧、音频等)来控制视频生成。
运动条件
通过光流或运动向量控制视频中的运动方式和幅度。
关键帧条件
给定首尾帧或中间关键帧,生成平滑过渡的视频。
音频条件
根据音频内容生成同步的口型或动作。
实践指南
选择合适的时序建模方法
| 场景 | 推荐方法 | 原因 |
|---|---|---|
| 短视频生成(<5秒) | 全量时间注意力 | 帧数少,可接受O(T²)复杂度 |
| 中长视频生成 | 局部+稀疏注意力 | 平衡全局和局部信息 |
| 实时视频处理 | 因果+流式处理 | 满足实时性要求 |
| 视频预测 | 自回归+因果注意力 | 自然支持预测任务 |
提升帧间一致性的技巧
- 使用参考帧:始终以第一帧或关键帧作为参考,后续帧在参考的基础上变化
- 控制噪声水平:在扩散过程中,对后续帧使用较低的噪声水平,保持与参考帧的相似度
- 添加时序损失:在训练时添加帧间一致性损失,显式约束时序连贯性
- 后处理平滑:生成后使用光流等工具进行帧间平滑处理
- 运动引导:使用运动向量或光流引导生成,使运动更加可控
常见问题与解决方案
问题:画面闪烁
解决:增加帧间一致性约束,使用更长的时序注意力窗口,降低每帧的独立性。
问题:物体变形
解决:使用更强的身份保持机制,如人脸识别特征约束,或增加参考帧的权重。
问题:运动不自然
解决:使用运动引导生成,或训练时使用更大的运动数据集增强运动理解。