Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

Fréchet Inception Distance (FID)

Fréchet Inception Distance(FID)は、生成画像のInception特徴量の統計を実写画像と比較して評価します。算出方法と比較方法を解説します。

フレシェ・インセプション距離(FID)は、生成画像の統計量と実画像の統計量を比較して、画像生成モデルを評価する指標です。両方の画像セットを学習済みInception v3ネットワークに通し、それぞれの特徴量を平均と共分散を持つ多変量ガウス分布として要約します。FIDは2つのガウス分布間のフレシェ距離です。値は低いほど良く、スコアが0の場合は両方の特徴量セットの平均と共分散が一致しています。ヨハネス・ケプラー大学リンツ校のMartin Heusel氏らは、2017年の論文GANs Trained by a Two Time-Scale Update Rule Converge to a Local Nash EquilibriumでFIDを紹介しました。FIDはすぐに、敵対的生成ネットワーク(GAN)、そして後には拡散モデルの標準指標としてInception Scoreに取って代わりました。

FIDの計算方法#

  1. 一般に50,000枚の大量の画像を生成し、通常は学習セットから実画像の参照セットを用意します。
  2. すべての画像を299 x 299ピクセルにリサイズし、画像分類用にImageNetで学習したInception v3、つまり畳み込みニューラルネットワークに通します。最後のプーリング層から得られる2,048次元の出力を、その画像の埋め込みとして使います。
  3. 実画像の埋め込みと生成画像の埋め込みについて、それぞれ平均ベクトルと共分散行列を計算します。
  4. 次のように組み合わせます。FID = (2つの平均値間の二乗距離) + trace(C_real + C_gen - 2 x sqrt(C_real x C_gen)。ここでsqrtは行列平方根です。

生成画像と実画像の平均的な違いが大きいほど、第1項の値が大きくなります。たとえば、色かぶりやコンテンツ構成の誤りが該当します。第2項は、モード崩壊のように多様性が損なわれると大きくなります。モード崩壊は、GANの生成器がわずかな種類の出力しか生成しなくなる現象です。1つの値で忠実度と多様性の両方を評価できるため、FIDはStable Diffusionなどのテキストから画像を生成するシステムで標準的なスコアになりました。

シミュレーションした64次元の特徴ベクトルを使った、NumPyでの同じ計算です。

import numpy as np

rng = np.random.default_rng(0)

# Simulated 64-D feature vectors for 5,000 real and 5,000 generated images
real = rng.normal(0.0, 1.0, size=(5000, 64))
generated = rng.normal(0.3, 0.8, size=(5000, 64))  # shifted mean, less variety

# Summarize each set as a Gaussian: a mean vector and a covariance matrix
mu_r, mu_g = real.mean(axis=0), generated.mean(axis=0)
cov_r, cov_g = np.cov(real, rowvar=False), np.cov(generated, rowvar=False)

# Trace of the matrix square root of cov_r @ cov_g, via its eigenvalues
tr_covmean = np.sqrt(np.linalg.eigvals(cov_r @ cov_g)).real.sum()

# FID = squared distance between means + covariance mismatch
fid = ((mu_r - mu_g) ** 2).sum() + np.trace(cov_r) + np.trace(cov_g) - 2 * tr_covmean
print(f"FID: {fid:.2f}")

このスクリプトはFID 8.78を出力します。平均値のシフトが約5.8、広がりの縮小が約2.6を占めます。残りの約0.5は有限のサンプルから統計量を推定するために生じ、FIDを常に押し上げます。実際の評価では、TorchMetrics FIDなどのライブラリが、この指標とともに公開されたオリジナルのTensorFlow Inception重みを使って特徴量を計算します。TorchvisionのImageNet学習済みInception v3は異なる重みを使うため、そのスコアを公開済みの結果と比較することはできません。

FIDスコアの読み取りと比較#

FID値を比較できるのは、参照データセット、画像解像度、サンプル数、前処理がすべて同一の場合に限られます。異なるライブラリで画像をリサイズしたり、JPEGとして保存したりすると、スコアが数ポイント変わることがあります。この問題を受けてClean-FIDが実装されました。少数のサンプルではスコアが高くなるため、原著者は少なくとも10,000枚の画像を推奨しています。5,000サンプルで計算したスコアを、50,000サンプルのスコアと比較することはできません。

参考として、StyleGAN2はFFHQデータセットの1024 x 1024顔画像でFID 2.84を達成しました。MS-COCOのキャプション30,000件を使ったゼロショットのテキストから画像を生成するタスクでは、GoogleのImagenのスコアは7.27で、DALL-E 2の10.39を下回りました。

その他の生成画像指標#

  • Inception Score(IS): 生成画像のみを対象に、Inceptionがどれほど高い確信度で、かつ多様に分類するかを評価します。実データを参照しないため、誤った種類の鮮明な画像を生成するモデルを検出できません。
  • カーネルInception距離(KID): 同じInception特徴量を、不偏カーネル推定量で比較します。そのため、少数のサンプルでもより信頼性の高い評価ができます。
  • CLIPスコア: 画像がテキストプロンプトとどの程度一致するかを測定します。FIDではこの評価ができないため、テキストから画像を生成するモデルでは通常、両方の指標を報告します。
  • 生成モデルの適合率と再現率: FIDの単一スコアを、生成画像のうち実画像らしく見える割合を表す忠実度と、モデルが再現する実画像の多様性の割合を表す網羅性に分けます。
  • FD-DINOv2: 自己教師ありのビジョントランスフォーマーであるDINOv2の特徴量に対し、同じフレシェ距離を計算します。George Stein氏らは2023年にこの指標を提案しました。それに先立つ大規模な人間評価では、FIDが拡散モデルの画像に対する人々のリアルさの評価を反映できないことが判明していました。

動画モデルでもフレシェ動画距離を使って同じ考え方を適用します。VBenchなどの評価スイートは、単一の距離ではなく、動画品質を個別の評価軸に分けて測定します。

合成学習データのFID#

FIDは、検出器の学習に使う前の合成データのスクリーニングにも利用できます。自動車向けビジョンで使う夜間運転や、欠陥検出で扱う特定の製品不良など、まれなシーンの生成画像をデプロイ先のカメラで撮影した実画像と比較すれば、学習に時間をかける前にドメインギャップを検出できます。最終確認では下流の精度を評価します。Ultralytics YOLO26を合成画像あり・なしの両方で学習し、検証モードで同じ実画像のホールドアウトセットに対する平均適合率(mAP)を比較します。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう