FVD 把 Fréchet Inception Distance (FID) 的思路从图像搬到视频:换用 3D 卷积网络提特征,在时空特征空间里度量生成视频与真实视频的分布距离。
Unterthiner et al. 于 2018 年提出 FVD(Towards Accurate Generative Models of Video: A New Metric & Challenges),动机是图像指标在视频上会失灵——逐帧算 FID 再取均值,模型可以每一帧都清晰好看,连起来播却在闪烁、抖动、主体形变。分布距离必须建立在同时编码空间与时间的特征上,FVD 由此成为视频生成的标准主指标。
从 FID 到 FVD
计算式与 FID 完全同构:把两组样本的特征各拟合成一个多元高斯,取两者的 Wasserstein-2 距离。
区别只在 从哪来:FID 用 Inception-v3 编码单张图像,FVD 用 3D CNN 编码整段视频片段。数值越小越好。
换掉特征提取器之后,指标才开始对视频独有的三件事有反应——时间一致性(帧间是否连贯,还是逐帧各自漂移)、运动质量(动作是否合物理直觉与自然节奏)、长期依赖(主体身份和场景布局能否跨几十帧保持)。这三点全都不在任何逐帧指标的视野里。
I3D:把 Inception 沿时间轴膨胀
FVD 的默认骨干是 I3D(Inflated 3D ConvNet,Carreira & Zisserman 2017,Kinetics 预训练),这也正是 FVD 与 FID 同源同脉的原因。I3D 的做法是把一个成熟的 2D 分类网络——Inception-v1——整体「膨胀」进 3D:每个 卷积核沿时间维复制 份、变成 ,权重同时除以 以保持响应量级不变,池化核照样加一维。
这一步真正的价值是预训练权重可以直接搬过去。膨胀后的网络在常量视频(同一帧重复 次)上的响应与原 2D 网络逐帧输出等价,于是 ImageNet 上学到的多尺度特征成了 Kinetics 动作识别的初始化,不必从零训一个 3D 网络。FVD 的语义空间和 FID 的语义空间因此共享同一个祖先,只是多长了一根时间轴。
具体实现取 Kinetics-400 预训练 I3D 的 logits 层(400 维)作为特征;原论文比较过多个候选层,logits 层是表现最好的配置之一。3D ResNet-50、C3D 同样能充当骨干,但换骨干等于换掉整个特征空间,算出的数字与主流实现不可比,做横向对比时几乎没人这么做。
FID 与 FVD 对比
| 特性 | FID | FVD |
|---|---|---|
| 评估维度 | 空间 | 空间 + 时间 |
| 特征提取器 | Inception-v3 | 3D CNN(默认 I3D) |
| 输入形式 | 单张图像 | 视频片段 |
| 计算复杂度 | 相对较低 | 较高 |
| 常用基准 | <50 质量较好 | <500 质量较好 |
常见模型 FVD 基准
UCF-101 是被引用最多的战场,同一个数据集上却跑着三套互不通约的协议:从零训练(无条件或 class-conditional)、text-to-video 零样本迁移、以及在 UCF-101 上微调后再测。
| 模型 | 协议 | 分辨率 / 帧数 | FVD ↓ |
|---|---|---|---|
| TGANv2 | 从零训练 | 64×64 / 16 | 1209±28(TATS 表)、3431±19(VDM 表) |
| MoCoGAN-HD | 从零训练 | 64×64 / 16 | 838 |
| DIGAN | 从零训练 | 64×64 / 16 | 577±21 |
| TATS-base | 从零训练(class-cond) | 64×64 / 16 | 332±18 |
| Video Diffusion Models | 从零训练(无条件) | 64×64 / 16 | 295±3 |
| CogVideo (EN) | 零样本 | 480×480 | 701.59 |
| MagicVideo | 零样本 | 未注明 | 655.00 |
| Video LDM | 零样本 | 未注明 | 550.61 |
| Make-A-Video | 零样本 | 256×256 | 367.23 |
| PYoCo | 零样本 | 未注明 | 355.20 |
| Stable Video Diffusion | 零样本 | 未注明 | 242.02 |
| Make-A-Video | UCF-101 微调 | 256×256 | 81.25 |
数字出处:Video Diffusion Models、TATS、Make-A-Video、Stable Video Diffusion。
不同实现与协议会有差异
表里 TGANv2 出现两个相差近三倍的数字,就是最直白的例证:TATS 报 1209±28,VDM 报 3431±19,同一模型、同一分辨率帧数,差别只在训练用了全量数据还是 train split、以及各家 I3D 实现和采样数不同。跨论文抄 FVD 对比几乎一定失真,可信的做法是在自己的 pipeline 里把基线重跑一遍。
早期视频 GAN 的原始论文大多只报 Inception Score(TGAN 15.83、MoCoGAN 12.42),FVD 是后来的工作回头补测的,量级落在数百到数千。视频预测任务的数值尺度则完全是另一个世界:Kinetics-600 上用 5 帧预测 11 帧,Video Diffusion Models 拿到 FVD 16.2±0.34,同表基线 TrIVD-GAN-FP 25.74±0.66、Transframer 25.4、CCVS 55±1。条件信息给得足,特征分布本来就贴得很近,绝对值自然低两个数量级。
Imagen Video 是个反面注脚:论文用 FVD 做过模型规模的内部消融,却没给出 UCF-101 上的绝对值,正式结果只报 CLIP score 与人评——大厂在 text-to-video 上对 FVD 的信任度,其实比排行榜看起来低得多。
局限性
FVD 对样本量极其敏感。UCF-101 训练集只有约 9.5k 段视频,而 Fréchet 距离本身是有偏估计,样本少时系统性偏高。原论文自己的实验只用了 256 段(BAIR)到 1024 段(KTH、SCV),后续工作普遍抬到 2048,并反复强调跨模型比较必须锁同一个 sample size。视频数据集的规模天花板比图像低一到两个量级,这个坑比 FID 那边深得多。
I3D 的语义空间偏自然场景。Kinetics-400 是人类动作分类任务,特征对「人在做什么」高度敏感,对动画、合成渲染、UI 录屏、文字滚动这类内容几乎没有判别力。一旦生成分布挪到预训练域之外,FVD 给出的排序就不再可信——这不是精度问题,是指标失效。
片段长度也框死了它的视野。主流协议是 16 帧、64×64 或 128×128,按 25fps 算不到一秒,只够看出局部抖动,看不出十几秒后的主体漂移和场景遗忘。改帧数、改采样步长、甚至改 resize 的插值方式都会移动数值,所以帧数和分辨率必须和 FVD 一起报出来。
成本上,每段视频都要解码、resize 到 224×224、再跑一遍 3D 卷积前向,比 FID 贵一个量级;而 Fréchet Inception Distance (FID) 的固有缺陷——高斯分布假设、无法检测过拟合、结果依赖预训练网络——FVD 一并继承了。
报数字的最小规范
FVD 单独一个标量没有意义,至少要连同 I3D 实现(或权重来源)、sample size、帧数、分辨率、训练/测试划分一起给。评估视频生成时也别只看 FVD,配上 IS、CLIP score 和小规模人评,才能分清是画质差还是运动崩。