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

Diffusion Models

I modelli di diffusione generano immagini, video e audio imparando a invertire gradualmente un processo di aggiunta del rumore, passo dopo passo, dal rumore puro a un nuovo campione.

I modelli di diffusione sono modelli di IA generativa che creano dati imparando a invertire un processo graduale di aggiunta del rumore. Durante l'addestramento, le immagini e altri dati vengono alterati con rumore gaussiano in molti piccoli passaggi, e una rete neurale impara a prevedere il rumore a ogni passaggio. Per generare un campione, il modello parte da puro rumore casuale e lo rimuove passo dopo passo finché non emerge un nuovo risultato. Jascha Sohl-Dickstein e i suoi colleghi hanno proposto questo approccio nel 2015 in Deep Unsupervised Learning using Nonequilibrium Thermodynamics, mentre Jonathan Ho, Ajay Jain e Pieter Abbeel lo hanno reso competitivo nel 2020 con Denoising Diffusion Probabilistic Models (DDPM), che ha stabilito un FID all'avanguardia pari a 3,17 su CIFAR-10. Nel 2021 i ricercatori di OpenAI hanno dimostrato che i modelli di diffusione superavano le GAN nella sintesi di immagini su ImageNet; oggi i modelli di diffusione e i relativi metodi di flow matching alimentano i sistemi di generazione di immagini da testo come Stable Diffusion, i generatori di video, gli editor di immagini e i modelli scientifici.

Come funzionano i modelli di diffusione#

Il processo diretto è fisso, non appreso. Aggiunge una piccola quantità di rumore gaussiano a ciascuno dei T passaggi; DDPM usa T = 1.000, con una varianza del rumore che aumenta linearmente da 0.0001 a 0.02 per passaggio. Poiché la somma di rumori gaussiani è ancora gaussiana, un'immagine di addestramento può passare direttamente a qualsiasi passaggio t tramite una formula chiusa, xt = sqrt(alpha_bar_t) * x0 + sqrt(1 - alpha_bar_t) * noise, dove alpha_bar_t è il prodotto di 1 - beta sui primi t passaggi. Durante l'addestramento si selezionano ripetutamente un'immagine, un passaggio casuale e nuovo rumore, si crea xt e si insegna alla rete a prevedere quel rumore mediante l'errore quadratico medio, l'obiettivo semplificato di DDPM. Questo codice applica il processo diretto a una foto usando la pianificazione di 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")

Il peso dell'immagine scende da 1.000 al passaggio 1 a 0.947 al passaggio 100, 0.630 al passaggio 300, 0.161 al passaggio 600 e 0.006 al passaggio 1.000, mentre il peso del rumore sale a 1.000. L'immagine salvata forward_diffusion.jpg mostra l'autobus nitido, poi sgranato, poi indistinto e infine scomparso.

La generazione esegue il processo al contrario. Parte da puro rumore gaussiano e, a ogni passaggio, la rete prevede il rumore nel campione corrente, un risolutore ne rimuove una parte e il risultato leggermente più pulito alimenta il passaggio successivo. Un prompt testuale o un'etichetta di classe entra nella rete come condizione, spesso tramite attenzione incrociata. Il condizionamento senza classificatore, introdotto da Jonathan Ho e Tim Salimans, addestra una rete sia con la condizione sia senza e, al momento del campionamento, estrapola dalla previsione incondizionata verso quella condizionata; un fattore di guida più elevato, come il valore predefinito di 7,5 nelle pipeline di Stable Diffusion 1.x, segue più da vicino il prompt a scapito della diversità.

Velocizzare il campionamento#

Il campionamento DDPM richiede 1.000 valutazioni della rete per immagine, quindi gran parte dei progressi del settore si è concentrata sulla riduzione di questo numero:

  • Sampler migliori: DDIM riutilizza un DDPM addestrato con un sampler deterministico e produce campioni di alta qualità da 10 a 50 volte più velocemente in tempo reale. I successivi risolutori ODE riducono la generazione tipica a circa 20–50 passaggi.
  • Diffusione latente: un modello di diffusione latente applica il denoising a una rappresentazione compressa da un autoencoder, anziché ai pixel. L'autoencoder di Stable Diffusion trasforma un'immagine 512×512×3 in un latente 64×64×4, con 48 volte meno valori.
  • Distillazione: i modelli di consistenza imparano a trasformare direttamente qualsiasi campione rumoroso in uno pulito, consentendo la generazione in un solo passaggio; i modelli di consistenza latente applicano la stessa idea a Stable Diffusion con 2–4 passaggi.
  • Percorsi più lineari: il flow matching e il flow rettificato addestrano lungo percorsi rettilinei dal rumore ai dati, che i risolutori possono seguire in meno passaggi.

La rete di denoising è passata dalla U-Net convoluzionale di DDPM e Stable Diffusion 1.x al Transformer di diffusione (DiT) usato dalla maggior parte degli attuali generatori di immagini e video.

Modelli di diffusione e altri modelli generativi#

  • Reti generative avversarie (GANs): una GAN genera un campione con un solo passaggio in avanti, ma l'addestramento avversario tra generatore e discriminatore è soggetto a instabilità e collasso delle modalità, in cui il generatore copre solo una parte dei dati. L'addestramento dei modelli di diffusione si basa su una regressione stabile e copre più completamente la distribuzione dei dati, ma richiede numerosi passaggi di campionamento.
  • Autoencoder variazionali (VAEs): un VAE decodifica un vettore latente in un campione con un solo passaggio e tende a produrre campioni più sfocati. I modelli di diffusione latente usano un autoencoder di tipo VAE solo per comprimere le immagini e affidano la generazione al modello di diffusione.
  • Modelli autoregressivi: i modelli linguistici e quelli visivi autoregressivi generano un token o una scala alla volta, condizionandosi su ciò che li precede. Un modello di diffusione perfeziona in parallelo ogni parte del campione a ogni passaggio, e i modelli linguistici di diffusione applicano lo stesso denoising al testo.

Applicazioni nel mondo reale#

  • Generazione e modifica di immagini: i modelli di generazione di immagini da testo creano immagini a partire da prompt, il riempimento delle immagini rigenera una regione mascherata adattandola alle aree circostanti, ControlNet vincola la disposizione usando mappe di bordi, profondità o posa, e i modelli di diffusione per l'upscaling applicano la super-risoluzione.
  • Generazione di video: i modelli di generazione di video applicano il denoising a latenti compressi che comprendono molti fotogrammi contemporaneamente, così ogni fotogramma viene generato insieme a quelli vicini.
  • Dati sintetici per l'addestramento: le immagini generate colmano le lacune nei dataset di visione, ad esempio per difetti rari, condizioni meteorologiche insolite o punti di vista poco comuni. In un dataset sulla Ultralytics Platform, l'azione Generate Similar Images crea da 1 a 16 nuove immagini per batch, ispirate a un'immagine esistente; quelle che scegli di conservare vengono aggiunte al dataset senza etichette, pronte per l'annotazione.
  • Robotica: le policy di diffusione generano sequenze di azioni robotiche applicando il denoising, condizionate dalle immagini delle fotocamere.
  • Scienza: AlphaFold 3 prevede le strutture di complessi di proteine, acidi nucleici e piccole molecole usando un modulo di diffusione che applica il denoising alle coordinate grezze degli atomi, sostituendo il modulo strutturale di AlphaFold 2.

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