In un recente post sul blog, Google ha descritto in dettaglio la tecnologia alla base della nuova funzionalità Portrait Light che ha debuttato con Pixel 5 e Pixel 4a 5G.
Dopo diverse fughe di notizie e voci, Google ha finalmente presentato Pixel 5 e Pixel 4a 5G all'inizio di settembre di quest'anno. Come previsto, i dispositivi venivano forniti con una serie di nuove funzionalità di Google Fotocamera che li distingue dagli altri telefoni Android sul mercato. Questi includono Cinematic Pan per una panoramica senza vibrazioni sui video, modalità Bloccato e Stabilizzazione attiva, Notte Supporto per la vista in modalità Ritratto e una funzione Luce ritratto per regolare l'illuminazione dei ritratti automaticamente. Poche settimane dopo il lancio, Google ha rilasciato la maggior parte di queste funzionalità per dispositivi Pixel meno recenti tramite un aggiornamento di Google Foto. E ora, l'azienda ha condiviso alcuni dettagli sulla tecnologia alla base della funzione Portrait Light.
Secondo un recente
post sul blog dall'azienda, la funzione Portrait Light è stata ispirata dalle luci off-camera utilizzate dai fotografi ritrattisti. Migliora i ritratti modellando una fonte di luce riposizionabile che può essere aggiunta alla scena. Se aggiunta automaticamente, la fonte di luce artificiale regola automaticamente la direzione e l'intensità per integrare l'illuminazione esistente della foto utilizzando l'apprendimento automatico.Come spiega Google, la funzionalità si avvale di nuovi modelli di machine learning addestrati utilizzando un set di dati diversificato di fotografie catturate nel file Palcoscenico leggero sistema di illuminazione computazionale. Questi modelli abilitano due funzionalità algoritmiche:
- Posizionamento automatico della luce direzionale: in base all'algoritmo di apprendimento automatico, la funzione posiziona automaticamente un artificiale fonte di luce coerente con il modo in cui un fotografo professionista avrebbe posizionato una fonte di luce esterna alla fotocamera nella realtà mondo.
- Riilluminazione sintetica post-acquisizione: basata sulla direzione e sull'intensità della luce esistente in a ritratto, l'algoritmo di apprendimento automatico aggiunge una luce sintetica che sembra realistica e naturale.
Per il posizionamento automatico della luce direzionale, Google ha addestrato un modello di machine learning per stimare a ampia gamma dinamica, profilo di illuminazione omnidirezionale per una scena basata su un ritratto di input. Questo nuovo modello di stima dell’illuminotecnica può trovare la direzione, l'intensità relativa e il colore di tutte le sorgenti luminose nella scena provenienti da tutte le direzioni, considerando il viso come a sonda luminosa. Stima anche la posizione di testa del soggetto utilizzando a Maglia frontale MediaPipe. Sulla base dei dati sopra menzionati, l'algoritmo determina quindi la direzione della luce sintetica.
Una volta stabilite la direzione e l'intensità dell'illuminazione sintetica, il successivo modello di apprendimento automatico aggiunge la sorgente di luce sintetica alla foto originale. Il secondo modello è stato addestrato utilizzando milioni di coppie di ritratti, con e senza luci aggiuntive. Questo set di dati è stato generato fotografando settanta persone diverse utilizzando il sistema di illuminazione computazionale Light Stage, che è un impianto di illuminazione sferico che comprende 64 telecamere con diversi punti di vista e 331 luci LED programmabili individualmente fonti.
Ciascuno dei settanta soggetti è stato catturato mentre era illuminato una luce alla volta (OLAT) da ciascuno dei 331 LED. Ciò ha generato il loro campo di riflettanza, cioè il loro aspetto illuminato dalle sezioni discrete dell'ambiente sferico. Il campo di riflettanza codificava il colore unico e le proprietà di riflessione della luce della pelle, dei capelli e dei vestiti del soggetto e determinava quanto lucido o opaco appariva ogni materiale nelle foto.
Queste immagini OLAT sono state poi sommate linearmente per creare immagini realistiche del soggetto come apparirebbero in qualsiasi altro luogo ambiente di illuminazione basato su immagini, con fenomeni complessi di trasporto della luce come dispersione nel sottosuolo rappresentato correttamente.
Quindi, invece di addestrare l'algoritmo di apprendimento automatico a prevedere direttamente le immagini riaccese in uscita, Google ha addestrato il modello a produrre un'immagine a bassa risoluzione immagine del quoziente che potrebbe essere applicato all'immagine di input originale per produrre l'output desiderato. Questo metodo è efficiente dal punto di vista computazionale e incoraggia solo cambiamenti di illuminazione a bassa frequenza senza incidendo sui dettagli dell'immagine ad alta frequenza che vengono trasferiti direttamente dall'immagine in ingresso per essere mantenuti qualità.
Inoltre, Google ha addestrato un modello di apprendimento automatico per emulare il comportamento ottico delle sorgenti luminose che si riflettono su superfici relativamente opache. Per fare ciò, l'azienda ha addestrato il modello a stimare le normali della superficie in base alla foto di input e poi le ha applicate La legge di Lambert per calcolare una "mappa di visibilità della luce" per la direzione dell'illuminazione desiderata. Questa mappa di visibilità della luce viene quindi fornita come input al predittore dell'immagine del quoziente per garantire che il modello venga addestrato utilizzando informazioni basate sulla fisica.
Sebbene tutto ciò possa sembrare un processo lungo che richiederebbe un bel po' di tempo per essere elaborato dall'hardware di fascia media del Pixel 5, Google afferma che la funzione Portrait Light è stata ottimizzata per funzionare a frame rate interattivi su dispositivi mobili, con una dimensione totale del modello inferiore 10 MB.