Con il temine upscaling ci si riferisce alla tecnica utilizzata per aumentare la risoluzione o le dimensioni di un’immagine senza perdere troppa qualità o dettagli. Questa tecnica è particolarmente utile quando si desidera ingrandire un’immagine senza doverla ricreare da zero o perdere in nitidezza.
Quando si aumentano le dimensioni di un’immagine, si verificano perdite di qualità perché l’immagine originale contiene un numero limitato di pixel rispetto a quella che si vuole ottenere. La risoluzione di un’immagine è definita dal numero di pixel che la compongono. Aumentando le dimensioni, cresce il numero di pixel utilizzati. I pixel aggiuntivi devono essere creati in qualche modo poiché il numero di pixel che contraddistinguono l’immagine di partenza non è sufficiente per descrivere i dettagli a risoluzioni più elevate.
Upscaling: come aggiungere i pixel mancanti in un’immagine ridimensionata
Ci sono diversi metodi per aumentare le dimensioni di un’immagine. L’interpolazione è una tecnica utilizzata per stimare i valori dei pixel mancanti o aggiuntivi in base ai pixel esistenti circostanti. Poiché i dettagli dell’immagine originale sono limitati, l’interpolazione può portare a una perdita di definizione e nitidezza. Soprattutto quando le dimensioni dell’immagine di partenza vengono accresciute in modo significativo.
Per ottenere un risultato migliore nell’upscaling delle immagini, sono stati sviluppati algoritmi più avanzati che utilizzano l’intelligenza artificiale e il machine learning per cercare di ricostruire i dettagli mancanti e rendere l’immagine più realistica. I risultati ottenibili variano significativamente da un algoritmo all’altro e dipendono molto, ovviamente, anche dalla risoluzione e dalla qualità dell’immagine originale. Gli algoritmi di upscaling moderni stanno migliorando sempre di più, consentendo di ottenere risultati che spesso rasentano la perfezione nel ridimensionamento verso l’alto di foto e immagini.
GFP-GAN: il miglior strumento per l’upscaling delle immagini
Dopo aver implementato un algoritmo per migliorare la qualità delle immagini visualizzate nelle pagine Web, Microsoft ha integrato in Edge anche Video Super Resolution. Si tratta di uno strumento in grado di effettuare l’upscaling automatico dei contenuti video caricati dal browser. Il processo poggia sull’utilizzo di schede video dedicate NVidia o AMD di recente fattura.
Concentrandoci sul ridimensionamento di foto e immagini, il mercato offre oggi un gran numero di strumenti che aiutano ad aumentare la risoluzione delle immagini. Non tutti, però, offrono i risultati che si vorrebbero ottenere.
GFP-GAN (Generative Facial Prior – Generative Adversarial Network) resta uno degli strumenti migliori in assoluto, un progetto open source che tutti possono utilizzare e che nasce da uno studio accademico pubblicato a giugno 2021.
Da cosa nasce il nome GFP-GAN
La sigla GAN mette in evidenza l’utilizzo di un’architettura di rete neurale artificiale al fine di generare nuove informazioni che hanno caratteristiche simili ai dati di addestramento. Queste reti si chiamano appunto Generative Adversarial Network perché due reti neurali distinte (generatore e discriminatore) sono contemporaneamente addestrate e messe in competizione reciproca. Il generatore ha il compito di generare dati nuovi che assomiglino ai dati di addestramento; il discriminatore si occupa di distinguere tra i dati reali e quelli creati dal generatore.
Durante il processo di addestramento, il generatore cerca di migliorare sempre di più la qualità dei dati generati per ingannare il discriminatore; il discriminatore cerca di diventare sempre più abile a distinguere tra i dati reali e quelli generati. Questa competizione porta a un miglioramento continuo delle prestazioni di entrambe le reti.
Una GAN ben addestrata risulta evidentemente molto utile anche per gestire le esigenze di upscaling perché diventa essenziale per generare i pixel mancanti nel ridimensionamento delle immagini. Non solo. L’acronimo GFP fa riferimento al fatto che il sistema è anche abile nel ripristino di dettagli realistici e fedeli relativi ai volti delle persone. L’attività di addestramento svolta dagli autori ha permesso di garantire un buon equilibrio tra realismo e fedeltà.
Come aumentare le dimensioni di qualsiasi immagini esaltando i dettagli e la qualità della foto
GFP-GAN, come evidenziato in apertura, è un progetto open source. Ciò significa che chiunque può utilizzarlo e, addirittura, gestire l’upscaling di immagini e foto direttamente sul proprio hardware. Anche in locale o, come si dice, on-premises.
Il “sottotitolo” del progetto GFP-GAN è face restoration perché nasce con il preciso obiettivo di esaltare i dettagli dei visi durante le attività di upscaling, senza perdita di informazioni. Anzi, cercando di conservare e, se possibile, esaltare le caratteristiche somatiche di ciascun soggetto. Come “bonus” addizionale, GFP-GAN migliora la qualità complessiva di qualunque foto eliminando artefatti, correggendo dettagli poco visibili ed elementi non perfettamente a fuoco.
Nella pagina GitHub di GFP-GAN, sono pubblicate le informazioni per installare l’applicazione effettuando un clone del repository. Di base GFP-GAN necessita di Python e PyTorch (libreria open source per il machine learning e il deep learning sviluppata principalmente da Meta); opzionalmente di una scheda video NVidia e del CUDA Toolkit.
Nella medesima pagina sono pubblicati vari modelli, utilizzabili per affinare il comportamento di GFP-GAN, e le istruzioni per svolgere eventualmente ulteriori fasi di addestramento (training).
Come provare subito l’upscaling con GFP-GAN senza installare nulla
Il nostro suggerimento è intanto quello di aprire la pagina Web dimostrativa di GFP-GAN quindi di effettuare il login con un account utente GitHub (pulsante Sign In With GitHub).
Così facendo si sblocca la possibilità di fare clic sul riquadro Drop a file or click to select per selezionare l’immagine a bassa risoluzione da ingrandire. In alternativa, è possibile trascinare un file nello stesso riquadro della pagina Web oppure acquisire un’immagine tramite webcam. Come sappiamo, infatti, la webcam del PC è scadente se paragonata con quella dello smartphone: GFP-GAN fa capire bene qual è la qualità del risultato ottenibile con questo strumento.
Il menu a tendina Version consente di scegliere il modello da usare mentre Rescaling factor va utilizzato per scegliere le dimensioni dell’immagine che si vuole ottenere. Optando per un fattore 2, si ottiene un’immagine finale di dimensioni doppie rispetto a quella originale. È ovviamente possibile aumentare liberamente il fattore di upscaling tenendo però presente che, a seconda della qualità dell’immagine di partenza, quella ridimensionata potrebbe in alcuni casi apparire inaccettabile.
Nell’esempio in figura, partendo da un’immagine a bassa risoluzione (300 x 450 pixel), specificando un fattore di upscaling pari a 5 abbiamo ottenuto l’immagine a destra, in appena 2 secondi di elaborazione (750 x 1125 pixel).
Guardate anche quest’esempio: una foto di famiglia, visibilmente deteriorata, non soltanto viene ampliata in termini di dimensioni grazie a GFP-GAN ma addirittura l’intelligenza artificiale riesce a rimuovere tutte le problematiche presenti nell’originale.