一、视频理解任务

任务描述代表
动作识别分类视频中的动作“打篮球”
时序动作定位定位+分类“从00:23到01:15,打篮球”
视频检索文本→视频匹配搜索"跑步的人"
视频分割像素级时空分割SAM 2
视频生成文本→视频Sora
视频跟踪多目标/单目标ByteTrack
光流估计像素级运动RAFT

二、光流 (Optical Flow) ⭐

2.1 光流约束方程

I(x, y, t) = I(x+dx, y+dy, t+dt)  (亮度不变假设)

I_x·u + I_y·v + I_t = 0  (一阶Taylor展开)
  ↑      ↑      ↑
  I_x: 图像梯度X   I_t: 时间差分
  u = dx/dt: X方向运动
  v = dy/dt: Y方向运动

问题: 1个方程2个未知数 → 需要额外约束(孔径问题)

2.2 求解方法

方法类型约束
Lucas-Kanade稀疏局部窗口内运动一致
Horn-Schunck稠密全局平滑约束
Farneback稠密多项式展开

2.3 深度学习光流

模型年份说明
FlowNet2015端到端光流
PWC-Net2018金字塔+扭曲+相关
RAFT ⭐2020迭代细化,SOTA
GMFlow2022全局匹配
FlowFormer2022Transformer

三、动作识别 ⭐

3.1 双流网络 (Two-Stream, 2014)

RGB帧 ──→ 2D CNN (空间流) ──┐
                              ├── 融合 → 分类
光流堆叠 → 2D CNN (时序流) ──┘

3.2 3D CNN系列

模型年份核心
C3D20143×3×3 3D卷积核
I3D ⭐20172D→3D膨胀(ImageNet预训练)
S3D2017分离式3D卷积
Non-local2018非局部自注意力
SlowFast2019慢速帧+快速度双分支
TSM2019时序平移模块(高效)
TSN2016分段采样+稀疏时序

3.3 视频Transformer

模型年份说明
TimeSformer2021拆分时空注意力
ViViT2021Video ViT
VideoMAE2022视频掩码自编码器
VideoMAE V22022更大规模
InternVideo22024多模态视频理解

四、视频动作定位

模型方法说明
TAL-Net时序anchor2D-TAN
ActionFormer无锚框Transformer定位
TriDet时序边界检测SOTA时序定位
UniDet统一检测空间+时序

五、视频生成

模型组织年份特点
SoraOpenAI2024最强文生视频
VideoPoetGoogle2024LLM视频生成
Stable Video DiffusionStability2023图生视频
AnimateDiff社区2023在文生图上加时间模块
Gen-3Runway2024商业视频生成
CogVideoX智谱2024开源文生视频
Open-SoraColossalAI2024开源Sora复现

📺 推荐视频

  • 光流算法详解: B站搜索
  • 李飞飞视频理解课程: Stanford CS231n lecture
  • 动作识别网络: YouTube/B站

📚 论文必读

论文年份推荐度
Two-Stream Convolutional Networks for Action Recognition2014⭐⭐⭐⭐⭐
Learning Spatiotemporal Features with 3D ConvNets (C3D)2014⭐⭐⭐⭐
Quo Vadis, Action Recognition? (I3D)2017⭐⭐⭐⭐⭐
Non-local Neural Networks2018⭐⭐⭐⭐
SlowFast Networks for Video Recognition2019⭐⭐⭐⭐
TSM: Temporal Shift Module2019⭐⭐⭐
RAFT: Recurrent All-Pairs Field Transforms2020⭐⭐⭐⭐⭐
VideoMAE: Masked Autoencoders2022⭐⭐⭐⭐
InternVideo2 (多模态)2024⭐⭐⭐

🔗 视频链接


附录:深层补充

一、光流估计深入算法详解

1.1 Lucas-Kanade 光流(局部窗口最小二乘)

Lucas-Kanade 引入局部窗口一致性假设:在像素 ( x , y ) (x,y) (x,y) 周围的小窗口 Ω \Omega Ω(通常 5 × 5 5\times5 5×5 或 7 × 7 7\times7 7×7)内,所有像素的运动矢量 ( u , v ) (u,v) (u,v) 相同。

