Nvidia ha sviluppato un modo radicalmente diverso per comprimere le videochiamate

0
6

Ingrandisci / Invece di trasmettere un'immagine per ogni fotogramma, Maxine invia i dati dei punti chiave che consentono al computer ricevente di ricreare il viso utilizzando una rete neurale.

Nvidia

Il mese scorso, Nvidia ha annunciato una nuova piattaforma chiamata Maxine che utilizza l'intelligenza artificiale per migliorare le prestazioni e le funzionalità del software di videoconferenza. Il software utilizza una rete neurale per creare una rappresentazione compatta del volto di una persona. Questa rappresentazione compatta può quindi essere inviata attraverso la rete, dove una seconda rete neurale ricostruisce l'immagine originale, possibilmente con utili modifiche.

Nvidia afferma che la sua tecnica può ridurre le esigenze di larghezza di banda del software di videoconferenza di un fattore 10 rispetto alle tecniche di compressione convenzionali. Può anche cambiare il modo in cui viene visualizzato il viso di una persona. Ad esempio, se qualcuno sembra essere rivolto fuori centro a causa della posizione della sua fotocamera, il software può ruotare il suo viso per guardare invece dritto. Il software può anche sostituire il vero volto di qualcuno con un avatar animato.

Maxine è un kit di sviluppo software, non un prodotto di consumo. Nvidia spera che gli sviluppatori di software di terze parti utilizzeranno Maxine per migliorare il proprio software di videoconferenza. E il software ha un'importante limitazione: il dispositivo che riceve un flusso video necessita di una GPU Nvidia con tecnologia tensor core. Per supportare i dispositivi senza una scheda grafica appropriata, Nvidia consiglia di generare fotogrammi video nel cloud, un approccio che può o non può funzionare bene nella pratica.

Ma indipendentemente da come si comporta Maxine sul mercato, il concetto sembra probabilmente essere importante per i servizi di streaming video in futuro. In poco tempo, la maggior parte dei dispositivi informatici sarà abbastanza potente da generare contenuti video in tempo reale utilizzando reti neurali. Maxine e prodotti simili potrebbero consentire flussi video di qualità superiore con un consumo di larghezza di banda molto inferiore.

Duellanti reti neurali

Ingrandisci / Una rete generativa di antagonismo trasforma schizzi di borse in immagini fotorealistiche di borse.

Maxine si basa su una tecnica di apprendimento automatico chiamata GAN (generative adversarial network).

Un GAN è una rete neurale, una funzione matematica complessa che accetta input numerici e produce output numerici. Per le applicazioni visive, l'input a una rete neurale è in genere una rappresentazione pixel per pixel di un'immagine. Una famosa rete neurale, ad esempio, ha preso le immagini come input e ha generato la probabilità stimata che l'immagine rientrasse in ciascuna delle 1.000 categorie come "dalmata" e "fungo".

