Andersons hoek
Het bewerken van een GAN’s latentie ruimte met ‘blobs’

Nieuw onderzoek van UC Berkeley en Adobe (ADBE ) biedt een manier om direct te bewerken het hyperrealistische content dat kan worden gegenereerd door een Generative Adversarial Network (GAN), maar dat normaal gesproken niet kan worden gecontroleerd, geanimeerd of vrij gemanipuleerd op een manier die lang vertrouwd is voor Photoshop-gebruikers en CGI-practitioners.
Genoemd BlobGAN, de methode houdt in het creëren van een grid van ‘blobs’ – wiskundige constructies die direct in kaart brengen naar content binnen de latentie ruimte van de GAN.
Door de blobs te verplaatsen, kunt u de ‘objecten’ in een scène-weergave verplaatsen, op een intuïtieve manier die dichter bij CGI- en CAD-methoden ligt dan veel van de huidige pogingen om de latentie ruimte van de GAN in kaart te brengen en te controleren:

Scène-manipulatie met BlobGAN: als de ‘blobs’ door de gebruiker worden verplaatst, worden de latentie objecten en stijlen in de GAN dienovereenkomstig gewijzigd. Voor meer voorbeelden, zie de bijbehorende video, ingesloten aan het einde van dit artikel, of op https://www.youtube.com/watch?v=KpUv82VsU5k
Aangezien blobs overeenkomen met ‘objecten’ in de scène die in kaart is gebracht in de latentie ruimte van de GAN, zijn alle objecten a priori ontkoppeld, waardoor het mogelijk is om ze individueel te wijzigen:

Objecten kunnen worden vergroot, verkleind, gekloond en verwijderd, onder andere bewerkingen.
Net als elk object in foto-bewerkingssoftware (of zelfs tekst-bewerkingssoftware), kan een blob worden gedupliceerd en vervolgens gemanipuleerd:

Blobs kunnen worden gedupliceerd in de interface, en hun overeenkomstige latentie-weergaven zullen ook worden ‘gekopiëerd en geplakt’. Bron: https://dave.ml/blobgan/#results
BlobGAN kan ook nieuwe, door de gebruiker geselecteerde afbeeldingen parseren in zijn latentie ruimte:

Met BlobGAN hoeft u geen afbeeldingen die u wilt manipuleren rechtstreeks in de trainingsgegevens op te nemen en vervolgens hun latentie-codes te zoeken, maar kunt u selectieve afbeeldingen op elk gewenst moment invoeren en manipuleren. De afbeeldingen die hier worden gewijzigd, zijn post-facto gebruikersinvoer. Bron: https://dave.ml/blobgan/#results
Meer resultaten kunnen worden gezien hier, en in de bijbehorende YouTube-video (ingesloten aan het einde van dit artikel). Er is ook een interactieve Colab demo*, en een GitHub repo**.
Dit soort instrumentatie en reikwijdte kan naïef lijken in de post-Photoshop-tijdperk, en parametrische softwarepakketten zoals Cinema4D en Blender hebben gebruikers al decennialang in staat gesteld om 3D-werelden te creëren en aan te passen; maar het vertegenwoordigt een veelbelovende benadering om de excentriciteiten en de arcane aard van de latentie ruimte in een Generative Adversarial Network te temmen, door het gebruik van proxy-entiteiten die in kaart worden gebracht naar latentie-codes.
De auteurs beweren:
‘Op een uitdagende multi-categorie dataset van binnenruimtes, presteert BlobGAN beter dan Style-GAN2 in beeldkwaliteit, gemeten door FID.’
Het artikel heet BlobGAN: Ruimtelijk ontkoppelde scène-weergaven, en is geschreven door twee onderzoekers van UC Berkeley, samen met drie van Adobe Research.
Middle-man
BlobGAN brengt een nieuwe paradigma naar GAN-afbeeldingssynthese. Eerdere benaderingen om discrete entiteiten in de latentie ruimte aan te pakken, merkt het nieuwe artikel op, zijn ofwel ‘top-down’ of ‘bottom-up’ geweest.
Een top-down methode in een GAN of afbeeldingsclassificator behandelt afbeeldingen van scènes als klassen, zoals ‘slaapkamer’, ‘kerk’, ‘gezicht’, enz. Deze soort tekst/afbeelding-paar powers een nieuwe generatie multimodale afbeeldingssyntheseframeworks, zoals de recente DALL-E 2 van OpenAI.
Bottom-up benaderingen behandelen elk pixel in een afbeelding als een klasse, label of categorie. Dergelijke benaderingen gebruiken diverse technieken, hoewel semantische segmentatie een populaire huidige onderzoeksstrand is.
De auteurs merken op:
‘Beide paden lijken onbevredigend omdat geen van beiden gemakkelijke manieren biedt om over delen van de scène als entiteiten te redeneren. De scène-delen zijn ofwel gebakken in een enkel verstrengeld latent vector (top-down), of moeten worden gegroepeerd vanuit individuele pixel-labels (bottom-up).’
In plaats daarvan biedt BlobGAN een onbegeleide mid-level-weergave, of proxy-framework voor generatieve modellen.

Het lay-outnetwerk brengt lokale (en controleerbare) ‘blob’-entiteiten in kaart naar latentie-codes. De gekleurde cirkels in het midden vormen een ‘blob-kaart’. Bron: https://arxiv.org/pdf/2205.02837.pdf
De Gaussische (d.w.z. op basis van ruis) blobs zijn diepte-geordend, en vertegenwoordigen een flessenhals in de architectuur die een toewijzing toekent aan elke entiteit, waardoor het grootste obstakel voor GAN-inhoudsmanipulatie wordt opgelost: ontkoppeling (ook een probleem voor autoencoder-gebaseerde architecturen). De resulterende ‘blob-kaart’ wordt gebruikt om de decoder van BlobGAN te manipuleren.
De auteurs merken met enige verbazing op dat het systeem leert om scènes te decomponeren in lay-outs en entiteiten via een off-the-shelf discriminator die geen expliciete labels gebruikt.
Architectuur en Gegevens
Entiteiten in de blob-kaart worden omgezet in afbeeldingen via een herziene StyleGAN2-gebaseerde netwerk, in een benadering die inspiratie put uit eerder onderzoek van NVIDIA (NVDA ).

Een herziene StyleGAN 2-afgeleide van NVIDIA Research. Sommige van de principes in dit werk werden overgenomen of aangepast voor BlobGAN. Bron: https://arxiv.org/pdf/1912.04958.pdf
StyleGAN 2 is gewijzigd in BlobGAN om invoer te accepteren van de blob-kaart in plaats van een enkele globale vector, zoals gebruikelijk is.

Een reeks manipulaties die mogelijk worden gemaakt door BlobGAN, waaronder de ‘autocompletie’ van een lege slaapkamerscène, en het vergroten en verplaatsen van de elementen in de kamer. In de rij hieronder zien we de gebruikersinterface die dit mogelijk maakt – de blob-kaart.
Door analogie, in plaats van een enorm en complex gebouw (de latentie ruimte) in één keer tot stand te brengen, en vervolgens door zijn eindeloze gangen te moeten verkennen, stuurt BlobGAN de componentblokken vanaf het begin, en weet het altijd waar ze zijn. Deze ontkoppeling van inhoud en locatie is de belangrijkste innovatie van het werk.
* Niet functioneel op het moment van schrijven
** Code nog niet gepubliceerd op het moment van schrijven
First published 8th mei 2022.












