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 # mobilefacenet
train_nets.py --max_epoch=10
--train_batch_size=128
--model_type=1 # tinymobilefacenet
python inference.py --pretrained_model='./output/ckpt_best/mobilefacenet_best_ckpt'
--model_type=0
python inference.py --pretrained_model='./output/ckpt_best/tinymobilefacenet_best_ckpt'
--model_type=1
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 |
- 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