时序建模

视频与图像的核心区别在于时间维度。时序建模是视频生成的基础,决定了视频的流畅度和连贯性。

预计阅读时间:45分钟·难度:中级

什么是时序建模

时序建模是指对视频序列中时间维度的建模方法。与静态图像不同,视频需要在生成每一帧的同时,确保帧与帧之间的连贯性和一致性。这是视频生成领域最核心的技术挑战之一。

核心问题

  • 时间连续性:相邻帧之间的平滑过渡
  • 运动一致性:物体的运动轨迹连贯
  • 内容稳定性:背景和静态元素的稳定
  • 语义连贯性:整个视频的叙事逻辑

为什么时序建模如此重要

在视频生成中,如果缺乏有效的时序建模,生成的视频会出现以下问题:

画面闪烁

相邻帧之间出现明显的不连续,导致画面看起来在"闪烁"。这是最常见的时序问题,通常由于每帧独立生成而缺乏时序约束造成。

物体变形

视频中的物体在不同帧之间出现形状变化,比如一个人的脸在不同帧看起来不一样。这严重影响视频的真实感。

运动不自然

物体的运动轨迹不平滑,出现跳跃或突变。这会让视频看起来像是由多个不相关的片段拼接而成。

背景抖动

本应静止的背景元素出现不规则的抖动或变化,破坏视频的稳定感。

时序建模的历史演变

时序建模技术经历了从简单到复杂的演进过程:

时期主要方法特点
早期帧间差分、光流手工特征,简单有效
2010s初3D CNN端到端学习,局部时序
2010s中RNN/LSTM序列建模,长时依赖
2020sTransformer并行计算,全局注意力
当前扩散模型高质量生成,强时序一致性

建模方法

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到时序维度统计意义但计算量大
人工评估人眼判断一致性最准确但成本高

时间注意力

时间注意力是当前视频生成模型的核心组件,用于建模帧与帧之间的关系。它决定了模型如何"理解"和利用时序信息。

注意力类型对比

空间注意力

在单帧内捕获空间关系,理解画面中不同区域之间的关联

时间注意力

在帧与帧之间建立关系,理解不同时刻画面之间的关联

时间注意力的实现方式

全量时间注意力

每一帧都与其他所有帧计算注意力,能够捕获全局时序关系。

复杂度:O(T²),其中T为帧数
适用场景:短视频,需要全局理解的场景
局部时间注意力

每帧只与相邻的若干帧计算注意力,降低计算复杂度。

复杂度:O(T×W),W为窗口大小
适用场景:长视频,关注局部运动的场景
稀疏时间注意力

通过采样策略选择部分帧对进行注意力计算。

复杂度:介于全量和局部之间
适用场景:需要全局信息但资源有限的场景
分层时间注意力

在不同层次使用不同粒度的时间注意力,底层关注局部,高层关注全局。

复杂度:综合优化
适用场景:复杂视频理解任务

时间注意力的优化技巧

  • 位置编码:为每一帧添加时间位置编码,帮助模型理解时序关系
  • 相对位置编码:使用帧间相对距离作为编码,更好地泛化到不同长度
  • 因果注意力:限制注意力只关注当前帧之前的帧,用于自回归生成
  • 记忆机制:引入可学习的记忆token,存储长期时序信息

核心挑战

长序列建模

长视频需要模型"记住"更长时间的内容。传统的注意力机制在长序列上面临计算复杂度和内存消耗的问题。解决方案包括分层注意力、记忆机制、状态空间模型等。

计算复杂度

视频数据的维度远大于图像,一个短视频可能包含数百帧,每帧又有大量的空间信息。这带来了巨大的计算和存储开销,需要高效的模型架构和推理策略。

时间-质量权衡

更强的时序建模能力通常意味着更多计算开销。如何在有限的计算资源下实现最优的视频质量,是一个重要的研究和工程问题。

动态场景处理

视频中的运动类型多种多样,从缓慢的相机移动到快速的动作,从刚体运动到非刚体变形。如何让模型适应不同类型的运动是一大挑战。

遮挡与消失

视频中的物体可能被遮挡或移出画面后再出现。模型需要"记住"这些物体并在合适的时候恢复它们,这对长时记忆提出了要求。

高级技术

因果视频建模

因果视频建模确保生成过程只依赖当前帧之前的信息,这对于实时应用和视频预测至关重要。

因果注意力机制

  • • 掩码注意力:将未来帧的注意力权重设为负无穷
  • • 自回归生成:逐帧生成,每帧依赖之前所有帧
  • • 流式处理:适用于实时视频处理场景

分层时序建模

不同时间尺度的事件需要不同粒度的建模策略。

多层次时间建模

  • 帧级:相邻帧之间的运动变化
  • 片段级:几秒内的动作序列
  • 场景级:整个场景的演变
  • 视频级:完整的叙事结构

条件时序建模

根据不同的条件信息(如运动向量、关键帧、音频等)来控制视频生成。

运动条件

通过光流或运动向量控制视频中的运动方式和幅度。

关键帧条件

给定首尾帧或中间关键帧,生成平滑过渡的视频。

音频条件

根据音频内容生成同步的口型或动作。

实践指南

选择合适的时序建模方法

场景推荐方法原因
短视频生成(<5秒)全量时间注意力帧数少,可接受O(T²)复杂度
中长视频生成局部+稀疏注意力平衡全局和局部信息
实时视频处理因果+流式处理满足实时性要求
视频预测自回归+因果注意力自然支持预测任务

提升帧间一致性的技巧

  1. 使用参考帧:始终以第一帧或关键帧作为参考,后续帧在参考的基础上变化
  2. 控制噪声水平:在扩散过程中,对后续帧使用较低的噪声水平,保持与参考帧的相似度
  3. 添加时序损失:在训练时添加帧间一致性损失,显式约束时序连贯性
  4. 后处理平滑:生成后使用光流等工具进行帧间平滑处理
  5. 运动引导:使用运动向量或光流引导生成,使运动更加可控

常见问题与解决方案

问题:画面闪烁

解决:增加帧间一致性约束,使用更长的时序注意力窗口,降低每帧的独立性。

问题:物体变形

解决:使用更强的身份保持机制,如人脸识别特征约束,或增加参考帧的权重。

问题:运动不自然

解决:使用运动引导生成,或训练时使用更大的运动数据集增强运动理解。

----