Con 3 immagini puoi vedere il tuo nuovo taglio di capelli

Negli ultimi anni, abbiamo visto molte I.A. in grado di modificare le immagini in vari modi, ad esempio cambiando attributi globali come la posa, l’espressione, il sesso o l’età. Un altro approccio alla modifica delle immagini è invece quello di selezionare caratteristiche da immagini di riferimento (ad esempio i capelli) e mescolarle insieme per formare una singola immagine composita.

È il caso di questo tipo di GAN chiamata Barbershop, che può trasformare non solo la pettinatura dei vostri capelli ma anche il colore a partire da 3 immagini:

  1. una tua foto;
  2. una foto di qualcuno con l’acconciatura che vorresti avere;
  3. un’altra foto (o la stessa) del colore di capelli che vorresti provare.
barbershop

Il problema principale, tuttavia, è che le proprietà visive delle varie sezioni di un’immagine non sono indipendenti le une dalle altre. La luce ambientale e quella riflessa, così come i colori trasmessi dal viso sottostante, dai vestiti e dallo sfondo, hanno tutti un impatto sugli aspetti estetici dei capelli. La forma della testa e delle spalle di una persona influenza l’aspetto del suo naso, degli occhi e della bocca, e la geometria della testa e delle spalle influenza le ombre e la geometria dei capelli.

La disocclusione dello sfondo, che si verifica quando la regione dei capelli si riduce in relazione allo sfondo, è un altro problema. La disocclusione del volto può rivelare nuove parti del viso, come le orecchie, la fronte o la linea della mascella. La forma dei capelli è determinata dalla posizione così come dalle limitazioni intrinseche della fotocamera, quindi la posa può aver bisogno di essere regolata per adattare i capelli. Anche se ogni parte del volto viene sintetizzata con un alto livello di realismo, non tenendo conto della coerenza globale di un’immagine si otterranno artefatti visibili e le diverse sezioni dell’immagine appariranno disgiunte.

Per esempio, come menzionato in questo articolo, se prendete i capelli di qualcuno da una fotografia scattata in una stanza buia e provate a metterli su una testa alla luce del giorno, sembreranno comunque innaturali, anche se sono correttamente trasposti. Altri algoritmi basati sulle GAN tentano in genere di codificare le informazioni nelle immagini e di identificare specificamente la regione associata agli attributi dei capelli al fine di sostituirli. Quando le due foto sono scattate in condizioni simili, funziona bene, ma non sembrerà naturale la maggior parte delle volte per le ragioni indicate.

Di conseguenza, si è dovuto usare un’altra rete per correggere la nuova illuminazione, i buchi e altri strani artefatti che la fusione genera. Quindi l’obiettivo era quello di trasporre il taglio di capelli e il colore di una specifica immagine su un’altra immagine regolando i risultati per seguire l’illuminazione e la proprietà di quell’immagine per renderla realistica e ridurre i passaggi e le fonti di errore.

Peihao Zhu, responsabile del progetto, ha ottenuto questo risultato aggiungendo una fase di allineamento mancante, ma cruciale alle GAN. Infatti, invece di limitarsi a codificare e combinare le immagini, essa regola sensibilmente la codifica utilizzando una maschera di segmentazione modificata per rendere il codice delle due immagini più simile.

segmentation mask
Il trasferimento dell’acconciatura è realizzato trasferendo l’aspetto (attributi di stile fini) e la struttura (attributi di stile grossolani) da immagini di riferimento in un’immagine composita. In ogni riquadro, l’aspetto, la struttura e le maschere di destinazione per un’immagine di acconciatura, sono mostrati sulla sinistra, con la forma dei capelli in magenta. Il riquadro (a) è un’immagine di riferimento utilizzata per il volto e lo sfondo, e (e) è una ricostruzione. In (b) viene utilizzata un’immagine di riferimento per trasferire la struttura dei capelli, ma l’aspetto dei capelli proviene dal volto originale, e (c) trasferisce sia l’aspetto che la struttura da un riferimento dei capelli, in (d) e (f) vengono trasferiti sia la struttura che gli attributi dell’aspetto, (g) e (h) utilizzano una forma dei capelli che è diversa da qualsiasi immagine di riferimento.

