• Stars
    star
    1,863
  • Rank 24,881 (Top 0.5 %)
  • Language
    Python
  • License
    Other
  • Created almost 4 years ago
  • Updated 10 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A PyTorch Toolbox for Face Recognition

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

  • [Oct. 2021] Swin Transformer is supported now! We obtain a quite promising result of 98.17 in MegaFace rank1 protocol with Swin-S. For more results, pretrained models and logs please refer to 3.1 Experiments of SOTA backbones. For training face recognition model with Swin Transformer, please refer to swin_training. Note that the input size is 224*224 but not 112*112 and we use AdamW+CosineLRScheduler to optimize it instead of SGD+MultiStepLR.
  • [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]), Hailin Shi ([email protected]) and Wu Liu([email protected]).

More Repositories

1

fast-reid

SOTA Re-identification Methods and Toolbox
Python
3,377
star
2

dabnn

dabnn is an accelerated binary neural networks inference framework for mobile platform
C++
767
star
3

DCL

Destruction and Construction Learning for Fine-grained Image Recognition
Python
585
star
4

centerX

This repo is implemented based on detectron2 and centernet
Python
554
star
5

CoTNet

This is an official implementation for "Contextual Transformer Networks for Visual Recognition".
Python
512
star
6

VeRidataset

This is the project page for veri dataset which is a large scale image dataset for vehicle re-identification in urban traffic surveillance.
MATLAB
397
star
7

DNNLibrary

Daquexian's NNAPI Library. ONNX + Android NNAPI
C++
346
star
8

image-captioning

Implementation of 'X-Linear Attention Networks for Image Captioning' [CVPR 2020]
Python
269
star
9

lapa-dataset

A large-scale dataset for face parsing (AAAI2020)
258
star
10

Down-to-the-Last-Detail-Virtual-Try-on-with-Detail-Carving

Virtural try-on under arbitrary poses
Python
217
star
11

Partial-Person-ReID

Python
168
star
12

FADA

(ECCV 2020) Classes Matter: A Fine-grained Adversarial Approach to Cross-domain Semantic Segmentation
Python
140
star
13

DSD-SATN

ICCV19: Official code of Human Mesh Recovery from Monocular Images via a Skeleton-disentangled Representation
Python
133
star
14

LIO

Look-into-Object: Self-supervised Structure Modeling for Object Recognition (CVPR 2020)
Jupyter Notebook
113
star
15

PGPT

Implementation of β€˜Pose-Guided Tracking-by-Detection: Robust Multi-Person Pose Tracking’ [TMM 2020]
Python
47
star
16

CM-NAS

CM-NAS: Cross-Modality Neural Architecture Search for Visible-Infrared Person Re-Identification (ICCV2021)
Python
46
star
17

CoTNet-ObjectDetection-InstanceSegmentation

Python
33
star
18

dabnn-example

Android demo for dabnn
Java
19
star
19

atlasWrapper

C++
8
star