Google trasforma le immagini a risoluzione bassa in alta con RAISR

Con RAISR viene introdotta una tecnica che incorpora l'apprendimento automatico per produrre versioni ad alta qualità di immagini a bassa risoluzione.

Scritto da

Simone Ziggiotto

il

Con RAISR viene introdotta una tecnica che incorpora l’apprendimento automatico per produrre versioni ad alta qualità di immagini a bassa risoluzione.

Ogni giorno tramite il web si condividono (social) e memorizzano (cloud) memorizzare milioni di immagini, consentendo di esplorare il mondo, ricercare nuovi argomenti di interesse, o anche condividere una vacanza con gli amici e la famiglia. Tuttavia, molte di queste immagini sono sia limitate dalla risoluzione del dispositivo utilizzato per scattare la foto o volutamente la loro qualità viene degradata per dei vincoli dei telefoni cellulari, tra cui la compressione necessaria per essere meno ‘pesanti’ e quindi condivisibili in tempi brevi (ad esempio Whatsapp che comprime di molte le immagini scambiate). Con sempre piu’ display per dispositivi mobili che hanno una risoluzione sempre piu’ alta (da HD a fullHD, poi QuadHD e anche 4k) è prevista una crescita della domanda per le versioni in alta qualità di immagini a bassa risoluzione in modo da essere allo stesso tempo rapide da scambiare tra una vasta gamma di dispositivi ma anche belle da vedere, senza artefatti o sfocate per la poca nitidezza.

Con questa premessa, Google ha comunicato di aver iniziato ad utilizzare una tecnologia chiamata RAISR nei suoi servizi e nelle sue app, abbreviazione di Rapid and Accurate Image Super Resolution (rapida ed accurata immagine a super risoluzione) che consiste nell’uso di una intelligenza artificiale che predice come una particolare foto potrebbe essere ingrandita in base alla effettiva trasformazione di innumerevoli altre foto. Lo scopo è quello di produrre versioni ad alta qualità di immagini in bassa risoluzione.

Con software fotografici professionali come Photoshop quando si rimpicciolisce una fotografia si va a ridurre il numero di pixel di cui è composta tramite un processo chiamato Sottocampionamento (downsampling) che è utile per mostrare una grande foto originale su un piccolo schermo riducendone il peso (la grandezza del file). La qualità della foto va a migliorare inevitabilmente, essendo la foto dal formato originale compressa in uno spazio piu’ piccolo. Al contrario, se si prova ad ingrandire una immagine piccola, si attua il processo chiamato upsampling, che aggiunge solo più pixel senza pero’ migliorare la foto. Per definizione, l’upsampling è l’interpolazione, applicata nel contesto di una elaborazione del segnale digitale, che produce una approssimazione della sequenza di pixel rispetto ai pixel immediatamente vicini. Quando si fa l’upsampling la qualità dell’immagine va a peggiorare, essendo il risultato come una estensione di una immagine piu’ piccola, anche se è pure la bontà del software con cui si effettua il sovracampionamento dell’immagine a contribuire alla qualità del risultato finale.

RAISR – esempio 1

Google ha pero’ adottato un approccio diverso rispetto ad un software che elabora l’upsampling su una singola foto: compara le foto ‘a coppie’ ossia una foto ad alta risoluzione con la controparte a bassa risoluzione ricampionata. Con una certa quantità di questi accoppiamenti, ad esempio 10.000, il software d’intelligenza artificiale di Google ottiene una buona idea di come un dettaglio particolare di una immagine a bassa risoluzione puo’ corrispondere al modello originale in alta risoluzione. Le tecniche di upsampling convenzionali applicano lo stesso modello matematico per l’intera immagine, ma il sistema di Google utilizza un approccio di ingrandimento diverso per ogni piccola parte di una fotografia.

"Con RAISR, usiamo il machine learning su coppie di immagini, una in bassa qualità e l’altra in alta, per trovare filtri che, se applicati in modo selettivo per ogni pixel dell’immagine a bassa risoluzione, ricreeranno i dettagli che sono di qualità paragonabile all’originale" ha spiegato Peyman Milanfar, il ricercatore che ha spiegato RAISR nel blog di Google.

Milanfar ha inoltre spiegato che RAISR può essere "addestrato" in due modi. Il primo è il metodo "diretto" in cui i filtri vengono appresi direttamente da coppie di immagini a bassa e ad alta risoluzione. Il secondo metodo prevede prima l’applicazione di un sovracampionamento per l’immagine a bassa risoluzione e poi apprendere i filtri dalle coppie di immagini sovracampionate con quelle in alta risoluzione. Mentre il metodo diretto è computazionalmente più veloce, il secondo metodo "consente fattori di scala non interi e una migliore resa dell’upsampling basata sull’hardware", spiega il ricercatore.

RAISR – esempio 1

Google ha iniziato ad utilizzare il metodo RAISR nella sua app Google+ su alcuni telefoni Android. Nella pratica, al posto di andare a recuperare i file originali ad alta risoluzione attraverso la rete quando richiesta, recupera una versione di dimensione ridotta di un quarto per poi espanderla con RAISR sul telefono in locale per offrire maggiori dettagli e allo stesso tempo ridurre la quantità di dati scambiati dal web.

Nel complesso, Google ha stimato che col metodo RAISR viene ridotto il traffico dati di circa un terzo. Google sta trasformando la propria libreria fotografica al ritmo di un miliardo di immagini a settimana in modo che possano essere utilizzate con il metodo RAISR. 

RAISR – esempio 1

Google ha dettagliato la tecnologia RAISR in un documento del 2016, che proviamo a tradurre qui sotto:

"Data un’immagine, vogliamo produrre un’immagine di dimensioni più grandi con un numero significativamente maggiore di pixel e qualità d’immagine superiore. Questo è generalmente noto come il problema Single Image Super-Resolution (SISR). L’idea è che con i sufficienti dati di allenamento (coppie di immagini a bassa e ad alta risoluzione corrispondenti) possiamo imparare set di filtri (cioè una mappatura) che, quando applicati ad una data immagine che non è nel set di training, produrrà una versione a risoluzione più elevata di essa, in cui l’apprendimento è preferibilmente di bassa complessità. Nel nostro approccio proposto, il run-time è più di uno o due ordini di grandezza più veloce rispetto ai metodi migliori concorrenti attualmente disponibili, mentre la produzione dei risultati è simile o superiore allo state-of-the-art. Un argomento strettamente correlato sono la nitidezza ed il contrasto, ossia migliorare la qualità visiva di una immagine sfocata amplificando i dettagli sottostanti (un’ampia gamma di frequenze). Il nostro approccio comprende inoltre un modo estremamente efficiente per produrre un’immagine che è significativamente più dettagliata di quella in ingresso sfocata, senza introdurre artefatti quali aloni e amplificazione del rumore. Illustriamo come questo algoritmo puo’ risultare efficace, oltre ad essere di interesse indipendente, può essere utilizzato come in una fase di pre-elaborazione puo’ rendere i filtri di upscaling più efficaci con un effetto migliore per nitidezza e contrasto."

Secondo Google, RAISR produce risultati comparabili o migliori rispetto ai metodi di super-risoluzione attualmente disponibili, e lo fa circa da 10 a 100 volte più velocemente, permettendo così di essere eseguite su un dispositivo mobile tradizionale in tempo reale. Inoltre, la tecnica utilizzata da Google è in grado di evitare di ricreare artefatti che possono esistere nelle immagini in bassa risoluzione.

Impostazioni privacy