项目|纸|幻灯片| COLAB-FID | COLAB-RESIZE |排行榜表
快速开始:计算FID |计算孩子
[新]现在支持使用夹子功能[Kynkäänniemi等,2022]计算FID。有关更多详细信息,请参见此处。
FID计算涉及许多步骤,这些步骤可能会在最终度量标准中产生不一致。如下所示,不同的实现使用不同的低级图像量化和调整大小功能,后者通常会错误地实现。
我们提供一个易于使用的库来解决上述问题,并使不同方法,论文和组之间的FID分数可比。
关于GAN评估中的混蛋调整大小和令人惊讶的微妙
Gaurav Parmar,Richard Zhang,Jun-Yan Zhu
CVPR,2022
CMU和Adobe
如果您发现此存储库对您的研究有用,请引用以下工作。
@inproceedings{parmar2021cleanfid,
title={On Aliased Resizing and Surprising Subtleties in GAN Evaluation},
author={Parmar, Gaurav and Zhang, Richard and Zhu, Jun-Yan},
booktitle={CVPR},
year={2022}
}
混合调整大小操作
调整大小功能的定义是数学的,绝不应该是所使用的库的函数。不幸的是,在常用的库中实现不同。它们通常由流行的库错误地实施。在此处的Google COLAB笔记本中尝试不同的调整大小的实现。
实施之间的不一致会产生评估指标的巨大影响。下表显示,与正确实现的pil-bicubic过滤器相比,与其他相同图像相比,与其他库的FFHQ数据集图像相比,其他库(OpenCV,Pytorch,TensorFlow,openCV)的FFHQ数据集图像具有较大的FID分数(≥6)。来自PIL的其他正确实现的过滤器(Lanczos,Biinear,Box)都会导致相对较小的FID得分(≤0.75)。请注意,由于TF 2.0,新的标志antialias (默认值: False )可以产生接近PIL的结果。但是,它未在现有的TF-FID回购中使用,并默认设置为False 。
JPEG图像压缩
图像压缩可能会对FID产生惊人的影响。图像在感知上是无法区分的,但FID得分很高。图像下的FID得分是在使用相应的JPEG格式和PNG格式保存的所有FFHQ图像之间计算的。
下面,我们研究了JPEG压缩对在FFHQ数据集(左)和LSUN户外教堂数据集(右)训练的stylegan2模型(右)的效果。请注意,LSUN数据集图像是用JPEG压缩(质量75)收集的,而FFHQ图像作为PNG收集。有趣的是,对于LSUN数据集,当生成的图像用JPEG质量87压缩时,获得最佳的FID得分(3.48)。
pip install clean-fid
from cleanfid import fid
score = fid.compute_fid(fdir1, fdir2)
FFHQ )之间的FID from cleanfid import fid
score = fid.compute_fid(fdir1, dataset_name="FFHQ", dataset_res=1024, dataset_split="trainval70k")
from cleanfid import fid
# function that accepts a latent and returns an image in range[0,255]
gen = lambda z: GAN(latent=z, ... , <other_flags>)
score = fid.compute_fid(gen=gen, dataset_name="FFHQ",
dataset_res=256, num_gen=50_000, dataset_split="trainval70k")
要在计算FID [Kynkäänniemiet al,2022]时使用剪辑功能,请指定flag model_name="clip_vit_b_32"
from cleanfid import fid
score = fid.compute_fid(fdir1, fdir2, mode="clean", model_name="clip_vit_b_32")
可以使用与FID相似的接口计算孩子分数。仅针对较小的数据集AFHQ , BreCaHAD和MetFaces数据集统计信息才预先计算。
from cleanfid import fid
score = fid.compute_kid(fdir1, fdir2)
from cleanfid import fid
score = fid.compute_kid(fdir1, dataset_name="brecahad", dataset_res=512, dataset_split="train")
from cleanfid import fid
# function that accepts a latent and returns an image in range[0,255]
gen = lambda z: GAN(latent=z, ... , <other_flags>)
score = fid.compute_kid(gen=gen, dataset_name="brecahad", dataset_res=512, num_gen=50_000, dataset_split="train")
我们为以下常用配置提供了预计统计信息。如果您想为新数据集添加统计信息,请与我们联系。
| 任务 | 数据集 | 解决 | 参考拆分 | #参考图像 | 模式 |
|---|---|---|---|---|---|
| 图像生成 | cifar10 | 32 | train | 50,000 | clean , legacy_tensorflow , legacy_pytorch |
| 图像生成 | cifar10 | 32 | test | 10,000 | clean , legacy_tensorflow , legacy_pytorch |
| 图像生成 | ffhq | 1024,256 | trainval | 50,000 | clean , legacy_tensorflow , legacy_pytorch |
| 图像生成 | ffhq | 1024,256 | trainval70k | 70,000 | clean , legacy_tensorflow , legacy_pytorch |
| 图像生成 | lsun_church | 256 | train | 50,000 | clean , legacy_tensorflow , legacy_pytorch |
| 图像生成 | lsun_church | 256 | trainfull | 126,227 | clean |
| 图像生成 | lsun_horse | 256 | train | 50,000 | clean , legacy_tensorflow , legacy_pytorch |
| 图像生成 | lsun_horse | 256 | trainfull | 2,000,340 | clean |
| 图像生成 | lsun_cat | 256 | train | 50,000 | clean , legacy_tensorflow , legacy_pytorch |
| 图像生成 | lsun_cat | 256 | trainfull | 1,657,264 | clean , legacy_tensorflow , legacy_pytorch |
| 很少有射击 | afhq_cat | 512 | train | 5153 | clean , legacy_tensorflow , legacy_pytorch |
| 很少有射击 | afhq_dog | 512 | train | 4739 | clean , legacy_tensorflow , legacy_pytorch |
| 很少有射击 | afhq_wild | 512 | train | 4738 | clean , legacy_tensorflow , legacy_pytorch |
| 很少有射击 | brecahad | 512 | train | 1944年 | clean , legacy_tensorflow , legacy_pytorch |
| 很少有射击 | metfaces | 1024 | train | 1336 | clean , legacy_tensorflow , legacy_pytorch |
| 图像到图像 | horse2zebra | 256 | test | 140 | clean , legacy_tensorflow , legacy_pytorch |
| 图像到图像 | cat2dog | 256 | test | 500 | clean , legacy_tensorflow , legacy_pytorch |
使用预定的统计信息来使用预先计算的数据集统计信息计算FID分数,请使用相应的选项。例如,要计算生成的256x256 ffhq图像上的清洁-ID分数使用命令:
fid_score = fid.compute_fid(fdir1, dataset_name="ffhq", dataset_res=256, mode="clean", dataset_split="trainval70k")
Dataset_path :存储数据集图像的文件夹
Custom_name :用于统计的名称
生成自定义统计信息(保存到本地缓存)
from cleanfid import fid
fid.make_custom_stats(custom_name, dataset_path, mode="clean")
使用生成的自定义统计信息
from cleanfid import fid
score = fid.compute_fid("folder_fake", dataset_name=custom_name,
mode="clean", dataset_split="custom")
删除自定义统计信息
from cleanfid import fid
fid.remove_custom_stats(custom_name, mode="clean")
检查自定义统计量是否已经存在
from cleanfid import fid
fid.test_stats_exists(custom_name, mode)
我们提供两个旗帜来复制传统FID得分。
mode="legacy_pytorch"
该标志等于使用此处提供的流行的Pytorch FID实现
使用此选项和代码使用Clean-FID之间的区别是〜2E-06
有关如何比较方法,请参见DOC
mode="legacy_tensorflow"
该标志等于使用作者发布的官方实施FID。
使用此选项和代码使用Clean-FID之间的区别是〜2E-05
有关如何比较方法的详细步骤,请参见DOC
python setup.py bdist_wheel
pip install dist/*
我们使用原始论文中使用的相应方法计算FID得分,并使用此处提出的清洁纸。所有值均使用10个评估运行计算。我们提供一个API,以直接从PIP包中查询下表中显示的结果。
如果您想在我们的排行榜中添加新的数字和模型,请随时与我们联系。
test集用作参考分布,并将其与10K生成的图像进行比较。
100%数据(无条件)
| 模型 | 遗产 - 限制 (报道) | 遗产 - 限制 (复制) | 干净的框架 |
|---|---|---|---|
| stylegan2( + ada +调谐)[Karras等,2020] | - † | - † | 8.20±0.10 |
| stylegan2(+ada)[Karras等,2020] | - † | - † | 9.26±0.06 |
| stylegan2(diff-agemment)[Zhao等,2020] [CKPT] | 9.89 | 9.90±0.09 | 10.85±0.10 |
| stylegan2(镜像)[Karras等,2020] [CKPT] | 11.07 | 11.07±0.10 | 12.96±0.07 |
| stylegan2(无流盘)[Karras等,2020] | - † | - † | 14.53±0.13 |
| Autogan(config A)[Gong等,2019] | - † | - † | 21.18±0.12 |
| Autogan(配置B)[Gong等,2019] | - † | - † | 22.46±0.15 |
| Autogan(配置C)[Gong等,2019] | - † | - † | 23.62±0.30 |
†这些方法使用训练集作为参考分布,并将其与50k生成的图像进行比较
20%的数据
| 模型 | 遗产 - 限制 (报道) | 遗产 - 限制 (复制) | 干净的框架 |
|---|---|---|---|
| stylegan2-diff-augment [Zhao等,2020] [CKPT] | 12.15 | 12.12±0.15 | 14.18±0.13 |
| stylegan2 mirror-flips [Karras等,2020] [CKPT] | 23.08 | 23.01±0.19 | 29.49±0.17 |
10%数据
| 模型 | 遗产 - 限制 (报道) | 遗产 - 限制 (复制) | 干净的框架 |
|---|---|---|---|
| stylegan2-diff-augment [Zhao等,2020] [CKPT] | 14.50 | 14.53±0.12 | 16.98±0.18 |
| stylegan2 mirror-flips [Karras等,2020] [CKPT] | 36.02 | 35.94±0.17 | 43.60±0.17 |
test集用作参考分布,并将其与10K生成的图像进行比较。
100%数据
| 模型 | 遗产 - 限制 (报道) | 遗产 - 限制 (复制) | 干净的框架 |
|---|---|---|---|
| stylegan2 mirror-flips [Karras等,2020] [CKPT] | 16.54 | 16.44±0.19 | 18.44±0.24 |
| stylegan2-diff-augment [Zhao等,2020] [CKPT] | 15.22 | 15.15±0.13 | 16.80±0.13 |
20%的数据
| 模型 | 遗产 - 限制 (报道) | 遗产 - 限制 (复制) | 干净的框架 |
|---|---|---|---|
| stylegan2 mirror-flips [Karras等,2020] [CKPT] | 32.30 | 32.26±0.19 | 34.88±0.14 |
| stylegan2-diff-augment [Zhao等,2020] [CKPT] | 16.65 | 16.74±0.10 | 18.49±0.08 |
10%数据
| 模型 | 遗产 - 限制 (报道) | 遗产 - 限制 (复制) | 干净的框架 |
|---|---|---|---|
| stylegan2 mirror-flips [Karras等,2020] [CKPT] | 45.87 | 45.97±0.20 | 46.77±0.19 |
| stylegan2-diff-augment [Zhao等,2020] [CKPT] | 20.75 | 20.69±0.12 | 23.40±0.09 |
所有图像 @ 1024x1024
使用50k生成的图像计算值
| 模型 | 遗产 - 限制 (报道) | 遗产 - 限制 (复制) | 干净的框架 | 参考拆分 |
|---|---|---|---|---|
| stylegan1(config a)[Karras等,2020] | 4.4 | 4.39±0.03 | 4.77±0.03 | trainval |
| stylegan2(config B)[Karras等,2020] | 4.39 | 4.43±0.03 | 4.89±0.03 | trainval |
| stylegan2(config c)[Karras等,2020] | 4.38 | 4.40±0.02 | 4.79±0.02 | trainval |
| stylegan2(config d)[Karras等,2020] | 4.34 | 4.34±0.02 | 4.78±0.03 | trainval |
| stylegan2(config e)[Karras等,2020] | 3.31 | 3.33±0.02 | 3.79±0.02 | trainval |
| stylegan2(config f)[Karras等,2020] [CKPT] | 2.84 | 2.83 +-0.03 | 3.06 +-0.02 | trainval |
| stylegan2 [Karras等,2020] [CKPT] | N/A。 | 2.76±0.03 | 2.98±0.03 | trainval70k |
140k-图像 @ 256x256(带有水平翻转的整个训练集) trainval70k集中的70K图像用作参考图像,并与50k生成的图像相比。
| 模型 | 遗产 - 限制 (报道) | 遗产 - 限制 (复制) | 干净的框架 |
|---|---|---|---|
| ZCR [Zhao等,2020]† | 3.45±0.19 | 3.29±0.01 | 3.40±0.01 |
| stylegan2 [Karras等,2020]† | 3.66±0.10 | 3.57±0.03 | 3.73±0.03 |
| Pa-Gan [Zhang and Khoreva等,2019]† | 3.78±0.06 | 3.67±0.03 | 3.81±0.03 |
| stylegan2-ada [Karras等,2020]† | 3.88±0.13 | 3.84±0.02 | 3.93±0.02 |
| 辅助旋转[Chen等,2019]† | 4.16±0.05 | 4.10±0.02 | 4.29±0.03 |
| 自适应辍学[Karras等,2020]† | 4.16±0.05 | 4.09±0.02 | 4.20±0.02 |
| 光谱规范[Miyato等,2018]† | 4.60±0.19 | 4.43±0.02 | 4.65±0.02 |
| WGAN-GP [Gulrajani等,2017]† | 6.54±0.37 | 6.19±0.03 | 6.62±0.03 |
†[Karras等,2020]报道
30k-图像 @ 256x256(几射发电)
来自trainval70k集的70K图像用作参考图像,并与50K生成的图像进行了比较。
| 模型 | 遗产 - 限制 (报道) | 遗产 - 限制 (复制) | 干净的框架 |
|---|---|---|---|
| stylegan2 [Karras等,2020] [CKPT] | 6.16 | 6.14±0.064 | 6.49±0.068 |
| Diffaigment-Stylegan2 [Zhao等,2020] [CKPT] | 5.05 | 5.07±0.030 | 5.18±0.032 |
10k-图像 @ 256x256(几射发电)
来自trainval70k集的70K图像用作参考图像,并与50K生成的图像进行了比较。
| 模型 | 遗产 - 限制 (报道) | 遗产 - 限制 (复制) | 干净的框架 |
|---|---|---|---|
| stylegan2 [Karras等,2020] [CKPT] | 14.75 | 14.88±0.070 | 16.04±0.078 |
| Diffaigment-Stylegan2 [Zhao等,2020] [CKPT] | 7.86 | 7.82±0.045 | 8.12±0.044 |
5K-图像 @ 256x256(几射发电)
来自trainval70k集的70K图像用作参考图像,并与50K生成的图像进行了比较。
| 模型 | 遗产 - 限制 (报道) | 遗产 - 限制 (复制) | 干净的框架 |
|---|---|---|---|
| stylegan2 [Karras等,2020] [CKPT] | 26.60 | 26.64±0.086 | 28.17±0.090 |
| Diffaigment-Stylegan2 [Zhao等,2020] [CKPT] | 10.45 | 10.45±0.047 | 10.99±0.050 |
1K-图像 @ 256x256(几射发电)
来自trainval70k集的70K图像用作参考图像,并与50K生成的图像进行了比较。
| 模型 | 遗产 - 限制 (报道) | 遗产 - 限制 (复制) | 干净的框架 |
|---|---|---|---|
| stylegan2 [Karras等,2020] [CKPT] | 62.16 | 62.14±0.108 | 64.17±0.113 |
| Diffaigment-Stylegan2 [Zhao等,2020] [CKPT] | 25.66 | 25.60±0.071 | 27.26±0.077 |
100%数据
来自train集的50k图像用作参考图像,并与50k生成的图像进行了比较。
| 类别 | 模型 | 遗产 - 限制 (报道) | 遗产 - 限制 (复制) | 干净的框架 |
|---|---|---|---|---|
| 户外教堂 | stylegan2 [Karras等,2020] [CKPT] | 3.86 | 3.87±0.029 | 4.08±0.028 |
| 马匹 | stylegan2 [Karras等,2020] [CKPT] | 3.43 | 3.41±0.021 | 3.62±0.023 |
| 猫 | stylegan2 [Karras等,2020] [CKPT] | 6.93 | 7.02±0.039 | 7.47±0.035 |
LSUN CAT -30K图像(几射发电)
所有1,657,264张来自trainfull拆分的图像均用作参考图像,并与50K生成的图像进行了比较。
| 模型 | 遗产 - 限制 (报道) | 遗产 - 限制 (复制) | 干净的框架 |
|---|---|---|---|
| stylegan2 mirror-flips [Karras等,2020] [CKPT] | 10.12 | 10.15±0.04 | 10.87±0.04 |
| stylegan2-diff-augment [Zhao等,2020] [CKPT] | 9.68 | 9.70±0.07 | 10.25±0.07 |
LSUN CAT- 10K图像(几射发电)
所有1,657,264张来自trainfull拆分的图像均用作参考图像,并与50K生成的图像进行了比较。
| 模型 | 遗产 - 限制 (报道) | 遗产 - 限制 (复制) | 干净的框架 |
|---|---|---|---|
| stylegan2 mirror-flips [Karras等,2020] [CKPT] | 17.93 | 17.98±0.09 | 18.71±0.09 |
| stylegan2-diff-augment [Zhao等,2020] [CKPT] | 12.07 | 12.04±0.08 | 12.53±0.08 |
LSUN CAT -5K图像(很少射击生成)
所有1,657,264张来自trainfull拆分的图像均用作参考图像,并与50K生成的图像进行了比较。
| 模型 | 遗产 - 限制 (报道) | 遗产 - 限制 (复制) | 干净的框架 |
|---|---|---|---|
| stylegan2 mirror-flips [Karras等,2020] [CKPT] | 34.69 | 34.66±0.12 | 35.85±0.12 |
| stylegan2-diff-augment [Zhao等,2020] [CKPT] | 16.11 | 16.11±0.09 | 16.79±0.09 |
LSUN CAT -1K图像(几射发电)
所有1,657,264张来自trainfull拆分的图像均用作参考图像,并与50K生成的图像进行了比较。
| 模型 | 遗产 - 限制 (报道) | 遗产 - 限制 (复制) | 干净的框架 |
|---|---|---|---|
| stylegan2 mirror-flips [Karras等,2020] [CKPT] | 182.85 | 182.80±0.21 | 185.86±0.21 |
| stylegan2-diff-augment [Zhao等,2020] [CKPT] | 42.26 | 42.07±0.16 | 43.12±0.16 |
AFHQ狗
所有4739个来自train拆分的图像均用作参考图像,并与50k生成的图像进行了比较。
| 模型 | 遗产 - 限制 (报道) | 遗产 - 限制 (复制) | 干净的框架 |
|---|---|---|---|
| stylegan2 [Karras等,2020] [CKPT] | 19.37 | 19.34±0.08 | 20.10±0.08 |
| stylegan2-ada [Karras等,2020] [CKPT] | 7.40 | 7.41±0.02 | 7.61±0.02 |
AFHQ野外
与50k生成的图像相比,将所有4738张train用作参考图像。
| 模型 | 遗产 - 限制 (报道) | 遗产 - 限制 (复制) | 干净的框架 |
|---|---|---|---|
| stylegan2 [Karras等,2020] [CKPT] | 3.48 | 3.55±0.03 | 3.66±0.02 |
| stylegan2-ada [Karras等,2020] [CKPT] | 3.05 | 3.01±0.02 | 3.03±0.02 |
所有1944年来自train拆分的图像均用作参考图像,并将其与50k生成的图像进行比较。
| 模型 | 遗产 fid (报道) | 遗产 fid (复制) | 干净的框架 | 遗产 孩子 (报道) 10^3 | 遗产 孩子 (复制) 10^3 | 干净的 孩子 10^3 |
|---|---|---|---|---|---|---|
| stylegan2 [Karras等,2020] [CKPT] | 97.72 | 97.46±0.17 | 98.35±0.17 | 89.76 | 89.90±0.31 | 92.51±0.32 |
| stylegan2-ada [Karras等,2020] [CKPT] | 15.71 | 15.70±0.06 | 15.63±0.06 | 2.88 | 2.93±0.08 | 3.08±0.08 |
所有1336张来自train拆分的图像均用作参考图像,并将其与50k生成的图像进行比较。
| 模型 | 遗产 fid (报道) | 遗产 fid (复制) | 干净的框架 | 遗产 孩子 (报道) 10^3 | 遗产 孩子 (复制) 10^3 | 干净的 孩子 10^3 |
|---|---|---|---|---|---|---|
| stylegan2 [Karras等,2020] [CKPT] | 57.26 | 57.36±0.10 | 65.74±0.11 | 35.66 | 35.69±0.16 | 40.90±0.14 |
| stylegan2-ada [Karras等,2020] [CKPT] | 18.22 | 18.18±0.03 | 19.60±0.03 | 2.41 | 2.38±0.05 | 2.86±0.04 |
所有140张来自test拆分的图像均用作参考图像,并与120个翻译图像相比。
| 模型 | 遗产 - 限制 (报道) | 遗产 - 限制 (复制) | 干净的框架 |
|---|---|---|---|
| 剪切[Park等,2020] | 45.5 | 45.51 | 43.71 |
| 距离[Benaim和Wolf等,2017] [Park等,2020]报道 | 72.0 | 71.97 | 71.01 |
| fastcut [Park et al,2020] | 73.4 | 73.38 | 72.53 |
| 自行车[Zhu等,2017] [Park等,2020]报道 | 77.2 | 77.20 | 75.17 |
| [Park等,2020]报道[Benaim and Wolf等,2017] Selfdistance [Benaim and Wolf等,2017] | 80.8 | 80.78 | 79.28 |
| GCGAN [FU等,2019]由[Park等,2020]报道 | 86.7 | 85.86 | 83.65 |
| Munit [Huang等,2018]由[Park等,2020]报道 | 133.8 | - † | 120.48 |
| Drit [Lee等,2017]由[Park等,2020]报道 | 140.0 | - † | 99.56 |
†[Park等,2020]使用.jpeg压缩对这些方法的翻译图像进行了彻底比较。我们使用相同的原始方法对这两种方法进行重新训练,并生成图像作为.png进行公平比较。
所有来自test拆分的500张图像均用作参考图像,并与500个翻译图像相比。
| 模型 | 遗产 - 限制 (报道) | 遗产 - 限制 (复制) | 干净的框架 |
|---|---|---|---|
| 剪切[Park等,2020] | 76.2 | 76.21 | 77.58 |
| fastcut [Park et al,2020] | 94.0 | 93.95 | 95.37 |
| GCGAN [FU等,2019]由[Park等,2020]报道 | 96.6 | 96.61 | 96.49 |
| Munit [Huang等,2018]由[Park等,2020]报道 | 104.4 | - † | 123.73 |
| Drit [Lee等,2017]由[Park等,2020]报道 | 123.4 | - † | 127.21 |
| [Park等,2020]报道[Benaim and Wolf等,2017] Selfdistance [Benaim and Wolf等,2017] | 144.4 | 144.42 | 147.23 |
| 距离[Benaim和Wolf等,2017] [Park等,2020]报道 | 155.3 | 155.34 | 158.39 |
†[Park等,2020]使用.jpeg压缩对这些方法的翻译图像进行了彻底比较。我们使用相同的原始方法对这两种方法进行重新训练,并生成图像作为.png进行公平比较。
火炬忠诚度:Pytorch中生成模型的高保真性能指标。
TTUR:培训gan的两个时间尺度更新规则。
LPIP:感知相似性度量和数据集。
该存储库中的所有材料均根据MIT许可提供。
Inception_pytorch.py源自Maximilian Seitzer提供的FID的Pytorch实现。这些文件最初是在Apache 2.0许可下共享的。
Inception-2015-12-05.PT是Christian Szegedy,Vincent Vanhoucke,Sergey Ioffe,Jonathon Shlens和Zbigniew Wojna的预先训练Inception-V3网络的火炬模型。该网络最初是在Tensorflow模型存储库上的Apache 2.0许可下共享的。 Tero Karras和Miika Aittala和Janne Hellsten,Samuli Laine和Jaakko Lehtinen和Timo Aila提供了ToRECHScript包装纸,该包装纸是由NVIDIA源代码许可证发布的。