This project encompasses various components used in the thesis including the datasets, the AIFR (Age-Invariant Face Recognition) models, the API built in Python, and the web application built using Ruby on Rails. The repository is organized into the following main directories:
data/: Contains the datasets used for training and evaluation.aifr/: Contains the implementations and training scripts for different models.api/: Contains the Python API for perfoming face verification.app/: Contains the Ruby on Rails application.
The datasets and the model .pth files are stored in a Google Drive folder. You can access and download them from the following link:
Google Drive - Datasets and Models
- data
big/: Large dataset.fgnet/: Original FG-NET dataset.fgnet_split/: Split FG-NET dataset into positive and negative pairs.negative/positive/
small/: Small dataset.test_big/: Test set for large dataset.test_small/: Test set for small dataset.train_big/: Training set for large dataset.train_small/: Training set for small dataset.
- data_preprocessing
check_duplicates.py: Script to check for duplicate images.compare_gender_age.py: Script to compare gender and age labels of folders with predicted gender and age labels from the DeepFace model.split_1000_pos_neg.py: Script to split dataset into 1000 positive and negative pairs.split.py: 80/20 train/test dataset splitting script.
- data_statistics
data_visualization.py: Script for visualizing data statistics.images_per_age_group.py: Script to analyze images per age group.images_per_age.py: Script to analyze images per age.images_per_gender.py: Script to analyze images per gender.images_per_folder.py: Script to analyze images per folder.
- aifr
- backbone
custom.py: Custom Backbone Neural Network implementation.
- models
- multitask
model.py: Multi-Task model definition.training.py: Training script for Multi-Task model.- results
80-20big/best-model-85-92.pth80-20small/best-model-93-12.pth
- multitask_dal
model.py: Multi-Task + DAL model definition.training.py: Training script for Multi-Task + DAL model.- results
80-20big/best-model-86-24.pth80-20small/best-model-93-89.pthloo/best-model-94-61.txt: Leave-One-Out evaluation results for MUltitask + DAL model
- singletask
model.py: Singletask model definition.training.py: Training script for singletask model.- results
80-20big/best-model-85-65.pth80-20small/best-model-93-02.pth
- multitask
- models_evaluation
config.py: Configuration for models evaluation.eval.py: Evaluation script for all models.
- models_training
config.py: Configuration for models training.train.py: Trainig script for all models.
- utils
image_loader.py: Utility for loading images.margin_loss.py: Implementations of margin loss.metrics.py: Metric calculation utilities.model_handler.py: Utilities for handling the model from the configuration.trainer_handler.py: Utilities for handling the training from the configuration.
- backbone
- api
- aifr
- models
model.py: Model definitions for API.- results
80-20small/best-model-93-89.pth
- utils
margin_loss.py: Implementation of margin loss for API.
- models
- utils
similarity_handler.py: Utility for handling similarity calculations.
config.py: Configuration for API.Dockerfile: Docker configuration for API deployment.main.py: Main script for running the API.requirements.txt: Dependencies for the API.
- aifr
- app
app/: Application directory.bin/: Binary files.config/: Configuration files.db/: Database migrations and schema.lib/: Library files.public/: Public assets.storage/: File storage.test/: Test cases.tmp/: Temporary files.vendor/: Vendor files.babel.config.js: Babel configuration.config.ru: Rack configuration.Gemfile: Gem dependencies.Gemfile.lock: Locked gem dependencies.LICENSE: License file.package.json: Node.js package configuration.postcss.config.js: PostCSS configuration.Procfile: Process file for deployment.Rakefile: Rake configuration.yarn.lock: Yarn lockfile.