#39 - Come ingrandire le immagini migliorando la qualità
Vuoi ingrandire le immagini digitali di piccole dimensioni?
Fino a oggi ingrandire immagini come quelle che si trovano abitualmente sul web, significava ottenere pessimi risultati. Questo significa anche che diventa impossibile ottene una stampa di alta qualità, produrre una locandina o un poster cartacei oppure leggere i numeri della targa di un'auto o riconoscere un volto tra la folla, un segnale stradale nei sistemi di guida autonoma, un puntino sospetto in un radiografia.
Ecco un esempio da José Gutiérrez Solana, (Madrid, 1886-1945), La casa del arrabal (Las chicas del arrabal) particolare. L'immagine destra è stata ingrandita 500 volte.
Pessimo ingrandimento. Questo dipende dal fatto che le immagini di tipo fotografico (raster) sono formate da tanti piccoli quadratini (pixel) che nell'originale non si vedono ma diventano visibili nelle immagini ingrandite. Questo produce bordi seghettati e immagini confuse.
Intelligenza artificiale e Deep Learning
Ora però sono disponibili strumenti che sono stati sviluppati sotto l'ampio concetto-ombrello dell'apprendimento profondo. Che cos'è? Una casa molto, molto tecnica non facilissima da capire per i non informatici (e io qui scrivo per loro).
Una definizione corrente e molto diffusa è questa:
"Il deep learning è un metodo di Intelligenza Artificiale che insegna ai computer a elaborare i dati in un modo che si ispira al cervello umano".
Dato che probabilmente non sai come funziona il cervello umano questo è un buon esempio di spiegazione apparente: ti sembra di capire, ma in realtà ne sai quanto prima.
Gli informatici hanno in realtà molto semplificato il sistema corticale della percezione visiva che è di elevatissima complessità, ma sono comunque riusciti a ottenere buoni risultati.
Ingrandiamo una immagine con due software diversi
Aleksandr Deyneka, artista russo (1899-1969) è stato uno dei più importanti artisti del realismo socialista. Puoi trovare esempi delle sue opere qui.
Ecco una sua opera originale trovata sul web con dimensioni 555x628 pixel.
Proviamo a ingrandire un particolare di 500 volte senza alcun intervento dell'AI.
Pessimo risultato.
Ora confrontiamo i risultati ottenuti con due diversi software AI.
L'originale è 555x628 pixel, sufficiente per la pubblicazione sul web e gli ingrandimenti sono a 2220x2512 pixel che invece vanno bene per una stampa non troppo grande in buona qualità. Come vedi co l'AI va molto meglio, ma i due risultati sono anche molto diversi tra loro. Come mai?
Dipende dai diversi modelli di Deep Learning che utilizzano. E che cos'è? Una definizione ampiamente condivisa ci informa che:
Il DeepLlearning è un metodo di Intelligenza Artificiale (IA) che insegna ai computer a elaborare i dati in un modo che si ispira al cervello umano.
Tipico esempio di spiegazione apparente. Ti sembra di capire, ma se non hai la minima idea di come funziona il cervello umano questa definizione è priva di significato.
Sarà più chiaro confrontando i due diversi modelli di Deep Learning che hanno generato i due ingrandimenti.
Ingrandire le immagini con BIGJPG
L'ingrandimento a destra è prodotto da BIGJPG è un software proposto da un programmatore cinese indipendente. Lo conoscono in pochi perché non si fa pubblicità a pagamento, ma si basa sul passaparola, specialmente su Pinterest. È molto spartano, molto economico e molto efficace. Poi è gratuito o costa comunque pochissimo per la sua versione più potente.
Per ingrandire l'immagine BIGJPG una uno dei vari metodi possibili che fanno parte del Deep Learning. Si chiama rete neurale convoluzionale (CNN o ConvNet). Si tratta di un metodo che apprende direttamente dai dati. Queste CNN sono particolarmente utili per trovare dei pattern nelle immagini in modo tale da riconoscere un cane da un gatto e anche le diverse razze di cani.
Questo modello ha i sui limiti quando si tratta di ingrandire le immagini e ha bisogno di interventi successivi per eliminare le sfocature i bordi seghettati.
L'immagine prodotta appare molto "piallata". Guarda la parete di sfondo. Nell'originale ha un colore irregolare. Nell'ingrandimento è a tinta unita. Lo stesso vale per la pelle. E gli atri particolari.
Ingrandire le immagini con VANCE.AI
Ora vediamo come se cava un software commerciale . VANCE.AI usa un metodo di Deep 8 settembre 1919Learning che si chiama Adversarial Networks technology. Questo è interessante perché è un esempio di come l'Intelligenza Artificiale sia in grado imparare da sé stessa, senza intervento umano diretto.
In parole poverissime, si creano DUE sistemi in lotta tra loro che cercano di imbrogliarsi a vicenda. Il primo sistema (generatore) produce un immagine che imita una immagine reale. Il secondo sistema (discriminatore) cerca di distinguere l'immagine prodotta dal generatore da quella reale. Il gioco finisce quando il discriminatore non riesce più a distinguere l'immagine falsa dall'originale.
A prima vista l'ingrandimento così ottenuto può sembrare peggiore, ma la tessitura del dipinto è preservata e scompare ogni impressione di falsità. Lo preferisco.
Ma vediamo come se la cava con una vecchia foto. Si tratta di un cartolina proveniente da uno dei più forniti archivi veneziani di cartoline, quello della famiglia Zanetti (grazie Marco Zanetti per l'originale).
La cartolina ci mostra la posa della prima pietra del Tempio Votivo al Lido di Venezia (dove viviamo sia io che Marco Zanetti). Vi si vedono il re Vittorio Emanuele III e il cardinale Pietro Lafontaine.
La foto non è restaurata, ma solo ingrandita due volte. Direi che il risultato molto buono. Guarda i merletti del cardinale e la maxigonna in velluto damascato. Sono texture molto difficili da ricostruite e che normalmente si perdono negli ingrandimenti semplici. Ebbene si: questi particolari non ci sono nell'originale. L' Adversarial Networks technology li ha ricostruiti.
Come lo chiami questo: restauro o falsificazione ?
Un ultimo esempio con JPGHI
I metodi si evolvono. L' AI non dorme mai. Anche il nostro amico cinese si è dato a dare e ha sfornato da poco una notevole evoluzione del suo sistema. Questa volta non ci dice nulla su modello AI utilizzato e quindi ci dobbiamo accontentare dei risultati.
Lo matto alla prova con una immagine particolarmente difficile. Non solo piccola, ma anche in pessime condizioni. Sempre un cartolina dell'archivio Zanetti. Questa volta sono merlettaie dei primi anni del '900
Ora usiamo JPGHI
Ottimo vero?
L'autore ci avverte di non esagerare con l'ingrandimento:
Un fattore di upscaling più alto non è sempre migliore. Fattori più alti possono introdurre più dettagli immaginati dall'IA e anche la velocità di elaborazione sarà più lenta.
Non ho esagerato, ma guarda bene la foto. I visi sono molto belli. Probabilmente migliori di quelli reali, ma anche i fotografi ritrattisti dell'epoca ritoccavano molto le loro immagini.
Le camicette però... sembrano T-shirt, specialmente quella a sinistra è anche un quasi nude-look sensuale, di grande effetto, ma del tutto incongruo per l'epoca.
Qui si apre l'annoso e mai risolto problema dei restauri: le opere vanno riportate al nuovo o conservate con i difetti prodotti dal tempo? Ma Questo è un altro discorso.
In sintesi
BIGJPG spettacolare, ma "pialla" troppo le immagini.
VANCE.AI ingrandisce bene e sa ricostruire senza falsificare più di tanto.
JPGHI notevolissimo se non si esagera con gli ingrandimenti.
Tutti questi strumenti nelle versioni a pagamento costano pochissimo.
Vedi anche
#18 - Come creare un archivio di foto d'arte
#36 - Come migliorare le tue foto con i programmi di fotoritocco