Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

Diffusion Models

Modelos de difusão geram imagens, vídeos e áudio aprendendo a inverter um processo gradual de adição de ruído, passo a passo, do ruído puro até uma nova amostra.

Modelos de difusão são modelos de IA generativa que criam dados aprendendo a reverter um processo gradual de adição de ruído. Durante o treinamento, imagens ou outros dados são corrompidos com ruído gaussiano ao longo de muitas etapas pequenas, e uma rede neural aprende a prever o ruído em cada etapa. Para gerar uma amostra, o modelo começa com ruído aleatório puro e o remove passo a passo até surgir uma nova amostra. Jascha Sohl-Dickstein e colegas propuseram a abordagem em 2015 em Aprendizado profundo não supervisionado usando termodinâmica fora do equilíbrio, e Jonathan Ho, Ajay Jain e Pieter Abbeel a tornaram competitiva em 2020 com Modelos probabilísticos de difusão para remoção de ruído (DDPM), que estabeleceram um FID de última geração de 3,17 no CIFAR-10. Em 2021, pesquisadores da OpenAI mostraram que os modelos de difusão superavam as GANs na síntese de imagens da ImageNet, e os modelos de difusão e seus equivalentes de correspondência de fluxo agora impulsionam sistemas de conversão de texto em imagem, como o Stable Diffusion, geradores de vídeo, editores de imagem e modelos científicos.

Como funcionam os modelos de difusão#

O processo direto é fixo, não aprendido. Ele adiciona um pouco de ruído gaussiano a cada uma das T etapas; o DDPM usa T = 1.000, com uma variância de ruído que aumenta linearmente de 0.0001 a 0.02 por etapa. Como a soma de ruídos gaussianos continua sendo gaussiana, uma imagem de treinamento pode avançar diretamente para qualquer etapa t por meio de uma expressão fechada, xt = sqrt(alpha_bar_t) * x0 + sqrt(1 - alpha_bar_t) * noise, em que alpha_bar_t é o produto de 1 - beta ao longo das primeiras t etapas. O treinamento escolhe repetidamente uma imagem, uma etapa aleatória e ruído novo, constrói xt e ensina a rede a prever esse ruído usando o erro quadrático médio, o objetivo simplificado do DDPM. Este código aplica o processo direto a uma foto com o cronograma do DDPM:

import urllib.request

import numpy as np
import torch
from PIL import Image

# DDPM's linear schedule: 1,000 steps whose noise variance rises from 0.0001 to 0.02
betas = torch.linspace(1e-4, 0.02, 1000)
alpha_bar = torch.cumprod(1 - betas, dim=0)

# Load a photo and scale its pixels to [-1, 1]
image = Image.open(urllib.request.urlopen("https://ultralytics.com/images/bus.jpg")).convert("RGB").resize((256, 256))
x0 = torch.tensor(np.array(image), dtype=torch.float32).permute(2, 0, 1) / 127.5 - 1

# Jump straight to step t in closed form: x_t = sqrt(alpha_bar) * x0 + sqrt(1 - alpha_bar) * noise
frames = []
for t in (0, 99, 299, 599, 999):
    xt = alpha_bar[t].sqrt() * x0 + (1 - alpha_bar[t]).sqrt() * torch.randn_like(x0)
    frames.append(((xt.clamp(-1, 1) + 1) * 127.5).byte().permute(1, 2, 0).numpy())
    print(f"step {t + 1}: image weight {alpha_bar[t].sqrt():.3f}, noise weight {(1 - alpha_bar[t]).sqrt():.3f}")
Image.fromarray(np.hstack(frames)).save("forward_diffusion.jpg")

O peso da imagem cai de 1.000 na etapa 1 para 0.947 na etapa 100, 0.630 na etapa 300, 0.161 na etapa 600 e 0.006 na etapa 1.000, enquanto o peso do ruído aumenta para 1.000. A imagem salva forward_diffusion.jpg mostra o ônibus nítido, depois granulado, depois tênue e, por fim, desaparecido.

