Andersons hoek
Het aanpakken van ‘slechte haar dagen’ in menselijke beeldsynthese

Sinds de gouden eeuw van de Romeinse beeldhouwkunst, is het weergeven van menselijk haar een moeilijke uitdaging geweest. Het gemiddelde menselijke hoofd bevat 100.000 haren, heeft variabele brekingsindices volgens de kleur en, voorbij een bepaalde lengte, zal bewegen en zich vormen op manieren die alleen kunnen worden gesimuleerd door complexe fysieke modellen – tot nu toe alleen toepasbaar via ‘traditionele’ CGI-methoden.

Van onderzoek uit 2017 van Disney, een fysiek gebaseerd model probeert realistische beweging toe te passen op een vloeibare haartype in een CGI-werkstroom. Bron: https://www.youtube.com/watch?v=-6iF3mufDW0
Het probleem wordt slecht aangepakt door moderne populaire deepfakes-methoden. Al enkele jaren heeft het toonaangevende pakket DeepFaceLab een ‘volledig hoofd’-model dat alleen starre voorstellingen van korte (meestal mannelijke) haartypes kan vastleggen; en onlangs heeft DFL-stablemate FaceSwap (beide pakketten zijn afgeleid van de omstreden DeepFakes-broncode uit 2017) een implementatie aangeboden van het BiseNet semantische segmentatiemodel, waarmee een gebruiker oren en haar in deepfake-uitvoer kan opnemen.
Evenals bij het weergeven van zeer korte haartypes, zijn de resultaten zeer beperkt in kwaliteit, met volledige hoofden die bovenop beelden verschijnen, in plaats van geïntegreerd te zijn.
GAN Hair
De twee belangrijkste concurrerende benaderingen voor menselijke simulatie zijn Neural Radiance Fields (NeRF), die een scène vanuit meerdere gezichtspunten kunnen vastleggen en een 3D-weergave van deze gezichtspunten in een onderzoekbaar neuronaal netwerk kunnen omvatten; en Generative Adversarial Networks (GANs), die opvallend geavanceerder zijn in termen van menselijke beeldsynthese (niet in de laatste plaats omdat NeRF pas in 2020 is ontstaan).
NeRF’s afgeleide begrip van 3D-geometrie stelt het in staat om een scène met grote trouw en consistentie te repliceren, zelfs als het momenteel weinig of geen mogelijkheden heeft voor het opleggen van fysieke modellen – en, in feite, relatief beperkte mogelijkheden voor enige vorm van transformatie op de verzamelde gegevens die niet verband houden met het veranderen van het cameragezichtspunt. Momenteel heeft NeRF zeer beperkte mogelijkheden om menselijk haar te reproduceren.
GAN-gebaseerde equivalenten van NeRF beginnen met een bijna fatale handicap, aangezien, in tegenstelling tot NeRF, de latent ruimte van een GAN geen inheemse kennis van 3D-informatie bevat. Daarom is 3D-bewuste GAN-gezichtsbeeldsynthese een populaire onderzoeksrichting in de afgelopen jaren geworden, met InterFaceGAN uit 2019 als een van de belangrijkste doorbraken.
Maar zelfs de geselecteerde resultaten van InterFaceGAN laten zien dat neurale haarkonsistentie een moeilijke uitdaging blijft in termen van temporele consistentie, voor potentiële VFX-werkstromen:

‘Sissende’ haar in een pose-transformatie van InterFaceGAN. Bron: https://www.youtube.com/watch?v=uoftpl3Bj6w
Naarmate het duidelijker wordt dat consistente weergave via manipulatie van de latent ruimte alleen een soort alchemie kan zijn, komen er steeds meer artikelen die CGI-gebaseerde 3D-informatie in een GAN-werkstroom opnemen als een stabiliserende en normaliserende beperking.
Het CGI-element kan worden weergegeven door tussenliggende 3D-primitieven zoals een Skinned Multi-Person Linear Model (SMPL), of door 3D-afleidingsmethoden te gebruiken op een manier die lijkt op NeRF, waarbij geometrie wordt beoordeeld op basis van de bronafbeeldingen of video.
Een nieuw artikel in deze richting, uitgegeven deze week, is Multi-View Consistent Generative Adversarial Networks for 3D-aware Image Synthesis (MVCGAN), een samenwerking tussen ReLER, AAII, University of Technology Sydney, de DAMO Academy van Alibaba Group en Zhejiang University.

Plausibele en robuuste nieuwe gezichtsposities gegenereerd door MVCGAN op afbeeldingen afgeleid van de CELEBA-HQ-dataset. Bron: https://arxiv.org/pdf/2204.06307.pdf
MVCGAN omvat een generatief stralingsveldnetwerk (GRAF) dat in staat is om geometrische beperkingen te bieden in een Generatief Adversariaal Netwerk, waarmee het mogelijk is om enkele van de meest authentieke positiemogelijkheden van een soortgelijke GAN-gebaseerde benadering te bereiken.
Maar aanvullend materiaal voor MVCGAN onthult dat het verkrijgen van consistentie in haarvolume, positie, plaatsing en gedrag een probleem is dat niet gemakkelijk kan worden aangepakt door beperkingen op basis van extern opgelegde 3D-geometrie.

