Icone color1 09

Utilizzo del Deep Learning per migliorare la grafica di FIFA 18

Autore: Chintan Trivedi

Linkedin: https://www.linkedin.com/in/chintan-trivedi-78665774/

Traduttrice: Sabrina Sala

 

1

 

Comparazione tra i due volti di Ronaldo: a sinistra quello di FIFA 18, a destra quello generato da una rete neurale profonda.

La Game Studios ha speso milioni di dollari e centinaia di ore di ricerca e sviluppo nel progettare la grafica del gioco, nel tentativo di renderla quanto più veritiera e naturale possibile. Nonostante i volti dei calciatori siano decisamente realistici, è ancora possibile distinguerli dal reale. Tuttavia, i profondi sviluppi avuti nell’elaborazione di immagini con l’utilizzo delle reti neurali profonde possono essere sfruttati per migliorare la grafica e, allo stesso tempo, ridurre lo sforzo necessario per farlo?

Proviamo quindi a rispondere utilizzando FIFA 18

Per capire se i recenti sviluppi possano aiutarci a rispondere a questa domanda, cerchiamo di focalizzarci sul miglioramento della grafica facciale dei giocatori utilizzando l’algoritmo DeepFakes, una rete neurale profonda che può essere allenata ad apprendere e generare visi umani in modo estremamente realistico. Questo articolo si occuperà, quindi, di ricreare i volti dei giocatori, riprendendoli dal gioco, per poi migliorarli in modo da renderli quanto più identici al reale.

Nota: qui troverete una buona spiegazione su come funzioni l’algoritmo deepfake, il quale può sostituire un volto con quello di qualsiasi altra persona utilizzando autoencoder e reti neurali convoluzionali.

Raccogliere dati di allenamento

A differenza degli sviluppatori del gioco, possiamo ottenere i dati necessari da una ricerca con Google, senza dover scomodare Ronaldo affinché indossi tute in grado di registrare i movimenti.

Cominciamo osservando il suo volto digitale, uno dei meglio riusciti nel gioco. Al fine di raccogliere informazioni per l’algoritmo deepfakes, dobbiamo semplicemente registrare il viso del giocatore attraverso la funzione di instant replay del gioco. Ora possiamo sostituirla con il vero volto di Ronaldo e, a tale scopo, scarichiamo alcune sue immagini dalla ricerca di Google che lo mostrino da angolazioni differenti. Questi pochi elementi sono tutto ciò che ci serve per cominciare il processo di allenamento del modello.

Architettura del modello e allenamento

L’algoritmo deepfakes riguarda l’allenamento di reti neurali profonde chiamate autoencoder. Queste reti per l’allenamento non supervisionato sono composte da un encoder in grado di comprime l’input in uno spazio di variabili latenti chiamato “encoding”, e da un decoder che utilizza questo spazio per ricostruire l’input. Tale architettura costringe la rete a estrapolare informazioni sulla distribuzione dei dati di input, piuttosto che lasciare che essa si limiti al semplice compito di copiare l’input in output. Utilizzeremo qui una rete convoluzionale come encoder e una rete neurale deconvoluzionale come decoder. Questa architettura è allenata a minimizzare l’errore di ricostruzione nell’apprendimento non supervisionato.

Nel nostro caso, inoltre, alleneremo simultaneamente due autoencoder: il primo imparerà a ricreare il viso di Ronaldo dalla grafica di FIFA 18, mentre la seconda lo farà utilizzando le immagini reali precedentemente scaricate. Nel deepfakes entrambe le reti condividono lo stesso encoder ma sono allenati con differenti decoder.

2.jpg 5

2.jpg 5

  1. Funzionamento del primo autoencoder che impara dalla grafica del gioco

3 2

2. Funzionamento del secondo autoencoder che impara attraverso immagini reali

Utilizzando un modello precedentemente allenato su altri volti, la perdita totale passa da 0.06 a 0.02, circa, in quattro ore di allenamento sfruttando una GTX 1070. In questo caso, l’allenamento è continuato sullo stesso modello, CageNet, utilizzato in precedenza per generare il volto di Nicolas Cage.

Utilizzare il modello allenato per scambiare i volti

Ora arriviamo alla parte più interessante. L’algoritmo è in grado di scambiare i volti adottando un trucco intelligente: nel secondo autoencoder viene, di fatto, inserito l’input del primo. In questo modo, l’encoder condiviso riesce ad utilizzare l’encoding ottenuto dai volti digitali di FIFA 18 e lascia che il decoder B ricostruisca, sulla base dell’immagine digitale, il volto reale. Così facendo i volti di FIFA vengono direttamente convertiti nell’immagine realistica di Ronaldo.

4 2

Il secondo encoder converte il volto di FIFA in quello reale di Ronaldo

Risultati

La GIF mostra un’anteprima veloce dei risultati ottenuti lasciando operare l’algoritmo sui volti di altri giocatori. Il miglioramento è notevole.

 

5 1

5 1

6

6

Confronto prima e dopo deepfakes, dei volti di Ronaldo, Morate e Ozil

Ulteriori risultati possono essere trovati in questo video.

Possiamo utilizzare l’algoritmo per mettere noi stessi nel gioco?

La risposta è si: tutto ciò che serve è un video della durata di un minuto di noi stessi e scaricar(ne?) il modello allenato in poche ore. Possiamo, in questo modo, trovare noi stessi nel gioco in modalità “Il viaggio”.

Punti di forza e di debolezza

Il miglior vantaggio che abbiamo ottenuto da questo approccio è certamente l’iperrealismo dei volti e della grafica, difficilmente distinguibili dalla realtà.  Questo risultato può essere raggiunto in poche ore di allenamento, a differenza di quanto avviene per gli sviluppatori del gioco che, con l’approccio odierno, impiegano invece anni. Ciò significa quindi che i produttori potrebbero potenzialmente realizzare nuovi titoli in tempi molto più ridotti e che le case di produzione potrebbero risparmiare molto denaro.

La limitazione più evidente finora è, invece, che questi volti sono stati generati a posteriori, come le CGI (immagini generate a computer) nei film, mentre il gioco ne richiede una realizzazione in tempo reale.  Ciò nonostante, una grossa differenza sta nel fatto che questo approccio non richiede nessun intervento umano per generare risultati efficaci dopo che il modello è stato allenato. E inoltre, l’unico limite è il tempo impiegato dalla rete neurale per generare l’immagine di output. Probabilmente non sarà necessario molto tempo prima di riuscire ad avere modelli generativi non troppo profondi e pesanti, che possano lavorare molto velocemente senza compromettere la qualità dell’output. Proprio come succede per YOLO, SSD e MobileNets per la rilevazione di oggetti in tempo reale, cosa che invece non era possibile in precedenza con modelli come i RCNN.

 

0 commenti

Lascia un Commento

Vuoi partecipare alla discussione?
Fornisci il tuo contributo!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *