This is the code repository for the BioLab (our) submission to the Adversarial Attack Challenge (AAC) 2025 @ IJCB 2025, Track 1: Detection. The challenge is organized by Youverse and focuses on detecting adversarial attacks in face recognition systems.
Our final solution is based on a small architecture named PerturbationNet, which is a lightweight convolutional neural network (CNN) designed to detect adversarial perturbations in images. The model is trained on the training part of AdvCelebA of the provided dataset which features images attacked using 10 different attack types.
The code is based on a early version of the AI-GenBench codebase.
- Team Name: BioLab
- Websites
- Team Members: Lorenzo Pellegrini (1), Nicolò di Domenico (2), Guido Borghi (3)
- Affiliations:
- Assistant Professor (RTD-a), University of Bologna, Italy
- PhD Student, University of Bologna, Italy
- Associate Professor, University of Modena and Reggio Emilia, Italy
-
Clone the repository:
git clone TBA cd BioLab-AAC2025-PerturbationNet -
Install the required packages:
pip install -r requirements.txt
-
Run the dataset standardization script (adjust the paths in the script as needed):
python dataset_preparation/generate_arrow_track1.py
this will generate an arrow dataset (which will be loaded using the
datasetslibrary). -
(Optional) Also convert the LFW part (test only):
python dataset_preparation/generate_arrow_track1_lfw.py
-
Adjust the configuration file
aac_training_configurations/aac_full_training.yamlwith the correct dataset paths. -
Train the model:
bash run_training_aac.sh
- In the code our solution is named "smallnet_mlp". However, we renamed it to "PerturbationNet" in the final submission and report.
- Our final solution was trained using bf16-mixed precision, but the submission runs an inference in 32-bit precision.
- You may find the configurations for different attempts in the
aac_training_configurationsdirectory. Some of those may be a bit outdated, but they can be useful for reference. - The framework may be a bit complicated to understand as it included many features needed for the AI-GenBench paper. The code released in the AI-GenBench repository may be a bit more polished.
- Challenge website: https://www.youverse.id/adversarial
- Challenge repository: https://github.com/dev-yoonik/IJCB-AAC-2025
A final report of the competition is coming soon. Check the challenge website for updates!
This code is released under the BSD-3-Clause license.