This repository is the required code for the project "Applied Framework for One-shot Face Recognition using Siamese Neural Networks" for the Toronto Metropilitan University course EE8223: Deep Learning with Dr. Illanko.
The project uses a deep siamese neural network pair to perform face recognition. We developed a GUI to allow for tunable hyper-parameters. We train the network on two datasets, Labelled Faces in the Wild (LFW), and Youtube Faces (YTF). The data setup can be found below.
- Note: latest results have not been uploaded to github yet. Do not use the "results.csv" file as a reference.
Clone this repository, using
git clone https://github.com/husseinalijaafar/oneshotlearning
cd
tooneshotlearning
/ and runpip install -r requirements.txt
- Set up the data as shown below
- run:
python3 MainWindow.py
- Select your required configuration, change layer sizes, activation functions etc.
- Click "Initialize Network"
Download the following dataset:
Extract and arrange the data in the following setups
The dataset folder should appear as
dataset
lfw2
lfw2
...
splits
train.txt
test.txt
weights
...
ytf
ytf_split
test
train
val
test.txt
train.txt
For questions or concerns, please open an Issue on GitHub.
- Original paper is Gregory Koch, Richard Zemel, Ruslan Salakhutdinov
- Some of the network code used is from [Nevoit](https://github.com/nevoit/Siamese-Neural-Networks-for-One-shot-Image-Recognition
- Datasets: LFW YTF