Tensorflow implementation for MobileFaceNet which is modified from MobileFaceNet_TF
- tensorflow >= r1.2 (support cuda 8.0, original needs tensorflow >= r1.5 and cuda 9.0)
- opencv-python
- python 3.x ( if you want to use python 2.x, somewhere in load_data function need to change, see details in comment)
- mxnet
- anaconda (recommend)
├── MobileFaceNet
│ ├── arch
│ ├── img
│ ├── txt
│ ├── datasets
│ ├── faces_ms1m_112x112
│ ├── tfrecords
│ ├── losses
│ ├── nets
│ ├── output
│ ├── ckpt
│ ├── ckpt_best
│ ├── logs
│ ├── summary
│ ├── utils
- choose one of The following links to download dataset which is provide by insightface. (Special Recommend MS1M)
- move dataset to ${MobileFaceNet_TF_ROOT}/datasets.
- run ${MobileFaceNet_TF_ROOT}/utils/data_process.py.
train_nets.py --max_epoch=10
--train_batch_size=128
--model_type=0 # 0-mobilefacenet 1-tinymobilefacenet 2-squeezefacenet 3-shufflefacenet 4-shufflefacenetV2
--gpu=0
python inference.py --pretrained_model='./output/ckpt_best/mobilefacenet_best_ckpt'
--model_type=0
--gpu=0
size | LFW(%) | Val@1e-3(%) | inference@MSM8976(ms) |
---|---|---|---|
5.7M | 99.25+ | 96.8+ | 260- |
Models | LFW | Cfp_FF | Cfp_FP | Agedb_30 | inference@i7-7700 16G 240G (fps) |
---|---|---|---|---|---|
MobileFaceNet(Bad training) | 0.983+-0.008 | 0.980+-0.005 | 0.827+-0.019 | 0.878+-0.023 | 27 |
Tiny_MobileFaceNet | 0.981+-0.008 | 0.984+-0.006 | 0.835+-0.019 | 0.882+-0.023 | 50 |
SqueezeFaceNet | 0.972+-0.008 | 0.962+-0.006 | 0.785+-0.019 | 0.837+-0.023 | 83 |
ShuffleFaceNet v1 | 0.962+-0.008 | 0.941+-0.006 | 0.763+-0.019 | 0.747+-0.023 | 33 |
ShuffleFaceNet v2 | 0.980+-0.008 | 0.971+-0.006 | 0.820+-0.019 | 0.823+-0.023 | 50 |
- facenet
- InsightFace mxnet
- InsightFace_TF
- MobileFaceNets: Efficient CNNs for Accurate Real-Time Face Verification on Mobile Devices
- CosFace: Large Margin Cosine Loss for Deep Face Recognition
- InsightFace : Additive Angular Margin Loss for Deep Face Recognition
- tensorflow-triplet-loss
- MobileFaceNet_TF
- SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size
- ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices