FaceX-Zoo

FaceX-Zoo is a PyTorch toolbox for face recognition. It provides a training module with various supervisory heads and backbones towards state-of-the-art face recognition, as well as a standardized evaluation module which enables to evaluate the models in most of the popular benchmarks just by editing a simple configuration. Also, a simple yet fully functional face SDK is provided for the validation and primary application of the trained models. Rather than including as many as possible of the prior techniques, we enable FaceX-Zoo to easilyupgrade and extend along with the development of face related domains. Please refer to the technical report for more detailed information about this project.

About the name:

  • “Face” – this repo is mainly for face recognition.
  • “X” – we also aim to provide something beyond face recognition, e.g. face parsing, face lightning.
  • “Zoo” – there include a lot of algorithms and models in this repo.
    image

What’s New

  • [Sep. 2021] We provide a Dockfile to buid the docker image of this project.
  • [Aug. 2021] RepVGG has been added to the backbones for face recognition, the performance of RepVGG_A0, B0, B1 can be found in 3.1 Experiments of SOTA backbones.
  • [Jul. 2021] A method for facial expression recognition named DMUE has been accepted by CVPR2021, and all codes have been released here.
  • [Jun. 2021] We evaluate some knowledge distillation methods on face recognition task, results and codes can be found in face_lightning module.
  • [May. 2021] Tools to convert a trained model to onnx format and the provided sdk format can be found in model_convertor.
  • [Apr. 2021] IJB-C 1:1 protocol has been added to the evaluation module.
  • [Mar. 2021] ResNeSt and ReXNet have been added to the backbones, MagFace has been added to the heads.
  • [Feb. 2021] Distributed training and mixed precision training by apex is supported. Please check distributed_training and train_amp.py
  • [Jan. 2021] We commit the initial version of FaceX-Zoo.

Requirements

  • python >= 3.7.1
  • pytorch >= 1.1.0
  • torchvision >= 0.3.0

Model Training

See README.md in training_mode, currently support conventional training and semi-siamese training.

Model Evaluation

See README.md in test_protocol, currently support LFW, CPLFW, CALFW, RFW, AgeDB30, IJB-C, MegaFace and MegaFace-mask.

Face SDK

See README.md in face_sdk, currently support face detection, face alignment and face recognition.

Face Mask Adding

See README.md in FMA-3D.

License

FaceX-Zoo is released under the Apache License, Version 2.0.

Acknowledgements

This repo is mainly inspired by InsightFace, InsightFace_Pytorch, face.evoLVe. We thank the authors a lot for their valuable efforts.

Citation

Please consider citing our paper in your publications if the project helps your research. BibTeX reference is as follows.

@inproceedings{wang2021facex,
  author = {Jun Wang, Yinglu Liu, Yibo Hu, Hailin Shi and Tao Mei},
  title = {FaceX-Zoo: A PyTorh Toolbox for Face Recognition},
  journal = {Proceedings of the 29th ACM international conference on Multimedia},
  year = {2021}
}

If you have any questions, please contact with Jun Wang ([email protected]), Yinglu Liu ([email protected]), Yibo Hu ([email protected]) or Hailin Shi ([email protected]).

GitHub

View Github