Fréchet Inception Distance (FID)
Erfahre, wie die Fréchet Inception Distance (FID) die Qualität, Genauigkeit und Vielfalt von generativen KI-Bildern bewertet – und wie du Werte berechnest und interpretierst.
Die Fréchet Inception Distance (FID) ist eine Metrik zum Vergleichen von Bildern, die von einem generativen Modell erzeugt wurden, mit einem Referenzsatz realer Bilder. Sie konvertiert beide Sätze in gelernte visuelle Merkmale, fasst jede Merkmalsverteilung zusammen und misst den Abstand zwischen ihnen. Ein niedrigerer FID-Wert zeigt im Allgemeinen an, dass generierte Bilder realen Bildern sowohl in der visuellen Qualität als auch in der Vielfalt ähnlicher sind, während ein höherer FID-Wert auf Artefakte, fehlende Variationen oder eine Abweichung im Inhalt hinweist.
Wie FID funktioniert#
FID bewertet Bildersätze anstelle einzelner Bildpaare. Dies macht sie nützlich zur Bewertung von generative AI-Systemen wie generative adversarial networks und diffusion models.
Die Berechnung folgt vier Hauptschritten:
- Reale und generierte Bilder durchlaufen einen Inception v3 feature extractor, der typischerweise auf ImageNet vorab trainiert wurde.
- Das Netzwerk konvertiert jedes Bild in ein embedding, eine numerische Darstellung seiner übergeordneten visuellen Merkmale.
- FID schätzt den Mittelwert und die covariance matrix der realen und generierten Merkmalsmengen. Der Mittelwert repräsentiert deren Zentren, während die Kovarianz beschreibt, wie Merkmale gemeinsam variieren.
- Sie kombiniert den quadratischen Abstand zwischen den Mittelwerten mit der Differenz zwischen den Kovarianzmatrizen. Diese Berechnung beinhaltet eine matrix square root.
Der resultierende FID-Score ist nicht negativ. Identische Merkmalsverteilungen würden im idealisierten Grenzwert null ergeben, obwohl endliche Stichproben und numerische Effekte bedeuten, dass selbst zwei reale Bilduntergruppen einen Score ungleich null erzeugen können.
Interpretation eines FID-Scores#
Niedriger ist besser, aber es gibt keinen universellen Schwellenwert für einen „guten“ FID-Score. Die Interpretation hängt vom Datensatz, der Bildauflösung, der Stichprobenanzahl, der Vorverarbeitungspipeline und dem Merkmals extraktor ab. Scores sollten nur verglichen werden, wenn diese Bedingungen konsistent sind.
FID reagiert auf zwei wichtige Aspekte generierter Bilder:
- Treue: Verschwommene Bilder, unrealistische Texturen, verzerrte Objekte und andere visuelle Artefakte können generierte Merkmale von der realen Verteilung entfernen.
- Vielfalt: Monotone Ausgaben oder model collapse reduzieren die Merkmalsvariation und verändern die Kovarianz der generierten Verteilung.
FID erklärt jedoch nicht warum sich ein Score geändert hat. Sie übersieht möglicherweise auch seltene, aber wichtige Fehlerfälle, auswendig gelernte Bilder, eine inkorrekte Prompt-Ausrichtung oder dataset bias. Teams sollten FID daher mit visueller Inspektion, anwendungsspezifischen Tests und Untergruppenanalysen kombinieren.
FID im Vergleich zu verwandten Metriken#
FID wird häufig mit anderen Metriken für die Bildgenerierung und Computer Vision verwechselt:
- Inception Score: Bewertet generierte Bilder, ohne sie direkt mit realen Referenzbildern zu vergleichen. FID ist im Allgemeinen aussagekräftiger hinsichtlich der Verteilungsabweichung, da sie sowohl reale als auch generierte Stichproben verwendet.
- Kernel Inception Distance: Vergleicht ebenfalls Merkmalsverteilungen, verwendet jedoch einen kernelbasierten Schätzer. Dies kann nützlich sein, wenn eine stichprobeneffiziente oder unvoreingenommene Schätzung wichtig ist.
- Mean average precision: Misst, ob ein Objektdetektor mit Labels versehene Objekte korrekt klassifiziert und lokalisiert. FID bewertet generierte Bildverteilungen und nicht die Erkennungsgenauigkeit.
- Perzeptuelle Ähnlichkeit: Vergleicht normalerweise entsprechende Bildpaare. FID bewertet stattdessen, ob zwei Sammlungen ähnliche Gesamtstatistiken aufweisen.
Anwendungen in der Praxis#
Eine praktische Anwendung ist die Bewertung von synthetic data für die Fertigungsinspektion. Ein Team generiert möglicherweise Bilder von Kratzern, Rissen oder fehlenden Komponenten und berechnet FID anhand von zurückgehaltenen fotografischen Aufnahmen einer echten Produktionslinie. Ein hoher Score kann aufdecken, dass synthetische Beleuchtungen, Texturen oder Defektformen den Einsatzbedingungen nicht ähneln. Nach der Verbesserung des Generators sollte das Team dennoch seinen Detektor trainieren und den Ultralytics validation mode verwenden, um die aufgabenspezifische Leistung zu verifizieren.
Ein zweites Beispiel ist die simulierte Generierung von Straßenszenen. Ingenieure erstellen möglicherweise Nacht-, Regen- oder Nebelbilder, um die Trainingsdaten für das autonome Fahren zu erweitern. FID kann jede synthetische Bedingung mit realen Frames aus dieser Umgebung vergleichen. Ein großer Abstand warnt vor einer Domänenabweichung, die dazu führen könnte, dass ein nachgeschalteter Detektor unrealistische Hintergründe oder Wetterartefakte anstelle von übertragbaren Straßenmerkmalen lernt.
Ultralytics Platform dataset management kann Teams dabei helfen, reale und synthetische Bildaufteilungen vor dem Training und der Bereitstellung zu organisieren, zu inspizieren und zu versionieren.
Berechnung von FID in Python#
Die dokumentierte TorchMetrics FID implementation akzeptiert Batches von realen und generierten Bildern:
import torch
from torchmetrics.image.fid import FrechetInceptionDistance
generator = torch.Generator().manual_seed(7)
real_images = torch.randint(0, 256, (64, 3, 64, 64), dtype=torch.uint8, generator=generator)
generated_images = torch.randint(32, 224, (64, 3, 64, 64), dtype=torch.uint8, generator=generator)
fid = FrechetInceptionDistance(feature=64)
fid.set_dtype(torch.float64)
fid.update(real_images, real=True)
fid.update(generated_images, real=False)
print(f"FID: {fid.compute().item():.3f}")Dieses kleine Beispiel verwendet 64-dimensionale Merkmale für eine schnelle Demonstration. Standard-Benchmark-Vergleiche verwenden typischerweise die standardmäßige 2.048-dimensionale Darstellung und viel mehr Bilder. Für eine zuverlässige Bewertung sollten Vorverarbeitung und Stichprobenanzahl konstant gehalten, die genaue Konfiguration berichtet, Messungen nach Möglichkeit wiederholt und FID durch den Ultralytics model evaluation workflow ergänzt werden, wenn generierte Daten eine nachgeschaltete Vision-Aufgabe unterstützen.