对于窗口内 n n n 个像素,每个像素提供一个约束方程:
[ I x ( p 1 ) I y ( p 1 ) I x ( p 2 ) I y ( p 2 ) ⋮ ⋮ I x ( p n ) I y ( p n ) ] [ u v ] = − [ I t ( p 1 ) I t ( p 2 ) ⋮ I t ( p n ) ] \begin{bmatrix} I_x(p_1) & I_y(p_1) \\ I_x(p_2) & I_y(p_2) \\ \vdots & \vdots \\ I_x(p_n) & I_y(p_n) \end{bmatrix} \begin{bmatrix} u \\ v \end{bmatrix} = -\begin{bmatrix} I_t(p_1) \\ I_t(p_2) \\ \vdots \\ I_t(p_n) \end{bmatrix} ​Ix​(p1​)Ix​(p2​)⋮Ix​(pn​)​Iy​(p1​)Iy​(p2​)⋮Iy​(pn​)​ ​[uv​]=− ​It​(p1​)It​(p2​)⋮It​(pn​)​ ​
简写为 A d = b \mathbf{A}\mathbf{d} = \mathbf{b} Ad=b。使用最小二乘求解:
A ⊤ A d = A ⊤ b ⟹ d = ( A ⊤ A ) − 1 A ⊤ b \mathbf{A}^\top\mathbf{A} \mathbf{d} = \mathbf{A}^\top\mathbf{b} \quad\Longrightarrow\quad \mathbf{d} = (\mathbf{A}^\top\mathbf{A})^{-1}\mathbf{A}^\top\mathbf{b} A⊤Ad=A⊤b⟹d=(A⊤A)−1A⊤b
其中 A ⊤ A = [ ∑ I x 2 ∑ I x I y ∑ I x I y ∑ I y 2 ] \mathbf{A}^\top\mathbf{A} = \begin{bmatrix} \sum I_x^2 & \sum I_x I_y \\ \sum I_x I_y & \sum I_y^2 \end{bmatrix} A⊤A=[∑Ix2​∑Ix​Iy​​∑Ix​Iy​∑Iy2​​] 即为结构张量(structure tensor)。当该矩阵可逆(即两个特征值都足够大)时,可解出 ( u , v ) (u,v) (u,v)。这对应着图像中存在角点/纹理区域——孔径问题的本质是 A ⊤ A \mathbf{A}^\top\mathbf{A} A⊤A 秩亏。

金字塔LK:对大运动,构建图像金字塔(通常4-5层),从顶层粗估计开始逐层向底层细化(coarse-to-fine warping)。

1.2 Horn-Schunck 光流(全局能量函数)

Horn-Schunck 将光流建模为全局能量函数最小化问题:
E = ∬ [ ( I x u + I y v + I t ) 2 + α 2 ( ∥ ∇ u ∥ 2 + ∥ ∇ v ∥ 2 ) ] d x d y E = \iint \left[ (I_x u + I_y v + I_t)^2 + \alpha^2 (\|\nabla u\|^2 + \|\nabla v\|^2) \right] dxdy E=∬[(Ix​u+Iy​v+It​)2+α2(∥∇u∥2+∥∇v∥2)]dxdy

  • 数据项 ( I x u + I y v + I t ) 2 (I_x u + I_y v + I_t)^2 (Ix​u+Iy​v+It​)2:强制满足光流约束方程
  • 平滑项 ∥ ∇ u ∥ 2 + ∥ ∇ v ∥ 2 = ( ∂ u ∂ x ) 2 + ( ∂ u ∂ y ) 2 + ( ∂ v ∂ x ) 2 + ( ∂ v ∂ y ) 2 \|\nabla u\|^2 + \|\nabla v\|^2 = (\frac{\partial u}{\partial x})^2 + (\frac{\partial u}{\partial y})^2 + (\frac{\partial v}{\partial x})^2 + (\frac{\partial v}{\partial y})^2 ∥∇u∥2+∥∇v∥2=(∂x∂u​)2+(∂y∂u​)2+(∂x∂v​)2+(∂y∂v​)2:惩罚流场的空间变化
  • α \alpha α 控制平滑强度( α \alpha α 越大,流越平滑)

通过变分法导出 Euler-Lagrange 方程,得到迭代求解:
u ( k + 1 ) = u ˉ ( k ) − I x ( I x u ˉ ( k ) + I y v ˉ ( k ) + I t ) α 2 + I x 2 + I y 2 u^{(k+1)} = \bar{u}^{(k)} - \frac{I_x (I_x \bar{u}^{(k)} + I_y \bar{v}^{(k)} + I_t)}{\alpha^2 + I_x^2 + I_y^2} u(k+1)=uˉ(k)−α2+Ix2​+Iy2​Ix​(Ix​uˉ(k)+Iy​vˉ(k)+It​)​

v ( k + 1 ) = v ˉ ( k ) − I y ( I x u ˉ ( k ) + I y v ˉ ( k ) + I t ) α 2 + I x 2 + I y 2 v^{(k+1)} = \bar{v}^{(k)} - \frac{I_y (I_x \bar{u}^{(k)} + I_y \bar{v}^{(k)} + I_t)}{\alpha^2 + I_x^2 + I_y^2} v(k+1)=vˉ(k)−α2+Ix2​+Iy2​Iy​(Ix​uˉ(k)+Iy​vˉ(k)+It​)​

其中 u ˉ , v ˉ \bar{u}, \bar{v} uˉ,vˉ 是邻域均值(Laplacian平滑)。

1.3 Farneback 光流(多项式展开)

Farneback 对每个局部邻域用二次多项式近似图像强度:
f ( x ) ≈ x ⊤ A x + b ⊤ x + c f(x) \approx x^\top \mathbf{A} x + \mathbf{b}^\top x + c f(x)≈x⊤Ax+b⊤x+c
其中 A \mathbf{A} A 是 2 × 2 2\times2 2×2 对称矩阵, b \mathbf{b} b 是 2 × 1 2\times1 2×1 向量, c c c 是标量。系数通过加权最小二乘从邻域像素拟合得到。

对前后两帧分别拟合得到多项式系数 ( A 1 , b 1 , c 1 ) (\mathbf{A}_1, \mathbf{b}_1, c_1) (A1​,b1​,c1​) 和 ( A 2 , b 2 , c 2 ) (\mathbf{A}_2, \mathbf{b}_2, c_2) (A2​,b2​,c2​),在位移 d d d 满足 A 1 = A 2 \mathbf{A}_1 = \mathbf{A}_2 A1​=A2​(等亮度假设)时,解得:
A 1 d = − 1 2 ( b 2 − b 1 ) ⟹ d = − 1 2 A 1 − 1 ( b 2 − b 1 ) \mathbf{A}_1 \mathbf{d} = -\frac{1}{2}(\mathbf{b}_2 - \mathbf{b}_1) \quad\Longrightarrow\quad \mathbf{d} = -\frac{1}{2}\mathbf{A}_1^{-1}(\mathbf{b}_2 - \mathbf{b}_1) A1​d=−21​(b2​−b1​)⟹d=−21​A1−1​(b2​−b1​)

实际实现中采用多尺度金字塔 + 迭代加权估计,并用归一化互相关进行可靠性评估。Farneback 精度介于 LK 和 HS 之间,速度较快(OpenCV 中 calcOpticalFlowFarneback)。

1.4 RAFT(Recurrent All-Pairs Field Transforms)

RAFT 是深度学习光流的标志性工作,核心由三部分组成:

1)特征提取:两个孪生网络分别提取参考帧 g θ ( I 1 ) g_\theta(I_1) gθ​(I1​) 和目标帧 h θ ( I 2 ) h_\theta(I_2) hθ​(I2​) 的特征图(1/8分辨率)。

2)全对相关体(All-Pairs Correlation Volume):计算 g θ ( I 1 ) g_\theta(I_1) gθ​(I1​) 和 h θ ( I 2 ) h_\theta(I_2) hθ​(I2​) 所有位置对的点积相似度,构建 4D 相关体 C ∈ R H × W × H × W \mathbf{C} \in \mathbb{R}^{H\times W\times H\times W} C∈RH×W×H×W。为处理大位移,构造多层金字塔相关体(通过平均池化下采样):
C k = AvgPool ( C , kernel = 2 k ) \mathbf{C}^k = \text{AvgPool}(\mathbf{C}, \text{kernel}=2^k) Ck=AvgPool(C,kernel=2k)

