- This repo illustrates how to implement MobileFaceNet and Arcface for face recognition task.
- Pretrained model is posted for tests over picture, video and cam
- Help document on how to implement MTCNN+MobileFaceNet is available
- Scripts on transforming MXNET data records in Insightface to images are provided
- Scripts on train and evaluation of MobileFaceNet model are provided
- Test Picture
python MTCNN_MobileFaceNet.py -img {image_path}
- Take Picture for Face Database
- over cam
python take_picture.py -n {name}
- over photo
python take_ID.py -i {image_path} -n {name}
- Test Video
- over cam
python cam_demo.py
- over video file
python video_demo.py
- Instruction
MobileFaceNet_Step_by_Step.ipynb
Download training and evaluation data from Model Zoo. All training data has been cropped, aligned and resized as 112 x 112. Put images and annotation files into "data_set" folder. The structure should be arranged as follows:
data_set/
---> AgeDB-30
---> CASIA_Webface_Image
---> CFP-FP
---> faces_emore_images
---> LFW
- The following script is provided to convert .bin and .rec file to images:
python data_set/load_images_from_bin.py
- Generate the corresponding annotation files
python data_set/anno_generation.py
- Train MobileFaceNet
python Train.py
- Instruction
MobileFaceNet_Training_Step_by_Step.ipynb
The training results over faces_emore data (5822653 images / 85742 ids) are shown below:
python Evaluation.py
Here is the evaluation result. 'Flip' the image could be applied to encode the embedding feature vector with ~ 0.07% higer accuracy. L2 distance score slightly outperforms cos similarity (not necessarily the same trend for other cases, but it is what we conclude in this work)
Eval Type | Score | LFW | AgeDB-30 | CFP-FP |
---|---|---|---|---|
Flip | L2 | 99.52 | 96.30 | 92.93 |
Flip | Cos | 99.50 | 96.18 | 92.84 |
UnFlip | L2 | 99.45 | 95.63 | 93.10 |
UnFlip | Cos | 99.45 | 95.65 | 93.10 |
Don't forget to star the repo if it is helpful for your research