张芷铭的个人博客

FID 和 FVD 是生成模型评估的核心指标,通过特征空间分布距离衡量生成图像和视频与真实数据的相似度。

Fréchet Inception Distance (FID)

基本概念

FID 用于评估 GAN 等生成模型性能,衡量真实数据分布和生成数据分布在特征空间中的距离。值越小表示生成数据质量越高。

理论基础

  • 多元高斯分布假设:Inception 网络提取的特征向量服从多元高斯分布
  • Fréchet 距离:Wasserstein-2 距离计算两个多元正态分布差异
  • 深度特征表示:利用 Inception-v3 提取高层语义特征

计算公式

$$FID = ||\mu_1 - \mu_2||^2 + Tr(\Sigma_1 + \Sigma_2 - 2(\Sigma_1\Sigma_2)^{1/2})$$

代码实现

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
import numpy as np
from scipy.linalg import sqrtm

def calculate_fid(act1, act2):
    mu1, sigma1 = act1.mean(axis=0), np.cov(act1, rowvar=False)
    mu2, sigma2 = act2.mean(axis=0), np.cov(act2, rowvar=False)
    ssdiff = np.sum((mu1 - mu2)**2.0)
    covmean = sqrtm(sigma1.dot(sigma2))
    if np.iscomplexobj(covmean):
        covmean = covmean.real
    fid = ssdiff + np.trace(sigma1 + sigma2 - 2.0 * covmean)
    return fid

优势

特点说明
与人类感知一致基于深度特征而非像素比较
敏感多样性检测模式坍塌问题
全面性同时考虑质量和多样性

应用场景

  • GANs 评估
  • 风格迁移
  • 图像质量评估
  • 跨模态生成

Fréchet Video Distance (FVD)

基本概念

FVD 是 FID 在视频领域的扩展,评估生成视频质量。使用 3D CNN 替代 Inception-v3 提取时空特征。

特殊需求

  • 时间一致性:评估帧间连贯性
  • 运动质量:评估动作自然程度
  • 长期依赖性:评估多帧持续性

特征提取器

  • I3D (Inflated 3D ConvNet)
  • 3D ResNet-50
  • C3D

FID 与 FVD 对比

特性FIDFVD
评估维度空间空间+时间
特征提取器Inception-v33D CNN
输入形式单张图像视频片段
计算复杂度相对较低较高
常用基准<50 质量较好<500 质量较好

局限性

  • 正态分布假设可能不符合实际
  • 计算资源需求高
  • 无法检测过拟合
  • 依赖预训练网络

Comments