3)迭代更新:基于 GRU 的循环更新算子,每次迭代从相关体中查表(根据当前光流估计 f t \mathbf{f}^t ft 查找对应位置的相似度),产生光流残差 Δ f \Delta \mathbf{f} Δf:
f t + 1 = f t + Δ f + context + motion features \mathbf{f}^{t+1} = \mathbf{f}^t + \Delta \mathbf{f} + \text{context} + \text{motion features} ft+1=ft+Δf+context+motion features

RAFTA 通常迭代 12 次,初始化为零流,每次迭代修正光流。这种方法端到端可微,在 Sintel 和 KITTI 光流基准上长期保持 SOTA。


二、3D 卷积详解

2.1 C3D 网络

C3D 是最早将 3D 卷积引入视频理解的经典工作。其核心设计是统一的 3 × 3 × 3 3\times3\times3 3×3×3 小卷积核(而非 11 × 11 × 3 11\times11\times3 11×11×3 等不对称核),优势在于:

  • 空间和时间维度使用相同感受野,保持时空对称性
  • 连续堆叠多个 3 × 3 × 3 3\times3\times3 3×3×3( = 3 =3 =3 层)获得等效 7 × 7 × 7 7\times7\times7 7×7×7 感受野,同时减少参数量

典型架构(8个卷积层 + 5个池化层 + 2个全连接层):

  • conv1: 64个 3 × 3 × 3 3\times3\times3 3×3×3 核,pool1: 1 × 2 × 2 1\times2\times2 1×2×2(保留时间维度)
  • conv2: 128个 3 × 3 × 3 3\times3\times3 3×3×3
  • conv3a,b: 256个 3 × 3 × 3 3\times3\times3 3×3×3
  • conv4a,b: 512个 3 × 3 × 3 3\times3\times3 3×3×3
  • conv5a,b: 512个 3 × 3 × 3 3\times3\times3 3×3×3,pool5: 2 × 2 × 2 2\times2\times2 2×2×2
  • 全连接层: 4096 → 4096 → N_classes

参数量分析:一个 3 × 3 × 3 3\times3\times3 3×3×3 卷积层的参数 = C i n × C o u t × 27 + C o u t C_{in} \times C_{out} \times 27 + C_{out} Cin​×Cout​×27+Cout​(bias)。相比之下,2D 3 × 3 3\times3 3×3 的参数 = C i n × C o u t × 9 C_{in} \times C_{out} \times 9 Cin​×Cout​×9。3D 卷积的参数量是同分辨率 2D 卷积的 3 倍。

计算量分析:对于 C i n C_{in} Cin​→ C o u t C_{out} Cout​,特征图尺寸 T × H × W T\times H\times W T×H×W:

  • FLOPs = C i n × C o u t × 27 × T × H × W C_{in} \times C_{out} \times 27 \times T \times H \times W Cin​×Cout​×27×T×H×W
2.2 I3D(Inflated 3D ConvNet)

I3D 的核心思想是将 2D ConvNet 膨胀(inflate) 为 3D ConvNet:

  • N × N N\times N N×N 2D 卷积核 → N × N × N N\times N\times N N×N×N 3D 卷积核
  • 从 ImageNet 预训练的 2D 权重初始化:将 2D 权重沿时间维度重复 N N N 次,再除以 N N N(保持激活值尺度不变)
  • 池化层也相应膨胀: 2 × 2 2\times2 2×2 → 1 × 2 × 2 1\times2\times2 1×2×2(保留时间维度)

双流 I3D:RGB 流(空间外观) + 光流流(时序运动),两者独立使用 I3D 网络,最后融合分类。

关键贡献:证明了ImageNet 预训练对 3D 视频理解网络至关重要——2D→3D 膨胀使 3D 网络获得从 2D 预训练中迁移的强初始化,相比随机初始化的 C3D 提升显著。

2.3 SlowFast 双路径设计

SlowFast 设计两个并行路径,以不同帧率处理视频:

Slow 路径:

  • 低帧率( τ = 16 \tau=16 τ=16 帧采样一次),高通道数( C C C)
  • 捕获高语义内容(what happened)
  • 使用 3D ResNet 骨干

