This is my own implementation for Arcface to be used for deep face recognition, as listed in this paper.\ ArcFace: Additive Angular Margin Loss for Deep Face Recognition
conda create --name arcface_pytorch --file environment.yml
Download CASIA-WebFace and CACD2000, and extract them inside raw_datasets. The directory should look like this
raw_datasets
│ casia_webface_labels.txt
└───CACD
│ │ 14_Aaron_Johnson_0001.jpg
│ │ 14_Aaron_Johnson_0002.jpg
│ │ .....
└───CASIA-WebFace
│ └───0000045
│ │ 001.jpg
│ │ 002.jpg
│ │ ...
│ └───0000099
│ │ 001.jpg
│ │ 002.jpg
│ │ ...
│ └───.......
datasets
python pre_processing.py
dataset
should look like this:
datasets
│ └───50 Cent
│ │ 001_normal.jpg
│ │ 002_horizontal.jpg
│ │ ...
│ └───...
models
directory in project rootsettings.py
python train.py
models
directoryArcFace: Additive Angular Margin Loss for Deep Face Recognition
A Discriminative Feature Learning Approachfor Deep Face Recognition
Ring loss: Convex Feature Normalization for Face Recognition
InsightFace_Pytorch
focal-loss.pytorch
insightface