This repository consists of code to fine-tune popular face-recognition architectures with LFW and QMUL-Survface datasets for evaluationg Low Resolution Face Recognition. This project is carried out as part of my Masters Thesis - "Bias and Fairness in Low Resolution Image Recognition" under the guidance of Dr. Mayank Vatsa and Dr. Richa Singh
Clone the repository
Install using pip
pip install -r requirements.txt
| Dataset | Description |
|---|---|
| LFW | Labeled Faces in the Wild is a public benchmark that can be used for face recognition and verification.LFW deep funneled imagesconsists of LFW images aligned using deep funneling. |
| QMUL-SurvFace | This consists of native low-resolution face images. These are not synthesised by artificial down-sampling of high-resolution face images. |
![]() |
|---|
| Fine-tuning - Contrastive Loss |
| (LightCNN29, ArcFace, VGGFace2) |
| Architecture | Description |
|---|---|
| LightCNN29 | This is a 29 layer CNN model, where a variation of maxout activation known as Max- Feature-Map (MFM) is introduced in each convolution layer. This is trained with large scale noisy face datasets such as CASIA-WebFace and MS-Celeb-1M in gray-scale. |
| VGGFace2 | This is a resnet50 backbone trained with MS-Celeb-1M and the fine-tuned with VG- GFace2 dataset. |
| ArcFace | This is a resnet18 backbone pre-trained with MS1MV3 dataset with Arcface i.e. Additive angular margin loss for deep face recognition. |
![]() |
|---|
| Inference |
| (LightCNN29, ArcFace, VGGFace2) |
- Download pretrained model checkpoints for LightCNN29, VGGFace2 and ArcFace
- Place the checkpoint files in the "models" folder
- Download the Processed LFW and QMUL-SurvFace datasets
- Uncompress the downloaded lfw-deepfunneled_processed.tar.gz and QMUL-SurvFace-v1.zip into the data folder
- Download and uncompress processed mated_probe.zip and processed gallery.zip into "data/QMUL-SurvFace/Face_Identification_Test_Set" location from here
fine_tune.sh script in scripts folder can be executed as shown below:
-
Fine-tune and Evaluate pretrained LightCNN29 model with LFW dataset
sh fine_tune.sh LightCNN29 LFW
-
Fine-tune and Evaluate pretrained VGGFace2 model with LFW dataset
sh fine_tune.sh VGGFace2 LFW
-
Fine-tune and Evaluate pretrained ArcFace model with LFW dataset
sh fine_tune.sh ArcFace LFW
-
Fine-tune and Evaluate pretrained LightCNN29 model with QMUL-SurvFace dataset
sh fine_tune.sh LightCNN29 SurvFace
-
Fine-tune and Evaluate pretrained VGGFace2 model with QMUL-SurvFace dataset
sh fine_tune.sh VGGFace2 SurvFace
-
Fine-tune and Evaluate pretrained ArcFace model with QMUL-SurvFace dataset
sh fine_tune.sh ArcFace SurvFace
| Model | Rank1 | Rank1 | Rank10 | Rank10 |
|---|---|---|---|---|
| Dataset | LFW | SurvFace | LFW | SurvFace |
| LightCNN29 | 96.8 | 6.3 | 98.6 | 15.2 |
| VGGFace2 | 95.6 | 1.6 | 99.7 | 5.7 |
| ArcFace | 80.7 | 1.8 | 89.6 | 5.8 |
![]() |
![]() |
|---|---|
| LightCNN29 - LFW | LightCNN29 - QMUL-SurvFace |
![]() |
![]() |
|---|---|
| VGGFace2 - LFW | VGGFace2 - QMUL-SurvFace |
![]() |
![]() |
|---|---|
| ArcFace - LFW | ArcFace - QMUL-SurvFace |
For questions and clarifications, please contact @ksasi or raise an issue on GitHub.
The code is adapted from the following repositories:
- Light CNN for Deep Face Recognition, in PyTorch
- VGGFace2 Dataset for Face Recognition
- InsightFace: 2D and 3D Face Analysis Project
- PyTorch Metric Learning
If you used this repository in your work, please cite it as below:
@software{face-recognition,
author = {Sasikanth, Kotti},
title = {{face-recognition}},
year = {2022},
url = {https://github.com/ksasi/face-recognition}
}







