Varianti GAN

I ricercatori continuano a trovare tecniche GAN migliorate e nuovi utilizzi per le GAN. Ecco un esempio di variazioni GAN per darti un'idea delle possibilità.

GAN progressive

In una GAN progressiva, i primi livelli del generatore producono immagini con risoluzione molto bassa e i livelli successivi aggiungono dettagli. Questa tecnica consente alla GAN di essere addestrata più rapidamente rispetto alle GAN non progressive paragonabili e produce immagini con una risoluzione più elevata.

Per ulteriori informazioni, consulta Karras et al, 2017.

GAN condizionali

Le GAN condizionali vengono addestrate su un set di dati etichettati e ti consentono di specificare l'etichetta per ogni istanza generata. Ad esempio, un GAN MNIST incondizionato produrrà cifre random, mentre un GAN MNIST condizionale ti consente di specificare quale cifra deve generare il GAN.

Invece di modellare la probabilità congiunta P(X, Y), i GAN condizionali modellano la probabilità condizionale P(X | Y).

Per ulteriori informazioni sulle GAN condizionali, consulta Mirza et al, 2014.

Traduzione di immagini

Le GAN di traduzione di immagini in immagini prendono un'immagine come input e la mappano a un'immagine di output generata con proprietà diverse. Ad esempio, possiamo prendere un'immagine maschera con una macchia di colore a forma di auto e la GAN può riempire la forma con dettagli dell'auto fotorealistici.

Analogamente, puoi addestrare un GAN di immagine a immagine a prendere schizzi di borse e trasformarli in immagini fotorealistiche di borse.

Una tabella 3 x 3 di immagini di borse. Ogni riga mostra uno stile di borsa diverso. In ogni riga, l'immagine più a sinistra è un semplice disegno a linee di una borsetta, l'immagine al centro è una foto di una borsetta reale e l'immagine più a destra è un'immagine fotorealistica generata da una GAN. Le tre colonne sono etichettate come "Input", "Dato di fatto" e "Output".

In questi casi, la perdita è una combinazione ponderata della consueta perdita basata sul discriminatore e di una perdita a livello di pixel che penalizza il generatore per l'allontanamento dall'immagine di origine.

Per ulteriori informazioni, consulta Isola et al, 2016.

CycleGAN

I modelli CycleGAN imparano a trasformare le immagini di un insieme in immagini che potrebbero appartenere plausibilmente a un altro insieme. Ad esempio, un modello CycleGAN ha prodotto l'immagine a destra riportata di seguito quando è stata fornita l'immagine a sinistra come input. Ha preso l'immagine di un cavallo e l'ha trasformata in un'immagine di una zebra.

Un'immagine di un cavallo che corre e una seconda
immagine identica in tutti gli aspetti, tranne per il fatto che il cavallo è una zebra.

I dati di addestramento per CycleGAN sono semplicemente due insiemi di immagini (in questo caso, un insieme di immagini di cavalli e un insieme di immagini di zebre). Il sistema non richiede etichette o corrispondenze tra immagini a due a due.

Per ulteriori informazioni, consulta Zhu et al, 2017, che illustra l'utilizzo di CycleGAN per eseguire la traduzione di immagini senza dati accoppiati.

Sintesi di testo in immagini

Le GAN di conversione da testo a immagine prendono il testo come input e producono immagini plausibili e descritte dal testo. Ad esempio, l'immagine del fiore di seguito è stata prodotta alimentando una GAN con una descrizione di testo.

"Questo fiore ha petali gialli con sfumature di colore arancione." Un fiore con petali
    gialli con sfumature di arancione.

Tieni presente che in questo sistema la GAN può produrre immagini solo da un piccolo insieme di classi.

Per ulteriori informazioni, consulta Zhang et al, 2016.

Super-risoluzione

Le GAN super-risoluzione aumentano la risoluzione delle immagini, aggiungendo dettagli ove necessario per riempire le aree sfocate. Ad esempio, l'immagine sfocata al centro di seguito è una versione con campionamento ridotto dell'immagine originale a sinistra. Data l'immagine sgranata, un GAN ha prodotto l'immagine più nitida a destra:

OriginaleSfocatoRipristinato con GAN
Un dipinto di una ragazza che indossa un elaborato copricapo. La fascia del copricapo è lavorata a maglia con un motivo complesso. Una versione sfocata del
      dipinto di una ragazza che indossa un elaborato copricapo. Un dipinto nitido e chiaro di una
      ragazza che indossa un elaborato copricapo. Questo dipinto è quasi identico
      alla prima immagine di questa tabella, ma alcuni dettagli dei motivi
      sul copricapo e sugli indumenti sono leggermente diversi.

L'immagine generata con GAN è molto simile all'immagine originale, ma se guardi attentamente la fascia, noterai che il GAN non ha riprodotto il motivo a forma di stella dell'originale. Invece, ha creato un proprio schema plausibile per sostituire quello cancellato dal downsampling.

Per ulteriori informazioni, consulta Ledig et al, 2017.

Inpainting del viso

Le GAN sono state utilizzate per l'attività di ritocco semantico delle immagini. Nella tâche di inpainting, alcuni blocchi di un'immagine vengono oscurati e il sistema tenta di riempire i blocchi mancanti.

Yeh et al, 2017 hanno utilizzato una GAN per ottenere risultati migliori rispetto ad altre tecniche di inpainting di immagini di volti:

InputOutput GAN
Quattro immagini. Ogni immagine è
                                     una foto di un volto con alcune aree sostituite
                                     dal nero. Quattro immagini. Ogni immagine è
                                     una foto di un volto identico a una delle
                                     immagini nella colonna "Input", ad eccezione
                                     del fatto che non sono presenti aree nere.

Text-to-Speech

Non tutte le GAN producono immagini. Ad esempio, i ricercatori hanno utilizzato le GAN anche per produrre parlato sintetico da input di testo. Per ulteriori informazioni, consulta Yang et al., 2017.