Ancora su foto e intelligenza artificiale
A quanto pare, il problema delle vecchie foto scolorite e rovinate è più comune di quanto pensassi. Me ne sto rendendo conto ora che il mio post sulla ricostruzione delle immagini tramite intelligenza artificiale sta scalando le classifiche dei più letti di sempre sul blog. Dato l’interesse crescente, voglio approfittarne per rispondere pubblicamente alle due domande che mi arrivano più spesso — via Jabber, ovviamente, perché il blog è vecchia scuola e i lettori anche.
Le due domande ricorrenti sono:
Che servizio GAN hai usato per la ricostruzione?
Come si fa a trovare quello più adatto alle proprie esigenze? Alla prima domanda non risponderò — non per cattiveria, ma perché non faccio pubblicità gratuita a nessuno. Alla seconda invece vale la pena rispondere, perché la vera questione non è “come faccio a trovarla?”, ma piuttosto “come faccio a cercarla in modo sicuro?”
Il punto è semplice: per capire se un certo servizio basato su GAN lavora bene sulle vostre immagini, dovete fornirgli una foto di test. Ma appena la caricate, gli state consegnando molto più di un’immagine: state offrendo un set completo di dati biometrici sul vostro volto. Non parliamo solo della forma del viso, ma di tratti peculiari come distanza tra gli occhi, proporzioni, struttura ossea, eventuali segni distintivi — tutto ciò che un sistema di riconoscimento facciale può usare per identificarvi in modo univoco.
Ma allora — potreste chiedervi — perché ho messo online fotografie che contengono i miei dati biometrici?
La risposta è semplice: perché sono foto di quando avevo tredici anni.
La biometria facciale si basa sull’identificazione di caratteristiche craniologiche stabili: distanza tra gli occhi, zigomi, mandibola, attaccatura dei capelli, proporzioni tra naso e bocca. Si presume che questi tratti, una volta raggiunta l’età adulta, non cambino più in modo significativo — ed è vero, tra adulti.
Ma da quando avevo tredici anni a oggi, il mio volto è cambiato eccome. Crescita ossea, sviluppo muscolare, modifiche posturali e ormonali rendono quel volto adolescenziale irrilevante per i sistemi biometrici moderni. Non ci potete costruire sopra un documento falso per passare un controllo in aeroporto, per dire.
In pratica: sì, ho condiviso immagini “personali”. Ma non biometricamente valide. Nessun sistema di riconoscimento serio vi farebbe passare usando la mia faccia del 1984.
Se poi pensate di fare una ventina di prove con servizi diversi prima di trovare quello che vi soddisfa, state in pratica distribuendo copie dei vostri dati sensibili a una folla di operatori sconosciuti, spesso situati in giurisdizioni poco regolamentate, quasi sempre “gratuiti” — e dunque incentivati a monetizzare il vostro volto in altri modi: addestramento di modelli, profiling commerciale, o peggio ancora.
Tenete conto di un altro aspetto spesso trascurato: se da un lato è vero che molti documenti ufficiali richiedono una foto per ragioni di sicurezza, dall’altro fornire liberamente i propri dati biometrici — in particolare quelli del volto — può facilitare in modo sorprendente la creazione di falsi documenti d’identità. Oggi non serve più un laboratorio clandestino: bastano buone immagini, un algoritmo ben addestrato e qualche malintenzionato con accesso a un buon generatore.
Prima regola, quindi: non si fa la ricerca usando foto reali. Mai. Cercate piuttosto una foto generica, o meglio ancora sintetica, che abbia caratteristiche simili alla vostra immagine ma non sia collegabile a voi. Solo dopo aver scelto uno strumento affidabile, si potrà passare a test più realistici — ma con la consapevolezza di ciò che si sta dando in cambio.
Un trucco semplice per aggirare il problema: potete cercare su Google un'immagine rovinata — ce ne sono letteralmente milioni — e usarla come test iniziale. L’importante è che la foto scelta presenti danni simili a quelli delle vostre immagini reali: graffi, scolorimenti, compressione JPEG, bruciature da luce, ecc. Non dev’essere identica, ovviamente, ma deve sollevare lo stesso tipo di problemi tecnici che il servizio dovrebbe essere in grado di risolvere.
Io, ad esempio, ho usato questa immagine trovata su Instagram:
Perché ho scelto proprio questa? Perché alcune vecchie foto che ho — rimaste per anni in un garage a casa di mia nonna — sono rovinate in modo molto simile: aloni di umidità, grana irregolare, perdita di contrasto nei volti. In questo modo, posso testare il comportamento di vari servizi GAN senza compromettere la mia privacy.
Insomma: fate il test, ma fatelo con la testa. Non regalate la vostra faccia a ogni algoritmo in giro per il web.
Una volta individuato il servizio che fa per voi, c’è un dettaglio importante da tenere ben presente. Nella sigla GAN, la “G” sta per Generative: significa che la rete non si limita a recuperare, ma è progettata per generare dati mancanti.
Tradotto in termini pratici: se l’informazione nella foto è stata persa — perché scolorita, bruciata, sgranata o del tutto assente — la rete non può “ricostruire” ciò che non c’è. Allora lo inventa. Lo stima. Lo interpolerà o addirittura lo sintetizzerà in base a ciò che “pensa” sia più probabile, partendo da migliaia o milioni di esempi precedenti.
Tecnicamente, la rete generativa (il Generator) prende un input degradato, lo trasforma in uno spazio latente, e cerca di produrre un'immagine coerente con quell’input. Parallelamente, un’altra rete — il Discriminator — valuta se il risultato sembra credibile. Le due reti si “sfidano” in un processo di ottimizzazione chiamato minimax, in cui il Generatore cerca di minimizzare la capacità del Discriminatore di distinguerlo dalla realtà. È un equilibrio delicato, e quando la rete “inventa”, lo fa in modo statisticamente plausibile, ma non necessariamente fedele all’originale.
Per questo motivo, alcuni servizi vi chiedono di inserire una descrizione testuale (“una donna con i capelli ricci e un vestito blu”, per esempio), così da guidare la rete durante la generazione. Altri vi pongono domande durante l’uso, per affinare i risultati. Quelli che pretendono di fare tutto da soli, senza alcun input esterno, nella maggior parte dei casi fanno un lavoro mediocre o addirittura ridicolo.
Io ne ho scelto uno che costa venti dollari per un mese — una tantum — e poi smetterò di pagarlo. Un mese dovrebbe bastare per portare a termine il lavoro di restauro che mi interessa. E va benissimo così: non devo regalargli dati a vita né abbonarmi a vita. Lo uso, lo pago, me ne vado.
E così, se le vostre foto sono molto rovinate, il risultato finale potrebbe anche essere visivamente soddisfacente — a patto di aiutare la rete, fornendole descrizioni testuali o altri suggerimenti. Ma non illudetevi: ci sarà inevitabilmente una componente generativa. La GAN non può ricostruire ciò che è andato perso nel rumore o nella distruzione del dato; può solo inventarlo, cercando di farlo sembrare plausibile.
Questo processo porta con sé due effetti collaterali. Il primo è la comparsa di difetti tipici dell’intelligenza artificiale: simmetrie troppo perfette, texture strane, proporzioni appena sbagliate, e in certi casi vere e proprie allucinazioni visive — cioè dettagli che non c’erano, non dovrebbero esserci, ma che la rete inserisce comunque perché statisticamente “probabili”. Non è un bug: è il cuore stesso del comportamento generativo.
Il secondo effetto è più subdolo. Più la foto era danneggiata, più materiale mancante la rete dovrà sintetizzare per ingannare il discriminatore — e questo spingerà il generatore verso una resa graficamente impeccabile, quasi da copertina. Ma attenzione: più l’immagine sarà fotorealistica, meno sarà genuina. La GAN ha vinto, il discriminatore è stato superato, ma voi state guardando una fantasia plausibile, non una ricostruzione fedele.
È il classico paradosso delle GAN: più il sistema funziona, più rischia di allontanarsi dalla verità.
Per farvi un esempio concreto: a un certo punto ho passato al sistema una foto completamente devastata, probabilmente finita in acqua durante qualche perdita del tetto del garage:
Quel rettangolo che vedete non è un difetto originale, ma un tentativo maldestro di Microsoft Lens, che ha provato a rilevare i margini dell’immagine durante la scansione. Il risultato, come si vede, è un disastro quasi totale: l’informazione visiva è praticamente sparita.
A quel punto era chiaro che per ottenere qualcosa di sensato avrei dovuto fornire ulteriori dati alla rete. Le GAN possono essere potenti, ma non fanno miracoli: se non sanno cosa c’era nell’immagine originale, devono indovinare — e il più delle volte lo fanno male. Quindi ho dovuto aiutarla con materiale di supporto: alcune fotografie del mio aspetto attuale, e dell’aspetto di Michi, per darle un’idea coerente di chi stavamo cercando di ricostruire.
Senza questo passaggio, la rete non avrebbe potuto restituire nulla di utile. Le avevo provato a fornire solo delle descrizioni verbali, senza immagini ben conservate del periodo originale — giusto per testare il limite del sistema. Il risultato è stato questo:
Ed è, onestamente, il massimo che una GAN può fare se la alimentate soltanto con istruzioni vaghe. Nessun riferimento visivo, nessuna immagine reale da cui inferire struttura, proporzioni o contesto. A quel punto la rete si ferma un passo prima dell’invenzione pura — o, in certi casi, ci cade dentro.
Qui si potrebbe spiegare il salto di qualità che avviene quando si passa da descrizioni testuali a immagini reali. Tipo:
La rete non lavora più solo su probabilità generiche, ma può estrarre embedding visivi concreti.
Il generatore ha più vincoli strutturali, e quindi inventa meno.
Si riduce il rischio di allucinazioni, ma si aumenta il rischio di “iperrealismo sintetico” — cioè quella resa troppo perfetta che ti fa dire “questa foto è finta anche se è bella”.
ed ecco che arriviamo al dunque. Dopo aver inserito fotografie ben riuscite – che non mostrero' qui, ho ottenuto delle risposte come questa:
A questo punto, la rete sa cosa fare e lo fa: avendo a disposizione sia l'immagine quasi illeggibile che quella sfocata fornita in precedenza, riesce finalmente a costruire qualcosa di decente — o almeno, abbastanza vicino a un risultato umano.
Ed è qui che entrano in gioco i filtri, che io amo in modo particolare.
Prendiamo un dettaglio specifico: nella foto originale, sulla maglietta c’era una testa di capra, di chiara ispirazione heavy metal — iconografia classica, tra Slayer e Behemoth. Ma nel risultato generato, puff, sparisce. Al suo posto compare un innocuo teschio di mucca, quasi da western texano. Era già successo anche nel post precedente, e solo una singola immagine era riuscita a salvarsi, anche se il caprone in questione aveva comunque perso un bel po’ della sua “satanicità”.
Il motivo è tecnico, ma anche ideologico. Le GAN moderne, soprattutto quelle integrate in servizi commerciali, sono quasi sempre accompagnate da moduli di filtraggio semantico. Questi filtri funzionano in due modi principali:
- Durante l’addestramento, i dataset vengono “ripuliti” per rimuovere o ridurre contenuti ritenuti sensibili, offensivi o controversi. In altre parole, la rete viene esposta a meno caproni pentacolatissimi e più teschi da Rodeo Drive.
- Durante la generazione, entra in gioco un modulo chiamato comunemente content moderation filter o safe content guard, che analizza il contenuto dell’immagine o del prompt. Se qualcosa supera una certa soglia (es. “violence”, “occultism”, “nudity”, “hate symbols”), la rete forza una sostituzione semantica: rimpiazza l’oggetto con qualcosa che abbia una forma simile ma un significato culturalmente più neutro.
Nel caso specifico, la testa di capra (associata iconograficamente al satanismo) è stata censurata da un modello di sicurezza automatica che, pur non capendo il contesto, “decide” che è meglio evitare. Il risultato è comico: il filtro non ha rimosso del tutto il simbolo, ma lo ha reinterpretato attraverso il suo dataset moralmente sterilizzato. Ci si ritrova così un teschio da saloon, probabilmente pescato da qualche immagine stock con licenza Creative Commons.
In pratica, l’IA ti riporta un mondo dove puoi essere sgranato, sfigurato, rovinato dall’umidità… ma mai blasfemo.
Qui posso introdurre un secondo esempio, basato su una foto scattata circa un anno dopo la precedente, che evidenzia in modo ancora più chiaro come i sistemi GAN applichino diversi livelli di censura automatica — non solo sulle immagini, ma anche sul contesto, sugli indumenti e persino sulle espressioni facciali. Un caso particolarmente interessante, perché mostra come la rete non si limiti a “ripulire”, ma rielabori attivamente ciò che considera problematico.
La prima e' che la maglietta originale era (circa) questa:
E per comprendere il secondo esempio, è necessario chiarire una cosa: Michi non era affatto piatta. Non così, almeno. All’epoca vestiva quasi sempre con scollature piuttosto vistose, bilanciate però da strati di pizzo nero molto “dark” e da una quantità esagerata di collane, che facevano parte integrante del suo stile.
Eppure, nelle immagini generate dalle reti GAN, tutto questo sparisce. Le fotografie risultanti appiattiscono completamente la sua figura, cancellano ogni dettaglio che possa suggerire una forma accentuata o un abbigliamento sensuale. È come se il corpo venisse riscritto secondo un algoritmo puritano.
Il motivo è semplice (e un po’ ipocrita): nessun servizio commerciale è disposto a generare l’immagine di un’adolescente con un seno pronunciato. Nessuno. È un limite imposto — spesso in modo silenzioso — da sistemi di filtraggio e moderazione che cercano a tutti i costi di evitare accuse di contenuto inappropriato. Anche se la persona è reale, anche se lo scopo è puramente ricostruttivo, la GAN taglia, riduce, semplifica. Appiattisce in senso visivo e simbolico.
Il risultato? Un’immagine tecnicamente pulita, socialmente accettabile, ma esteticamente falsata. Una Michi riscritta secondo le linee guida di qualche reparto legale americano, , estremamente puritano, più che sulla base della realtà.
Va anche detto che, all’epoca, nessuno si scandalizzava per l’aspetto di Michi. Certo, il suo abbigliamento “dark” si notava — era parte del personaggio — ma nessuno faceva commenti sul fisico. In Italia, negli anni ’80 e ’90, dopo “Drive In” e simili, abbiamo praticamente smesso di considerare le scollature un problema. Se una ragazza si vestiva in modo vistoso, al massimo le si diceva che era vestita da discoteca, ma non si parlava certo di “contenuto sensibile”.
E invece, per le aziende americane che offrono questi servizi di ricostruzione e ripulitura con GAN, quel tipo di estetica è considerato automaticamente eccessivo. Sempre. A prescindere dal contesto, dall’età reale della persona o dal suo stile, i filtri entrano in funzione appena rilevano pelle nuda, curve evidenti o abiti ritenuti “suggestivi”.
Il risultato è un’immagine neutralizzata, adattata ai parametri morali impliciti di chi gestisce il servizio. Non importa che fosse perfettamente normale per il tempo e il luogo: per loro, è troppo. La GAN non ha pregiudizi, ma chi la addestra — o la censura — sì.
Un ultimo dettaglio vale la pena di essere segnalato. Potreste essere tentati di “ringiovanire” qualche vecchia fotografia in buone condizioni, ma con un’estetica un po’ datata. Per esempio, una foto perfettamente leggibile ma con un marcato effetto seppia, tipico delle stampe anni ’70-’80. Magari pensate che verrà semplicemente rimosso il tono caldo, lasciando intatti tutti i dettagli originali: la maglietta dei Venom, l’atmosfera, e — diciamolo pure — le sgargianti tettone della vostra ex.
Ecco, no. Vi illudete.
Anche quando la foto è completa, leggibile, ben composta e ha solo bisogno di un refresh cromatico, le GAN entrano in modalità bonifica morale. Non si limitano a correggere i colori: reinterpretano. Pulire l’immagine significa, per loro, anche normalizzarla. Quindi: maglietta neutra, scollatura moderata, proporzioni ridotte a misura di algoritmo ANSI.
Il risultato? Una foto tecnicamente restaurata, ma umanamente denaturata. Una ricolorazione che somiglia più a una rieducazione.
Cosa c'e' che non va?
Per cominciare, la maglietta è ancora censurata. Nessuna traccia dei Venom. Ma il vero problema è Michi.
In apparenza è quasi identica, certo — stessa posa, stesso viso, stesso sguardo. Ma se osservate bene, non ha più fianchi, né seno. E la distanza tra noi due, nella foto finale, è sbagliata. Nella realtà eravamo fianco a fianco, sì, ma anche no: proprio per via del suo fisico, ci toccavamo. Manca, cioe', lo spessore del suo seno, che era sporgente, e la forma dei suoi fianchi. Quel dettaglio, che oggi chiameremmo “non verbale”, spiegava molto più di mille pixel la natura del nostro legame.
E non è tutto: la minigonna che indossava — sotto il velo — era davvero una minigonna: nel senso che negli anni '80 davamo al termine. Cortissima. E come succede quando due persone stanno vicine, era premuta contro di me. Michi era molto affettuosa, fisica, e mi abbracciava spesso. Ma per la GAN — e per i filtri aziendali — questo tipo di contatto tra minori non è accettabile. Il risultato finale è una foto perfettamente restaurata nei bordi, nella grana, nella luce... ma emotivamente e fisicamente falsata.
E qui arriviamo al punto tecnico cruciale: le GAN non si limitano a correggere. Ricostruiscono. Sempre. Anche se modificate un solo pixel, la rete prende l’intera immagine, la interpreta, la traduce nello spazio latente e poi la rigenera da zero. Quindi se volevate solo togliere un po’ di seppia o recuperare un angolo sfocato, vi ritrovate comunque con un’immagine completamente rifatta, filtrata, ricodificata.
Questo porta a una scelta inevitabile, un trade-off: vale la pena accettare un po’ di censura per ottenere una foto visivamente simile all’originale? Vi va bene una versione “quasi identica”, ma ripulita qua e là secondo i criteri di qualche algoritmo moralista?
Solo voi potete decidere. Ma è bene saperlo prima, non dopo.
Spero di aver risposto a tutte le vostre curiosita'.
Uriel Fanelli
Il blog e' visibile dal Fediverso facendo il follow a: @uriel@keinpfusch.net
Contatti:
- Fediverse: @uriel@x.keinpfusch.net
- XMPP/Jabber: uriel@mtrx.keinpfusch.net
- GNU JAMI: ufanelli