此项目灵感来自GluonCV, 并按照其结构组织. 除了帮助研究者和开发者们迅速上手目前最前沿的人脸识别算法, 也希望能够让更多的人了解Gluon这一好用的工具, 使用MXnet-Gluon进行深度学习算法的研究.
Gluon-fr支持python3.5或以上版本. 同时需要Mxnet和gluon-cv,可以用以下命令安装它们.
- Mxnet建议安装稳定版或者nightly版,gluon-cv必须安装nightly版.
- 如果想要训练必须要GPU.
pip install gluoncv --pre
pip install mxnet-mkl --pre --upgrade
# if cuda XX is installed
pip install mxnet-cuXXmkl --pre --upgrade
之后安装gluon-fr
- 从源码安装(建议)
pip install git+https://github.com/THUFutureLab/gluon-face.git@master
- pip安装
pip install gluonfr
GluonFR 基于gluon-cv, 如果你不太熟悉它可以阅读一个简短的教程.dmlc 60-minute crash course.
这一部分主要提供训练和验证数据的输入. GluonFR目前使用的训练集是由DeepInsight提供, 使用mtcnn进行关键点检测并对齐至(112, 112)大小, 详情参考[insightface/Dataset-Zoo]. 另外, data/中还包括nvidia-dali库的使用样例, 在CPU预处理数据成为训练瓶颈时可以考虑试用, 目前dali库中坑还比较多.
训练数据目录结构如下所示:
face/
emore/
train.rec
train.idx
property
ms1m/
train.rec
train.idx
property
lfw.bin
agedb_30.bin
...
vgg2_fp.bin
我们使用 ~/.mxnet/datasets
作为根目录为了保持和mxnet一致.
mobile_facenet, res_attention_net, se_resnet...
可以查看我们的model_zoo获取更多信息
GluonFR 提供了在人脸识别中主流的loss函数, 包括 SoftmaxCrossEntropyLoss, ArcLoss, TripletLoss,
RingLoss, CosLoss, L2Softmax, ASoftmax, CenterLoss, ContrastiveLoss, ... , 并且我们还会随时更新它们.
如果有任何遗漏的loss我们没有实现,你可以提交一个 issue 告知我们.
GluonFR提供了Mnist手写数字识别的训练和可视化代码, 用于验证损失函数的有效性;在人脸识别数据集上基于model-zoo模型完成训练.
下表中最后一列是论文中在LFW上的最优结果, 数据、网络结构都可能不同, 仅供参考.
Method | Paper | Visualization of MNIST | LFW |
---|---|---|---|
Contrastive Loss | ContrastiveLoss | - | - |
Triplet | 1503.03832 | - | 99.63±0.09 |
Center Loss | CenterLoss | 99.28 | |
L2-Softmax | 1703.09507 | - | 99.33 |
A-Softmax | 1704.08063 | - | 99.42 |
CosLoss/AMSoftmax | 1801.05599/1801.05599 | 99.17 | |
Arcloss | 1801.07698 | 99.82 | |
Ring loss | 1803.00130 | 99.52 | |
LGM Loss | 1803.02988 | 99.20±0.03 |
我们在在WiKi中的Model_Zoo提供预训练模型的更多细节.
- More pretrained models
- IJB and Megaface Results
- Other losses
- Dataloader for loss depend on how to provide batches like Triplet, ContrastiveLoss, RangeLoss...
- Try GluonCV resnetV1b/c/d/ to improve performance
- Create hosted docs
- Test module
- Pypi package
目前还没有文档可供浏览.我们可能会在后期提供它们.
{ haoxintong Yangxv Haoyadong Sunhao }
我们的中文讨论区在 中文社区Gluon-Forum
-
MXNet Documentation and Tutorials https://zh.diveintodeeplearning.org/
-
NVIDIA DALI documentationNVIDIA DALI documentation
-
Deepinsight insightface