Uit aanvullend materiaal dat op het moment van schrijven niet openbaar is gemaakt, zien we dat, hoewel gezichtspositie-synthese van MVCGAN een opvallende vooruitgang vertegenwoordigt ten opzichte van de huidige stand van de techniek, temporele haarkonsistentie nog steeds een probleem is.
Aangezien ‘rechttoe rechtaan’ CGI-werkstromen nog steeds temporele haarreconstructie zo’n uitdaging vinden, is er geen reden om aan te nemen dat conventionele geometrie-gebaseerde benaderingen van deze aard consistent haar synthesiseren naar de latent ruimte zullen brengen.
Haar stabiliseren met Convolutional Neural Networks
Een aanstaand artikel van drie onderzoekers aan het Chalmers Institute of Technology in Zweden kan echter een extra vooruitgang bieden in neurale haarsimulatie.

Links, de CNN-gestabiliseerde haarepresentatie, rechts, de grondwaarheid. Zie de ingesloten video aan het einde van het artikel voor betere resolutie en extra voorbeelden. Bron: https://www.youtube.com/watch?v=AvnJkwCmsT4
Getiteld Real-Time Hair Filtering with Convolutional Neural Networks, zal het artikel in begin mei worden gepubliceerd voor de i3D-symposium.
Het systeem bestaat uit een auto-encoder-gebaseerd netwerk dat in staat is om haargrootte te beoordelen, inclusief zelfschaduw en rekening houdend met haardikte, in real-time, op basis van een beperkt aantal stochastische monsters gegenereerd door OpenGL-geometrie.
De benadering rendert een beperkt aantal monsters met stochastische transparantie en traint vervolgens een U-net om het originele beeld te reconstrueren.

Onder MVCGAN filtert een CNN stochastisch bemonsterde kleurfactoren, highlights, tangenten, diepte en alfa’s, en assembleert de gesynthetiseerde resultaten in een samengesteld beeld.
Het netwerk wordt getraind op PyTorch, convergerend over een periode van zes tot twaalf uur, afhankelijk van netwerkgrootte en het aantal invoerfuncties. De getrainde parameters (gewichten) worden vervolgens gebruikt in de real-time implementatie van het systeem.
Trainingsgegevens worden gegenereerd door het renderen van enkele honderden afbeeldingen voor rechte en golvende haartypes, met willekeurige afstanden en posities, evenals diverse lichtomstandigheden.

Verschillende voorbeelden van trainingsinvoer.
Haartransparantie over de monsters wordt gemiddeld van afbeeldingen die zijn gerenderd met stochastische transparantie op supersampled resolutie. De oorspronkelijke hoge resolutiegegevens worden gedownsampeld om netwerk- en hardwarebeperkingen te accommoderen en later opgeschaald, in een typische auto-encoder-werkstroom.
De real-time-inferentie-toepassing (de ‘live’-software die de afgeleide algoritme van het getrainde model gebruikt) maakt gebruik van een mix van NVIDIA CUDA met cuDNN en OpenGL. De initiële invoerfuncties worden gedumpt in OpenGL multisampled kleurbuffers en het resultaat wordt doorgestuurd naar cuDNN-tensors voordat deze worden verwerkt in de CNN. Deze tensors worden vervolgens teruggekopiëerd naar een ‘live’ OpenGL-tekstuur voor opname in het eindbeeld.
Het real-time-systeem werkt op een NVIDIA RTX 2080, met een resolutie van 1024×1024 pixels.
Aangezien haar-kleurwaarden volledig ontkoppeld zijn in de uiteindelijke waarden die door het netwerk worden verkregen, is het veranderen van de haarkleur een eenvoudige taak, hoewel effecten zoals gradients en strepen nog steeds een toekomstige uitdaging vormen.

De auteurs hebben de code die in de evaluaties van het artikel wordt gebruikt, op GitLab vrijgegeven. Bekijk de aanvullende video voor MVCGAN hieronder.
Conclusie
Het navigeren door de latent ruimte van een auto-encoder of GAN is nog steeds meer zoals zeilen dan precisie rijden. Pas in deze zeer recente periode beginnen we geloofwaardige resultaten te zien voor pose-generatie van ‘eenvoudigere’ geometrie zoals gezichten, in benaderingen zoals NeRF, GANs en niet-deepfake (2017) auto-encoder-kaders.
De significante architectonische complexiteit van menselijk haar, in combinatie met de noodzaak om fysieke modellen en andere eigenschappen op te nemen waarvoor de huidige beeldsynthesemethoden geen voorziening hebben, geeft aan dat haar-synthese waarschijnlijk niet zal blijven als een geïntegreerd onderdeel in algemene gezichtssynthese, maar zal vereisen afzonderlijke en gespecialiseerde netwerken van enige complexiteit – zelfs als dergelijke netwerken uiteindelijk kunnen worden opgenomen in bredere en complexere gezichtssynthesekaders.
Publicatie op 15 april 2022.













