Fréchet Inception Distance (FID)
Aprende como a Distância Fréchet Inception (FID) avalia a qualidade, fidelidade e diversidade de imagens de IA generativa, e como calcular e interpretar as pontuações.
Fréchet Inception Distance (FID) é uma métrica para comparar imagens produzidas por um modelo gerador com um conjunto de referência de imagens reais. A métrica converte ambos os conjuntos em recursos visuais aprendidos, resume a distribuição de cada recurso e mede a distância entre eles. Um FID mais baixo geralmente indica que as imagens geradas são mais semelhantes às imagens reais tanto na qualidade visual quanto na diversidade, enquanto um FID mais alto sugere artefatos, falta de variação ou incompatibilidade no conteúdo.
Como o FID Funciona#
O FID avalia conjuntos de imagens em vez de pares de imagens individuais. Isso o torna útil para avaliar sistemas de generative AI como generative adversarial networks e diffusion models.
O cálculo segue quatro etapas principais:
- Imagens reais e geradas passam por um Inception v3 feature extractor, tipicamente pré-treinado no ImageNet.
- A rede converte cada imagem em um embedding, uma representação numérica de suas características visuais de nível superior.
- O FID estima a média e a covariance matrix dos conjuntos de recursos reais e gerados. A média representa seus centros, enquanto a covariância descreve como os recursos variam juntos.
- A métrica combina a distância quadrada entre as médias com a diferença entre as matrizes de covariância. Esse cálculo inclui uma matrix square root.
A pontuação FID resultante não é negativa. Distribuições de recursos idênticas produziriam zero no limite idealizado, embora amostras finitas e efeitos numéricos signifiquem que até mesmo dois subconjuntos de imagens reais podem produzir uma pontuação diferente de zero.
Interpretando uma Pontuação FID#
Quanto menor, melhor, mas não há um limite universal para uma pontuação FID "boa". A interpretação depende do conjunto de dados, da resolução da imagem, da contagem de amostras, do pipeline de pré-processamento e do extrator de recursos. As pontuações só devem ser comparadas quando essas condições forem consistentes.
O FID responde a dois aspectos importantes de imagens geradas:
- Fidelidade: Imagens borradas, texturas irreais, objetos distorcidos e outros artefatos visuais podem afastar os recursos gerados da distribuição real.
- Diversidade: Saídas repetitivas ou o model collapse reduzem a variação de recursos, alterando a covariância da distribuição gerada.
No entanto, o FID não explica por que uma pontuação mudou. A métrica também pode ignorar casos de falha raros, mas importantes, imagens memorizadas, alinhamento incorreto de prompts ou dataset bias. Portanto, as equipes devem combinar o FID com inspeção visual, testes específicos para a aplicação e análise de subgrupos.
FID vs Métricas Relacionadas#
O FID é frequentemente confundido com outras métricas de geração de imagem e visão computacional:
- Inception Score: Avalia imagens geradas sem compará-las diretamente com imagens de referência reais. O FID geralmente é mais informativo sobre a incompatibilidade de distribuição porque usa amostras reais e geradas.
- Kernel Inception Distance: Também compara distribuições de recursos, mas usa um estimador baseado em kernel. Pode ser útil quando a eficiência de amostra ou a estimativa não viesse a calhar for importante.
- Mean average precision: Mede se um detector de objetos classifica e localiza corretamente objetos rotulados. O FID avalia distribuições de imagens geradas, não a precisão de detecção.
- Similaridade perceptual: Geralmente compara pares de imagens correspondentes. O FID, em vez disso, avalia se duas coleções possuem estatísticas gerais semelhantes.
Aplicações no mundo real#
Uma aplicação prática é avaliar synthetic data para inspeção de fabricação. Uma equipe pode gerar imagens de arranhões, trincas ou componentes faltando e calcular o FID em relação a fotografias mantidas em reserva de uma linha de produção real. Uma pontuação alta pode revelar que a iluminação sintética, as texturas ou as formas de defeitos não se parecem com as condições de implantação. Após melhorar o gerador, a equipe ainda deve treinar seu detector e usar o Ultralytics validation mode para verificar o desempenho específico da tarefa.
Um segundo exemplo é a geração simulada de cenas de estradas. Os engenheiros podem criar imagens noturnas, de chuva ou de neblina para expandir os dados de treinamento de direção autônoma. O FID pode comparar cada condição sintética com quadros reais desse ambiente. Uma grande distância alerta sobre uma incompatibilidade de domínio que pode fazer com que um detector subsequente aprenda planos de fundo irreais ou artefatos climáticos em vez de recursos de estrada transferíveis.
Ultralytics Platform dataset management pode ajudar as equipes a organizar, inspecionar e gerenciar versões de divisões de imagens reais e sintéticas antes do treinamento e da implantação.
Calculando o FID em Python#
A documentada TorchMetrics FID implementation aceita lotes de imagens reais e geradas:
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}")Este pequeno exemplo usa recursos de 64 dimensões para uma demonstração rápida. As comparações de benchmark padrão normalmente usam a representação padrão de 2.048 dimensões e muito mais imagens. Para uma avaliação confiável, mantenha o pré-processamento e a contagem de amostras fixos, relate a configuração exata, repita as medições quando possível e complemente o FID com o Ultralytics model evaluation workflow quando os dados gerados apoiarem uma tarefa de visão subsequente.









