2019.07.14
Actuellement, j'ai obtenu mon diplôme du campus et je fais un autre type de travail. Ce projet peut donc ne plus être mis à jour.
La mise en œuvre d'algorithmes populaires de reconnaissance faciale dans Pytorch Framework, y compris ArcFace, Cosface et Sphereface, etc.
Tous les codes sont évalués sur Pytorch 0.4.0 avec Python 3.6, Ubuntu 16.04.10, CUDA 9.1 et CUDNN 7.1. Évalué partiellement sur Pytorch 1.0.
Pour la formation CNN, j'utilise Casia-webface et nettoyé MS-Celeb-1M, aligné par MTCNN avec la taille de 112x112. Pour les tests de performance, je signale les résultats sur LFW, AgedB-30, CFP-FP, Megaface Rank1 Identification et vérification.
Pour AgedB-30 et CFP-FP, les paires d'images et d'images d'évaluation alignées sont restaurées à partir du fichier binaire MXNET fourni par Insightface, des outils sont disponibles dans ce référentiel. Vous devez d'abord installer un MXNET-CPU pour l'analyse de l'image, il suffit de « Pip Installer MXNET » est OK.
Lfw @ baidenetdisk, viedb-30 @ baitunetdisk, cfp_fp @ bainenetdisk
MobileFacenet: Struture décrite dans MobileFacenet
RESNET50: Structure Resnet d'origine
RESNET50-IR: CNN décrit dans Arcface Paper
SERESNET50-IR: CNN décrit dans Arcface Paper
Petit protocole: formé avec Casia-webface de la taille des données: 453580/10575
Grand protocole: formé avec Deepglint MS-Celeb-1M de la taille des données: 3923399/86876
| Type de modèle | Perte | LFW | Vieilledb-30 | CFP-FP | Taille du modèle | protocole |
|---|---|---|---|---|---|---|
| Mobilefacenet | Surface arc | 99.23 | 93.26 | 94.34 | 4 Mo | petit |
| Resnet50-ir | Surface arc | 99.42 | 94.45 | 95.34 | 170 Mo | petit |
| Seresnet50-ir | Surface arc | 99.43 | 94.50 | 95.43 | 171 Mo | petit |
| Mobilefacenet | Surface arc | 99,58 | 96.57 | 92.90 | 4 Mo | grand |
| Resnet50-ir | Surface arc | 99.82 | 98.07 | 95.34 | 170 Mo | grand |
| Seresnet50-ir | Surface arc | 99.80 | 98.13 | 95.60 | 171 Mo | grand |
| Resnet100-ir | Surface arc | 99.83 | 98.28 | 96.41 | 256 Mo | grand |
Il existe un résultat étrange que lors de la formation sous un petit protocole, les performances CFP-FP sont mieux que les AgedB-30, tandis que lors de la formation avec un ensemble de données à grande échelle, les performances CFP-FP sont pires qu'AmedB-30.
| Type de modèle | Perte | MF ACC. | Mf ver. | Mf acc. @ R | Mf ver. @ R | TAILLE | protocole |
|---|---|---|---|---|---|---|---|
| Mobilefacenet | Surface arc | 69.10 | 84.23 | 81.15 | 85.86 | 4 Mo | petit |
| Resnet50-ir | Surface arc | 74.31 | 88.23 | 87.44 | 89.56 | 170 Mo | petit |
| Seresnet50-ir | Surface arc | 74.37 | 88.32 | 88.30 | 89,65 | 171 Mo | petit |
| Mobilefacenet | Surface arc | 74.95 | 88.77 | 89.47 | 91.03 | 4 Mo | grand |
| Resnet50-ir | Surface arc | 79.61 | 96.02 | 96.58 | 96.78 | 170 Mo | grand |
| Seresnet50-ir | Surface arc | 79.91 | 96.10 | 97.01 | 97.60 | 171 Mo | grand |
| Resnet100-ir | Surface arc | 80.40 | 96.94 | 97.60 | 98.05 | 256 Mo | grand |
Visdom Soutien pour la perte et la précision pendant le processus de formation. 
SoftMax Loss vs SoftMax_Center Perte. Gauche: ensemble de formation SoftMax. Droite: SoftMax + Center Loss Training Set.


MUGLOWANG / COSFACE_PYTORCH
Xiaoccer / mobilefacenet_pytorch
Treb1en / insightface_pytorch
DeepInsight / Insightface
Kaiyangzhou / pytorch-center-loss
Tengshaofeng / résidualattingnetwork-pytorch