Andersons vinkel

Att tackla ‘dåliga hår-dagar’ i mänsklig bildsyntes

mm
Lägg till Unite.AI bland dina föredragna källor på Google

Sedan den gyllene tiden för romersk statuary har avbildning av mänskligt hår varit en törnig utmaning. Den genomsnittliga mänskliga huvudet innehåller 100 000 strån, har varierande refraktiva index enligt dess färg och, bortom en viss längd, kommer att röra sig och omformas på sätt som bara kan simuleras med komplexa fysikmodeller – hittills, bara tillämpliga genom ‘traditionella’ CGI-metoder.

Från 2017 års forskning av Disney, försöker en fysikbaserad modell tillämpa realistisk rörelse på en flytande frisyr i en CGI-arbetsflöde. Källa: https://www.youtube.com/watch?v=-6iF3mufDW0

Från 2017 års forskning av Disney, försöker en fysikbaserad modell tillämpa realistisk rörelse på en flytande frisyr i en CGI-arbetsflöde. Källa: https://www.youtube.com/watch?v=-6iF3mufDW0

Problemet är dåligt hanterat av moderna populära deepfakes-metoder. Under flera år har den ledande paketen DeepFaceLab haft en ‘full huvud’-modell som bara kan fånga rigida kroppar av korta (vanligtvis manliga) frisyrer; och nyligen har DFL-stablemate FaceSwap (båda paketen är härledda från den kontroversiella 2017 DeepFakes-källkoden) erbjudit en implementering av BiseNet semantisk segmenteringsmodell, som tillåter en användare att inkludera öron och hår i deepfake-utdata.

Även när man avbildar mycket korta frisyrer tenderar resultaten att vara mycket begränsade i kvalitet, med fulla huvuden som verkar vara överlagrade på film, snarare än integrerade i den.

GAN Hår

De två stora konkurrerande tillvägagångssätten för mänsklig simulering är Neural Radiance Fields (NeRF), som kan fånga en scen från flera vinklar och inkapsla en 3D-representation av dessa vinklar i ett utforskande neuronnät; och Generative Adversarial Networks (GANs), som är betydligt mer avancerade när det gäller mänsklig bildsyntes (inte minst för att NeRF bara uppkom 2020).

NeRF:s antagna förståelse av 3D-geometri möjliggör att det kan replikera en scen med stor trohet och konsekvens, även om det för närvarande har liten eller ingen möjlighet för påförandet av fysikmodeller – och, i själva verket, relativt begränsad möjlighet för någon form av transformation på de insamlade data som inte relaterar till att ändra kameravinkeln. För närvarande har NeRF mycket begränsade möjligheter när det gäller att reproducera mänskligt hår-rörelse.

GAN-baserade motsvarigheter till NeRF börjar med en nästan dödlig nackdel, eftersom, till skillnad från NeRF, latent utrymmet i en GAN inte naturligt inkorporerar en förståelse av 3D-information. Därför har 3D-medveten GAN-ansiktsbildsyntes blivit en het jakt i bildgenereringsforskning under de senaste åren, med 2019 års InterFaceGAN en av de ledande genombrotten.

Men även InterFaceGAN:s visade och utvalda resultat visar att neural hårkonsistens förblir en tuff utmaning när det gäller temporal konsistens, för potentiella VFX-arbetsflöden:

'Sizzling' hår i en poseringsomvandling från InterFaceGAN. Källa: https://www.youtube.com/watch?v=uoftpl3Bj6w

‘Sizzling’ hår i en poseringsomvandling från InterFaceGAN. Källa: https://www.youtube.com/watch?v=uoftpl3Bj6w

Såsom det blir mer uppenbart att konsekvent vygenerering via manipulation av latent utrymme ensam kan vara en alkemiliknande strävan, ökar antalet artiklar som inkorporerar CGI-baserad 3D-information i en GAN-arbetsflöde som en stabiliserande och normaliserande begränsning.

CGI-elementet kan representeras av mellanliggande 3D-primitiver såsom en Skinned Multi-Person Linear Model (SMPL), eller genom att anta 3D-inferenstekniker på ett sätt som liknar NeRF, där geometri utvärderas från källbilder eller video.

En ny arbete i den här riktningen, släppt denna vecka, är Multi-View Consistent Generative Adversarial Networks for 3D-aware Image Synthesis (MVCGAN), ett samarbete mellan ReLER, AAII, University of Technology Sydney, DAMO Academy vid Alibaba Group och Zhejiang University.

Plausibla och robusta nya ansiktsposer genererade av MVCGAN på bilder hämtade från CELEBA-HQ-databasen. Källa: https://arxiv.org/pdf/2204.06307.pdf

Plausibla och robusta nya ansiktsposer genererade av MVCGAN på bilder hämtade från CELEBA-HQ-databasen. Källa: https://arxiv.org/pdf/2204.06307.pdf

MVCGAN inkorporerar en generativ radiance field-nätverk (GRAF) som kan tillhandahålla geometriska begränsningar i en Generative Adversarial Network, och som troligen uppnår några av de mest autentiska poseringsförmågorna för någon liknande GAN-baserad approach.

Jämförelse mellan MVCGAN och tidigare metoder GRAF, GIRAFFE och pi-GAN.

Jämförelse mellan MVCGAN och tidigare metoder GRAF, GIRAFFE och pi-GAN.

Men, supplementär material för MVCGAN avslöjar att att få hårvolym, disposition, placering och beteendekonsistens är ett problem som inte lätt kan hanteras genom begränsningar baserade på externt påförda 3D-geometri.

