This notebook presents the realization and evaluation of an adversarial attack system in the field of facial identification. The goal is to train a facial identification model, compare its results with a pre-trained model, and then perform an adversarial attack using the projected gradient descent (PGD) attack. The performance of the models will be compared before and after the attack.
Facial identification is an important area in computer vision, and it has numerous applications ranging from security systems to personalized user experiences. In this notebook, we will explore the process of training a facial identification model using TensorFlow and LFW dataset. We will also compare the performance of our trained model with a pre-trained model to assess its effectiveness.
Furthermore, we will investigate the vulnerability of these models to adversarial attacks. Adversarial attacks aim to manipulate input data in such a way that it deceives the model, leading to incorrect predictions. We will utilize the projected gradient descent (PGD) attack to perturb facial images and evaluate the impact on model performance.
You can install these dependencies by running the following command:
pip install -r requirements.txt
-
Clone the repository and navigate to the project directory.
-
Launch Jupyter Notebook.
-
Open the
facial_identification.ipynb
notebook. -
Follow the instructions in the notebook to execute the code cells.
The notebook will guide you through the following steps:
-
Data preprocessing: Loading and preparing the facial identification dataset.
-
Model training: Training a facial identification model using TensorFlow.
-
Model comparison: Evaluating the performance of our trained model against a pre-trained model.
-
Adversarial attack: Performing a projected gradient descent (PGD) attack on the models.
-
Performance evaluation: Comparing the performance of the models before and after the attack.
The results and findings will be discussed within the notebook itself.
Contributions to this project are welcome. If you find any issues or have suggestions for improvements, please open an issue or submit a pull request.