Le convoluzioni sono utilizzate dalle GAN per codificare le informazioni. Ciò implica l’impiego di kernel per ridimensionare l’informazione ad ogni strato e renderla sempre più piccola, riducendo le caratteristiche spaziali una ad una mentre si aumenta il valore dell’informazione generale in uscita. Questi dati strutturali sono acquisiti dai primi strati della GAN prima che la codifica diventi troppo generica e troppo codificata per rappresentare aspetti spaziali.

segmentation
Una panoramica del metodo; (a) immagini di riferimento per le caratteristiche del viso (in alto) e dei capelli (in basso), (b) immagini ricostruite, (c) una maschera di destinazione con la regione dei capelli (magenta) dall’immagine dei capelli e tutte le altre regioni dall’immagine del viso, (d) allineamento nello spazio𝑊+, (e) una vista ravvicinata del volto (in alto) e dei capelli (in basso) nello spazio𝑊+, (f) viste ravvicinate dopo il trasferimento dei dettagli, (g) un’intera immagine con i dettagli trasferiti, (h) il tensore di struttura viene trasferito nell’immagine miscelata, e (i) il codice di aspetto viene ottimizzato. Il flusso di dati attraverso il processo è illustrato nello schema in basso.

Le mappe di segmentazione delle foto vengono utilizzate per generare un output più realistico. E, più specificamente, creando questa nuova immagine desiderata usando una versione conforme all’obiettivo e all’immagine di riferimento. Queste mappe di segmentazione ci mostrano cosa c’è nell’immagine e dove si trova, come: capelli, pelle, occhi, naso e così via.

target mask
Generazione della maschera di destinazione. In questo esempio, 19 regioni semantiche sono rietichettate per formare quattro categorie semantiche compreso lo sfondo.

Utilizzando queste informazioni dalle diverse foto è possibile allineare le teste seguendo l’immagine di destinazione prima di mandare le immagini alla rete per la codifica, utilizzando un’architettura modificata basata su StyleGAN2. Questo allineamento facilita notevolmente il confronto e la ricostruzione dei dati codificati.

Si identifica poi un rapporto di mescolanza accettabile di queste codifiche di aspetto dalle immagini di destinazione e di riferimento per le regioni segmentate identiche, per farle sembrare il più autentiche possibile riguardo al problema dell’aspetto e dell’illuminazione.

limitations
Fallimento dell’approccio; (1) maschere di segmentazione disallineate portano a immagini non plausibili; (2,4) la GAN non riesce a ricostruire il volto, sostituendo le labbra con i denti o rimuovendo i gioielli; (3,5) la sovrapposizione di ciocche traslucide o sottili di capelli e volto rappresentano un problema; (6) una regione della maschera di destinazione che non è coperta dall’immagine dei capelli è sintetizzata con una struttura diversa; (7) la combinazione di immagini prese da prospettive diverse può produrre risultati anatomicamente improbabili, la forma originale della testa è indicata in giallo.

L’architettura, come quella di altre implementazioni GAN, ha dovuto essere addestrata. Hanno impiegato una rete basata su StyleGAN2 addestrata sul dataset di immagini FFHQ in questo esperimento. Poiché hanno apportato così tanti cambiamenti, hanno poi addestrato la loro rete StyleGAN2 aggiornata una seconda volta, utilizzando 198 coppie di foto come esempi di trasferimento di acconciature per massimizzare la scelta del modello, sia per il rapporto di mescolanza dell’aspetto che per le codifiche strutturali.

Come potete immaginare, ci sono ancora alcuni difetti nel loro approccio, come quando le maschere di segmentazione non sono allineate o il volto non viene ricostruito. Tuttavia, i risultati sono eccellenti.

I barbieri e i parrucchieri adotteranno sicuramente questa tecnologia in futuro per mostrare come stanno i loro clienti con un certo taglio.