Con la computational photography o fotografia computazionale, le prestazioni di un telefono eguagliano e, in alcuni casi addirittura superano, quelle di costose fotocamere professionali e permettono di realizzare foto che danno la sensazione di catturare oltre il visibile.
Questa, almeno, è la sensazione che si ha guardando le foto realizzate con la fotocamera del nuovo Google Pixel 4 – lo smartphone recentemente presentato da Google. Google Pixel 4 impiega moderni approcci di Intelligenza Artificiale per migliorare la qualità delle foto, permettendo di realizzare ritratti dai particolari definiti come mai prima e foto di cieli stellati, in passato appannaggio dei soli fotografi professionisti. Alla base delle moderne funzionalità di Google Pixel 4 c’è, appunto, la computational photography.
Cos’è la computational photography
Nello specifico, la fotografia computazionale si riferisce all’uso delle capacità di elaborazione dei sistemi di calcolo, integrati nelle fotocamere, per produrre un’immagine visivamente più gradevole rispetto alla sua versione originale. Sebbene il processo di formazione dell’immagine coinvolga direttamente il sensore ottico, misurando l’intensità dei raggi luminosi (fotoni) a diverse frequenze che riflettono sulle superfici degli oggetti nella scena, inizialmente gli algoritmi di fotografia computazionale venivano realizzati in maniera indipendente dalle caratteristiche del sensore ottico. Oggi, invece, i sistemi ottici e gli algoritmi di elaborazione delle immagini sono sviluppati congiuntamente in modo da misurare e ricostruire i raggi luminosi, ovvero gli oggetti della scena, con una qualità più elevata.
La ricostruzione fedele dell’aspetto degli oggetti (per esempio di una persona o di un paesaggio) è quindi lo scopo principale della fotografia computazionale, e può essere visto analiticamente come la ricerca della soluzione di un problema inverso, ovvero di ricostruzione dell’oggetto dati i raggi luminosi. Questo problema è una vera e propria sfida perché la quantità di informazioni catturate dal sensore ottico è decisamente inferiore rispetto a quella che il nostro cervello, tramite il sistema visivo e cognitivo, percepisce osservando direttamente l’oggetto reale.
L’interesse verso queste tecnologie computazionali è aumentato notevolmente negli ultimi anni, e la diffusione di smartphone con telecamera integrata ha sicuramente contribuito al successo della loro diffusione. Non avendo infatti la possibilità di montare un sensore di acquisizione di alta qualità, le case produttrici si sono concentrate sulla ricerca e lo sviluppo di algoritmi in grado di migliorare le foto scattate, permettendo a chiunque, anche con poca esperienza, di produrre delle foto di alta qualità.
Come funzionano i più diffusi algoritmi di fotografia computazionale
Gli algoritmi di fotografia computazionale più diffusi sono in grado di migliorare le foto sfocate dal movimento, ma anche la profondità di campo, il colore, il contrasto e la gamma di luce – quindi nello specifico tecnologie High Dynamic Range (HDR), Autofocus (AF) e stabilizzazione dell’immagine e possibilità di implementare vari filtri.
L’HDR è un esempio di una delle prime tecnologie di fotografia computazionale ed è stata sviluppata per riprodurre una maggiore gamma dinamica di luminosità. L’HDR, presente nelle fotocamere integrate, ha consentito agli utenti di produrre immagini percettivamente brillanti senza richiedere loro di imparare tecniche fotografiche avanzate. Altra tecnologia simile all’HDR è Night Sight, un algoritmo, sviluppato in esclusiva da Google, che permette di scattare foto in situazioni di scarsa illuminazione rendendole percettivamente più luminose di quanto non lo siano nella realtà, senza causare granulosità o sfocature. Misurando, prima dello scatto, il movimento dello smartphone e degli oggetti nella scena e la quantità di luce disponibile, Night Sight calcola il numero di esposizioni da acquisire e il loro tempo. Si ottiene così una serie di fotogrammi che sono poi fusi in un’unica immagine migliorata nella luce e nei colori. Il risultato finale è una fotografia iper-reale che mantiene lo sfondo scuro dell’ambiente circostante, ma che presenta colori e dettagli più brillanti di quanto il sistema visivo possa percepire normalmente.
L’AF è un altro esempio di tecnologia standard installata nelle fotocamere integrate: grazie alle sofisticate funzioni di colore, luminosità e rilevamento della distanza è in grado di riconoscere e tracciare i soggetti della scena. L’obiettivo dell’AF è di facilitare i sensori della fotocamera a riconoscere questi oggetti, contribuendo a regolare automaticamente e rapidamente le impostazioni di messa a fuoco, e garantendo un tracciamento della messa a fuoco più accurato nel tempo.
Gli obiettivi della ricerca
L’obiettivo della ricerca diventa quindi quello di migliorare queste tecnologie e di sviluppare algoritmi innovativi per creare nuove opportunità di fotografia computazionale. L’approccio moderno di ricerca su queste tematiche utilizza tecniche di Machine Learning, conosciuto come apprendimento automatico, in particolare nella sua più recente e potente declinazione di Deep Learning. Il Deep Learning impiega informazioni sia fisiche che semantiche sul segnale da ricostruire, e ha permesso di ottenere miglioramenti nella ricostruzione del segnale misurato grazie non solo alla vasta disponibilità di immagini ma anche all’evoluzione dei sistemi integrati di calcolo parallelo. Il Deep Learning ha permesso di ottenere modelli molto più complessi e accurati di quelli precedenti derivati “a mano”, in grado catturare tendenzialmente tutte le possibili variazioni del segnale. Le fotocamere che abbiamo oggi a disposizione sono dunque dei veri e propri “occhi intelligenti” che comprendono a fondo la frequenza e l’intensità del segnale misurato, arrivando anche al contenuto semantico e geometrico rappresentato in ogni pixel.
La segmentazione semantica permette di associare ad ogni singolo pixel dell’immagine una categoria di appartenenza, per esempio persona, tavolo, cielo, albero, ecc. Questi algoritmi hanno raggiunto dei livelli di precisione e accuratezza sufficienti da essere implementati nelle fotocamere digitali di uso comune. Tramite la segmentazione semantica sarà quindi possibile classificare le foto automaticamente in base al contenuto, ma anche applicare filtri dedicati, oppure ottenere la miglior combinazione di filtri o esposizioni diverse per ogni singolo oggetto. Non solo sarà possibile determinare la classe dei singoli oggetti, ma anche distinguere le istanze di oggetti appartenenti alla stessa classe, si riuscirà così a differenziare la persona A dalla persona B, anche in immagini diverse pur indossando vestiti simili, e tutto questo grazie alle tecniche di confronto facciale robusto alle variazioni della posa della persona. Quindi se all’interno di immagini appaiono persone o oggetti ricorrenti, gli algoritmi potranno riconoscerli e proporre di applicare filtri ottimizzati per ogni singola istanza che tengano conto anche del contesto in cui è raffigurata.
Un altro importante passo avanti compiuto dalla ricerca è stato quello di riuscire a stimare la profondità della scena, ovvero la distanza tra la fotocamera e gli oggetti ritratti. Oggi è possibile avere una stima della distanza non solo dei soggetti in primo piano (foto ritratti) ma anche di scene a campo lungo. Il calcolo della profondità viene di solito effettuato con fotocamere stereo in grado di calcolare la disparità tra i due punti di vista, esattamente come accade con il nostro sistema visivo. Tuttavia, gli algoritmi di Deep Learning, utilizzando una fotocamera singola, riescono a svolgere questa operazione ottenendo ottimi risultati. Un successo reso possibile dall’utilizzo di una vasta quantità di dati e dalle capacità del Deep Learning di modellizzare apprendendo le caratteristiche geometriche distintive della scena. In questo caso, alle immagini utilizzate per l’apprendimento del modello deve essere associata la misura della profondità di ogni pixel. Questo tipo di dato è generalmente molto difficile da ottenere per tutti i tipi di scene. La soluzione più efficace è produrre i dati di apprendimento generando sinteticamente scene di profondità nota con dei software di rendering fotorealistico, adattando poi i modelli acquisiti alle caratteristiche del mondo reale. Aziende come Apple e Google, che hanno già una grande esperienza in sistemi di rendering fotorealistici, possono generare tutti i dati necessari a costo quasi pari a zero.
Gran parte della ricerca sulla fotografia computazionale parte dal presupposto che i fotoni provenienti da una fonte luminosa che raggiungono il sensore della fotocamera abbiano interagito solo con gli elementi della scena visibile. In altre parole, si presuppone che la scena di interesse sia direttamente visibile. Tuttavia, anche gli oggetti al di fuori della linea di vista della fotocamera (occlusi da altri oggetti o dietro angoli) vengono catturati indirettamente dal sensore ottico cogliendo i riflessi provenienti dalle superfici degli oggetti visibili. I fotoni riflessi sono però estremamente deboli e molto meno numerosi dei fotoni provenienti dagli oggetti all’interno della linea di vista, perché vengono diffusi più di una volta e perdono la maggior parte delle informazioni angolari sulle superfici della scena visibile. Catturare i fotoni riflessi da oggetti non presenti nella linea di vista della fotocamera (non-line-of-sight, in breve NLOS) è analiticamente molto sfidante. Questi aspetti possono sembrare fantascienza, ma recentemente è stato dimostrato sperimentalmente che grazie alle tecniche di Deep Learning è possibile sviluppare dei modelli in grado di ricostruire questi segnali deboli. Come ci si può immaginare, ricostruire oggetti NLOS è di notevole importanza per molte applicazioni di sicurezza, per esempio la guida autonoma, ma può anche essere sfruttata per ottenere una ricostruzione geometrica completa dell’ambiente circostante offrendo nuovi spunti creativi per la realtà aumentata.
Gli scenari futuri
Proprio la realtà aumentata, insieme alla realtà virtuale e alla realtà mista, sarà con molta probabilità la prossima tecnologia che tutti vorranno avere e usare quotidianamente. Molti hanno già acquisito confidenza con la realtà aumenta tramite i filtri di Instagram o Snapchat impiegati per le storie, o utilizzando Lens di Google. A breve, il lancio degli “occhiali” di Apple sul mercato per i consumatori stimolerà ancora di più la diffusione della realtà aumentata. Tuttavia, rimarrà il nodo (più importante) da risolvere e riguarderà la creazione di contenuti adatti alla tecnologia e alla portata di tutti, ovvero le immagini 3D che possano essere osservate da diversi punti di vista. Tradizionalmente, i modelli 3D di oggetti sono generati prima scattando una sequenza di foto da vari punti di vista dell’oggetto e poi utilizzando tecniche fotogrammetriche per ricostruire l’oggetto in 3D. Questa procedura è decisamente complicata se eseguita da un utente non esperto di fotogrammetria. Perciò la ricerca si sta muovendo per facilitare la ricostruzione di oggetti in 3D da foto singole impiegando i dati 3D a disposizione e i metodi di Deep Learning che permettono di generalizzare diversi scenari (persone, animali, ecc.). Ci possiamo quindi aspettare che un giorno avremo fotocamere che, oltre a produrre versioni 2D del mondo, potranno anche scattare foto 3D, che, una volta condivise, potranno essere esplorate come se si fosse fisicamente all’interno nello stesso luogo.
_______________________________________________________________
Risorse:
[1] K. Kirkpatrick, “The Edge of Computational Photography,” Communications of the ACM, vol. 62, no. 7, pp. 14-16, Jul 2019
[2] “Data Driven Computational Imaging,” IEEE CVPR 2019 (https://ciml.media.mit.edu)
[3] A. Dave, A.K. Vadathya, R. Subramanyam, R. Baburajan, K. Mitra, “Solving Inverse Computational Imaging Problems using Deep Pixel-level Prior,” IEEE Transactions on Computational Imaging, vol. 5, no 1, Mar 2019
[3] W. Chen, S. Daneau, F. Mannan, F. Heide, “Steady-state Non-Line-of-Sight Imaging,” IEEE Proc. of Computer Vision and Pattern Recognition, Jun 2019
[4] G. Musarra, A. Lyons, E. Conca, Y. Altmann, F. Villa, F. Zappa, M.J. Padgett, D. Faccio, “Non-Line-of-Sight Three-Dimensional Imaging with a Single-Pixel Camera,” Physical Review Applied, vol. 12, no. 1, Jul 2019
[4] S. Chandran, S. Jayasuriya, “Adaptive Lighting for Data-Driven Non-Line-of-Sight 3D Localization and Object Identification,” Proc. of British Machine Vision Conference, Sep. 2019
[5] A. Kanazawa, J.Y. Zhang, P. Felsen, J. Malik, “Learning 3D Human Dynamics from Video,” Proc. of Computer Vision and Pattern Recognition, Jun. 2019