Från supplementär material som inte släpptes offentligt vid skrivandet, ser vi att medan ansiktspos-syntes från MVCGAN representerar en betydande framsteg jämfört med den nuvarande tillståndet i konsten, förblir temporal hårkonsistens ett problem.

Från supplementär material som inte släpptes offentligt vid skrivandet, ser vi att medan ansiktspos-syntes från MVCGAN representerar en betydande framsteg jämfört med den nuvarande tillståndet i konsten, förblir temporal hårkonsistens ett problem.

Eftersom ‘enkla’ CGI-arbetsflöden fortfarande finner temporal hårrekonstruktion en sådan utmaning, finns det ingen anledning att tro att konventionella geometribaserade tillvägagångssätt av detta slag kommer att bringa konsekvent hår-syntes till latent utrymme när som helst snart.

Stabilisering av hår med Convolutional Neural Networks

Men, en kommande artikel från tre forskare vid Chalmers tekniska högskola i Sverige kan erbjuda ytterligare framsteg i neural hår-simulering.

Till vänster, CNN-stabiliserad hårrepresentation, till höger, grund-sanningen. Se video i slutet av artikeln för bättre upplösning och ytterligare exempel. Källa: https://www.youtube.com/watch?v=AvnJkwCmsT4

Till vänster, CNN-stabiliserad hårrepresentation, till höger, grund-sanningen. Källa: https://www.youtube.com/watch?v=AvnJkwCmsT4

Artikeln, med titeln Real-Time Hair Filtering with Convolutional Neural Networks, kommer att publiceras för i3D-symposiet i början av maj.

Systemet består av ett autoencoder-baserat nätverk som kan utvärdera hårupplösning, inklusive självskuggning och hänsyn till hår-tjocklek, i realtid, baserat på ett begränsat antal stokastiska prover som initierats av OpenGL-geometri.

Tillvägagångssättet återger ett begränsat antal prover med stokastisk transparens och tränar sedan ett U-nät för att rekonstruera den ursprungliga bilden.

Under MVCGAN, filtrerar en CNN stokastiskt sampade färgfaktorer, höjdpunkter, tangenter, djup och alfa, och sätter samman de syntetiserade resultaten till en sammansatt bild.

Under MVCGAN, filtrerar en CNN stokastiskt sampade färgfaktorer, höjdpunkter, tangenter, djup och alfa, och sätter samman de syntetiserade resultaten till en sammansatt bild.

Nätverket tränas på PyTorch, konvergerar över en period av sex till tolv timmar, beroende på nätverksvolymen och antalet indatafunktioner. De tränade parametrarna (vikterna) används sedan i den realtidsimplementeringen av systemet.

Träningsdata genereras genom att återge flera hundra bilder för raka och vågiga frisyrer, med slumpmässiga avstånd och poser, samt varierande belysningsförhållanden.

Olika exempel på träningsinmatning.

Olika exempel på träningsinmatning.

Hårgenomskinlighet över proverna är genomsnittlig från bilder återgivna med stokastisk transparens i supersampled upplösning. De ursprungliga högupplösta data är nedsampled för att anpassa sig till nätverks- och maskinbegränsningar, och sedan uppsampled, i ett typiskt autoencoder-arbetsflöde.

Den realtids-inferens-applikationen (den ‘levande’ programvaran som utnyttjar algoritmen som härrör från den tränade modellen) använder en kombination av NVIDIA CUDA med cuDNN och OpenGL. De initiala indatafunktionerna dumpas till OpenGL multisampled färgbuffertar, och resultatet skickas till cuDNN-tensorer innan bearbetning i CNN. Dessa tensorer kopieras sedan tillbaka till en ‘levande’ OpenGL-textur för påföring i den slutliga bilden.

Det realtids-systemet opererar på en NVIDIA RTX 2080, producerar en upplösning på 1024×1024 pixlar.

Eftersom hår-färgvärden är helt desamma i de slutliga värden som erhålls av nätverket, är det en trivial uppgift att ändra hår-färgen, även om effekter som graderingar och strimmor förblir en framtida utmaning.

Författarna har släppt koden som användes i artikeln på GitLab. Se den supplementära videon för MVCGAN nedan.

Slutsats

Att navigera i det latenta utrymmet i en autoencoder eller GAN är fortfarande mer likt segling än precisionkörning. Bara under denna mycket sena period börjar vi se trovärdiga resultat för posgenerering av ‘enklare’ geometri såsom ansikten, i tillvägagångssätt som NeRF, GANs och icke-deepfake (2017) autoencoder-ramverk.

Den betydande arkitektoniska komplexiteten hos mänskligt hår, kombinerat med behovet av att inkorporera fysikmodeller och andra egenskaper för vilka nuvarande bildsyntes-approach har ingen bestämmelse, indikerar att hår-syntes inte kommer att förbli en integrerad komponent i allmän ansikts-syntes, utan kommer att kräva dedikerade och separata nätverk av viss sofistikering – även om sådana nätverk kan bli inkorporerade i bredare och mer komplexa ansikts-syntes-ramverk.

 

Publicerad första gången den 15 april 2022.

Författare på maskinlärande, domänspecialist inom mänsklig bildsyntes. Fd chef för forskningsinnehåll på Metaphysic.ai, till dess upplösning i DNEG:s Brahma.ai.
Portfolio site: martinanderson.ai
Kontakt: martin@martinanderson.ai