Cerca nel blog

2018/05/18

L’intelligenza artificiale recupera le foto troppo scure

Anche se i sensori delle fotocamere diventano sempre più sensibili e capaci di produrre foto anche in condizioni di luce scarsa, capita lo stesso di trovarsi in situazioni nelle quali le foto vengono scurissime. In questi casi la reazione tipica è cancellarle, magari con rammarico perché si tratta di scatti irripetibili. Ma forse è il caso di non buttarle via, perché presto potrebbero essere recuperabili.

Alcuni ricercatori presso la Intel e la University of Illinois Urbana–Champaign hanno usato il machine learning per “insegnare” al software come correggere le immagini digitali troppo scure, e persino quelle a prima vista completamente nere, con risultati impressionanti, mostrati nel video qui sotto e descritti con dovizia di esempi e in dettaglio nell’articolo tecnico intitolato Learning to See in the Dark.



Questo è un esempio di una foto in origine quasi completamente nera, recuperata con mezzi digitali tradizionali (a sinistra) e con il nuovo software (a destra):



In pratica il software viene addestrato mostrandogli tante coppie di foto della stessa scena, una sottoesposta e una esposta correttamente, e lasciando che “deduca” come elaborare quella scura per ottenere quella corretta.

Chissà se è possibile applicare questa tecnologia anche alle foto analogiche. Infatti c’è una foto particolarmente irripetibile ma sottoesposta che sarebbe bello recuperare: l’unica che mostra da vicino Neil Armstrong sulla Luna. Lo intravedete in basso a sinistra qui sotto.




Si tratta della foto AS11-40-5894; chi volesse cimentarsi in un tentativo di recupero di questa immagine può usare la scansione della pellicola originale in formato TIFF (189 MB) presente su Asu.edu.

Questo è il meglio che sono riuscito a fare con i miei modestissimi mezzi:




Sarebbe un bel modo di festeggiare il cinquantenario dello sbarco sulla Luna, che cade a luglio 2019. Ho scritto a uno degli autori della ricerca chiedendogli lumi (scusate l’involontario gioco di parole).

26 commenti:

nova77 ha detto...

Be', sia i modelli che il codice e' disponibile. A vedere il codice non dovrebbe essere troppo difficile "recuperare" l'immagine dell'allunaggio, PERO' i pattern (dai file RAW) che il modello ha imparato sono quelli di due macchine fotografiche (digitali) moderne (Sony & Fuji). Non sono sicuro siano simili o applicabili a quelli delle macchine usate dagli astronauti..

Edoloz ha detto...

Che io sappia sono tecniche che da anni vengono usate per le foto dello spazio fatte con i telescopi.
Ad un minicorso di fotografia astronomica ci hanno mostrato risultati impressionanti (ad essere capaci ovviamente...)
Per le foto analogiche credo che si debba per forza scansionarle e partire da quelle...

Scatola Grande ha detto...

Bello!
Nell'articolo tecnico del link di Paolo c'è sia il link all'articolo su Arxiv sia il link al repository su Github che ha già ben 103 fork, copie che stanno sempre su Github e che si possono modificare e volendo riunire al repository originale.
Il codice è in python 2.7 e usa Tensorflow di Google, è stato allenato su 2 serie di foto, una di un sensore Sony e un'altra di un sensore Fujii. Gli autori non si aspettano che la rete allenata possa funzionare anche con altri sensori e sembra che ancora non ci abbia provato nessuno, o almeno non ne ha scritto sul sito.
I set sono grandicelli, 25 GB il Sony e 52 GB il Fuji perché si tratta di immagini RAW e non jpeg.
Allenare la rete per altri sensori è possibile ma i numeri sono altini, il Sony richiede 64GB e il Fuji 128. Inoltre il caricamento iniziale delle immagini richiede significativamente più tempo dell'allenamento della rete (!) per cui gli autori forniscono dei dataset pretrattati ma per altri sensori dovrete avere moooolta pazienza.

Per quanto riguarda la foto NASA.
Anche io ho dia sottoesposte, ho provato sia con i controlli dello scanner, sia utilizzando i 48 bit come il TIFF NASA e usando poi programmi come rawtherapee (ma ci vorrebbe Adobe Lightroom): non ne ho tirato fuori nulla di decente.
Ho ottenuto risultati migliori rifotografando la dia e allungando l'esposizione cosa che gli scanner a scansione non sembrano poter fare. Dovrei vedere se c'è un'opzione per scansionare più volte la dia e sommare le scansioni, un po' come si fa in astrofotografia.

Christian Franzone ha detto...

Un gioco di parole ancora peggiore sarebbe stato: "I primi uomini sulla Luna fecero un grande '69 (1969)". Dal momento che si parla dei contestatori che fecero un grande '68...

dani1967 ha detto...

Non ho ottenuto un gran che, ci ho lavorato poco ma ho l'impressione che il canale rosso abbia più dettagli degli altri canali.

Fx ha detto...

Ho guardato velocemente il paper, secondo me ti risponderanno che servirebbe un modello costruito partendo da un dataset specifico della macchina con la quale sono state scattate quelle foto.

Gianluca Atti ha detto...

Una delle pochissime foto di Neil sulla Luna! Spero davvero che questa foto la si possa ammirare con molta più chiarezza.

Diego Cuoghi ha detto...

Ho provato a tirare fuori qualcosa di leggibile da quel TIF 16bit. Ho usato Photoshop6 + Intensify CK + Noiseless CK.
Qui una versione ridotta 2048x2048: https://www.diegocuoghi.it/apollo/AS11-40-5894_corretta1r.jpg
E qui una versione ad alta definizione: https://www.diegocuoghi.it/apollo/AS11-40-5894_corretta1.jpg
Ma c'è davvero poco, e i dettagli sono coperti dal "rumore".

Paolo Attivissimo ha detto...

Diego,

hai già ottenuto molto di più di quello che speravo! Posso usare la tua immagine nel mio libro "Luna?", citandoti?

Fra l'altro, confermi una mia ipotesi: Neil aveva la visiera riflettente alzata e quindi in quella foto, se non fosse sottoesposta, vedremmo il suo volto.

Intanto uno dei ricercatori mi ha risposto. Vediamo cosa ne viene fuori.

andy ha detto...

Siccome mi piacciono le sfide ho voluto provare anch'io, ma, mi sorge un dubbio... la foto che hai pubblicato qui (la prima, quella senza riquadri gialli) è già stata modificata in qualche modo?

A me sembrerebbe di sì, dato che appare più tendente al rosso e più luminosa rispetto all'originale (ho preso quella a media risoluzione qui).

Comunque, con la tua sono riuscito ad ottenere questo*, con un po' di fantasia si può quasi scorgere il profilo dell'occhio sinistro, ma c'è veramente tanto rumore e la risoluzione è bassa... troppo facile?
In effetti si, perché con l'originale, applicando gli stessi metodi, continua a non vedersi un tubo... :X
Per cui sicuramente mi sfugge qualcosa che è stato fatto alla tua versione della foto e che permette ai metodi che ho testato di funzionare al meglio.


*il merito non è solo mio, ma anche dei vari tutorial su gimp sparsi per la rete. ;)

andy ha detto...

Continua dal Commento #10:

Forse ho trovato la fonte della tua foto, correggimi se sbaglio, è il LPI qui.

Ho provato ad applicare le procedure anche con questa foto, che ha già una risoluzione più alta, provando anche a mantenere inalterate le aree con il terreno (più esposte), e sono anche riuscito ad evitare tutto quel rosso di prima (ma potrebbe anche essere un'altra differenza dell'immagine di partenza, se non confermi che è la stessa postata da te).

Questa è una versione ritagliata (gli image hosting free hanno dei limiti di dimensione) di quello che ho ottenuto:
http://images.collectiontricks.it/images/66373584211019174539.jpg

Sembra quasi che Neil indossi una sorta di maschera sopra gli occhi, forse speciali occhiali da astronauta?

(resta il fatto che con la foto da hq.nasa.gov la tecnica non mi funziona, ma nel mio piccolo non ho la più minima idea del perché, a parte che, come ho detto sopra, già in partenza sembra più scura).

Stupidocane ha detto...

andy,

Credo tu ti stia accanendo contro un riflesso sulla visiera antisolare del casco. Non credo si possa vedere il viso di nessuno se celato dietro ad una visiera a specchio fatta apposta per bloccare la luce.

blu-flame ha detto...

x scatola grande
Se hai delle dia sottoesposte, e immagino come nella maggior parte dei casi, apollo compresa, che siano esposte per zone non interessanti.
La possibilita' che la enorme curva di una negativa riesca ad aiutarti, come del resto sembra hai gia provato, e' l'unica strada percorribile insieme ad un set di altre esposizioni (HDR)
Bisogna ricordare che l'HDR digitale spesse volte altro non e' altro che quello che faceva la pellicola permettendo persino le usa e getta (una singola esposizione per tutto).

Molto diverso e inquietante quello che oggi e' realta'.
Le foto dell'iphoneX in pubblicita' sono ampiamente ritoccate come del resto queste.
Bisognerebbe ridefinire le parole DISEGNO e FOTO.

La FOTO e' una rappresentazione "meccanica" della realta'. Poi possiamo questionare se banalita' come una doppia esposizione lo sia ancora (io dico di si)

I DISEGNI sono opere di fantasia che nulla hanno a che vedere con la realta'. Le foto degli ultimi celli tali sono (quelle dei precedenti sono solo impiastri),

Anche i recuperi sui demo sono ridisegnate da zero. La domanda e' quanto deve essere diversa dalla realta' un'immagine per non definirsi foto?
A giudicare i capelli delle tipe sulla pubblicita' del c-itofonX che sembrano fatti con un pennello di GIMP che uso direi che simo ben dentro al disegno.
E fortuna che sono fatte in maniera da far funzionare al meglio quel bidone, non voglio neppure immaginare cosa fanno in the wild.
a e' diventata la moda, nelle riviste femmnili, i visi sono ormai eterei e trasparenti lasciando intravedere il colore della carta sottostante: mi dispiace ma una diapositiva non arriva al colore 255 neanche a picchiarla sul viso. Nessun esposimetro ti permette di farlo, nella realta' non esistono. Neanche una norvegese.
Diciamo che i manga pubblicizzano i profumi dalle pagine di vogue e i cellulari disegnano manga.
Bel gioco?
si
Utile?
Certamente!
E' una foto?
no.
Altrimenti soffriremo di una distorsione della realta'. Ci sono gia' casi, persino clinici, in cui le aspettative sono distorte dai media.
Potremmo avere, con un miglioramento tecnologico, ancora piu' problemi se non cambiamo le etichette.

andy ha detto...

Stupidocane, ho preso alla lettera quello che Paolo ha detto nel commento #9.
Per volto ho interpretato "tutto il volto", non solo dalla punta del naso in giù.

Rudy ha detto...

Ahah, che cosa gli hai scritto? "Could you shed some light..."? :-)

Diego Cuoghi ha detto...

Ciao Paolo, certamente puoi usare quella foto elaborata. Con un po' di tempo in più potrei provare a fare di meglio con qualche altro sistema di recupero delle ombre.

Diego Cuoghi ha detto...

Ho fatto una nuova elaborazione, usando gli stessi software ma con diverse funzioni. Alla fine ho aggiunto un'altra piccola dose di riduzione del rumore con Dfine.
Versione ridotta
Versione ad alta definizione

Paolo Attivissimo ha detto...

Diego,

ho appena visto la tua nuova versione. Complimenti, è davvero notevole!

Scatola Grande ha detto...

Diego,
mi associo ai complimenti di Paolo. Possibilmente spiega come hai fatto che potrebbe essere utile ad altri e a me.

andy ha detto...

Diego, secondo me dovresti provare i tuoi strumenti avanzati con la scansione dell'LPI che ho linkato nel commento precedente (il #10).
Secondo me con quella e i tuoi sistemi puoi riuscire a rendere visibili anche gli occhi.

L'unico problema può essere l'assenza di una versione a 200mb. Però se LPI ha preso le foto a sua volta dalla Nasa...

Scatola Grande ha detto...

blu-flame,
anche le pellicole barano, dovresti ricordarti la differenza tra una Kodachrome e una Ektachrome pur nelle stesse condizioni. La latitudine di posa di una Kodachrome 25 non era certo quella di una Ektachrome 400 ma neanche 100.
Così come dovresti ricordarti gli effetti dei filtri, il polarizzatore, ad esempio, per scurire i cieli un po' smorti.
Se poi passiamo alle stampe bastava andare in due laboratori diversi per ottenere risultati diversi a meno di rivolgersi a quelli professionali con ben altri costi.

Del resto persino i nostri occhi restituiscono una immagine che viene pesantemente elaborata dal cervello. Pensa alle illusioni ottiche dove l'occhio vede dei movimenti che non esistono.

Le foto che più si avvicinano alla realtà sono quelle scientifiche dove vengono effettuate delle riprese di calibrazione usando anche le famose tavole colorate e con i livelli di grigio. Questo sia con la pellicola che con il digitale.

Le dia sottoesposte purtroppo riguardano foto realizzate con esposizioni lunghe in manuale di notte durante un'eruzione dell'Etna prima che mi impratichissi.

Il TIFF NASA è a 48 bit tende ad essere scuro come le scansioni a 48 bit che ho realizzato io.

Diego Cuoghi ha detto...

@Andy - Se non ho capito male, quel link LPI rimanda a una pagina con una versione JPG 8bit 3900x3900 pixel. La versione che ho usato io era un TIF 16bit 5700 × 5800 pixel, quindi con molta informazione in più.

Diego Cuoghi ha detto...

@ScatolaGrande
La versione 2 l’ho fatta usando anche in questo caso Photoshop6 (aggiungendo livelli di Valori Tonali e una maschera sfumata per eliminare una striatura verticale), Intensify CX (per intensificare dettagli, luci e ombre) e Noiseless CX (per ridurre il rumore). Ma sono partito con una elaborazione in bianco e nero ottenuta da DXO, un software fotografico di sviluppo RAW che ogni tanto viene offerto in versione “free” un po’ limitata quando ne esce una aggiornata a pagamento ( https://goo.gl/rG1YSS - https://goo.gl/7kKydx ).
Sopra all’elaborazione in bianco e nero ho poi sovrapposto come livello di “colore” la versione 1.

Ma non c’è un metodo preciso, e purtroppo non ho tenuto nota di tutti i diversi passaggi. Io guardo quali sono gli strumenti di ogni software e mi metto a provare, non usando i preset (adatti a elaborazioni banali tipo instagram) ma le varie funzioni specifiche, soprattutto contrasto, luci, ombre, esposizione, dettaglio, micro-nitidezza…

Avevo inizialmente provato con Lightroom, senza buoni risultati, e anche con SNS-HDR, a mio parere il miglior software per HDR dall’aspetto naturale e non fumettistico. Ma rimaneva molto piatto.

“Intensify CK” non l’avevo quasi mai usato ma qui mi è servito, e pure “Noiseless CK” è risultato utile per ridurre il rumore, così come DFine (un filtro della suite NIK che per qualche tempo è stata gratuita, prima di essere acquisita recentemente da DXO).

andy ha detto...

@Andy - Se non ho capito male, quel link LPI rimanda a una pagina con una versione JPG 8bit 3900x3900 pixel. La versione che ho usato io era un TIF 16bit 5700 × 5800 pixel, quindi con molta informazione in più.

È esattamente così. Però, come dice scatolagrande: Il TIFF NASA è a 48 bit tende ad essere scuro come le scansioni a 48 bit che ho realizzato io. per cui paradossalmente nella zona degli occhi c'è dell'informazione in meno perché i pixel sono tutti scuri uguali.

La versione jpg a 8bit invece tende a essere più chiara (non so se dipende solo dalla scansione originale) quindi anche semplicemente applicando metodi da profano e utilizzando solo gimp senza cose professionali in mezzo (come ho fatto io) si riescono "quasi" a vedere gli occhi. :D

Diego Cuoghi ha detto...

@Andy - Quella originale che ho usato è una immagine TIF a 16bit per canale (se moltiplichi per i tre canali RGB ottieni 48), l'altra che indichi è un JPG 8bit per canale (x3 canali RGB = 24), oltretutto a definizione più bassa.
Forse quelli che interpreti come "occhi" sono degli artefatti dovuti alla compressione JPG.
Il JPG infatti è un formato "lossy" ovvero con perdita di dati rispetto all'originale.

Scatola Grande ha detto...

@andy,
il TIFF a 48 bit appare scuro non perché è scuro ma perché il sistema operativo e lo schermo LCD usano colori ad 8 bit mentre nel file ce ne sono il doppio.
Qualsiasi programma quindi quindi visualizza una versione "interpretata" diciamo così ma ci sono modi per tirare fuori questa informazione, se c'è.
Molti programmi però non maneggiano bene questa profondità colore.