Spazio e Scienze

Grafica FIFA 18, sviluppatore indipendente batte EA

Qualche settimana fa ha fatto notizia la pubblicazione di FakeApp, un algoritmo di machine learning che permette di sovrapporre il viso di chiunque a un video, con risultati incredibilmente realistici. All'epoca si parlava in particolare di pornografia: FakeApp, prodotta da un utente noto come DeepFakes, era usata infatti per inserire il volto di donne famose in video pornografici.

Ne è seguito immediatamente un acceso dibattito etico incentrato su una questione molto delicata: è legittimo manipolare l'immagine di un'altra persona e farle fare qualcosa senza il suo consenso? Naturalmente la risposta è no, ma i divieti etici non hanno mai fermato nessuno. Se qualcuno vuole farsi un porno con la diva di turno può farlo. L'autore del software arrivò a pubblicare un video per mostrarne un uso meno discutibile.

Non solo porno: algoritmi simili si possono usare per manipolare l'immagine di chiunque. Prendete un leader di estrema destra a fategli fare un discorso in favore dell'integrazione culturale, o prendetene uno dell'altra sponda e fategli fare una dichiarazione xenofoba. Basta qualche ora di lavoro, e può riuscirci anche una persona con competenze limitate. In effetti, non serve praticamente alcuna competenza: basta un po' di inglese e fare copia/incolla dei comandi necessari.  

L'altro elemento determinante è che non serve un supercomputer: l'algoritmo di deepfakes funziona su quello che avete a casa senza particolari problemi a parte il tempo necessario: con una Nvidia GTX 1070 ci vogliono circa quattro ore di lavoro per ottenere un risultato di buona qualità – ma si può andare oltre per migliorare i risultati.

Sarà sempre più difficile distinguere ciò che è reale da ciò che è falso.

Siraj Raval (YouTube)

In teoria, inoltre, la manipolazione non si limita alle persone famose. Con loro è più semplice perché è facile trovare migliaia di immagini con cui addestrare l'algoritmo. Ma in teoria si può fare con chiunque, ammesso e non concesso che abbiate abbastanza fotografie. Infine, non si può trascurare il fatto che questo tipo di operazioni sarà presto a portata di smartphone: il loro hardware diventa sempre più potente, da una parte, e dall'altra software di questo tipo chiedono sempre meno risorse.

Non sorprende dunque che qualcuno si sia spinto a parlare di "arma digitale". Dopotutto il video ottenuto si potrebbe usare per ricattare qualcuno; ma le tecnologie nono sono buone o cattive di per sé, è l'uso che ne facciamo a fare la differenza.

L'esperimento FIFA 18

Ha cercato di dimostrarlo Chintan Trivedi, che ha documentato sul suo blog come deepfakes possa servire anche per rendere più realistica la grafica dei videogiochi con un investimento minimo. Per dimostrarlo ha sperimentato usando FIFA18, un gioco che ama personalmente.

Se conoscete il gioco sapete che la grafica è migliorata molto negli anni, ma nonostante gli investimenti il volto dei giocatori non è ancora uguale a quello della persona in carne e ossa. Nella migliore delle ipotesi è "abbastanza somigliante".

Trivedi ha campionato l'immagine di Cristiano Ronaldo com'è rappresentato in FIFA18 per creare un primo set di immagini. E ne ha creato un secondo usando alcune delle migliaia di immagini disponibili online (basta cercare su Google). A questo punto aveva due set di immagini, uno con il "vero" Ronaldo e un altro con quello digitale preso dal gioco.

1 AR 0TmUZnEj70dGCf017Ig[1]

Encoder A

1 hR5dhwR AfOF0dNj16YA6g[1]
Encoder B

Il passaggio successivo è l'addestramento delle reti neurali, che nel caso di deepfakes si chiamano autoencoders. Parliamo di reti neurali convoluzionali e di apprendimento non supervisionato; vale a dire che il sistema impara da solo, senza intervento umano. A valle degli encoder c'è un decoder che ricostruisce l'immagine.

"Questa architettura", scrive Trivedi, "forza la rete a imparare la distribuzione sottostante all'input invece di limitarsi a scopiazzarlo. Usando le immagini come input, usiamo una rete convoluzionale come encoder e una convoluzionale come decoder. Questa architettura è pensata per minimizzare gli errori di ricostruzione nell'apprendimento non supervisionato".

Trivedi ha applicato lo stesso metodo utilizzato per i video pornografici. Due encoder identici che lavorano in contemporanea, uno con le immagini prese da FIFA e un altro con quelle del vero Ronaldo. Il Decoder è invece diverso (A e B).

Abbiamo così due reti che sanno com'è Ronaldo nel gioco e nel mondo vero.

"Adesso arriva la parte divertente. L'algoritmo può scambiare i volti usando un trucchetto molto furbo. La rete del secondo autoencoder viene alimentata con l'input della prima. In questo modo l'encoder condiviso può prendere la codifica del volto FIFA, ma il decoder ricostruisce quella reale usando l'encoding. Voilà, abbiamo sostituito la faccia FIFA con quella del vero Ronaldo". Il risultato agli occhi dell'autore è spettacolare, ma ognuno può giudicare con i propri occhi.

1 b33af3NGdGxZG13w493bTQ[1]
Sostituzione

Data la natura degli algoritmi, non mi stupirei se l'anno prossimo Electronic Arts o altre società inserissero la possibilità di mettere sé stessi nel gioco. Volete essere un giocatore della vostra squadra favorita? Un soldato all'assalto delle basi nemiche? Uno strano idraulico con i baffi? In teoria non c'è limite a quello che è possibile fare con questi strumenti.

Pregi e difetti

Affidiamo allo stesso Trivedi i pensieri conclusivi sul suo esperimento, con una considerazione su pro e contro.

"Il più grande vantaggio di questo approccio, secondo me, è che si ottengono splendidi volti realistici e grafiche fotorealistiche. Tutto con poche ore di lavoro, in confronto agli anni che servono ai game designer con l'approccio attuale. Questo significa che gli editori di videogiochi potrebbero pubblicare nuovi titoli molto più velocemente senza investire decenni nello sviluppo. Significa anche che gli studi possono risparmiare milioni di dollari, e che potrebbero investirli per assumere degli sceneggiatori decenti".

"L'evidente limitazione è che questi volti sono stati generati ex post, come nei film in CGI, mentre i giochi richiedono una generazione in tempo reale. Una differenza notevole è però che questo approccio non richiede alcun intervento umano per creare i risultati dopo l'addestramento, e l'unico limite è il tempo necessario per i calcoli".

"Credo che non passerà molto prima di vedere modelli generativi non così profondi e leggeri, che possono girare molto velocemente senza compromettere la qualità finale. Proprio come oggi abbiamo (reti neurali) YOLO e MobileNets SSD per l'individuazione in tempo reale degli oggetti, una cosa che non era possibile con i modelli precedenti come gli RCNN".

Insomma, Trevedi è convinto che presto algoritmi del genere potranno funzionare in tempo reale e senza richieste hardware troppo esose. Che dite, avrà ragione?