Face Recognition per scovare deepfake
E se il riconoscimento facciale con librerie come face_recognition (in breve d'ora in avanti FR) fosse utile anche per individuare i cosiddetti deepfake? Vale a dire, in questo caso, se potesse scovare volti generati con l'intelligenza artificiale assolutamente verosimili, ma non appartenenti a persone reali?
Ho messo insieme quattro gruppi di immagini:
Il che dimostra che l'intuizione iniziale era fondata: FR è in grado di rilevare i pattern di volti generati con l'intelligenza artificiale. Certo in misura ridotta rispetto ad altre librerie addestrate specificamente a questo scopo: il 5,14% significa che FR individua circa un deepfake su 20. La qual cosa è comunque meglio di quanto farebbe probabilmente un osservatore in carne e ossa.
Il presupposto della domanda è il seguente: poiché i computer operano solo secondo numeri e modelli matematici, anche i prodotti dell'intelligenza artificiale generativa, per quanto realistici e complessi, non possono che essere il risultato di modelli numerici, o pattern per dirla all'inglese.
Dall'altra parte, poiché alla base del funzionamento di FR non ci sono che modelli matematici, le dovrebbe essere abbastanza facile individuare pattern che in informatica sono necessariamente più ripetitivi che in natura. In altre parole e per farla semplice: poiché FR ragiona come un generatore di deepfake, al netto di ovvie differenze di programmazione e di dati di addestramento, dovrebbe avere buone probabilità di riconoscere se un volto è di una persona reale o generato da un algoritmo.
Detto fatto.
A) 61 volti diversi tra loro generati con l'intelligenza artificiale,
B) 69 volti reali di celebrità diverse tra loro,
C) 11 deepfake diversi tra loro e da quelli del gruppo A,
D) 11 volti reali di celebrità diverse tra loro e da quelle del gruppo B.
I gruppi C e D sono serviti come gruppi di controllo.
Per prima cosa ho rodato il motore mettendo in comparazione i gruppi A e B: su 4209 combinazioni possibili, è risultato un solo caso in cui FR ha ritenuto di individuare in un volto artificiale quello di una celebrità. Un falso positivo, evidentemente, su 4209 confronti fa lo 0,02%.
A questo punto è arrivato il momento di mettere davvero alla prova FR con i due gruppi di controllo.
Ho testato gli 11 deepfake del gruppo C rispettivamente con i fake del gruppo A e poi con i volti reali del gruppo B. Il confronto tra A e C ha dato 39 corrispondenze su 759 combinazioni; vale a dire che il 5,14% delle volte FR ha identificato correttamente il volto generato dall'intelligenza artificiale come tale. Il confronto tra B e C ha dato 0 corrispondenze su 671 combinazioni possibili, come a dire che FR non ha mai scambiato un volto reale con uno generato via software.
Infine, per avere la controprova, ho testato gli 11 volti reali del gruppo D di nuovo con A e B. Correttamente in entrambi i casi FR non ha rilevato alcuna corrispondenza.
Inoltre, comparando quel 5,14% con lo 0,02% dell'unico falso positivo, deduco un'altra conferma: effettivamente sì, i deepfake sono generati attraverso pattern abbastanza ripetitivi. Secondo questo esperimento, 257 volte più ripetitivi di quelli della natura.