Le reti neurali hanno migliaia, spesso milioni, di parametri regolabili. La rete viene addestrata valutando le sue prestazioni rispetto ai dati del mondo reale. Alla rete viene mostrato un input del mondo reale (come l'immagine di un cane) la cui corretta classificazione è nota al software di addestramento (forse "dalmata"). Il software di formazione utilizza quindi una tecnica chiamata propagazione inversa per ottimizzare i parametri della rete. I valori che hanno spinto la rete verso la risposta giusta vengono potenziati, mentre quelli che hanno contribuito a una risposta sbagliata vengono richiamati. Dopo aver ripetuto questo processo su migliaia, persino milioni, di esempi, la rete potrebbe diventare piuttosto efficace nel compito per cui è stata addestrata.

Il software di formazione deve conoscere la risposta corretta per ogni input. Per questo motivo, i classici progetti di machine learning spesso richiedevano alle persone di etichettare manualmente migliaia di esempi. Ma il processo di addestramento può essere notevolmente accelerato se esiste un modo per generare automaticamente i dati di addestramento.

Una rete antagonista generativa è un modo intelligente per addestrare una rete neurale senza la necessità per gli esseri umani di etichettare i dati di addestramento. Come suggerisce il nome, un GAN è in realtà due reti che "competono" l'una contro l'altra.

La prima rete è un generatore che prende dati casuali come input e cerca di produrre un'immagine realistica. La seconda rete è un discriminatore che prende un'immagine e cerca di determinare se si tratta di un'immagine reale o di un falso creato dalla prima rete.

Annuncio pubblicitario

Il software di formazione esegue queste due reti contemporaneamente, con i risultati di ciascuna rete utilizzati per addestrare l'altra:

  • Le risposte del discriminatore vengono utilizzate per addestrare il generatore. Quando il discriminatore classifica erroneamente una foto creata da un generatore come autentica, significa che il generatore sta facendo un buon lavoro nel creare immagini realistiche, quindi i parametri che hanno portato a quel risultato sono rinforzati. D'altra parte, se il discriminatore classifica un'immagine come un falso, viene trattata come un fallimento per il generatore.
  • Nel frattempo, il software di addestramento mostra al discriminatore una selezione casuale di immagini che sono reali o create dal generatore. Se il discriminatore indovina, viene considerato un successo ei parametri della rete del discriminatore vengono aggiornati per riflettere ciò.

All'inizio della formazione, entrambe le reti sono pessime nel loro lavoro, ma migliorano nel tempo. Man mano che la qualità delle immagini del generatore migliora, il discriminatore deve diventare più sofisticato per rilevare i falsi. Man mano che il discriminatore diventa più discriminante, la rete generativa viene addestrata a realizzare foto che sembrano sempre più realistiche.

I risultati possono essere spettacolari. Un sito web chiamato ThisPersonDoesNotExist.com fa esattamente quello che sembra: genera fotografie realistiche di esseri umani che non esistono.

Il sito è alimentato da una rete neurale generativa chiamata StyleGAN, sviluppata dai ricercatori di Nvidia. Nell'ultimo decennio, poiché le schede grafiche di Nvidia sono diventate uno dei modi più popolari per eseguire calcoli di reti neurali, Nvidia ha investito molto nella ricerca accademica sulle tecniche di rete neurale.

Le applicazioni per i GAN sono proliferate

Ingrandisci / I ricercatori hanno utilizzato un GAN condizionale per proiettare il modo in cui un viso sarebbe invecchiato nel tempo.

I primi GAN hanno appena provato a produrre immagini casuali dall'aspetto realistico all'interno di un'ampia categoria come i volti umani. Questi sono noti come GAN incondizionati. Più di recente, i ricercatori hanno sviluppato GAN condizionali, reti neurali che acquisiscono un'immagine (o altri dati di input) e quindi cercano di produrre un'immagine di output corrispondente.

In alcuni casi, l'algoritmo di addestramento fornisce le stesse informazioni di input sia al generatore che al discriminatore. In altri casi, la funzione di perdita del generatore, la misura del rendimento della rete per scopi di addestramento, combina l'output del discriminatore con qualche altra metrica che giudica quanto bene l'output si adatta ai dati di input.

Questo approccio ha una vasta gamma di applicazioni. I ricercatori hanno utilizzato i GAN condizionali per generare opere d'arte da descrizioni testuali, per generare fotografie da schizzi, per generare mappe da immagini satellitari, per prevedere come appariranno le persone quando saranno più grandi e molto altro ancora.

Questo ci riporta a Nvidia Maxine. Nvidia non ha fornito tutti i dettagli su come funziona la tecnologia, ma ci ha indicato un documento del 2019 che descriveva alcuni degli algoritmi sottostanti che alimentano Maxine.

L'articolo descrive un GAN condizionale che prende come input un video del volto di una persona che parla e alcune foto del volto di una seconda persona. Il generatore crea un video della seconda persona che fa gli stessi movimenti della persona nel video originale.

Ingrandisci / Il GAN ​​sperimentale di Nvidia ha creato video che mostravano una persona (in alto) che faceva i movimenti di una seconda persona in un video di input (a sinistra).

Ting-Chun Wang et al, Nvidia.

Il nuovo software di videoconferenza di Nvidia utilizza una leggera modifica di questa tecnica. Invece di prendere un video come input, Maxine prende una serie di punti chiave estratti dal video di origine: punti dati che specificano la posizione e la forma degli occhi, della bocca, del naso, delle sopracciglia e di altri tratti del viso del soggetto. Questi dati possono essere rappresentati in modo molto più compatto di un normale video, il che significa che possono essere trasmessi attraverso la rete con una larghezza di banda minima utilizzata. La rete invia anche un fotogramma video ad alta risoluzione in modo che il destinatario sappia l'aspetto del soggetto. Il computer del ricevente utilizza quindi un GAN condizionale per ricostruire il volto del soggetto.

Annuncio pubblicitario

Una caratteristica chiave della rete descritta dai ricercatori di Nvidia nel 2019 è che non era specifica per una faccia. Una singola rete potrebbe essere addestrata per generare video di persone diverse sulla base delle foto fornite come input. Il vantaggio pratico per Maxine è che non è necessario addestrare una nuova rete per ogni utente. Invece, Nvidia può fornire una rete di generatore pre-addestrata in grado di disegnare il volto di chiunque. L'utilizzo di una rete pre-addestrata richiede molta meno potenza di calcolo rispetto alla formazione di una nuova rete da zero.

L'approccio di Nvidia semplifica la manipolazione del video in uscita in molti modi utili. Ad esempio, un problema comune con la tecnologia di videoconferenza è che la videocamera non è centrata rispetto allo schermo, facendo sembrare che una persona guardi di lato. La rete neurale di Nvidia può risolvere questo problema ruotando i punti chiave del viso di un utente in modo che siano centrati. Nvidia non è la prima azienda a farlo. Apple ha lavorato alla propria versione di questa funzione per FaceTime. Ma è possibile che l'approccio basato su GAN di Nvidia sia più potente, consentendo modifiche all'intero viso anziché solo agli occhi.

Nvidia Maxine può anche sostituire la vera testa di un soggetto con un personaggio animato che esegue le stesse azioni. Ancora una volta, questa non è una novità: Snapchat ha reso popolare il concetto alcuni anni fa ed è diventato comune nelle app di chat video. Ma l'approccio basato su GAN di Nvidia potrebbe consentire immagini più realistiche che funzionano in una gamma più ampia di posizioni della testa.

Maxine nel cloud?

Ingrandisci / CEO di Nvidia Jen-Hsun Huang.

Patrick T. Fallon / Bloomberg tramite Getty Images

Maxine non è un prodotto di consumo. Piuttosto è un kit di sviluppo software per la creazione di software di videoconferenza. Nvidia fornisce agli sviluppatori una serie di funzionalità diverse e consente loro di decidere come unirle in un prodotto utilizzabile.

E almeno la versione iniziale di Maxine avrà un'importante limitazione: richiede una recente GPU Nvidia all'estremità ricevente del flusso video. Maxine è costruito su tensor core, unità di calcolo nelle nuove schede grafiche Nvidia ottimizzate per le operazioni di machine learning. Ciò rappresenta una sfida per un prodotto di videoconferenza, poiché i clienti si aspettano il supporto per un'ampia varietà di hardware.

Quando ho chiesto informazioni a un rappresentante Nvidia, ha affermato che gli sviluppatori potevano eseguire Maxine su un server cloud dotato dell'hardware Nvidia necessario, quindi trasmettere il video renderizzato ai dispositivi client. Questo approccio consente agli sviluppatori di acquisire alcuni ma non tutti i vantaggi di Maxine. Gli sviluppatori possono utilizzare Maxine per riorientare il viso di un utente per migliorare il contatto visivo, sostituire lo sfondo di un utente ed eseguire effetti come trasformare il viso di un soggetto in un personaggio animato. L'uso di Maxine in questo modo può anche risparmiare larghezza di banda sull'uplink video di un utente, poiché la tecnologia di estrazione dei punti chiave di Maxine non richiede una GPU Nvidia.

Tuttavia, il punto di forza di Maxine è probabilmente i suoi requisiti di larghezza di banda notevolmente inferiori. E il pieno risparmio di larghezza di banda può essere realizzato solo se la generazione di video avviene sui dispositivi client. Ciò richiederebbe a Maxine di supportare dispositivi senza GPU Nvidia.

Quando ho chiesto a Nvidia se prevedeva di aggiungere il supporto per GPU non Nvidia, ha rifiutato di commentare i futuri piani di prodotto.

In questo momento, Maxine si trova nella fase di sviluppo di "accesso anticipato". Nvidia offre l'accesso a un gruppo selezionato di primi sviluppatori che stanno aiutando Nvidia a perfezionare le API di Maxine. Ad un certo punto in futuro – ancora una volta, Nvidia non avrebbe detto quando – Nvidia aprirà la piattaforma agli sviluppatori di software in generale.

E, naturalmente, è improbabile che Nvidia mantenga il monopolio su questo approccio alla videoconferenza. Per quanto ne so, altre importanti aziende tecnologiche non hanno ancora annunciato l'intenzione di utilizzare i GAN per migliorare le videoconferenze. Ma Google, Apple e Qualcomm hanno lavorato tutti per creare chip più potenti per supportare l'apprendimento automatico sugli smartphone. È una scommessa sicura che gli ingegneri di queste aziende stiano esplorando la possibilità di una compressione video simile a Maxine utilizzando reti neurali. Apple potrebbe essere particolarmente ben posizionata per sviluppare software come questo data la stretta integrazione del suo hardware e software.

LASCIA UN COMMENTO

Per favore inserisci il tuo commento!
Per favore inserisci il tuo nome qui