A geração executa o processo ao contrário. Ela começa com ruído gaussiano puro e, a cada etapa, a rede prevê o ruído na amostra atual, um solucionador remove parte dele e o resultado um pouco mais limpo alimenta a etapa seguinte. Um prompt de texto ou rótulo de classe é fornecido à rede como condição, muitas vezes por meio de atenção cruzada. A orientação sem classificador, introduzida por Jonathan Ho e Tim Salimans, treina uma rede tanto com a condição quanto sem ela e, no momento da amostragem, extrapola a partir da previsão incondicional em direção à previsão condicional; uma escala de orientação maior, como o valor padrão 7,5 nos pipelines do Stable Diffusion 1.x, segue o prompt mais de perto, mas reduz a diversidade.

Aceleração da amostragem#

A amostragem DDPM exige 1.000 avaliações da rede por imagem, então boa parte do progresso do campo se concentrou em reduzir esse número:

  • Amostradores melhores: o DDIM reutiliza um DDPM treinado com um amostrador determinístico e produz amostras de alta qualidade de 10 a 50 vezes mais rápido em tempo real. Solucionadores ODE posteriores reduzem a geração típica para cerca de 20 a 50 etapas.
  • Difusão latente: um modelo de difusão latente remove o ruído de uma representação comprimida por um autoencoder, em vez de fazê-lo diretamente nos pixels. O autoencoder do Stable Diffusion transforma uma imagem de 512×512×3 em uma representação latente de 64×64×4, com 48 vezes menos valores.
  • Destilação: os modelos de consistência aprendem a mapear diretamente qualquer amostra ruidosa para uma amostra limpa, possibilitando a geração em uma etapa; os modelos de consistência latente aplicam a mesma ideia ao Stable Diffusion em 2 a 4 etapas.
  • Caminhos mais retos: a correspondência de fluxo e o fluxo retificado treinam ao longo de caminhos retos do ruído aos dados, que os solucionadores conseguem percorrer em menos etapas.

A própria rede de remoção de ruído passou da U-Net convolucional do DDPM e do Stable Diffusion 1.x ao transformador de difusão (DiT) usado pela maioria dos geradores atuais de imagens e vídeos.

Modelos de difusão versus outros modelos generativos#

  • Redes adversariais generativas (GANs): uma GAN gera uma amostra em uma única passagem direta, mas seu treinamento adversarial entre gerador e discriminador é propenso à instabilidade e ao colapso de modos, em que o gerador cobre apenas parte dos dados. O treinamento por difusão é uma regressão estável e cobre a distribuição dos dados de forma mais completa, ao custo de muitas etapas de amostragem.
  • Autoencoders variacionais (VAEs): um VAE decodifica um vetor latente em uma amostra em uma única passagem, e suas amostras tendem a ser mais borradas. Modelos de difusão latente usam um autoencoder no estilo VAE apenas para comprimir imagens e deixam a geração a cargo do modelo de difusão.
  • Modelos autorregressivos: modelos de linguagem e modelos visuais autorregressivos geram um token ou uma escala de cada vez, condicionados ao que veio antes. Um modelo de difusão refina todas as partes da amostra em paralelo a cada etapa, e os modelos de linguagem por difusão aplicam o mesmo processo de remoção de ruído ao texto.

Aplicações no mundo real#

  • Geração e edição de imagens: modelos de texto para imagem criam imagens a partir de prompts, o preenchimento de imagens regenera uma região mascarada para combinar com o entorno, o ControlNet restringe o layout com mapas de bordas, profundidade ou pose, e os ampliadores por difusão realizam super-resolução.
  • Geração de vídeo: modelos de geração de vídeo removem o ruído de representações latentes comprimidas que abrangem muitos quadros de uma só vez, de modo que cada quadro é gerado em conjunto com os vizinhos.
  • Dados sintéticos de treinamento: imagens geradas preenchem lacunas em conjuntos de dados de visão, como defeitos raros, condições meteorológicas incomuns ou pontos de vista pouco comuns. Em um conjunto de dados da Ultralytics Platform, a ação Gerar imagens semelhantes cria de 1 a 16 imagens novas por lote, inspiradas em uma imagem existente, e as imagens que você mantém são adicionadas ao conjunto de dados sem rótulos, prontas para anotação.
  • Robótica: as políticas de difusão geram sequências de ações de robôs removendo o ruído delas, com condicionamento baseado em imagens de câmeras.
  • Ciência: o AlphaFold 3 prevê as estruturas de complexos de proteínas, ácidos nucleicos e moléculas pequenas com um módulo de difusão que remove o ruído das coordenadas atômicas brutas, substituindo o módulo de estrutura do AlphaFold 2.

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina