Angolo di Anderson
Modificare lo spazio latente di un GAN con ‘Blobs’

Una nuova ricerca dell’Università di Berkeley e di Adobe (ADBE ) offre un modo per modificare direttamente il contenuto iperrealistico che può essere creato da una rete generativa antagonista (GAN), ma che di solito non può essere controllato, animato o manipolato liberamente in un modo a lungo familiare agli utenti di Photoshop e ai pratici di CGI.
Intitolato BlobGAN, il metodo prevede la creazione di una griglia di ‘blobs’ – costrutti matematici che si mappano direttamente sul contenuto all’interno dello spazio latente del GAN.
Spostando i blobs, è possibile spostare gli ‘oggetti’ in una rappresentazione di scena, in un modo intuitivo che è più vicino ai metodi CGI e CAD rispetto a molti dei tentativi attuali di mappare e controllare lo spazio latente del GAN:

Manipolazione di scena con BlobGAN: mentre l’utente sposta i ‘blobs’, la disposizione degli oggetti e degli stili latenti nel GAN viene modificata di conseguenza. Per ulteriori esempi, vedere il video allegato alla fine di questo articolo o su https://www.youtube.com/watch?v=KpUv82VsU5k
Poiché i blobs corrispondono a ‘oggetti’ nella scena mappata nello spazio latente del GAN, tutti gli oggetti sono disaccoppiati a priori, rendendo possibile modificarli individualmente:

Gli oggetti possono essere ridimensionati, rimpiccioliti, clonati e rimossi, tra le altre operazioni.
Come per qualsiasi oggetto in un software di editing di foto (o anche di testo), un blob può essere duplicato e successivamente manipolato:

I blobs possono essere duplicati nell’interfaccia e le loro rappresentazioni latenti corrispondenti verranno anche ‘copiate e incollate’. Fonte: https://dave.ml/blobgan/#results
BlobGAN può anche analizzare immagini nuove e selezionate dall’utente nel suo spazio latente:

Con BlobGAN, non è necessario incorporare le immagini che si desidera manipolare direttamente nei dati di training e poi cercare i loro codici latenti, ma è possibile immettere immagini selezionate a piacimento e manipolarle. Fonte: https://dave.ml/blobgan/#results
Altri risultati possono essere visti qui, e nel video allegato alla fine di questo articolo, o su https://www.youtube.com/watch?v=KpUv82VsU5k. C’è anche una demo interattiva Colab disponibile*, e un repository GitHub disponibile**.
Questo tipo di strumentalità e portata può sembrare ingenuo nell’era post-Photoshop, e i pacchetti software parametrici come Cinema4D e Blender hanno permesso agli utenti di creare e personalizzare mondi 3D per decenni; ma rappresenta un approccio promettente per addomesticare le eccentricità e la natura arcana dello spazio latente in una rete generativa antagonista, utilizzando entità proxy che si mappano su codici latenti.
Gli autori affermano:
‘In un dataset di scene indoor multiclasse, BlobGAN supera Style-GAN2 in termini di qualità dell’immagine, misurata dal FID.’
Il documento è intitolato BlobGAN: rappresentazioni di scena disaccoppiate spazialmente, e è scritto da due ricercatori dell’Università di Berkeley, insieme a tre di Adobe Research.
Intermediario
BlobGAN introduce un nuovo paradigma nella sintesi di immagini GAN. Gli approcci precedenti per affrontare entità discrete nello spazio latente, come sottolinea il nuovo documento, sono stati o ‘top-down’ o ‘bottom up’.
Un approccio top-down in un GAN o un classificatore di immagini tratta le immagini di scene come classi, come ‘camera da letto’, ‘chiesa’, ‘faccia’, ecc. Questo tipo di accoppiamento testo/immagine alimenta una nuova generazione di framework di sintesi di immagini multimodali, come il recente DALL-E 2 di OpenAI.
Gli approcci bottom-up, invece, mappano ogni pixel in un’immagine in una classe, etichetta o categoria. Tali approcci utilizzano tecniche diverse, sebbene la segmentazione semantica sia una corrente di ricerca popolare.
Gli autori commentano:
‘Entrambe le strade sembrano insoddisfacenti perché non possono fornire modi facili per ragionare sulle parti della scena come entità. Le parti della scena sono o incorporate in un unico vettore latente intrecciato (top-down), o devono essere raggruppate insieme da etichette di pixel individuali (bottom-up).’
Invece, BlobGAN offre una representazione di livello medio non supervisionata, o un framework di proxy per modelli generativi.

La rete di layout mappa entità ‘blob’ locali (e controllabili) a codici latenti. Fonte: https://arxiv.org/pdf/2205.02837.pdf
I blobs gaussiani (cioè basati sul rumore) sono ordinati in profondità e rappresentano un collo di bottiglia nell’architettura che assegna una mappatura a ogni entità, risolvendo il più grande ostacolo per la manipolazione del contenuto GAN: la disaccoppiamento (anche un problema per le architetture basate su autoencoder). La risultante ‘mappa di blob’ viene utilizzata per manipolare il decodificatore di BlobGAN.
Gli autori notano con una certa sorpresa che il sistema apprende a decomporre le scene in layout ed entità attraverso un discriminatore pronto all’uso che non utilizza etichette esplicite.
Architettura e dati
Le entità nella mappa di blob vengono convertite in immagini attraverso una rete derivata da StyleGAN2 rivista, in un approccio che trae ispirazione da precedenti ricerche NVIDIA (NVDA ).

Una rete derivata da StyleGAN 2 rivista di NVIDIA Research. Fonte: https://arxiv.org/pdf/1912.04958.pdf
StyleGAN 2 è stato modificato in BlobGAN per accettare input dalla mappa di blob invece di un unico vettore globale, come di solito avviene.

Una serie di manipolazioni rese possibili da BlobGAN, tra cui il ‘completamento automatico’ di una scena di camera da letto vuota e il ridimensionamento e la ricollocazione degli elementi nella stanza.
Per analogia, invece di portare in esistenza un vasto e complesso edificio (lo spazio latente) tutto in una volta, e poi dover esplorare i suoi infiniti corridoi, BlobGAN invia i blocchi componenti all’inizio e sa sempre dove si trovano. Questa disaccoppiamento di contenuto e posizione è l’innovazione principale del lavoro.
* Non funzionale al momento della scrittura
** Codice non ancora pubblicato al momento della scrittura
Pubblicato per la prima volta l’8 maggio 2022.












