A PyTorch implementation of A Light CNN for Deep Face Representation with Noisy Labels from the paper by Xiang Wu, Ran He, Zhenan Sun and Tieniu Tan. The official and original Caffe code can be found here.
100% - EER on LFW achieves 99.43%.100% - EER on LFW achieves 99.40%.100% - EER on LFW obtains 98.70%.Download face dataset such as CASIA-WebFace, VGG-Face and MS-Celeb-1M.
All face images are converted to gray-scale images and normalized to 144x144 according to landmarks.
According to the five facial points, we not only rotate two eye points horizontally but also set the distance between the midpoint of eyes and the midpoint of mouth(ec_mc_y), and the y axis of midpoint of eyes(ec_y) .
The aligned LFW images are uploaded on Baidu Yun.
| Dataset | size | ec_mc_y | ec_y |
|---|---|---|---|
| Training set | 144x144 | 48 | 48 |
| Testing set | 128x128 | 48 | 40 |
train.py as a flag or manually change them.python train.py --root_path=/path/to/your/datasets/
--train_list=/path/to/your/train/list.txt
--val_list=/path/to/your/val/list.txt
--save_path=/path/to/your/save/path/
--model="LightCNN-9/LightCNN-29" --num_classes=nload_imglist.py. Or you can use torchvision.datasets.ImageFolder to load your datasets.num_classes denotes the number of identities in your training dataset.num_classes is 80013.python extract_features.py --resume=/path/to/your/model
--root_path=/path/to/your/datasets/
--img_list=/path/to/your/list.txt
--save_path=/path/to/your/save/path/
--model="LightCNN-9/LightCNN-29/LightCNN-29v2"
--num_classes=n (79077 for LightCNN-9/LightCNN-29, 80013 for LightCNN-29v2)
vlfeat or sklearn to evaluate the features on ROC and obtain EER and TPR@FPR for your testing datasets.train.py.The Light CNN performance on lfw 6,000 pairs.
| Model | 100% - EER | TPR@FAR=1% | TPR@FAR=0.1% | TPR@FAR=0 |
|---|---|---|---|---|
| LightCNN-9 | 98.70% | 98.47% | 95.13% | 89.53% |
| LightCNN-29 | 99.40% | 99.43% | 98.67% | 95.70% |
| LightCNN-29v2 | 99.43% | 99.53% | 99.30% | 96.77% |
| LightCNN v4 | 99.67% | 99.67% | 99.57% | 99.27% |
The Light CNN performance on lfw BLUFR protocols
| Model | VR@FAR=0.1% | DIR@FAR=1% |
|---|---|---|
| LightCNN-9 | 96.80% | 83.06% |
| LightCNN-29 | 98.95% | 91.33% |
| LightCNN-29v2 | 99.41% | 94.43% |
The Light CNN performance on MegaFace
| Model | Rank-1 | TPR@FAR=1e-6 |
|---|---|---|
| LightCNN-9 | 65.782% | 76.288% |
| LightCNN-29 | 72.704% | 85.891% |
| LightCNN-29v2 | 76.021% | 89.740% |
If you use our models, please cite the following paper:
@article{wu2018light,
title={A light CNN for deep face representation with noisy labels},
author={Wu, Xiang and He, Ran and Sun, Zhenan and Tan, Tieniu},
journal={IEEE Transactions on Information Forensics and Security},
volume={13},
number={11},
pages={2884--2896},
year={2018},
publisher={IEEE}
}