Intelligenza artificiale
Risolvere i ‘cattivi giorni di capelli’ nella sintesi di immagini umane

Dall’età d’oro della statuaria romana, rappresentare i capelli umani è stata una sfida spinosa. La testa umana media contiene 100.000 capelli, ha indici di rifrazione variabili in base al colore e, oltre una certa lunghezza, si muoverà e si riformerà in modi che possono essere simulati solo attraverso modelli fisici complessi – fino ad ora, applicabili solo attraverso metodologie ‘tradizionali’ di CGI.

Dal ricerca del 2017 di Disney, un modello basato sulla fisica tenta di applicare un movimento realistico a uno stile di capelli fluido in un flusso di lavoro CGI. Fonte: https://www.youtube.com/watch?v=-6iF3mufDW0
Il problema è affrontato in modo insufficiente dai metodi di deepfakes attualmente popolari. Per alcuni anni, il pacchetto principale DeepFaceLab ha avuto un modello ‘testa completa’ che può catturare solo incarnazioni rigide di stili di capelli corti (di solito maschili); e recentemente DFL stablemate FaceSwap (entrambi i pacchetti sono derivati dal codice sorgente DeepFakes del 2017) ha offerto un’implementazione del modello di segmentazione semantica BiseNet, che consente all’utente di includere orecchie e capelli nel output deepfake.
Anche quando si rappresentano stili di capelli molto corti, i risultati tendono a essere molto limitati in qualità, con teste complete che appaiono sovrapposte al footage, piuttosto che integrate in esso.
Capelli GAN
I due principali approcci concorrenti per la simulazione umana sono i Campi di Radiance Neurale (NeRF), che possono catturare una scena da più punti di vista e incorporare una rappresentazione 3D di questi punti di vista in una rete neurale esplorabile; e le Reti Generative Avversarie (GANs), che sono notevolmente più avanzate in termini di sintesi di immagini umane (non da ultimo perché NeRF è emerso solo nel 2020).
La comprensione inferita di NeRF della geometria 3D gli consente di replicare una scena con grande fedeltà e coerenza, anche se attualmente ha poco o nessun scopo per l’imposizione di modelli fisici – e, in effetti, uno scopo relativamente limitato per qualsiasi tipo di trasformazione sui dati raccolti che non si riferisca al cambiamento del punto di vista della telecamera. Attualmente, NeRF ha capacità molto limitate in termini di riproduzione del movimento dei capelli umani.
Le controparti GAN di NeRF iniziano con un svantaggio quasi fatale, poiché, a differenza di NeRF, lo spazio latente di una GAN non incorpora nativamente una comprensione delle informazioni 3D. Pertanto, la sintesi di immagini facciali 3D-aware GAN è diventata una ricerca calda nella ricerca di generazione di immagini negli ultimi anni, con InterFaceGAN del 2019 una delle principali scoperte.
Tuttavia, anche i risultati di InterFaceGAN dimostrano che la coerenza dei capelli neurali rimane una sfida difficile in termini di coerenza temporale, per potenziali flussi di lavoro VFX:

Capelli ‘sfrigolanti’ in una trasformazione di posa da InterFaceGAN. Fonte: https://www.youtube.com/watch?v=uoftpl3Bj6w
Poiché diventa più evidente che la generazione di viste coerenti attraverso la manipolazione dello spazio latente solo può essere una ricerca alchemica, un numero crescente di articoli emerge che incorpora informazioni 3D basate su CGI in un flusso di lavoro GAN come vincolo stabilizzante e normalizzante.
L’elemento CGI può essere rappresentato da primitive 3D intermedie come un Skinned Multi-Person Linear Model (SMPL), o adottando tecniche di inferenza 3D in un modo simile a NeRF, dove la geometria è valutata dalle immagini o video sorgente.
Un nuovo lavoro lungo queste linee, rilasciato questa settimana, è Multi-View Consistent Generative Adversarial Networks for 3D-aware Image Synthesis (MVCGAN), una collaborazione tra ReLER, AAII, University of Technology Sydney, l’Accademia DAMO di Alibaba Group e l’Università di Zhejiang.

Pose facciali nuove e robuste generate da MVCGAN su immagini derivate dal set di dati CELEBA-HQ. Fonte: https://arxiv.org/pdf/2204.06307.pdf
MVCGAN incorpora una rete neurale di campo di radianza generativa (GRAF) in grado di fornire vincoli geometrici in una Rete Generativa Avversaria, raggiungendo probabilmente alcune delle capacità di posizionamento più autentiche di qualsiasi approccio GAN-based simile.
Tuttavia, il materiale supplementare per MVCGAN rivela che ottenere la coerenza del volume, della disposizione, della posizione e del comportamento dei capelli è un problema che non può essere affrontato facilmente attraverso vincoli basati su geometria 3D esternamente imposta.

