Pular para o conteúdo

Design clássico · Sênior

Geração realista de rostos

Projeto de entrevista clássico. Pontos centrais: GAN/StyleGAN, mode collapse, FID e marca d'água.

16 min de leitura · Conteúdo revisado em 23 de outubro de 2026

Resposta curta

Projeto de entrevista clássico. Pontos centrais: GAN/StyleGAN, mode collapse, FID e marca d'água. O capítulo 7 do livro Generative AI System Design Interview chama-se Realistic Face Generation.

01 · CONTEXTO

O problema: gerar rostos que parecem reais

O capítulo 7 do livro Generative AI System Design Interview chama-se Realistic Face Generation.

Uma GAN treina dois modelos ao mesmo tempo: um gerador, que captura a distribuição dos dados, e um discriminador, que estima se uma amostra veio dos dados de treino ou do gerador.

O treino do gerador busca maximizar a probabilidade de o discriminador errar.

02 · TREINO

O laço de treino adversarial

O diagrama abaixo mostra o laço de treino e a avaliação periódica do gerador.

  1. O diagrama começa pelo dataset de rostos e pelo carregador de lotes, que entregam imagens reais ao discriminador.

    Diagrama da arquitetura: Geração de rostos: laço de treino
    DBDataset de rostos
    CPCarregador de lotes
    CPAmostrador de ruído
    CPGerador
    CPDiscriminador
    DBCheckpoints
    CPAvaliador de FID
    NWMétricas de treino
  2. O gerador transforma ruído em imagens, e o discriminador estima se uma amostra veio dos dados de treino ou do gerador.

    Diagrama da arquitetura: Geração de rostos: laço de treino
    DBDataset de rostos
    CPCarregador de lotes
    CPAmostrador de ruído
    CPGerador
    CPDiscriminador
    DBCheckpoints
    CPAvaliador de FID
    NWMétricas de treino
  3. O gerador é treinado para maximizar a chance de o discriminador errar.

    Diagrama da arquitetura: Geração de rostos: laço de treino
    DBDataset de rostos
    CPCarregador de lotes
    CPAmostrador de ruído
    CPGerador
    CPDiscriminador
    DBCheckpoints
    CPAvaliador de FID
    NWMétricas de treino
  4. Os dois lados precisam andar em sincronia: o gerador não deve ser treinado demais sem que o discriminador seja atualizado.

    Diagrama da arquitetura: Geração de rostos: laço de treino
    DBDataset de rostos
    CPCarregador de lotes
    CPAmostrador de ruído
    CPGerador
    CPDiscriminador
    DBCheckpoints
    CPAvaliador de FID
    NWMétricas de treino
  5. Uma opção de treino é dar ao discriminador e ao gerador taxas de aprendizado individuais, como no TTUR.

    Diagrama da arquitetura: Geração de rostos: laço de treino
    DBDataset de rostos
    CPCarregador de lotes
    CPAmostrador de ruído
    CPGerador
    CPDiscriminador
    DBCheckpoints
    CPAvaliador de FID
    NWMétricas de treino
  6. O avaliador gera imagens de um checkpoint, passa-as pelo Inception-v3 e calcula média e covariância para o FID.

    Diagrama da arquitetura: Geração de rostos: laço de treino
    DBDataset de rostos
    CPCarregador de lotes
    CPAmostrador de ruído
    CPGerador
    CPDiscriminador
    DBCheckpoints
    CPAvaliador de FIDnovo
    NWMétricas de treino

03 · ESTABILIDADE

Quando o gerador perde diversidade

O paper original das GANs lista como desvantagem a necessidade de sincronizar bem D e G: G não deve ser treinado demais sem atualizar D, para evitar o cenário em que G leva valores demais de z ao mesmo valor de x.

Os autores do TTUR propõem uma taxa de aprendizado individual para o discriminador e outra para o gerador.

04 · CONTROLE

StyleGAN: mais controle sobre o rosto gerado

O StyleGAN parte de uma entrada constante aprendida e ajusta o estilo da imagem em cada camada de convolução com base no código latente.

Segundo o paper, o resultado é uma separação automática e não supervisionada entre atributos de alto nível, como pose e identidade em rostos, e variação estocástica, como sardas e cabelo.

Antes disso, o código latente passa por um espaço latente intermediário; a rede de mapeamento que o produz tem 8 camadas.

O mesmo trabalho apresenta o FFHQ, um conjunto de rostos humanos com qualidade bem maior e variação bem mais ampla que os conjuntos de alta resolução existentes.

Nos exemplos ilustrativos, os autores evitaram amostrar regiões extremas de W com o truncation trick, mas todos os FIDs do paper são calculados sem ele.

05 · AVALIAÇÃO E SERVIÇO

Medir a qualidade e servir as imagens

O FID foi proposto para avaliar GANs e, segundo os autores, é mais consistente que o Inception Score. Este último não compara as estatísticas das amostras reais com as das sintéticas.

No cálculo, os autores geram 50.000 imagens, passam-nas pelo Inception-v3 e calculam média e covariância.

O diagrama abaixo mostra o caminho de um pedido de rosto sintético em produção.

  1. O diagrama começa pelo cliente, que pede um rosto sintético por meio do gateway de API.

    Diagrama da arquitetura: Geração de rostos: serviço de inferência
    CLCliente
    NWGateway de API
    CPServiço de geração
    DBPesos do gerador
    DBArmazenamento de imagens
    EDGCDN
    NWMonitoramento
  2. A amostragem do gerador usa apenas propagação direta.

    Diagrama da arquitetura: Geração de rostos: serviço de inferência
    CLCliente
    NWGateway de API
    CPServiço de geração
    DBPesos do gerador
    DBArmazenamento de imagens
    EDGCDN
    NWMonitoramento
  3. Ao mostrar exemplos, o StyleGAN evitou amostrar regiões extremas de W com o truncation trick.

    Diagrama da arquitetura: Geração de rostos: serviço de inferência
    CLCliente
    NWGateway de API
    CPServiço de geração
    DBPesos do gerador
    DBArmazenamento de imagens
    EDGCDN
    NWMonitoramento
  4. O diagrama segue com a imagem gravada no armazenamento e entregue ao cliente pela CDN.

    Diagrama da arquitetura: Geração de rostos: serviço de inferência
    CLCliente
    NWGateway de API
    CPServiço de geração
    DBPesos do gerador
    DBArmazenamento de imagens
    EDGCDN
    NWMonitoramento
  5. O diagrama termina com as métricas do serviço indo para o monitoramento.

    Diagrama da arquitetura: Geração de rostos: serviço de inferência
    CLCliente
    NWGateway de API
    CPServiço de geração
    DBPesos do gerador
    DBArmazenamento de imagens
    EDGCDN
    NWMonitoramento

Perguntas frequentes

O que é Geração realista de rostos?

Projeto de entrevista clássico. Pontos centrais: GAN/StyleGAN, mode collapse, FID e marca d'água.

O que o design de Geração realista de rostos cobre?

Ele está organizado nestas seções: O problema: gerar rostos que parecem reais, O laço de treino adversarial, Quando o gerador perde diversidade, StyleGAN: mais controle sobre o rosto gerado e Medir a qualidade e servir as imagens.

Quanto tempo leva Geração realista de rostos e qual é o nível?

Leva cerca de 16 minutos para ler e tem nível Sênior.

Agora projete você mesmo

Rode este caso como uma entrevista na escola de System Design: você toma as decisões, o tutor as questiona e você vê a nota do seu desenho.