Fast 路径:

  • 高帧率( τ = 2 \tau=2 τ=2 帧采样一次),低通道数( β C \beta C βC,通常 β = 1 / 8 \beta=1/8 β=1/8)
  • 捕获高时间分辨率运动信息(how it moved)
  • 不使用时间下采样(保持精细时间结构)

侧向连接(Lateral Connections):Fast 路径的特征通过以下方式融合到 Slow 路径:
X s l o w ′ = conv 1 × 1 × 1 ( Unfold ( X f a s t ) ) + X s l o w \mathbf{X}_{slow}' = \text{conv}_{1\times1\times1}\left( \text{Unfold}(\mathbf{X}_{fast}) \right) + \mathbf{X}_{slow} Xslow′​=conv1×1×1​(Unfold(Xfast​))+Xslow​

设计启发:人类视觉系统中存在 Parvocellular(高空间分辨率、低时间分辨率)和 Magnocellular(低空间分辨率、高时间分辨率)两条通路。

2.4 3D 卷积的参数量和计算量深入对比
操作参数量计算量 (FLOPs)同条件对比
2D Conv 3 × 3 3\times3 3×3 9 C i n C o u t 9C_{in}C_{out} 9Cin​Cout​ 9 C i n C o u t H W 9C_{in}C_{out}HW 9Cin​Cout​HW基准
(2+1)D Conv 3 × 3 × 3 3\times3\times3 3×3×3 (分解) 9 C i n C m + 3 C m C o u t 9C_{in}C_m + 3C_mC_{out} 9Cin​Cm​+3Cm​Cout​ 9 C i n C m H W + 3 C m C o u t T H W 9C_{in}C_mHW + 3C_mC_{out}THW 9Cin​Cm​HW+3Cm​Cout​THW降低为纯 3D 的约 1 / 3 1/3 1/3
3D Conv 3 × 3 × 3 3\times3\times3 3×3×3 (纯) 27 C i n C o u t 27C_{in}C_{out} 27Cin​Cout​ 27 C i n C o u t T H W 27C_{in}C_{out}THW 27Cin​Cout​THW基准的 3×T 倍
3D Conv 3 × 1 × 1 3\times1\times1 3×1×1 (时间) 3 C i n C o u t 3C_{in}C_{out} 3Cin​Cout​ 3 C i n C o u t T H W 3C_{in}C_{out}THW 3Cin​Cout​THW仅建模时间

(2+1)D 分解(S3D / R(2+1)D):将 3 × 3 × 3 3\times3\times3 3×3×3 分解为 1 × 3 × 3 1\times3\times3 1×3×3(空间)+ 3 × 1 × 1 3\times1\times1 3×1×1(时间),中间插入一个 C m C_m Cm​ 通道的 bottleneck。这不仅降低了参数量,还引入了额外的 ReLU 非线性,常取得比纯 3D 更好的精度。


三、时序动作定位(Temporal Action Localization)

3.1 ActionFormer

ActionFormer 是时序动作定位领域的 Transformer 无锚框方法。

架构:

  1. 特征提取:使用预训练视频编码器(如 SlowFast)提取每帧/每片段的特征序列 X ∈ R T × D \mathbf{X} \in \mathbb{R}^{T\times D} X∈RT×D
  2. 位置编码:使用可学习的位置编码 P ∈ R T × D \mathbf{P} \in \mathbb{R}^{T\times D} P∈RT×D
  3. Transformer 编码器:多头自注意力(MHSA) + 前馈网络(FFN),堆叠 L L L 层,感受野为整个时序
  4. 分类头 + 回归头:每个时间位置预测动作类别概率 p ^ t \hat{\mathbf{p}}_t p^​t​ 和动作边界偏移 b ^ t = ( c ^ t , d ^ t ) \hat{\mathbf{b}}_t = (\hat{c}_t, \hat{d}_t) b^t​=(c^t​,d^t​),其中 c t c_t ct​ 为中心位置偏移, d t d_t dt​ 为时序长度

训练损失:

  • 分类损失:Focal Loss(处理正负样本不平衡)
  • 回归损失:GIoU Loss + L1 Loss

