Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
Torna al glossario di Ultralytics

Fréchet Inception Distance (FID)

La Fréchet Inception Distance (FID) valuta le immagini generate confrontando le statistiche delle caratteristiche Inception con quelle di foto reali. Come si calcola e si confronta.

La distanza di Fréchet Inception (FID) è una metrica che valuta un modello generativo di immagini confrontando le statistiche delle immagini generate con quelle delle immagini reali. Entrambi gli insiemi vengono elaborati da una rete Inception v3 preaddestrata; le caratteristiche di ciascun insieme sono sintetizzate come una distribuzione gaussiana multivariata con una media e una covarianza, e FID è la distanza di Fréchet tra le due gaussiane. Un valore più basso è migliore; un punteggio pari a zero significa che gli insiemi di caratteristiche hanno medie e covarianze identiche. Martin Heusel e i colleghi dell’Università Johannes Kepler di Linz introdussero FID nel 2017 nell’articolo GANs Trained by a Two Time-Scale Update Rule Converge to a Local Nash Equilibrium; la metrica sostituì rapidamente l’Inception Score come riferimento standard per le reti generative avversarie (GAN) e, in seguito, per i modelli di diffusione.

Come si calcola la FID#

  1. Genera un ampio campione di immagini, convenzionalmente 50,000, e raccogli un set di riferimento di immagini reali, di solito il set di addestramento.
  2. Ridimensiona ogni immagine a 299 x 299 pixel e passala attraverso Inception v3, una rete neurale convoluzionale addestrata per la classificazione delle immagini su ImageNet; conserva come embedding dell’immagine l’output a 2.048 dimensioni del suo ultimo livello di pooling.
  3. Calcola il vettore medio e la matrice di covarianza degli embedding reali e di quelli generati.
  4. Combinali: FID = (distanza al quadrato tra le due medie) + traccia(C_real + C_gen - 2 x sqrt(C_real x C_gen)), dove sqrt è la radice quadrata della matrice.

Il primo termine cresce quando le immagini generate differiscono in media da quelle reali, per esempio per una dominante cromatica o una distribuzione errata dei contenuti. Il secondo cresce quando la varietà non è corretta, come nel collasso delle modalità, un problema delle GAN in cui il generatore produce solo pochi tipi di risultati. Un unico numero riflette quindi sia la fedeltà sia la diversità, motivo per cui FID è diventato il punteggio predefinito per i sistemi text-to-image come Stable Diffusion.

Lo stesso calcolo con NumPy, su vettori di caratteristiche simulati a 64 dimensioni:

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}")

Lo script stampa una FID di 8.78. La media spostata contribuisce per circa 5.8 e la dispersione più ristretta per circa 2.6; il mezzo punto rimanente deriva dalla stima delle statistiche su un campione finito, che aumenta sempre la FID. Nelle valutazioni reali, librerie come TorchMetrics FID calcolano le caratteristiche usando i pesi originali di Inception TensorFlow rilasciati insieme alla metrica. Inception v3 di ImageNet addestrata con Torchvision usa pesi diversi, quindi i suoi punteggi non sono confrontabili con i risultati pubblicati.

Interpretare e confrontare i punteggi FID#

I valori FID sono confrontabili soltanto a parità di condizioni: stesso insieme di riferimento, risoluzione delle immagini, numero di campioni e preprocessing. Ridimensionare le immagini con una libreria diversa o salvarle in JPEG può modificare il punteggio di diversi punti; è un problema che ha motivato l’implementazione Clean-FID. Poiché campioni piccoli fanno aumentare il punteggio, gli autori originali raccomandano almeno 10.000 immagini; un punteggio calcolato su 5.000 campioni non è confrontabile con uno basato su 50.000.

Per avere un riferimento, StyleGAN2 ha raggiunto un FID di 2.84 su immagini di volti da 1024 x 1024 del dataset FFHQ; nella generazione text-to-image zero-shot su 30.000 didascalie MS-COCO, Imagen di Google ha ottenuto 7.27 contro 10.39 di DALL-E 2.

Altre metriche per immagini generative#

  • Inception Score (IS): Valuta soltanto le immagini generate, in base alla confidenza e alla varietà con cui Inception le classifica. Non considera mai dati reali, quindi non può rilevare un modello che genera immagini nitide ma del tipo sbagliato.
  • Distanza di Inception kernel (KID): Confronta le stesse caratteristiche Inception con uno stimatore kernel non distorto, che la rende più affidabile con pochi campioni.
  • Punteggio CLIP: Misura quanto un’immagine corrisponde al prompt testuale, aspetto che FID non rileva; perciò i modelli text-to-image riportano di solito entrambi.
  • Precisione e richiamo per i modelli generativi: Suddividono il singolo valore FID in fedeltà, la quota di immagini generate che sembrano reali, e copertura, la quota di varietà reale riprodotta dal modello.
  • FD-DINOv2: Calcola la stessa distanza di Fréchet sulle caratteristiche di DINOv2, un transformer di visione auto-supervisionato. George Stein e i colleghi lo proposero nel 2023, dopo che un ampio studio condotto con valutazioni umane aveva rilevato che FID non rifletteva il realismo attribuito dalle persone alle immagini dei modelli di diffusione.

I modelli video applicano la stessa idea con la distanza di Fréchet per i video, mentre suite come VBench scompongono la qualità video in dimensioni distinte anziché usare un’unica distanza.

FID per i dati sintetici di addestramento#

FID serve anche a selezionare i dati sintetici prima di usarli per addestrare un rilevatore. Valutare le immagini generate di scene rare, come la guida notturna per la visione automobilistica o specifici difetti di prodotto per il rilevamento dei difetti, rispetto a foto reali della fotocamera di distribuzione rivela un divario di dominio prima di investire tempo nell’addestramento. La verifica finale riguarda l’accuratezza a valle: addestra Ultralytics YOLO26 con e senza le immagini sintetiche e confronta la precisione media (mAP) sulle stesse immagini reali tenute da parte, in modalità di convalida.

Esplora le soluzioni

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini aeree e riprese da drone in informazioni utili in tempo reale per agricoltura, acquacoltura, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Applica la visione artificiale nel settore aerospaziale con Ultralytics YOLO per l'ispezione degli aeromobili, il rilevamento di FOD sulle piste, le operazioni di terra aeroportuali e il rilevamento di difetti nei materiali compositi.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning