Oltre al radar Soli, la grossa cornice frontale di Google Pixel 4 e Pixel 4 XL contiene anche un sistema di riconoscimento tridimensionale del volto, utilizzato sia per lo sblocco dello smartphone che per applicare in maniera più efficace effetti sui selfie.
Google, che ha reso possibile l’accesso alla propria tecnologia grazie all’API Camera2, ci spiega come funziona uDepth, il sistema di sensori a infrarossi presente nella cornice dei propri flagship. Per prevenire problemi in scarse condizioni di luce e con oggetti provi di texture, Google ha optato per un sistema stereo, che proietta una griglia a infrarossi, riconosciuta dalle due telecamere IR.
Il principio su cui si basa uDepth è quello della parallasse, osservabile ad esempio guardando un oggetto e chiudendo alternativamente gli occhi. Noterete che l’oggetto appare leggermente spostato, con l’effetto che risulta amplificato dalla vicinanza dell’oggetto stesso.
uDepth utilizza proprio questa tecnica per analizzare una piccola area nella prima immagine e ritrovarla nella seconda, al fine di ricostruite perfettamente la scena, calcolando la distanza fisica di ogni singolo pixel dall’obiettivo. Il processo inizia ad analizzare aree di 1×1 pixel, trovando le somiglianze tra le due immagini stereo, continuando a incrementare le dimensioni dell’area analizzata fino a ricostruire una mappa di profondità a bassa risoluzione.
Al termine di questa “inizializzazione” viene attivato un sistema neurale per affinare l’immagine, correggere le incongruenze al ritmo di 1,5 millisecondi per frame. La fase successiva prevede la propagazione tra le varie aree dell’immagine delle stime effettuate. In questo modo uDepth è in grado di individuare rapidamente le aree piane, dedicandosi in un secondo momento ai livelli di profondità per ogni singolo pixel.
Per evitare errori dovuti a cadute o urti, uDepth viene autocalibrato a ogni utilizzo, con una procedura che valuta eventuali segni di una calibrazione imprecisa, rigenerando i parametri prima di procedere con le operazioni successive. Nell’immagine sottostante vediamo a sinistra un’immagine non calibrata e il risultato al termine della calibrazione.
L’utilizzo dei dati ottenuti da uDepth nella fotografia computazionale passa per il deep learning e per una fase di training effettuata da Google. L’intelligenza artificiale viene così istruita per combinare immagini RGB, una segmentazione dei soggetti e una mappa di profondità per ottenere uno schema realistico da utilizzare per applicare sfocature o effetti tridimensionale, come nel caso della realtà aumentata.
Tra le tecniche utilizzate per migliorare la qualità delle immagini c’è anche l’utilizzo di una sfera con 331 luci LED, un set di telecamere ad alta risoluzione e un set di sensori di profondità ad alta definizione. All’intero setup sono stati aggiunti dei Pixel 4 che hanno potuto acquisire i dati e imparare a combinare i dati raccolti per creare immagini realistiche e accurate.
Con tutti i dati raccolti uDepth è in grado di fornire un flusso di informazioni relative alla profondità di immagine a 30 Hz tramite l’API Camera2 e una mappa di profondità tramite Google Camera, così da ottenere selfie con effetti di profondità. I dati allegati alla foto possono essere utilizzati in post produzione per effetti bokeh o per foto tridimensionali.
È possibile scaricare una demo che mostra i dati raccolti da uDepth in tempo reale, per comprendere il funzionamento e applicarlo alle proprie applicazioni. Per maggiori dettagli tecnici vi rimandiamo al post originale di Google, raggiungibile a questo indirizzo.