L = L c l s + λ ⋅ L r e g \mathcal{L} = \mathcal{L}_{cls} + \lambda \cdot \mathcal{L}_{reg} L=Lcls​+λ⋅Lreg​

推理:对输出进行阈值过滤 → NMS(Soft-NMS 或针对时序的 NMS)→ 得到最终动作实例。

3.2 One-Stage vs Two-Stage in TAD
特性Two-Stage(如 BMN, G-TAD)One-Stage(如 ActionFormer, TriDet)
流程Proposal 生成 → 分类/回归精调端到端直接输出动作实例
速度慢(两阶段串行)快(单阶段)
Proposal质量高(有 refine 阶段)依赖特征质量
召回率受 proposal 生成限制更高(注意力覆盖全时序)
代表方法BMN(边界匹配), G-TAD(图卷积)ActionFormer, TriDet
复杂度多模块联合训练单一 loss 简洁优化

当前趋势:随着 Transformer 和无锚框方法成熟,One-stage 方法(如 ActionFormer)在兼顾速度和精度的同时,逐渐成为主流。


四、视频理解中的 Transformer

4.1 TimeSformer(分解时空注意力)

TimeSformer 提出了分解式时空自注意力(Divided Space-Time Attention):将标准的 3D 自注意力分解为两个连续步骤:

  1. 时间注意力:对每个空间位置,沿时间维度计算自注意力
  2. 空间注意力:对每个时间帧,沿空间维度计算自注意力

具体地,对输入视频切分为 T × H × W T\times H\times W T×H×W 个 patch(每个 patch 为 16 × 16 16\times16 16×16 像素),加上位置编码和可学习的 class token:

  • 时间注意力头:每个 patch 只关注同一空间位置不同时间帧的 T T T 个 patch
  • 空间注意力头:每个 patch 关注同一时间帧不同空间位置的 H × W H\times W H×W 个 patch

复杂度分析:

  • 朴素 3D 自注意力: O ( T 2 H 2 W 2 ) \mathcal{O}(T^2 H^2 W^2) O(T2H2W2)
  • TimeSformer 分解: O ( T 2 H W + T H 2 W 2 ) \mathcal{O}(T^2 HW + TH^2 W^2) O(T2HW+TH2W2),约降低 H W T + H W \frac{HW}{T+HW} T+HWHW​ 倍

TimeSformer 在 Kinetics-400 上以仅 RGB 输入达到 SOTA,证明了纯 Transformer 架构在视频理解中的潜力。

4.2 VideoMAE(3D 掩码自编码器)

VideoMAE 将 MAE 范式扩展到视频领域,核心创新是极高比例的 3D 掩码策略。

3D 立方体掩码:不同于图像 MAE 的 2D 随机掩码,VideoMAE 使用 3D 立方体掩码——以 16 × 16 × 2 16\times16\times2 16×16×2(空间×时间)为单位的掩码块,掩码比例高达 90%-95%(图像 MAE 仅 75%)。

为什么视频需要更高掩码率?

  • 视频帧间存在大量冗余(相邻帧高度相似)
  • 高掩码率强制模型学习时序对应关系,而非简单插值
  • Tube masking(管状掩码:同一空间位置在多个时间帧上一起掩码)防止模型依赖帧间像素级复制

架构:

  • 编码器(仅处理可见 patch,轻量高效)
  • 解码器(处理全部 patch,仅在预训练时使用)
  • 目标:重建被掩码 patch 的原始像素
4.3 UniFormer(Conv + Attention 混合)

UniFormer 的核心洞察:浅层适合卷积(高效建模局部相关性),深层适合自注意力(捕获全局依赖)。

UniFormer Block 设计:

  • 浅层阶段:使用 3 × 3 × 3 3\times3\times3 3×3×3 可分离卷积 + MHSA 的紧凑聚合
  • 深层阶段:使用多头自注意力 + FFN 的全局关系建模

关键在于动态切换:每个 stage 根据 token 数量自动决定使用卷积还是注意力操作。当 N t o k e n > N t h r e s h o l d N_{token} > N_{threshold} Ntoken​>Nthreshold​ 时,使用局部卷积(计算量可控);当 N t o k e n ≤ N t h r e s h o l d N_{token} \leq N_{threshold} Ntoken​≤Nthreshold​ 时,使用全局注意力。

