cavaface: A Pytorch Training Framework for Deep Face Recognition
.
By Yaobin Li and Liying Chi
Introduction
This repo provides a high-performance distribute parallel training framework for face recognition with pytorch, including various backbones (e.g., ResNet, IR, IR-SE, ResNeXt, AttentionNet-IR-SE, ResNeSt, HRNet, etc.), various losses (e.g., Softmax, Focal, SphereFace, CosFace, AmSoftmax, ArcFace, ArcNegFace, CurricularFace, Li-Arcface, QAMFace, etc.), various data augmentation(e.g., RandomErasing, Mixup, RandAugment, Cutout, CutMix, etc.) and bags of tricks for improving performance (e.g., FP16 training(apex), Label smooth, LR warmup, etc)
Features
(click to collapse)
* **Backbone**
* [x] ResNet(IR-SE)
* [x] ResNeXt
* [x] DenseNet
* [x] MobileFaceNet
* [x] MobileNetV3
* [x] EfficientNet
* [x] ProxylessNas
* [x] GhostNet
* [x] AttentionNet-IRSE
* [x] ResNeSt
* [x] ReXNet
* [x] MobileNetV2
* [x] MobileNeXt
* **Attention Module**
* [x] SE
* [x] CBAM
* [x] ECA
* [x] GCT
* **Loss**
* [x] Softmax
* [x] SphereFace
* [x] AMSoftmax
* [x] CosFace
* [x] ArcFace
* [x] Combined Loss
* [x] AdaCos
* [x] SV-X-Softmax
* [x] CurricularFace
* [x] ArcNegFace
* [x] Li-Arcface
* [x] QAMFace
* [x] Circle Loss
* **Parallel Training**
* [x] DDP
* [x] Model Parallel
* **Automatic Mixed Precision**
* [x] AMP
* **Optimizer**
* [x] LRScheduler([faireq](https://github.com/pytorch/fairseq/tree/master/fairseq/optim/lr_scheduler),[rwightman](https://github.com/rwightman/pytorch-image-models/tree/master/timm/scheduler))
* [x] Optim(SGD,Adam,RAdam,LookAhead,Ranger,AdamP,SGDP)
* [x] ZeRO
* **[Data Augmentation**
* [x] RandomErasing
* [x] Mixup
* [x] RandAugment
* [x] Cutout
* [x] CutMix
* [x] Colorjitter
* **Distillation**
* [ ] KnowledgeDistillation
* [ ] Multi Feature KD
* **Bag of Tricks**
* [x] Label smooth
* [x] LR warmup
Installation
See INSTALL.md.
Quick start
See GETTING_STARTED.md.
Model Zoo and Benchmark
See MODEL_ZOO.md.
License
cavaface is released under the MIT license.
Acknowledgement
Contact
cavallyb@gmail.com