Dal materiale supplementare non pubblicato al momento della scrittura, vediamo che mentre la sintesi della posa facciale da MVCGAN rappresenta un notevole progresso rispetto allo stato attuale dell’arte, la coerenza temporale dei capelli rimane un problema.
Poiché i flussi di lavoro CGI ‘semplici’ trovano ancora la ricostruzione temporale dei capelli una sfida, non c’è ragione di credere che gli approcci convenzionali basati sulla geometria di questo tipo porteranno la sintesi dei capelli coerente nello spazio latente nel prossimo futuro.
Stabilizzare i capelli con Reti Neurali Convolutive
Tuttavia, un prossimo articolo da tre ricercatori dell’Istituto di Tecnologia Chalmers in Svezia può offrire un ulteriore progresso nella simulazione neurale dei capelli.

A sinistra, la rappresentazione dei capelli stabilizzata da CNN, a destra, la verità di base. Vedi il video incorporato alla fine dell’articolo per una risoluzione migliore e ulteriori esempi. Fonte: https://www.youtube.com/watch?v=AvnJkwCmsT4
Il sistema comprende una rete basata su autoencoder in grado di valutare la risoluzione dei capelli, inclusa l’auto-ombreggiatura e tenendo conto della spessore dei capelli, in tempo reale, sulla base di un numero limitato di campioni stocastici generati da geometria OpenGL.
L’approccio rende un numero limitato di campioni con trasparenza stocastica e quindi addestra una U-net per ricostruire l’immagine originale.

Sotto MVCGAN, una CNN filtra fattori di colore campionati stocasticamente, highlight, tangenti, profondità e alfa, assemblando i risultati sintetizzati in un’immagine composita.
La rete è addestrata su PyTorch, convergendo in un periodo di sei a dodici ore, a seconda del volume della rete e del numero di caratteristiche di input. I parametri addestrati (pesi) vengono quindi utilizzati nell’implementazione in tempo reale del sistema.
I dati di addestramento sono generati rendendo diverse centinaia di immagini per stili di capelli dritti e ondulati, utilizzando distanze e pose casuali, nonché condizioni di illuminazione diverse.

Esempi vari di input di addestramento.
La traslucenza dei capelli attraverso i campioni è media da immagini rese con trasparenza stocastica a risoluzione supersampled. I dati di alta risoluzione originali vengono downsampati per adattarsi ai limiti della rete e dell’hardware, e successivamente upsampati, in un tipico flusso di lavoro di autoencoder.
L’applicazione di inferenza in tempo reale (il software ‘live’ che sfrutta l’algoritmo derivato dal modello addestrato) utilizza una miscela di NVIDIA CUDA con cuDNN e OpenGL. Le caratteristiche di input iniziali vengono scaricate in buffer di colore multisample di OpenGL, e il risultato viene instradato a tensori cuDNN prima dell’elaborazione nella CNN. Quei tensori vengono quindi copiati in una texture ‘live’ di OpenGL per l’imposizione nell’immagine finale.
Il sistema in tempo reale funziona su una NVIDIA RTX 2080, producendo una risoluzione di 1024×1024 pixel.
Poiché i valori di colore dei capelli sono completamente disaccoppiati nei valori finali ottenuti dalla rete, cambiare il colore dei capelli è un compito banale, sebbene gli effetti come gradienti e strisce rimangano una sfida futura.

Gli autori hanno rilasciato il codice utilizzato nelle valutazioni dell’articolo su GitLab. Controlla il video supplementare per MVCGAN qui sotto.
Conclusione
Navigare nello spazio latente di un autoencoder o di una GAN è ancora più simile alla navigazione che alla guida di precisione. Solo in questo recente periodo stiamo iniziando a vedere risultati credibili per la generazione di pose di ‘geometrie più semplici’ come i volti, in approcci come NeRF, GAN e framework di autoencoder non deepfake (2017).
La significativa complessità architettonica dei capelli umani, combinata con la necessità di incorporare modelli fisici e altri tratti per i quali gli approcci di sintesi di immagini attuali non hanno alcuna disposizione, indica che la sintesi dei capelli è improbabile che rimanga un componente integrato nella sintesi facciale generale, ma richiederà reti dedicate e separate di una certa sofisticazione – anche se tali reti potrebbero eventualmente essere incorporate in framework di sintesi facciale più ampi e complessi.
Pubblicato per la prima volta il 15 aprile 2022.