这种混合设计在计算效率和建模能力之间取得良好平衡,在 Something-Something V2 和 Kinetics-400 上均取得 SOTA。


五、Video Sora 与视频生成

5.1 DiT(Diffusion Transformer)的空间-时间 Patch

Sora 的技术报告中明确指出其基于 DiT(Diffusion Transformer)架构。DiT 将扩散模型的 U-Net 骨干替换为 Transformer:

空间-时间 Patch 化:

  1. 原始视频 V ∈ R T × H × W × 3 \mathbf{V} \in \mathbb{R}^{T\times H\times W\times 3} V∈RT×H×W×3 经过 VAE 编码器压缩为隐空间特征 z ∈ R T ′ × H ′ × W ′ × C \mathbf{z} \in \mathbb{R}^{T'\times H'\times W'\times C} z∈RT′×H′×W′×C
  2. 将 z \mathbf{z} z 划分为 p × p × p p\times p\times p p×p×p 的 3D patch(如 2 × 2 × 2 2\times 2\times 2 2×2×2)
  3. 每个 patch 线性投影为 token,加上 3D RoPE 位置编码(空间位置 + 时间位置 + 帧索引)
  4. 所有 token 送入 DiT block(Adaptive Layer Norm + 多头注意力 + MLP)

Conditioning:文本描述通过 T5/CLIP 编码为 text embedding,通过 cross-attention 或 adaptive layer norm(AdaLN-Zero)注入 DiT。

Patch 级别训练:Sora 在原始分辨率和时长上训练(而非固定尺寸),通过对 patch 序列长度进行 attention mask 控制。

5.2 VAE 编码器的帧压缩

视频 VAE 需要将 T × H × W × 3 T\times H\times W\times 3 T×H×W×3 压缩为 T ′ × H ′ × W ′ × C T'\times H'\times W'\times C T′×H′×W′×C,压缩因子通常在 4 × 8 × 8 = 256 × 4\times 8\times 8 = 256\times 4×8×8=256×(时间 4×,空间 8×8)。

因果卷积(Causal Convolution):为保证在线推理时未来帧不影响当前帧编码,使用因果卷积(padding 只在前方填充)。

时间混叠:VAE 在时间维度的下采样通过 3D 卷积或相继 2D 卷积 + frame stacking 实现。时间压缩太大(如 8×)会导致闪烁和时序不连贯——这是 Sora 面临的核心挑战之一。

训练目标:
L = L r e c o n + β ⋅ L K L + L p e r c e p t u a l + L G A N \mathcal{L} = \mathcal{L}_{recon} + \beta \cdot \mathcal{L}_{KL} + \mathcal{L}_{perceptual} + \mathcal{L}_{GAN} L=Lrecon​+β⋅LKL​+Lperceptual​+LGAN​
其中 L r e c o n \mathcal{L}_{recon} Lrecon​ 为重建 loss(L1 + L2), L p e r c e p t u a l \mathcal{L}_{perceptual} Lperceptual​ 为 LPIPS 感知损失, L G A N \mathcal{L}_{GAN} LGAN​ 为 PatchGAN 判别器。

5.3 视频生成中的时序一致性保持

视频生成区别于图像生成的核心挑战是时序一致性:

技术描述代表方法
时序注意力帧间 token 交互捕获全局时序依赖Sora, VideoPoet
3D U-Net3D 卷积建模局部时序模式Stable Video Diffusion
时序 Layer插入 1D 时间注意力/时间卷积模块AnimateDiff, Video LDM
光流引导利用光流约束帧间运动MoCoGAN-HD
隐空间对齐在 VAE 隐空间约束帧间一致性VideoCrafter
噪声初始化相邻帧噪声有一定相关性(noise offset)Align Your Latents

AnimateDiff 的时序注入方式:

  • 在预训练的文本-图像 Stable Diffusion 中插入 1D 时序注意力模块(Motion Module)
  • Motion Module 在固定空间层权重的情况下,仅在视频数据上学习时序对应关系
  • 推理时,将单张图片作为条件,生成视频帧序列(以噪声 + image condition 为起点)
  • 优势:复用海量文生图预训练知识,只需少量视频数据学习时序一致性
Logo

邀请您加入社区

更多推荐