/Morph-Attack-Detection

Progetto finale del corso Intelligenza Artificiale e Sicurezza, A.A. 2023/2024, Università degli studi di Cagliari.

Primary LanguageJupyter NotebookGNU General Public License v3.0GPL-3.0

TensorFlow Keras NumPy Pandas Matplotlib scikit-learn Google Drive Python

Morph Attack Detection (MAD)

Il morphing è una tecnica sofisticata che combina più volti per creare immagini artificiali con l'obiettivo di eludere i sistemi di riconoscimento facciale. Questa tecnica sfrutta le capacità avanzate dell'intelligenza artificiale per fondere caratteristiche distintive di volti diversi, generando così immagini che appaiono realistiche ma che, in realtà, sono false.

In questo progetto vengono utilizzati approcci di Machine Learning e Deep Learning per addestrare degli agenti in grado di rilevare le immagini contraffatte. È possibile consultare la presentazione del progetto a questo link.

Dataset utilizzato

Per il progetto è stato utilizzato il dataset "AMSL Face Morph Image Data Set", scaricabile da questo link. Il repository contiene solamente i notebooks e i file necessari per addestrare ed eseguire i modelli, ma il dataset per gli addestramenti non viene fornito per via della licenza.

Installazione

Requisiti:

L'unico requisito è un account Google per poter accedere a Google Drive e salvare la cartella contenente i notebooks da eseguire tramite Google Colab.

Istruzioni step-by-step:

  1. Scaricare i file da GitHub e caricarli su Google Drive nella stessa cartella;
    NOTA: È fortemente consigliato di creare la cartella del progetto nella propria home su Google Drive. Qualora si voglia comunque utilizzare una cartella differente sarà necessario aggiornare il percorso della cartella su ogni notebook.

  2. Aprire il file settings.json e inserire i Google Drive ID per il file zip contenente il dataset e per il file csv contenente informazioni extra riguardo il dataset. Il json fornito non contiene un ID per il dataset;

  3. In qualsiasi notebook verrà chiesto di inserire il percorso della cartella Google Drive dove sono contenuti i vari file. Una volta impostata sarà possibile eseguire i notebooks;
    NOTA: Il percorso va impostato manualmente in qualsiasi notebook al momento del suo primo utilizzo, poi rimarrà salvato e non ci sarà bisogno di inserirlo nuovamente.

Struttura del progetto

Il progetto è stato organizzato in più notebooks/files in base ai modelli e alle operazioni da effettuare:

Nome File Descrizione
Analisi Dataset.ipynb Notebook per l'analisi del dataset e del csv ad esso associato
Pre Processing.ipynb Notebook per il pre-processing del dataset
Classificatore I.ipynb Notebook contenente il primo classificatore semplice
Classificatore II (CNN).ipynb Notebook contenente il secondo classificatore semplice
Componente Avanzata.ipynb Notebook il sistema di riconoscimento facciale naive
settings.json File di configurazione per download del dataset e di altri file
shared_utilities.py File python contenente le funzioni condivise

Autori